BACKGROUND:
Innovation Studio applications, DWPC for example, can use a Process to run an Action Type of Update Record to update an existing record. That process action requires using Record ID (this is the AppGUID field 379) to find the record.
The IS code is calling AR code EntryServiceImpl.setEntryByRecordID(). This is working find for almost every AR type of entry. However, there are problems with Atrium CMDB classes (BMC.CORE:BMC_ComputerSystem for example).
The reason CMDB classes have trouble relates to the special flags that AR Server implemented to help CMDB manage some of its unusual workflow.
The workflow that has trouble is the workflow such as filter CMDB:Instance:InvokeCMDBEngine01 which calls a special run process action Application-Invoke-External-Filter bmc.cmdb.cmdbEngine PHASE=1 CLIENTTYPE=0
When cmdbEngine processes this call it checks these flags in the execution context.
isExecutingPhaseThree
isWorkflowApiBlocked
What was found is the workflow execution context is initially set up properly with both of these flags set to false. The method setEntryByRecordID() then proceeds to call populateEntryIdByRecordId() and that returns the entryID and then calls setEntry(). The trouble here is that when populateEntryIdByRecordId() runs getEntryByRecordID() it runs GET filters (phases 1 through 3). The two special flags for CMDB get set to true. When SetEntry() starts running phase 1 filters, the cmdbEngine fails the filters like the one noted. This is because the flag is set to indicate phase 3 already started.