Expand my Community achievements bar.

SOLVED

Link a table with two different keys

Avatar

Level 4

Hello,

 

I've a table that i need to link with Recipient-table. The table is already linked with the SSN for B2C customers and I need to include B2B too and link them to the Recipient table. I've tried several solutions but nothing seems to work.
Here is the current link that works for B2C customers:


<element integrity="neutral" label="Recipient" name="recipientLink" pkgStatus="never"
revCardinality="single" revLink="XXXCampaignLink" target="nms:recipient"
type="link">
<join xpath-dst="@SSN" xpath-src="@SSN"/>
</element>

I changed it to this:

<element integrity="neutral" label="Recipient" name="recipientLink" pkgStatus="never"
revCardinality="single" revLink="XXXCampaignLink" target="nms:recipient"
type="link">
<join xpath-dst="@SSN" xpath-src="@SSN"/>

<join xpath-dst="@SSNb2b" xpath-src="@SSNb2b"/>
</element>

 

But it does not work. I have both attributes in the recipient table of course and they are named the same.

Any clues?

1 Accepted Solution

Avatar

Correct answer by
Level 4

Hello Amine,

 

Yes exactly. either is the first one populated with data or the other one is. Anyway I solved it creating a third attribute and using that instead.

Please share with me your solution anyway since I'm interested to learn more about it.

View solution in original post

6 Replies

Avatar

Community Advisor

Hello @A_B_SE ,

If I understand correctly, you have a table with B2C records and other B2B records. And your need is to also link the B2B records to the recipient table. If that's the case, you should create a separate second link for B2B like this:

 

<!-- this is the old link, don't modify it -->
<element integrity="neutral" label="Recipient" name="recipientLink" pkgStatus="never" revCardinality="single" revLink="XXXCampaignLink" target="nms:recipient" type="link">
  <join xpath-dst="@SSN" xpath-src="@SSN" />
</element>

<!-- this is the new link -->
<element integrity="neutral" label="Recipient_B2B" name="recipientLink_B2B" pkgStatus="never" revCardinality="single" revLink="XXXCampaignLink_B2B" target="nms:recipient" type="link">
  <join xpath-dst="@SSNb2b" xpath-src="@SSNb2b" />
</element>

 

After that, in the campaigns and workflows, you need to be careful to choose the right link based on the type of your campaign (B2C or B2B).

 

Br,

 

Avatar

Level 4

I see, do you know if it is possible to include both links in the same element? It would be best for us. 

Avatar

Administrator

Hi @Amine_Abedour
Could you please confirm @A_B_SE's further query?
Thanks!



Sukrity Wadhwa

Avatar

Community Advisor

Hello @A_B_SE,

I'll need more info to see if it is possible to include both in the same link.
Should the fields SSNb2b and SSN (whether in the recipient schema or the SSN schema) be filled out exclusively?

In other words, if one of the fields is filled in for a row, does that mean the other field must necessarily remain empty?

If that's the case, there is a way to find a solution.

Br,

Avatar

Correct answer by
Level 4

Hello Amine,

 

Yes exactly. either is the first one populated with data or the other one is. Anyway I solved it creating a third attribute and using that instead.

Please share with me your solution anyway since I'm interested to learn more about it.

Avatar

Community Advisor

Hello @A_B_SE ,

 

My solution was to create a calculated attribute in both schemas. This attribute uses an expression like Iif(SSN = 0, SSNb2b, SSN) or coalesce(SSN, SSNb2b) (if both SSN and SSNb2b can be null). And then use this attribute to link the two schemas.

Br,