Incompatible object keys.
I am trying to create an event on the status change of an Appropriation Request.
I get the following error message
"Status object and business object keys incompatible"
I am using status object IQ0 and business object BUS2204.
How do I go about creating this starting event for my workflow?
Am I using the correct object types?
(I know BUS2104 used to be used for Appropriation request and it had the "to be approved" event that I need, but I see that BUS2104 has been set to Obsolete.)
Mike Pokraka replied
Yes, you did say you were already using BUS2204... I only paid attention to the BUS2104 bit at the end. My apologies, I must really learn to read the whole message properly
What you have done is absolutely correct, however the keys are different between the two object types. I would suggest you query this one with OSS - either they shouldn't make something obsolete which developers are still forced to use, or the SM object should be updated (or a new one created). I vaguely remember CRM has a few 'extras' in status management to deal with this type of stuff.
A temporary and very unofficial workaround if you really need to get on with things while OSS get back to you:
Check the contents of the Appropriation Request table - it contains the two id fields used by the two objects. IF they have the same contents, go to the BSVX input screen, enter IQ0/BUS2204 debug with /h, hit save and bypass the check - not too hard to debug, it pokes around the object definitions and data dictionary and compares the data types I think, just change sy-subrc back to 0. It will save and work as long as both ID fields contain the same data. Shout if you get stuck, I've done it before (as if you couldn't tell, but with different objects) and can find the exact spot again quite quickly if you need.
If the field contents don't match, you may have to stick with BUS2104... perhaps create a subtpye and have the 2204 obj as an attribute and vice versa. But I would defo wait to see what OSS have to say.
Hope that helps,