Expand my Community achievements bar.

SOLVED

Issue in viewing data

Avatar

Level 4

Hi All,

I have created a 1:n link  between two tables recipient and contract. When we do a query choosing recipient as targeting dimension and contract as filtering dimension it gives me 0 results but data corresponding to recipient id are present in contract table.

Below is the code which I have added in contract table for creating one to many link between recipient and contract

<element label="Recipients" name="recipient" revLink="contract" target="nms:recipient"

             type="link">

      <join xpath-dst="@gid" xpath-src="@gid"/>

  </element>

Kindly let me know if the linking is done correctly

Thanks,

Maheswari

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi maheswarik23685204​,

Seems you are on track. As per your comment, in Data tab you can see 32 records satisfying the criteria mentioned in your changed link(ABX Recipients) between Recipient and Contract schema.

Please have a look if you are selecting the correct link in your query Or you can try  generic query editor output.

Regards,

Deb

View solution in original post

12 Replies

Avatar

Community Advisor

Hi Maheswari,

Please try to check the following.

  1. Both the schemas are having attribute "gid".
  2. Data available in both the schemas satisfying the relationship.
  3. Instead of query activity try to check how Recipient data is getting populated in "Data" tab of "Contract" schema.

Regards,

Deb

Avatar

Level 4

Hi Deb.

1.Both the schema are having attribute "gid"

2. I am not sure how to verify relationship but more than one record available for same gid in contract schema and only one record available for that gid in recipient schema

3.When I choose gid from recipient link through configure list of contract schema  I couldn't see any data in contract schema data tab.It gives me 0. Similarly when I choose gid from contract link of recipient schema it shows all recipient data but the value of gid is 0 for all records  in recipient data tab

Could you please let me know what might be the issue

Thanks,

Maheswari

Avatar

Community Advisor

Hi Maheswari,

Please can you try the following in your schema?

<element integrity="normal" label="Recipients" name="recipient" noDbIndex="true" revLink="contract" revIntegrity="normal" target="nms:recipient" type="link">

      <join xpath-dst="@gid" xpath-src="@gid"/>

</element>

Regards,

Deb

Avatar

Level 4

Hi Deb,

I tried with above code but still same issue.

Thanks,

Maheswari

Avatar

Community Advisor

Hi Maheswari,

Are you performing "Update Database Structure" post the change?

Regards,

Deb

Avatar

Level 4

Hi Deb,

After adding the code I have selected  update database structure option but it doesn't show any option to update contract schema (checkbox disabled by default)

Thanks,

Maheswari

Avatar

Community Advisor

Hi Maheswari,

I tried the exact same code and it is working for me.

Can you share a pseudo code version of your actual code so that we can figure out what is the exact issue?

Regards,

Deb

Avatar

Level 4

Hi Deb,

We found the issue but we didn''t know how to rectify it. Let me explain the scenario

Already a link exist between nms:recipient and abc:contract using cId (This is for global market abc is global namespace )

Below code is added in abc:contract

<element label="Recipient" name="recipient" target="nms:recipient" type="link">

<join xpath-dst="@cId" xpath-src="@cId"/>

</element>

  Our requirement is to create same 1:n link between nms:recipient and abx:contract  but with different fields gId. Here gId is a field in abx:contract  which is an extension schema of abc:contract

Issue:

We didn't notice that already link is existing in global schema with same name , when we saw the preview of abc:contract schema

it shows like below

<element belongsTo="abx:contract" label="Recipients" name="recipient" pkgStatus="never"

             revLink="contract" target="nms:recipient" type="link">

      <join xpath-dst="@cId" xpath-src="@cId"/>

      <join xpath-dst="@gid" xpath-src="@gid"/>

    </element>

Thanks,

Maheswari

Avatar

Community Advisor

Hi maheswarik23685204​,

It is good that you have figured out the issue.

In ACM, when you extend a schema no new table is created rather columns(attributes present in your new schema) are added to the existing table in database.

As you already have a link between the parent schema and recipient schema you can try a link between the extension schema and recipient with a different name to see if it works.

Regards,

Deb

Avatar

Level 4

Hi Deb,

Previous:

<element label="Recipients" name="recipient" revLink="contract" target="nms:recipient"

             type="link">

      <join xpath-dst="@gid" xpath-src="@gid"/>

  </element>

Now I have changed code as below in abx:contract

<element label="ABX Recipients" name="abxRecipient" revLink="abxcontract" target="nms:recipient"

             type="link">

      <join xpath-dst="@gid" xpath-src="@gid"/>

    </element> 

In structure it shows two links for recipient in contract schema.Total no of contract records is 132. When I select gid from ABX Recipient link values are populating for gid but the count is  32 but

When I put a query with recipient as targeting and filtering dim selecting contract link exist such as gid  of contract it gives 0 as results

Thanks,

Maheswari

Avatar

Correct answer by
Community Advisor

Hi maheswarik23685204​,

Seems you are on track. As per your comment, in Data tab you can see 32 records satisfying the criteria mentioned in your changed link(ABX Recipients) between Recipient and Contract schema.

Please have a look if you are selecting the correct link in your query Or you can try  generic query editor output.

Regards,

Deb

Avatar

Level 4

Hi Deb,

Now query is working as expected.Thank you so much

Thank you,

Maheswari