<?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/"><channel><title>Amitosh Tripathy さんの グループ アクティビティ</title><link>https://www.aras.com/community/members/amitosh</link><description>Amitosh Tripathy さんの グループ ユーザーの最近のアクティビティ</description><dc:language>ja-JP</dc:language><generator>Telligent Community 12</generator><item><title>Load xClass and xProperties, and link xProperties to multiple xClasses from AML</title><link>https://www.aras.com/community/f/development/6178/load-xclass-and-xproperties-and-link-xproperties-to-multiple-xclasses-from-aml</link><pubDate>Tue, 23 Jul 2019 14:29:26 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:f474d716-f781-43c9-9d19-badcbb7ef6b7</guid><dc:creator>Amitosh Tripathy</dc:creator><description>&lt;p&gt;We want to load 1k+ xclasses to Aras, we are talking about 4k+ xproperties here.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When we are running AML for creating relations xClass_xProperty_Flatten and xClass_xPropertyDefinition to link them to class tree, it fails with error :&lt;/p&gt;
&lt;p&gt;&amp;lt;faultstring&amp;gt;&amp;lt;![CDATA["xClass_xProperty_Flatten" can be added or deleted or updated only in XTree context]]&amp;gt;&amp;lt;/faultstring&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;detail&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;af:legacy_detail&amp;gt;&amp;lt;![CDATA["xClass_xProperty_Flatten" can be added or deleted or updated only in XTree context]]&amp;gt;&amp;lt;/af:legacy_detail&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;af:exception message=&amp;quot;&amp;amp;quot;xClass_xProperty_Flatten&amp;amp;quot; can be added or deleted or updated only in XTree context&amp;quot; type=&amp;quot;System.ArgumentException&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/detail&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I can load property definitions, but not classes, but can&amp;rsquo;t map the properties to classes. How can we mass create and reuse these xProperty definitions in more than one class from AML, by creating relations correctly?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How do update item in Dom after server Method changed values of a Form dropdown</title><link>https://www.aras.com/community/f/development/6667/how-do-update-item-in-dom-after-server-method-changed-values-of-a-form-dropdown</link><pubDate>Fri, 13 Dec 2019 09:50:13 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:312a842f-b29d-4d29-9445-c85825307728</guid><dc:creator>AngelaIp</dc:creator><description>&lt;p&gt;Hi community,&lt;/p&gt;
&lt;p&gt;hope somebody can help me on this one. I have a Form with a button that shall allow users to add additional values to the dropdown&amp;nbsp;list. The button Client Method calls a 2nd Server Method that takes care for updating the List that is used in the dropdown. Used Innovator version is 12SP3, but I think my described scenario fits to most Innovator versions.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The List update on server side works without any problems. The List will contain the new values on database level. But I am not able to update/refresh the dropdown list in the Form. Users still see the previous content. If users want to see the new updated List, they have to delete their browser cache completely. Neither the refresh button or reopening the item will make the additional list content visible. The only way the list will be updated without deleting the browser cache is when I manually save the List item again.&lt;/p&gt;
&lt;p&gt;How can I solve this one? I assume I will need to use&amp;nbsp;&lt;strong&gt;&amp;nbsp;aras.isDirtyEx&amp;nbsp;&lt;/strong&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;or something similar. But I haven&amp;acute;t found much code samples on this one. Any ideas how to do this?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Angela&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Mobile App for Innovator just released - AccessPLM</title><link>https://www.aras.com/community/f/community/6386/mobile-app-for-innovator-just-released---accessplm</link><pubDate>Sun, 29 Sep 2019 11:52:01 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:505a9952-0436-48ab-ba4b-c484173d8d92</guid><dc:creator>necton.labs</dc:creator><description>&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;Hello world!&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;I&amp;#39;ve just released a mobile app for Innovator that I&amp;#39;ve been working on for a while. It&amp;#39;s called AccessPLM, it&amp;#39;s currently only available on iOS but an Android version shouldn&amp;#39;t be too far off.&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;"&gt;&lt;span lang="en-AU"&gt;The app can be viewed on the app store, or previewed here: &lt;/span&gt;&lt;a href="https://apps.apple.com/us/app/accessplm/id1436012502?ls=1"&gt;&lt;span lang="en-GB"&gt;https://apps.apple.com/us/app/accessplm/id1436012502?ls=1&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;For the initial release I&amp;#39;ve chosen to focus on a few core elements, namely Parts, Documents, Problem Reports and the In Basket. The app lets you view Parts (and the associated BOM), Documents and PRs, and edit some standard properties for all of them as well. You can also view and complete any items in your In Basket.&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;You can also view Files (PDFs and images) that are attached directly to Documents or PRs, or attached to an Item that is related to a Part (for example, it will show you all the files attached to all CAD Document items associated with a particular part).&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;The final feature I&amp;#39;ve implemented that&amp;#39;s unique to mobile is the ability to take, markup and upload images from your phone all within that app, and attach them to an existing Problem Report, or a new PR you&amp;#39;ve created with the app.&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;For administrators - I&amp;#39;ve added the ability to disallow editing of items in the app, if you decide you only want to have users view data but not be able to edit anything. Users will still be able to lock and unlock items.&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;I&amp;#39;m really keen to get some feedback and hear what people think - it&amp;#39;s not easy to narrow down use cases on a system that&amp;#39;s as expansive and flexible as Aras Innovator. If you think the app is useful, or if you wish it did something else, or you have any other comments at all, I&amp;#39;d love to hear from you! Send me a message on here or email me at necton dot labs at outlook dot com&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;Cheers,&lt;/p&gt;
&lt;p style="font-family:Calibri;font-size:11.0pt;margin:0in;" lang="en-AU"&gt;Ben&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Token Authentication using the REST API</title><link>https://www.aras.com/community/b/english/posts/token-authentication-using-the-rest-api</link><pubDate>Thu, 02 May 2019 12:30:00 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:3cef7e0d-c20c-4e1d-8938-82e633d39d2e</guid><dc:creator>Christopher Gillis</dc:creator><description>&lt;p&gt;Aras Innovator&amp;nbsp;introduced an Authentication Server feature in 11.0 SP12 and has been fleshing it out with each new service pack. In 11.0 SP15, it is possible to request an OAuth token from this server that can be used with the &lt;a href="/b/english/posts/tech-tip-using-the-aras-restful-api"&gt;RESTful API&lt;/a&gt; as an alternative to basic authentication.&amp;nbsp;Using tokens is preferred for external apps as they don&amp;#39;t require you to keep your users&amp;#39; passwords in memory while your app runs. Because tokens expire after a set time, you can also rest assured that if a malicious party later acquires&amp;nbsp;the token, they won&amp;#39;t have access to your system.&lt;/p&gt;
&lt;p&gt;In this blog post, we&amp;#39;ll be going over examples of both requesting an OAuth token from the Aras Innovator server as well as using that token to authenticate additional requests. You can also check out this&amp;nbsp;&lt;a href="https://github.com/ArasLabs/rest-auth-example"&gt;Authentication Example&lt;/a&gt; on GitHub for a simple app that will&amp;nbsp;request a token and use that token to query the Parts in a database.&lt;/p&gt;
&lt;h2 id="register-your-app"&gt;Register Your App&lt;/h2&gt;
&lt;p&gt;One of the features of the Authentication Server is to limit what apps can request a token.&amp;nbsp;The Authentication Server keeps a list of registered apps that are able to request tokens, so external applications cannot get tokens by default. If you don&amp;#39;t wish to do any additional configuration, you can use the default &amp;quot;IOMApp&amp;quot; client registry.&amp;nbsp;However, we recommend adding a new client registry to register your app with the server by following the steps below.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the \OAuthServer\OAuth.config in your preferred text editor&lt;/li&gt;
&lt;li&gt;Scroll down to the bottom until you see &lt;strong&gt;&amp;lt;clientRegistry id=&amp;quot;IOMApp&amp;quot;&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;/strong&gt;Copy this node and all of its child nodes&lt;/li&gt;
&lt;li&gt;Paste them as a new section just below the original node&lt;/li&gt;
&lt;li&gt;Give a new ID to this registry corresponding to the purpose of your app&lt;/li&gt;
&lt;li&gt;Make sure this new registry has&amp;nbsp;&lt;strong&gt;enabled=&amp;quot;true&amp;quot;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;Make note of the ID you give this new registry. You will need to use it in the body of your request for a token which is covered later in this blog.&lt;/p&gt;
&lt;h2&gt;Get the OAuthServer URL&lt;/h2&gt;
&lt;p&gt;The first thing we&amp;#39;ll want to do is query for the location of the OAuthServer.&amp;nbsp;Because Aras Innovator allows most of its components to exist on separate servers, the OAuthServer may not be available from the same server as our Instance URL. However, the Innovator Server does have a way to query for this information by appending&amp;nbsp;&lt;strong&gt;/Server/OAuthServerDiscovery.aspx&lt;/strong&gt; to the end of your Instance URL:&amp;nbsp;&lt;strong&gt;&lt;/strong&gt;http://localhost/InnovatorServer/Server/OAuthServerDiscovery.aspx&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re using something like &lt;a href="https://www.getpostman.com/"&gt;Postman&lt;/a&gt;&amp;nbsp;to follow along with this blog, you can simply perform a get request on this URL with an empty body. The result of this request should look something like below.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;locations&amp;quot;: [&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; "uri": "http://localhost/InnovatorServer/oauthserver/"&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; }&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; ]&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The URL we will use is stored in the&amp;nbsp;&lt;strong&gt;uri&lt;/strong&gt; property of the JSON returned from our request. The JSON path you can use to retrieve this information is&amp;nbsp;&lt;em&gt;locations[0].uri&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Get the Token Endpoint&lt;/h2&gt;
&lt;p&gt;Now that we have the URL of the OAuthServer, we will need to retrieve the exact URL that we can use to query for the token. This next URL is based on the &lt;a href="https://openid.net/specs/openid-connect-discovery-1_0.html"&gt;OpenID discovery specification&lt;/a&gt;. We will take the OAuthServer URL from our previous step and append&amp;nbsp;&lt;em&gt;.well-known/openid-configuration&lt;/em&gt; to the end of it: http://localhost/InnovatorServer/oauthserver/.well-known/openid-configuration. Again, we can query on this URL with a simple GET request without passing anything through the body.&lt;/p&gt;
&lt;p&gt;The response to this request is significantly longer, but it should contain our token endpoint somewhere near the top.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;issuer&amp;quot;: &amp;quot;OAuthServer&amp;quot;,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;jwks_uri&amp;quot;: &amp;quot;http://localhost/InnovatorServer/oauthserver/.well-known/openid-configuration/jwks&amp;quot;,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;authorization_endpoint&amp;quot;: &amp;quot;http://localhost/&lt;span&gt;InnovatorServer&lt;/span&gt;/oauthserver/connect/authorize&amp;quot;,&lt;/code&gt;&lt;br /&gt;&lt;strong&gt;&lt;code&gt;&amp;nbsp; &amp;quot;token_endpoint&amp;quot;: &amp;quot;http://localhost/&lt;span&gt;InnovatorServer&lt;/span&gt;/oauthserver/connect/token&amp;quot;&lt;/code&gt;&lt;/strong&gt;&lt;code&gt;,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;userinfo_endpoint&amp;quot;: &amp;quot;http://localhost/&lt;span&gt;InnovatorServer&lt;/span&gt;/oauthserver/connect/userinfo&amp;quot;,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;end_session_endpoint&amp;quot;: &amp;quot;http://localhost/&lt;span&gt;InnovatorServer&lt;/span&gt;/oauthserver/connect/endsession&amp;quot;,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;...&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The JSON path to retrieve this data is simply&amp;nbsp;&lt;em&gt;token_endpoint&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Get Token&lt;/h2&gt;
&lt;p&gt;The final request we&amp;#39;ll use to retrieve our token will use the token endpoint URL retrieved in the previous step. Because this token will be linked to a user&amp;#39;s credentials, we will need to pass in additional information before making our request. If you&amp;#39;re following along with Postman, you can use the Multipart Form to specify the following pieces of information in your body.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;grant_type&lt;/strong&gt; : &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Currently, I believe&amp;nbsp;&lt;strong&gt;&lt;/strong&gt;&amp;quot;password&amp;quot; is the only authentication type allows. Aras as a whole is moving towards more types of authentication in 12.0, so this is likely to change in the upcoming releases.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;scope&lt;/strong&gt; : &amp;quot;Innovator&amp;quot;
&lt;ul&gt;
&lt;li&gt;The scope of information this token will be able to access. &amp;quot;Innovator&amp;quot; will be used for almost all purposes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;client_id&lt;/strong&gt; : &amp;quot;IOMApp&amp;quot;
&lt;ul&gt;
&lt;li&gt;The ID of your client app you configured in the first step of this blog.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;username&lt;/strong&gt; : &amp;quot;YOUR_USER_NAME&amp;quot;
&lt;ul&gt;
&lt;li&gt;Any requests made using the returned token will share the same permissions as this user&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;password&lt;/strong&gt; : &amp;quot;YOUR_MD5_HASHED_PASSWORD&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;database&lt;/strong&gt; : &amp;quot;YOUR_DATABASE_NAME&amp;quot;
&lt;ul&gt;
&lt;li&gt;This should be the name of the database that this token will be able to access. &amp;quot;InnovatorSolutions&amp;quot; is the default name of Aras databases.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After configuring your body, you can send a POST request to the token endpoint URL with the body containing the properties defined above. The response will contain both the OAuth token as well as how long you will have until that token expires.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;access_token&amp;quot;: &amp;quot;YOUR_TOKEN&amp;quot;,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;expires_in&amp;quot;: 3600,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;quot;token_type&amp;quot;: &amp;quot;Bearer&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The JSON path to this token will be&amp;nbsp;&lt;em&gt;access_token&lt;/em&gt;. By default, the IOMApp token expires in 3600 seconds or 1 hour.&lt;/p&gt;
&lt;h2&gt;Make Request with Token&lt;/h2&gt;
&lt;p&gt;If you&amp;#39;ve ever used our previous &lt;a href="/b/english/posts/tech-tip-using-the-aras-restful-api"&gt;RESTful blog&lt;/a&gt;, you&amp;#39;ll know that we authenticated previously by passing in the username and hashed password into the &lt;strong&gt;AUTHUSER&lt;/strong&gt; and &lt;strong&gt;AUTHPASSWORD&lt;/strong&gt; headers respectively. With the token, we will authenticate using the standard HTTP&amp;nbsp;&lt;strong&gt;Authorization&lt;/strong&gt; header. Token authentication using this header follows the format below.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Authorization : Bearer {YOUR_TOKEN}&lt;/p&gt;
&lt;p&gt;Note that the word &amp;quot;Bearer&amp;quot; must come before your token in the header. If you&amp;#39;re using Postman, there should be a way to configure authentication differently than other headers which should automatically add in this word for you. Alternatively, depending on the programming language you&amp;#39;re using to perform this request, there may be a special authentication class or library which will automatically add &amp;quot;Bearer&amp;quot; into the header for you as well.&lt;/p&gt;
&lt;p&gt;Regardless, once you have your Authorization header configured,&amp;nbsp;you can follow along with our previous RESTful blog, and you should notice that you can query for all of the same information. You can also confirm that the permission model is still in place by querying for items to which you do not have access.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;LOOKING FOR MORE ARAS INSPIRATION?&lt;/h3&gt;
&lt;p&gt;Subscribe to our blog and follow&amp;nbsp;&lt;a href="https://twitter.com/araslabs"&gt;@ArasLabs on Twitter&lt;/a&gt;&amp;nbsp;for more helpful content! You can also find our latest open-source projects and sample code on the&amp;nbsp;&lt;a href="https://github.com/ArasLabs"&gt;Aras Labs&amp;nbsp;GitHub&amp;nbsp;page&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Access Control In Aras Innovator</title><link>https://www.aras.com/community/b/english/posts/access-control-methods-in-innovator</link><pubDate>Tue, 19 Mar 2019 13:00:00 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:4d321e5b-9264-4ed4-9f9c-5fbed414fe5e</guid><dc:creator>AJ Sebastian</dc:creator><description>&lt;p&gt;Controlling access is one of the bigger puzzles any system administrator faces. There are two different challenges to consider when it comes to permissions. The first challenge is authentication, which involves ensuring the user is who they say they are. The second challenge is authorization, which deals with what a user can or cannot have access to. The standard Aras permission model and our two new access control policies provide configurable solutions to the latter - authorization.&lt;/p&gt;
&lt;p&gt;This blog will be a high-level overview of the three types of access control built into the Aras Innovator platform: role-based permissions, MAC policies, and DAC policies. Future posts will go more in-depth and explain how you can use these services to implement common use cases.&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:150%;"&gt;Role-Based Access Control&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;The standard permissions model, an example of role-based access control, revolves around the Permissions ItemType. These permissions will be assigned to an ItemType and will dictate how different identities can interact with the given ItemType. Below is a standard permission named &amp;ldquo;New Part.&amp;rdquo; Different groups and individual identities have different levels of access, and this can change based on the life cycle state of the part itself. Standard permissions are powerful but cannot vary based on the context item.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " border="0" src="/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/pastedimage1552934569161v1.png" /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:150%;"&gt;Mandatory Access Control&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Mandatory Access Control (MAC) policies are attribute-based, meaning access can be defined based on properties/attributes of both the user and any item the user is viewing. This allows for military-style security scenarios, where a user with a high security clearance level may access items with a lower security clearance level, even though they may not have access provided by the explicit permissions defined on the item. This image shows how a MAC policy can be used to restrict access on documents with a &amp;quot;top secret&amp;quot; clearance level while allowing all users access to unclassified documents.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/6278.pastedimage1552931178963v6.png" /&gt;&lt;/p&gt;
&lt;p&gt;MAC policies also allow admins to restrict a user&amp;#39;s access based on their physical location. A user with read/write access in their primary facility may only have read access at other sites.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size:150%;"&gt;Domain Access Control&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Domain Access Control (DAC) was designed to support project-based access scenarios where users are given access to items related to individual projects or domains. These domains are dynamic, allowing the permissions to shift with the scope of a project. The image below shows how a DAC policy should work.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/5621.pastedimage1552931127699v2.png" /&gt;&lt;/p&gt;
&lt;p&gt;Each project in the above example could have its own DAC definition, meaning each project can have its own specific policy. Each user can be a member of multiple teams, giving them access to multiple projects. DAC policies work out of the box with the other two types of access control. Combining all three methods is the best way to ensure that authorized users are the only ones with access to the correct items. With proper configuration, you can have more complex policies, which allow for something similar to the diagram below.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/pastedimage1552942284803v1.png" /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;span style="font-size:150%;"&gt;Closing Thoughts&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;These policies have a lot of moving parts. Configuring any of these solutions will take some trial and error to find the best fit for your situation. This has been a very brief conceptual overview of the different types of access control within Aras Innovator. In the coming weeks, we&amp;#39;ll publish examples of both MAC and DAC policies. We&amp;#39;ll also be releasing a community project which has examples of both types of policy.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://events.aras.com/ace-2019" rel="noopener noreferrer" target="_blank"&gt;&lt;img style="display:block;margin-left:auto;margin-right:auto;" alt=" " border="0" src="/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/2045.0364_2D00_ACE19_2D00_blog_2D00_footer.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Enterprise search queries</title><link>https://www.aras.com/community/f/community/9016/enterprise-search-queries</link><pubDate>Tue, 04 Feb 2020 17:05:15 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:c26b4547-8ceb-4732-b1b8-5b3156b1cd9f</guid><dc:creator>Amitosh Tripathy</dc:creator><description>&lt;p&gt;I have 3 questions here (Aras 12.3)&lt;/p&gt;
&lt;p&gt;- What is the best way to&amp;nbsp;stop File Indexing? I have installed File Processor already, should I go ahead and remove ES Indexed File from all Indexed Configuration item type or just stopping the File Crawler will do? How do I get rid of the files already indexed?&lt;/p&gt;
&lt;p&gt;- I went with 1 Solr node on cluster, and 3 zookeepers. Best practice for Prod is to have more than one Solr nodes or one would suffice since we do not want Files?&lt;/p&gt;
&lt;p&gt;- We have seen in our POC environment if we load a million parts, the indexing will take a week or so for all new items. We have a standalone Solr instance where we can do it in an hour for all the same properties. I was thinking if we can directly index Aras data by running something in Solr side and not wait for the ES agent?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/community/members/eli_5f00_donahue"&gt;Eli Donahue&lt;/a&gt;&amp;nbsp;&lt;a href="/community/members/christopher_5f00_gillis"&gt;Christopher Gillis&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to pin TOC by default in Innovator 12?</title><link>https://www.aras.com/community/f/development/8936/how-to-pin-toc-by-default-in-innovator-12</link><pubDate>Mon, 13 Jan 2020 08:04:10 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:49e53ffa-ee3a-46c8-b392-31603b2d75c0</guid><dc:creator>AngelaIp</dc:creator><description>&lt;p&gt;Hi community,&lt;/p&gt;
&lt;p&gt;When users login to Innovator 12 the first time, they only get a huge white welcome page with deactivated TOC. This is confusing, as people may think Innovator is not working. I remember my first steps with Innovator 12. I was literally waiting 3 minutes cause I assumed Innovator is still loading. I even assumed the installation went wrong and checked the browser debugger for potential error messages. I needed an eternity until I finally accidentally clicked on the main navigation button in the top left corner to get the TOC.&lt;/p&gt;
&lt;p&gt;I want to avoid that my users face the same frustrating experience. Is it possible to pin the TOC by default?&amp;nbsp;I have discovered that the ItemType &lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Core_GlobalLayout&lt;/strong&gt;&lt;/span&gt; contains the property &lt;strong&gt;core_toc_pinned&lt;/strong&gt;. This one is used to store the preference for the pinned TOC. I changed the default value of this property from 0 to 1, but this customization is not enough to pin the TOC by default. The preferences are set when users log out, so we cannot use the default value in the ItemType for this purpose.&lt;/p&gt;
&lt;p&gt;There are some codetree files that reference to this property.&amp;nbsp;I assume one of them also sets the &amp;quot;real&amp;quot; default value for the property. Does anybody know where I can do this customization?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Many thanks!&lt;/p&gt;
&lt;p&gt;Angela&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to render a boolean field in a form as HTML with images or colored text</title><link>https://www.aras.com/community/f/development/6297/how-to-render-a-boolean-field-in-a-form-as-html-with-images-or-colored-text</link><pubDate>Fri, 06 Sep 2019 14:53:22 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:1fe1a774-bad8-4753-a086-807f129c2f83</guid><dc:creator>Amitosh Tripathy</dc:creator><description>&lt;p&gt;has_change_pending in Part/CAD/Document forms is a check box. I want to make it&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- An image, if true show one image, if false show another&lt;/p&gt;
&lt;p&gt;Or&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;A colored text, if true show in one color, if false show in another color&lt;/p&gt;
&lt;p&gt;Trying with making the field as HTML and add some tags, not much familiar with them, so wanted to ask here.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Remove Relation from older generations</title><link>https://www.aras.com/community/f/applications/6211/remove-relation-from-older-generations</link><pubDate>Tue, 13 Aug 2019 19:56:16 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:416ff538-c803-4db0-86fc-c3f94d548f7c</guid><dc:creator>Amitosh Tripathy</dc:creator><description>&lt;p&gt;My CAD is in Rev A Generation 1&lt;/p&gt;
&lt;p&gt;It was added to a part on Rev A Generation 2, and was removed in Generation 3 of the part. Currently part is in Generation 4.&lt;/p&gt;
&lt;p&gt;I want to delete the CAD, but it gives me error : &amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;span&gt;faultstring&lt;/span&gt;&amp;gt;&amp;lt;![CDATA[CAD cannot be deleted. It is used in Part CAD related_id CAEBB682F6164224962E61BBE49411DC.]]&amp;gt;&amp;lt;/faultstring&amp;gt;&amp;lt;detail&amp;gt;&amp;lt;af:legacy_detail&amp;gt;&amp;lt;![CDATA[CAD cannot be deleted. It is used in Part CAD related_id CAEBB682F6164224962E61BBE49411DC.]]&amp;gt;&amp;lt;/af:legacy_detail&amp;gt;&amp;lt;af:legacy_faultstring&amp;gt;&amp;lt;![CDATA[ItemMethods: PurgeItemEx2: Referenced items found (type=Part CAD:CAEBB682F6164224962E61BBE49411DC)]]&amp;gt;&amp;lt;/af:legacy_faultstring&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Note : CAD relation is Hard Fixed out of the box.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;How do I take care of deleting such related items?&lt;/p&gt;
&lt;p&gt;The CAD item shows the part in UI(field name : part) which is HTML, and is a link to the part Rev A Generation 2. Can I may be create admin form to allow removal of relation from UI? Or there is a cleaner way to do it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Relative date search</title><link>https://www.aras.com/community/f/development/3110/relative-date-search</link><pubDate>Mon, 12 Dec 2016 11:34:24 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:2a33bd52-29d8-41cd-9c6a-e321015d1a4c</guid><dc:creator>rneuber1</dc:creator><description>Hi all,
we had the requirement to be able to search for relative Dates, for example:
&amp;quot;Modified within the last week&amp;quot; or &amp;quot;Due within the next 30 days&amp;quot;.

Aras (9.4 in our case) does not support that, so we&amp;#39;ve hacked it ourselves, maybe it can be useful for others, too.

For our users it is sufficient to use it within AML queries, so there is no fancy UI needed.

With the patch described below it is possible to use &amp;#39;@today(offset)&amp;#39; to write queries like:

&lt;code&gt;&amp;lt;modified_on condition=&amp;quot;ge&amp;quot;&amp;gt;@today(-1)&amp;lt;/modified_on&amp;gt;&lt;/code&gt; (Modified since yesterday)

or

&lt;pre&gt;&lt;code&gt;&amp;lt;and&amp;gt;
   &amp;lt;due_date condition=&amp;quot;ge&amp;quot;&amp;gt;@today()&amp;lt;/due_date&amp;gt;
   &amp;lt;due_date condition=&amp;quot;le&amp;quot;&amp;gt;@today(7)&amp;lt;/due_date&amp;gt;
&amp;lt;/and&amp;gt;&lt;/code&gt;&lt;/pre&gt;


 (due next week)

To achieve this, simply edit &lt;em&gt;Innovator\Client\javascript\search_container.js&lt;/em&gt; and add the following snippet after line 642:

&lt;pre&gt;&lt;code&gt;// Search for any @{n} parameter in Aml.
var re = new RegExp();

// Check for relative dates: @today{-20} will be replaced with the date of 20 days before today
if (/@today\((-?\d+)\)/g.test(searchAml))
	{
		var reDate = new RegExp(&amp;quot;@today\\((-?\\d+)\\)&amp;quot;,&amp;quot;g&amp;quot;);

		var m;
		while (m = reDate.exec(searchAml))
		{
			var diff =  parseInt(m[1]) ;
			var foundString = m[0];
			var today = new Date();
			var relDate = new Date();
			var toff = relDate.getTimezoneOffset();
			relDate.setDate(today.getDate() +  diff);
			relDate.setHours(0,-1 * toff,0,0);
			var nd = relDate.toISOString();
			nd = nd.substr(0,nd.length - 5); // Remove .000Z
			searchAml = searchAml.replace(foundString, nd);
		}&lt;/code&gt;&lt;/pre&gt;




Any comments are welcome.

\Ralf&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Extended Classification issue</title><link>https://www.aras.com/community/f/development/6129/extended-classification-issue</link><pubDate>Wed, 03 Jul 2019 17:31:45 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:5f8e4f5f-97ad-4245-bb21-e2b0ae9dde7f</guid><dc:creator>Amitosh Tripathy</dc:creator><description>&lt;div class="sys_f_label"&gt;Hi,&lt;/div&gt;
&lt;div class="sys_f_label"&gt;&lt;/div&gt;
&lt;div class="sys_f_label"&gt;Trying to set up a small tree. I could build the tree with 6 classes, and 10 attributes with attribute inheritance from parent to child class. But I am not able to&amp;nbsp;&lt;span&gt;Restrict Selection To Only Leaf Classes&lt;/span&gt;&lt;/div&gt;
&lt;div class="sys_f_label"&gt;&lt;/div&gt;
&lt;div class="sys_f_label"&gt;Restrict Selection To Only Leaf Classes set to true&lt;/div&gt;
&lt;div class="sys_f_label"&gt;&lt;span&gt;Restrict Selection To A Single Class set to true&lt;/span&gt;&lt;/div&gt;
&lt;div class="sys_f_label"&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="sys_f_label"&gt;&lt;span&gt;Error : apply &amp;quot;Restrict Selection to only Leaf Classes&amp;quot; preference for the &amp;quot;XXX&amp;quot; xClassificationTree because there are items with conflicted classification.&lt;/span&gt;&lt;/div&gt;
&lt;div class="sys_f_label"&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="sys_f_label"&gt;&lt;span&gt;Anyone saw this before?&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>getPreferenceItemProperty and setPreferenceItemProperty</title><link>https://www.aras.com/community/f/development/6018/getpreferenceitemproperty-and-setpreferenceitemproperty</link><pubDate>Thu, 23 May 2019 14:48:46 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:b98cbe1f-8742-49e5-9861-f11045e8165d</guid><dc:creator>Amitosh Tripathy</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am implementing a Generic action form UI to let user pick his default group among multiple groups he belongs to.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I could achieve it with adding a property to&amp;nbsp;Core_GlobalLayout and write getter and setter for this with sql, but when I use&amp;nbsp; API setPreferenceItemProperty / getPreferenceItemProperty, the value does not get saved or retried.&lt;/p&gt;
&lt;p&gt;Also, I could not find in documentation if these APIs store and retrieve from client cache(in case database transaction happens only during logout) or from database.&amp;nbsp;In my case, if any CAD connector or external system needs access to this property, I want to make sure I&amp;nbsp;know when it goes to database.&lt;/p&gt;
&lt;p&gt;Anyone has any previous experience with these APIs?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Let me Help You</title><link>https://www.aras.com/community/achievements/687f4b6d-e18a-4e55-836c-49926ca2c9d9</link><pubDate>Wed, 22 May 2019 07:06:19 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:ed8be966-a1ad-4e99-a6ea-d822c9ec49ae</guid><dc:creator /><description>Answer a question that is verified as helpful or correct.</description></item><item><title>What´s the best way to check that two or more properties are unique?</title><link>https://www.aras.com/community/f/development/6009/what-s-the-best-way-to-check-that-two-or-more-properties-are-unique</link><pubDate>Thu, 16 May 2019 16:52:25 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:926be8a5-d7fd-4eb3-8c5a-1a5d590f583f</guid><dc:creator>AngelaIp</dc:creator><description>&lt;p&gt;Hi Community,&lt;/p&gt;
&lt;p&gt;maybe somebody knows a simple solution for this use case. My Part table has the following properties. Nothing really exotic:&lt;/p&gt;
&lt;p&gt;item_number | erp_number | major_rev | name | ..&lt;/p&gt;
&lt;p&gt;Both item_number and erp_number shall be unique values. When I tick the unique checkbox in the ItemType definition for both properties, a combination of the two properties will be used for the uniquness check.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are use cases were this kind of unified uniquenss check is extremely helpful, like Part Goals. But in my use case I want to check item_number and erp_number indepented for their uniqueness.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What&amp;acute;s the most easy way to achieve this? Is there a way to prevent using a Method?&lt;/p&gt;
&lt;p&gt;Thanks for any idea!&lt;/p&gt;
&lt;p&gt;Angela&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Implementing User Options like Choose CM Options</title><link>https://www.aras.com/community/f/development/6013/implementing-user-options-like-choose-cm-options</link><pubDate>Tue, 21 May 2019 18:53:00 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:77bfc624-2908-4438-93bc-3860c2c69616</guid><dc:creator>Amitosh Tripathy</dc:creator><description>&lt;p&gt;I am working on a user option dialog where they can pick and choose some values[&lt;span&gt;logged_in_group to start with]&lt;/p&gt;
&lt;p&gt;I have created placeholder properties in&amp;nbsp;Core_GlobalLayout for this.&amp;nbsp;&lt;span&gt;Get_IdentityMembership_Details and&amp;nbsp;Get_AllGroups_Details works fine,&amp;nbsp;GetStoredValueForGroup(The users that do not have a preference created for their identity, I am mapping to World) works too. But I have 2 issues :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;- The dropdown in my UI Form is not resizing based on values added, its defined as static inside a Group Box, with x and y co-ordinates as 0,0. But without Group Box too I could not make it hold to a fixed width.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;CSS for the dropdown:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;{$this field rule} .sys_f_label_container&lt;br /&gt;{&lt;br /&gt; width: 110px;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;{$this field rule}&lt;br /&gt;{&lt;br /&gt; margin: 5px 0px 5px 0px;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;{$this field rule} select&lt;br /&gt;{&lt;br /&gt; width: 110px;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;- After user selects the value, I am not able to capture it. I have a ChooseUserOptionsDialog.prototype.SaveUISelection function, but how to capture the value coming from UI here?&lt;/p&gt;
&lt;p&gt;&lt;span&gt;=================================&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Below is the code for this form onLoad&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ChooseUserOptionsDialog = function ()&lt;br /&gt;{&lt;br /&gt; var inn = new Innovator();&lt;br /&gt; var userid = inn.getUserID();&lt;/p&gt;
&lt;p&gt;var logged_in_group = getFieldComponentByName(&amp;quot;logged_in_group&amp;quot;);&lt;br /&gt; var listGroupsDropDown = [];&lt;/p&gt;
&lt;p&gt;document.isEditMode = true;&lt;/p&gt;
&lt;p&gt;var body = &amp;quot;&amp;lt;sessionuser&amp;gt;&amp;quot; + userid + &amp;quot;&amp;lt;/sessionuser&amp;gt;&amp;quot;;&lt;br /&gt; var res = aras.applyMethod(&amp;quot;Get_IdentityMembership_Details&amp;quot;,body);&lt;br /&gt; &lt;br /&gt; var resItem = aras.IomInnovator.newItem(); // Create a new empty item&lt;br /&gt; resItem.loadAML(res); // and then load in the string returned from aras.applyMethod&lt;br /&gt; &lt;br /&gt; if (resItem.isError()) {&lt;br /&gt; aras.AlertError(resItem);&lt;br /&gt; return null;&lt;br /&gt; }&lt;br /&gt; if (resItem.getItemCount() &amp;lt;= 0)&lt;br /&gt; {&lt;br /&gt; //let user choose any group if he does not belong to any group&lt;br /&gt; var resu = aras.applyMethod(&amp;quot;Get_AllGroups_Details&amp;quot;);&lt;br /&gt; resItem.loadAML(resu); //and then load in the string returned from aras.applyMethod&lt;br /&gt; &lt;br /&gt; if (resItem.isError()) {&lt;br /&gt; aras.AlertError(resItem);&lt;br /&gt; return null;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; var storedValue = this.GetStoredValueForGroup(userid);//gets existing value from db&lt;br /&gt; var index = 0;&lt;br /&gt; &lt;br /&gt; if (resItem.getItemCount() === 0)&lt;br /&gt; {&lt;br /&gt; //do something for no return&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt; for (var i=0;i&amp;lt;resItem.getItemCount();i++)&lt;br /&gt; {&lt;br /&gt; var currentItem = resItem.getItemByIndex(i);&lt;br /&gt; listGroupsDropDown.push({label: currentItem.getProperty(&amp;quot;keyed_name&amp;quot;), value: currentItem.getProperty(&amp;quot;id&amp;quot;)});&lt;br /&gt; &lt;br /&gt; if (currentItem.getProperty(&amp;quot;id&amp;quot;) === storedValue) &lt;br /&gt; {&lt;br /&gt; index = i;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }de&lt;br /&gt; logged_in_group.component.setState({&lt;br /&gt; list: listGroupsDropDown,&lt;br /&gt; value : listGroupsDropDown[index].value&lt;br /&gt; });&lt;br /&gt;};&lt;/p&gt;
&lt;p&gt;================================&lt;/p&gt;
&lt;p&gt;Below is the code for Ok button&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;ChooseUserOptionsDialog.prototype.ApplyChanges = function ChooseUserOptionsDialog_ApplyChanges()&lt;br /&gt;{&lt;br /&gt; this.SaveUISelection();&lt;br /&gt; top.main.tree.updateTree();&lt;br /&gt; parent.args.dialog.close();&lt;br /&gt;};&lt;/p&gt;
&lt;p&gt;ChooseUserOptionsDialog.prototype.SaveUISelection = function ChooseUserOptionsDialog_SaveUISelection()&lt;br /&gt;{&lt;br /&gt; debugger;&lt;br /&gt; var inn = new Innovator();&lt;br /&gt; var userid = inn.getUserID();&lt;br /&gt; &lt;br /&gt; var groupComponent = getFieldComponentByName(&amp;quot;logged_in_group&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt; var userSelectionGroup = groupComponent.value;//Value not getting retrived&lt;br /&gt; &lt;br /&gt; var body = &amp;quot;&amp;lt;sessionuser&amp;gt;&amp;quot; + userid + &amp;quot;&amp;lt;/sessionuser&amp;gt;&amp;quot;;&lt;br /&gt; body = body+ &amp;quot;&amp;lt;usergroup&amp;gt;&amp;quot; + userSelectionGroup + &amp;quot;&amp;lt;/usergroup&amp;gt;&amp;quot;;&lt;br /&gt; var res = aras.applyMethod(&amp;quot;Set_UpdateUserPreference&amp;quot;,body);&lt;br /&gt; &lt;br /&gt; var resItem = aras.IomInnovator.newItem(); // Create a new empty item&lt;br /&gt; resItem.loadAML(res); // and then load in the string returned from aras.applyMethod&lt;/p&gt;
&lt;p&gt;if (resItem.isError()) {&lt;br /&gt; aras.AlertError(resItem);&lt;br /&gt; return null;&lt;br /&gt; }&lt;br /&gt;};&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>