<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.aras.com/community/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>AML where condition based on keyed name</title><link>https://www.aras.com/community/f/development/6565/aml-where-condition-based-on-keyed-name</link><description>Hi community, 
 
 I am trying to transform a where condition based on id into a where condition based on the keyed name or item_number 
 Outside a where condition it would be 
 &amp;lt; source _id&amp;gt; 
 &amp;lt;Item type=&amp;quot;Part&amp;quot; action=&amp;quot;get&amp;quot; select=&amp;quot;id&amp;quot;&amp;gt; 
 &amp;lt;keyed_name</description><dc:language>ja-JP</dc:language><generator>Telligent Community 12</generator><item><title>RE: AML where condition based on keyed name</title><link>https://www.aras.com/community/thread/3978?ContentTypeID=1</link><pubDate>Thu, 21 Nov 2019 08:40:36 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:49adb7da-6073-4502-9084-9a19b1281bfb</guid><dc:creator>hadrien.guiducci</dc:creator><description>&lt;p&gt;I asked the support and get another possibility &lt;span class="emoticon" data-url="https://www.aras.com/community/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt; more simpler that I will implement when we will have time.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s more efficient and exaclty what we needed to do.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If you apply it several time it won&amp;#39;t add a new relationship each time :&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;lt;AML&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item action=&amp;#39;edit&amp;#39; type=&amp;#39;Part&amp;#39; where=&amp;quot;item_number=&amp;#39;&lt;span&gt;PartTest&lt;/span&gt;&amp;#39;&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Relationships&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item type = &amp;#39;Part BOM&amp;#39; action=&lt;span&gt;&amp;#39;create&amp;#39;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;related_id&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item type=&amp;#39;Part&amp;#39; action=&amp;#39;get&amp;#39;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item_number&amp;gt;&lt;span&gt;TestGraphProject_A&lt;/span&gt;&amp;lt;/item_number&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/related_id&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Item type = &amp;#39;Part BOM&amp;#39; action=&lt;span&gt;&amp;#39;create&amp;#39;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;related_id&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item type=&amp;#39;Part&amp;#39; action=&amp;#39;get&amp;#39;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item_number&amp;gt;&lt;span&gt;TestGraphProject_B&lt;/span&gt;&amp;lt;/item_number&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/related_id&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Relationships&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&amp;lt;/AML&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="en-US"&gt;Thanks @jeanpierreSolorzano from support :)&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: AML where condition based on keyed name</title><link>https://www.aras.com/community/thread/3926?ContentTypeID=1</link><pubDate>Thu, 14 Nov 2019 15:14:51 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:f3c54bff-7d93-42ba-85d5-f968a91a1de4</guid><dc:creator>cogres</dc:creator><description>&lt;p&gt;Awesome! Glad I could help.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;C&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: AML where condition based on keyed name</title><link>https://www.aras.com/community/thread/3903?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2019 13:56:08 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:2986aea5-be59-49bd-b64c-bdf568cd5398</guid><dc:creator>hadrien.guiducci</dc:creator><description>&lt;p&gt;Hi, it seems to work fine with the option A... I will validate that with my dev ;)&lt;/p&gt;
&lt;p&gt;Thanks again&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: AML where condition based on keyed name</title><link>https://www.aras.com/community/thread/3902?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2019 12:03:22 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:645102fd-2298-4b9a-b0a7-417e92eaf289</guid><dc:creator>hadrien.guiducci</dc:creator><description>&lt;p&gt;Thanks this helps,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The connector is outside Aras for CI/CD easyness and apply AML to Aras by SOAP or Odata.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Exchanging with you and my dev, we are thinking stop doing it in only one AML.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thus I think we will try this&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Option A&lt;/p&gt;
&lt;p&gt;1) apply a merge to the items Part whithout knowing the ids&lt;/p&gt;
&lt;p&gt;==&amp;gt; we get the ids in the answer&lt;/p&gt;
&lt;p&gt;2) we send a get in order to retrieve the child of the relationships ids&lt;/p&gt;
&lt;p&gt;3) we merge the relationships with the&amp;nbsp;&lt;span&gt;where=&amp;quot;PART_BOM.SOURCE_ID=&amp;#39;idOfPartA&amp;#39; AND PART_BOM.RELATED_ID=&amp;#39;idOfPartB&amp;#39;&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If it&amp;#39;s not satisfying, option B to avoid merge everywhere...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I let you know if it&amp;#39;s works&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Hadrien&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: AML where condition based on keyed name</title><link>https://www.aras.com/community/thread/3900?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2019 11:53:39 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:9e124263-9466-48a6-8dd7-f30c249ba42a</guid><dc:creator>cogres</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;thanks for the clarification, I think I understand your issue. You want to &amp;quot;merge&amp;quot; relationships, ideally inside the AML of a Part you are merging. Personally, I try to avoid using the &amp;quot;merge&amp;quot; action as much as possible. I like to have control over what happens when and how, and a &amp;quot;create the item, but if it exists, edit it instead, but you won&amp;#39;t really know either way&amp;quot; goes against that completely. Hence, I try to explicitly get the item and then either edit it (if it existed) or create a new one (if it didn&amp;#39;t). That way I can also easily attach different logic to the two different events.&lt;br /&gt;In any case, if you want to use &amp;quot;merge&amp;quot;, I would still strongly suggest to have at least two AML queries. One to edit or create the Parts and another one to edit or create the Part BOM relationships. If you do it this way, you will have the Aras IDs for PartA and PartB from your first AML query, so in your second one you can simply have a merge with a where clause like &lt;br /&gt;&lt;br /&gt;where=&amp;quot;PART_BOM.SOURCE_ID=&amp;#39;idOfPartA&amp;#39; AND PART_BOM.RELATED_ID=&amp;#39;idOfPartB&amp;#39;&amp;quot;&lt;br /&gt;&lt;br /&gt;How do you run your import into Aras? If you are using C#, you might want to use the IOM.dll instead of AML, for more flexibility.&lt;br /&gt;If you absolutely must have everything in one AML, you need to look into the two links I posted in my previous reply to make a where clause like &lt;/p&gt;
&lt;p&gt;where=&amp;quot;PART_BOM.SOURCE_ID in (SELECT id FROM innovator.PART WHERE ITEM_NUMBER = &amp;#39;PartB&amp;#39;)&amp;quot;&lt;br /&gt;&lt;br /&gt;work.&lt;br /&gt;&lt;br /&gt;Hope this helps,&lt;br /&gt;&lt;br /&gt;C&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: AML where condition based on keyed name</title><link>https://www.aras.com/community/thread/3899?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2019 10:48:43 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:5da5e7f4-0054-47c0-acff-a098e7f337c5</guid><dc:creator>hadrien.guiducci</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;First of all thanks for your reply I will try it.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Some explaination :&lt;/p&gt;
&lt;p&gt;We are doing a connector that save the state of items managed in an external tool into Aras and run in batch every hour. Every change creates a new generation of the Aras objects.&lt;/p&gt;
&lt;p&gt;We want to merge a set of item let say part and there relationship partbom.&lt;/p&gt;
&lt;p&gt;With the merge on the item part, no problem, if the item do not exist it is created, if not a new generation is created.&lt;/p&gt;
&lt;p&gt;We would like to do the same on the relationship : if a relationship between PartA and PartB already exist apply changes (example quantity) if it does not exist create it...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;==&amp;gt; Idealy we want to apply all changes to all items and there partbom in 1 AML for several items and there relationships.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;One workaround we are thinking is apply a uniq key on both related_id and source_id and apply all the relationship separeted with a loop...&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Or to erase all relationship to every new generation before importing the relationships...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I hope it is clearer.&lt;/p&gt;
&lt;p&gt;Hadrien&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: AML where condition based on keyed name</title><link>https://www.aras.com/community/thread/3898?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2019 10:33:30 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:d1f27d79-52b4-49b9-a7f1-e96d818f010b</guid><dc:creator>cogres</dc:creator><description>&lt;p&gt;Hi Hadrien,&lt;/p&gt;
&lt;p&gt;could you elaborate as to why you want to do this? I believe this would require something like &lt;br /&gt;&lt;br /&gt;where=&amp;quot;PART_BOM.SOURCE_ID in (SELECT id FROM innovator.PART WHERE ITEM_NUMBER = &amp;#39;PartB&amp;#39;)&amp;quot;&lt;br /&gt;&lt;br /&gt;but you cannot simply include a &amp;quot;SELECT&amp;quot; clause in the where clause, at least if you are using 11SP9 or later (see &lt;a href="/f/development/3839/error-in-aml"&gt;here&lt;/a&gt; or &lt;a href="/f/development/6266/error-when-sql-is-specified-in-where-attribute-in-aml"&gt;here&lt;/a&gt; for details on how to incorporate that). &lt;br /&gt;It would be advisable to keep the query in AML form if possible, since that way we make sure all Aras security and permission features don&amp;#39;t get circumvented (using SQL does exactly that).&lt;br /&gt;&lt;br /&gt;Hope this helps,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;C&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>