Quantcast
Channel: SCN : All Content - SAP Business Process Management
Viewing all articles
Browse latest Browse all 887

Problem with buildin sort function while mapping

$
0
0

Dear Experts,

 

I am tryng to use default sort function an an array list with the following type:

 

    <complexType name="sortingObjectType">

          <sequence>

            <element maxOccurs="unbounded" minOccurs="0" name="waitingTime">

              <complexType>

                <sequence>

                  <element name="appointmentID" type="string"/>

                  <element name="waitingTimeExam" type="int"/>

                  <element name="waitingTimeOp" type="int"/>

                </sequence>

              </complexType>

            </element>

          </sequence>

    </complexType>

 

In my process I have two data objects. DO_IN and DO_OUT are both from type sortingObjectType. My goal is sorting the input and delivering a sorted list as output. Example:

 

Input:

         <star:waitingTime>

            <star:appointmentID>zz</star:appointmentID>

            <star:waitingTimeExam>4</star:waitingTimeExam>

            <star:waitingTimeOp>4</star:waitingTimeOp>

         </star:waitingTime>

         <star:waitingTime>

            <star:appointmentID>aa</star:appointmentID>

            <star:waitingTimeExam>3</star:waitingTimeExam>

            <star:waitingTimeOp>3</star:waitingTimeOp>

         </star:waitingTime>

Output:

         <star:waitingTime>

            <star:appointmentID>aa</star:appointmentID>

            <star:waitingTimeExam>3</star:waitingTimeExam>

            <star:waitingTimeOp>3</star:waitingTimeOp>

         </star:waitingTime>

         <star:waitingTime>

            <star:appointmentID>zz</star:appointmentID>

            <star:waitingTimeExam>4</star:waitingTimeExam>

            <star:waitingTimeOp>4</star:waitingTimeOp>

         </star:waitingTime>

 

 

I am using following mapping script  between DO_IN and DO_OUT in my BPM process

 

sort(DO_IN/waitingTime,"appointmentID",true)

 

I could only find one documentation about the buildin functions but it didn't help me further. Would be really happy if someone could help me out. Worst case scenario I am planing to write an EJB function which sorts the array.

 

Thanks a lot,

Koray

 

I am getting following Mapping error.

 

Mapping failed

java.lang.NullPointerException: while trying to invoke the method java.lang.String.compareTo(java.lang.String) of an object returned from com.sap.mapping.lib.execution.implementation.function.builtin.generic.NodeContentReader.read(com.sap.mapping.lib.execution.api.data.SourceNode)

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

at GenericSort( StandardInvocation:invoker )

at ( DeepExpression )

at http://www.insel.org/StartSortingService/:waitingTime( TerminalPart:expression )

at example.org/insel_test_0/pr/pm/prc_sorting_service/Pool_0:DO_OUT( BroadPart:child )

at ( NarrowMapping )

at com.sap.mapping.lib.execution.implementation.rule.invocation.StandardInvocation.step(StandardInvocation.java:132)

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

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

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

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

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

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

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

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

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

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

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

at com.sap.mapping.lib.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:543)

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:78)

at com.sap.glx.core.kernel.execution.transition.Transition.commence(Transition.java:138)

at com.sap.glx.core.kernel.execution.LeaderWorkerPool$Follower.run(LeaderWorkerPool.java:135)

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:249)

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.NullPointerException: while trying to invoke the method java.lang.String.compareTo(java.lang.String) of an object returned from com.sap.mapping.lib.execution.implementation.function.builtin.generic.NodeContentReader.read(com.sap.mapping.lib.execution.api.data.SourceNode)

at com.sap.mapping.lib.execution.implementation.function.builtin.generic.DescendingSorter$1.compare(DescendingSorter.java:17)

at com.sap.mapping.lib.execution.implementation.function.builtin.generic.DescendingSorter$1.compare(DescendingSorter.java:15)

at java.util.Arrays.mergeSort(Arrays.java:1270)

at java.util.Arrays.sort(Arrays.java:1210)

at java.util.Collections.sort(Collections.java:159)

at com.sap.mapping.lib.execution.implementation.function.builtin.generic.AbstractSorter.execute(AbstractSorter.java:19)

at com.sap.mapping.lib.execution.implementation.function.builtin.generic.GenericSortFunction.invokeNative(GenericSortFunction.java:34)

at com.sap.mapping.lib.execution.implementation.rule.invocation.StandardInvocation.step(StandardInvocation.java:129)

... 31 more


Viewing all articles
Browse latest Browse all 887

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>