/** * ALLADiN操作ログをテーブルからCSV出力/圧縮 * @param $core object * @param $logTableList array * @param $monthsAgo int * return ログデータ配列 */ function outputLogData(&$core, $logTableList, $monthsAgo) { $db =& $core->getDB(); // ログ抽出期間 $outputDateYm = date('Ym', mktime('0', '0', '0', date('m'), 0, date('Y'))); $outputSpanFrom = getMonthSpanFrom($monthsAgo); $outputSpanTo = getMonthSpanTo($monthsAgo); // 一次ディレクトリ作成 $dirName = "history_{$outputDateYm}"; $outputDirName = OUTPUT_DIR_BASE_NAME . $dirName; $command = "mkdir {$outputDirName}"; exec($command); // テーブル毎にCSVファイル作成 foreach ($logTableList as $tableName) { $logDataList = getLogDataList($db, $tableName, $outputSpanFrom, $outputSpanTo); if (count($logDataList) != 0) { $columnNameList = getColumnNameList($db, $tableName); outputCsvFile($outputDirName, $columnNameList, $logDataList, $tableName, $outputDateYm); } } $fileCount = glob($outputDirName . '/*'); if (count($fileCount) != 0) { // 圧縮 createTarGz($dirName, $outputDateYm); } // 一次ディレクトリ削除 $log =& $core->getLogger('output_history_log:outputLogData'); deleteDir($outputDirName); $log->info("deleteDir.{$outputDirName}"); }
$autoAffirmSeikaList = $autoAffirmSeikaListGroupByAnken[$ankenId]; // CSVデータ foreach ($autoAffirmSeikaList as $autoAffirmSeika) { $csvFields = array(); foreach (explode(',', $resultList) as $k => $v) { $csvFields[] .= $autoAffirmSeika[$v]; } $csvData[] = implode(',', $csvFields); } } $csvData[] = ""; $mail_message .= "\r\n"; } } // ファイル出力 $path = outputCsvFile($csvData); // メール文面を設定 // 処理結果をメールで送信する sendMailTo($mail_message, $subject, $path); // ファイル削除 deleteCsvFile(); } catch (Exception $e) { // エラーメッセージをメールで送信 // メール件名 $subject = "成果反映処理結果:エラー"; // メール文面を設定 $message = __FUNCTION__ . "\n"; $message .= $e->toText(); sendMailTo($message, $subject); } /**