Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
VijayTalend
Contributor
Contributor

Hierarchical mapper - if then else condition maintaining loop

Hi,

I have to map EDI file to Text file. I am getting issue in mapping using Hierarchical mapper.

I am getting below error "Change loop Specification" -

 

The output map element: /root/Loop-NP17/NP34/Starttidspunkt_for_fapportperiode

is already looping using: in$/Transaction-SLSRPT/Loop-UNB/Loop-UNH/Loop-S005 (SimpleLoop)

which is not compatible with: in$/Transaction-SLSRPT/Loop-UNB/Loop-UNH/Loop-S005/DTM

Do you want to change the output map element looping?

 

Can anyone help me in this issue fix.

Labels (2)
15 Replies
VijayTalend
Contributor
Contributor
Author

I tried to SetVariable and GetVariable.

I am calling GetVariable and checking its Null or not for main node NP34. But it gave error -

2: Error - The transformation code (XQuery/XSLT) failed to compile. (201)
Exception: net.sf.saxon.trans.XPathException: Axis step attribute::attribute({http://www.w3.org/2001/XMLSchema-instance}nil, xs:anyAtomicType) cannot be used here: the context item is an atomic value
at net.sf.saxon.expr.AxisExpression.typeCheck(AxisExpression.java:85)
at net.sf.saxon.expr.ExpressionVisitor.typeCheck(ExpressionVisitor.java:181)
at net.sf.saxon.expr.FilterExpression.typeCheck(FilterExpression.java:181)
at net.sf.saxon.expr.ExpressionVisitor.typeCheck(ExpressionVisitor.java:181)
at net.sf.saxon.expr.FunctionCall.typeCheck(FunctionCall.java:118)
at net.sf.saxon.expr.ExpressionVisitor.typeCheck(ExpressionVisitor.java:181)
at net.sf.saxon.instruct.Choose.typeCheck(Choose.java:249)
at net.sf.saxon.expr.ExpressionVisitor.typeCheck(ExpressionVisitor.java:181)
at net.sf.saxon.instruct.ParentNodeConstructor.typeCheck(ParentNodeConstructor.java:165)
at net.sf.saxon.expr.ExpressionVisitor.typeCheck(ExpressionVisitor.java:181)
at net.sf.saxon.expr.ForExpression.typeCheck(ForExpression.java:119)
at net.sf.saxon.expr.ExpressionVisitor.typeCheck(ExpressionVisitor.java:181)
at net.sf.saxon.query.XQueryFunction.compile(XQueryFunction.java:365)
at net.sf.saxon.query.XQueryFunctionLibrary.fixupGlobalFunctions(XQueryFunctionLibrary.java:198)
at net.sf.saxon.query.QueryModule.fixupGlobalFunctions(QueryModule.java:1033)
at net.sf.saxon.instruct.Executable.fixupQueryModules(Executable.java:625)
at net.sf.saxon.query.QueryParser.makeXQueryExpression(QueryParser.java:107)
at net.sf.saxon.query.StaticQueryContext.compileQuery(StaticQueryContext.java:343)
at com.oaklandsw.transform.runtime.xquery.saxon9.Saxon9AdaptorImpl.compile(Saxon9AdaptorImpl.java:395)
at com.oaklandsw.transform.runtime.xquery.XQueryAdaptorImpl.compile(XQueryAdaptorImpl.java:66)
at com.oaklandsw.transform.runtime.xquery.XQueryAdaptorImpl.compile(XQueryAdaptorImpl.java:93)
at com.oaklandsw.transform.runtime.StandardMapRuntimeImpl.compile(StandardMapRuntimeImpl.java:162)
at com.oaklandsw.transform.runtime.StandardMapRuntimeImpl.runSubclass(StandardMapRuntimeImpl.java:232)
at com.oaklandsw.transform.runtime.MapRuntimeImpl$1.run(MapRuntimeImpl.java:405)
at com.oaklandsw.transform.runtime.RuntimeEngineImpl.runSansEditor(RuntimeEngineImpl.java:1147)
at com.oaklandsw.transform.runtime.MapRuntimeImpl.runMap(MapRuntimeImpl.java:396)
at com.oaklandsw.transform.runtime.MapOrStructRuntimeImpl.run(MapOrStructRuntimeImpl.java:805)
at com.oaklandsw.transform.editor.AbstractEditorContributor$6.run(AbstractEditorContributor.java:871)
at com.oaklandsw.gui.AppEditorImpl$22.run(AppEditorImpl.java:2417)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

Anonymous
Not applicable

The EMIT value needs to be true or false. Your errors are based on the fact that the aggregate calculation does not return a boolean. You will need to shift this expression around to produce true or false.

VijayTalend
Contributor
Contributor
Author

please suggest how to create variable and use it.

Anonymous
Not applicable

I'm afraid I can't tell you how to fix this using a variable. I would have to use an element of trial and error on this even if I had your data. My suggestion is to go back to try using the IF condition that you tried, but change the outputs to true or false. The errors you had trying that were because you were not outputting true or false.

VijayTalend
Contributor
Contributor
Author

Hi, Thanks again for your reply.

If I am using boolean function (isNull then IF) on main node NP 34, it gives below error -

 

Cannot paste 'IfThen' on 'Input Value'

Caused by: 'IfThen' has a type of 'Simple Category' which is not compatible with the expected type of 'None/Sequence'

 

Please advise.

Anonymous
Not applicable

Can you raise a support call on this issue? Problems with the TDM are very difficult to resolve remotely. Support will be able to share your screen and see your issue live. This should help them identify the issue and get it resolved.