+ All Categories
Home > Documents > PART2-BDC CONCEPTS

PART2-BDC CONCEPTS

Date post: 13-Nov-2014
Category:
Upload: api-3746151
View: 132 times
Download: 9 times
Share this document with a friend
15
BDC (BATCH DATA COMMINICATIONS) FLAT FILE DATA FROM OPERATING SYSTEM EITHER FROM PL OR AS SHOULD BE TRANSFERED INTO R/3. HOW SAP READS DATA FROM FLAT FILE? 1) UPLOAD 2) WS_UPLOAD 3) GUI_UPLOAD ARE THE THREE FUNCTION MODULES CAN BE USED TO READ DATA FROM PL OPERATING SYSTEM PATH INTO INTERNAL TABLES. 1) DOWNLOAD 2) WS_DOWNLOAD 3) GUI_DOWNLOAD ARE THREE FUNCTION MODULES USED TO CONVERT THE DATA OF INTERNAL TABLES INTO FLAT FILES OF PRESENTATION LAYER. ____________________________________________________________ ____________ TO READ OR WRITE DATA FROM APPLICATION SERVER WE CAN USE "DATASET" CONCEPT. INPUT ( READ MODE ) OUTPUT ( WRITE MODE ) APPEND ( APPENDNG MODE) ASC DAT BIN ( IMAGE FILES / MS WORD FILES ) ETC EXAMPLE 1 TO EXTRACT DATA FROM FLAT FILE INTO ITAB USING "UPLOAD" FUNCTION. REPORT ZULOAD_930 . DATA : BEGIN OF ITAB OCCURS 0, STR(255) TYPE C, END OF ITAB. CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME = 'D:\930AM\11TH FEB.TXT' FILETYPE = 'ASC' TABLES
Transcript
Page 1: PART2-BDC CONCEPTS

BDC (BATCH DATA COMMINICATIONS)FLAT FILE DATA FROM OPERATING SYSTEM EITHER FROM PL OR AS

SHOULD BE TRANSFERED INTO R/3.HOW SAP READS DATA FROM FLAT FILE?

1) UPLOAD2) WS_UPLOAD3) GUI_UPLOAD ARE THE THREE FUNCTION MODULES CAN BE USED TO READ DATA FROM PL OPERATING SYSTEM PATH INTO INTERNAL TABLES.

1) DOWNLOAD2) WS_DOWNLOAD3) GUI_DOWNLOAD ARE THREE FUNCTION MODULES USED TO CONVERT THE DATA OF INTERNAL TABLES INTO FLAT FILES OF PRESENTATION LAYER.

________________________________________________________________________TO READ OR WRITE DATA FROM APPLICATION SERVER WE CAN USE

"DATASET" CONCEPT.INPUT ( READ MODE )

OUTPUT ( WRITE MODE ) APPEND ( APPENDNG MODE)

ASC DATBIN ( IMAGE FILES / MS WORD FILES ) ETC

EXAMPLE 1 TO EXTRACT DATA FROM FLAT FILE INTO ITAB USING "UPLOAD" FUNCTION.REPORT ZULOAD_930 .DATA : BEGIN OF ITAB OCCURS 0, STR(255) TYPE C, END OF ITAB.CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME = 'D:\930AM\11TH FEB.TXT' FILETYPE = 'ASC' TABLES DATA_TAB = ITAB .LOOP AT ITAB. WRITE : / ITAB-STR COLOR 7.ENDLOOP.

UPLOAD : OPENS A DIALOG BOX TO PROMPT THE CONFIRMATION, IS THE FM CAN BE USED IN EARLIER VERSIONS AND EVEN IN 4.7 ALSO.

Page 2: PART2-BDC CONCEPTS

WS_UPLOAD : WITH OUT ASKING ANY CONFIRMATION DATA FROM SPECIFIED FILE FROM THE PROGRAM WILL BE EXTRACTED INTO ITAB.

ABOVE TWO FUNCTION MODULES WE CAN USE IN VERSIONS OF SAP.

IN 4.7 VERSION WS_UPLOAD IS MODIFIED AS GUI_UPLOAD, TO EXTRACT DATA FROM FLAT FILE INTO ITAB WITHOUT ASKING ANY CONFIRMATIONS.

DEMO EXAMPLE TO EXTRACT ITAB DATA INTO OPERATING SYSTEMS FILES.

DATA : ITAB LIKE MARA OCCURS 0 WITH HEADER LINE.SELECT * FROM MARA INTO TABLE ITAB.CALL FUNCTION 'GUI_DOWNLOAD'EXPORTINGFILENAME = 'D:\930AM\MARADATA.TXT'FILETYPE = 'ASC'

TABLES DATA_TAB = ITAB.

IF SY-SUBRC = 0. WRITE : 'DATA IS DOWNLOADED'.ELSE. WRITE : / 'ERROR WHILE DOWNLOADING'.ENDIF.

WORKING WITH DATASETS (FILES CONCEPT IN ABAP)

OPEN DATASET dsn. 1a. ... FOR INPUT 1b. ... FOR OUTPUT 1c. ... FOR APPENDING

192.4.4.13 ( is a network where SAP application server is installed)

\\192.4.4.13\c$

is the path indicates the c Driver of "192.4.4.13" system.

EXAMPLE CODE.

DATA : FNAME(30) TYPE C VALUE 'C:\SAMPLE930.TXT'.

OPEN DATASET FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

Page 3: PART2-BDC CONCEPTS

TRANSFER 'SUBBARAO LINE' TO FNAME.TRANSFER 'DABBARAO LINE' TO FNAME.TRANSFER 'YENKARAO LINE' TO FNAME.CLOSE DATASET FNAME.

FOR 4.7 WE NEED TO SPECIFY ENCODING PROCEDIRES.OPEN DATASET FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

FOR 4.6C AND EARLIER VERSIONSOPEN DATASET FNAME FOR OUTPUT IN TEXT MODE.

TRANSFER : IS THE STATEMENT USED IN DATASET TO WRITE DATA TO THE FILESTREAM FROM THE PRESENTATION LAYER.

SYNTAX: TRANSFER <DATA> TO <DSN>.

WHERE <DSN> IS THE STREAM OPENED USING DATA SET. CLOSE DATASET <DSN>. CLOSES THE MEMORY WHICH IS OPENED BY THE PROGRAM.

24 TH FEB ***DEMO EXAMPLE PROGRAM TO READ DATA OF FLAT FILES EXISTING IN APPLICATION SERVER.***

DATA : FNAME(20) TYPE C VALUE 'C:\SAMPLE930.TXT'.OPEN DATASET FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.

DATA : STR(255) TYPE C.DO. READ DATASET FNAME INTO STR. WRITE : / STR COLOR 7. IF SY-SUBRC <> 0. EXIT. ENDIF.ENDDO.

DIRECT INPUT METHOD DRAWBACKS1)IT CAUSES NETWORK TRAFFIC MAINTENANCE.2)if the record is already existing in the data base the can't modify the data (error record can't be handled).Advantage:Direct Input Method is the best method in SAP implementation.code:DATA : BEGIN OF KTAB OCCURS 0, STR(255) TYPE C, END OF KTAB.

Page 4: PART2-BDC CONCEPTS

DATA : ITAB LIKE KNA1 OCCURS 0 WITH HEADER LINE.CALL FUNCTION 'UPLOAD' EXPORTING FILENAME = 'C:\930AM\CUSTDATA.TXT' FILETYPE = 'ASC' TABLES DATA_TAB = KTAB.LOOP AT KTAB. SPLIT KTAB-STR AT ',' INTO ITAB-KUNNR ITAB-NAME1 ITAB-LAND1 ITAB-ORT01. APPEND ITAB.ENDLOOP. LOOP AT ITAB. INSERT INTO KNA1 VALUES ITAB. IF SY-SUBRC = 0. WRITE:/ ITAB-KUNNR COLOR 5,'IS INSERTED'. ELSE. WRITE:/ ITAB-KUNNR COLOR 6,'IS ALREADY EXISTING'. ENDIF.ENDLOOP.

26 TH FEB

TCODE : ZCT930PROGRAM : SAPMZMPPSCRSCREEN : 123

****EXAMPLE CODE TO CALL A SCREEN USING "CALL TRANSACTION" STATEMENT TO POPULATE DATA IN THE SCREEN USING "BDCDATA" INTERL TABLE.****

DATA : JTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.JTAB-PROGRAM = 'SAPMZMPPSCR'.JTAB-DYNPRO = '123'.JTAB-DYNBEGIN = 'X'. "HEADERAPPEND JTAB.CLEAR JTAB.JTAB-FNAM = 'ITAB-MATNR'.JTAB-FVAL = 'TESTING 0102'.APPEND JTAB.JTAB-FNAM = 'ITAB-MTART'.JTAB-FVAL = 'FERT'.APPEND JTAB.JTAB-FNAM = 'ITAB-MBRSH'.JTAB-FVAL = 'M'.APPEND JTAB.JTAB-FNAM = 'ITAB-MEINS'.

Page 5: PART2-BDC CONCEPTS

JTAB-FVAL = 'KG'.APPEND JTAB.CALL TRANSACTION 'ZCT930' USING JTAB MODE 'A'.

**EXAMPLE CODE OF BDC CALL TRANSACTION TO SEND DATA FROM FLAT FILE INTO SCREEN FIELDS OF SPECIFIED TCODE.**

REPORT ZDEMO_BDC_CT_930 .DATA : BEGIN OF ITAB OCCURS 0, STR(255) TYPE C, END OF ITAB.DATA : JTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE,ITAB1 LIKE MARA OCCURS 0 WITH HEADER LINE.CALL FUNCTION 'UPLOAD' EXPORTING FILENAME = 'D:\930AM\MATDATA.TXT' FILETYPE = 'ASC' TABLES DATA_TAB = ITAB.

LOOP AT ITAB. SPLIT ITAB-STR AT ',' INTO ITAB1-MATNR ITAB1-MTART ITAB1-MBRSHITAB1-MEINS. APPEND ITAB1.ENDLOOP.

LOOP AT ITAB1. PERFORM PRGINFO USING 'SAPMZMPPSCR' '123'. PERFORM FLDINFO USING 'ITAB-MATNR' ITAB1-MATNR. PERFORM FLDINFO USING 'ITAB-MTART' ITAB1-MTART. PERFORM FLDINFO USING 'ITAB-MBRSH' ITAB1-MBRSH. PERFORM FLDINFO USING 'ITAB-MEINS' ITAB1-MEINS.

CALL TRANSACTION 'ZCT930' USING JTAB MODE 'A'.

ENDLOOP.

FORM PRGINFO USING PROGRAMNAME SCRNUM.REFRESH JTAB.JTAB-PROGRAM = PROGRAMNAME.JTAB-DYNPRO = SCRNUM.JTAB-DYNBEGIN = 'X'.APPEND JTAB.ENDFORM.

FORM FLDINFO USING FLDNAME FLDVAL.

Page 6: PART2-BDC CONCEPTS

CLEAR JTAB. JTAB-FNAM = FLDNAME. JTAB-FVAL = FLDVAL. APPEND JTAB.ENDFORM.

28 TH FEB

BDC CONCEPTS…1) DIRECT INPUT METHOD2) CALL TRANSACTION METHOD ADVANTAGE : IT CAN MODIFY ERROR RECORDS. DIS ADVANTAGE: CAUSES NETWORK TRAFFIC.3) SESSION METHOD IS THE BEST METHOD OUT OFF THREE IN THE MAINTENANCE.

BDC_OPEN_GROUP IS THE NAME OF FUNCTION MODULE TO CREATE SESSION OBJECT.BDC_INSERT : IS THE NAME OF FUNCTION MODULE USED TO INSERT THE DATA OF "JTAB" ( INTERNAL TABLE CREATED FOR BDCDATA ) WITH HELP OF A TCODE TO SESSION OBJECT.BDC_CLOSE_GROUP: TO CLOSE SESSION OBJECT MEMORY FROM THE PROGRAM.

AS WE EXECUTE THIS PROGRAM DATA IS SENT TO SESSION OBJECT. NAME OF SESSION OBJECT CAN BE GIVEN FOR ANY DATA ENTRY OPERATOR TO PROCESS SESSION DATA TO R/3 WHEN EVER DATA BASE NETWORK TRAFFIC IS LOW USING TCODE "SM35".

EXAMPLE CODE:REPORT ZDEMO_BDC_SESSION_930.

DATA : BEGIN OF ITAB OCCURS 0, STR(255) TYPE C, END OF ITAB.

DATA : JTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE, ITAB1 LIKE MARA OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'UPLOAD' EXPORTING FILENAME = 'D:\930AM\MATDATA.TXT' FILETYPE = 'ASC' TABLES DATA_TAB = ITAB.

Page 7: PART2-BDC CONCEPTS

LOOP AT ITAB. SPLIT ITAB-STR AT ',' INTO ITAB1-MATNR ITAB1-MTART ITAB1-MBRSHITAB1-MEINS. APPEND ITAB1.ENDLOOP.

CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP = 'SESS9301' KEEP = 'X' USER = SY-UNAME.

LOOP AT ITAB1. PERFORM PRGINFO USING 'SAPMZMPPSCR' '123'. PERFORM FLDINFO USING 'ITAB-MATNR' ITAB1-MATNR. PERFORM FLDINFO USING 'ITAB-MTART' ITAB1-MTART. PERFORM FLDINFO USING 'ITAB-MBRSH' ITAB1-MBRSH. PERFORM FLDINFO USING 'ITAB-MEINS' ITAB1-MEINS.

CALL FUNCTION 'BDC_INSERT' EXPORTING TCODE = 'ZCT930' TABLES DYNPROTAB = JTAB.ENDLOOP.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

FORM PRGINFO USING PROGRAMNAME SCRNUM.REFRESH JTAB.JTAB-PROGRAM = PROGRAMNAME.JTAB-DYNPRO = SCRNUM.JTAB-DYNBEGIN = 'X'.APPEND JTAB.ENDFORM.

FORM FLDINFO USING FLDNAME FLDVAL. CLEAR JTAB. JTAB-FNAM = FLDNAME. JTAB-FVAL = FLDVAL. APPEND JTAB.ENDFORM.

Page 8: PART2-BDC CONCEPTS

4) RECORDING METHOD (50% SAP , 50% ABAPER)

NAVIGATIONS TO CREATE RECORDING METHOD TO PROCESS BDC.

* SHDB ( TCODE ) -> DISPLAY ALL RECORDING METHODS LIST -> CLICK ON "NEW RECORDING" FROM APPLICATION TOOLBAR -> OPENS AN INTERFACE -> ENTER RECORDING METHOD NAME ( ZREC9301) -> ASSIGN A TCODE TO BE RECORDED ( MM01 ) -> CLICK ON START RECORDING -> ACCEPT SAMPLE DATA FROM THE TCODE -> SAVE THE ENTRIES -> SAMPLE DATA ENTRY IS SAVED IN RECORING OBJECT -> SAVE -> COME BACK -> SELECT CREATED RECODING OBJECT NAME -> CLICK ON PROGRAM FROM APPLICATION TOOLBAR -> ENTER PROGRAM NAME -> CREATE -> SHORT TEXT -> TYPE OF PROGRAM -> CLICK SOURCE CODE -> OPENS SE38 EDITOR -> WITH THE CODE -> CODE IS CREATED FOR SINGLE TRANSACTION -> SPECIFY SOURCE FILE INFORAMTION, USING UPLOAD , ITAB , ITAB1. MAKE CODE GENERATED BY SAP IN "LOOP AT ITAB1 AND ENDLOOP". REPALCE THE STATIC TEXT TO BE POPULATED ON SCREEN WITH "ITAB1" FIELD VALUES -> ACTIVATE -> EXECUTE THE PROGRAM.

MM01: IS A BUILT IN TCODE CREATED BY SAP TO CREATE A MATERIAL IN SAP DATA BASE.

MATNRMBRSHMTARTMAKTXMEINS

EXAMPLE CODE:

report ZPRGREC_930 no standard page heading line-size 255.

include bdcrecx1.

DATA : BEGIN OF ITAB OCCURS 0, STR(255) TYPE C, END OF ITAB.

DATA : BEGIN OF ITAB1 OCCURS 0, MATNR LIKE MARA-MATNR, MBRSH LIKE MARA-MBRSH, MTART LIKE MARA-MTART, MAKTX LIKE MAKT-MAKTX, MEINS LIKE MARA-MEINS, END OF ITAB1.

Page 9: PART2-BDC CONCEPTS

start-of-selection.

CALL FUNCTION 'UPLOAD' EXPORTING FILENAME = 'D:\930AM\MATDATA.TXT' FILETYPE = 'ASC' TABLES DATA_TAB = ITAB.

LOOP AT ITAB. SPLIT ITAB-STR AT ',' INTO ITAB1-MATNR ITAB1-MTART ITAB1-MBRSHITAB1-MEINS. ITAB1-MAKTX = 'SAMPLE DATA IN DB'. APPEND ITAB1.ENDLOOP.

perform open_group.LOOP AT ITAB1.

perform bdc_dynpro using 'SAPLMGMM' '0060'.perform bdc_field using 'BDC_CURSOR' 'RMMG1-MTART'.perform bdc_field using 'BDC_OKCODE' '=AUSW'.perform bdc_field using 'RMMG1-MATNR' ITAB1-MATNR.perform bdc_field using 'RMMG1-MBRSH' ITAB1-MBRSH.perform bdc_field using 'RMMG1-MTART' ITAB1-MTART.perform bdc_dynpro using 'SAPLMGMM' '0070'.perform bdc_field using 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(01)'.perform bdc_field using 'BDC_OKCODE' '=ENTR'.perform bdc_field using 'MSICHTAUSW-KZSEL(01)' 'X'.perform bdc_dynpro using 'SAPLMGMM' '4004'.perform bdc_field using 'BDC_OKCODE' '=BU'.perform bdc_field using 'MAKT-MAKTX' ITAB1-MAKTX.perform bdc_field using 'BDC_CURSOR' 'MARA-MEINS'.perform bdc_field using 'MARA-MEINS'

Page 10: PART2-BDC CONCEPTS

ITAB1-MEINS.perform bdc_field using 'MARA-MTPOS_MARA' 'NORM'.perform bdc_transaction using 'MM01'.ENDLOOP.perform close_group.

1 ST MARCH 5) LSMW ( 14 STEPS TO PROCESS BDC)LSMW IS NAVIGATION FORMAT TO PERFORM BDC'S

LSMW IS A COLLECTION OF PROJECTS, PROJECT IS A COLLECTION OF SUB PROJECTS AND SUB PROJECT IS A COLLECTION OF OBJECTS.

LSMW -> NAME THE PROJECT , SUB PROJECT AND OBJECT -> CLICK ON CREATE FROM APPLICATION TOOLBAR -> OPENS ANOTHER INTERFACE ACCEPT SHORT DESCRIPTION -> OK -> TO LSMW PROCESS CLICK ON EXECUTE ( PRESS F8).

1) Maintain Object Attributes IN THIS STEP WE CAN SPECIFY THE TARGET TCODE, WHERE DATA TO BE POPULATED FOR LSMW, WITH TCODE FIELD IDENTITIES WITH HELP OF RECORDING METHOD. TO DO THIS SELECT -> EXECUTE -> CLICK ON RECORDING OVERVIEW ( PB ON APPLICATION ) -> OPENS LPS SCREEN -> CLICK ON CREATE NEW RECORDING FROM APPLICATION TOOLBAR -> OPENS AN INTERFACE -> ENTER RECORDING METHOD NAME ( ZREC1) -> SHORT TEXT -> CONTINUE -> ENTER THE TCODE( MK01 ) -> Enter sample data -> Save the entries from tcode -> Generates a report in LPS with recording method fields, but in this step abaper has to assign recording methods fields to LSMW process , to do this -> click on Default all from application toolbar, assigns all fields of recording method into LSMW process.-> save the entries -> come back -> come back -> change mode of screen -> select batch input recording -> name the recording (zrec1) -> save the entries -> come back.

2) Maintain Source Structures In this process we are creating a structure where can be splitted from flat file, to populate data into corresponding fields of screen to do this

select -> execute -> change the mode of screen -> click on create structure from application toolbar -> name the structure ( ktab) -> short text -> ok -> Save the entries and come back

3) Maintain Source Fields In this process we are adding Fields for the structure with help tcode fields. To do this

select -> execute -> change mode -> select name of structure ->

Page 11: PART2-BDC CONCEPTS

click on create field -> specify field name -> description -> size of the field -> data type -> continue -> repeat the same step for all fiels of tcode where data to be populated -> save entries -> come back.

4) Maintain Structure Relations

In this step the relation between structure and Recording object should be assigined, this will be done automatically, else process manually to do this

select -> execute -> chane the mode -> save -> come back ( as relations are maintained by sap by default [zrec <<<< ktab]).

5) Maintain Field Mapping and Conversion Rules

In this process we are performing field mappings of recording ( lsmw ) to structure fields. To do this

select -> execute -> change the mode -> select field of Recording method (LIFNR) -> click on source field from application toolbar -> displays list of fields in KTAB ( structure ) -> double click on related field name ( field is mapped ) -> Repeat the same step for all fields.-> save the entries and come back.

6) Maintain Fixed Values, Translations, User-Defined Routines This step is require if we need to assign any default values, is a optional step [ we can avoid this step. select -> execute -> come back.

7) Specify Files we can specify the file is from Presentation layer or application server to be extracted for data population to do this

select -> execute -> change the mode -> select the location ( legacy system PC ) -> click on add entry from application toolbar -> opens an interface -> enter path of source file in File ( field ) [d:\930am\vendordata.txt] -> description in name field -> specify field separator (comma) -> continue -> save the entries -> come back ->

8) Assign Files In this process we are assigning File to the LSMW process to do this

select -> execute -> change the mode -> save -> come back.

9) Import Datain this process the data from legacy system is populated into LSMW process,

generates ".lsmw.read" fileselect -> execute -> execute -> generates report -> come back -> come back.

10) Display Imported DataIn this process we are display the data of .read file in presentation layer to do this

Page 12: PART2-BDC CONCEPTS

select -> execute -> continue -> display report ( yellow color ) -> come back ->

11) Convert Data in this process generates ".conv" with help of ".read" file to do this

select -> execute -> execute -> generates a report -> come back -> come back ->

12) Display Converted Datadisplays the converted data from application created by sap to do this

select -> execute -> continue -> generates the report -> come back.

13) Create Batch Input Sessionin this process creates a session object with name as object name defined in LSMW.

select -> execute -> execute.

14) Run Batch Input Session executes the SM35 tcode to process LSMW into sap r/3. opens sm35 tcode -> select object name -> process.


Recommended