cancel
Showing results for 
Search instead for 
Did you mean: 

Bapi for item proposal

Former Member
0 Kudos

Hi

I need a BAPI for creation of item proposal and fetch data at the time of sales order creation through bapi. Please help me out to solve.

thanks

Hemant ghiya

Accepted Solutions (1)

Accepted Solutions (1)

Lakshmipathi
Active Contributor
0 Kudos

FI_WT_F110_SAVE_ITEM_PROPOSAL

thanks

G. Lakshmipathi

Answers (1)

Answers (1)

edwin_romero
Discoverer
0 Kudos

This function creates proposal of positions. If it already exists for the same auart and ktext, it is first deleted and then re-created

FUNCTION ZSD_ACT_PROP_POSICIONES.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(I_AUART) TYPE VBAK-AUART
*" REFERENCE(I_VKORG) TYPE VBAK-VKORG
*" REFERENCE(I_VTWEG) TYPE VBAK-VTWEG
*" REFERENCE(I_SPART) TYPE VBAK-SPART
*" REFERENCE(I_KTEXT) TYPE VBAK-KTEXT
*" EXPORTING
*" REFERENCE(E_VBELN) TYPE VBELN
*" TABLES
*" T_PROPUESTA_POSICIONES STRUCTURE ZST_PROPUESTA_POSICIONES
*"----------------------------------------------------------------------
DATA: opt TYPE ctu_params,
lv_posnr TYPE numc2,
lv_s1 TYPE string,
lv_s2 TYPE string,
lv_s3 TYPE string.
*
DATA: BEGIN OF bdc_msg OCCURS 10.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF bdc_msg.
DATA: bdc_tab TYPE TABLE OF bdcdata WITH HEADER LINE.
*
PERFORM borrar_propuesta USING i_auart i_ktext.
*
opt-DISMODE = 'E'.
opt-NOBINPT = 'X'.
*
REFRESH bdc_msg[].
REFRESH bdc_tab.
*
PERFORM dynpro TABLES bdc_tab USING 'X' 'SAPMV45A' '0101'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'BDC_OKCODE' '/00'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'VBAK-AUART' i_auart.
PERFORM dynpro TABLES bdc_tab USING ' ' 'VBAK-VKORG' i_vkorg.
PERFORM dynpro TABLES bdc_tab USING ' ' 'VBAK-VTWEG' i_vtweg.
PERFORM dynpro TABLES bdc_tab USING ' ' 'VBAK-SPART' i_spart.
*
PERFORM dynpro TABLES bdc_tab USING 'X' 'SAPMV45A' '0412'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'BDC_OKCODE' '/00'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'VBAK-KTEXT' i_ktext.
PERFORM dynpro TABLES bdc_tab USING ' ' 'VBAK-GUEBG' '01.01.2000'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'VBAK-GUEEN' '31.12.2999'.
*
LOOP AT t_propuesta_posiciones ASSIGNING FIELD-SYMBOL(<fs>).
ADD 1 TO lv_posnr.
lv_s1 = |RV45A-MABNR({ lv_posnr })|.
lv_s2 = |VBAP-ZMENG({ lv_posnr })|.
PERFORM dynpro TABLES bdc_tab USING ' ' lv_s1 <fs>-matnr.
lv_s3 = <fs>-zmeng.
PERFORM dynpro TABLES bdc_tab USING ' ' lv_s2 lv_s3.
ENDLOOP.
*
"*
PERFORM dynpro TABLES bdc_tab USING 'X' 'SAPMV45A' '0412'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'BDC_OKCODE' '=SICH'.
*
CALL TRANSACTION 'VA51' USING bdc_tab
MESSAGES INTO bdc_msg OPTIONS FROM opt.
*
READ TABLE bdc_msg WITH KEY msgid = 'V1' msgnr = '311'.
IF sy-subrc EQ 0.
e_vbeln = bdc_msg-msgv2.
ELSE.
CLEAR e_vbeln.
ENDIF.
*
ENDFUNCTION.
*
*
FORM dynpro TABLES bdc_tab STRUCTURE bdcdata USING dynbegin name value.
CLEAR bdc_tab.
IF dynbegin = 'X'.
MOVE : name TO bdc_tab-program,
value TO bdc_tab-dynpro,
'X' TO bdc_tab-dynbegin.
APPEND bdc_tab.
ELSE.
MOVE : name TO bdc_tab-fnam,
value TO bdc_tab-fval.
APPEND bdc_tab.
ENDIF. " DYNPRO
ENDFORM.
*
*
FORM borrar_propuesta USING p_auart p_ktext.
*
TYPES: BEGIN OF ty_VBAK,
VBELN TYPE VBAK-VBELN,
KTEXT TYPE VBAK-KTEXT,
END OF ty_VBAK.
DATA: it_VBAK TYPE TABLE OF ty_VBAK WITH HEADER LINE.
*
SELECT vbeln ktext INTO TABLE it_VBAK
FROM vbak
WHERE auart = p_auart AND ktext = p_ktext.
*
LOOP AT it_VBAK ASSIGNING FIELD-SYMBOL(<fs>).
PERFORM borrar_propuesta_vbeln USING <fs>-vbeln.
ENDLOOP.
*
ENDFORM.
*
*
*
FORM borrar_propuesta_vbeln USING p_vbeln.
DATA opt TYPE ctu_params.
DATA: bdc_tab TYPE TABLE OF bdcdata WITH HEADER LINE.
*
opt-DISMODE = 'E'.
opt-NOBINPT = 'X'.
*
CLEAR bdc_tab[].
*
DATA: BEGIN OF bdc_msg OCCURS 10.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF bdc_msg.
*
CLEAR bdc_tab.
*
PERFORM dynpro TABLES bdc_tab USING 'X' 'SAPMV45A' '0126'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'BDC_OKCODE' '/00'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'VBAK-VBELN' p_vbeln.
*
PERFORM dynpro TABLES bdc_tab USING 'X' 'SAPMV45A' '0412'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'BDC_OKCODE' '/ELOES'.
*
PERFORM dynpro TABLES bdc_tab USING 'X' 'SAPLSPO1' '0100'.
PERFORM dynpro TABLES bdc_tab USING ' ' 'BDC_OKCODE' '=YES'.
*
CALL TRANSACTION 'VA52' USING bdc_tab
MESSAGES INTO bdc_msg OPTIONS FROM opt.
*
ENDFORM.