Hi,
We have process step which invokes a BRM flow ruleset service which returns a number of fields in the as defined by a ProcessUsers xsd. We've just added a new field 'TrialsLead' to the ProcessUsers structure and related action on the decision table. The Modified service is deployed and executes fine in WS Navigator.
We deleted the WSDL in the BPM and reimported it and re-mapped it. It now shows the new field in the BPM design tools. We correctly initialise the field and map it from the Response strucuture for the BRM FlowRuleset service to a field in the Process Context. We've rebuilt everything and redeployed.
However at runtime, a completely new instance of the process is failing at this step with a Mapping Error.
From the Debug logs for sap.com.glx.mapping, you can see that the new field is not available in the Mapping Source.
It seems that the old version of the ProcessUsers schema is what the Container is seeing, and not the updated version. Does anyone know how to resolve this?
java.lang.IllegalStateException: Container '$http://namespace.com/ProcessUsers:TrialsLead' unavailable
com.sap.glx.mapping.execution.api.exception.TExecutionException
at http://namespace.com/ProcessUsers:TrialsLead( StandardChild )
at ( DeepExpression )
at namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:siteTrialsLead( TerminalPart:expression )
at ( BroadMapping )
at com.sap.glx.mapping.execution.implementation.rule.child.StandardChild.step(StandardChild.java:76)
at com.sap.glx.mapping.execution.implementation.rule.expression.DeepExpression$Resolver.resolve(DeepExpression.java:46)
at com.sap.glx.mapping.execution.implementation.rule.expression.DeepExpression$Resolver.resolve(DeepExpression.java:49)
at com.sap.glx.mapping.execution.implementation.rule.expression.DeepExpression$Resolver.resolve(DeepExpression.java:49)
at com.sap.glx.mapping.execution.implementation.rule.expression.DeepExpression$Resolver.<init>(DeepExpression.java:28)
at com.sap.glx.mapping.execution.implementation.rule.expression.DeepExpression.internalExpress(DeepExpression.java:78)
at com.sap.glx.mapping.execution.implementation.rule.expression.AbstractExpression.express(AbstractExpression.java:45)
at com.sap.glx.mapping.execution.implementation.rule.part.AbstractPart.processExpression(AbstractPart.java:131)
at com.sap.glx.mapping.execution.implementation.rule.part.AbstractPart.partake(AbstractPart.java:92)
at com.sap.glx.mapping.execution.implementation.rule.mapping.BroadMapping.internalMap(BroadMapping.java:37)
at com.sap.glx.mapping.execution.implementation.rule.mapping.AbstractMapping.map(AbstractMapping.java:44)
at com.sap.glx.mapping.execution.implementation.Runner.transform(Runner.java:66)
at com.sap.glx.mapping.execution.implementation.Runner.transform(Runner.java:43)
at com.sap.glx.core.internaladapter.Transformer$TransformerTemplateAccessor$MapperTemplate$ImplementedInvocationHandler.map(Transformer.java:3089)
at com.sap.glx.core.internaladapter.Transformer$TransformerTemplateAccessor$MapperTemplate$ImplementedInvocationHandler.invoke(Transformer.java:3070)
at com.sap.glx.core.internaladapter.Transformer$TransformerInvocationHandler.invoke(Transformer.java:3356)
at com.sap.glx.core.dock.impl.DockObjectImpl.invokeMethod(DockObjectImpl.java:545)
at com.sap.glx.core.kernel.trigger.config.Script$MethodInvocation.execute(Script.java:248)
at com.sap.glx.core.kernel.trigger.config.Script.execute(Script.java:798)
at com.sap.glx.core.kernel.execution.transition.ScriptTransition.execute(ScriptTransition.java:67)
at com.sap.glx.core.kernel.execution.transition.Transition.commence(Transition.java:136)
at com.sap.glx.core.kernel.execution.LeaderWorkerPool$Follower.run(LeaderWorkerPool.java:122)
at com.sap.glx.core.resource.impl.common.WorkWrapper.run(WorkWrapper.java:58)
at com.sap.glx.core.resource.impl.j2ee.J2EEResourceImpl$Sessionizer.run(J2EEResourceImpl.java:264)
at com.sap.glx.core.resource.impl.j2ee.ServiceUserManager$ServiceUserImpersonator$1.run(ServiceUserManager.java:152)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:337)
at com.sap.glx.core.resource.impl.j2ee.ServiceUserManager$ServiceUserImpersonator.run(ServiceUserManager.java:149)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:185)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:302)
Caused by: java.lang.IllegalStateException: Container '$http://namespace.com/ProcessUsers:TrialsLead' unavailable
at com.sap.glx.mapping.execution.implementation.rule.child.StandardChild.step(StandardChild.java:72)
... 31 more
-------------------------------- [Start Mapping Trace] Mapping execution --------------------------------
-------------------------------- Mapping definition --------------------------------
<BroadMapping id="1">
<TerminalPart id="2">
<DeepExpression id="3">
<StandardChild id="4">
<Identifier id="5">
</Identifier>
</StandardChild>
<StandardChild id="6">
<Identifier id="7">
http://namespace.com/ProcessUsers:ProcessUsers
</Identifier>
</StandardChild>
<StandardChild id="8">
<Identifier id="9">
http://namespace.com/ProcessUsers:MRPPlanner
</Identifier>
</StandardChild>
</DeepExpression>
<StandardAssignment id="10">
RelayTransformer, SetIntegrator, VoidExpander
</StandardAssignment>
<Identifier id="11">
namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:mrpPlanner
</Identifier>
</TerminalPart>
<TerminalPart id="12">
<DeepExpression id="13">
<StandardChild id="14">
<Identifier id="15">
</Identifier>
</StandardChild>
<StandardChild id="16">
<Identifier id="17">
http://namespace.com/ProcessUsers:ProcessUsers
</Identifier>
</StandardChild>
<StandardChild id="18">
<Identifier id="19">
http://namespace.com/ProcessUsers:StatusText
</Identifier>
</StandardChild>
</DeepExpression>
<StandardAssignment id="20">
RelayTransformer, SetIntegrator, VoidExpander
</StandardAssignment>
<Identifier id="21">
namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:ruleStatus
</Identifier>
</TerminalPart>
<BroadPart id="22">
<FlatExpression id="23">
.
</FlatExpression>
<StandardAssignment id="24">
BlockTransformer, SubmergeIntegrator, VoidExpander
</StandardAssignment>
<Identifier id="25">
namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:userList
</Identifier>
<TerminalPart id="26">
<ShallowExpression id="27">
<StandardChild id="28">
<Identifier id="29">
namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:requesterId
</Identifier>
</StandardChild>
</ShallowExpression>
<StandardAssignment id="30">
RelayTransformer, SetIntegrator, VoidExpander
</StandardAssignment>
<Identifier id="31">
http://www.namespace.com/UserList:UserId
</Identifier>
</TerminalPart>
<TerminalPart id="32">
<ShallowExpression id="33">
<EmptyLiteral id="34">
""
</EmptyLiteral>
</ShallowExpression>
<StandardAssignment id="35">
BlockTransformer, TrimIntegrator, VoidExpander
</StandardAssignment>
<Identifier id="36">
http://www.namespace.com/UserList:UserId
</Identifier>
</TerminalPart>
</BroadPart>
<TerminalPart id="37">
<DeepExpression id="38">
<StandardChild id="39">
<Identifier id="40">
</Identifier>
</StandardChild>
<StandardChild id="41">
<Identifier id="42">
http://namespace.com/ProcessUsers:ProcessUsers
</Identifier>
</StandardChild>
<StandardChild id="43">
<Identifier id="44">
http://namespace.com/ProcessUsers:TrialsLead
</Identifier>
</StandardChild>
</DeepExpression>
<StandardAssignment id="45">
RelayTransformer, SetIntegrator, VoidExpander
</StandardAssignment>
<Identifier id="46">
namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:siteTrialsLead
</Identifier>
</TerminalPart>
<TerminalPart id="47">
<DeepExpression id="48">
<StandardChild id="49">
<Identifier id="50">
</Identifier>
</StandardChild>
<StandardChild id="51">
<Identifier id="52">
http://namespace.com/ProcessUsers:ProcessUsers
</Identifier>
</StandardChild>
<StandardChild id="53">
<Identifier id="54">
http://namespace.com/ProcessUsers:ReasonText
</Identifier>
</StandardChild>
</DeepExpression>
<StandardAssignment id="55">
RelayTransformer, SetIntegrator, VoidExpander
</StandardAssignment>
<Identifier id="56">
namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:ruleText
</Identifier>
</TerminalPart>
<TerminalPart id="57">
<DeepExpression id="58">
<StandardChild id="59">
<Identifier id="60">
</Identifier>
</StandardChild>
<StandardChild id="61">
<Identifier id="62">
http://namespace.com/ProcessUsers:ProcessUsers
</Identifier>
</StandardChild>
<StandardChild id="63">
<Identifier id="64">
http://namespace.com/ProcessUsers:SiteArtworkLead
</Identifier>
</StandardChild>
</DeepExpression>
<StandardAssignment id="65">
RelayTransformer, SetIntegrator, VoidExpander
</StandardAssignment>
<Identifier id="66">
namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:siteArtworkLead
</Identifier>
</TerminalPart>
</BroadMapping>
-------------------------------- Mapping source --------------------------------
namespace.com/plm/pr/changecontrol/Change_Control_Process/Change_Control:requesterId
http://namespace.com/ProcessUsers:ProcessUsers
http://namespace.com/ProcessUsers:ProcessStage
http://namespace.com/ProcessUsers:Site
http://namespace.com/ProcessUsers:Customer
http://namespace.com/ProcessUsers:Brand
http://namespace.com/ProcessUsers:Classification
http://namespace.com/ProcessUsers:SiteArtworkLead
http://namespace.com/ProcessUsers:SiteApprover
http://namespace.com/ProcessUsers:PortfolioApprover
http://namespace.com/ProcessUsers:CommercialApprover
http://namespace.com/ProcessUsers:SiteFinance
http://namespace.com/ProcessUsers:SiteTechnical
http://namespace.com/ProcessUsers:SitePackaging
http://namespace.com/ProcessUsers:SiteFinishedGoods
http://namespace.com/ProcessUsers:BillOfMaterialsLead
http://namespace.com/ProcessUsers:CheeseStockPlanner
http://namespace.com/ProcessUsers:ChangeControl
http://namespace.com/ProcessUsers:ArtworkLead
http://namespace.com/ProcessUsers:CommercialOps
http://namespace.com/ProcessUsers:MRPPlanner
http://namespace.com/ProcessUsers:StatusText
http://namespace.com/ProcessUsers:ReasonText
-------------------------------- [End of Mapping Trace] --------------------------------