Application Development 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: 

Combine of 3 BAPIs into one Custom BAPI

Former Member
0 Kudos

Hi All,

I have a requirement to combine 3 standard BAPI into a Custom BAPI.

What is the procedure or the steps that has to be followed to do this.

Help and Suggestions will be much Appreciated.

Thanks.

Ram.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Please check the source code of a function module I have created where I have called a BAPI, please check the parameters I have I have passed in the commented format on the top.

FUNCTION zvmat_avilability_check.

*"----


""Local Interface:

*" IMPORTING

*" VALUE(SALESDOCUMENT) TYPE BAPIVBELN-VBELN

*" EXPORTING

*" VALUE(ENDLEADTME) TYPE BAPICM61M-WZTER

*" VALUE(AV_QTY_PLT) TYPE BAPICM61V-WKBST

*" VALUE(DIALOGFLAG) TYPE BAPICM61V-DIAFL

*" TABLES

*" WMDVSX STRUCTURE BAPIWMDVS

*" WMDVEX STRUCTURE BAPIWMDVE

*"----


DATA : p_ans TYPE c,

v_txt1 TYPE char35,

v_txt2 TYPE char10,

v_txt TYPE char50,

v_txt3 TYPE char35,

v_txt4 TYPE char10,

v_txt5 TYPE char50.

    • parameters LIKE spar OCCURS 0 WITH HEADER LINE.

DATA: v_usrlines TYPE i,

v_begrow TYPE sy-curow VALUE 1,

v_ans LIKE sy-tabix.

TYPES: BEGIN OF ty_wf,

plant TYPE werks_d,

material TYPE matnr,

unit TYPE meinh,

lgort TYPE lgort_d,

KWMENG TYPE KWMENG,

END OF ty_wf.

TYPES: BEGIN OF ty_final,

material TYPE matnr,

plant TYPE werks_d,

unit TYPE meinh,

KWMENG TYPE KWMENG,

av_qty_plt TYPE bapicm61v-wkbst,

END OF ty_final.

DATA: wa_wf TYPE ty_wf,

wa_final TYPE ty_final.

DATA: it_wf TYPE STANDARD TABLE OF ty_wf,

it_final TYPE STANDARD TABLE OF ty_final.

CLEAR wa_wf.

SELECT werks

matnr

meins

lgort

KWMENG

FROM vbap

INTO TABLE it_wf

WHERE vbeln EQ salesdocument.

IF sy-subrc EQ 0.

LOOP AT it_wf INTO wa_wf.

CALL FUNCTION 'BAPI_MATERIAL_AVAILABILITY'

EXPORTING

plant = wa_wf-plant

material = wa_wf-material

unit = wa_wf-unit

  • CHECK_RULE =

stge_loc = wa_wf-lgort

  • BATCH =

  • CUSTOMER =

  • DOC_NUMBER =

  • ITM_NUMBER =

  • WBS_ELEM =

  • STOCK_IND =

  • DEC_FOR_ROUNDING =

  • DEC_FOR_ROUNDING_X =

  • READ_ATP_LOCK =

  • READ_ATP_LOCK_X =

  • MATERIAL_EVG =

IMPORTING

endleadtme = endleadtme

av_qty_plt = av_qty_plt

dialogflag = dialogflag

  • RETURN =

TABLES

wmdvsx = wmdvsx

wmdvex = wmdvex .

wa_final-plant = wa_wf-plant.

wa_final-material = wa_wf-material.

wa_final-unit = wa_wf-unit.

wa_final-av_qty_plt = av_qty_plt.

wa_final-KWMENG = wa_wf-KWMENG.

APPEND wa_final TO it_final.

ENDLOOP.

DESCRIBE TABLE it_final LINES v_usrlines.

v_usrlines = v_begrow + v_usrlines.

CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'

EXPORTING

endpos_col = 60

endpos_row = v_usrlines

startpos_col = 1

startpos_row = v_begrow

titletext = 'USER DISPLAY'

IMPORTING

choise = v_ans

TABLES

valuetab = it_final

EXCEPTIONS

break_off = 1

OTHERS = 2.

IF sy-subrc EQ 0.

READ TABLE it_final INTO wa_final INDEX v_ans.

v_txt1 = 'MATERIAL QUANTITY AVAILABLE IS'.

v_txt2 = wa_final-av_qty_plt.

v_txt3 = 'MATERIAL QUANTITY ORDERED'.

v_txt4 = wa_final-KWMENG.

CONCATENATE v_txt1 v_txt2 INTO v_txt.

CONCATENATE v_txt3 v_txt4 INTO v_txt5.

CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'

EXPORTING

titel = 'MATERIAL AVAILABILTY STATUS'

textline1 = v_txt5

TEXTLINE2 = v_txt

start_column = 25

start_row = 6.

ENDIF.

ELSE.

MESSAGE i001(zd) WITH 'No material ordered for for the current sales order'.

ENDIF.

ENDFUNCTION.

____________________________________________________________________________

With best wishes,

Murthy.

2 REPLIES 2

Former Member
0 Kudos

Hi,

Please check the source code of a function module I have created where I have called a BAPI, please check the parameters I have I have passed in the commented format on the top.

FUNCTION zvmat_avilability_check.

*"----


""Local Interface:

*" IMPORTING

*" VALUE(SALESDOCUMENT) TYPE BAPIVBELN-VBELN

*" EXPORTING

*" VALUE(ENDLEADTME) TYPE BAPICM61M-WZTER

*" VALUE(AV_QTY_PLT) TYPE BAPICM61V-WKBST

*" VALUE(DIALOGFLAG) TYPE BAPICM61V-DIAFL

*" TABLES

*" WMDVSX STRUCTURE BAPIWMDVS

*" WMDVEX STRUCTURE BAPIWMDVE

*"----


DATA : p_ans TYPE c,

v_txt1 TYPE char35,

v_txt2 TYPE char10,

v_txt TYPE char50,

v_txt3 TYPE char35,

v_txt4 TYPE char10,

v_txt5 TYPE char50.

    • parameters LIKE spar OCCURS 0 WITH HEADER LINE.

DATA: v_usrlines TYPE i,

v_begrow TYPE sy-curow VALUE 1,

v_ans LIKE sy-tabix.

TYPES: BEGIN OF ty_wf,

plant TYPE werks_d,

material TYPE matnr,

unit TYPE meinh,

lgort TYPE lgort_d,

KWMENG TYPE KWMENG,

END OF ty_wf.

TYPES: BEGIN OF ty_final,

material TYPE matnr,

plant TYPE werks_d,

unit TYPE meinh,

KWMENG TYPE KWMENG,

av_qty_plt TYPE bapicm61v-wkbst,

END OF ty_final.

DATA: wa_wf TYPE ty_wf,

wa_final TYPE ty_final.

DATA: it_wf TYPE STANDARD TABLE OF ty_wf,

it_final TYPE STANDARD TABLE OF ty_final.

CLEAR wa_wf.

SELECT werks

matnr

meins

lgort

KWMENG

FROM vbap

INTO TABLE it_wf

WHERE vbeln EQ salesdocument.

IF sy-subrc EQ 0.

LOOP AT it_wf INTO wa_wf.

CALL FUNCTION 'BAPI_MATERIAL_AVAILABILITY'

EXPORTING

plant = wa_wf-plant

material = wa_wf-material

unit = wa_wf-unit

  • CHECK_RULE =

stge_loc = wa_wf-lgort

  • BATCH =

  • CUSTOMER =

  • DOC_NUMBER =

  • ITM_NUMBER =

  • WBS_ELEM =

  • STOCK_IND =

  • DEC_FOR_ROUNDING =

  • DEC_FOR_ROUNDING_X =

  • READ_ATP_LOCK =

  • READ_ATP_LOCK_X =

  • MATERIAL_EVG =

IMPORTING

endleadtme = endleadtme

av_qty_plt = av_qty_plt

dialogflag = dialogflag

  • RETURN =

TABLES

wmdvsx = wmdvsx

wmdvex = wmdvex .

wa_final-plant = wa_wf-plant.

wa_final-material = wa_wf-material.

wa_final-unit = wa_wf-unit.

wa_final-av_qty_plt = av_qty_plt.

wa_final-KWMENG = wa_wf-KWMENG.

APPEND wa_final TO it_final.

ENDLOOP.

DESCRIBE TABLE it_final LINES v_usrlines.

v_usrlines = v_begrow + v_usrlines.

CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'

EXPORTING

endpos_col = 60

endpos_row = v_usrlines

startpos_col = 1

startpos_row = v_begrow

titletext = 'USER DISPLAY'

IMPORTING

choise = v_ans

TABLES

valuetab = it_final

EXCEPTIONS

break_off = 1

OTHERS = 2.

IF sy-subrc EQ 0.

READ TABLE it_final INTO wa_final INDEX v_ans.

v_txt1 = 'MATERIAL QUANTITY AVAILABLE IS'.

v_txt2 = wa_final-av_qty_plt.

v_txt3 = 'MATERIAL QUANTITY ORDERED'.

v_txt4 = wa_final-KWMENG.

CONCATENATE v_txt1 v_txt2 INTO v_txt.

CONCATENATE v_txt3 v_txt4 INTO v_txt5.

CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'

EXPORTING

titel = 'MATERIAL AVAILABILTY STATUS'

textline1 = v_txt5

TEXTLINE2 = v_txt

start_column = 25

start_row = 6.

ENDIF.

ELSE.

MESSAGE i001(zd) WITH 'No material ordered for for the current sales order'.

ENDIF.

ENDFUNCTION.

____________________________________________________________________________

With best wishes,

Murthy.

Former Member
0 Kudos

Hi

I hope the inputs for the second BAPI will be from First BAPI and inputs for Third BAPI will be from Second BAPI.

If my assumption is correct

Create a new BAPI with import and export structure of First BAPI.

If my assumptions is wrong.

Create a new BAPI with import and export structure of all the BAPI's

Inside the BAPI call the first BAPI and perform the BAPI_TRANSACTION_COMMIT and repeat te same for other 2 BAPI's

Regards

MD