Hi Imran,
To delete you need to pass logical key in partner . but for add you no need to to pass logical key.
To delete you need to use logical key from partner structure this code
LOOP AT lt_partner_doc INTO ls_partner_doc WHERE partner_fct NE 'partnerfunctionvalue'.
CLEAR ls_logkey.
MOVE-CORRESPONDING ls_partner_doc TO ls_logkey.
MOVE-CORRESPONDING ls_logkey TO ls_partner_com.
ls_partner_com-ref_guid = iv_header_guid.
ls_partner_com-ref_kind = 'A'.
ls_input_field-logical_key = ls_logkey.
INSERT ls_input_field INTO TABLE lt_input_fields1.
APPEND ls_partner_com TO lt_partner_fct_del.
CLEAR: ls_partner_doc,ls_partner_com,ls_logkey.
ENDLOOP.
To modify you need to delete current partner line and then you need to add new partner and you no need to fill logical key from partner structure..
LOOP AT lt_partner INTO ls_partner WHERE partner_fct NE 'partnerfunctionvalue'.
CLEAR ls_partner_fct.
ls_partner_fct-ref_guid = iv_header_guid.
ls_partner_fct-ref_kind = 'A'.
ls_partner_fct-ref_partner_handle = '0001'.
ls_partner_fct-partner_fct = ls_partner-partner_fct.
ls_partner_fct-partner_no = ls_partner-partner_no.
ls_partner_fct-display_type = 'BP'.
ls_partner_fct-no_type = 'BP'.
ls_partner_fct-kind_of_entry = 'C'.
APPEND ls_partner_fct TO lt_partner_fct.
CLEAR: ls_partner,ls_partner_fct.
ENDLOOP.
Regards,
Deepika.