ec6b51f2a8
outp_msg_cd(NCMM00001) / outp_msg_ctnt(정상처리되었습니다.) 가 표준전문 레이아웃의 기본값으로 붙어 있어서, "아무도 채우지 않은 상태" 와 "정상이라고 판정한 상태" 가 값만으로 구분되지 않았다. 2026-09 사고에서 MSG 부 파싱이 통째로 스킵됐는데도 오류가 "정상처리되었습니다." 로 보고된 것이 이 때문이다. 레이아웃 기본값을 없애고, StandardMessageCoordinatorDJB.coordinateBeforeResponse 에서 정상 응답일 때만 채운다. 이 메서드는 모든 동기 응답이 거치는 마지막 관문이라 (RequestProcessor 에서 호출) 경로를 빠짐없이 덮는다. 두 조건을 함께 본다. - 정상 응답(procs_rslt_dvcd=S) 일 때만. 오류 응답에 정상 메시지를 채우면 사고 재현이다. - 값이 비어 있을 때만(setIfBlank). 대외계가 표준응답으로 보낸 MSG 가 우선이며 덮어쓰면 JsonReader 의 MSG 부 보존 수정이 무의미해진다. 테스트: 기존 3건이 coordinateAfterRecvNonStdSyncResponse 직후에 단정하고 있었으나 값은 이제 마지막 관문에서 채워지므로, 실제 흐름대로 coordinateBeforeResponse 까지 거치도록 고치고 단정도 "공백 아님" 에서 상수 일치로 강화했다. 설계 조건을 지키는 회귀 테스트 2건을 추가했다. - 오류응답에는_정상메시지가_채워지지_않는다 - 대외계가_보낸_MSG_값은_덮어쓰지_않는다 주의: 이 CSV 는 layout.file.type=CSV 인 테스트 설정에서만 쓰인다. 운영은 DB 레이아웃을 읽으므로 DB 의 두 항목 기본값도 함께 비워야 실제 효과가 있다. 비우기 전까지는 setIfBlank 가 아무것도 하지 않아 기존과 동일하게 동작한다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UnybKuxcuPafGhVGh4wqkZ
5.7 KiB
5.7 KiB
| 1 | #----------------------------------------------------------------------------- |
|---|---|
| 2 | # comment start with # |
| 3 | # level; // 0 : root ~ n |
| 4 | # type; // 0: Message, 1: Field, 2:Group 3, Grid, 4 : Field Array, 9 : BIZ DATA |
| 5 | # size // 0 : variable, > 0 fixed |
| 6 | # fieldType; // 0: ELEMENT, 1: ATTRIBUTE, |
| 7 | # length; |
| 8 | # dataType; // 1: String, 2: Number, 11: ZZ String, 12: LL_NUMBER(LL prefix auto) |
| 9 | #----------------------------------------------------------------------------- |
| 10 | # name ,level ,type ,size ,fieldType ,length ,dataType ,refPath, refValue, value |
| 11 | #----------------------------------------------------------------------------- |
| 12 | # ============================================================ |
| 13 | # HEAD - 헤더영역 (시스템헤더부 + 공통부) |
| 14 | # ============================================================ |
| 15 | HEAD,1,3,1,1,0,1,,, |
| 16 | stnd_mesg_len,2,2,1,1,8,12,,, |
| 17 | nxgn_stnd_idfr,2,2,1,1,4,1,,,JERA |
| 18 | guid,2,2,1,1,40,1,,, |
| 19 | guid_prgs_no,2,2,1,1,3,2,,,001 |
| 20 | stnd_mesg_ver,2,2,1,1,3,1,,,R10 |
| 21 | ortr_guid,2,2,1,1,40,1,,, |
| 22 | sect_ecrpt_yn,2,2,1,1,1,1,,,N |
| 23 | frst_trnm_ipad,2,2,1,1,40,1,,, |
| 24 | frst_trnm_ipv4_addr,2,2,1,1,15,1,,, |
| 25 | frst_trnm_mac,2,2,1,1,17,1,,, |
| 26 | frst_mesg_dman_dt,2,2,1,1,8,1,,, |
| 27 | frst_mesg_dman_time,2,2,1,1,9,1,,, |
| 28 | frst_trnm_sys_dvcd,2,2,1,1,3,1,,,OPA |
| 29 | trnm_sys_dvcd,2,2,1,1,3,1,,,EAI |
| 30 | mesg_rspn_dt,2,2,1,1,8,1,,, |
| 31 | mesg_rspn_time,2,2,1,1,9,1,,, |
| 32 | dman_rspn_dvcd,2,2,1,1,1,1,,,S |
| 33 | otsd_tmot_occu_rspn_yn,2,2,1,1,1,1,,, |
| 34 | sys_env_dvcd,2,2,1,1,1,1,,,D |
| 35 | tx_tycd,2,2,1,1,1,1,,,O |
| 36 | synz_dvcd,2,2,1,1,1,1,,,S |
| 37 | tx_id,2,2,1,1,12,1,,, |
| 38 | procs_rslt_dvcd,2,2,1,1,1,1,,,S |
| 39 | procs_rslt_romsg_tx_id,2,2,1,1,12,1,,, |
| 40 | chnl_tycd,2,2,1,1,3,1,,,EAI |
| 41 | chnl_dtls_clcd,2,2,1,1,3,1,,, |
| 42 | xtis_cd,2,2,1,1,3,1,,, |
| 43 | osdch_dvcd,2,2,1,1,3,1,,, |
| 44 | lnkd_seqno,2,2,1,1,3,2,,, |
| 45 | if_id,2,2,1,1,30,1,,, |
| 46 | hmab_dvcd,2,2,1,1,1,1,,, |
| 47 | mci_sesn_id,2,2,1,1,8,1,,, |
| 48 | mci_node_dvcd,2,2,1,1,2,1,,, |
| 49 | eai_node_dvcd,2,2,1,1,2,1,,, |
| 50 | fep_node_dvcd,2,2,1,1,2,1,,, |
| 51 | fep_sesn_id,2,2,1,1,8,1,,, |
| 52 | ortr_restr_yn,2,2,1,1,1,1,,, |
| 53 | input_mesg_tycd,2,2,1,1,1,1,,, |
| 54 | outp_mesg_tycd,2,2,1,1,1,1,,, |
| 55 | mesg_cnty_seqno,2,2,1,1,3,2,,, |
| 56 | msg_trnm_tycd,2,2,1,1,1,1,,, |
| 57 | msg_trnm_brcd,2,2,1,1,3,1,,, |
| 58 | msg_trnm_tlrno,2,2,1,1,6,1,,, |
| 59 | tx_cmgr_cd,2,2,1,1,4,1,,,S004 |
| 60 | mgmt_brcd,2,2,1,1,3,1,,,260 |
| 61 | tx_brcd,2,2,1,1,3,1,,,260 |
| 62 | insl_brcd,2,2,1,1,3,1,,,260 |
| 63 | blng_brcd,2,2,1,1,3,1,,,260 |
| 64 | corp_tlwn_virt_brcd,2,2,1,1,3,1,,, |
| 65 | tlrno,2,2,1,1,6,1,,, |
| 66 | telr_jcls_cd,2,2,1,1,2,1,,, |
| 67 | clsn_bfaf_dvcd,2,2,1,1,1,1,,, |
| 68 | tlwn_dvcd,2,2,1,1,1,1,,, |
| 69 | scfc_tmnl_dvcd,2,2,1,1,2,1,,, |
| 70 | telr_cnfr_trgt_yn,2,2,1,1,1,1,,, |
| 71 | telr_cnfr_yn,2,2,1,1,1,1,,, |
| 72 | prcg_aprv_typ_dvcd,2,2,1,1,1,1,,, |
| 73 | sq1_aprv_media_dvcd,2,2,1,1,1,1,,, |
| 74 | sq1_aprv_prcg_empno,2,2,1,1,6,1,,, |
| 75 | sq1_aprv_prcg_athn_no,2,2,1,1,32,1,,, |
| 76 | sq2_aprv_media_dvcd,2,2,1,1,1,1,,, |
| 77 | sq2_aprv_prcg_empno,2,2,1,1,6,1,,, |
| 78 | sq2_aprv_prcg_athn_no,2,2,1,1,32,1,,, |
| 79 | main_scn_id,2,2,1,1,12,1,,, |
| 80 | tx_scn_id,2,2,1,1,12,1,,, |
| 81 | pb_seqno,2,2,1,1,5,2,,, |
| 82 | pb_ms_read_yn,2,2,1,1,1,1,,, |
| 83 | pb_print_conn_yn,2,2,1,1,1,1,,, |
| 84 | dgtl_tlwn_dvcd,2,2,1,1,1,1,,, |
| 85 | idc_scan_rnno,2,2,1,1,32,1,,, |
| 86 | idc_scan_no,2,2,1,1,25,1,,, |
| 87 | ctsed_dt,2,2,1,1,8,1,,, |
| 88 | reckn_dt,2,2,1,1,8,1,,, |
| 89 | slip_no,2,2,1,1,5,2,,, |
| 90 | gnrz_tmot_tktm,2,2,1,1,3,2,,,35 |
| 91 | tx_tmot_tktm,2,2,1,1,3,2,,,30 |
| 92 | idvd_info_iqry_prps_dvcd,2,2,1,1,3,1,,, |
| 93 | idvd_info_iqry_rsn,2,2,1,1,100,1,,, |
| 94 | rprs_msg_cd,2,2,1,1,12,1,,, |
| 95 | # ============================================================ |
| 96 | # EZDATA - 전자금융공통영역 (corp_tlwn_virt_brcd=ERP 조건부) |
| 97 | # ============================================================ |
| 98 | EZDATA,1,3,0,1,0,1,HEAD.corp_tlwn_virt_brcd,ERP, |
| 99 | login_mhod_dvcd,2,2,1,1,1,1,,, |
| 100 | elfn_bnkn_dvcd,2,2,1,1,2,1,,,01 |
| 101 | usr_no,2,2,1,1,16,1,,, |
| 102 | rgsr_id,2,2,1,1,16,1,,, |
| 103 | svr_tx_seqno,2,2,1,1,10,2,,, |
| 104 | tx_seqno,2,2,1,1,10,2,,, |
| 105 | priqr_tx_seqno,2,2,1,1,10,2,,, |
| 106 | secu_media_dvcd,2,2,1,1,2,1,,,00 |
| 107 | secu_media_sta_dvcd,2,2,1,1,2,1,,,00 |
| 108 | brll_srcd_yn,2,2,1,1,1,1,,,N |
| 109 | sq1_srcd_indc_no,2,2,1,1,2,2,,, |
| 110 | sq1_srcd_pswd,2,2,1,1,32,1,,, |
| 111 | sq2_srcd_indc_no,2,2,1,1,2,2,,, |
| 112 | sq2_srcd_pswd,2,2,1,1,32,1,,, |
| 113 | otp_athn_val,2,2,1,1,6,1,,, |
| 114 | secu_media_seqno_dman_val,2,2,1,1,4,1,,, |
| 115 | secu_media_seqno_athn_val,2,2,1,1,4,1,,, |
| 116 | next_data_exis_yn,2,2,1,1,1,1,,, |
| 117 | page_no,2,2,1,1,5,2,,, |
| 118 | page_size,2,2,1,1,5,2,,, |
| 119 | ttcnt,2,2,1,1,5,2,,, |
| 120 | iqry_ccnt,2,2,1,1,5,2,,, |
| 121 | next_data_info,2,2,1,1,100,1,,, |
| 122 | cstno,2,2,1,1,10,2,,, |
| 123 | otp_expr_gdnc_yn,2,2,1,1,1,1,,,N |
| 124 | dup_tx_yn,2,2,1,1,1,1,,,N |
| 125 | cpu_id_no,2,2,1,1,64,1,,, |
| 126 | elfn_mac,2,2,1,1,17,1,,, |
| 127 | hdd_srial_no,2,2,1,1,64,1,,, |
| 128 | main_board_srial_no,2,2,1,1,64,1,,, |
| 129 | pc_ofcl_ipad,2,2,1,1,40,1,,, |
| 130 | pc_prvat_ipad,2,2,1,1,40,1,,, |
| 131 | smph_old_unq_no,2,2,1,1,32,1,,, |
| 132 | smph_nw_unq_no,2,2,1,1,32,1,,, |
| 133 | smph_mac,2,2,1,1,12,1,,, |
| 134 | smph_modl_no,2,2,1,1,20,1,,, |
| 135 | ostp_cd,2,2,1,1,1,1,,, |
| 136 | mcco_dvcd,2,2,1,1,1,1,,, |
| 137 | elfn_use_tlno,2,2,1,1,12,1,,, |
| 138 | addt_athn_yn,2,2,1,1,1,1,,, |
| 139 | addt_athn_meth_dvcd,2,2,1,1,1,1,,, |
| 140 | abr_ip_yn,2,2,1,1,1,1,,,N |
| 141 | login_dt,2,2,1,1,8,1,,, |
| 142 | login_time,2,2,1,1,6,1,,, |
| 143 | cst_nm,2,2,1,1,100,1,,, |
| 144 | aprv_aprvl_rol_dvcd,2,2,1,1,1,1,,, |
| 145 | elfn_spr_fild,2,2,1,1,698,1,,, |
| 146 | # ============================================================ |
| 147 | # MSG - 메시지영역 (dman_rspn_dvcd != S 조건부, 응답 시) |
| 148 | # ============================================================ |
| 149 | MSG,1,3,0,1,0,1,HEAD.dman_rspn_dvcd,!S, |
| 150 | msg_dvcd,2,2,0,1,2,1,,,NM |
| 151 | msg_scop_len,2,2,0,1,8,2,,, |
| 152 | MAIN_MSG,2,3,0,1,0,1,,, |
| 153 | outp_atrb_cd,3,2,1,1,1,1,,,0 |
| 154 | outp_msg_cd,3,2,1,1,12,1,,, |
| 155 | outp_msg_ctnt,3,2,1,1,200,1,,, |
| 156 | outp_msg_desc,3,2,1,1,300,1,,, |
| 157 | mngm_msg_cd,3,2,1,1,12,1,,, |
| 158 | msg_list_rowcnt,3,2,0,1,5,2,,,0 |
| 159 | MSG_LIST,2,4,0,1,0,1,MSG.MAIN_MSG.msg_list_rowcnt,, |
| 160 | outp_msg_cd,3,2,0,1,12,1,,, |
| 161 | outp_msg_ctnt,3,2,0,1,200,1,,, |
| 162 | outp_msg_desc,3,2,0,1,300,1,,, |
| 163 | mngm_msg_cd,3,2,0,1,12,1,,, |
| 164 | err_occu_item_nm,3,2,0,1,50,1,,, |
| 165 | err_occu_loct,3,2,0,1,300,1,,, |
| 166 | err_chgr_nm,3,2,0,1,10,1,,, |
| 167 | err_chrg_cnpl_no,3,2,0,1,20,1,,, |
| 168 | # ============================================================ |
| 169 | # DATA - 데이터부 |
| 170 | # ============================================================ |
| 171 | DATA,1,4,1,1,0,1,,, |
| 172 | data_dvcd,2,2,1,1,2,1,,,IO |
| 173 | data_scop_len,2,2,1,1,8,2,,, |
| 174 | BIZ_DATA,2,9,1,1,0,1,,, |