This page explain usefull tips that can avoid hours of debug:
Use CIT_UPDATE instead of CIT_CHANGE.
Structure: CI_FKKBIXBIT4_IT_ARCH
Relevant tables:
Procedure
Reset table DFKKBIXBIT_DCH or run program RFKKBIXCITDC_CONVERT
FM: FKK_BIX_CIT_DC_CIT_CREATE
This enhacement is valid for the scenarios:
*{ DELETE
*\ CHECK ct_cit2 IS NOT INITIAL OR ct_cit4 IS NOT INITIAL.
*} DELETE
DATA: lv_cit_orig_sorted TYPE xfeld VALUE space,
lt_cit_orig TYPE fkkbixcit_all_tab.
DATA: lv_cit4_sorted TYPE xfeld VALUE space.
DATA ls_exc TYPE fkkbixcit_exc.
* for check later...
DATA: lv_num_records_in TYPE i,
lv_num_records_out TYPE i.
lv_num_records_in = lines( ct_cit_error ) +
lines( ct_cit4 ) +
lines( ct_cit2 ) +
lines( ct_cit1 ) +
lines( ct_cit0 ).
" collect all cits to be checked (2 & 4)...
DATA lt_cit_to_check TYPE fkkbixcit_all_tab.
*{ INSERT
APPEND LINES OF ct_cit0 TO lt_cit_to_check.
*} INSERT
APPEND LINES OF ct_cit2 TO lt_cit_to_check.
APPEND LINES OF ct_cit4 TO lt_cit_to_check.
...
WHEN gc_procrule-raw_exception OR gc_procrule-raw_reversed.
" move cit2 --> cit1
CLEAR ls_exc.
ls_exc-excreason = gt_tfk8168[ dcschema = <ls_cit_dc_item>-dcschema ]-dcexcreason.
IF lv_cit_orig_sorted = space.
lt_cit_orig = it_cit_orig. SORT lt_cit_orig BY citidtype citid citpackuuid.
lv_cit_orig_sorted = 'X'.
ENDIF.
*{ REPLACE
*\ PERFORM dc_process_rule_raw_exc_rev USING <ls_cit_dc_item>
*\ ls_exc
*\ lt_cit_orig
*\ CHANGING ct_cit2
*\ ct_cit1.
IF ct_cit2 IS NOT INITIAL.
PERFORM dc_process_rule_raw_exc_rev USING <ls_cit_dc_item>
ls_exc
lt_cit_orig
CHANGING ct_cit2
ct_cit1.
ENDIF.
IF ct_cit0 IS NOT INITIAL.
PERFORM dc_process_rule_raw_exc_rev USING <ls_cit_dc_item>
ls_exc
lt_cit_orig
CHANGING ct_cit0
ct_cit1.
ENDIF.
*} REPLACE
MESSAGE w021(fkkbix2) WITH lv_cit <ls_cit_dc_item>-dcschema cl_fkkbix_co=>gc_citstatus_1 INTO cl_fkkinv_log=>str. cl_fkkinv_log=>add_msg( x_probcl = '2').
ENDCASE.
SAP for unknown reasons always check the Business Partner during the Duplication Check. That is why this "enhancement"/"code fix" only works for the scenarios mentioned above.
A depper standard code fix is required to make it ignore the Business Partner.