batch input session

22
Batch Input Session Dec-2008 Data Interfaces |

Upload: kranthi-kumar

Post on 07-Nov-2014

190 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Batch input session

Batch Input Session

Dec-2008 Data Interfaces |

Page 2: Batch input session

Objectives

• The participants will be able to:– Create the Batch Input part of an Inbound

Interface.– Describe the Batch Input Session Method for

Batch Input.

Dec-2008 Data Interfaces | 2

Page 3: Batch input session

Overview

Dec-2008 Data Interfaces | 3

SAPSAPDatabaseDatabase

TableTable

BatchInput

Session

BDCProgram

ExternalData

The first batch input method is to create a batch input session. It is the processing of this batch input

session that updates the database, not the execution of the batch input program.

Page 4: Batch input session

Creating Batch Input Sessions

Dec-2008 Data Interfaces | 4

“BDC_INSERT” is called for each

transaction entered into the

batch input session.

Open Batch Input SessionOpen Batch Input Session

Close Batch Input SessionClose Batch Input Session

Insert Transaction Data into Session

BDC_OPEN_GROUP

BDC_INSERT

BDC_CLOSE_GROUP

Page 5: Batch input session

BDC_OPEN_GROUP

Dec-2008 Data Interfaces | 5

CALL FUNCTION ‘BDC_OPEN_GROUP’

EXPORTING

CLIENT = <client>

GROUP = <session name>

HOLDDATE = <lock session until date>

KEEP= <keep or delete session>

USER= <user name>

EXCEPTIONS

CLIENT_INVALID = 1

. . .

OTHERS = 11.

SY-SUBRCCHECK

Page 6: Batch input session

BDC_INSERT

Dec-2008 Data Interfaces | 6

CALL FUNCTION ‘BDC_INSERT’

EXPORTING

TCODE = <transaction code>

POST_LOCAL = <local update>

TABLES

DYNPROTAB = <bdc internal table>

EXCEPTIONS

INTERNAL_ERROR = 1

. . .

OTHERS = 5.

SY-SUBRCCHECK

Page 7: Batch input session

BDC_INSERT (Contd.)

Dec-2008 Data Interfaces | 7

CALL FUNCTION ‘BDC_INSERT’

EXPORTING

TCODE = <transaction code>

POST_LOCAL = <local update>

TABLES

DYNPROTAB = <bdc internal table>

EXCEPTIONS

INTERNAL_ERROR = 1

. . .

OTHERS = 5.

SY-SUBRCCHECK

Page 8: Batch input session

BDC_CLOSE_GROUP

Dec-2008 Data Interfaces | 8

CALL FUNCTION ‘BDC_CLOSE_GROUP’

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3.SY-SUBRC

CHECK

Page 9: Batch input session

Batch Input Session - Structure

Dec-2008 Data Interfaces | 9

BatchInput

Session

Data Section

Transaction Data

Header Section

Creator

Client

Session Name

Authorization User

Hold Date

Keep or Delete

Page 10: Batch input session

Example #1 - Change Vendor

Dec-2008 Data Interfaces | 10

Vendor

Company Code

ABAPXX-002

AddressX

Name

Street

Computers, Inc.

Buyer, Inc.1

City Philadelphia

In this example, we will create a batch input session to add a street

address to an already existing vendor (TEST1).

The “Change Vendor” transaction is “FK02”.

Page 11: Batch input session

Example #1 - Declaration Section

Dec-2008 Data Interfaces | 11

REPORT YDIXX5_2.

DATA: BDC_TAB TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 6 WITH HEADER LINE,

WA_BDC_TAB TYPE BDCDATA,

SESSION TYPE APQ_GRPNVALUE 'DEMO#8'.

Step #1

** This program is continued on the next slide **

Page 12: Batch input session

Example #1 - Main Program

Dec-2008 Data Interfaces | 12

START-OF-SELECTION.CALL FUNCTION ‘BDC_OPEN_GROUP’

EXPORTINGCLIENT = SY-MANDTGROUP = SESSIONUSER = SY-UNAME

EXCEPTIONS. . . .PERFORM FILL_BDC_TAB.CALL FUNCTION ‘BDC_INSERT’

EXPORTINGTCODE = ‘FK02’

TABLESDYNPROTAB = BDC_TAB

EXCEPTIONS. . . .CALL FUNCTION ‘BDC_CLOSE_GROUP’

EXCEPTIONS. . . .

Step #2

Step #3

Step #4

Step #5

** This program is continued on the next slide **

Page 13: Batch input session

Example #1 - Subroutines

Dec-2008 Data Interfaces | 13

FORM FILL_BDC_TAB.

REFRESH BDC_TAB.

PERFORM POPULATE_BDC_TABUSING:

‘1’‘SAPMF02K’ ‘0106’,‘ ’‘RF02K-LIFNR’ ‘ABAPXX-002’,‘ ’‘RF02K-D0110’ ‘X’,

‘1’‘SAPMF02K’ ‘0110’,‘ ’‘LFA1-STRAS’ ‘Buyer, Inc.1’,‘ ’‘BDC_OKCODE’ ‘=UPDA’.

ENDFORM.

FORM POPULATE_BDC_TAB USINGFLAG TYPE C

VAR1 TYPE C VAR2 TYPE C.

CLEAR WA_BDC_TAB.IF FLAG = ‘1’.

WA_BDC_TAB-PROGRAM = VAR1. WA_ BDC_TAB-DYNPRO= VAR2.

WA_BDC_TAB-DYNBEGIN= ‘X’.ELSE.

WA_BDC_TAB-FNAM = VAR1.WA_BDC_TAB-FVAL = VAR2.

ENDIF.

APPEND WA_BDC_TAB TO BDC_TAB.

ENDFORM.

Page 14: Batch input session

Example #2 - Change Vendors

Dec-2008 Data Interfaces | 14

Vendor

Company Code

TEST1

AddressX

Name

Street

Computers, Inc.

123 Main St.

City Philadelphia

Vendor

Company Code

TEST2

AddressX

Name

Street

Computer Land

10 Walnut St.

CityBoston

In this example, we will read records from a sequential file on the application server to create a batch input session that

updates multiple vendors.

Page 15: Batch input session

Example #2 - Sequential File

Dec-2008 Data Interfaces | 15

TEST1 123 Main St.

TEST2 10 Walnut St.

TEST3 32 Chestnut St.

TEST4 30 Market St.

TEST5 17 S. 30th St.

File name:

‘/tmp/bc180_file3’

The sequential file we will read is set up in records. Each record has two fields with

the following formats:

<Field1> LIKE LFA1-LIFNR

<Field2> LIKE LFA1-STRAS

Page 16: Batch input session

Example #2 - Declaration Section

Dec-2008 Data Interfaces | 16

REPORT YDIXX5_02.

DATA: BDC_TAB TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 6 ,SESSION TYPE APQ_GRPN

VALUE 'DEMO#9',INFILE(20) VALUE '/tmp/bc180_file3'.

DATA: BEGIN OF INREC,VENDNUM TYPE LIFNR,STREET TYPE STRAS_GP,

END OF INREC.

Step #1

Step #2

** This program is continued on the next slide **

Page 17: Batch input session

Example #2 - Main Program

Dec-2008 Data Interfaces | 17

START-OF-SELECTION.OPEN DATASET INFILE

FOR INPUT IN TEXT MODE ENCODING DEFAULT.

CALL FUNCTION ‘BDC_OPEN_GROUP’. . . .DO.

READ DATASET INFILE INTO INREC.IF SY-SUBRC <> 0. EXIT. ENDIF.PERFORM FILL_BDC_TAB.CALL FUNCTION ‘BDC_INSERT’

EXPORTINGTCODE = ‘FK02’

TABLESDYNPROTAB = BDC_TAB. . . .

ENDDO.CALL FUNCTION ‘BDC_CLOSE_GROUP’. . . .CLOSE DATASET INFILE.

SY-SUBRCCHECKStep #3

Step #4

Step #5

Step #6

Step #7

Step #8

Step #9

Step #10

** This program is continued on the next slide **

Page 18: Batch input session

Example #2 - Subroutines

Dec-2008 Data Interfaces | 18

FORM FILL_BDC_TAB.

REFRESH BDC_TAB.

PERFORM POPULATE_BDC_TABUSING:

‘1’ ‘SAPMF02K’ ‘0106’,‘ ’ ‘RF02K-LIFNR’ INREC-VENDNUM,‘ ’ ‘RF02K-D0110’ ‘X’,

‘1’ ‘SAPMF02K’ ‘0110’,‘ ’ ‘LFA1-STRAS’ INREC-STREET,‘ ’ ‘BDC_OKCODE’ ‘=UPDA’.

ENDFORM.

FORM POPULATE_BDC_TAB USINGFLAG TYPE C

VAR1 TYPE C VAR2 TYPE C. CLEAR WA_BDC_TAB.

IF FLAG = ‘1’.WA_BDC_TAB-PROGRAM = VAR1.WA_BDC_TAB-DYNPRO = VAR2.WA_BDC_TAB-DYNBEGIN = ‘X’.ELSE.WA_BDC_TAB-FNAM = VAR1.WA_BDC_TAB-FVAL = VAR2.ENDIF.

APPEND WA_BDC_TAB TO BDC_TAB.

ENDFORM.

Notice that the vendor number and street values are coming from the file’s records read into the “INREC” structure.

Page 19: Batch input session

Demonstration

• Creation of a custom batch input session program for transaction XD02 (Change Customer).

Dec-2008 Data Interfaces | 19

Page 20: Batch input session

Practice

• Creation of a custom batch input session program for transaction XD02 (Change Customer).

Dec-2008 Data Interfaces | 20

Page 21: Batch input session

Summary

Dec-2008 Data Interfaces | 21

Research Transaction

Code BDC Program

Execute BDC Program

Batch Input Session Created

Process Batch Input Session

SAP Database Updated

Page 22: Batch input session

Questions

• What are the function modules required to create a batch input session ?

• In what sequence are they called ?

Dec-2008 Data Interfaces | 22