2007 Aug 07 2:04 PM
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.
2007 Aug 07 2:48 PM
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 : 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
2007 Aug 07 2:52 PM
2007 Aug 07 2:55 PM
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
2007 Aug 07 2:57 PM
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |