<?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>Jan Cvek - Akrapovic さんのアクティビティ</title><link>https://www.aras.com/community/members/jancv</link><description>Jan Cvek - Akrapovic さんの最近のアクティビティ</description><dc:language>ja-JP</dc:language><generator>Telligent Community 12</generator><item><title>How to transfer table data from one Innovator instance to another fast and easy?</title><link>https://www.aras.com/community/f/development/37603/how-to-transfer-table-data-from-one-innovator-instance-to-another-fast-and-easy</link><pubDate>Thu, 15 Sep 2022 14:50:09 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:74e4d77f-8dd9-4cb1-840d-b344d5bfd1e2</guid><dc:creator>AngelaIp</dc:creator><description>&lt;p&gt;Hi community,&lt;/p&gt;
&lt;p&gt;I have two Innovator instances.&amp;nbsp;Both have different purposes and unique applications.&lt;/p&gt;
&lt;p&gt;I want to transfer one of the custom applications (incl. ItemType, Form, Method,..) AND the existing data from one instance to another.&lt;/p&gt;
&lt;p&gt;The application itself is no big problem. We can create a PackageDefinition and use the existing Export/Import tool for transfer.&lt;br /&gt; But what about the data?&lt;/p&gt;
&lt;p&gt;In theory we could also create a PackageDefinition for the data. But the generated package do not contain all item properties. The exported items do not contain important properties like created_on/modified_on, permission_id, id, config_id, current_state, state, etc. .&lt;/p&gt;
&lt;p&gt;But it&amp;acute;s important for me that the data is transferred with all of these properties.&lt;/p&gt;
&lt;p&gt;How would you solve this task? There are&amp;nbsp;many&amp;nbsp;possible ways, but&amp;nbsp;which one would you use?&lt;/p&gt;
&lt;p&gt;My current ideas:&lt;/p&gt;
&lt;p&gt;- SQL Insert select?&lt;br /&gt;- CSV SQL export/import?&lt;br /&gt;- AML export/import?&lt;br /&gt;- transfer via IOM/REST connection? &lt;br /&gt;- Innovator Admin?&lt;br /&gt;- BatchLoader?&lt;br /&gt;- Shell script?&lt;br /&gt;- SQL script?&lt;br /&gt;- Hire&amp;nbsp;intern that type in the data manually?&lt;br /&gt;- Something else?&lt;/p&gt;
&lt;p&gt;I want to avoid using&amp;nbsp;Excel or CSV as transfer medium. I want to use a concept that is reusable and maybe can be automated.&lt;br /&gt;In addition I have to modify some of the data before import. These should be integrated into the process.&lt;/p&gt;
&lt;p&gt;Any ideas and thoughts welcomed! &lt;span class="emoticon" data-url="https://www.aras.com/community/cfs-file/__key/system/emoji/1f603.svg" title="Smiley"&gt;&amp;#x1f603;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;Angela&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Ask A Question I</title><link>https://www.aras.com/community/achievements/460ac7df-7ccc-4c42-a204-9e05eef3be09</link><pubDate>Thu, 06 Oct 2022 03:59:15 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:f16c6d67-f1e6-4084-8fc2-3694fb380af9</guid><dc:creator /><description>Ask a question in a forum.</description></item><item><title>Poly ItemType - mapping properties of poly sources</title><link>https://www.aras.com/community/f/development/37631/poly-itemtype---mapping-properties-of-poly-sources</link><pubDate>Thu, 06 Oct 2022 12:00:02 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:4f6002c6-96a9-45e8-9d16-e0a53f5bc30c</guid><dc:creator>Jan Cvek - Akrapovic</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;We have more and more needs to display tables with several different itemtypes in one place with all filtering features and of course the first thought is to use poly itemtype.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But here is the problem. Let say that we have 4 poly sources which all have similar property&amp;nbsp; but all with a different property name.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We have a lot of custom code on these item types looking for properties with certain names. So renaming these properties is quite a pain...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Has anyone figured out how it would be possible to map these different properties into one&amp;nbsp;poly item property. Maybi like SQL Select statement with AS or some server event like onAfterGet... (this.setProperty(&amp;#39;name1&amp;#39;,&amp;#39;&amp;#39;), this.getProperty(&amp;#39;name2&amp;#39;,&amp;#39;&amp;#39;)).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If such a thing were possible, poly items would be much more useful.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;How do you solve it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Save Custom Form Data on CUI Save Button Click</title><link>https://www.aras.com/community/f/development/4053/save-custom-form-data-on-cui-save-button-click</link><pubDate>Tue, 20 Nov 2018 05:15:33 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:26b35e92-3e2d-43be-a465-1b376b0a6fa0</guid><dc:creator>Sathish</dc:creator><description>How do we extend the CUI save button click event. I need to save data in a relationship custom form.

I tried using the below function

&lt;pre&gt;aras.registerEventHandler(&amp;#39;ItemSave&amp;#39;, window, saveFunction);&lt;/pre&gt;

However, the &amp;quot;saveFunction&amp;quot; is triggered even after i move out of the window to other forms.&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>Get parent form field value with javascript</title><link>https://www.aras.com/community/f/development/3867/get-parent-form-field-value-with-javascript</link><pubDate>Thu, 02 Aug 2018 14:06:35 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:b089dd7f-b07c-4b5e-b12d-bc37e53eb867</guid><dc:creator>Former Member</dc:creator><description>From javascript fired from relationship grid, how to get the value of a field in the parent form?

parent.thisItem.getItemById(&amp;quot;X&amp;quot;);

top.aras.getItemById(&amp;quot;X&amp;quot;);

getFieldByName(&amp;quot;X&amp;quot;).getElementsByTagName(&amp;quot;input&amp;quot;)[0].value;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>