Source: FD TAX-RPT-2 v1.0 · FUT notes (content v2, 7-Sep) · knowledge base 20-role-wricef-owner §2 (16-Oct) · ABAP = RPT-2 developer (SI)
I0 = 0%) โปรแกรมจึงมี สองทางเดิน: ทางปกติอ่าน BSET · ทาง cash call อ่าน BSEG บรรทัด vendor · กุญแจของ object นี้คือ ทุกครั้งที่อ่าน defect ให้ถามก่อนว่าเป็น path ไหน — แก้ path เดียวแล้วอีก path จะกลับมาพังเสมอBUKRS + BELNR + GJAHR + RLDNR '0L' — profit center ไม่เคย unique (Bug 2)| Title | OMAN Tax Report – Cash Call Included |
| Type / nature | Report · Retrofit (Change) · P1 · Medium |
| Program | ZTAXA_R04 — สร้างปี 2021 · HANA fix TR DEVK900001 (Sep 2025) · includes ZTAXA_R04_TOP / _PARAM / _F01 SYS |
| JVA split | CL_JVA_ENRICH_TAX_LINES=>split ทำงานเมื่อ par_xjvs (Activate JVA Splitting) SYS |
| Company code | OM01 Oman · LC1 OMR (3 dp) · LC2 USD · ไม่มี LC3 |
| Tax GL | A149X017 input · A212X020 output |
| Oman tax codes (11) | I0 · I1 5% · IX · IY · O0 · O1 5% · OX · OY · R3 RC service · R4 RC goods · U1 unclaimable |
| Geography | “overseas” (เดิม Oman-specific · อาจขยาย UAE) |
| KUT | ไม่อยู่ในคอร์สใด — เสนอ segment สั้นใน TAX-402 / TAX-408 |
| Sister object | TAX-RPT-6 (Thai VAT report + net VAT clearing) — bug multi-PC Total ตัวเดียวกัน |
ZOM ผ่าน T005-KURST) — ZOM vs mid ยังเปิด (G10 / C18)/OPT/VIM_1HEAD-SCAN_DATECash call ไม่ได้ใช้ standard SAP cash call — มาจาก Excel upload JVA-ENH-1 + workflow JVA-WFL-1 · เอกสาร JD/JK ไม่มีบรรทัดภาษี → Oman ต้องได้ tax code I0 ผ่าน substitution (user exit EJVA017) BP
VST / MWSVEN_C1 · PC C_PC29 · RI CP / NNZVAR_FULL708xxxxxxx · GL A213X025 / A213X026 · tax code I0VEN_N2 · PC N_PC39 · RI NN · Trs ว่าง · พิมพ์ Curr USD 2 dpBSEG-DMBE2 · tax LC2 = 0.00 (ไม่มี BSET)ZVAR_CCSA) ต้องไม่ ได้ tax code I0 · และ G1: SET ใน EJVA017 อ่าน GL 8 หลักแต่ S/4 ใช้ 10 → I0 อาจไม่ถูกเติม — เช็ก BSEG-MWSKZ ของ JD/JK บน A213X025 + GGB1MWS / VST / ESA / ESE / NVV + MWSKZ ตรง + venture PC ตรง — ห้ามใช้ “KTOSL ไม่ว่าง” เพราะจะติด special GL key เช่น AGD02* / 03*ACDOCA-DOCLN = BSEG-BUZEIVNAME, EGRUP, RECID, PRCTR, KSL จาก แถวเดียวกัน ที่ match · ทุก read ต้องมี key เต็ม BUKRS + BELNR + GJAHR, RLDNR = '0L'CEPC) · Recovery Indicator (validate T8JJ)| ข้อมูล | ตาราง | field / เหตุผล |
|---|---|---|
| ฐาน / ยอดภาษี, tax code (standard) | BSET | tax segment ของเอกสาร (ฐานของ RFUMSV00) |
| Cash call base | BSEG | บรรทัด vendor · DMBE2 = LC2 |
| Header | BKPF | วันที่ · เลขเอกสาร · สกุล |
| Venture / equity / RI / PC / KSL | ACDOCA (0L) | three-layer lookup ด้านบน |
| Tax ID คู่ค้า | LFA1 / KNA1 | STCD3 (นิติบุคคล) / STCD1 (บุคคล) |
| Exchange rate | T005 → TCURR | rate type KURST = ZOM |
| Tax Invoice Received Date | /OPT/VIM_1HEAD | SCAN_DATE (ส่ง BELNR / BUKRS / GJAHR) |
| รายการ | ECC | S/4HANA |
|---|---|---|
| GL cash call | 21500020 | A213X025 RCN-JVA-Vendor Cash Call |
| GL | 21500030 | A213X026 |
| Document type | CC | JD & JK |
| Tax code | I0 | I0 (ไม่เปลี่ยน) — substitute ด้วย EJVA017 |
| Selection | — | + PC (CEPC) · RI ย้ายไป Further selections |
| Output | — | + Alternative Reference · + VIM scan date → 36 คอลัมน์ (ที่เหลือ “Same as ECC”) |
| Source | classic tables | PC / segment / JVA attributes จาก ACDOCA |
A213X025, I0) · VIM จับ tax invoice + scan dateZTAXA_R04 → Company Code OM01 + งวดCash call ที่เทสจริงมี RI 2 ค่า: บรรทัด customer = NN · บรรทัด revenue = CP · segment CIT_OM — ตรวจทั้งคู่
จาก UT scripts (21-Jul), FUT verification workbook (24-Jul), test evidence + findings pack (27-Jul) และ KT sheet · ชื่อคนแทนด้วย role · ตัวเลขทั้งหมดเป็น OMR ยกเว้นระบุ
PC / RI แสดงถูกทุก run: standard = C_PC29 / CP · cash call = N_PC39 / NN · ข้อสังเกตของเรา: 5% × 481,028.571 = 24,051.429 แต่รายงานแสดง tax O1 24,076.429 (ต่าง 25.000) — ยังไม่ได้ตรวจ INFER
7 / 11 มีข้อมูลทดสอบ · IY, R3, R4, U1 ยังไม่มีเอกสาร · R3/R4 (reverse charge) ควรลงทั้ง ESA ในฝั่ง output และ ESE ในฝั่ง input → run ครบควรเห็น 13 บรรทัดภาษี ไม่ใช่ 11 · U1 ควรมี account key NVV (ลงคอลัมน์ non-deductible)
| Run | Period | JVA split | JV filter | ผล |
|---|---|---|---|---|
| A | 01.01–27.07 | No | — | ครบ: output 482,428.571- · input 3,311.619 · cash call 6,930.00 |
| B | 01.01–27.07 | Yes | VEN_C1 | เหมือน A ทุกตัว (equity 100% ของ VEN_C1) — ไม่ error |
| C | 18.05 | No | VEN_C1 | output ว่าง · cash call 15 บรรทัด 6,930.00 |
| D | 18.05 | Yes | VEN_C1 | เหมือน C — cash call ยังโชว์ venture VEN_N2 ทั้งที่กรอง VEN_C1 → D2: path B ไม่อ่าน selection screen |
JV_CC_AP_MWSKZ / JV_CC_AR_MWSKZ ต้องมีค่า S/4 JD_A213X025_I0 / JK_A213X025_I0 — ถ้ายังเป็นค่า ECC CC_21500020_I0 แปลว่า substitution (ECC: exit ZJV_EXIT, substitution ZSUB_L step 257) ไม่เติม I0 · เชื่อมกับ G1: SET อ่าน GL 8 หลักแต่ S/4 ใช้ 10 หลัก · ตรวจ: นับ JD/JK จาก dynamic selection เทียบจำนวนแถว cash call ในรายงานสีเขียว = passed · น้ำตาล = in progress / re-test · แดง = blocked · ขาว = not started (ณ 24-Jul) · key risk ของ OBJ1: “mixed-RI document อาจหายจากทุก bucket ของ RI filter = compliance risk” — ดูด้วย Σ(buckets) = unfiltered total
| Item | Root cause / outcome | Status |
|---|---|---|
| F2 / D1 | สกุลและ transaction key ของ cash call ไม่ถูก assign | fixed |
| F4 / F5 / F8 / F9 | equity group หาย · scope JD/JK · tax reporting date · L-line | delivered |
| Bug 1 | LC2 ของภาษีถูก คำนวณ (5%) แทนที่จะ อ่าน → ภาษีผีบนบรรทัด 0% + เศษปัดเพี้ยน · ลบสูตรทิ้ง | closed |
| Bug 2 | ACDOCA lookup ไม่มี BELNR → สะสมหลายเอกสาร cash call (7084321991 โชว์ 3,000.00- แทน 1,500.00) · เปลี่ยนเป็น BSEG-DMBE2 + sign handling | closed |
| TKT-04 | RTF header — ECC เหมือนกันและ WordPad อ่านได้ → reclassify เป็น improvement: compact layouts /RTFOUT, /RTFIN (≤132 chars) + plain WRITE header | improvement |
| # | Item | Next |
|---|---|---|
| 1 | Cash call (6,930.00) เข้า “Balance per company code” แต่ ไม่เข้า “Balance of all company codes” — reproduce ด้วย run 18.05.2026 ทั้งเปิด/ปิด JVA splitting | open RPT-2 ABAP |
| 2 | Multi-PC Total (17-Sep, พบครั้งแรกบน RPT-6): กรอง PC แล้ว line items ถูกกรองต่อ tax line แต่ Total/Balance รวมทั้งเอกสารเมื่อมีบรรทัดใดตรง · repro doc 3004322020 (O1; C_PC29 952.379-/47.619- + N_PC38 1,142.859-/57.143-; ทั้งใบ 2,095.238-/104.762-) | open fix ต้องเหมือน RPT-6 (ที่ Total ขับ clearing posting) · ถามทีม RPT-6 |
| 3 | TKT-06 — PC filter บนเอกสาร JVA split | SIT |
| 4 | Tab “Tax payable posting” error เพราะ GL net VAT clearing A212X023 ไม่ได้ extend ไป OM01 | D5: ซ่อน vs negative test |
| 5 | PC ของเอกสาร multi-PC (tax line vs document) · total แบบไม่กรอง PC อิง BSET หรือ Σ ACDOCA split | D4 (ผูกกับ TKT-01) |
| 6 | Rate type ZOM vs mid | G10 / C18 |
| TC | Purpose | Status |
|---|---|---|
| TC-001 | Standard input/output VAT run | passed |
| TC-002 | Currency และ LC2 columns | passed after Bug 1/2 |
| TC-003 | Balance per company code และ all companies | passed in FUT · residual open #1 |
| TC-004 | JVA cash call I0 ทั้ง JD และ JK | passed · JD evidence TBC |
| Regression | PC/RI filters · JVA split · RTF export | SIT |
1. ทำไม cash call ไม่เคยอยู่ใน BSET?
2. อะไรทำให้ 7084321991 โชว์ 3,000.00- แทน 1,500.00?
3. Variant ไหนใช้ตัดสินแต่ละ path?
4. Bug multi-PC Total ของ RPT-2 ต้องแก้ร่วมกับ object ไหน และทำไม?
5. KTOSL ห้าตัวที่ระบุว่าเป็นแถวภาษีคืออะไร?