Quantcast
Channel: SCN : Discussion List - SAP CRM: Sales
Viewing all articles
Browse latest Browse all 1559

Change Pricing Condition for an item with CRM_ORDER_MAINTAIN

$
0
0

Hi community,

 

I try to change an existing condition with the function module crm_order_maintain.

Everything looks fine, no error no dump, but no success

The condition stays the same!

 

Can anybody find a solution for this?

 

Heres my report so far:

 

*&---------------------------------------------------------------------*
*& Report  ZTEST_PRICING2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztest_pricing2.

DATA: lt_guid      TYPE crmt_object_guid_tab,      lt_item      TYPE crmt_object_guid_tab,      lt_saved     TYPE crmt_return_objects,      lt_pridoc    TYPE crmt_pric_cond_t,      ls_pridoc    TYPE crmt_pric_cond,      lt_pricom    TYPE crmt_pridoc_comt,      ls_pricom    TYPE crmt_pridoc_com,      lt_header    TYPE crmt_orderadm_h_comt,      lt_input     TYPE crmt_input_field_tab,      ls_input     TYPE crmt_input_field,      ls_input_fn  TYPE CRMT_INPUT_FIELD_NAMES,      ls_cond_chg  TYPE prct_cond_external_change,      ls_cond      TYPE PRCT_COND_DU,      lt_pricing_i TYPE CRMT_PRICING_I_WRKT.

PARAMETERS: lv_head TYPE crmt_object_guid DEFAULT 'C4C61C4E35DDF306E10000000A024089'.
PARAMETERS: lv_item TYPE crmt_object_guid DEFAULT '09C71C4E35DDF306E10000000A024089'.
PARAMETERS: lv_kbetr TYPE prct_cond_rate DEFAULT '100'.

INSERT lv_head INTO TABLE lt_guid.
INSERT lv_item INTO TABLE lt_item.

CALL FUNCTION 'CRM_ORDER_READ'
  EXPORTING    it_header_guid                    = lt_guid    it_item_guid                      = lt_item
*   IV_MODE                           =
*   IV_ONLY_SPEC_ITEMS                =
*   IT_REQUESTED_OBJECTS              =
*   IV_NO_AUTH_CHECK                  =
*   IT_ITEM_USAGE_RANGE               =
*   IV_SUBITEM_DEPTH                  = -1
*   IT_OBJECT_FILTER                  =
*   IV_ONLY_CHANGED_OBJ               = FALSE
*   IV_STATUS_H_CHECK_RELEVANCE       = FALSE  IMPORTING    et_pridoc                         = lt_pridoc    et_pricing_i                      = lt_pricing_i
* CHANGING
*   CV_LOG_HANDLE                     =
 EXCEPTIONS   document_not_found                = 1   error_occurred                    = 2   document_locked                   = 3   no_change_authority               = 4   no_display_authority              = 5   no_change_allowed                 = 6   OTHERS                            = 7.

IF sy-subrc <> 0 AND lt_pridoc IS NOT INITIAL.  WRITE: / 'ERROR'.  EXIT.
ENDIF.

READ TABLE lt_pridoc INDEX 1 INTO ls_pridoc.
IF sy-subrc <> 0.  WRITE: / 'ERROR'.  EXIT.
ENDIF.

READ TABLE ls_pridoc-pric_cond INTO ls_cond WITH KEY kschl = 'PB00'.
IF sy-subrc <> 0.  WRITE: / 'ERROR'.  EXIT.
ENDIF.

ls_input-ref_guid   = lv_head.
ls_input-ref_kind   = 'A'.
ls_input-objectname = 'PRIDOC'.

ls_input_fn-fieldname = 'WAERS'.
INSERT ls_input_fn INTO TABLE ls_input-field_names.
ls_input_fn-fieldname = 'KBETR'.
INSERT ls_input_fn INTO TABLE ls_input-field_names.

INSERT ls_input INTO TABLE lt_input.

ls_pricom-ref_guid   = lv_head.
ls_pricom-ref_kind   = 'A'.
*ls_pricom-PRICING_TYPE  = 'B'.
*ls_pricom-pricing_procedure = 'ZZMTA'.
ls_pricom-pric_cond[] = ls_pridoc-pric_cond[].



MOVE-CORRESPONDING ls_cond TO ls_cond_chg.
ls_cond_chg-waers = 'EUR'.
ls_cond_chg-kbetr = lv_kbetr.
INSERT ls_cond_chg INTO TABLE ls_pricom-cond_change.

APPEND ls_pricom TO lt_pricom.

CALL FUNCTION 'CRM_ORDER_MAINTAIN'
  EXPORTING    it_pridoc         = lt_pricom  CHANGING
*    ct_orderadm_h     = lt_header    ct_input_fields   = lt_input  EXCEPTIONS    error_occurred    = 1    document_locked   = 2    no_change_allowed = 3    no_authority      = 4    OTHERS            = 5.

IF sy-subrc <> 0.  EXIT.
ENDIF.

CALL FUNCTION 'CRM_ORDER_SAVE'
  EXPORTING    it_objects_to_save         = lt_guid  IMPORTING    et_saved_objects           = lt_saved
*   ET_EXCEPTION               =
*   ET_OBJECTS_NOT_SAVED       =
 EXCEPTIONS   document_not_saved         = 1   OTHERS                     = 2.

IF sy-subrc EQ 0.
  COMMIT WORK AND WAIT.
ELSE.  ROLLBACK WORK.
ENDIF.

 

regards

Markus


Viewing all articles
Browse latest Browse all 1559

Trending Articles



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