Second attempt was to put all the logic into the process. I took off all the rules on the ExtObj and I have three processes.
Process1 finds all the ExtObjs to be updated and calls Process2.
Process2 takes an ExtObj as input and finds a IntObj with the same id as the ExtObj. It then calls Process3.
Process3 takes an ExtObj and IntObj as inputs and copies over the attributes from the ExtObj to the IntObj if the override flag is no:
If IntObj.NameOR = 'No' then IntObj.Name = ExtObj.name
This works fine for the basic case when the id's match up. My problem is that I cannot figure out how to modify the processes to allow me to handle the case where I need to create a new IntObj or the case where the id's do not match up, but the names are the same so I want to merge the Int and Ext objects.
I could do this if I could somehow have an if-then-else in process2 (e.g. if id's match do X, else if there the name matches do X, else create a new IntObj).
I suspect I am approaching this all wrong from the awareim best practices. What is the best way to solve this problem?