Skip to Content
1
Mar 22, 2012 at 11:42 AM

Mapping Error in BPM on CE 7.3 SP05

45 Views

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">

http://www.namespace.com:Response-namespace.com-plm-br-users-approval-Process-User-FlowRuleset-Process-User-FlowRuleset

</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">

http://www.namespace.com:Response-namespace.com-plm-br-users-approval-Process-User-FlowRuleset-Process-User-FlowRuleset

</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">

http://www.namespace.com:Response-namespace.com-plm-br-users-approval-Process-User-FlowRuleset-Process-User-FlowRuleset

</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">

http://www.namespace.com:Response-namespace.com-plm-br-users-approval-Process-User-FlowRuleset-Process-User-FlowRuleset

</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">

http://www.namespace.com:Response-namespace.com-plm-br-users-approval-Process-User-FlowRuleset-Process-User-FlowRuleset

</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://www.namespace.com:Response-namespace.com-plm-br-users-approval-Process-User-FlowRuleset-Process-User-FlowRuleset

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] --------------------------------