Primary Capability almost certainly has a field default of 0 (Not Dedicated) as you've kind of suggested above. Mapping a NULL to it in the AI job may still trigger that default anyway (since it is applied on the Remedy side on submit - not sure thought so maybe test this out - if it stops the default value applying in the AI dataset, then you're OK, you'll get NULL and you can use the Defer If Null option as suggested).
Using the Precedence Rules to protect the BMC.ASSET values is OK, but kind of absolute, as in you will never get your AI dataset value into BMC.ASSET even if you did provide a non-zero and different value to that already in BMC.ASSET. If the AI job doesn't ever provide you with a valid Primary Capability, this will be acceptable.
It seems you are correct (not surprising!). Even though I'm mapping PrimaryCapability in my AI job as null, they definitely disregard the Null and make it a 0 by default. So looks like I will need to focus on the Precedence Rules to protect it.
I searched around on this topic on the forum, I'm surprised no one else has ever complained about this. Maybe they just gave up on arguing about "why default for PrimaryCapability is 0 and not null"... and went right to the Precedence Rules.
Thanks Carey !
Why don't you change the field default from Class Manager?
If you don't want a default of 0 then the best is to remove it and not to focus on AI or RE to fix the problem.
Awesome idea / suggestion. I didn't think about that! I will probably go that route.
Thanks all !