cancel
Showing results for 
Search instead for 
Did you mean: 

Existing process instances fail due to changes in sub-process interface

Former Member
0 Kudos

Hi there,

In my bpm I'm calling a sub-process.

I've added the new parameter "CallSysID" to the Service interface of that sub-process.

For new process instances everything's working fine, but for existing processes I get the following error:


java.lang.IllegalStateException: Container '$CallSysID' unavailable

com.sap.mapping.lib.execution.api.exception.TExecutionException

at SnowCallSysID( StandardChild )

at ( DeepExpression )

at http://www.blabla.org/Approval:CallSysID( TerminalPart:expression )

at blabla.org/approvalproduct/pr/pm/Insert_Status/InsertStatus:DataObject( BroadPart:child )

at ( NarrowMapping )

com.sap.mapping.lib.execution.implementation.rule.child.StandardChild.step(StandardChild.java:76)

com.sap.mapping.lib.execution.implementation.rule.expression.DeepExpression$Resolver.resolve(DeepExpression.java:46)

com.sap.mapping.lib.execution.implementation.rule.expression.DeepExpression$Resolver.resolve(DeepExpression.java:49)

com.sap.mapping.lib.execution.implementation.rule.expression.DeepExpression$Resolver.<init>(DeepExpression.java:28)

com.sap.mapping.lib.execution.implementation.rule.expression.DeepExpression.internalExpress(DeepExpression.java:78)

com.sap.mapping.lib.execution.implementation.rule.expression.AbstractExpression.express(AbstractExpression.java:45)

com.sap.mapping.lib.execution.implementation.rule.part.AbstractPart.processExpression(AbstractPart.java:131)

com.sap.mapping.lib.execution.implementation.rule.part.AbstractPart.partake(AbstractPart.java:92)

com.sap.mapping.lib.execution.implementation.rule.part.BroadPart.processChildren(BroadPart.java:43)

com.sap.mapping.lib.execution.implementation.rule.part.AbstractPart.partake(AbstractPart.java:96)

com.sap.mapping.lib.execution.implementation.rule.mapping.NarrowMapping.internalMap(NarrowMapping.java:40)

com.sap.mapping.lib.execution.implementation.rule.mapping.AbstractMapping.map(AbstractMapping.java:44)

com.sap.mapping.lib.execution.implementation.Runner.transform(Runner.java:66)

com.sap.mapping.lib.execution.implementation.Runner.transform(Runner.java:43)

com.sap.glx.core.internaladapter.Transformer$TransformerTemplateAccessor$MapperTemplate$MapperInvocationHandler.map(Transformer.java:3332)

... (23 more)

In NWA it is not possible to recover the old requests which turn into status "Failed" (e. g. by changing context data).

My question:

How can I handle such service interface changes without "losing" all existing process instances?

Shall I just copy the old sub-process into a new one?

Best regards,

Thorsten.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I just managed now the way I assumed, meaning that I copied my sub-process "InsertStatus" to a new one called "InsertStatus2" and used this one in the BPM.

Then the old interface remains the same and can be called by the old version of the BPM.

But it was again a pain in the...

Answers (1)

Answers (1)

junwu
Active Contributor
0 Kudos

revert your change, is the only way, I think