Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 2161

Re: Replacing business partner

$
0
0

Hi Sar,

 

I am giving you a sample code. This should work for you.

 

 

  DATA: ls_logical_key          TYPE crmt_partner_logic_partner_key.

 

lv_ref_guid = guid of order.

lv_pfct =  '00000052'.

 

* Read order to fetch existing partners

  APPEND 'PARTNER' TO lt_req_obj.

  APPEND lv_ref_guid TO lt_hdr_guid.

  CALL FUNCTION 'CRM_ORDER_READ'

    EXPORTING

      it_header_guid       = lt_hdr_guid

      it_requested_objects = lt_req_obj

    IMPORTING

      et_partner           = lt_partner_wrk

    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.

  CHECK sy-subrc EQ 0.

 

  REFRESH lt_input_field_names.

  ls_input_field_names-fieldname = 'DISPLAY_TYPE'.

  INSERT ls_input_field_names INTO TABLE lt_input_field_names.

  ls_input_field_names-fieldname = 'KIND_OF_ENTRY'.

  INSERT ls_input_field_names INTO TABLE lt_input_field_names.

  ls_input_field_names-fieldname = 'NO_TYPE'.

  INSERT ls_input_field_names INTO TABLE lt_input_field_names.

  ls_input_field_names-fieldname = 'PARTNER_FCT'.

  INSERT ls_input_field_names INTO TABLE lt_input_field_names.

  ls_input_field_names-fieldname = 'PARTNER_NO'.

  INSERT ls_input_field_names INTO TABLE lt_input_field_names.

 

 

   CLEAR: ls_partner_com, ls_logical_key, ls_input_fields, ls_partner_wrk, lv_ref_guid.

    ls_input_fields-ref_kind    = lv_ref_guid.

 

    READ TABLE lt_partner_wrk INTO ls_partner_wrk

      WITH KEY partner_fct = lv_pfct

               ref_guid = lv_ref_guid

               ref_kind = 'A'.

    IF sy-subrc = 0.

      MOVE-CORRESPONDING ls_partner_wrk TO ls_logical_key.

      MOVE-CORRESPONDING ls_partner_wrk TO ls_partner_com.

    ELSE.

      ls_partner_com-ref_guid        = lv_ref_guid.

      ls_partner_com-display_type    = 'BP'.

      ls_partner_com-no_type         = 'BP'.

      ls_partner_com-partner_fct     = lv_pfct.

    ENDIF.

 

    ls_partner_com-kind_of_entry   = 'C'.

    ls_partner_com-partner_no      = new employee responsible.

    INSERT ls_partner_com INTO TABLE lt_partner_com.

 

    ls_input_fields-ref_guid     = lv_ref_guid.

    ls_input_fields-logical_key  = ls_logical_key.

    ls_input_fields-objectname   = 'PARTNER'.

    ls_input_fields-field_names  = lt_input_field_names.

    INSERT ls_input_fields INTO TABLE lt_input_fields.

 

 

    CALL FUNCTION 'CRM_ORDER_MAINTAIN'

      EXPORTING

        it_partner        = lt_partner_com

      CHANGING

        ct_input_fields   = lt_input_fields

      EXCEPTIONS

        error_occurred    = 1

        document_locked   = 2

        no_change_allowed = 3

        no_authority      = 4

        OTHERS            = 5.

    IF sy-subrc EQ 0.

 

 

CALL FUNCTION 'CRM_ORDER_SAVE'.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

 

    ENDIF.


Viewing all articles
Browse latest Browse all 2161

Trending Articles



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