Hi Frds,
I am trying to add partner( Ship to party) at run time. Below is the code. At the end of FM Sy-subrc is 0. But when i check UI partner is adding.
Code is in CRM_ORDERADM_H_BADI.
CALL FUNCTION 'CRM_PARTNER_READ_OW'
EXPORTING
iv_ref_guid = IS_ORDERADM_H_WRK-GUID
iv_ref_kind = 'A'
IMPORTING
et_partner_wrk = lt_partner .
READ TABLE lt_partner INTO lS_partner WITH KEY REF_PARTNER_FCT = '00000001'. "Reading sold to party
if sy-subrc = 0.
data: lt_partner_com TYPE crmt_partner_comt,
ls_partner_com TYPE crmt_partner_com,
lt_input_field_names TYPE crmt_input_field_names_tab,
ls_field_names TYPE crmt_input_field_names,
lt_input_fields TYPE crmt_input_field_tab,
ls_input_fields TYPE crmt_input_field.
MOVE-CORRESPONDING ls_partner TO ls_partner_com.
ls_partner_com-partner_fct = '00000002'. "ship to party
ls_partner_com-ref_partner_fct = '00000002'.
ls_partner_com-ref_partner_handle = '0001'.
ls_partner_com-ref_display_type = space.
ls_partner_com-kind_of_entry = 'B'.
ls_partner_com-partner_no = ls_partner-partner_no.
ls_partner_com-partner_guid = IS_ORDERADM_H_WRK-GUID.
ls_partner_com-no_type = 'BP'.
ls_partner_com-display_type = 'BP'.
INSERT ls_partner_com INTO TABLE lt_partner_com.
ls_field_names-fieldname = 'PARTNER_FCT'.
INSERT ls_field_names INTO TABLE lt_input_field_names.
ls_field_names-fieldname = 'DISPLAY_TYPE'.
INSERT ls_field_names INTO TABLE lt_input_field_names.
ls_field_names-fieldname = 'NO_TYPE'.
INSERT ls_field_names INTO TABLE lt_input_field_names.
ls_field_names-fieldname = 'KIND_OF_ENTRY'.
INSERT ls_field_names INTO TABLE lt_input_field_names.
ls_field_names-fieldname = 'PARTNER_NO'.
INSERT ls_field_names INTO TABLE lt_input_field_names.
ls_field_names-fieldname = 'ADDR_NR'.
INSERT ls_field_names INTO TABLE lt_input_field_names.
ls_input_fields-field_names = lt_input_field_names.
ls_input_fields-ref_guid = IS_ORDERADM_H_WRK-GUID.
ls_input_fields-ref_kind = 'A'.
ls_input_fields-objectname = 'PARTNER'.
CONCATENATE '000000000002' ls_partner-partner_no ' BPBP'
INTO ls_input_fields-logical_key.
INSERT ls_input_fields INTO TABLE lt_input_fields.
CALL FUNCTION 'CRM_PARTNER_MAINTAIN_MULTI_OW'
EXPORTING
it_partner_com = lt_partner_com
iv_ref_guid = IS_ORDERADM_H_WRK-GUID
iv_ref_kind = 'A'
IMPORTING
et_created_partnerset_guid = lt_return
CHANGING
ct_input_fields = lt_input_fields
EXCEPTIONS
error_occurred = 1
OTHERS = 2.
endif.
Please take a look and suggest me.
Thanks
Imran