← หน้ารวม (Hub)
FUT = ทดสอบ WRICEF ทีละตัว เทียบกับ FD ใน DEV client 120 — อ่าน FD ให้แตก, เตรียมเอกสารตัวอย่าง (specimen), คำนวณ expected ไว้ก่อน, รัน, เทียบ แล้วถ้าไม่ตรงก็เปิด defect ใน JIRA ที่ชี้ได้ชัดว่าผิดตรงไหน · เปรียบโปรเจกต์เหมือนสร้างบ้าน: Explore = ออกแบบ, Realize = สร้าง + เทสทีละห้อง (FUT) แล้วเทสทั้งบ้าน (SIT), เจ้าของตรวจรับ (UAT), สอนใช้บ้าน (KUT/EUT), แล้วย้ายเข้า (cutover)
Project frame
WRICEF lifecycle
Test phases
FUT loop
Diagnostics
JIRA defect
FUT backlog
Routine
Self-check
1
Project frame — S/4 Program
S/4 Program = Client S/4HANA implementation · SI · big-bang multi-entity · ซีเข้าช่วง Realize (roll-in 16-Jul-2026)
Realize FUT: defects + test cases
SIT · 1-Oct QAS
KUT · Nov–Dec Bangkok
EUT BKK · Songkhla · MY · MM
UAT business sign-off
Go-live ~Jan-2027 vs 1-Jul-2027 (C1)
System / tool ใช้ทำอะไร
DEV client 120 dev / FUT
client 300 training · capture หน้าจอ KUT
QAS SIT
JIRA project S/4 Program · TestRail defects · test cases (RPT-2 TC-001..004 อยู่ใน TestRail)
Teams · SharePoint / OneDrive สื่อสาร · SIT scripts · evidence
Plan on a page — 12 stage gates Cadence s14
จาก plan on a page ใน Weekly Tax Cadence (23-Jul-2026) · แกนเวลา Oct-2024 (M1) → Feb-2027+ (M29+) · ตำแหน่งแท่งบนแกนเวลาดึงจาก deck ไม่ได้ จึงวางตาม phase — milestone ที่อยู่ใน phase ไหนจัดตามชื่อ INFER
Mobilise
MIL1 Mobilisation SG1 Blueprint Entry
Blueprint
MIL2.1 Sol. Confirmation SG2 Sol. Confirmation Exit MIL2.2 Blueprint SG3 Blueprint Exit
Design & Build
MIL3.1 End of Config Build MIL3.2 Data Mig. Design & Build SG4 Migration D&B Exit MIL3.3 Function Specs Complete MIL3.4 Mock1 complete SG5 SIT Entry
Testing เราอยู่ตรงนี้ · SIT ตั้งแต่ 1-Oct
MIL3.5 SIT Complete SG6 UAT Entry MIL4.1 UAT Complete SG7 FDR Entry
Deploy
SG8 Cutover Entry SG9 Go Live · MIL4.2
PGLS
SG10 First Month-end Close MIL5 Post Go-live Support SG11 PGLS Exit
Warranty
SG12 Warranty Closure
SG = stage gate MIL = milestone · FDR = full dress rehearsal (ก่อน cutover จริง) · PGLS = post go-live support
Data migration — ส่วนที่เป็นภาษี
MC0 → MC1 — แปลงเฉพาะ ledger blank (leading)
MC2 — รวม Tax ledger · paid invoice ของ deferred tax แปลงผ่าน GL (ตั้ง additional text ID แล้ว)
MC3 — รอบสุดท้ายก่อน deploy
Solution สำหรับ conversion ของ V1 (PP36) เสร็จแล้ว (DM PP36 meeting 14-Jul)
Deploy chain → ภาษีงวดแรก
Mock Cutover 1 → Mock Cutover 2 → FDR → Cutover
SG9 Go Live → SG10 First Month-end Close = tax period-end close งวดแรก (เริ่มเมื่อ F&A ปิด)
ยื่นงวดแรก: วันที่ 7 (paper PND / PP36) · 15 (e-filing PND + PP36) · 23 (e-filing PP30 / ภ.ธ.40)
เป้าหมาย go-live ในเอกสารยังขัดกันระหว่างสองช่วงเวลา (C1)
Weekly Tax Cadence: วาระเรียงเสมอ ① open actions → ② ongoing tasks → ③ KUT → ④ meetings → ⑤ appendix (timelines · FUT board · plan on a page) · สถานะ FD ณ 23-Jul: 42 approved · 1 in progress · 13 dropped · ประชุมที่เกี่ยวกับซี: Biweekly FUT checkpoint · PC & Recovery Indicator for Tax Reporting (23-Jul)
2
SAP Activate + เส้นทางของ WRICEF 1 ตัว
Discover → Prepare → Explore (fit-to-standard, blueprint / BPE, key design decisions) → Realize (configure, build WRICEF, UT / FUT / SIT, data loads) → Deploy (UAT, training, cutover, go-live) → Run (hypercare) STD
Letter Type ตัวอย่างในงานซี
W Workflow AP-WFL-1 VIM workflow
R Report TAX-RPT-1 · TAX-RPT-2
I Interface TAX-RPT-13 WHT listing → Doc Center (ID เป็น R แต่มี interface)
C Conversion data migration load
E Enhancement TAX-ENH-1 (DMEEX) · TAX-ENH-4 (substitution)
F Form TAX-FRM-1 ใบแนบ · TAX-FRM-2 certificate
FD (functional design — what & why) เขียนโดย SI Functional
TD (technical design — how) → build โดย developer
UT — developer เทสว่าโค้ดทำตาม TD
FUT — functional consultant เทสเทียบ FD ทีละ object ← งานซี
SIT → UAT · ถ้าต้องเปลี่ยน scope / design หลัง sign-off = CR (change request)
FD review chain (จาก FD S/4 Program)
Action Role
Prepared by SI Functional (SI team member)
Validated by SI Functional Lead (SI)
Reviewed by Client POR / BA / BPL / BPO / BRM ตัวย่อเต็ม
Endorsed by Client KPDO
Business owner Client Tax team
FD เขียนว่า test conditions จะรันใน “Functional Acceptance Test (FAT)” ผ่าน TestRail · ใน S/4 Program ลำดับที่ใช้จริงคือ UT → FUT → SIT → UAT
3
Test phases
Phase Who What is proved Typical artefact
UT Developer Code ทำตาม TD UT evidence
FUT Functional consultant Object ตรง FD ทีละตัว TC-001…, JIRA defects
SIT ข้าม workstream E2E scenario ข้ามโมดูล + interface E2E scripts + step owner + evidence ต่อ step
UAT Business users Business ยอมรับ Sign-off
Regression Team Fix ไม่ทำของอื่นพัง Re-run sets
4
FUT loop (6 ขั้น)
อ่าน FD ทีละ section → ลิสต์ กฎที่เทสได้ (selection, ทุก step ของคอลัมน์, filters, errors)
สร้าง specimen : หนึ่งเอกสารต่อหนึ่งกฎ · ใช้ discriminating pairs (สองใบต่างกันตัวแปรเดียว)
คำนวณ expected ไว้ก่อนรัน (TCURR rates, Σ lines)
รัน · capture selection screen + output · trace ใน SE16N (BKPF, BSEG, BSET, WITH_ITEM, ACDOCA 0L, BSAK, TCURR)
Pass → evidence · Fail → จัดชั้น (master data / config / posting / report logic) ด้วย three-layer model → เปิด defect
Retest หลัง fix · regression sister outputs (shared engine ZTAXB_R01)
Test case file
Template Client_FUT_FI_WRICEFAA-WFL-1: sheet “Test cases” + หนึ่ง sheet ต่อ TCnnn
ทำให้ตรง template ทีม เป๊ะ และละเอียดระดับเดียวกัน — ไฟล์ที่ขัดเกลาเกินไปดูน่าสงสัย
WRITE tests (RPT-1 TC-006/007) ทำ หลัง มี baseline evidence และบนเอกสาร dedicated เท่านั้น
Capture selection ก่อน Execute · เปลี่ยนตัวแปรเดียวต่อ run · Test run ก่อน Update run เสมอ · ห้ามกรอก manual rate
5
Diagnostics toolkit
Document trace
เริ่มที่ payment BKPF
ไป BSEG และ WITH_ITEM
บรรทัดภาษีใน BSET
ACDOCA ledger 0L รวม WIT rows
หา invoice ผ่าน BSAK-BELNR/GJAHR
Key: BUKRS + BELNR + GJAHR · เก็บ FB03 header, WITH_ITEM, ACDOCA WIT lines และ TCURR รอบวัน T
Three-layer check
Master data มีไหม — CEPC, SKA1 …
Authorized ให้ CoCd ไหม — CEPC_BUKRS, SKB1, T8JJ
Post จริงเป็นอะไร — ACDOCA / BSEG
หายที่ชั้น 3 = posting / config · มีที่ชั้น 3 แต่ไม่ออก output = report / filter
Row-disappearance ladder (R03 / Generic WHT)
หลัง standard data-source function module
หลัง TH BAdI DELETE_EWHT_DOCUMENTS
หลัง custom check_witht (whitelist ZCAX_P01)
หลัง PC/RI filter (ลบระดับ document)
ที่ final output
Fast discriminating pairs
Pair แยกอะไร
posting date เดียวกัน · document date ต่าง date logic
vendor เดียวกัน · มี vs ไม่มี WHT line WHT trigger (TKT-02)
zero-tax vs 5% document คำนวณ vs อ่านค่า (RPT-2 Bug 1)
PC เดียวกันข้ามเอกสาร ความครบของ key (RPT-2 Bug 2)
Working principles
Evidence before action — SE16N / FB03 / config · ความมั่นใจ >95% ก่อน escalate · retract ทันที เมื่อหลักฐานขัด
One document per ticket · หนึ่ง root cause ต่อ ticket — ไม่ bundle
อ่านค่าที่ post แล้ว ห้ามคำนวณภาษีใหม่ตอน runtime · ใช้ key เต็มทุก ACDOCA read
Fix ใน layout / path หนึ่งมักกลับมาที่อื่น — regression sibling (input/output, standard/cash call, report/attachment/text)
อธิบาย ABAP เป็นกฎ IF/ELSEIF ก่อนเขียนโค้ด · ห้ามใช้ sy-tcode ระบุโปรแกรมใน background job (ใช้ ABAP memory ID) · BINARY SEARCH ต้อง sort · DELETE ต้องมี key เต็มรวม GJAHR/BUKRS
“ไม่มีใครค้านใน review” ≠ อนุมัติ — อ้าง approval เมื่อมี written trail เท่านั้น
Evidence package ให้ stakeholder: what we found / what it means / what we need
6
JIRA defect format
Title: FUT_Defect in the WRICEF <object>: <one-line symptom> Components: Functional / FI / Tax 1. Description — scenario + the one document 2. Current Result — what the report shows (values) 3. Reproduce Steps — T-code, variant, selection 4. Expected Results — per FD step, with numbers 5. Proposed Fix — minimal, at the step / form level 6. Objects Modified
Statuses: New · In Analysis · In Progress · Info Required · Retest In FUT · Reopened
Root-cause categories: Data Issue · Coding Error · Environment
ห้าม raise เรื่องที่อยู่ใน locked decisions
Routing (by role)
เรื่อง ส่งไปที่
Statutory (rate / date / base, PND54 / VAT36) Client tax reviewer — ก่อน transport
GL (TKT-02, GL-ENH-1) Project lead → GL lead → GL team
Config (OB08, TCURR, rate types) Client config owner
External commitment ใด ๆ Project lead ก่อนเสมอ
Priorities, ชื่อ / scope คอร์ส, evidence standard Team lead (SI)
ภาษา: ไทยสำหรับวิเคราะห์และเพื่อนร่วมงานไทย (มีคำสุภาพ, “ซี”) · อังกฤษสำหรับ JIRA, email, FD, slides · Teams ถึง dev: สั้น เทคนิค หนึ่งเรื่องต่อข้อความ
7
Current FUT backlog (16-Oct-2026)
Object Item Next action
RPT-1 Multi-invoice payment (stamp AP voucher เดียวทุกแถว) Dev fix ต่อแถว: BSAK-LIFNR = WT_ACCO + match WITH_ITEM ของ invoice (vendor + type + code) · กฎการแบ่งรอ team lead (D3)
RPT-1 TKT-01 split lines Dev ทำตาม expected-result workbook · เทียบไอเดีย “high-precision portion” ของ senior
RPT-1 5G doc 8084322612 หาย SE16N ZCAX_P01 WHT_TYPE_PND54
RPT-1 WHT rate column 15% vs posted 10% (code 44) T059Z check
RPT-1 TC-001 One-shot retest หลัง TKT-02 deploy
RPT-2 Multi-PC Total / Balance แก้แบบเดียวกับ RPT-6 (ถามทีม RPT-6) · RPT-2 ABAP
RPT-2 Cash call ไม่เข้า “all company codes” RPT-2 ABAP
FRM-1 Vendor ถูกคัดลอกจากบรรทัดก่อน (multi-PC) · BP vs BSEC payee · “0 แผ่น” Raise พร้อม specimens
FRM-1 / ENH-1 Multi-invoice payment TCs (TC-010..016) Execute
ENH-1 Tambon ADRC trace SE16N ADRC ก่อนเขียน mapping rules
ENH-2 (SI) Same-day doc “Data not found” (558) · LC3 post fail (580) · label M9 ค้าง Routed
ENH-3 (SI) Doc 9004391363 rate 37.6651 ยังอธิบายไม่ได้ หา GDATU ใน TCURR EUR:THB · เช็ก translation-date option
Config TCURR USD:THB 12.08.2026 ratio 0/0 แจ้ง Client config owner แล้ว
8
Daily routine
Status tracker : อัปเดต status Excel ตอน 07:00 และ 16:30 จาก JIRA filter
JIRA inspection แยก 3 exports — Defects (Bug) · WRICEFs (RICEFW) · Tasks (“FUT: <object>”) · Components = Functional / FI / Tax
Authorization matrix : map FITAX role-to-course เสร็จแล้ว (104 rows, 50 T-codes) · เติม WRICEF ID ต่อบรรทัด FITAX · ยังเปิด: ZTAXB_R01 Display vs Maintain · F2918 / ABSOL / FBRA / FAGL_FCV / FB01L อาจเป็นของ GL roles (D7)
✓
Self-check
1. FUT ต่างจาก SIT อย่างไร?
ดูเฉลย FUT = object เดียวเทียบ FD (DEV 120) · SIT = E2E scenario ข้ามโมดูลใน QAS โดยแต่ละ step มี team owner
2. ก่อนรัน FUT ต้องมีอะไรนอกจาก specimen?
ดูเฉลย Expected values ที่คำนวณไว้ก่อน (TCURR, Σ lines) และ baseline / selection screen capture
3. Defect ที่ดีหนึ่งใบควรมีกี่เอกสาร?
ดูเฉลย หนึ่งเอกสาร หนึ่ง root cause — ไม่ bundle
4. Row หายจาก R03 — ไล่ตรงไหนบ้างตามลำดับ?
ดูเฉลย standard DS FM → TH BAdI DELETE_EWHT_DOCUMENTS → check_witht / ZCAX_P01 → PC/RI filter → output
5. ปัญหา rate ใน TCURR ต้องส่งใคร?
ดูเฉลย Client config owner (OB08 / TCURR) — TCURR เป็น client-wide ห้ามแก้เองโดยไม่ประกาศ
FI-TAX Knowledge Lab · Role 4 · Delivery & FUT
Chatree Kengpipat · S/4HANA FI-Tax · anonymized knowledge lab