← หน้ารวม (Hub) My 5 WRICEFs →
Role 1 · Model Lab ANONYMIZED · PUBLIC EDITION 5 interactive SAP models

SAP Model Lab
5 กลไกเบื้องหลัง WRICEF ของ Client — ปรับตัวเลขแล้วดู SAP คิดยังไง

Objects · RPT-1 · FRM-1 · ENH-1 · RPT-2 · ENH-2 As at · 23-Oct-2026 Owner · Chatree K.

Source: knowledge base 80-locked-decisions · 85-open-points · 20-role-wricef-owner · 30-role-fi-doc-verification · 10-client-fi-design + FUT evidence ในหน้า object · ชื่อบุคคลถูกแทนด้วย role

ห้าเรื่องที่ถูกถามบ่อยที่สุดตอน FUT / SIT / KUT — แต่ละเรื่องมี โมเดลที่กดเล่นได้: ใส่สถานการณ์ → ดู เอกสาร SAP ที่เกิดขึ้นจริง (ACDOCA / BSAK / WITH_ITEM / BSEC) → ดู แถวในรายงาน → ระบบ เช็กให้ ว่ายอดผูกกันไหม · กฎ มาจาก design ที่ตกลงแล้วและหลักฐาน FUT · ตัวเลข เป็น sample แก้ได้ทุกช่อง
อ่านทุกโมเดลแบบเดียวกัน — 4 ขั้น
STDstandard SAP BPBlueprint / LC concept SYSเห็นในระบบ / FUT AGREEDตกลงแล้ว INFERอนุมาน — verify TBCยังเปิด
1

Split lines — payment เดียวแตะหลาย Profit Center

AGREED

TAX-RPT-1 · TKT-01 (ตกลง 3-Sep) — เอกสาร WHT ที่ document splitting แตก WIT ออกเป็นหลายบรรทัดตาม PC ต้องออกรายงาน หนึ่งแถวต่อ WIT line ไม่ใช่แถวเดียวที่หยิบ PC แรกมา

Model 1 · Split-line engineRPT-1FRM-1ENH-1TKT-01
1Scenario
Preset
WT base ที่ยื่น (THB)
มุมมอง
Payment มี vendor
2ACDOCA · RLDNR 0L · KTOSL WIT document splitting
CoCd TH01Doc 2004330988 (sample)WHT type 5A · PND54amounts = HSL (THB)
BUZEIKTOSLPRCTRRECIDHSLใช้ทำแถว?
3RPT-1 output · ฝั่ง PND54
ZTAXB_R01output group R03 / ALV
#3Doc no.17PC18RIWT baseWT amtWIT ratio30VAT36
4Checks
    2

    Alternative payee — ใครคือ “ผู้ถูกหัก” บน 50 ทวิ และใบแนบ

    SYS

    TAX-FRM-1 defect 21-Sep — ถ้าเอกสารมี payee ของตัวเอง (BSEC) แต่ใบแนบ ภ.ง.ด.3/53 พิมพ์ข้อมูลจาก BP master ผู้รับ 50 ทวิ กับรายชื่อในแบบยื่นจะเป็น คนละคน — golden thread A พังตรงนี้

    Model 2 · Payee resolverFRM-1ZTAXA_F02ENH-1
    1Scenario
    Preset
    เอกสารมี payee ของตัวเอง (BSEC)
    BP tax category (DFKKBPTAXNUM)
    2Master vs document
    BP mastervendor VTEST0001 · “payee in document” = X
    Name (BP)
    Address (BP)
    Tax no. · DFKKBPTAXNUM
    BSECone-time / alternative payee data บนเอกสาร STD
    Name (BSEC)
    Address (BSEC)
    BSEC-STCD3
    BSEC-STCD1
    3สิ่งที่พิมพ์ออกมา
    4Checks
      3

      Payment เดียว clear หลาย invoice — AP voucher ของใคร?

      D3

      TAX-RPT-1 defect 14-Sep — รายงาน resolve AP voucher ตัวเดียวแล้ว stamp ทุกแถว ฝั่ง VAT36 (fields 19–34) จึงชี้ invoice ผิดใบ · dev fix = loop หา invoice ที่ WITH_ITEM ตรง vendor + WHT type + code · วิธีแบ่ง WHT ยังรอ team lead (D3)

      Model 3 · Clearing resolverRPT-1FRM-1ENH-1TC-010..016
      1Scenario
      Preset
      มุมมอง
      D3 · แบ่ง WHT ของ payment
      2BSAK (AUGBL = payment) ⋈ WITH_ITEM ของแต่ละ invoice
      Payment Currency amounts sample · แก้ base / rate ได้
      BELNR (AP voucher)LIFNRWITHTWT_WITHCDrate %WT_QSSHBWT_QBSHB
      2bWITH_ITEM ของ payment (WHT at payment) — 1 set ต่อ vendor + type + code
      SetWT_ACCOtype / codeΣ baseΣ invoice WHTpayment WHT (posted)Δ
      3RPT-1 output
      ZTAXB_R01
      #Set19AP vouchermatch key20WT base FC21WT amt FCWHT ในแถว (D3)
      4Checks
        4

        Realized FX gain / loss — ข้ามสกุล LC1 · LC2 · LC3

        BP

        บริษัทไทยถือ 3 สกุลพร้อมกัน: LC1 THB · LC2 USD · LC3 USDTH — ตอนจ่าย invoice สกุลต่างประเทศ แต่ละชั้นคำนวณ realized FX แยกกัน และ อาจคนละทิศ · บวก 2 แหล่ง FX เฉพาะ Client: บรรทัด Realized FX (from VAT) และ WHT FX adjustment (ENH-2)

        Model 4 · FX engine (invoice → payment)GL-ENH-1ENH-2RPT-1LC concept
        1Scenario
        Preset
        Invoice currency
        Payment currency
        Segment (ตัดสิน LC3)
        Net amount (doc currency)
        Input VAT / VAT36
        WHT at payment
        WHT rate %
        1bTCURR (sample rates — แก้เป็นของจริงได้)
        2Invoice (FB60 / MIRO) · posting date
        CoCd TH01Invoice · LC1 THB · LC2 USD · LC3 USDTH
        LineKTOSL / GLLC1 ruleDCLC1 THBLC2 USDLC3 USDTH
        3Payment (F110 / F-53) · clearing
        Payment · clearing line = historical · KDF = realized
        LineKTOSL / GLrateDCLC1 THBLC2 USDLC3 USDTH
        4Checks
          5

          รายงาน Profit Center × Recovery Indicator — แบบที่ผูกยอดได้

          SYS

          “PC + RI filter / PC + RI on output” คือ key change ของ RPT-1, RPT-2, FRM-1 และ ENH-1 พร้อมกัน — โมเดลนี้ใช้ข้อมูล Oman VAT (CoCd OM01, OMR 3 ทศนิยม) รวม doc 3004322020 จาก FUT จริง เพื่อดูว่าการกรอง “ระดับบรรทัด vs ระดับเอกสาร” และ “Total” เปลี่ยนตัวเลขยังไง

          Model 5 · PC × RI report engineRPT-2RPT-6RPT-1OBJ1
          1Selection screen
          Profit Center (ว่าง = ทั้งหมด)
          Recovery Indicator (ว่าง = ทั้งหมด)
          ระดับการกรอง
          Total / Balance
          Subtotal by
          2ALV output · line items
          ZTAXA_R04 · RPT-2CoCd OM01OMR · 3 dp · sign SAP-style
          DocLnTaxPRCTRRECIDVentureBaseTax amtsrc
          3Pivot · tax amount by PC × RI (หลังกรอง)
          4Checks · control ของ OBJ1
            6

            Regression map — แก้ตรงไหน ต้องรันอะไรซ้ำ

            ZTAXB_R01 / RFIDYYWT เป็น selection screen เดียว — output group เป็นตัวตัดสิน output · bug PC/RI ใน selection จึงโผล่ใน RPT-1, FRM-1, ENH-1 และ FRM-3 พร้อมกัน SYS

            ถ้าเปลี่ยน…โมเดลรันซ้ำเช็กอะไร
            Split lines (TKT-01)1 · 5RPT-1 → FRM-1 → ENH-1 ด้วย variant เดียวกันWHT ต่อ PC เท่ากันทุก output · Σ แถว = ยอดยื่น
            Multi-invoice fix + D33TC-010..016 บน RPT-1, FRM-1, ENH-1AP voucher ต่อแถว · Σ WHT ต่อ set = WITH_ITEM payment
            Alternative payee บน FRM-12FRM-1 + ZTAXA_F02 + ENH-1 · specimens 2004325075 / 3641 / 3642 / 3643ชื่อ / Tax ID บนใบแนบ = 50 ทวิ
            LC rules / ENH-2 / GL-ENH-14ENH-2 ก่อน แล้ว RPT-1 (TC-006/007) · SE16N layout /LC_CHECKLC1/LC2/LC3 ต่อบรรทัด · WITH_ITEM = GL (8084322568)
            PC / RI filter (i01) · Total logic5RPT-1, FRM-1, ENH-1, FRM-3 · RPT-2 + RPT-6 คู่กันΣ(buckets) = unfiltered total · Total = Σ บรรทัดที่แสดง
            ✓

            Self-check — อธิบายได้ใน 30 วินาทีไหม

            1. เอกสาร WHT มี WIT 3 บรรทัด 5,000 / 5,000 / 5,000 base 100,000 — RPT-1 ควรออกกี่แถว base เท่าไร?

            3 แถว WHT = HSL ของแต่ละบรรทัด · base 33,333.33 / 33,333.33 / 33,333.34 (แถวสุดท้ายรับเศษ) ยอดรวมผูก 100,000.00 · ถ้ามีบรรทัด HSL 0.00 ให้ข้าม

            2. ทำไม FRM-1 ต้องใช้ BSEC แทน BP master เมื่อเอกสารมี payee?

            คนที่ถูกหักจริงคือ payee บนเอกสาร — certificate ZTAXA_F02 ใช้ BSEC-STCD3 → STCD1 → blank แล้ว ถ้าใบแนบใช้ BP master ชื่อ / Tax ID ในแบบยื่นจะไม่ตรง 50 ทวิ

            3. D3 ทางเลือก A กับ B ต่างกันตรงไหน?

            A ใช้ WT_QBSHB ของแต่ละ invoice — แถวตรง invoice แต่ยอดรวมอาจห่าง WHT ที่ post ตอนจ่ายด้วยเศษปัด · B prorate WHT ของ payment ตาม base — ยอดรวมผูกเสมอ แต่บางแถวต่างจาก invoice ไม่กี่สตางค์ · ยังไม่ตัดสิน (team lead)

            4. จ่าย invoice EUR จากบัญชี USD — ทำไม LC2 realized FX ไม่เหมือนจ่ายด้วย EUR?

            เอกสาร USD → LC2 = LC3 = doc amount (กฎ 1) ค่า LC2 ของบรรทัด bank จึงเท่ากับยอด USD ที่จ่ายจริง ส่วนเอกสาร EUR ใช้ cross rate ZTH(EUR:THB) ÷ ZTH(USD:THB) · บรรทัด vendor ใช้ historical ทั้งสองแบบ

            5. control อะไรพิสูจน์ว่า RI filter ไม่ทำเอกสารหาย?

            รันทีละ RI แล้วรวมทุก bucket ต้องเท่ากับรันแบบไม่กรอง — Σ(buckets) = unfiltered total · ถ้าน้อยกว่า = เอกสาร mixed-RI หาย ถ้ามากกว่า = นับซ้ำ