Source: ABAP main program ZTAXA_R01 (header, change history and event blocks) อ่านเมื่อ 31-Aug-2026 · ชื่อผู้แก้ในโค้ดถูกตัดออก · ตีความ include ที่ไม่ได้เห็นโค้ดติดป้าย INFER
| Report | REPORT zfitaxr034 MESSAGE-ID id_wt · T-code ZTAXB_R01 · dump แสดงเป็น main program SAPLZTAXA_R01 |
| Origin (ECC) | 01-Feb-2016 · ECDK924266 “Copy report from RFIDYYWT … generate report layout by ALV Grid instead of ALV_list” · โค้ด custom หลักอยู่ใน method ZTAX_PRINT_ALV |
| Includes | I_RFIDYYWT_TOP (global) · ZTAXA_R01_TOP · ZTAXA_R01_001 (selection screen) · ZTAXA_R01_I01 (processing) · I_RFIDYYWT_F01 · I_RFIDYYWT_FICA_* · I_RFIDYYWT_I02 · ZTAXA_R01_I02 |
| Custom helpers | Function ZTAXA_R01_DISPATCHER · class ZTAXA_R_UTIL_CLASS ถือค่า static: GT_PRCTR_VAL, GT_RECID_VAL (PC/RI จากจอ), GV_LAND1, GV_OUT_GRP |
| BAdIs ที่เรียก | Country BAdI IDWTREP_ADDFUNCINT (instance exit) · User BAdI WTAXREPORT_MODIFY (instance userexit) |
IF p_land1 <> 'TH' (RPT-1) แล้วเปิดให้ TH อีกครั้งเฉพาะ output group E05 PND3 · E06 PND53 · AP2 · AP3 · background job ใช้ค่าจาก memory IDQSTRMAIN · จุดที่ PC/RI filter ลบระดับเอกสาร (ZTAXA_R01_I01) INFER จาก FUTCOMPCD · PARTNER · FIDOCZCAX_P01 (param WHT_TYPE_PND54) · ข้ามสำหรับ AP1 / AR1E05→3 · E06→4 · E07/E08→1 · E09/E10→2 แล้ว DELETE แถวอื่นใน FIDOC และ ERROR · ไฟล์ DMEEX ออกจาก standard dispatcherเงื่อนไข: ติ๊ก File และไม่ติ๊ก Form 1 / Form 2 · ใช้กับ text file (DMEEX) ของ ENH-1 / ENH-6 / ENH-5
ทุกกรณีอื่น · ALV ของ RPT-1 · ใบแนบ FRM-1 · AP2 / AP3 · output group ถูกส่งผ่าน memory ID ZTAXA_R01_OUTPUTGROUP
| Output group | ในโค้ด | ใช้กับ | หมายเหตุ |
|---|---|---|---|
AP1 · AR1 | อยู่ใน range ยกเว้น | AP1 = 50 ทวิ + แบบ PND54 (FRM-3) | ข้าม country BAdI alldata_modify และ check_witht (RPT-7) |
AP2 | gc_pnd_output-wht_54 | WHT Certificate for Thailand & Form No. 54 (ตรงกับ F4 ที่เห็นตอน FUT) | ตรวจปีของ reporting period (ENH-7) · SYS แก้ข้อขัดแย้งที่ knowledge base เขียนว่า AP2 = PND1 Kor |
AP3 | gc_pnd_output-wht_pnd1k | PND1 Kor | sum_amount_ap3 · ตัด recipient type ที่ไม่เกี่ยว · ปรับ posting/issued date (ENH-7) |
E05 / E06 | pnd3 / pnd53 | SWC text PND3 / PND53 (ENH-6) | กรอง WITHT ขึ้นต้น 3 / 4 |
E07 / E08 | pnd1 / pnd1k | SWC text PND1 / PND1 Kor (ENH-5) | กรอง WITHT ขึ้นต้น 1 |
E09 / E10 | pnd2 / pnd2k | SWC text PND2 / PND2 Kor (ENH-5) | กรอง WITHT ขึ้นต้น 2 |
R03 | (custom dispatcher) | RPT-1 ALV + ใบแนบ FRM-1 | ผ่าน check_witht |
E01–E04 · E1K · E2K | (ไม่ได้อยู่ในบล็อกนี้) | ENH-1 ใบแนบ + e-filing | จาก knowledge base / FD FD |
จาก header ของโปรแกรม + comment BOC/EOC ในโค้ด · transport ยังเก็บไว้เพื่อใช้ไล่ใน SE09/SE10
ECDK924266)DEVK900002) — MM WHT report ที่ FRM-2 พึ่งDEVK900003 / DEVK900005) · ห่อ pop-up ด้วย p_land1 <> 'TH' · เก็บ GV_LAND1DEVK900004)ZTAXA_R01_OUTPUTGROUPยังเห็นร่องรอย TAX-RPT-6 (บล็อก E05/E06 เดิมถูก comment ออก 24-Jul) และ TAX-ENH-6 / ENH-1 (BOI blocks ที่ dispatch) · รวมแล้ว 11 WRICEF แตะโปรแกรมนี้
AP1 / AR1 ข้าม check_witht และ country BAdI alldata_modify — ถ้า RPT-7 กับ RPT-1 ให้แถวไม่เท่ากัน ให้ดูตรงนี้ก่อนสงสัย data
เงื่อนไข sy-tcode <> 'ZTAXB_R01' ถูก comment ทิ้ง · ตัวจริงที่ใช้คือ GV_OUT_GRP และ memory ID ZTAXA_R01_OUTPUTGROUP — ตรงกับบทเรียนว่า background job ไม่มี T-code ให้พึ่ง
ถ้าทุกแถวถูกกรองหมด จะขึ้น 7Q 702 “No items have been selected” · ไล่ row-disappearance ladder: select → BAdI → check_witht → PC/RI → output
ENH-1 / ENH-6 / ENH-5 วิ่ง standard dispatcher ส่วน RPT-1 / FRM-1 / AP2 / AP3 วิ่ง custom dispatcher — แก้ฝั่งหนึ่งไม่ทำให้อีกฝั่งเปลี่ยน แต่ แก้ตอน select / filter กระทบทั้งคู่
1. Output group ไหนไม่ผ่าน check_witht?
2. AP2 กับ AP3 ในโค้ดคืออะไร?
wht_54 (WHT certificate & Form No. 54) · AP3 = wht_pnd1k (PND1 Kor)3. Text file ของ ENH-6 PND3 ถูกกรองอย่างไรก่อนออกไฟล์?
4. Custom dispatcher รู้ output group จากไหน?
5. แก้ check_pftctr แล้วต้อง regression อะไร?