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

abt bdc?

Former Member
0 Likes
683

i am the new,how to open change sales order(va02)(i mean transfer va02 in bdc) in bdc ,plz provide one example.and provide pdfs.

i am the new,how to open change sales order(va02)(i mean transfer va02 in bdc) in bdc ,plz provide one example.and provide pdfs.

4 REPLIES 4
Read only

Former Member
0 Likes
662

hi,

Check out this.

&----


*& Report Z243_KA_BD_01

*&

&----


*&

*&

&----


REPORT Z243_KA_BD_01.

TABLES : ZSALES_ORDER.

&----


DATA:OK_CODE LIKE SY-UCOMM.

DATA : BATCH(6),CALL(6) .

DATA :I TYPE I,A TYPE I.

DATA: IT_TAB LIKE TABLE OF ZSALES_ORDER WITH HEADER LINE,

WA_TAB LIKE LINE OF IT_TAB.

DATA: IT_BDCTAB LIKE TABLE OF BDCDATA WITH HEADER LINE .

DATA: IT_MESS LIKE TABLE OF BDCMSGCOLL WITH HEADER LINE,

WA_MESS LIKE LINE OF IT_MESS.

DATA: R(10) TYPE C.

&--


SELECTION-SCREEN--

SELECTION-SCREEN : BEGIN OF SCREEN 9004.

SELECT-OPTIONS MAT_NO FOR ZSALES_ORDER-MATERIAL_NO.SKIP.

SELECT-OPTIONS CUST_NO FOR ZSALES_ORDER-CUSTOMER_NO .SKIP.

PARAMETERS: UPLOADED.

SELECTION-SCREEN : END OF SCREEN 9004.

CALL SCREEN 9002.

&----


*& Module USER_COMMAND_9002 INPUT

&----


  • text

----


MODULE USER_COMMAND_9002 INPUT.

CASE OK_CODE.

WHEN 'UPLOAD'.

CALL SCREEN 9003.

WHEN 'REPORT'.

LEAVE TO LIST-PROCESSING.

WRITE :'NO OF RECORDS READ'.

DESCRIBE TABLE IT_TAB LINES A.

WRITE A.

SELECT COUNT(*) FROM ZSALES_ORDER INTO I.

SKIP.

ULINE.

WRITE: / 'NO OF RECORDS UPLOADED'. WRITE I.

ULINE.

SELECT * FROM ZSALES_ORDER INTO ZSALES_ORDER.

WRITE: / 'MATERIAL NO ', 'CUSTOMER NO','CUSTOMER MATE NO','SLAES ORGANISATION','PROCESSING ORG',' TRAN AMT'.

WRITE: / ZSALES_ORDER-MATERIAL_NO UNDER 'MATERIAL NO '.write:12 sy-vline, ZSALES_ORDER-CUSTOMER_NO UNDER 'CUSTOMER NO'.write:20 sy-vline,

ZSALES_ORDER-CUST_MAT_NO UNDER 'CUSTOMER MATE NO'.write:30 sy-vline, ZSALES_ORDER-SALE_ORG UNDER 'SLAES ORGANISATION'.write:40 sy-vline,

ZSALES_ORDER-PROCESS_DATE UNDER 'PROCESSING ORG'.write:50 sy-vline, ZSALES_ORDER-TRAN_AMT UNDER 'TRAN AMT'.write:60 sy-vline.

ENDSELECT.

SKIP.

ULINE.

WRITE: ' NO OF ERRORS RECORDS'.

DESCRIBE TABLE IT_TAB LINES A.

WRITE: A.

SET PF-STATUS SPACE.

WHEN 'EXIT'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " USER_COMMAND_9002 INPUT

&----


*& Module USER_COMMAND_9003 INPUT

&----


  • text

----


MODULE USER_COMMAND_9003 INPUT.

CLEAR OK_CODE.

IF CALL = 'X'.

CALL SELECTION-SCREEN 9004.

REFRESH IT_TAB.

SELECT * FROM ZSALES_ORDER.

CHECK MAT_NO.

IT_TAB-MATERIAL_NO = ZSALES_ORDER-MATERIAL_NO.

APPEND IT_TAB.

ENDSELECT.

PERFORM GUI_UPLOAD.

PERFORM TRAN USING 'Z243BDC'.

ELSEIF BATCH = 'X'.

CALL SELECTION-SCREEN 9004.

PERFORM GUI_UPLOAD.

PERFORM BATCH_TRANSACTION.

ENDIF.

ENDMODULE. " USER_COMMAND_9003 INPUT

&----


*& Form GUI_UPLOAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GUI_UPLOAD .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\siva\bdcflatfile.TXT'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = IT_TAB

.

IF SY-SUBRC <> 0.

ENDIF.

LOOP AT IT_TAB INTO WA_TAB.

PERFORM PNAME USING 'Z243_KA_BDC_01' '9001'.

PERFORM FNAME USING 'ZSALES_ORDER-MATERIAL_NO' WA_TAB-MATERIAL_NO.

PERFORM FNAME USING 'ZSALES_ORDER-CUSTOMER_NO' WA_TAB-CUSTOMER_NO.

PERFORM FNAME USING 'ZSALES_ORDER-CUST_MAT_NO' WA_TAB-CUST_MAT_NO.

PERFORM FNAME USING 'ZSALES_ORDER-SALE_ORG' WA_TAB-SALE_ORG.

PERFORM FNAME USING 'ZSALES_ORDER-PROCESS_DATE' WA_TAB-PROCESS_DATE.

PERFORM FNAME USING 'ZSALES_ORDER-TRAN_AMT' WA_TAB-TRAN_AMT.

PERFORM FNAME USING 'BDC_OKCODE' '=SAVE'.

ENDLOOP.

PERFORM PNAME USING 'Z243_KA_BDC_01' '9001'.

PERFORM FNAME USING 'BDC_OKCODE' '=EXIT'.

DESCRIBE TABLE IT_TAB LINES A.

ENDFORM. " GUI_UPLOAD

&----


*& Form PNAME

&----


  • text

----


  • -->P_0105 text

  • -->P_0106 text

----


FORM PNAME USING PRGNAME

SCRNAME.

CLEAR IT_BDCTAB.

IT_BDCTAB-PROGRAM = PRGNAME.

IT_BDCTAB-DYNPRO = SCRNAME.

IT_BDCTAB-DYNBEGIN = 'X'.

APPEND IT_BDCTAB.

ENDFORM. " PNAME

&----


*& Form FNAME

&----


  • text

----


  • -->P_0110 text

  • -->P_WA_TAB_MATERIAL_NO text

----


FORM FNAME USING FIELDNAME

FIELDVAL.

CLEAR : IT_BDCTAB.

IT_BDCTAB-FNAM = FIELDNAME.

IT_BDCTAB-FVAL = FIELDVAL.

APPEND IT_BDCTAB.

ENDFORM. " FNAME

&----


*& Form TRAN

&----


  • text

----


  • -->P_0054 text

----


FORM TRAN USING STRAN.

CALL TRANSACTION STRAN USING IT_BDCTAB

MODE 'N'

UPDATE 'S'

MESSAGES INTO IT_MESS.

ENDFORM. " TRAN

&----


*& Form BATCH_TRANSACTION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BATCH_TRANSACTION .

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'SIVA'

USER = sy-uname.

IF SY-SUBRC <> 0.

ENDIF.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'Z243BDC'

TABLES

DYNPROTAB = IT_BDCTAB

.

IF SY-SUBRC <> 0.

ENDIF.

CALL FUNCTION 'BDC_CLOSE_GROUP'

.

IF SY-SUBRC <> 0.

ENDIF.

CALL TRANSACTION 'SM35'.

ENDFORM. " BATCH_TRANSACTION

&----


*& Module STATUS_9003 OUTPUT

&----


  • text

----


MODULE STATUS_9003 OUTPUT.

SET PF-STATUS 'SCREEN'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_9003 OUTPUT

<b>Reward valuable points</b>

With regards

Siva

Read only

0 Likes
662

if possible give another example

Read only

Former Member
0 Likes
662

hI HARI

TABLES: VBAK, “Sales document, header data

VBAP. “Sales document, item data

DATA: BEGIN OF G_VBELN OCCURS 0,

VBELN LIKE VBAK-VBELN, END OF G_VBELN.

DATA: BEGIN OF BDC_TAB OCCURS 0.

INCLUDE STRUCTURE BDCDATA.

DATA: END OF BDC_TAB.

DATA: G_FEJL TYPE I. “Flag that is set fi there are found at least 1 sales document

SELECT-OPTIONS:

S_VBELN FOR VBAK-VBELN, “Sales document S_AUDAT FOR VBAK-AUDAT, “Document date S_AUART FOR VBAK-AUART DEFAULT ‘ZDR’. “Sales document type

START-OF-SELECTION.

PERFORM GET_DATA. CHECK G_FEJL = 1. PERFORM WRITE_LIST.

TOP-OF-PAGE.

WRITE ‘Selected salesdocuments for collective invoicing’ COLOR COL_HEADING. ULINE.

AT USER-COMMAND.

CASE SY-UCOMM. WHEN ‘EKSEKVER’. PERFORM REMOVE_BILLINGBLOCK. PERFORM BILL_DOCUMENTS. CALL FUNCTION ‘POPUP_TO_DISPLAY_TEXT’ EXPORTING TITEL = ‘Collective invoicing’ TEXTLINE1 = ‘Batch input mapper er dannet’ TEXTLINE2 = ‘Mapperne hedder ZSM02’ START_COLUMN = 25 START_ROW = 6 EXCEPTIONS OTHERS = 1. LEAVE TO SCREEN 0. WHEN ‘BACK’. LEAVE TO SCREEN 0. WHEN ‘CANCEL’. LEAVE PROGRAM. ENDCASE.

*******************************************************************

F O R M G E T _ D A T A

*******************************************************************

FORM GET_DATA.

SELECT VBELN INTO CORRESPONDING FIELDS OF TABLE G_VBELN FROM VBAK WHERE AUART IN S_AUART AND VBELN IN S_VBELN AND AUDAT IN S_AUDAT. IF SY-SUBRC > 0. CALL FUNCTION ‘POPUP_TO_DISPLAY_TEXT’ EXPORTING

TITEL = ’ ’

TEXTLINE1 = ‘No sales documents found’

TEXTLINE2 = ’ ’

START_COLUMN = 25

START_ROW = 6

EXCEPTIONS OTHERS = 1. G_FEJL = 0. ELSE. G_FEJL = 1. ENDIF.

ENDFORM.

*******************************************************************

F O R M W R I T E _ L I S T

*******************************************************************

FORM WRITE_LIST.

SET PF-STATUS ‘001’. LOOP AT G_VBELN. WRITE : / G_VBELN-VBELN. ENDLOOP.

ENDFORM.

*******************************************************************

F O R M R E M O V E _ B I L L I N G B L O C K

Removes billingblock from debitor memo request ( Transaction VA02 )

*******************************************************************

FORM REMOVE_BILLINGBLOCK.

PERFORM OPEN_GROUP. REFRESH BDC_TAB. CLEAR BDC_TAB. LOOP AT G_VBELN.

Selection screen

PERFORM BDC_NEWDYNPRO USING ‘SAPMV45A’ ‘0102’. PERFORM BDC_FIELD USING ‘VBAK-VBELN’ G_VBELN-VBELN. PERFORM BDC_FIELD USING ‘BDC_OKCODE’ ‘UER1’.

Screen 40001

PERFORM BDC_NEWDYNPRO USING ‘SAPMV45A’ ‘4001’. PERFORM BDC_FIELD USING ‘BDC_OKCODE’ ‘SFSP’.

Screen 0253 fast change of billingblock

PERFORM BDC_NEWDYNPRO USING ‘SAPMV45A’ ‘0253’. PERFORM BDC_FIELD USING ‘RV45A-S_FAKSK’ ’ ‘. PERFORM BDC_FIELD USING ‘BDC_OKCODE’ ‘SUEB’.

Back to screen 4001

PERFORM BDC_NEWDYNPRO USING ‘SAPMV45A’ ‘4001’. PERFORM BDC_FIELD USING ‘BDC_OKCODE’ ‘SICH’.

Insert

PERFORM BDC_INSERT USING ‘VA02’. CLEAR BDC_TAB. REFRESH BDC_TAB. ENDLOOP. PERFORM CLOSE_GROUP.

ENDFORM.

*******************************************************************

F O R M B I L L _ D O C U M E N T S

Create billing document ( Transaction VF01 )

*******************************************************************

FORM BILL_DOCUMENTS.

DATA: L_NLINE TYPE I, L_CLINE(3) TYPE N, L_FIELDNAME(20) TYPE C. PERFORM OPEN_GROUP. REFRESH BDC_TAB. CLEAR BDC_TAB. CLEAR L_NLINE. CLEAR L_CLINE. PERFORM BDC_NEWDYNPRO USING ‘SAPMV60A’ ‘0102’. PERFORM BDC_FIELD USING ‘BDC_OKCODE’ ‘ENT1’. LOOP AT G_VBELN. L_NLINE = L_NLINE + 1. IF L_NLINE > 16.

The screentable is filled, go to next page

PERFORM BDC_FIELD USING ‘BDC_OKCODE’ ‘=P+’. ENDIF.

Convert linenumber to text

MOVE L_NLINE TO L_CLINE. CONCATENATE ‘KOMFK-VBELN’ INTO L_FIELDNAME. PERFORM BDC_FIELD USING ‘BDC_CURSOR’ L_FIELDNAME. PERFORM BDC_FIELD USING L_FIELDNAME G_VBELN-VBELN. PERFORM BDC_FIELD USING ‘BDC_OKCODE’ ‘ENT2’. ENDLOOP.

Close screen 0102

PERFORM BDC_FIELD USING ‘BDC_OKCODE’ ‘/11’.

Insert

PERFORM BDC_INSERT USING ‘VF01’. CLEAR BDC_TAB. REFRESH BDC_TAB. PERFORM CLOSE_GROUP.

ENDFORM.

*******************************************************************

F O R M B D C _ D Y N P R O

Start a new screen

*******************************************************************

FORM BDC_NEWDYNPRO USING PROGRAM DYNPRO.

CLEAR BDC_TAB. BDC_TAB-PROGRAM = PROGRAM. BDC_TAB-DYNPRO = DYNPRO. BDC_TAB-DYNBEGIN = ‘X’. APPEND BDC_TAB.

ENDFORM.

*******************************************************************

F O R M B D C _ F I E L D

Inserts a field

*******************************************************************

FORM BDC_FIELD USING FNAM FVAL.

CLEAR BDC_TAB. BDC_TAB-FNAM = FNAM. BDC_TAB-FVAL = FVAL. APPEND BDC_TAB.

ENDFORM.

*******************************************************************

F O R M O P E N _ G R O U P

*******************************************************************

FORM OPEN_GROUP.

CALL FUNCTION ‘BDC_OPEN_GROUP’ EXPORTING CLIENT = SY-MANDT

DEST = FILLER8

GROUP = ‘ZSM02’

HOLDDATE = FILLER8

KEEP = ‘X’ USER = SY-UNAME

RECORD = FILLER1

IMPORTING

QID =

EXCEPTIONS CLIENT_INVALID = 1 DESTINATION_INVALID = 2 GROUP_INVALID = 3 GROUP_IS_LOCKED = 4 HOLDDATE_INVALID = 5 INTERNAL_ERROR = 6 QUEUE_ERROR = 7 RUNNING = 8 SYSTEM_LOCK_ERROR = 9 USER_INVALID = 10 OTHERS = 11.

ENDFORM.

*******************************************************************

F O R M C L O S E _ G R O U P

*******************************************************************

FORM CLOSE_GROUP.

CALL FUNCTION ‘BDC_CLOSE_GROUP’ EXCEPTIONS NOT_OPEN = 1 QUEUE_ERROR = 2 OTHERS = 3.

ENDFORM.

FORM BDC_INSERT USING TCODE.

CALL FUNCTION ‘BDC_INSERT’ EXPORTING TCODE = TCODE

POST_LOCAL = NOVBLOCAL

PRINTING = NOPRINT

TABLES DYNPROTAB = BDC_TAB EXCEPTIONS INTERNAL_ERROR = 1 NOT_OPEN = 2 QUEUE_ERROR = 3 TCODE_INVALID = 4 PRINTING_INVALID = 5 POSTING_INVALID = 6 OTHERS = 7.

ENDFORM.

reward points for helpful answers,

kiran.M

Read only

0 Likes
662

k, thanks