Skip to Content
0
Feb 10, 2014 at 12:28 PM

Unable to Add Partner(ship to party)

97 Views

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