Skip to Content

Why this Blog?

First it has been noticed that Technical Consultants are never happy with the quality of the Functional Specification (FS). The way I make an FS will be explained in this blog.

I have taken an example of complex customised which is for detailed ‘Customer Account Statement’ report. I had developed this form/report for one of the clients in India during S/4 HANA Implementation.

Secondly I remember early 2009 I had asked someone to share one FS so that I can learn how it is written. I just want to give back the same to someone else. If it helps to one my purpose is achieved. Cheers!

 

FS Template

One must make a standard FS Template which shall be used throughout the project for RICEFW (Report, Interfaces, Conversion, Enhancement, Forms, Workflow).

 

Key Sections in FS

Introduction Section: Project Name, FS Name and ID, Date of Creation

Change History Section: All the versions are maintained here by date

Author Section: Author name and signature are covered here

Reviewer Section: Approver name and signature are covered

Object Details: It covers module, Alternative Option, Program Type (Report, Form, Interface etc.), Priority of the customization

 

Report Input & Output Format Attachment Section:

(Here attachment can not be given so giving the screen shots). This is very detailed output for Customer Account Statement.

Business Requirement Section: Customer account statement is sent to customers periodically for reconciliation purposes.

 

FS Logic Section:

Object Logic for Input and Output is written in this section. This is the most important section of the FS.

 

Input Screen Logic (These fields will be available on the input screen of the custom program)

Column B = Copied all the field name in the input screen so that logic can be written field wise

Column C = Logic for each field in column B

Column D = Remarks which tells about whether field will be with Range, Extension and F4 help

Column E = It take care where authorization object need to be taken care.

Sl. No. (A) Field name (B) Logic (C ) Remarks (D) Authorization Object (E )
1 Customer No. KNA1-KUNNR Range, Extension, F4 Help
2 Company Code T001-BUKRS Range, Extension, F4 Help Yes
Default Value  = 1000
3 Business Area TGSB-GSBER Range, Extension, F4 Help Yes
4 Profit Center CEPC-PRCTR Range, Extension, F4 Help Yes
5 Posting Date BKPF-BUDAT Range, F4 Help, Mandatory
6 Sales Office TVBUR-VKBUR Range, Extension, F4 Help Yes
7 Customer Group (M) T151-KDGRP Range, Extension, F4 Help
8 Sales District T171-BZIRK Range, Extension, F4 Help
9 Statement Date & Time SYST-DATUM & Time Default Date as system date and time.

 

Logic for Output

Column B = Copied all the field name in the output so that logic can be written field wise

Column C = Logic for each field in column B. There are 129 fields in the output for which logic to be built.

Column D = Any special remark that need to be given field wise to technical consultant

Sl. No.

(A)

Field (B) Logic (C ) Remarks (D)
1 Statement Date SYST-DATUM System Date and Time
2 XYZ Limited BUKRS (Input) pass into T001-BUKRS and fetch ADRNR
Pass T001-ADRNR into ADRC-ADDRNUMBER and fetch ADRC-NAME1 + ADRC-NAME2
Company Name
3 Address: 93, ABC Tower, Sarojini Nagar, Delhi 11029, India Pass KUNNR into KNVV-KUNNR Fetch KNVV-VKBUR, pass into TVBUR-VKBUR and need to fetch ADRNR and pass it into ADRC-ADDRNUMBER then fetch
ADRC-MC_STREET
ADRC-STR_SUPPL1
ADRC-STR_SUPPL2
ADRC-STR_SUPPL3
ADRC-MC_CITY1
ADRC-POST_CODE1
ADRC-TIME_ZONE
Sales office address
4 Statement of Accounts for the period BKPF-BUDAT (input screen) Input value
5 Customer Name & Code : Pass KUNNR into KNA1-KUNNR and fetch KNA1-NAME1 +KNA1-NAME2 (KUNNR)
5a Customer Address : Pass KUNNR, into KNA1-KUNNR, and fetch KNA1-ADRNR pass this into ADRC-ADDRNUMBER and fetch MC_STREET, str_suppl1, str_suppl2, CITY1, CITY2, POST_CODE1, REGION (Description- T005U- SPRAS =E, T005U- LAND1 = IN, T005U- BLAND =  REGION  and fetch T005U- BEZEI), COUNTRY (description –  T005- LAND1 =  COUNTRY  and fetch T005- LANDX)
6 Security Deposit : Function module: BAPI_AR_ACC_GETKEYDATEBALANCE
(How to get customers: . KNA1-KUNNR (from Input), T001-BUKRS (from input) pass into KNB1-KUNNR, KNB1-BUKRS and fetch KNB1-KUNNRKNB1-KUNNR, TVBUR-VKBUR (Input), T151-KDGRP (Input), T171-BZIRK (Input) pass into KNVV-KUNNR, KNVV-VKBUR, KNVV-KDGRP, KNVV-BZIRK
and Fetch KNVV-KUNNR
Please note: this logic will be used everywhere in this development)

COMPANYCODE                     1000
CUSTOMER                        100004
KEYDATE                         21.11.2016
BALANCESPGLI                    Y

fetch BAPIDMBTR where SP_GL_IND = Y, total of all BAPIDMBTR

Amount as on To Date in input (SPL GL Y) = 21.11.2016
7 Additional Deposit

Function module: BAPI_AR_ACC_GETKEYDATEBALANCE

COMPANYCODE                     1000
CUSTOMER                        100004
KEYDATE                         21.11.2016
BALANCESPGLI                    D
NOTEDITEMS

fetch BAPIDMBTR where SP_GL_IND = D, total of all BAPIDMBTR

Amount as on To Date in input (SPL GL D) = 21.11.2016
8 Contact No. : Pass KUNNR in KNA1-KUNNR and fetch KNA1-TELF1/KNA1-TELF2 Mobile and Landline
9 TIN No. : Pass KUNNR in KNA1-KUNNR and fetch KNA1-J_1ILSTNO
9a CST No.: Pass KUNNR in KNA1-KUNNR and fetch KNA1-J_1ICSTNO
10 PAN No.: Pass KUNNR in KNA1-KUNNR and fetch KNA1-J_1IPANNO
11 Email : Pass KUNNR into KNA1-KUNNR and fetch KNA1-ADRNR
pass this into ADR6-ADDRNUMBER, where ADR6-FLG_NOUSE =’BLANK’
and fetch SMTP_ADDR
(if you get multiple records, please pick the first record only)
12 This statement is for <Division> only CEPC-PRCTR (input field)= Pass CEPC-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT (if input field is filled with PC, PC description need to fetch and to be shown with , separation. If no PC is selected in the input field it should be “All Division” If PC Description and if PC blank then ‘All Division’
13 Summary of transaction for the month hard Code
14 Particulars Hard Code
15 Dr hard Code
16 Cr Hard Code
17 Opening Balances Opening Balances Logic
FM: BAPI_AR_ACC_GETOPENITEMS
COMPANYCODE                     1000
CUSTOMER                        100006
KEYDATE                         31.10.2016  (From Date of input – (minus) one day.  E.g. From 01.11.2016 to 30.11.2016,  31.10.2016)
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and ‘A’

pass BELNR_D, GJAHR, BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA where ACDOCA-KOART = ‘D’, ACDOCA-RLDNR = ‘0L’
fetch
ACDOCA-HSL (multiple records will be there, please total and show)

(if ACDOCA-DRCRK = S show value under Debit, If ACDOCA-DRCRK = H show value under Credit )

Balance From date (of the input)-1day
18 Invoices Raised FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and Where BLART = ‘RV’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS where BKPF-XREVERSING = ‘Blank’, BKPF-XREVERSED = ‘Blank’

fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = D, ACDOCA-RLDNR = ‘0L’

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

All sales Document Type RV (without Cancellation)
19 Sales return FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and Where BLART = ‘Z0’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS where BKPF-XREVERSING = ‘Blank’, BKPF-XREVERSED = ‘Blank’

fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = D, ACDOCA-RLDNR = ‘0L’

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

Document Type Z0
20 Debit notes Hard Code
21 C form Debit notes FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and Where BLART = ‘Z2’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS
fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = D, ACDOCA-RLDNR = ‘0L’

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

Document type Z2, reversal also
22 Interest Debit note FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and Where BLART = ‘Z1’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS
fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = D, ACDOCA-RLDNR = ‘0L’

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

Document type Z1 ,  reversal also
23 Cheque bounce charges FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and Where BLART = ‘Z3’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS
fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = D, ACDOCA-RLDNR = ‘0L’

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

Document type Z3 ,  reversal also
24 Other Debit notes FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’and ‘A’, and Where BLART NE ‘Z0, Z1, Z2, Z3, Z4,RV,DZ, and where SHKZG = ‘S’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, where BKPF-XREVERSAL = ‘Blank’
fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = D, ACDOCA-RLDNR = ‘0L’

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

Document Type = Other than Z1, Z2, Z3, Z4, DZ(Party Debit only)
25 Payments Received FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and ‘A’, and Where BLART = ‘DZ’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS
fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = S, ACDOCA-RLDNR = ‘0L’, where ACDOCA-KTOSL = ‘Blank’, ACDOCA-RACCT = Set value (ZBANK_COLLECTION)

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

Document type DZ
26 Credit notes Hard Code
27 Cash Discount FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and ‘A’, and Where BLART = ‘DZ’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS,
fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = S, ACDOCA-RLDNR = ‘0L’, where ACDOCA-KTOSL = ‘SKT’
fetch ACDOCA-HSL (if multiple line, total value need to be shown)

DZ, Transaction SKT
28 Schemes Credit notes FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’ and Where BLART = ‘Z4’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS where BKPF-XREVERSING = ‘Blank’, BKPF-XREVERSED = ‘Blank’

fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = D, ACDOCA-RLDNR = ‘0L’

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

Document type Z4
29 Other Credit notes FM:BAPI_AR_ACC_GETSTATEMENT
COMPANYCODE                     1000
CUSTOMER                        100006
DATE_FROM                       01.10.2016
DATE_TO                         22.11.2016
_____
fetch all BELNR_D, GJAHR, BUKRS, KUNNR,  where UMSKZ = ‘Blank’and ‘A’, and Where BLART NE ‘Z0, Z1, Z2, Z3, Z4,RV,DZ, and where SHKZG = ‘H’Pass
BELNR_D, GJAHR, BUKRS into BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, where BKPF-XREVERSAL = ‘Blank’
fetch BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS

pass BKPF-BELNR, BKPF-GJAHR, BKPF-BUKRS, KUNNR into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS, ACDOCA-KUNNR, CEPC-PRCTR (from Input) into ACDOCA-PRCTR, TGSB-GSBER (from input) into ACDOCA-RBUSA, ACDOCA-KOART = D, ACDOCA-RLDNR = ‘0L’

fetch ACDOCA-HSL (if multiple line, total value need to be shown)

Document Type = Other than Z1, Z2, Z3, Z4, DZ(Party Credit only)
30 Total Do total of amounts Total
31 Closing balances

Closing Balance = (Dr. Column) – (Cr. Column)

(If Value in Plus show under Debit if in Negative show under Credit)

Balance ‘To Date’
32 Note:
1. Request you to pay outstanding before due Date to avoid late payment charges
Hard Code
33 Request you to pay outstanding before due date to avoid late payment charges Hard Code
34 Part B Hard Code
35 Opening Balance Hard Code
36 Document No. ACDOCA-BELNR From Opening Balances Logic (Raw No. 17)
37 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 17)
38 Doc Date ACDOCA-BLDAT From Opening Balances Logic (Raw No. 17)
39 Location

a. If BKPF-BLART is RV & Z0 : ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS Pass into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS where ACDOCA-KOART = S, ACDOCA_KDAUF NE ‘BLANK’

fetch
ACDOCA_WERKS

pass ACDOCA_WERKS into T001W-WERKS and fetch T001W-NAME1

b. for rest of the BLART (except RV and Z0)

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 17)
40 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 17)
41 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 17)
42 Posting Date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 17)
43 Total Total of Debit and Credit
44 Invoices Hard Code
45 Document /  Invoice  No ACDOCA-BELNR From Opening Balances Logic (Raw No. 18)
46 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 18)
47 Invoice Date ACDOCA-BLDAT From Opening Balances Logic (Raw No. 18)
48 Due Date ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS Pass into BSEG-BELNR, BSEG-GJAHR, BSEG-BUKRS where BSEG-KOART = ‘D’
fetch
BSEG-NETDT
From Opening Balances Logic (Raw No. 18)
49 Reference/PO No.

ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS Pass into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS where ACDOCA-KOART = S, ACDOCA_KDAUF NE ‘BLANK’

fetch
ACDOCA_KDAUF

From Opening Balances Logic (Raw No. 18)
50 Location

ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS Pass into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS where ACDOCA-KOART = S, ACDOCA_KDAUF NE ‘BLANK’

fetch
ACDOCA_WERKS

pass ACDOCA_WERKS into T001W-WERKS and fetch T001W-NAME1

From Opening Balances Logic (Raw No. 18)
51 Debit ACDOCA-HSL From Opening Balances Logic (Raw No. 18)
52 Sales return Hard Code
53 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 19)
54 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 19)
55 Invoice Date ACDOCA-BLDAT From Opening Balances Logic (Raw No. 19)
56 Due Date ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS Pass into BSEG-BELNR, BSEG-GJAHR, BSEG-BUKRS where BSEG-KOART = ‘D’
fetch
BSEG-NETDT
From Opening Balances Logic (Raw No. 19)
57 Reference/PO No.

ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS Pass into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS where ACDOCA-KOART = D

fetch ACDOCA-ZUONR

From Opening Balances Logic (Raw No. 19)
58 Location

ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS Pass into ACDOCA-BELNR, ACDOCA-GJAHR, ACDOCA-RBUKRS where ACDOCA-KOART = S, ACDOCA_KDAUF NE ‘BLANK’

fetch
ACDOCA_WERKS

pass ACDOCA_WERKS into T001W-WERKS and fetch T001W-NAME1

From Opening Balances Logic (Raw No. 19)
59 Credit ACDOCA-HSL From Opening Balances Logic (Raw No. 19)
60 Debit notes Hard Code
61 a) C form Debit notes Hard Code
62 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 21)
63 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 21)
64 Posting date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 21)
65 Reference BKPF-XBLNR From Opening Balances Logic (Raw No. 21)
66 Text ACDOCA-SGTXT From Opening Balances Logic (Raw No. 21)
67 Location

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 21)
68 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 21)
69 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 21)
70 b)  Interest Debit note Hard Code
71 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 22)
72 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 22)
73 Posting date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 22)
74 Text ACDOCA-SGTXT From Opening Balances Logic (Raw No. 22)
75 Location

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 22)
76 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 22)
77 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 22)
78 c) Cheque bounce charges
79 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 23)
80 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 23)
81 Posting date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 23)
82 Reference BKPF-XBLNR From Opening Balances Logic (Raw No. 23)
83 Location

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 23)
84 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 23)
85 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 23)
86 d) Other Debit notes
87 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 24)
88 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 24)
89 Posting date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 24)
90 Reference BKPF-XBLNR From Opening Balances Logic (Raw No. 24)
91 Location

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 24)
92 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 24)
93 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 24)
94 Collections Hard Code
95 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 25)
96 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 25)
97 Posting date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 25)
98 Reference BKPF-XBLNR From Opening Balances Logic (Raw No. 25)
99 Location

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 25)
100 Text ACDOCA-ZUONR (pick last 6 characters what seen in the field) From Opening Balances Logic (Raw No. 25)
101 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 25)
102 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 25)
103 Cash Discount Hard Code
104 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 27)
105 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 27)
106 Posting date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 27)
107 Reference BKPF-XBLNR From Opening Balances Logic (Raw No. 27)
108 Location

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 27)
109 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 27)
110 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 27)
111 Schemes credit notes Hard Code
112 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 28)
113 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 28)
114 Posting date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 28)
115 Reference BKPF-XBLNR From Opening Balances Logic (Raw No. 28)
116 Location

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 28)
117 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 28)
118 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 28)
119 Other Credit notes Hard Code
120 Document No ACDOCA-BELNR From Opening Balances Logic (Raw No. 29)
121 Division Pass ACDOCA-PRCTR into CEPCT-PRCTR and fetch CEPCT-LTEXT From Opening Balances Logic (Raw No. 29)
122 Posting date ACDOCA-BUDAT From Opening Balances Logic (Raw No. 29)
123 Reference BKPF-XBLNR From Opening Balances Logic (Raw No. 29)
124 Location

Pass KUNNR into KNVV-KUNNR and fetch KNVV-VKBUR

KNVV-VKBUR pass into TVKBT-VKBUR,  where TVKBT-BEZEI

From Opening Balances Logic (Raw No. 29)
125 Debit ACDOCA-HSL if ACDOCA-DRCRK = S From Opening Balances Logic (Raw No. 29)
126 Credit ACDOCA-HSL if ACDOCA-DRCRK = H From Opening Balances Logic (Raw No. 29)
127 Registered address:- Pass T001-BUKRS (from Input) into T001-BUKRS and fetch T001-ADRNR
pass T001-ADRNR  into ADRC-ADDRNUMBER and fetch ADRC-NAME1 +NAME2, ADRC-STREET, ADRC-STR_SUPPL3, ADRC-CITY2, ADRC-CITY1, ADRC-POST_CODE1, ADRC-REGION (BEZEI from T005U against ADRC-REGION), ADRC-EXTENSION2
XXXXX, Delhi
128 This is computer generated statement hence no signature required. hard Code
129 Please inform for any discrepancies within 7 days of receipt of this statement otherwise it is deemed to be correct. Hard Code

General Notes:

  1. It is to be developed in PDF and exportable in Excel as well.
  2. All outer cells shall be aligned irrespective of no. of columns in every box.

 

Section Test Data: Couple of test data shall be given in the FS so that technical consultant can check the preliminary testing/output

Business Approval Section: FS must be signed off by business before releasing to technical consultant.

 

_______________________________________________________________________________

Many more such article on S/4 HANA topic to come. Stay Connected.
Learn, Share, Grow, & Succeed!
To report this post you need to login first.

2 Comments

You must be Logged on to comment or reply to a post.

  1. Michelle Crapo

    Well I disagree with the technical information on a functional specification.     Of course I do it all FS, Unit test, Integration testing, and customer testing.   I have however been just a functional person and just a technical person.  “JUST”  <smile>.  Both jobs do a lot of work, and have to know a lot.

    1. There is actual code in here.   I could write the program faster than putting all the code in the FS.   When I got one of these as a technical programmer half of the time it wasn’t correct.  Rather than argue with the functional person, I just wrote what was needed and let them test it.   Thus making the functional spec wrong.  Writing code in the spec is a number one – don’t do it.   BTW – some of the functional people were not easy to work with when looking at their code.   I could debate with them for days.   That’s why I finally just did what I knew was correct.   But it depending on the company.   Sometimes I just did what the functional spec said to do.   Waited and had my code ready to fix it after the customer testing.  At least the second way the functional spec was correct.
    2. Where is the logic for what the steps where before the program.?  Customer did ABC transaction and then wrote something down then did DEF, and then…   I need that information to be able to really test this.  If I’m not familiar with the module that information is critical.   If I am it is less critical, but still nice to have.
    3. What user base is this being used for?   People who know the system, people who rarely are on the system.   That gives me a place to know how detailed that text must be.   For example, if I use material / plant will they understand it?  Or should I use Product (the description) and location (the plant).

    I did agree with your sections.   I also would like the end user sign off.   They can’t do that with the way this is written.   One of my favorite tools for interactive programs is build.  I haven’t had much time to explore it.   But the tool is amazing.

    BTW – if this is written for the technical people as well as the functional people, you might want to add them in the tag.   It would be interesting to hear from them all.

    Interesting blog – it made me think!  (and rant a bit)

    Michelle

    (0) 
  2. Shakeel Ahmed Post author

    Well, I am a FICO consultant and it took me one and half hour to prepare this FS.

    1. If it is code, how you would you explain what data to be filtered out in FS?
    2. With your words it seems you are a technical (ABAPER) consultant and you have bad experience with people specially when it’s about FS.
    3. Your queries are not clear

    You are welcome anyways. Cheers!

    Regards

    Shakeel

     

     

    (0) 

Leave a Reply