Quantcast
Channel: SCN : All Content - SAP CRM: Webclient UI - Framework
Viewing all articles
Browse latest Browse all 4552

create and change condition prices in opportunity

$
0
0

Hi group!

 

We're trying to update condition prices in opportunities (create / change / delete) using BAPI_OPPORTUNITY_CHANGEMULTI. However the BAPI is not updating the conditions, neither in creation (condition_create) nor in change (condition_change). Does anyone have a running example on how to use the BAPI for updating condition prices? Please find below our current code (it's just a program that will try to add a new condition price to an existing position of an opportunity).

 

Thanks!!

 

&----


*& Report  ZTEST_PRIDOC                                                *

*&                                                                     *

&----


*&                                                                     *

*&                                                                     *

&----


 

REPORT  ZTEST_PRIDOC                            .

 

 

 

  • Actualizamos las condiciones de precio ya existentes

  • MAINTAIN-structures

DATA:

     gt_orderadm_h      TYPE  crmt_orderadm_h_comt,

     gt_orderadm_i      TYPE  crmt_orderadm_i_comt,

     gt_schedlin_i_com  TYPE  crmt_schedlin_i_comt,

     gt_input_fields    TYPE  crmt_input_field_tab,

     gt_partner         TYPE  crmt_partner_comt,

     gt_orgman          TYPE  crmt_orgman_comt,

     gt_appointment     TYPE  crmt_appointment_comt,

     gt_pricing         TYPE  crmt_pricing_comt,

     gt_sales           TYPE  crmt_sales_comt,

     gt_pridoc          TYPE  crmt_pridoc_comt,

  • WORK-structures

     gs_orderadm_h      TYPE  crmt_orderadm_h_com,

     gs_schedlin_i_com  TYPE  crmt_schedlin_i_com,

     gs_orderadm_h_wrk  TYPE  crmt_orderadm_h_wrk,

     gs_partner         TYPE  crmt_partner_com,

  • temp structures

     gt_saved_objects      TYPE  crmt_return_objects,

     gt_obj_guids          TYPE  crmt_object_guid_tab,

     gt_requested_objects  TYPE crmt_object_name_tab,

     gt_schedlin           TYPE  crmt_schedlin_wrkt,

     gv_log_handle         TYPE  balloghndl,

     gt_pricing_t          TYPE  crmt_pricing_i_comint,

     gt_input_field_names  TYPE crmt_input_field_names_tab,

     gs_input_field_names  TYPE crmt_input_field_names,

     wa_input_fields       TYPE BAPIBUS20001_INPUT_FIELDS,

     t_input_fields        TYPE BAPIBUS20001_INPUT_FIELDS occurs 0,

  •     t_condition_change   TYPE BAPIBUS20001_CONDITION_CHANGE occurs 0,

  •     wa_condition_change   TYPE BAPIBUS20001_CONDITION_CHANGE,

     t_condition_create  TYPE BAPIBUS20001_CONDITION_CREATE occurs 0,

     wa_condition_create   TYPE BAPIBUS20001_CONDITION_CREATE,

     t_header              TYPE BAPIBUS20001_HEADER_UPD occurs 0,

     wa_header             TYPE BAPIBUS20001_HEADER_UPD,

     t_obj_save            TYPE BAPIBUS20001_GUID_DIS occurs 0,

     wa_obj_save           TYPE BAPIBUS20001_GUID_DIS,

     t_oportunidad         TYPE BAPIBUS20001_OPPORTUNITY occurs 0,

     wa_oportunidad        TYPE BAPIBUS20001_OPPORTUNITY.

  •      t_pric_cond           TYPE PRCT_COND_PRINT_T,

  •      wa_t_PRIC_COND        TYPE PRCT_COND_PRINT.

 

DATA: ls_field_name TYPE CRMT_FIELDNAME.

 

 

clear wa_input_fields.

CLEAR ls_field_name.

 

DATA: lv_pd_handle TYPE PRCT_HANDLE.

 

CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'

  EXPORTING

    IV_HEADER_GUID                   =

'E6CDBF9A7B3ECE4E9CCD9350E0F06EA9'

  •   IV_NO_CREATION                   = FALSE

  •   IV_PRIC_PROC                     =

IMPORTING

  EV_PD_HANDLE                     = lv_pd_handle

  •   EV_PRICING_PROCEDURE             =

  •   EV_NEW_PRICING_DOCUMENT          =

  •   EV_PRIDOC_GUID                   =

EXCEPTIONS

   ERROR_OCCURRED                   = 1

  HANDLE_DETERMINATION_ERROR       = 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.

 

*Position

wa_input_fields-ref_handle = lv_pd_handle.

wa_input_fields-ref_guid   = 'B07CD76614763840B88425DB8692051C'.

wa_input_fields-ref_kind   = 'B'.

wa_input_fields-objectname = 'PRIDOC'.

wa_input_fields-fieldname = 'COND_ADD'.

APPEND wa_input_fields TO t_input_fields.

 

 

 

*ls_field_name = 'COND_RATE'.

*APPEND ls_field_name TO lt_field_name.

*

*ls_field_name = 'COND_P_UNT'.

*APPEND ls_field_name TO lt_field_name.

*

*ls_field_name = 'COND_UOM'.

*APPEND ls_field_name TO lt_field_name.

*

*ls_field_name = 'COND_TYPE'.

*APPEND ls_field_name TO lt_field_name.

*

*APPEND wa_input_fields TO t_input_fields.

 

*Posicion

*wa_condition_change-REF_GUID  = 'B07CD76614763840B88425DB8692051C'.

*wa_condition_change-REF_KIND  = 'B'.

*wa_condition_change-cond_st_no = '010'.

*wa_condition_change-COND_COUNT  = '001'.

*wa_condition_change-CURRENCY  = 'EUR'.

*wa_condition_change-COND_RATE = '105'.

*wa_condition_change-cond_p_unt = '1'.

*wa_condition_change-COND_UOM  = 'UN'.

 

wa_condition_create-REF_GUID  = 'B07CD76614763840B88425DB8692051C'.

wa_condition_create-REF_KIND  = 'B'.

wa_condition_create-CURRENCY  = 'EUR'.

wa_condition_create-COND_RATE = '105'.

wa_condition_create-COND_P_UNT = '1'.

wa_condition_create-COND_UOM  = 'UN'.

wa_condition_create-COND_TYPE  = 'ZVAI'.

 

APPEND wa_condition_create TO t_condition_create.

 

 

 

*Header

wa_header-GUID = 'E6CDBF9A7B3ECE4E9CCD9350E0F06EA9'.

 

APPEND wa_header TO t_header.

 

  •    wa_oportunidad-REF_GUID = wa_posiciones_modificacion-guid.

*

  •     APPEND wa_oportunidad TO t_oportunidad.

**

  •    CALL FUNCTION 'BAPI_BUSPROCESSND_CHANGEMULTI'

  •      TABLES

  •        HEADER                  = t_header

*

  •        input_fields            = t_input_fields

  •        CONDITION_CHANGE        = t_condition_change.

 

 

CALL FUNCTION 'BAPI_OPPORTUNITY_CHANGEMULTI'

  •   EXPORTING

  •     TESTRUN                =

  TABLES

    HEADER                 = t_header

  •     ITEM                   =

  •      OPPORTUNITY            = t_oportunidad

  •     ORGANISATION           =

  •     PRICING                =

  •     PARTNER                =

  •     TEXT                   =

  •     PRODUCT                =

  •     STATUS                 =

  •     SERVICE_OS             =

    input_fields           = t_input_fields

  •     RETURN                 =

  •     APPOINTMENT            =

  •     SCHEDULELINE           =

  •     DOCUMENT_FLOW          =

  •     PRICING_ITEM           =

  •     CONDITION_CREATE       =

  •    CONDITION_CHANGE       = t_condition_change

    CONDITION_CREATE       = t_condition_create

 

  •     CONDITION_DELETE       =

          .

 

 

  • wa_obj_save = wa_posiciones_modificacion-guid.

wa_obj_save = 'E6CDBF9A7B3ECE4E9CCD9350E0F06EA9'.

 

APPEND wa_obj_save to t_obj_save.

 

 

DATA: LT_SAVED_OBJECTS TYPE BAPIBUS20001_OBJECT_ID OCCURS 0 WITH HEADER

LINE.

CLEAR LT_SAVED_OBJECTS[].

DATA: RETURN TYPE BAPIRET2 OCCURS 0 WITH HEADER LINE.

 

CALL FUNCTION 'BAPI_BUSPROCESSND_SAVE'

  •     EXPORTING

  •       UPDATE_TASK_LOCAL       = FALSE

  •       SAVE_FRAME_LOG          = FALSE

  •     IMPORTING

  •       LOG_HANDLE              =

  TABLES

    OBJECTS_TO_SAVE         = t_obj_save

   SAVED_OBJECTS           = LT_SAVED_OBJECTS

   RETURN                  = RETURN.

 

 

 

 

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  •   WAIT          =

IMPORTING

   RETURN        = RETURN.


Viewing all articles
Browse latest Browse all 4552

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>