73 lines
3.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""実消化&アルトマーク アルトマーク取込/データ出力処理"""
from src.batch.common.batch_context import BatchContext
from src.batch.ultmarc import import_ultmarc_process, output_dcf_dsf_data
from src.error.exceptions import BatchOperationException
from src.logging.get_logger import get_logger
from src.manager.jskult_batch_status_manager import JskultBatchStatusManager
from src.manager.jskult_hdke_tbl_manager import JskultHdkeTblManager
from src.system_var import constants
logger = get_logger('アルトマーク取込/データ出力')
# バッチ共通設定を取得
batch_context = BatchContext.get_instance()
def exec():
logger.info('アルトマーク取込/データ出力:開始')
hdke_tbl_manager = JskultHdkeTblManager()
batch_status_manager = JskultBatchStatusManager(
constants.PROCESS_NAME_ULTMARC_IO,
constants.PROCESS_TYPE_DATA_IMPORT,
0, # 最大起動回数は使用しないため、0をセット
0, # 受信ファイル数は使用しないため、0をセット
)
# バッチステータスを処理開始に変更
batch_status_manager.set_process_status(constants.PROCESS_STATUS_START)
try:
if not hdke_tbl_manager.can_run_process():
logger.error('日次バッチ処理中またはdump取得が正常終了していないため、日次バッチ処理を終了します。')
return constants.BATCH_EXIT_CODE_SUCCESS
except BatchOperationException as e:
logger.exception(f'日付テーブルチェック処理エラー(異常終了){e}')
# バッチステータスをエラーに変更
batch_status_manager.set_process_status(constants.PROCESS_STATUS_ERROR)
return constants.BATCH_EXIT_CODE_SUCCESS
_, _, syor_date = hdke_tbl_manager.get_batch_statuses()
logger.info(f'処理日={syor_date}')
# バッチ共通設定に処理日を追加
batch_context.syor_date = syor_date
# バッチステータスを処理中を変更
batch_status_manager.set_process_status(constants.PROCESS_STATUS_DOING)
try:
logger.info('アルトマーク取込:起動')
import_ultmarc_process.exec_import()
logger.info('アルトマーク取込:終了')
except BatchOperationException as e:
logger.exception(f'アルトマーク取込処理エラー(異常終了){e}')
# バッチステータスをエラーに変更
batch_status_manager.set_process_status(constants.PROCESS_STATUS_ERROR)
return constants.BATCH_EXIT_CODE_SUCCESS
try:
logger.info('実消化用DCF/DSFデータ作成処理起動')
output_dcf_dsf_data.exec()
logger.info('実消化用DCF/DSFデータ作成処理終了')
except BatchOperationException as e:
logger.exception(f'実消化用施設DCF/DSF作成処理エラー異常終了{e}')
# バッチステータスをエラーに変更
batch_status_manager.set_process_status(constants.PROCESS_STATUS_ERROR)
return constants.BATCH_EXIT_CODE_SUCCESS
# バッチステータスを処理済に変更
batch_status_manager.set_process_status(constants.PROCESS_STATUS_DONE)
logger.info('アルトマーク取込/データ出力:終了')
return constants.BATCH_EXIT_CODE_SUCCESS