cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping Error in BPM on CE 7.3 SP05

paul_abrahamson_sap
Active Participant
0 Kudos

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-Proce...

        </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-Proce...

        </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-Proce...

        </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-Proce...

        </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-Proce...

        </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-Proce...

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Have you tried simply restarting your application server?  They are notorius for caching web service definitions and often you will see problems like this where the design time is up to date, WS Navigator is up to date but any runtime calls to the service is incorrect.

Try a restart and see if that helps - if not come back for more help.

Thanks,

Gareth.

paul_abrahamson_sap
Active Participant
0 Kudos

Thanks Gareth. We had been led to believe that the server had been restarted yesterday when these errors first started coming up. Another restart now has resolved the issue. Do you know of a way to simply restart the BPM runtime rather than a full application server restart, and do you think that would work?

Former Member
0 Kudos

Hi Paul,

A few years ago on a plain NW 7.0.1 Java system I spent a lot of time with my basis colleague investigating stopping and re-starting various services on the server to try and clear the web service cache - all to no avail.  We just accepted that if you change the service contract you need to restart the system to clear the cache.

It used to be a problem with Web Dynpro calling RFC's in the backend system via JCo but SAP delivered a system application to clear the cache for that - I'm hoping they will eventually do the same for the web service layer too but nothing (that I am aware of) exists yet.  It's a massive pain for me, especially when I have to explain to a customer's basis team that I'll need them to restart the server every five minutes whilst I'm developing!

Thanks,

Gareth.

joao_sousa2
Active Contributor
0 Kudos

I share your pain. This is dreadful, and I'm insisting with SAP that it is a service support issue since it's unacceptable that a server restart is required so often.

junwu
Active Contributor
0 Kudos

i don't believe it is cache related.

rfc and ws model has the notorious cache issue.

but never heard the bpm ws call has the issue.

Former Member
0 Kudos

It's not the BPM runtime, it is the web service layer that is caching. I experience it all the time when changing web service definitions.

Gareth.

Answers (0)