Hello Everyone,
I'm facing a pecular issue with updating parters of an Ibase component through a custom program.
This is the requirement:
Under certain conditions, Partner A attached to the components of an Ibase have to be replaced by Partner B for the same partner function.
If the ibase have more than 1 component and if both have the same partner, then a data corruption results. Teh data corruption is a double entry in table IBPART where i end up getting 2 valid entries for a PARTNERSET record.
I'm using FM CRM_ICSS_CHANGE_COMPONENT to carry out the partner update.
Here are the steps i'm using:
1. I'm Looping at the Ibase
2. I fill in the Component structure I_COMP with the Ibase and the Instance 1.
3. I fill the partner structure I_PARTNER with the two partner records- Partner A (For Deletion by setting field UPDIND as 'D') and Partner B (For addition by setting Field UPDIND as 'I').
4. Then the loop continues for updating the second Component.with the same details.
After the Update, the following is happening at the table level.
1. Table IBPART gets 2 records which are valid for each Instance. (Ideally, there should be only 1 record for each component which then links to multiple partner functions in tale CRMD_PARTNER). the two records are just slightly different in theoir VALID FROM timestamp. But both records are valid in Current Time.
This is resulting in a short dump when i try to go to the partner section from IB52 transaction.
I think the main reason for this is that table IBPART is not locaking down when the first update is happening (deletion) and hence i end up with two records
Can any one help me out in this
Regards
Dharmendra