‎2008 Sep 30 8:54 AM
Hi
I am doing an upload in BDC by using Call transaction in synchronous update mode.
I am getting an error as 'No update server found for context :E:'.
The same thing when i run it Quality, i am not getting the error. only in Prod i am getting.
Can anybody help on this to identify what is the cause?
Thanks .
‎2008 Sep 30 9:28 AM
Hi
I think Ur mode declaration is not proper ..then only that problem will come.If u r run In Error mode u have hotcoded in selection screen.
Exc:
ELECTION-SCREEN BEGIN OF BLOCK ONE WITH FRAME TITLE TEXT-002.
PARAMETERS: P_FNAME TYPE RLGRAP-FILENAME DEFAULT '*.txt' OBLIGATORY,
P_BUKRS TYPE T001-BUKRS OBLIGATORY,
P_SGSART TYPE VTBFHA-SGSART OBLIGATORY,
P_SFHART TYPE VTBFHA-SFHAART OBLIGATORY,
P_KONTRH TYPE VTBFHA-KONTRH OBLIGATORY,
P_MODE LIKE CTU_PARAMS-DISMODE OBLIGATORY DEFAULT 'E'.
"A: show all dynpros
"E: show dynpro on error only
"N: do not display dynpro
SELECTION-SCREEN END OF BLOCK ONE.
CALL TRANSACTION 'TX01' USING T_BDCDATA
MODE P_MODE
UPDATE 'S'
MESSAGES INTO LT_BDCMSG.
‎2008 Sep 30 9:57 AM
Hi,
My selection screen as below...
PARAMETERS: P_MODE(1) TYPE C DEFAULT 'N'.
Is this the problem. i have read it in net, this is due to some buffering context (E buffer) problem...
please suggest.
thanks
‎2008 Sep 30 10:01 AM
Hi,
Otherwise u chk ur Error lock...R u declare ur BDC structure.
Can u send ur program.....
u declare like that and chk...
P_MODE LIKE CTU_PARAMS-DISMODE OBLIGATORY DEFAULT 'E'.
Regards:
Prabu
Edited by: Prabu Kannappan on Sep 30, 2008 11:02 AM
‎2008 Sep 30 10:06 AM
Please fidn the code...main thing, i will not be able to test it as it only occuring in PROD.
REPORT ZFB0002A LINE-SIZE 132
LINE-COUNT 65
NO STANDARD PAGE HEADING
MESSAGE-ID Z.
----
Table statements. *
----
TABLES: T042I, " Bank account. DEVK902693
T100, " Messages DEVK902795
BNKA. " Bank data
----
Data statements. *
----
*
DATA: BEGIN OF I_HEADER, " header record of the input
RECTYPE(1) TYPE C, " Record Type 1
DATETIM(12) TYPE C, " file time stamp DDMMYYYYHHMM
END OF I_HEADER.
----
DATA: BEGIN OF I_DATA OCCURS 0,
RECTYPE(1) TYPE C, " Record Type 2
BUKRS(4) TYPE C, " Company Code
GSBER(2) TYPE C, " Business Area
NEWKO(6) TYPE C, " G/L acct nbr
COSTCTR(5) TYPE C, " Cost centre
PAYIN(1) TYPE C, " PAYMENT INDICATOR
RTYPE(1) TYPE C, " Refund type C/R DEVK903664
KUNNR(12) TYPE C, " CAS CUST NUMBER
CHQNR(6) TYPE C, " cheque nbr for normal cheques
NAME1(37) TYPE C, " CUSTOMER NAME
ADDR1(37) TYPE C, " ADDRESS 1
ADDR2(37) TYPE C, " ADDRESS 2
ADDR3(37) TYPE C, " ADDRESS 3 " DEVK903446
CONTY(30) TYPE C, " COUNTY
POSTC(8) TYPE C, " POSTCODE
REASON(2) TYPE C, " CAS refund reason code
NARRAT(30) TYPE C, " Narrative CAS refund reason
RADDR1(37) TYPE C, " refund addr1
RADDR2(37) TYPE C, " refund addr2
RADDR3(30) TYPE C, " refund addr3 " DEVK903446
RCONTY(30) TYPE C, " refund COUNTY
RPOSTC(8) TYPE C, " refund POSTCODE
BANKI(6) TYPE C, " customer's BANK SORT CODE
BANKA(8) TYPE C, " customer's BANK ACCT NBR
SIGN(1) TYPE C, " Sign - or +
WRBTR(16) TYPE C, " Amount
NEWBS(2) TYPE C, " Posting Key (40 if contra
" 31 if payment)
POSTNE(2) TYPE C, " Posting key for next item.
POSTAC(8) TYPE C, " Account code for next item
WRBTR1(10) TYPE C, " Amount FOR NEXT ITEM
BLDAT LIKE SY-DATUM , " Document Date.
BUDAT LIKE BKPF-BUDAT, " Posting Date
MONAT(2) TYPE C, " FISCAL Period
GJAHR(4) TYPE C, " CURRENT FISCAL YEAR
WAERS(5) TYPE C " Currency
VALUE 'GBP', " default GBP
DOCN(10) TYPE C, " Document number after F-43
DOCN2(10) TYPE C, " Document number after F-53
docn3(10) type c, " Document number after FCH5
ERR(1) TYPE C, " record error flag
MESSAGE(80) TYPE C, " Error message DEVK902795
END OF I_DATA.
*
DATA: BEGIN OF I_FOOTER, " FOOTER record of the input
RECTYPE(1) TYPE C, " Record Type 9
DATETIM(12) TYPE C, " file time stamp DDMMYYYYHHMM
RECCNT(12) TYPE C, " Record count on interface file
TOTLAMT(17) TYPE C, " total pound value on all recs.
END OF I_FOOTER.
*
DATA: BEGIN OF W_DATA. " allows access of the previousy
INCLUDE STRUCTURE I_DATA. " read record
DATA: END OF W_DATA.
*
DATA: BEGIN OF I_ERRORID OCCURS 0. " This holds and controls the
INCLUDE STRUCTURE BDCMSGCOLL. " system messages
DATA: END OF I_ERRORID.
data: begin of i_error occurs 0. " This is the error table
include structure i_data. " file record
data: text(50) type c. " error message text
include structure bdcmsgcoll. " system messages
data: end of i_error.
*
*
----
Main table: data + bdcmsg + error text (not utilized yet)
----
*
DATA: BEGIN OF M_TBL OCCURS 0.
INCLUDE STRUCTURE I_DATA. " file record
INCLUDE STRUCTURE BDCMSGCOLL. " BDC system messages
DATA: TEXT(50) TYPE C. " error message text
DATA: END OF M_TBL.
*
*
DATA: BEGIN OF I_DATE , " Allows formatting of Date
YEAR(4) TYPE C,
MTH(2) TYPE C,
DAY(2) TYPE C,
END OF I_DATE.
----
DATA : C_YES TYPE C VALUE 'X', " Default for yes
C_F43(4) TYPE C VALUE 'F-43', " Transaction Code F-43
C_F53(4) TYPE C VALUE 'F-53', " Transaction Code F-53
C_FCH5(4) TYPE C VALUE 'FCH5', " Transaction Code FCH5
C_DCWW(4) TYPE C VALUE 'DCWW', " Company DCWW DEVK902693
C_CCY(3) TYPE C VALUE 'GBP', " Currency key
C_GB(2) TYPE C VALUE 'GB', " BANK COUNTRY
C_BLART(2) TYPE C VALUE 'IZ', " DOCUMENT TYPE
C_MWSKZ(2) TYPE C VALUE 'VZ', " TAX CODE " DEVK903446
C_COMMA TYPE C VALUE ',', " CONSTANT COMMA
C_NUMBER(10) TYPE C VALUE '0123456789', " NUMBERS
C_TERM(4) TYPE C VALUE '0001', " PAYMENT TERMS
C_M TYPE C VALUE 'M', " MANUAL Cheque pmt. ind.
C_ERROR(9) TYPE C VALUE '*Error*',
ERROR TYPE C VALUE 'E'. " error indicator
----
DATA: " W_LINES TYPE I,
W_TX(4) TYPE C VALUE SPACE, " tx code for tx call
LAST_RECORD_FLAG TYPE C VALUE SPACE, " Last record flag
W_DATUM(8) TYPE C, " Date ddmmyyyy.
W_WRTBR(7) TYPE P DECIMALS 2, " Amount 99.99
W_WRTBR_T(7) TYPE P DECIMALS 2, " total file amt 99.99
W_COUNT(5) TYPE C, " POSTING Counter
W_MSG(500) TYPE C, " Message
W_C500(500) TYPE C, " working storage
W_ERR(50) TYPE C, " REC HEADER NOT VALID T???
W_ERROREC(50) TYPE C, " Error numbers
W_LEN TYPE I, " doc number length
W_BACS LIKE BSEG-WRBTR, " Amount of BACS
W_CHEQUE LIKE BSEG-WRBTR, " Amount of CHEQUE
W_MANUAL LIKE BSEG-WRBTR, " Amount of MANUAL CHEQUE
W_NOTPST LIKE BSEG-WRBTR, " not posted
W_FILE LIKE FILENAME-FILEINTERN, " FILE NAME
P_FILE LIKE FILENAME-FILEINTERN, " FILE NAME
W_BANKACC(16) TYPE C, " Bank G/L Account DEVK902693
W_COUNTER TYPE I, " rec type2 counter
W_DATA_PAYIN(1) TYPE C, " Payment type DEVK904440
*{ REPLACE RD3K903672 1
*\ W_REFUND_COMP_FLAG(1) TYPE C VALUE 'R', " DEVK903724
W_REFUND_COMP_FLAG(1) TYPE C, "DEVK903724
*} REPLACE
W_BACS_2 LIKE BSEG-WRBTR, " DEVK903724
W_CHQS_2 LIKE BSEG-WRBTR, " DEVK903724
W_MANS_2 LIKE BSEG-WRBTR, " DEVK903724
W_NOTPST_2 LIKE BSEG-WRBTR, " DEVK903724
W_COUNT_BACS TYPE I, " DEVK903724
W_COUNT_CHQS TYPE I, " DEVK903724
W_COUNT_MANS TYPE I, " DEVK903724
W_COUNT_NOTPST TYPE I, " DEVK903724
W_COUNT_BACS_TOTAL TYPE I, " DEVK903724
W_COUNT_CHQS_TOTAL TYPE I, " DEVK903724
W_COUNT_MANS_TOTAL TYPE I, " DEVK903724
W_COUNT_NOTPST_TOTAL TYPE I. " DEVK903724
----
Selection screen definition (Parameters & Select-options etc...) *
----
*
SELECTION-SCREEN: BEGIN OF BLOCK PART1 " Selection screen Title
WITH FRAME TITLE TEXT-003. " with box.
SELECTION-SCREEN SKIP 1.
PARAMETERS: P_MODE(1) TYPE C " Call Trans Mode.
DEFAULT 'N'. " Available modes :
" 'A' = Display ALL
" 'E' = Displays Errors
" 'N' = No Display
*
SELECTION-SCREEN: END OF BLOCK PART1.
======================================================================
Standard includes - standard includes after this point*
======================================================================
INCLUDE ZBDCINCL. " BDC file population macros
INCLUDE ZSTAHEAD. " standard headings
----
AT Selection-Screen event
This validates the dataset is able to be processed *
----
*
AT SELECTION-SCREEN ON P_MODE.
MOVE 'ZFB0002A01' TO W_FILE.
*
IF P_MODE IS INITIAL. " If Transaction Process selected
MESSAGE E026. " MODE TYPE obligatory
ENDIF.
*
AT SELECTION-SCREEN. " ON P_FILE.
*
----
Initialization event *
----
*
INITIALIZATION.
*
MOVE SY-DATUM TO I_DATE.
CONCATENATE I_DATE-DAY I_DATE-MTH I_DATE-YEAR INTO W_DATUM.
*
----
Start of selection event *
----
START-OF-SELECTION.
*
PERFORM OPEN_DATASET. " DEVK902394
PERFORM READ_DATASET. " Read data into internal tbl
PERFORM FOOTER_AUDIT. " postings vs. footer amt.
PERFORM SORT_RECORDS. " by pmt. ind. & chq. nbr.
PERFORM GET_BANK_ACC. " Reads table T042I DEVK902693
PERFORM GEN_BDC_DATA. " Create batch input data
PERFORM CHECK_BANK_DETAILS. " Check bank details DEVK903373
PERFORM PROCESS_POSTINGS. " Calls the screens
PERFORM PROCESS_ERRORS. " Prints out the error reports.
PERFORM CLOSE_DATASET. " Closes the dataset.
*
======================================================================
Forms - All forms and only forms in this section, excl. std. includes*
======================================================================
----
FORM READ_DATASET
----
Assumes file sorted by record type in ascending order !!!
----
FORM READ_DATASET.
*
PERFORM READ_HEADER. " 1st rec must be hdr rec, typ1
*
W_COUNTER = 0. " record type 2 counter
DO. " Loop at dataset
IF LAST_RECORD_FLAG = C_YES. " Exit if last record has
EXIT. " Been read
ENDIF.
*
READ DATASET P_FILE INTO I_DATA. " Read Records of dataset
*
CASE SY-SUBRC.
WHEN 0. " Dataset record read successful
PERFORM EDIT_RECORD. " type2 or type9 expected
WHEN 04. " Last dataset record read
LAST_RECORD_FLAG = C_YES.
WHEN 8.
MESSAGE E027 WITH P_FILE. " error reading data
ENDCASE.
*
ENDDO. " Loop at dataset
*
ENDFORM. " Read_dataset
*
----
Form READ_HEADER
----
FORM READ_HEADER.
*
READ DATASET P_FILE INTO I_HEADER. " 1st rec type1, header record
*
CASE SY-SUBRC.
WHEN 0. " Dataset record read successful
IF I_HEADER-RECTYPE NE '1'. " header record invalid
MESSAGE E024 WITH P_FILE.
ENDIF.
WHEN 04. " Last rec read, empty file
MESSAGE E025 WITH P_FILE. " Error, empty file
WHEN 8.
MESSAGE E027 WITH P_FILE. " error reading data
ENDCASE.
ENDFORM. " READ_HEADER
*
----
FORM EDIT_RECORD
----
The first record, header record, is already processed successfully
----
FORM EDIT_RECORD.
*
CASE I_DATA-RECTYPE.
WHEN '1'. " duplicate header
MESSAGE E028 WITH P_FILE.
WHEN '2'. " detailed record
PERFORM EDIT_SIGN.
PERFORM EDIT_ADDR.
PERFORM EDIT_REFUND.
PERFORM EDIT_PMT_IND.
PERFORM CHECK_BUSINESS_AREA. " DEVK903446
W_COUNTER = W_COUNTER + 1. " record typ2 counter
MOVE I_DATA TO W_DATA. " sav rec typ2 for future compare
APPEND I_DATA. " error flag may be set on.
CLEAR I_DATA. "
WHEN '9'. " foter record, last record
IF W_COUNTER = 0.
MOVE 'R' TO W_REFUND_COMP_FLAG." DEVK903724
WRITE:/5 TEXT-200. " no postings in the file DEVK903724
MOVE 'C' TO W_REFUND_COMP_FLAG." DEVK903724
CLEAR SY-PAGNO. " DEVK903724
NEW-PAGE. " DEVK903724
WRITE:/5 TEXT-200. " no postings in the file DEVK903724
MOVE 'X' TO W_REFUND_COMP_FLAG." DEVK903724
CLEAR SY-PAGNO. " DEVK903724
NEW-PAGE. " DEVK903724
WRITE:/5 TEXT-200. " no postings in the file DEVK903724
ENDIF.
IF W_DATA-RECTYPE = '9'.
MESSAGE E030 WITH P_FILE. " duplicate footer
ENDIF.
MOVE I_DATA TO I_FOOTER. " it's a footer record,
MOVE I_DATA TO W_DATA. " sav rec typ2 for future compare
CLEAR I_DATA.
WHEN OTHERS.
I_DATA-ERR = ERROR. " mark the record in error
MOVE TEXT-201 TO I_DATA-MESSAGE. " Invalid_record_type
MOVE-CORRESPONDING I_DATA TO M_TBL.
APPEND M_TBL.
CLEAR M_TBL.
ENDCASE.
*
ENDFORM. " EDIT_RECORD
*
----
Form EDIT_SIGN
----
FORM EDIT_SIGN.
CASE I_DATA-SIGN.
WHEN ' '. I_DATA-SIGN = ''. " default to ''
WHEN '+'.
WHEN '-'.
I_DATA-ERR = ERROR. " mark the record in error
MOVE TEXT-202 TO I_DATA-MESSAGE. " Cheque amt cannot be negative
MOVE-CORRESPONDING I_DATA TO M_TBL.
APPEND M_TBL.
CLEAR M_TBL.
WHEN OTHERS.
I_DATA-ERR = ERROR. " mark the record in error
MOVE TEXT-205 TO I_DATA-MESSAGE. " invalid posting amount sign
MOVE-CORRESPONDING I_DATA TO M_TBL.
APPEND M_TBL.
CLEAR M_TBL.
ENDCASE.
ENDFORM. " EDIT_SIGN
*
----
Form EDIT_ADDR
----
Condense removes leading blanks.
City is a mandatory, so we fill it with the last non blank line
of the address.
----
FORM EDIT_ADDR.
*
CONDENSE I_DATA-NAME1.
CONDENSE I_DATA-ADDR1.
CONDENSE I_DATA-ADDR2.
CONDENSE I_DATA-ADDR3.
CONDENSE I_DATA-CONTY.
*
CALL FUNCTION 'Z_FORMAT_ADDRESS'
EXPORTING
I_ADDRESS_1 = I_DATA-ADDR1
I_ADDRESS_2 = I_DATA-ADDR2
I_ADDRESS_3 = I_DATA-ADDR3
I_ADDRESS_4 = I_DATA-CONTY
IMPORTING
O_ADDRESS_1 = I_DATA-ADDR1
O_ADDRESS_2 = I_DATA-ADDR2
O_ADDRESS_3 = I_DATA-ADDR3
O_ADDRESS_4 = I_DATA-CONTY
EXCEPTIONS
ERROR = 1.
*
IF SY-SUBRC NE 0. "
I_DATA-ERR = ERROR. " mark the record in error
MOVE TEXT-206 TO I_DATA-MESSAGE. " Incomplete cheque address
MOVE-CORRESPONDING I_DATA TO M_TBL.
APPEND M_TBL.
CLEAR M_TBL.
ENDIF.
*
ENDFORM. " EDIT_ADDR
*
----
Form EDIT_REFUND
----
Condense removes leading blank characters.
Compress 5 refund lines, so we don't have blank lines between them.
----
FORM EDIT_REFUND.
*
CONDENSE I_DATA-NARRAT.
CONDENSE I_DATA-RADDR1.
CONDENSE I_DATA-RADDR2.
CONDENSE I_DATA-RADDR3.
CONDENSE I_DATA-RCONTY.
*
DO 4 TIMES.
IF I_DATA-RADDR1 = SPACE.
I_DATA-RADDR1 = I_DATA-RADDR2.
I_DATA-RADDR2 = SPACE.
ENDIF.
IF I_DATA-RADDR2 = SPACE.
I_DATA-RADDR2 = I_DATA-RADDR3.
I_DATA-RADDR3 = SPACE.
ENDIF.
IF I_DATA-RADDR3 = SPACE.
I_DATA-RADDR3 = I_DATA-RCONTY.
I_DATA-RCONTY = SPACE.
ENDIF.
IF I_DATA-RCONTY = SPACE.
I_DATA-RCONTY = I_DATA-RPOSTC.
I_DATA-RPOSTC = SPACE.
ENDIF.
ENDDO.
*
ENDFORM. " EDIT_REFUND
*
----
FORM EDIT_PMT_IND
----
FORM EDIT_PMT_IND.
*
CASE I_DATA-PAYIN. " PAYMENT INDICATOR
WHEN 'B'. " BACS
WHEN 'C'. " CHEQUES
WHEN 'M'. " MANUAL CHEQUES
WHEN OTHERS.
I_DATA-ERR = ERROR. " mark the record in error
MOVE TEXT-203 TO I_DATA-MESSAGE. " invalid payment INDICATOR
MOVE-CORRESPONDING I_DATA TO M_TBL.
APPEND M_TBL.
CLEAR M_TBL.
ENDCASE.
*
ENDFORM. " EDIT_PMT_IND
*
----
FORM CHECK_BUSINESS_AREA.
----
FORM CHECK_BUSINESS_AREA. " DEVK903446
*
IF I_DATA-BUKRS NE 'DCWW' AND "#EC PORTABLE DEVK917514
I_DATA-GSBER GT '00'. " DEVK903473
I_DATA-ERR = ERROR. " mark the record in error
MOVE TEXT-207 TO I_DATA-MESSAGE. " invalid business area
MOVE-CORRESPONDING I_DATA TO M_TBL.
APPEND M_TBL.
CLEAR M_TBL.
ENDIF.
*
ENDFORM. " CHECK_BUSINESS_AREA
----
Form FOOTER_AUDIT
----
if u r here, all records type 2, postings, are in the i_data tbl.
read all postings from the internal table i_data,
count all type 2 records,
summarize all type 2 record amounts,
compare the totals with the footer, if different then error.
----
FORM FOOTER_AUDIT.
*
W_COUNTER = 0.
LOOP AT I_DATA.
*
W_COUNTER = W_COUNTER + 1.
MOVE I_DATA-WRBTR TO W_WRTBR. " Moving char field to num
W_WRTBR_T = W_WRTBR_T + W_WRTBR. " Totals amounts.
*
ENDLOOP.
*
IF W_COUNTER NE I_FOOTER-RECCNT.
MESSAGE E033 WITH P_FILE. " record count does not balance
ENDIF.
*
IF W_WRTBR_T NE I_FOOTER-TOTLAMT.
MESSAGE E034 WITH P_FILE. " postings total does not balance
ENDIF.
*
ENDFORM. " FOOTER_AUDIT
*
----
Form SORT_RECORDS
----
FORM SORT_RECORDS.
SORT I_DATA
BY PAYIN
CHQNR
ASCENDING AS TEXT.
ENDFORM. " SORT_RECORDS
&----
*& Form GET_BANK_ACC
&----
Determine bank account details. *
----
FORM GET_BANK_ACC.
SELECT * FROM T042I
WHERE ZBUKR = C_DCWW " Paying company code
AND ZLSCH = C_M " Payment method
AND WAERS = C_CCY. " Currency key
MOVE T042I-UKONT TO W_BANKACC. " G/L acc. to be posted to
ENDSELECT.
*
ENDFORM. " GET_BANK_ACC
*
----
FORM GEN_BDC_DATA
----
Generate batch input data.
*
FORM GEN_BDC_DATA.
*
LOOP AT I_DATA.
*
MOVE '31' TO I_DATA-NEWBS. "
MOVE:'40' TO I_DATA-POSTNE, " this MAKES THE CONTRA ENTRY
I_DATA-NEWKO TO I_DATA-POSTAC, " WHEN '31'
'*' TO I_DATA-WRBTR1. "
MOVE '99998' TO I_DATA-NEWKO. " setup G/L account otv
*
MOVE: W_DATUM TO I_DATA-BLDAT," Date to document
W_DATUM TO I_DATA-BUDAT," Date
I_DATE-MTH TO I_DATA-MONAT," CURRENT PERIOD
I_DATE-YEAR TO I_DATA-GJAHR," CURRENT FISCAL YEAR
I_DATA-WRBTR TO W_WRTBR, " Moving char field to num
W_WRTBR TO I_DATA-WRBTR." Returning amount as number
*
IF I_DATA-GSBER(1) EQ 0.
SHIFT I_DATA-GSBER. " suppress leading seroes
ENDIF.
*
MODIFY I_DATA.
ENDLOOP.
*
ENDFORM. " GEN_BDC_DATA
*
----
Form PROCESS_POSTINGS
----
FORM PROCESS_POSTINGS.
*
CLEAR I_DATA. " DEVK903373
LOOP AT I_DATA WHERE MESSAGE IS INITIAL. " DEVK903373
IF I_DATA-ERR = SPACE.
PERFORM PROCESS_F-43.
IF I_DATA-PAYIN = 'M'.
IF I_DATA-DOCN NE SPACE. " F-43 succesful, got doc. nbr.
PERFORM PROCESS_F-53.
IF I_DATA-DOCN2 NE SPACE. " F-53 succesful, got doc. nbr.
PERFORM PROCESS_FCH5.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*
ENDLOOP.
ENDFORM. " PROCESS_POSTINGS
*
----
Form PROCESS_F-43
----
FORM PROCESS_F-43.
*
PERFORM SCREEN_0100. " Header Screen.
PERFORM SCREEN_0100A. " CUSTOMER INFO ADDRESS & BANK
PERFORM SCREEN_302. " Line item detail DEVK917514
*
no need to process TEXT screens if no refund information exist
*
CONCATENATE
I_DATA-RADDR1
I_DATA-RADDR2
I_DATA-RADDR3
I_DATA-RCONTY
INTO W_C500.
*
PERFORM SCREEN_0300A. " before text entry
PERFORM SCREEN_0002. " before text entry
IF W_C500 NE SPACE. " Check refund address
PERFORM SCREEN_0100T. " TEXT SELECTION SCREEN
PERFORM SCREEN_1100T. " TEXT DETAIL LINES
ENDIF.
PERFORM SCREEN_0100T2. " TEXT SELECTION SCREEN, BACK
*
PERFORM SCREEN_0300. " Line item detail, after text
PERFORM SCREEN_0002. " This is Business areas
PERFORM SCREEN_0700. " posting screen
*
W_TX = C_F43. " Calls F-43 transaction
PERFORM CALL_TRANSACTION. " Calls transactions
*
CONDENSE SY-MSGV1. " this condenses and checks for
IF SY-MSGV1 CA C_NUMBER. " document posted number
W_LEN = STRLEN( SY-MSGV1 ). " check to lenght of doc number
IF W_LEN GT 6.
MOVE SY-MSGV1 TO I_DATA-DOCN. " stored for F-53 and output
MODIFY I_DATA.
ENDIF.
ENDIF.
REFRESH BDCTAB.
*
ENDFORM. " PROCESS_F-43
*
----
Form PROCESS_F-53
----
FORM PROCESS_F-53.
*
PERFORM SCREEN_0103. " Header Screen
PERFORM SCREEN_0731. " Post Outg.Pmts:SELECTION SCRN.
PERFORM SCREEN_1102. " Process Open Items
PERFORM SCREEN_0700. " post open items
*
W_TX = C_F53. " Calls F-53 transaction
PERFORM CALL_TRANSACTION. " Calls transactions
*
CONDENSE SY-MSGV1. " this condenses and checks for
IF SY-MSGV1 CA C_NUMBER. " document posted number
W_LEN = STRLEN( SY-MSGV1 ). " check to lenght of doc number
IF W_LEN GT 6.
MOVE SY-MSGV1 TO I_DATA-DOCN2. " stored for tx FCH5
MODIFY I_DATA.
ENDIF.
ENDIF.
REFRESH BDCTAB.
*
ENDFORM. " PROCESS_F-53
*
----
Form PROCESS_FCH5
----
FORM PROCESS_FCH5.
*
PERFORM SCREEN_0500. " Create Cheque Information
W_TX = C_FCH5. " Calls FCH5 transaction
PERFORM CALL_TRANSACTION. " Calls transactions
*
condense sy-msgv1. " this condenses and checks for
if sy-msgv1 ca c_number. " document posted number
w_len = strlen( sy-msgv1 ). " check to lenght of doc number
if w_len gt 6. DEVK902795
move sy-msgv1 to i_data-docn3. " stored for tx FCH5 DEVK902795
modify i_data. DEVK902795
endif. DEVK902795
endif. DEVK902795
REFRESH BDCTAB.
*
ENDFORM. " PROCESS_FCH5
*
----
FORM CALL TRANSACTION
----
FORM CALL_TRANSACTION.
*
REFRESH I_ERRORID. " DEVK902795
CALL TRANSACTION W_TX USING
BDCTAB MODE P_MODE " As is for test mode
UPDATE 'S' " DEVK902394
MESSAGES INTO I_ERRORID. " Puts system errors in
if sy-subrc ne 0. " DEVK917514
MOVE SY-MSGTY TO I_DATA-ERR. " Message type (E,I.W,...)
MODIFY I_DATA. " DEVK902394
MOVE-CORRESPONDING I_DATA TO M_TBL.
MOVE-CORRESPONDING I_ERRORID TO M_TBL." Puts system errors in
MOVE SY-MSGV1 TO M_TBL-TEXT. " duplicate system message
APPEND M_TBL.
CLEAR M_TBL.
PERFORM CHECK_FOR_ERRORS. " DEVK902795
endif. " DEVK917514
*
ENDFORM. " CALL TRANSACTION
*
This form is required by the DWR CYMRU standard headings.
----
FORM COLUMN_HEADER.
FORMAT INTENSIFIED ON. " DEVK903724
IF W_REFUND_COMP_FLAG EQ 'R'. " DEVK903724
WRITE /1 TEXT-115. " DEVK903724
ENDIF. " DEVK903724
IF W_REFUND_COMP_FLAG EQ 'C'. " DEVK903724
WRITE /1 TEXT-114. " DEVK903724
ENDIF. " DEVK903724
IF W_REFUND_COMP_FLAG EQ 'X'. " DEVK903724
WRITE /1 TEXT-120. " DEVK903724
ENDIF. " DEVK903724
SKIP 1. " DEVK903724
FORMAT INTENSIFIED OFF. " DEVK903724
WRITE : /,
52 TEXT-517, " F-43 " DEVK903724
63 TEXT-518, " F-53 " DEVK903724
104 text-519, " FCH5 DEVK902795
73 TEXT-521, " Message DEVK902795
/1 TEXT-500, " CUSTOMER
14 text-500, " CUSTOMER DEVK902795
14 TEXT-506, " TYPE OF PAYMENT DEVK902394
16 TEXT-507, " BANK
25 TEXT-509, " Bank
47 TEXT-511, " Company " DEVK903724
52 TEXT-503, " DOCUMENT " DEVK903724
63 TEXT-503, " DOCUMENT " DEVK903724
104 text-503, " DOCUMENT DEVK902795
/1 TEXT-502, " NUMBER
14 text-501, " NAME DEVK902795
14 TEXT-520, " TYPE OF PAYMENT DEVK902394
16 TEXT-508, " ACCOUNT
25 TEXT-510, " CODE
39 TEXT-004, " VALUE
47 TEXT-512, " Code " DEVK903724
52 TEXT-502, " NUMBER " DEVK903724
63 TEXT-502. " NUMBER " DEVK903724
104 text-502. " NUMBER DEVK902795
SKIP. " DEVK902394
ENDFORM.
----
FORM screen_0100
----
Generate batch input data.
FORM SCREEN_0100.
ZZ_INS_BDC_SCREEN 'SAPMF05A' '0100'. " SCREEN ID
ZZ_INS_BDC_FIELD 'BKPF-BLDAT' I_DATA-BLDAT. " DOCUMENT DATE
ZZ_INS_BDC_FIELD 'BKPF-BLART' C_BLART. " DOCUMENT TYPE
ZZ_INS_BDC_FIELD 'BKPF-BUKRS' I_DATA-BUKRS. " COMPANY CODE
ZZ_INS_BDC_FIELD 'BKPF-WAERS' C_CCY." CURRENCY KEY
ZZ_INS_BDC_FIELD 'BKPF-BKTXT' I_DATA-KUNNR. " CUSTOMER NO. TO H.TX
ZZ_INS_BDC_FIELD 'RF05A-NEWKO' I_DATA-NEWKO. "
ZZ_INS_BDC_FIELD 'RF05A-NEWBS' I_DATA-NEWBS. " NEXT POSTING ACCOUNT
ZZ_INS_BDC_FIELD 'BDC_OKCODE' '/00'. " DEVK902394
*
ENDFORM.
----
Form SCREEN_0100 SAPLFCPD
----
FORM SCREEN_0100A.
*
ZZ_INS_BDC_SCREEN 'SAPLFCPD' '0100'. " SCREEN ID
ZZ_INS_BDC_FIELD 'BSEC-NAME1' I_DATA-NAME1+0(35). " NAME DEVK903563
ZZ_INS_BDC_FIELD 'BSEC-NAME2' I_DATA-ADDR1+0(35). " ADDRESS 1 903563
ZZ_INS_BDC_FIELD 'BSEC-NAME3' I_DATA-ADDR2+0(35). " ADDRESS 2 903563
ZZ_INS_BDC_FIELD 'BSEC-NAME4' I_DATA-ADDR3+0(35). " ADDRESS 3 903563
ZZ_INS_BDC_FIELD 'BSEC-ORT01' I_DATA-CONTY. " ADDRESS 4
ZZ_INS_BDC_FIELD 'BSEC-PSTLZ' I_DATA-POSTC. " POSTCODE
IF I_DATA-PAYIN EQ 'B'. " if it is a bacs payment
ZZ_INS_BDC_FIELD 'BSEC-BANKL' I_DATA-BANKI. " BANK SORT CODE
ZZ_INS_BDC_FIELD 'BSEC-BANKS' C_GB. " BANK COUNTRY
ZZ_INS_BDC_FIELD 'BSEC-BANKN' I_DATA-BANKA. " BANK ACCOUNT
ENDIF.
ZZ_INS_BDC_FIELD 'BDC_OKCODE' '/00'. " DEV902394
ENDFORM.
----
Form SCREEN_302 " DEVK917514
----
FORM SCREEN_302. " DEVK917514
ZZ_INS_BDC_SCREEN 'SAPMF05A' '302'." Process debit credit DEVK917514
ZZ_INS_BDC_FIELD 'BSEG-WRBTR' I_DATA-WRBTR. " Amount to field
*
IF I_DATA-BUKRS = 'DCWW'. " DEVK903446
ZZ_INS_BDC_FIELD 'BSEG-GSBER' I_DATA-GSBER. " BUSINESS AREA
ENDIF. " DEVK903446
ZZ_INS_BDC_FIELD 'BSEG-ZTERM' C_TERM. " PAYMENT TERM
Start of change DEVK904440
CASE I_DATA-PAYIN.
WHEN 'C'.
W_DATA_PAYIN = 'Q'.
WHEN 'B'.
W_DATA_PAYIN = 'R'.
WHEN OTHERS.
W_DATA_PAYIN = I_DATA-PAYIN.
ENDCASE.
DEVK904440
ZZ_INS_BDC_FIELD 'BSEG-ZLSCH' W_DATA_PAYIN. " PAYMENT TYPE,from file
" Check for next item
ZZ_INS_BDC_FIELD 'BSEG-ZUONR' I_DATA-KUNNR. " Ref into text
ZZ_INS_BDC_FIELD 'BSEG-SGTXT' I_DATA-KUNNR. " Ref into text
ZZ_INS_BDC_FIELD 'RF05A-NEWBS' I_DATA-POSTNE. " Posting key for next
ZZ_INS_BDC_FIELD 'RF05A-NEWKO' I_DATA-POSTAC. " Account key fo next
ZZ_INS_BDC_FIELD 'RF05A-NEWBK' I_DATA-BUKRS. " COMPANY CODE for next
ZZ_INS_BDC_FIELD 'BDC_OKCODE' '/00'. " DEVK902394
*
ENDFORM. " SCREEN_302 DEVK917514
----
Form SCREEN_0300a - before TEXT processing
----
FORM SCREEN_0300A.
*
ZZ_INS_BDC_SCREEN 'SAPMF05A' '0300'. " Process payment contra
ZZ_INS_BDC_FIELD 'BSEG-WRBTR' I_DATA-WRBTR1. " Amount to field
IF I_DATA-POSTAC(1) GE '5'. "#EC PORTABLE DEVK917514
ZZ_INS_BDC_FIELD 'BSEG-MWSKZ' C_MWSKZ. " Tax code 'VZ'
ENDIF. " DEVK903520
ZZ_INS_BDC_FIELD 'BSEG-ZUONR' I_DATA-KUNNR. " Ref into text
ZZ_INS_BDC_FIELD 'BSEG-SGTXT' I_DATA-KUNNR. " Ref into text
ZZ_INS_BDC_FIELD 'bdc_okcode' 'TEXT'. " call TEXT screens
ENDFORM. " SCREEN_0300a
----
Form SCREEN_0100T - initial text selection screen
----
FORM SCREEN_0100T.
*
ZZ_INS_BDC_SCREEN 'SAPLFTXT' '0100'. " TEXT screen
ZZ_INS_BDC_FIELD 'BDC_CURSOR' 'RTEXT-LTEXT(1)'. " DEVK917514
ZZ_INS_BDC_FIELD 'bdc_okcode' '/02'. " F2 (detailed text)
*
ENDFORM. " SCREEN_0100T
----
Form SCREEN_1100T - detailed text screens, each line = new scrn
----
FORM SCREEN_1100T.
*
IF I_DATA-RADDR1 NE SPACE.
ZZ_INS_BDC_SCREEN 'SAPLSTXX' '1100'. " datail text scrn.
ZZ_INS_BDC_FIELD 'RSTXT-TXLINE(2)' I_DATA-RADDR1.
ZZ_INS_BDC_FIELD 'BDC_CURSOR' 'RSTXT-TXLINE(3)'." cursor=next line
ZZ_INS_BDC_FIELD 'bdc_okcode' 'EDNP'. " skip to next line
ENDIF.
*
IF I_DATA-RADDR2 NE SPACE.
ZZ_INS_BDC_SCREEN 'SAPLSTXX' '1100'. " datail text scrn.
ZZ_INS_BDC_FIELD 'RSTXT-TXLINE(3)' I_DATA-RADDR2.
ZZ_INS_BDC_FIELD 'BDC_CURSOR' 'RSTXT-TXLINE(4)'." cursor=next line
ZZ_INS_BDC_FIELD 'bdc_okcode' 'EDNP'. " skip to next line
ENDIF.
*
IF I_DATA-RADDR3 NE SPACE.
ZZ_INS_BDC_SCREEN 'SAPLSTXX' '1100'. " datail text scrn.
ZZ_INS_BDC_FIELD 'RSTXT-TXLINE(4)' I_DATA-RADDR3.
ZZ_INS_BDC_FIELD 'BDC_CURSOR' 'RSTXT-TXLINE(5)'." cursor=next line
ZZ_INS_BDC_FIELD 'bdc_okcode' 'EDNP'. " skip to next line
ENDIF.
*
IF I_DATA-RCONTY NE SPACE.
ZZ_INS_BDC_SCREEN 'SAPLSTXX' '1100'. " datail text scrn.
ZZ_INS_BDC_FIELD 'RSTXT-TXLINE(5)' I_DATA-RCONTY.
ZZ_INS_BDC_FIELD 'BDC_CURSOR' 'RSTXT-TXLINE(6)'." cursor=next line
ZZ_INS_BDC_FIELD 'bdc_okcode' 'EDNP'. " skip to next line
ENDIF.
*
IF I_DATA-RPOSTC NE SPACE.
ZZ_INS_BDC_SCREEN 'SAPLSTXX' '1100'. " datail text scrn.
ZZ_INS_BDC_FIELD 'RSTXT-TXLINE(6)' I_DATA-RPOSTC.
ZZ_INS_BDC_FIELD 'BDC_CURSOR' 'RSTXT-TXLINE(7)'." cursor=next line
ZZ_INS_BDC_FIELD 'bdc_okcode' 'EDNP'. " skip to next line
ENDIF.
" last line filled
ZZ_INS_BDC_FIELD 'bdc_okcode' 'TXBA'. " (f3 to save)
*
ENDFORM. " SCREEN_1100T
----
Form SCREEN_0100T2 - initial text screen upon return from detail
----
FORM SCREEN_0100T2.
*
ZZ_INS_BDC_SCREEN 'SAPLFTXT' '0100'. " TEXT screen
IF I_DATA-NARRAT NE SPACE.
ZZ_INS_BDC_FIELD 'BDC_CURSOR' 'RTEXT-LTEXT(2)'. " cursor position
ZZ_INS_BDC_FIELD 'RTEXT-LTEXT(2)' I_DATA-NARRAT.
ENDIF.
ZZ_INS_BDC_FIELD 'bdc_okcode' 'BACK'. " shift+f1=contin
*
ENDFORM. " SCREEN_0100T2
----
Form SCREEN_0300
----
FORM SCREEN_0300.
*
ZZ_INS_BDC_SCREEN 'SAPMF05A' '0300'. " Process payment contra
ZZ_INS_BDC_FIELD 'BSEG-WRBTR' I_DATA-WRBTR1. " Amount to field
IF I_DATA-POSTAC(1) GE '5'. "#EC PORTABLE DEVK917514
ZZ_INS_BDC_FIELD 'BSEG-MWSKZ' C_MWSKZ. " Tax code 'VZ'
ENDIF. " DEVK903520
ZZ_INS_BDC_FIELD 'BSEG-ZUONR' I_DATA-KUNNR. " Ref into text
ZZ_INS_BDC_FIELD 'BSEG-SGTXT' I_DATA-KUNNR. " Ref into text
ZZ_INS_BDC_FIELD 'bdc_okcode' '/11'.
ENDFORM. " SCREEN_0300
----
Form SCREEN_0002
----
FORM SCREEN_0002.
*
ZZ_INS_BDC_SCREEN 'SAPLKACB' '0002'. " Calls screen
*
if i_data-gsber(1) eq 0. " moved to gen_bdc_data T???
shift i_data-gsber.
endif.
*
IF I_DATA-BUKRS = 'DCWW'. " DEVK903446
ZZ_INS_BDC_FIELD 'COBL-GSBER' I_DATA-GSBER. " Business areas
ENDIF. " DEVK903446
IF I_DATA-POSTAC(1) GE '5'. "#EC PORTABLE DEVK917514
ZZ_INS_BDC_FIELD 'COBL-KOSTL' I_DATA-COSTCTR. " Cost centre
ENDIF. " DEVK903520
ZZ_INS_BDC_FIELD 'BDC_OKCODE' '/00'. " DEVK902394
*
ENDFORM. " SCREEN_0002
----
Form SCREEN_0700
----
FORM SCREEN_0700.
*
ZZ_INS_BDC_SCREEN 'SAPMF05A' '0700'. " Calls screen
ZZ_INS_BDC_FIELD 'bdc_okcode' '/11'.
*
ENDFORM. " SCREEN_0700
----
FORM SCREEN_0103
----
Generate batch input data.
FORM SCREEN_0103.
ZZ_INS_BDC_SCREEN 'SAPMF05A' '0103'. " SCREEN ID
ZZ_INS_BDC_FIELD 'BKPF-BLDAT' I_DATA-BLDAT. " DOCUMENT DATE
ZZ_INS_BDC_FIELD 'BKPF-BLART' C_BLART. " DOCUMENT TYPE
ZZ_INS_BDC_FIELD 'BKPF-BUKRS' I_DATA-BUKRS. " COMPANY CODE
ZZ_INS_BDC_FIELD 'BKPF-BUDAT' I_DATA-BUDAT. " POSTING DATAE
ZZ_INS_BDC_FIELD 'BKPF-MONAT' I_DATA-MONAT. " 280197SD
ZZ_INS_BDC_FIELD 'BKPF-WAERS' C_CCY. " CURRENCY KEY
Changed to include G/L Account from input file 280197sd
ZZ_INS_BDC_FIELD 'RF05A-KONTO' W_BANKACC. " BANK ACCT G/L ACCT
" DEVK902693
IF I_DATA-BUKRS = 'DCWW'. " DEVK903446
ZZ_INS_BDC_FIELD 'BSEG-GSBER' I_DATA-GSBER. " BUSINESS AREA
ENDIF. " DEVK903446
ZZ_INS_BDC_FIELD 'BSEG-WRBTR' I_DATA-WRBTR. " AMOUNT
ZZ_INS_BDC_FIELD 'BSEG-VALUT' I_DATA-BLDAT. " VALUE DATE 280197sd
ZZ_INS_BDC_FIELD 'BSEG-VALUT' SPACE. " VALUE DATE 280197sd
ZZ_INS_BDC_FIELD 'RF05A-AGKON' '99998'. " 1 TIME VENDOR ACCT.
ZZ_INS_BDC_FIELD 'RF05A-XPOS1(3)' 'X'. " STANDARD OIs ONLY
ZZ_INS_BDC_FIELD 'BDC_OKCODE' '/00'.
*
ENDFORM. "SCREEN_0103
----
Form SCREEN_0731
----
FORM SCREEN_0731.
*
ZZ_INS_BDC_SCREEN 'SAPMF05A' '0731'. " Calls screen
ZZ_INS_BDC_FIELD 'RF05A-SEL01(1)' I_DATA-DOCN. " DOC FROM F-43
ZZ_INS_BDC_FIELD 'bdc_okcode' 'PA'. " SHIFT+F4 EDIT OPEN ITEMS
*
ENDFORM. " SCREEN_0731
----
Form SCREEN_1102
----
FORM SCREEN_1102.
*
ZZ_INS_BDC_SCREEN 'SAPDF05X' '1102'. " PROCESS OPEN ITEMS
ZZ_INS_BDC_FIELD 'bdc_okcode' '/11'." DEVK902394
*
ENDFORM. " SCREEN_1102
----
FORM SCREEN_0500
----
Generate batch input data.
FORM SCREEN_0500.
ZZ_INS_BDC_SCREEN 'SAPMFCHK' '0500'. " SCREEN ID
ZZ_INS_BDC_FIELD 'PAYR-VBLNR' I_DATA-DOCN2. " DOC FROM F-53
ZZ_INS_BDC_FIELD 'PAYR-ZBUKR' 'DCWW'. " COMPANY CODE
Fiscal year should default 280197sd
ZZ_INS_BDC_FIELD 'PAYR-GJAHR' I_DATA-GJAHR. " CURRENT FISCAL YEAR
ZZ_INS_BDC_FIELD 'PAYR-HBKID' 'NATWS'. " HOUSE BANK NATWS
ZZ_INS_BDC_FIELD 'PAYR-HKTID' '22972'. " ACCOUNT ID 22972
ZZ_INS_BDC_FIELD 'PAYR-CHECT' I_DATA-CHQNR. " CHEQUE NNUMBER
ZZ_INS_BDC_FIELD 'bdc_okcode' '/11'.
ZZ_INS_BDC_SCREEN 'SAPMFCHK' '0500'. " DEVK902394
ZZ_INS_BDC_FIELD 'BDC_OKCODE' '/15'." DEVK902394
*
ENDFORM. "SCREEN_0500
*
----
Form PROCESS_ERRORS
----
FORM PROCESS_ERRORS.
FORMAT INTENSIFIED ON.
DESCRIBE TABLE I_DATA LINES SY-TFILL." Check data file
IF SY-TFILL NE 0.
PERFORM REPORT. " writes final report
DESCRIBE TABLE I_ERRORID LINES SY-TFILL. " Check message tab
IF SY-TFILL = 0.
SKIP.
WRITE:/5 TEXT-002 , SY-UNAME. " Upload Error
SKIP.
ELSE.
This has been commented out. For sign off.
*
CLEAR I_ERRORID.
LOOP AT I_ERRORID. " Internal message table
This filters out the warnings but confirms document numbers
AND SHOWS THE ERRORS.
*oN CHANGE OF I_ERRORID-MSGNR.
IF I_ERRORID-MSGTYP EQ 'E' OR I_ERRORID-MSGTYP EQ 'S'.
SELECT SINGLE TEXT INTO T100-TEXT FROM T100
WHERE SPRSL = 'E' " Lanuage
AND ARBGB = I_ERRORID-MSGID " Message application
AND MSGNR = I_ERRORID-MSGNR. " Message number
*
MOVE T100-TEXT TO W_MSG. " Moves system error
The next items replace system Varables with program vables
then uses condenes to remove the spaces
REPLACE '&' WITH I_ERRORID-MSGV1 INTO W_MSG.
IF W_MSG CA '&'.
REPLACE '&' WITH I_ERRORID-MSGV2 INTO W_MSG.
IF W_MSG CA '&'.
REPLACE '&' WITH I_ERRORID-MSGV3 INTO W_MSG.
IF W_MSG CA '&'.
REPLACE '&' WITH I_ERRORID-MSGV4 INTO W_MSG.
ENDIF.
ENDIF.
ENDIF.
CONDENSE W_MSG.
FORMAT INTENSIFIED OFF.
SKIP.
WRITE: / W_MSG. " Writes out message
FORMAT INTENSIFIED OFF.
ENDIF.
*ENDON.
ENDLOOP. " END ERROR_ID loop
ENDIF.
ENDIF.
SKIP.
WRITE: / TEXT-401. " End of report
*
ENDFORM. " PROCESS_ERRORS
----
Form REPORT
----
This prints out the Data set *
----
FORM REPORT.
MOVE 'R' TO W_REFUND_COMP_FLAG. " DEVK903724
FORMAT INTENSIFIED OFF.
IF W_ERR IS INITIAL. " Any errors
FORMAT INTENSIFIED ON.
WRITE : /4 W_ERR. " Confirmation of posting or
FORMAT INTENSIFIED OFF. " Error message
ENDIF.
FORMAT INTENSIFIED ON.
W_COUNT = 0.
CLEAR: W_BACS, " DEVK903724
W_CHEQUE, " DEVK903724
W_MANUAL, " DEVK903724
W_NOTPST, " DEVK903724
W_BACS_2, " DEVK903724
W_CHQS_2, " DEVK903724
W_MANS_2, " DEVK903724
W_NOTPST_2, " DEVK903724
W_COUNT_BACS, " DEVK903724
W_COUNT_CHQS, " DEVK903724
W_COUNT_MANS, " DEVK903724
W_COUNT_NOTPST, " DEVK903724
W_COUNT_BACS_TOTAL, " DEVK903724
W_COUNT_CHQS_TOTAL, " DEVK903724
W_COUNT_MANS_TOTAL, " DEVK903724
W_COUNT_NOTPST_TOTAL. " DEVK903724
LOOP AT I_DATA WHERE RTYPE EQ 'R'. " DEVK903724
IF I_DATA-NEWBS EQ '31'. " only outputs one entry
W_COUNT = W_COUNT + 1. " count of items
WRITE: / W_COUNT(1). " Writes items
WRITE: 1 I_DATA-KUNNR. " Customer_Number
i_data-name1 under text-501. " Customer_Name
*
CASE I_DATA-PAYIN.
WHEN 'B'. " BACS PAYMENT
WRITE: I_DATA-PAYIN UNDER TEXT-506,
I_DATA-BANKA UNDER TEXT-508, " BANK ACCOUNT
I_DATA-BANKI UNDER TEXT-510, " SORT CODE
I_DATA-BUKRS UNDER TEXT-512. " COMPANY CODE
IF NOT ( I_DATA-DOCN IS INITIAL ).
W_BACS = I_DATA-WRBTR + W_BACS. " Total BACS
W_BACS_2 = I_DATA-WRBTR + W_BACS_2. " Total BACS
ADD 1 TO W_COUNT_BACS. " Total BACS
ADD 1 TO W_COUNT_BACS_TOTAL. " Total BACS
ELSE.
W_NOTPST = I_DATA-WRBTR + W_NOTPST. " Total Errors
W_NOTPST_2 = I_DATA-WRBTR + W_NOTPST_2. " Total Errors
ADD 1 TO W_COUNT_NOTPST. " Total Errors
ADD 1 TO W_COUNT_NOTPST_TOTAL. " Total Errors
This collects non posted documents by item number
CONCATENATE W_COUNT W_ERROREC INTO W_ERROREC
SEPARATED BY C_COMMA.
ENDIF.
*
WHEN 'C'. " CHEQUE PAYMENT
WRITE: I_DATA-PAYIN UNDER TEXT-506.
IF NOT ( I_DATA-DOCN IS INITIAL ). " only if posted
W_CHEQUE = I_DATA-WRBTR + W_CHEQUE. " Totals cheques
W_CHQS_2 = I_DATA-WRBTR + W_CHQS_2. " Total cheques
ADD 1 TO W_COUNT_CHQS. " Total cheques
ADD 1 TO W_COUNT_CHQS_TOTAL. " Total cheques
ELSE.
This collects non posted documents by item number (as above)
CONCATENATE W_COUNT W_ERROREC INTO W_ERROREC
SEPARATED BY C_COMMA.
W_NOTPST = I_DATA-WRBTR + W_NOTPST. " Total errors
W_NOTPST_2 = I_DATA-WRBTR + W_NOTPST_2. " Total Errors
ADD 1 TO W_COUNT_NOTPST. " Total Errors
ADD 1 TO W_COUNT_NOTPST_TOTAL. " Total Errors
ENDIF.
*
WHEN 'M'. "MANUAL CHEQUE
WRITE: I_DATA-PAYIN UNDER TEXT-506.
IF NOT ( I_DATA-DOCN IS INITIAL ). " only if posted
W_MANUAL = I_DATA-WRBTR + W_MANUAL. " Total Manual cheques
W_MANS_2 = I_DATA-WRBTR + W_MANS_2. " Total manuals
ADD 1 TO W_COUNT_MANS. " Total manuals
ADD 1 TO W_COUNT_MANS_TOTAL. " Total manuals
ELSE.
This collects non posted documents by item number (as above)
CONCATENATE W_COUNT W_ERROREC INTO W_ERROREC
SEPARATED BY C_COMMA.
W_NOTPST = I_DATA-WRBTR + W_NOTPST. " Total errors
W_NOTPST_2 = I_DATA-WRBTR + W_NOTPST_2. " Total Errors
ADD 1 TO W_COUNT_NOTPST. " Total Errors
ADD 1 TO W_COUNT_NOTPST_TOTAL. " Total Errors
ENDIF.
*
WHEN OTHERS. " invalid payment INDIC.
W_NOTPST = I_DATA-WRBTR + W_NOTPST.
W_NOTPST_2 = I_DATA-WRBTR + W_NOTPST_2. " Total Errors
ADD 1 TO W_COUNT_NOTPST. " Total Errors
ADD 1 TO W_COUNT_NOTPST_TOTAL. " Total Errors
WRITE: I_DATA-PAYIN, TEXT-204 UNDER TEXT-009.
ENDCASE.
*
WRITE: 31 I_DATA-WRBTR. " Value DEVK902795
if i_data-err = 'E'." DEVK902394 DEVK902795
write: 1 c_error. " PRINTS'*error*' INTO DOC FIELDDEVK902795
write: c_error. " PRINTS '*error*' AT BEGIN. OF THE LINE
endif." DEVK902394 DEVK902795
WRITE:I_DATA-DOCN UNDER TEXT-517. " Document F-43
WRITE:I_DATA-DOCN2 UNDER TEXT-518. " Document F-53
WRITE: I_DATA-BUKRS UNDER TEXT-512. " COMPANY CODE
write:i_data-docn3 under text-519. " Document FCH5DEVK902795
write:i_data-message under text-521. " Error messageDEVK902795
*
IF NOT ( I_DATA-MESSAGE IS INITIAL ). " DEVK902795
WRITE: I_DATA-MESSAGE UNDER TEXT-521. " DEVK902795
ENDIF. " DEVK902795
ENDIF.
ENDLOOP.
FORMAT INTENSIFIED OFF.
SKIP.
WRITE: / TEXT-400. " End of list.
SKIP.
FORMAT INTENSIFIED ON.
These are the totals posted for cheques bacs and not posted
WRITE: /1 TEXT-110, " Cheques paid
20 W_CHQS_2 CURRENCY 'GBP', " amount DEVK917514
40 TEXT-116, " Number of cheques
65 W_COUNT_CHQS, " number
/1 TEXT-111, " BACS paid
20 W_BACS_2 CURRENCY 'GBP', " amount DEVK917514
40 TEXT-117, " Number of bacs
65 W_COUNT_BACS, " number
/1 TEXT-113, " MANUAL cheques paid
20 W_MANS_2 CURRENCY 'GBP', " amount DEVK917514
40 TEXT-118, " Number of manual cheques
65 W_COUNT_MANS, " number
/1 TEXT-112, " Amount Not Paid
20 W_NOTPST_2 CURRENCY 'GBP'," amount DEVK917514
40 TEXT-119, " Number of not paids
65 W_COUNT_NOTPST. " number
SKIP.
FORMAT INTENSIFIED OFF.
CLEAR: W_BACS_2,
W_CHQS_2,
W_MANS_2,
W_NOTPST_2,
W_COUNT_BACS,
W_COUNT_CHQS,
W_COUNT_MANS,
W_COUNT_NOTPST.
Process Compensations DEVK903724
CLEAR I_DATA. " DEVK903724
MOVE 'C' TO W_REFUND_COMP_FLAG. " DEVK903724
CLEAR SY-PAGNO.
NEW-PAGE. " DEVK903724
FORMAT INTENSIFIED ON.
LOOP AT I_DATA WHERE RTYPE EQ 'C'. " DEVK903724
IF I_DATA-NEWBS EQ '31'. " only outputs one entry
W_COUNT = W_COUNT + 1. " count of items
WRITE: / W_COUNT(1). " Writes items
WRITE: 1 I_DATA-KUNNR. " Customer_Number
CASE I_DATA-PAYIN.
WHEN 'B'. " BACS PAYMENT
WRITE: I_DATA-PAYIN UNDER TEXT-506,
I_DATA-BANKA UNDER TEXT-508, " BANK ACCOUNT
I_DATA-BANKI UNDER TEXT-510. " SORT CODE
i_data-bukrs under text-512. " COMPANY CODE
IF NOT ( I_DATA-DOCN IS INITIAL ).
W_BACS = I_DATA-WRBTR + W_BACS. " Total BACS
W_BACS_2 = I_DATA-WRBTR + W_BACS_2. " Total BACS
ADD 1 TO W_COUNT_BACS. " Total BACS
ADD 1 TO W_COUNT_BACS_TOTAL. " Total BACS
ELSE.
W_NOTPST = I_DATA-WRBTR + W_NOTPST. " Total Errors
W_NOTPST_2 = I_DATA-WRBTR + W_NOTPST_2. " Total Errors
ADD 1 TO W_COUNT_NOTPST. " Total Errors
ADD 1 TO W_COUNT_NOTPST_TOTAL. " Total Errors
This collects non posted documents by item number
CONCATENATE W_COUNT W_ERROREC INTO W_ERROREC
SEPARATED BY C_COMMA.
ENDIF.
*
WHEN 'C'. " CHEQUE PAYMENT
WRITE: I_DATA-PAYIN UNDER TEXT-506.
IF NOT ( I_DATA-DOCN IS INITIAL ). " only if posted
W_CHEQUE = I_DATA-WRBTR + W_CHEQUE. " Totals cheques
W_CHQS_2 = I_DATA-WRBTR + W_CHQS_2. " Total cheques
ADD 1 TO W_COUNT_CHQS. " Total cheques
ADD 1 TO W_COUNT_CHQS_TOTAL. " Total cheques
ELSE.
This collects non posted documents by item number (as above)
CONCATENATE W_COUNT W_ERROREC INTO W_ERROREC
SEPARATED BY C_COMMA.
W_NOTPST = I_DATA-WRBTR + W_NOTPST. " Total errors
W_NOTPST_2 = I_DATA-WRBTR + W_NOTPST_2. " Total Errors
ADD 1 TO W_COUNT_NOTPST. " Total Errors
ADD 1 TO W_COUNT_NOTPST_TOTAL. " Total Errors
ENDIF.
*
WHEN 'M'. "MANUAL CHEQUE
WRITE: I_DATA-PAYIN UNDER TEXT-506.
IF NOT ( I_DATA-DOCN IS INITIAL ). " only if posted
W_MANUAL = I_DATA-WRBTR + W_MANUAL. " Total Manual cheques
W_MANS_2 = I_DATA-WRBTR + W_MANS_2. " Total manuals
ADD 1 TO W_COUNT_MANS. " Total manuals
ADD 1 TO W_COUNT_MANS_TOTAL. " Total manuals
ELSE.
This collects non posted documents by item number (as above)
CONCATENATE W_COUNT W_ERROREC INTO W_ERROREC
SEPARATED BY C_COMMA.
W_NOTPST = I_DATA-WRBTR + W_NOTPST. " Total errors
W_NOTPST_2 = I_DATA-WRBTR + W_NOTPST_2. " Total Errors
ADD 1 TO W_COUNT_NOTPST. " Total Errors
ADD 1 TO W_COUNT_NOTPST_TOTAL. " Total Errors
ENDIF.
*
WHEN OTHERS. " invalid payment INDIC.
W_NOTPST = I_DATA-WRBTR + W_NOTPST.
W_NOTPST_2 = I_DATA-WRBTR + W_NOTPST_2. " Total Errors
ADD 1 TO W_COUNT_NOTPST. " Total Errors
ADD 1 TO W_COUNT_NOTPST_TOTAL. " Total Errors
WRITE: I_DATA-PAYIN, TEXT-204 UNDER TEXT-009.
ENDCASE.
*
WRITE: 31 I_DATA-WRBTR. " Value DEVK902795
if i_data-err = 'E'. " DEVK902394 DEVK902795
write: 1 c_error. " PRINTS '*error*' INTO DOC FIELDDEVK902795
write: c_error. " PRINTS '*error*' AT BEGIN. OF THE LINE
endif. " DEVK902394 DEVK902795
WRITE: I_DATA-DOCN UNDER TEXT-517. " Document F-43
WRITE: I_DATA-DOCN2 UNDER TEXT-518. " Document F-53
WRITE: I_DATA-BUKRS UNDER TEXT-512. " COMPANY CODE
write:i_data-docn3 under text-519. " Document FCH5DEVK902795
write:i_data-message under text-521. " Error messageDEVK902795
*
IF NOT ( I_DATA-MESSAGE IS INITIAL ). " DEVK902795
WRITE: I_DATA-MESSAGE UNDER TEXT-521. " DEVK902795
ENDIF. " DEVK902795
ENDIF.
ENDLOOP.
FORMAT INTENSIFIED OFF.
SKIP.
WRITE: / TEXT-400. " End of list.
SKIP.
FORMAT INTENSIFIED ON.
WRITE: /1 TEXT-110, " Cheques paid
20 W_CHQS_2 CURRENCY 'GBP', " amount DEVK917514
40 TEXT-116, " Number of cheques
65 W_COUNT_CHQS, " number
/1 TEXT-111, " BACS paid
20 W_BACS_2 CURRENCY 'GBP', " amount DEVK917514
40 TEXT-117, " Number of bacs
65 W_COUNT_BACS, " number
/1 TEXT-113, " MANUAL cheques paid
20 W_MANS_2 CURRENCY 'GBP', " amount DEVK917514
40 TEXT-118, " Number of manual cheques
65 W_COUNT_MANS, " number
/1 TEXT-112, " Amount Not Paid
20 W_NOTPST_2 CURRENCY 'GBP'," amount DEVK917514
40 TEXT-119, " Number of not paids
65 W_COUNT_NOTPST. " number
These are the totals posted for cheques bacs and not posted
Summary Report
MOVE 'X' TO W_REFUND_COMP_FLAG.
CLEAR SY-PAGNO.
NEW-PAGE.
FORMAT INTENSIFIED ON.
These are the totals posted for cheques bacs and not posted
WRITE: /1 TEXT-110, " Cheques paid
20 W_CHEQUE CURRENCY 'GBP', " amount DEVK917514
40 TEXT-116, " Number of cheques
65 W_COUNT_CHQS_TOTAL, " number
/1 TEXT-111, " BACS paid
20 W_BACS CURRENCY 'GBP', " amount DEVK917514
40 TEXT-117, " Number of bacs
65 W_COUNT_BACS_TOTAL, " number
/1 TEXT-113, " MANUAL cheques paid
20 W_MANUAL CURRENCY 'GBP', " amount DEVK917514
40 TEXT-118, " Number of manual cheques
65 W_COUNT_MANS_TOTAL, " number
/1 TEXT-112, " Amount Not Paid
20 W_NOTPST CURRENCY 'GBP', " amount DEVK917514
40 TEXT-119, " Number of not paids
65 W_COUNT_NOTPST_TOTAL. " number
SKIP.
FORMAT INTENSIFIED OFF.
IF NOT W_ERROREC IS INITIAL.
FORMAT COLOR 6.
FORMAT INVERSE. " writes out highlighted
WRITE : / TEXT-015 , W_ERROREC. " The records with errors are
FORMAT COLOR 6 OFF.
FORMAT INVERSE OFF.
ENDIF.
ENDFORM. " REPORT
*
************************************************************************
END OF REPORT *********************************
************************************************************************
&----
*& Form OPEN_DATASET *
&----
Opens the dataset at start of processing. *
----
FORM OPEN_DATASET. " DEVK902394
CALL FUNCTION 'Z_OPEN_DATASET'
EXPORTING
LOGICAL_FILE = W_FILE
FOR_PARAM = 'INPUT'
IN_PARAM = 'TEXT'
AT_PARAM =
TYPE_PARAM =
FILTER_PARAM =
IMPORTING
SYSTEM_MESSAGE = P_MESS
DATA_SET_NAME = P_FILE
EXCEPTIONS
FAILED_TO_OPEN_FILE = 1
FLAG_FILE_EXISTS = 2
FAIL_IN_CREATE_FLAG = 3
FILE_ALREADY_EXISTS = 4
FAILED_TO_GET_FLAG_FILE = 5
FAILED_IN_GET_FILE = 6
OTHERS = 7.
*
IF SY-SUBRC NE 0. " Unable to open dataset
MESSAGE E022 WITH P_FILE.
ENDIF.
ENDFORM. " OPEN_DATASET
&----
*& Form CLOSE_DATASET *
&----
Closes the dataset at end of processing. *
----
FORM CLOSE_DATASET.
*
CLOSE DATASET W_FILE. " Closes data set.
CALL FUNCTION 'Z_CLOSE_DATASET'
EXPORTING
LOGICAL_FILENAME = W_FILE
SECURE = 'YES'
DELETE = 'YES' "
delete = 'no' " 4 testing
EXCEPTIONS
FAILED_TO_CLOSE_FILE = 1
FAILED_IN_GET_FILE = 2
FAILED_TO_GET_FLAG_FILE = 3
FAILED_TO_SECURE_FILE = 4
FAILED_TO_DELETE_FILE = 5
OTHERS = 6.
*
ENDFORM. " CLOSE_DATASET
&----
*& Form CHECK_FOR_ERRORS
&----
This form checks for errors returned from the transaction *
----
FORM CHECK_FOR_ERRORS. " DEVK902795
" DEVK902795
CLEAR I_ERRORID. " DEVK902795
LOOP AT I_ERRORID WHERE MSGTYP NE 'I' AND MSGTYP NE 'W'. " DEVK917514
SELECT SINGLE * FROM T100 " DEVK902795
WHERE SPRSL EQ SY-LANGU " DEVK902795
AND ARBGB EQ I_ERRORID-MSGID " DEVK902795
AND MSGNR EQ I_ERRORID-MSGNR. " DEVK902795
IF SY-SUBRC NE 0. " DEVK902795
CLEAR I_DATA-MESSAGE. " DEVK902795
MODIFY I_DATA. " DEVK902795
ELSE. " DEVK902795
MOVE T100-TEXT TO W_MSG. " DEVK902795
REPLACE '&' WITH SY-MSGV1 INTO W_MSG. " DEVK902795
IF SY-MSGV2 NE SPACE. " DEVK902795
REPLACE '&' WITH SY-MSGV2 INTO W_MSG. " DEVK902795
IF SY-MSGV3 NE SPACE. " DEVK902795
REPLACE '&' WITH SY-MSGV3 INTO W_MSG. " DEVK902795
IF SY-MSGV4 NE SPACE. " DEVK902795
REPLACE '&' WITH SY-MSGV4 INTO W_MSG. " DEVK902795
ENDIF. " DEVK902795
ENDIF. " DEVK902795
ENDIF. " DEVK902795
CONDENSE W_MSG. " DEVK902795
MOVE W_MSG TO I_DATA-MESSAGE. " DEVK902795
MODIFY I_DATA. " DEVK902795
ENDIF. " DEVK902795
ENDLOOP. " DEVK902795
IF SY-SUBRC NE 0. " DEVK902795
CLEAR I_DATA-MESSAGE. " DEVK902795
MODIFY I_DATA. " DEVK902795
ENDIF. " DEVK902795
" DEVK902795
ENDFORM. " CHECK_FOR_ERRORS DEVK902795
&----
*& Form CHECK_BANK_DETAILS
&----
This form checks the bank details exist *
----
FORM CHECK_BANK_DETAILS. " DEVK903373
Process only BACS type records and check bank details exist DEVK903373
" DEVK903373
CLEAR I_DATA. " DEVK903373
LOOP AT I_DATA WHERE PAYIN EQ 'B'. " DEVK903373
SELECT SINGLE * FROM BNKA " DEVK903373
WHERE BANKS EQ C_GB " DEVK903373
AND BANKL EQ I_DATA-BANKI. " DEVK903373
" DEVK903373
IF SY-SUBRC NE 0. " DEVK903373
MOVE TEXT-107 TO I_DATA-MESSAGE. " DEVK917514
MODIFY I_DATA. " DEVK903373
ENDIF. " DEVK903373
" DEVK903373
ENDLOOP. " DEVK903373
" DEVK903373
ENDFORM. " CHECK_BANK_DETAILS
‎2008 Sep 30 10:14 AM
Hi
I think ur Error message declaration is not profer..i vil send one program u follow likt that...
Ex
DATA: BEGIN OF ls_infrec OCCURS 0,
recnnr(12) TYPE c,
bukrs(4) TYPE c,
END OF ls_infrec.
DATA: lt_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: lt_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_flie TYPE localfile.
PARAMETERS: p_mode TYPE ctu_mode OBLIGATORY DEFAULT 'A' MODIF ID ch3.
SELECTION-SCREEN : END OF BLOCK b1.
DATA : BEGIN OF lt_messtab1 OCCURS 0,
srnno(3) TYPE c.
INCLUDE STRUCTURE lt_messtab.
DATA : END OF lt_messtab1.
DATA : lt_infrec LIKE ls_infrec OCCURS 0 .
DATA : lv_srnno TYPE i,
lv_message(300) TYPE c
.
DATA: idx(2) TYPE c VALUE '01',
var TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_flie.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
field_name = p_flie
CHANGING
file_name = p_flie
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
START-OF-SELECTION.
PERFORM upload_file.
PERFORM process_bdc_data.
PERFORM format_bdc_message.
&----
*& Form upload_file
&----
FORM upload_file .
DATA : lv_file TYPE string.
lv_file = p_flie.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_file
filetype = 'DAT'
TABLES
data_tab = lt_infrec
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " upload_file
&----
*& Form process_bdc_data
&----
FORM process_bdc_data .
LOOP AT lt_infrec INTO ls_infrec .
REFRESH lt_bdcdata.
*perform open_group.
perform bdc_dynpro using 'SAPLRECA_BDT_APPL_INITIAL' '1000'.
perform bdc_field using 'BDC_OKCODE'
'=RECA_CHANGE'.
perform bdc_field using 'BDC_CURSOR'
'RECN_CONTRACT_X-BUKRS'.
perform bdc_field using 'RECN_CONTRACT_X-BUKRS'
ls_infrec-bukrs.
perform bdc_field using 'RECN_CONTRACT_X-RECNNR'
ls_infrec-recnnr.
perform bdc_dynpro using 'SAPLRECA_BDT_APPL_TOOL' '0100'.
perform bdc_field using 'BDC_OKCODE'
'=RECA_COSETTLERULE'.
perform bdc_field using 'BDC_CURSOR'
'REGCFLDS_FE-OBJIDENT'.
perform bdc_field using 'REGCFLDS_FE-OBJIDENT'
'BU IN01/10000000/10000002'.
*perform bdc_field using 'REGCFLDS_FE-PARTNER'
'2000000032'.
*perform bdc_field using 'REGCFLDS_FE-RECNBEG'
'2007/01/01'.
*perform bdc_field using 'REGCFLDS_FE-RECNEND1ST'
'2010/12/31'.
*perform bdc_field using 'REGCFLDS-RECNTXT'
'Test CLI contract with WHT'.
perform bdc_dynpro using 'SAPLKOBS' '0130'.
perform bdc_field using 'BDC_CURSOR'
'COBRB-KONTY(01)'.
perform bdc_field using 'BDC_OKCODE'
'=PARA'.
perform bdc_dynpro using 'SAPLKOBS' '0110'.
perform bdc_field using 'BDC_CURSOR'
'COBRA-ABSCH'.
perform bdc_field using 'BDC_OKCODE'
'=BACK'.
*perform bdc_field using 'COBRA-APROF'
'SAS1RE'.
perform bdc_field using 'COBRA-ABSCH'
'A4'.
perform bdc_dynpro using 'SAPLKOBS' '0130'.
perform bdc_field using 'BDC_CURSOR'
'COBRB-KONTY(01)'.
perform bdc_field using 'BDC_OKCODE'
'=BACK'.
perform bdc_dynpro using 'SAPLRECA_BDT_APPL_TOOL' '0100'.
perform bdc_field using 'BDC_OKCODE'
'=RECA_BDT_STORE'.
perform bdc_field using 'BDC_CURSOR'
'REGCFLDS_FE-OBJIDENT'.
perform bdc_field using 'REGCFLDS_FE-OBJIDENT'
'BU IN01/10000000/10000002'.
*perform bdc_field using 'REGCFLDS_FE-PARTNER'
'2000000032'.
*perform bdc_field using 'REGCFLDS_FE-RECNBEG'
'2007/01/01'.
*perform bdc_field using 'REGCFLDS_FE-RECNEND1ST'
'2010/12/31'.
*perform bdc_field using 'REGCFLDS-RECNTXT'
'Test CLI contract with WHT'.
CALL TRANSACTION 'RECN' USING lt_bdcdata MODE p_mode MESSAGES INTO lt_messtab.
*perform close_group.
endloop.
LOOP AT lt_messtab.
lv_srnno = lv_srnno + 1.
MOVE-CORRESPONDING lt_messtab TO lt_messtab1.
lt_messtab1-srnno = lv_srnno.
APPEND lt_messtab1.
ENDLOOP.
ENDFORM. "process_bdc_data
----
Start new screen *
----
FORM bdc_dynpro USING program dynpro.
CLEAR lt_bdcdata.
lt_bdcdata-program = program.
lt_bdcdata-dynpro = dynpro.
lt_bdcdata-dynbegin = 'X'.
APPEND lt_bdcdata.
ENDFORM. "bdc_dynpro
----
Insert field *
----
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR lt_bdcdata.
lt_bdcdata-fnam = fnam.
lt_bdcdata-fval = fval.
APPEND lt_bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD
&----
*& Form format_bdc_message
&----
text
----
FORM format_bdc_message .
LOOP AT lt_messtab1 WHERE msgtyp = 'S' .
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = lt_messtab1-msgid
lang = sy-langu
no = lt_messtab1-msgnr
v1 = lt_messtab1-msgv1
v2 = lt_messtab1-msgv2
v3 = lt_messtab1-msgv3
v4 = lt_messtab1-msgv4
IMPORTING
msg = lv_message
EXCEPTIONS
not_found = 1
OTHERS = 2.
WRITE:/2 lt_messtab1-srnno,6 lv_message .
ENDLOOP.
*
ENDFORM.
‎2008 Sep 30 11:09 AM
‎2008 Sep 30 11:11 AM
Hi
Any other view mean...Atleast u can get any idea from that from..
Regards;
Prabu