cancel
Showing results for 
Search instead for 
Did you mean: 

Context in Mapping .... why is SUPPRESS kicking data away?

Former Member
0 Kudos

Hello,

I have a mapping problem.

There is a node with a subnode. In the subnode there are 2 elements.

If the subnode exists I have to use this elements (concat) for mapping to a target element, if not I have to set current date to target element.

So far so nice!

I added

subnode <exists> <split by value> <if else> -> target.

The test looks nice but if one subnode is missing, the resultlist in the queue is moved up,

(e.g. subnode 10 is missing, so queue moves result from subnode 11 to 10 and continues with that). Result: Last elements for target get a SUPPRESS in the queue and are not filled (target element is not generated!)

This means looks like using the else condition (current date) fails!

**added** The SUPPRESS in the queue in the if/else function semms to come from the result in the exits function. here the missing subnode (result=false) is handled with a SUPPRESS on the IN side of the queue.***

How can I get the required result (with standard functions)?

Best regards

Dirk

Message was edited by: Dirk Meinhard

Accepted Solutions (1)

Accepted Solutions (1)

claus_wallacher
Active Participant
0 Kudos

Hi Dirk,

have a look at this blog <a href="/people/claus.wallacher/blog/2006/04/17/replication-of-nodes-using-the-graphical-mapping-tool:///people/claus.wallacher/blog/2006/04/17/replication-of-nodes-using-the-graphical-mapping-tool.

In solution 3 under 3. Mapping of <ProductQuantity> you find a solution for a very similar problem. I think the trick is to keep the SUPPRESS value in your result list.

Regards,

Claus

Former Member
0 Kudos

Hi Claus,

tests are going on. Now I switched to smoething different:

I added a check with if/else which says that if the subnode exists a constant is 1 else 2. The result is input to a <greater> function.

Till here it is nice. My queue shows 32 results , as much as my test file contains subnodes.

The problem is the queue providing the elements from the source.

It looks like this:

In1 In2 Out

1 true 1

2 true 2

3 false date

4 true 4

5 true 5

true SUPPRESS

In1 shows all subnodes which exists (no entry for subnodes not existing -> problem). In2 shows the result from the if/else func. Out is the result in the target.

As you can see subnode result 3 (In1) is linked to the third node (In2) whichs subnode does not exist (false-> correctly identified).

If I could generate a placeholder in line 3 for the missing subnode for In1 everything would be fine. Then I would have 6 results as required.

I will have a look at your link and hope to find what I need!

regards

Dirk

Message was edited by: Dirk Meinhard

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

In the subnode try removing split by value

Regards

Vijaya

Former Member
0 Kudos

Hi Vijaya,

that was my situation before.

Because of the source file structure without split by value the system then uses the first element in subnode from target for all subnodes of same level in the higher leveled node. For subnode is missing then sitation is correct using else condition.

But for next subnode with exists = true situation repeats with using only first element of next subnode as target element for all subnodes following as the OUT Value in Queue (but In value is correct).

With the splitByValue Function it looks better because correct elements from target are provided in OUT of queue (except this raising up when subnode is missing.

So I think SplitBy Value is not that bad!

regards

Dirk