EBIFour.com > Debugging Clarify Errors > Nodes with Children

Should Only Be Used By Nodes That May Have Children

Clarify Scenario:

While attmpting to run an inbound x12 850 to database translation, that worked in the past, error'd.
This ruleset was converted from V1 to V2. It successfully worked in V1.

Clarify Issue:

The V1 map originally was mapping CTT element data to a JDE detail field F47012.SZQTYT

Server Errors:

Cleo Clarify Server Auditor Should only be used by nodes that may have children

ERROR [com.extol.ebi.runtime.reactor.ReactorTask] Should only be used by nodes that may have children.
Exception detail:
java.lang.UnsupportedOperationException: Should only be used by nodes that may have children.
at com.extol.ebi.reactor.lib.AbstractRecordTargetNode.getLast(AbstractRecordTargetNode.java:30)



Clarify Resolution:

After performing several tests we were able to conclude that the issue was with the CTT segment.

When I remove the following rules, the rulset worked:
[288] When CTT: Transaction Totals exists
-> [289] Move: [sourceNode=v_NumVarEDLN] -> [v_NumVarSZQTY]
-> [290] Move: [v_NumVarSZQTY] -> [SZQTYT]

It appears CTT Composite Rule does not contain any rules/elements from the CTT Segment. By disabling the rules, we were able to get the process to get past the Execute Transformation.

I re-enabled Rule 289, which was just a move from a Variable to a Variable. This also gave a successful rule of the Execute Transformation.

I noticed that the SZQTYT, was being populated from the F47012 Record, which is a Child Record of Record F47011. There is no hierarchy structure within the Ruleset, and Clraify was looking for the SZQTYT Field within the F47011 instead of the F47012.

I was able to correct this by deleting the CTT mapping portion in the ruleset.

The Execute Transformation process had run successfully without any problems or errors.


By: on