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

Sample BDC program

Former Member
0 Likes
15,467

Hi,

I have recorded a bdc for ABZON.It was working fine.I want to change this to call transaction.Can anyone help me how to do this.

I have put call transaction in below code,but its showing error like 'Initial screen problem'.

Canu check this code and plz tell me where and how to use call transaction..

report ZABZON_UPLOAD

no standard page heading line-size 255.

data : begin of itab OCCURS 0,

asnum type RAIFP2-ANLN1,

doc_date(10), "type RAIFP1-BLDAT,

pos_date(10), "type RAIFP1-BUDAT,

asval_date(10)," type RAIFP1-BZDAT,

amt_posted(13), " type RAIFP2-ANBTR,

qty(13), " type RAIFP2-MENGE,

uom type RAIFP2-MEINS,

txt type RAIFP2-SGTXT,

end of itab.

itab-asnum = '1750265'.

itab-doc_date = '29.11.2007'.

itab-pos_date = '02.12.2007'.

itab-asval_date = '02.12.2007'.

itab-amt_posted = '2211'.

itab-qty = '3'.

itab-uom = 'PC'.

itab-txt = 'Test BDC'.

append itab.

include bdcrecx1.

start-of-selection.

perform open_group.

loop at itab.

perform bdc_dynpro using 'SAPLAMDP' '0100'.

perform bdc_field using 'BDC_OKCODE'

'=SAVE'.

perform bdc_field using 'RAIFP3-XBANL'

'X'.

perform bdc_field using 'RAIFP2-ANLN1'

itab-asnum. "'1750263'.

perform bdc_field using 'RAIFP1-BLDAT'

itab-doc_date. "'30.11.2007'.

perform bdc_field using 'RAIFP1-BUDAT'

itab-pos_date. "'01.12.2007'.

perform bdc_field using 'RAIFP1-BZDAT'

itab-asval_date. "'01.12.2007'.

perform bdc_field using 'RAIFP2-ANBTR'

itab-amt_posted. " '6666'.

perform bdc_field using 'RAIFP2-MENGE'

itab-qty. "'1'.

perform bdc_field using 'RAIFP2-MEINS'

itab-uom. "'PC'.

perform bdc_field using 'BDC_CURSOR'

'RAIFP2-SGTXT'.

perform bdc_field using 'RAIFP2-SGTXT'

itab-txt ."'Evaluation of checking'.

perform bdc_transaction using 'ABZON'.

  • call TRANSACTION 'ABZON' USING itab MODE 'A'.

perform close_group.

endloop.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
7,431

Hi Mahesh,

When you use 'CALL TRANSACTON' you can use 'bdctab' and fill the tab.

You can try this way... (note down the changes)

DATA : BEGIN OF itab OCCURS 0,
asnum TYPE raifp2-anln1,
doc_date(10), "type RAIFP1-BLDAT,
pos_date(10), "type RAIFP1-BUDAT,
asval_date(10)," type RAIFP1-BZDAT,
amt_posted(13), " type RAIFP2-ANBTR,
qty(13), " type RAIFP2-MENGE,
uom TYPE raifp2-meins,
txt TYPE raifp2-sgtxt,
END OF itab.

DATA:
  BEGIN OF bdctab OCCURS 500.
        INCLUDE STRUCTURE bdcdata.
DATA:
  END OF bdctab.

itab-asnum = '1750265'.
itab-doc_date = '29.11.2007'.
itab-pos_date = '02.12.2007'.
itab-asval_date = '02.12.2007'.
itab-amt_posted = '2211'.
itab-qty = '3'.
itab-uom = 'PC'.
itab-txt = 'Test BDC'.
APPEND itab.



*include bdcrecx1.

START-OF-SELECTION.

*perform open_group.

  LOOP AT itab.

    PERFORM bdc_dynpro USING 'SAPLAMDP' '0100'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=SAVE'.
    PERFORM bdc_field USING 'RAIFP3-XBANL'
    'X'.
    PERFORM bdc_field USING 'RAIFP2-ANLN1'
    itab-asnum.                                             "'1750263'.
    PERFORM bdc_field USING 'RAIFP1-BLDAT'
    itab-doc_date. "'30.11.2007'.
    PERFORM bdc_field USING 'RAIFP1-BUDAT'
    itab-pos_date. "'01.12.2007'.
    PERFORM bdc_field USING 'RAIFP1-BZDAT'
    itab-asval_date. "'01.12.2007'.
    PERFORM bdc_field USING 'RAIFP2-ANBTR'
    itab-amt_posted.                                        " '6666'.
    PERFORM bdc_field USING 'RAIFP2-MENGE'
    itab-qty.                                               "'1'.
    PERFORM bdc_field USING 'RAIFP2-MEINS'
    itab-uom. "'PC'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'RAIFP2-SGTXT'.
    PERFORM bdc_field USING 'RAIFP2-SGTXT'
    itab-txt ."'Evaluation of checking'.
*perform bdc_transaction using 'ABZON'.


*call TRANSACTION 'ABZON' USING itab MODE 'A'.
*perform close_group.
    CALL TRANSACTION 'ABZON' USING bdctab MODE 'E' UPDATE 'S'.
  ENDLOOP.

*---------------------------------------------------------------------*
*       FORM bdc_dynpro                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  P_PROGRAM                                                     *
*  -->  P_DYNPRO                                                      *
*---------------------------------------------------------------------*
FORM bdc_dynpro USING p_program
p_dynpro.

  bdctab-program = p_program.
  bdctab-dynpro = p_dynpro.
  bdctab-dynbegin = 'X'.
  APPEND bdctab.
  CLEAR bdctab.

ENDFORM. " bdc_dynpro


*---------------------------------------------------------------------*
*       FORM bdc_field                                                *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  P_FNAM                                                        *
*  -->  P_FVAL                                                        *
*---------------------------------------------------------------------*
FORM bdc_field USING p_fnam
p_fval.

  bdctab-fnam = p_fnam.
  bdctab-fval = p_fval.
  APPEND bdctab.
  CLEAR bdctab.

ENDFORM. " bdc_field

3 REPLIES 3
Read only

Former Member
0 Likes
7,431

hi,

i cant understand your question. but as far as i understand u want to change the transcation of the program which you are using.......it can be done by using two steps.

step one...

open the program in SE80.

then delete the program's transcation .

step two.

create youe own transcation...

note : if my answer is not relavent to your question.

please explain clearly what you want to do.

Read only

tarangini_katta
Active Contributor
0 Likes
7,431

Hi MAhesh,

I also Don't understand u r problem clearly.

But in the perform BDC transactio 'DYNPRO_BEGIn' = 'X'.

then it won't show you the error intial screen is missing.

IF you want to change the transaction i think 'ABZON' is may be for creation.

Use the transaction for change in call transaction then it will work for you.

Thanks

Read only

Former Member
0 Likes
7,432

Hi Mahesh,

When you use 'CALL TRANSACTON' you can use 'bdctab' and fill the tab.

You can try this way... (note down the changes)

DATA : BEGIN OF itab OCCURS 0,
asnum TYPE raifp2-anln1,
doc_date(10), "type RAIFP1-BLDAT,
pos_date(10), "type RAIFP1-BUDAT,
asval_date(10)," type RAIFP1-BZDAT,
amt_posted(13), " type RAIFP2-ANBTR,
qty(13), " type RAIFP2-MENGE,
uom TYPE raifp2-meins,
txt TYPE raifp2-sgtxt,
END OF itab.

DATA:
  BEGIN OF bdctab OCCURS 500.
        INCLUDE STRUCTURE bdcdata.
DATA:
  END OF bdctab.

itab-asnum = '1750265'.
itab-doc_date = '29.11.2007'.
itab-pos_date = '02.12.2007'.
itab-asval_date = '02.12.2007'.
itab-amt_posted = '2211'.
itab-qty = '3'.
itab-uom = 'PC'.
itab-txt = 'Test BDC'.
APPEND itab.



*include bdcrecx1.

START-OF-SELECTION.

*perform open_group.

  LOOP AT itab.

    PERFORM bdc_dynpro USING 'SAPLAMDP' '0100'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=SAVE'.
    PERFORM bdc_field USING 'RAIFP3-XBANL'
    'X'.
    PERFORM bdc_field USING 'RAIFP2-ANLN1'
    itab-asnum.                                             "'1750263'.
    PERFORM bdc_field USING 'RAIFP1-BLDAT'
    itab-doc_date. "'30.11.2007'.
    PERFORM bdc_field USING 'RAIFP1-BUDAT'
    itab-pos_date. "'01.12.2007'.
    PERFORM bdc_field USING 'RAIFP1-BZDAT'
    itab-asval_date. "'01.12.2007'.
    PERFORM bdc_field USING 'RAIFP2-ANBTR'
    itab-amt_posted.                                        " '6666'.
    PERFORM bdc_field USING 'RAIFP2-MENGE'
    itab-qty.                                               "'1'.
    PERFORM bdc_field USING 'RAIFP2-MEINS'
    itab-uom. "'PC'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'RAIFP2-SGTXT'.
    PERFORM bdc_field USING 'RAIFP2-SGTXT'
    itab-txt ."'Evaluation of checking'.
*perform bdc_transaction using 'ABZON'.


*call TRANSACTION 'ABZON' USING itab MODE 'A'.
*perform close_group.
    CALL TRANSACTION 'ABZON' USING bdctab MODE 'E' UPDATE 'S'.
  ENDLOOP.

*---------------------------------------------------------------------*
*       FORM bdc_dynpro                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  P_PROGRAM                                                     *
*  -->  P_DYNPRO                                                      *
*---------------------------------------------------------------------*
FORM bdc_dynpro USING p_program
p_dynpro.

  bdctab-program = p_program.
  bdctab-dynpro = p_dynpro.
  bdctab-dynbegin = 'X'.
  APPEND bdctab.
  CLEAR bdctab.

ENDFORM. " bdc_dynpro


*---------------------------------------------------------------------*
*       FORM bdc_field                                                *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  P_FNAM                                                        *
*  -->  P_FVAL                                                        *
*---------------------------------------------------------------------*
FORM bdc_field USING p_fnam
p_fval.

  bdctab-fnam = p_fnam.
  bdctab-fval = p_fval.
  APPEND bdctab.
  CLEAR bdctab.

ENDFORM. " bdc_field