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

BDC Sample program

Former Member
0 Likes
2,024

can any body send sample BDC Table control Progrm using session method.

Regards

Radhika.K

3 REPLIES 3
Read only

Former Member
Read only

0 Likes
1,321

Note: The recording function records a fixed screen sequence. It cannot be used for migrating data containing a variable number of items or for transactions with dynamic screen sequences!

Tip: It is possible to create a recording via SHDB, generate a program out of this recording, and adopt the program to your needs and registrate the program to be able to use it in LSMW.

That’s means, for creation of project and WBS Elements is not possible through

1. LSMW-BDC (For both CJ01 and CJ20n)

2. LSMW-BAPI (Method: Maintain is not listed )

3. LSME-Standard Batch Direct Input.

It’s possible through programmatically(SE38.) either using BAPI Or BDC.

Use Transaction SHDB ( BDC recording) to get your screen flow right . Set

dynpro to default size when you do the recording . When you populate the

step loop , see that you are putting values in the right loop lines .

Use a list with more than the lines displayed in the screen to so the

recording . You will get the Ok codes and the way it is handled in the

recording . Use it to generate a program . Modify the program to your

requirements .

Reward points..

Read only

mahaboob_pathan
Contributor
0 Likes
1,321

hi,

check thia code.

&----


*& Report ZBDC_TAB_CTRL_FB50 *

*& *

&----


*& *

*& *

&----


REPORT ZBDC_TAB_CTRL_FB50 .

DATA: I_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

****Header Internal Table

DATA: BEGIN OF T_HEAD OCCURS 0,

BLDAT(10) TYPE C,

BUDAT(10) TYPE C,

END OF T_HEAD.

****Detail Internal Table

DATA: BEGIN OF T_DET OCCURS 0,

BLDAT(10) TYPE C,

BUDAT(10) TYPE C,

HKONT LIKE ACGL_ITEM-HKONT,

SHKZG LIKE ACGL_ITEM-SHKZG,

WRBTR(16) TYPE C,

END OF T_DET.

DATA: T_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,

IDX(2) TYPE C,

FNAM(20) TYPE C,

FVAL(40) TYPE C.

***Internal Table for Holding Messages

DATA: BEGIN OF MSGTAB OCCURS 0.

INCLUDE STRUCTURE BDCMSGCOLL.

DATA: END OF MSGTAB.

    • Parameter for locating the .xls file

PARAMETER:P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.

***Selection Block for Header Section

SELECTION-SCREEN : BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

PARAMETER: PBROW_HD TYPE I,

PEROW_HD TYPE I,

PBCOL_HD TYPE I,

PECOL_HD TYPE I.

SELECTION-SCREEN : END OF BLOCK BLK1.

***Selection Block for Detail Section

SELECTION-SCREEN : BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.

PARAMETER: PBROW_DT TYPE I,

PEROW_DT TYPE I,

PBCOL_DT TYPE I,

PECOL_DT TYPE I.

SELECTION-SCREEN : END OF BLOCK BLK2.

****Selecting the

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE.

START-OF-SELECTION.

***Selecting data from .xls for the header data

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

FILENAME = P_FILE

I_BEGIN_COL = PBCOL_HD

I_BEGIN_ROW = PBROW_HD

I_END_COL = PECOL_HD

I_END_ROW = PEROW_HD

TABLES

INTERN = T_EXCEL

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

****For Header internal Table

LOOP AT T_EXCEL WHERE ROW GT 0.

CASE T_EXCEL-COL.

WHEN 1. MOVE T_EXCEL-VALUE TO T_HEAD-BLDAT.

WHEN 2. MOVE T_EXCEL-VALUE TO T_HEAD-BUDAT.

ENDCASE.

AT END OF ROW.

APPEND T_HEAD.

CLEAR T_HEAD.

ENDAT.

ENDLOOP.

***Selecting data from .xls for the detail data

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

FILENAME = P_FILE

I_BEGIN_COL = PBCOL_DT

I_BEGIN_ROW = PBROW_DT

I_END_COL = PECOL_DT

I_END_ROW = PEROW_DT

TABLES

INTERN = T_EXCEL

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

****For Detail internal Table

LOOP AT T_EXCEL WHERE ROW GT 0.

CASE T_EXCEL-COL.

WHEN 1. MOVE T_EXCEL-VALUE TO T_DET-BLDAT.

WHEN 2. MOVE T_EXCEL-VALUE TO T_DET-BUDAT.

WHEN 3. MOVE T_EXCEL-VALUE TO T_DET-HKONT.

WHEN 4. MOVE T_EXCEL-VALUE TO T_DET-SHKZG.

WHEN 5. MOVE T_EXCEL-VALUE TO T_DET-WRBTR.

ENDCASE.

AT END OF ROW.

APPEND T_DET.

CLEAR T_DET.

ENDAT.

ENDLOOP.

***Populating i_bdcdata from the header internal table

LOOP AT T_HEAD .

PERFORM BDC USING 'H'.

***Populating i_bdcdata from the detail internal table

LOOP AT T_DET WHERE BLDAT = T_HEAD-BLDAT AND

BUDAT = T_HEAD-BUDAT.

PERFORM BDC USING 'D'.

ENDLOOP.

PERFORM POPULATE_BDCTABLE USING:'' 'BDC_OKCODE' '=BU'.

CALL TRANSACTION 'FB50' USING I_BDCDATA

MODE 'A'

UPDATE 'A'.

ENDLOOP.

&----


*& Form POPULATE_BDCTABLE

&----


  • text

----


  • -->P_0011 text

  • -->P_0012 text

  • -->P_0013 text

----


FORM POPULATE_BDCTABLE USING VALUE(P_FLAG)

VALUE(P_FNAM)

VALUE(P_FVAL).

IF P_FLAG = 'X'.

I_BDCDATA-PROGRAM = P_FNAM.

I_BDCDATA-DYNPRO = P_FVAL.

I_BDCDATA-DYNBEGIN = 'X'.

ELSE.

I_BDCDATA-FNAM = P_FNAM.

I_BDCDATA-FVAL = P_FVAL.

ENDIF.

APPEND I_BDCDATA.

CLEAR I_BDCDATA.

ENDFORM. " POPULATE_BDCTABLE

&----


*& Form BDC

&----


  • text

----


  • -->P_0416 text

----


FORM BDC USING VALUE(P_VAL).

****For Header

IF P_VAL = 'H'.

DATA:L_BLDAT(10) TYPE C,

L_BUDAT(10) TYPE C.

CLEAR:L_BLDAT,L_BUDAT.

WRITE: T_HEAD-BLDAT TO L_BLDAT,

T_HEAD-BUDAT TO L_BUDAT.

PERFORM POPULATE_BDCTABLE USING:'X' 'SAPMF05A' '1001',

' ' 'BDC_OKCODE' '=0006',

' ' 'BDC_CURSOR' 'ACGL_ITEM-WRBTR(01)',

' ' 'ACGL_HEAD-BLDAT' L_BLDAT,

' ' 'ACGL_HEAD-BUDAT' L_BUDAT .

****For Detail

ELSEIF P_VAL = 'D'.

IDX = IDX + 1.

IF IDX = 1.

CONCATENATE 'ACGL_ITEM-HKONT(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING: ' ' FNAM T_DET-HKONT.

CONCATENATE 'ACGL_ITEM-SHKZG(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING ' ' FNAM T_DET-SHKZG.

CONCATENATE 'ACGL_ITEM-WRBTR(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING ' ' FNAM T_DET-WRBTR.

ELSE.

IF IDX > 10.

IDX = 10.

ENDIF.

PERFORM POPULATE_BDCTABLE USING: 'X' 'SAPMF05A' '1001',

' ' 'BDC_OKCODE' '=0006'.

CONCATENATE 'ACGL_ITEM-HKONT(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING: ' ' FNAM T_DET-HKONT.

CONCATENATE 'ACGL_ITEM-SHKZG(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING ' ' FNAM T_DET-SHKZG.

CONCATENATE 'ACGL_ITEM-WRBTR(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING ' ' FNAM T_DET-WRBTR.

ENDIF.

ENDIF.

ENDFORM. " BDC