This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DEVELOPERS FORUM - Relationships using Foreign Data Types

didonato - Tuesday, June 10, 2014 1:59 PM:

Need Help!!
I'm new to ARAS and I'm still trying to figure things out.
Step 1
I created a new item type called "SYSTEMS"

added three new properties to "Systems" and made them "Data Type" = "ITEM"

  • * customer
  • * program
  • * product

then included them in the SYSTEMS form. -- Everything worked fine. When I add a new system I can add existing customer, program and products to the SYSTEM

Step 2

I edited  the "Item Type" for "Project" and included a new property name "SYSTEM" with a "Data Type" = "ITEM" and also included FOREIGN Data Types for

  • system.customer,
  • system.program
  • system.product

then updated the form for "PROJECT"

 - Everything worked fine. I add a new project and select a SYSTEM and the customer, program and product from that system populated.

Problem
I want them to show as reverse lookups or some kind of relational tabs.  -- example:
When I open my SYSTEMS I have a Reverse Look up TAB to PROJECTS and vice  verse when I open PROJECTS I have a Reverse Lookup TAB to SYSTEM. How can I create "Reverse Lookup Tabs for (Customers to Project) and (Program to Projects) and (Product to Projects). Since these properties are FOREIGN Keys in the PROJECT item type I can't use them. Can I somehow create a query ? example-if you select a customer it finds all of the system that have that customer and then the systems find all the projects that have that system. Can I create a Grid and somehow place this query in the grid and then create a relationship for customer that calls that grid?  I can create a SQL view for this, but where can I use it?



Eric Domke - Monday, June 16, 2014 10:05 AM:

A useful resource for creating reverse "relationship" grids is http://www.aras.com/University/TechNotes/How%20to%20create%20reverse%20relationship%20views%20KB-000101.pdf. The same technique should apply even if you are not dealing with a "real" relationship.  The only difference will be the AML.  For the System lookup, the AML will be quite straight forward.  Something like:

<Item type="Project" action="get"><system>{id}</system></Item>

One lesser known AML features I am particularly fond of using in more complicated situations (such as customers to project) is the "in" condition with a SQL sub-select.  This might look like.

<Item type="Project" action="get">

  <system condition="in">(select id from innovator.system where customer = '{id}')</system>

</Item>

 



didonato - Tuesday, June 17, 2014 1:56 PM:

** THANK YOU!! **