fix:SAPデータ日次受領チェック処理 動作確認時に発生したエラーを修正した

This commit is contained in:
*lcOeIaePm0 2022-05-24 23:05:16 +09:00
parent 211210b027
commit c6f07b94a3
2 changed files with 45 additions and 45 deletions

View File

@ -38,8 +38,8 @@ def lambda_handler(event, context):
try: try:
# ① 処理開始ログを出力する # ① 処理開始ログを出力する
print_log(LOG_INFO, 'I-01-01', '処理開始 SAP_finデータ受領チェック処理日次') print_log(LOG_INFO, 'I-01-01', '処理開始 SAP_finデータ受領チェック処理日次')
today = datetime.date.today().strftime('%Y/%m/%d') execute_date = datetime.date.today().strftime('%Y/%m/%d')
print_log(LOG_INFO, 'I-01-02', f'処理稼働日:{today}') print_log(LOG_INFO, 'I-01-02', f'処理稼働日:{execute_date}')
mail_msg = '' mail_msg = ''
# ② 営業日チェック処理を行う # ② 営業日チェック処理を行う
@ -52,26 +52,26 @@ def lambda_handler(event, context):
non_business_day_response = non_business_day_obj.get() non_business_day_response = non_business_day_obj.get()
print_log(LOG_INFO, 'I-02-03', '非営業日設定ファイルを読み込みました') print_log(LOG_INFO, 'I-02-03', '非営業日設定ファイルを読み込みました')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-02-01', '非営業日設定ファイルの読み込みに失敗しました') print_log(LOG_ERROR, 'E-02-01', f'非営業日設定ファイルの読み込みに失敗しました エラー内容:{e}')
error_process('E-02-01', e) error_exit('E-02-01', e)
# 2.処理稼働日が「②1.」で読み込んだ「メルク社非営業日設定ファイル」に存在するか確認する # 2.処理稼働日が「②1.」で読み込んだ「メルク社非営業日設定ファイル」に存在するか確認する
try: try:
print_log(LOG_INFO, 'I-02-04', f'本日が非営業日かチェックします チェック日:{today}') print_log(LOG_INFO, 'I-02-04', f'本日が非営業日かチェックします チェック日:{execute_date}')
none_business_day_list = [] none_business_day_list = []
for i, row in enumerate(io.TextIOWrapper(io.BytesIO(non_business_day_response["Body"].read()), encoding='utf-8'), 1): for i, row in enumerate(io.TextIOWrapper(io.BytesIO(non_business_day_response["Body"].read()), encoding='utf-8'), 1):
if row[INDEX_ROW_COMMENT_SYMBOL] == ROW_COMMENT_SYMBOL: if row[INDEX_ROW_COMMENT_SYMBOL] == ROW_COMMENT_SYMBOL:
continue continue
non_date = datetime.datetime.strptime(row, "%Y/%m/%d").strftime('%Y/%m/%d') non_date = datetime.datetime.strptime(row.rstrip('\n'), "%Y/%m/%d").strftime('%Y/%m/%d')
none_business_day_list .append(non_date) none_business_day_list .append(non_date)
if today in none_business_day_list: if execute_date in none_business_day_list:
print_log(LOG_INFO, 'I-02-05', '本日は非営業日のため、チェック処理をスキップします') print_log(LOG_INFO, 'I-02-05', '本日は非営業日のため、チェック処理をスキップします')
sys.exit() sys.exit()
else: else:
print_log(LOG_INFO, 'I-02-06', '本日は営業日のため、チェック処理を実施します') print_log(LOG_INFO, 'I-02-06', '本日は営業日のため、チェック処理を実施します')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-02-02', f'メルク社非営業日設定ファイルに不備があります 行数:{i}') print_log(LOG_ERROR, 'E-02-02', f'メルク社非営業日設定ファイルに不備があります 行数:{i} エラー内容:{e}')
error_process('E-02-02', e) error_exit('E-02-02', e)
# ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル日次]を読み込む # ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル日次]を読み込む
try: try:
@ -80,15 +80,15 @@ def lambda_handler(event, context):
receive_daily_file_name_response = receive_daily_file_name_obj.get() receive_daily_file_name_response = receive_daily_file_name_obj.get()
print_log(LOG_INFO, 'I-03-02', '日次I/Fファイルネーム設定ファイルを読み込みました') print_log(LOG_INFO, 'I-03-02', '日次I/Fファイルネーム設定ファイルを読み込みました')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-03-01', '日次I/Fファイルネーム設定ファイルの読み込みに失敗しました') print_log(LOG_ERROR, 'E-03-01', f'日次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
error_process('E-03-01', e) error_exit('E-03-01', e)
# ④ 日次チェック処理を行う # ④ 日次チェック処理を行う
print_log(LOG_INFO, 'I-04-01', '日次チェック処理開始') print_log(LOG_INFO, 'I-04-01', '日次チェック処理開始')
# 1.SAP保管用バケットの処理稼働日に該当するサブフォルダにあるファイル一覧を取得する # 1.SAP保管用バケットの処理稼働日に該当するサブフォルダにあるファイル一覧を取得する
print_log(LOG_INFO, 'I-04-02', f'オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{today}/') print_log(LOG_INFO, 'I-04-02', f'オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_date}/')
object_prefix = f'{today}/' object_prefix = f'{execute_date}/'
object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix) object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix)
# 2.日次I/Fファイルチェック処理 # 2.日次I/Fファイルチェック処理
@ -121,7 +121,7 @@ def lambda_handler(event, context):
if len(mail_msg) > 0: if len(mail_msg) > 0:
# 1.存在した場合 # 1.存在した場合
print_log(LOG_INFO, 'I-05-02', f'{today} 日次I/Fファイルに不足があるため、メール送信処理を開始します') print_log(LOG_INFO, 'I-05-02', f'{execute_date} 日次I/Fファイルに不足があるため、メール送信処理を開始します')
try: try:
print_log(LOG_INFO, 'I-05-03', f'通知メール(タイトル)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NOTICE_MAIL_TITLE_TEMPLATE_PATH}') print_log(LOG_INFO, 'I-05-03', f'通知メール(タイトル)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NOTICE_MAIL_TITLE_TEMPLATE_PATH}')
@ -129,8 +129,8 @@ def lambda_handler(event, context):
mail_title = mail_title_obj['Body'].read().decode('utf-8') mail_title = mail_title_obj['Body'].read().decode('utf-8')
print_log(LOG_INFO, 'I-05-04', '通知メール(タイトル)テンプレートファイルを読み込みました') print_log(LOG_INFO, 'I-05-04', '通知メール(タイトル)テンプレートファイルを読み込みました')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-05-01', '通知メール(タイトル)テンプレートファイルの読み込みに失敗しました') print_log(LOG_ERROR, 'E-05-01', f'通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e}')
error_process('E-05-01', e) error_exit('E-05-01', e)
try: try:
print_log(LOG_INFO, 'I-05-05', f'通知メール(本文)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NOTICE_MAIL_BODY_TEMPLATE_PATH}') print_log(LOG_INFO, 'I-05-05', f'通知メール(本文)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NOTICE_MAIL_BODY_TEMPLATE_PATH}')
@ -139,8 +139,8 @@ def lambda_handler(event, context):
mail_body = mail_body_response.replace(MAIL_BODY_REPLACE_SYMBOL, mail_msg) mail_body = mail_body_response.replace(MAIL_BODY_REPLACE_SYMBOL, mail_msg)
print_log(LOG_INFO, 'I-05-06', '通知メール(本文)テンプレートファイルを読み込みました') print_log(LOG_INFO, 'I-05-06', '通知メール(本文)テンプレートファイルを読み込みました')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-05-02', '通知メール(本文)テンプレートファイルの読み込みに失敗しました') print_log(LOG_ERROR, 'E-05-02', f'通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e}')
error_process('E-05-02', e) error_exit('E-05-02', e)
print_log(LOG_INFO, 'I-05-07', f'メール送信指示をします 送信先トピック:{MBJ_SAP_NOTICE_TOPIC}') print_log(LOG_INFO, 'I-05-07', f'メール送信指示をします 送信先トピック:{MBJ_SAP_NOTICE_TOPIC}')
params = { params = {
@ -152,13 +152,13 @@ def lambda_handler(event, context):
print_log(LOG_INFO, 'I-05-08', 'メール送信指示をしました') print_log(LOG_INFO, 'I-05-08', 'メール送信指示をしました')
else: else:
# 2.存在しない場合 # 2.存在しない場合
print_log(LOG_INFO, 'I-05-09', f'{today} 日次I/Fファイルに不足がなかったため、メール送信処理をスキップします') print_log(LOG_INFO, 'I-05-09', f'{execute_date} 日次I/Fファイルに不足がなかったため、メール送信処理をスキップします')
# ⑥ 処理終了ログを出力する # ⑥ 処理終了ログを出力する
print_log(LOG_INFO, 'I-06-01', '処理終了 SAP_finデータ受領チェック処理日次') print_log(LOG_INFO, 'I-06-01', '処理終了 SAP_finデータ受領チェック処理日次')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-99', f'想定外のエラーが発生しました エラー内容:{e}') print_log(LOG_ERROR, 'E-99', f'想定外のエラーが発生しました エラー内容:{e}')
error_process('E-99', e) error_exit('E-99', e)
def print_log(log_level, log_id, msg): def print_log(log_level, log_id, msg):
@ -166,10 +166,10 @@ def print_log(log_level, log_id, msg):
print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} {log_level} {log_id} {msg}') print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} {log_level} {log_id} {msg}')
except Exception as e: except Exception as e:
print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} Error E-99 想定外のエラーが発生しました エラー内容:{e}') print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} Error E-99 想定外のエラーが発生しました エラー内容:{e}')
error_process('E-99', e) error_exit('E-99', e)
def error_process(error_log_id, exception): def error_exit(error_log_id, exception):
try: try:
print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} Error E-ERR-01 エラー処理開始') print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} Error E-ERR-01 エラー処理開始')

View File

@ -25,7 +25,7 @@ LOG_ERROR = 'Error'
INDEX_REGEX = 0 INDEX_REGEX = 0
INDEX_DATA_NAME = 1 INDEX_DATA_NAME = 1
INDEX_ROW_COMMENT_SYMBOL = 0 INDEX_ROW_COMMENT_SYMBOL = 0
INDEX_SPLIT_NUM = 0 INDEX_SPLIT_NUM = 1
INDEX_LAST = -1 INDEX_LAST = -1
# 変数 # 変数
@ -38,8 +38,8 @@ def lambda_handler(event, context):
try: try:
# ① 処理開始ログを出力する # ① 処理開始ログを出力する
print_log(LOG_INFO, 'I-01-01', '処理開始 SAP_supデータ受領チェック処理日次') print_log(LOG_INFO, 'I-01-01', '処理開始 SAP_supデータ受領チェック処理日次')
today = datetime.date.today().strftime('%Y/%m/%d') execute_date = datetime.date.today().strftime('%Y/%m/%d')
print_log(LOG_INFO, 'I-01-02', f'処理稼働日:{today}') print_log(LOG_INFO, 'I-01-02', f'処理稼働日:{execute_date}')
mail_msg = '' mail_msg = ''
# ② 営業日チェック処理を行う # ② 営業日チェック処理を行う
@ -52,26 +52,26 @@ def lambda_handler(event, context):
non_business_day_response = non_business_day_obj.get() non_business_day_response = non_business_day_obj.get()
print_log(LOG_INFO, 'I-02-03', '非営業日設定ファイルを読み込みました') print_log(LOG_INFO, 'I-02-03', '非営業日設定ファイルを読み込みました')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-02-01', '非営業日設定ファイルの読み込みに失敗しました') print_log(LOG_ERROR, 'E-02-01', f'非営業日設定ファイルの読み込みに失敗しました エラー内容:{e}')
error_process('E-02-01', e) error_exit('E-02-01', e)
# 2.処理稼働日が「②1.」で読み込んだ「メルク社非営業日設定ファイル」に存在するか確認する # 2.処理稼働日が「②1.」で読み込んだ「メルク社非営業日設定ファイル」に存在するか確認する
try: try:
print_log(LOG_INFO, 'I-02-04', f'本日が非営業日かチェックします チェック日:{today}') print_log(LOG_INFO, 'I-02-04', f'本日が非営業日かチェックします チェック日:{execute_date}')
none_business_day_list = [] none_business_day_list = []
for i, row in enumerate(io.TextIOWrapper(io.BytesIO(non_business_day_response["Body"].read()), encoding='utf-8'), 1): for i, row in enumerate(io.TextIOWrapper(io.BytesIO(non_business_day_response["Body"].read()), encoding='utf-8'), 1):
if row[INDEX_ROW_COMMENT_SYMBOL] == ROW_COMMENT_SYMBOL: if row[INDEX_ROW_COMMENT_SYMBOL] == ROW_COMMENT_SYMBOL:
continue continue
non_date = datetime.datetime.strptime(row, "%Y/%m/%d").strftime('%Y/%m/%d') non_date = datetime.datetime.strptime(row.rstrip('\n'), "%Y/%m/%d").strftime('%Y/%m/%d')
none_business_day_list .append(non_date) none_business_day_list .append(non_date)
if today in none_business_day_list: if execute_date in none_business_day_list:
print_log(LOG_INFO, 'I-02-05', '本日は非営業日のため、チェック処理をスキップします') print_log(LOG_INFO, 'I-02-05', '本日は非営業日のため、チェック処理をスキップします')
sys.exit() sys.exit()
else: else:
print_log(LOG_INFO, 'I-02-06', '本日は営業日のため、チェック処理を実施します') print_log(LOG_INFO, 'I-02-06', '本日は営業日のため、チェック処理を実施します')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-02-02', f'メルク社非営業日設定ファイルに不備があります 行数:{i}') print_log(LOG_ERROR, 'E-02-02', f'メルク社非営業日設定ファイルに不備があります 行数:{i} エラー内容:{e}')
error_process('E-02-02', e) error_exit('E-02-02', e)
# ③ 設定ファイル[SAP_supI/Fファイルネーム設定ファイル日次]を読み込む # ③ 設定ファイル[SAP_supI/Fファイルネーム設定ファイル日次]を読み込む
try: try:
@ -80,15 +80,15 @@ def lambda_handler(event, context):
receive_daily_file_name_response = receive_daily_file_name_obj.get() receive_daily_file_name_response = receive_daily_file_name_obj.get()
print_log(LOG_INFO, 'I-03-02', '日次I/Fファイルネーム設定ファイルを読み込みました') print_log(LOG_INFO, 'I-03-02', '日次I/Fファイルネーム設定ファイルを読み込みました')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-03-01', '日次I/Fファイルネーム設定ファイルの読み込みに失敗しました') print_log(LOG_ERROR, 'E-03-01', f'日次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
error_process('E-03-01', e) error_exit('E-03-01', e)
# ④ 日次チェック処理を行う # ④ 日次チェック処理を行う
print_log(LOG_INFO, 'I-04-01', '日次チェック処理開始') print_log(LOG_INFO, 'I-04-01', '日次チェック処理開始')
# 1.SAP保管用バケットの処理稼働日に該当するサブフォルダにあるファイル一覧を取得する # 1.SAP保管用バケットの処理稼働日に該当するサブフォルダにあるファイル一覧を取得する
print_log(LOG_INFO, 'I-04-02', f'オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{today}/') print_log(LOG_INFO, 'I-04-02', f'オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_date}/')
object_prefix = f'{today}/' object_prefix = f'{execute_date}/'
object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix) object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix)
# 2.日次I/Fファイルチェック処理 # 2.日次I/Fファイルチェック処理
@ -121,7 +121,7 @@ def lambda_handler(event, context):
if len(mail_msg) > 0: if len(mail_msg) > 0:
# 1.存在した場合 # 1.存在した場合
print_log(LOG_INFO, 'I-05-02', f'{today} 日次I/Fファイルに不足があるため、メール送信処理を開始します') print_log(LOG_INFO, 'I-05-02', f'{execute_date} 日次I/Fファイルに不足があるため、メール送信処理を開始します')
try: try:
print_log(LOG_INFO, 'I-05-03', f'通知メール(タイトル)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NOTICE_MAIL_TITLE_TEMPLATE_PATH}') print_log(LOG_INFO, 'I-05-03', f'通知メール(タイトル)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NOTICE_MAIL_TITLE_TEMPLATE_PATH}')
@ -129,8 +129,8 @@ def lambda_handler(event, context):
mail_title = mail_title_obj['Body'].read().decode('utf-8') mail_title = mail_title_obj['Body'].read().decode('utf-8')
print_log(LOG_INFO, 'I-05-04', '通知メール(タイトル)テンプレートファイルを読み込みました') print_log(LOG_INFO, 'I-05-04', '通知メール(タイトル)テンプレートファイルを読み込みました')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-05-01', '通知メール(タイトル)テンプレートファイルの読み込みに失敗しました') print_log(LOG_ERROR, 'E-05-01', f'通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e}')
error_process('E-05-01', e) error_exit('E-05-01', e)
try: try:
print_log(LOG_INFO, 'I-05-05', f'通知メール(本文)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NOTICE_MAIL_BODY_TEMPLATE_PATH}') print_log(LOG_INFO, 'I-05-05', f'通知メール(本文)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NOTICE_MAIL_BODY_TEMPLATE_PATH}')
@ -139,8 +139,8 @@ def lambda_handler(event, context):
mail_body = mail_body_response.replace(MAIL_BODY_REPLACE_SYMBOL, mail_msg) mail_body = mail_body_response.replace(MAIL_BODY_REPLACE_SYMBOL, mail_msg)
print_log(LOG_INFO, 'I-05-06', '通知メール(本文)テンプレートファイルを読み込みました') print_log(LOG_INFO, 'I-05-06', '通知メール(本文)テンプレートファイルを読み込みました')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-05-02', '通知メール(本文)テンプレートファイルの読み込みに失敗しました') print_log(LOG_ERROR, 'E-05-02', f'通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e}')
error_process('E-05-02', e) error_exit('E-05-02', e)
print_log(LOG_INFO, 'I-05-07', f'メール送信指示をします 送信先トピック:{MBJ_SAP_NOTICE_TOPIC}') print_log(LOG_INFO, 'I-05-07', f'メール送信指示をします 送信先トピック:{MBJ_SAP_NOTICE_TOPIC}')
params = { params = {
@ -152,13 +152,13 @@ def lambda_handler(event, context):
print_log(LOG_INFO, 'I-05-08', 'メール送信指示をしました') print_log(LOG_INFO, 'I-05-08', 'メール送信指示をしました')
else: else:
# 2.存在しない場合 # 2.存在しない場合
print_log(LOG_INFO, 'I-05-09', f'{today} 日次I/Fファイルに不足がなかったため、メール送信処理をスキップします') print_log(LOG_INFO, 'I-05-09', f'{execute_date} 日次I/Fファイルに不足がなかったため、メール送信処理をスキップします')
# ⑥ 処理終了ログを出力する # ⑥ 処理終了ログを出力する
print_log(LOG_INFO, 'I-06-01', '処理終了 SAP_supデータ受領チェック処理日次') print_log(LOG_INFO, 'I-06-01', '処理終了 SAP_supデータ受領チェック処理日次')
except Exception as e: except Exception as e:
print_log(LOG_ERROR, 'E-99', f'想定外のエラーが発生しました エラー内容:{e}') print_log(LOG_ERROR, 'E-99', f'想定外のエラーが発生しました エラー内容:{e}')
error_process('E-99', e) error_exit('E-99', e)
def print_log(log_level, log_id, msg): def print_log(log_level, log_id, msg):
@ -166,10 +166,10 @@ def print_log(log_level, log_id, msg):
print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} {log_level} {log_id} {msg}') print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} {log_level} {log_id} {msg}')
except Exception as e: except Exception as e:
print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} Error E-99 想定外のエラーが発生しました エラー内容:{e}') print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} Error E-99 想定外のエラーが発生しました エラー内容:{e}')
error_process('E-99', e) error_exit('E-99', e)
def error_process(error_log_id, exception): def error_exit(error_log_id, exception):
try: try:
print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} Error E-ERR-01 エラー処理開始') print(f'{datetime.datetime.now():%Y-%m-%d %H:%M:%S} Error E-ERR-01 エラー処理開始')