Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Error during upload in BDC

Former Member
0 Likes
2,386

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 .

7 REPLIES 7
Read only

Former Member
0 Likes
1,523

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.

Read only

Former Member
0 Likes
1,523

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

Read only

0 Likes
1,523

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

Read only

Former Member
0 Likes
1,523

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.

----


Internal Table -

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 CONSATNTS -

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

----


Working Feilds -

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

Read only

0 Likes
1,523

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.

Read only

Former Member
0 Likes
1,523

Any other views?

Read only

0 Likes
1,523

Hi

Any other view mean...Atleast u can get any idea from that from..

Regards;

Prabu