Você está na página 1de 12

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
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.
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'
EXPORTING
FILENAME = '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.
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 VERSIONS


OPEN 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.

24TH 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.
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.

26TH FEB

TCODE : ZCT930
PROGRAM : SAPMZMPPSCR
SCREEN : 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'. "HEADER
APPEND 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'.
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-MBRSH
ITAB1-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.


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

28TH FEB

BDC CONCEPTS…
1) DIRECT INPUT METHOD
2) 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.
LOOP AT ITAB.
SPLIT ITAB-STR AT ',' INTO ITAB1-MATNR ITAB1-MTART ITAB1-MBRSH
ITAB1-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.

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.

MATNR
MBRSH
MTART
MAKTX
MEINS

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.
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-MBRSH
ITAB1-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'
ITAB1-MEINS.
perform bdc_field using 'MARA-MTPOS_MARA'
'NORM'.
perform bdc_transaction using 'MM01'.
ENDLOOP.
perform close_group.

1ST 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 ->
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 Data
in this process the data from legacy system is populated into LSMW process,
generates ".lsmw.read" file
select -> execute -> execute -> generates report -> come back -> come back.

10) Display Imported Data


In this process we are display the data of .read file in presentation layer to do this
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 Data


displays the converted data from application created by sap to do this
select -> execute -> continue -> generates the report -> come back.

13) Create Batch Input Session


in 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.

Você também pode gostar