Home > SAP > BAPI – Modification des offres (SD)

BAPI – Modification des offres (SD)

Bonjour,

Pour modifier les offres client (VA22), on peut utiliser la BAPI : BAPI_CUSTOMERQUOTATION_CHANGE

Exemple :

On veut ajouter un motif de refus dans tous les postes d’un offre wv_vbeln.

 DATA : ws_headerx TYPE bapisdh1x,
              wt_return TYPE TABLE OF bapiret2,
              ws_return TYPE bapiret2,
              wt_item TYPE TABLE OF bapisditm,
              ws_item TYPE bapisditm,
              wt_itemx TYPE TABLE OF bapisditmx,
              ws_itemx TYPE bapisditmx.
 DATA : wt_vbap TYPE TABLE OF vbap,
               ws_vbap TYPE vbap.
  

  
 SELECT * INTO TABLE wt_vbap
                    FROM vbap
                    WHERE vbeln  = wv_vbeln.
    IF sy-dbcnt > 0.
      ws_headerx-updateflag = ‘U’.
      LOOP AT wt_vbap INTO ws_vbap.
        CLEAR ws_item.
        CLEAR ws_itemx.
* N° de poste
        MOVE ws_vbap-posnr TO ws_item-itm_number.
        MOVE ws_vbap-posnr TO ws_itemx-itm_number.
        move ws_vbap-matnr to ws_item-material.
        ws_itemx-material = ‘X’.
* Motif de refus
        IF wv_step IS NOT INITIAL.
          ws_item-reason_rej = ‘XX’.
        ELSE.
          ws_item-reason_rej = ‘YY’.
        ENDIF.
        ws_itemx-reason_rej = ‘X’.
        

        APPEND ws_item TO wt_item.
        APPEND ws_itemx TO wt_itemx.
      ENDLOOP.
      CALL FUNCTION ‘BAPI_CUSTOMERQUOTATION_CHANGE’
        EXPORTING
          salesdocument                = wv_vbeln
          quotation_header_inx   = ws_headerx
        TABLES
          return                               = wt_return
          quotation_item_in          = wt_item
          quotation_item_inx        = wt_itemx .

Ne pas oublier BAPI_TRANSACTION_COMMIT

Categories: SAP Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.