<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Adding CommandSite After Vault Login in Vault Customization Forum</title>
    <link>https://forums.autodesk.com/t5/vault-customization-forum/adding-commandsite-after-vault-login/m-p/5438041#M9882</link>
    <description>&lt;P&gt;Currently the API method which handles loading custom&amp;nbsp;CommandSite actions occurs before the OnLogOn event. As such, at the time CommandSites must be defined, there is no knowledge of the Vault the user will connect to.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This creates a problem when dealing with custom objects across multiple Vaults&amp;nbsp;as even objects with the same "Display Name" will have completely different "Name"s (GUID values). So if you have a common custom&amp;nbsp;object, between two Vault databases&amp;nbsp;(lets say "Company") and you want to bind a CommandSite to "Company" then you would have to know about both different Name GUIDs and create a CommandSite for both (so one of which would be garbage, depending). This creates a maintanance problem if you want to spin up a third Vault DB with the "Company" custom object functionality as you now have to create another CommandSite to GUID in the third database.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So is there a way you can create a CommandSite &lt;EM&gt;after&lt;/EM&gt; you have logged into a Vault? More specifically, can you bind a CommandSite after you have a connected WebServiceManager object?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Something like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;void&lt;/SPAN&gt;&amp;nbsp;OnLogOn(&lt;SPAN&gt;IApplication&lt;/SPAN&gt;&amp;nbsp;application)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;var&lt;/SPAN&gt;&amp;nbsp;customObjects&amp;nbsp;=&amp;nbsp;application.Connection&lt;BR /&gt;        .WebServiceManager.CustomEntityService&lt;BR /&gt;        .GetAllCustomEntityDefinitions();
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;Locate&amp;nbsp;Company&amp;nbsp;custom&amp;nbsp;object.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;var&lt;/SPAN&gt;&amp;nbsp;companyObject&amp;nbsp;=&amp;nbsp;customObjects
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.FirstOrDefault(x&amp;nbsp;=&amp;gt;&amp;nbsp;x.DispName&amp;nbsp;==&amp;nbsp;&lt;SPAN&gt;"Company"&lt;/SPAN&gt;);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;(companyObject&amp;nbsp;!=&amp;nbsp;&lt;SPAN&gt;null&lt;/SPAN&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;&lt;SPAN&gt;var&lt;/SPAN&gt;&amp;nbsp;companySystemName&amp;nbsp;=&amp;nbsp;companyObject.Name;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;Create&amp;nbsp;new&amp;nbsp;CommandSite and bind it to&lt;BR /&gt;        // the&amp;nbsp;CompanySystemName&amp;nbsp;for&amp;nbsp;this&amp;nbsp;Vault.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;    // All custom object CommandSites now loaded.
}&lt;/PRE&gt;</description>
    <pubDate>Tue, 09 Dec 2014 21:54:24 GMT</pubDate>
    <dc:creator>jfaulkner-evolve</dc:creator>
    <dc:date>2014-12-09T21:54:24Z</dc:date>
    <item>
      <title>Adding CommandSite After Vault Login</title>
      <link>https://forums.autodesk.com/t5/vault-customization-forum/adding-commandsite-after-vault-login/m-p/5438041#M9882</link>
      <description>&lt;P&gt;Currently the API method which handles loading custom&amp;nbsp;CommandSite actions occurs before the OnLogOn event. As such, at the time CommandSites must be defined, there is no knowledge of the Vault the user will connect to.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This creates a problem when dealing with custom objects across multiple Vaults&amp;nbsp;as even objects with the same "Display Name" will have completely different "Name"s (GUID values). So if you have a common custom&amp;nbsp;object, between two Vault databases&amp;nbsp;(lets say "Company") and you want to bind a CommandSite to "Company" then you would have to know about both different Name GUIDs and create a CommandSite for both (so one of which would be garbage, depending). This creates a maintanance problem if you want to spin up a third Vault DB with the "Company" custom object functionality as you now have to create another CommandSite to GUID in the third database.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So is there a way you can create a CommandSite &lt;EM&gt;after&lt;/EM&gt; you have logged into a Vault? More specifically, can you bind a CommandSite after you have a connected WebServiceManager object?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Something like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;void&lt;/SPAN&gt;&amp;nbsp;OnLogOn(&lt;SPAN&gt;IApplication&lt;/SPAN&gt;&amp;nbsp;application)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;var&lt;/SPAN&gt;&amp;nbsp;customObjects&amp;nbsp;=&amp;nbsp;application.Connection&lt;BR /&gt;        .WebServiceManager.CustomEntityService&lt;BR /&gt;        .GetAllCustomEntityDefinitions();
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;Locate&amp;nbsp;Company&amp;nbsp;custom&amp;nbsp;object.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;var&lt;/SPAN&gt;&amp;nbsp;companyObject&amp;nbsp;=&amp;nbsp;customObjects
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.FirstOrDefault(x&amp;nbsp;=&amp;gt;&amp;nbsp;x.DispName&amp;nbsp;==&amp;nbsp;&lt;SPAN&gt;"Company"&lt;/SPAN&gt;);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;(companyObject&amp;nbsp;!=&amp;nbsp;&lt;SPAN&gt;null&lt;/SPAN&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;&lt;SPAN&gt;var&lt;/SPAN&gt;&amp;nbsp;companySystemName&amp;nbsp;=&amp;nbsp;companyObject.Name;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;Create&amp;nbsp;new&amp;nbsp;CommandSite and bind it to&lt;BR /&gt;        // the&amp;nbsp;CompanySystemName&amp;nbsp;for&amp;nbsp;this&amp;nbsp;Vault.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;    // All custom object CommandSites now loaded.
}&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 Dec 2014 21:54:24 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vault-customization-forum/adding-commandsite-after-vault-login/m-p/5438041#M9882</guid>
      <dc:creator>jfaulkner-evolve</dc:creator>
      <dc:date>2014-12-09T21:54:24Z</dc:date>
    </item>
    <item>
      <title>Re: Adding CommandSite After Vault Login</title>
      <link>https://forums.autodesk.com/t5/vault-customization-forum/adding-commandsite-after-vault-login/m-p/5454688#M9883</link>
      <description>Hi there, yep, you've found one! we had the same problem and solved by storing the display name and the GUID into an external configuration file. Basically not hard coding.&lt;BR /&gt;&lt;BR /&gt;after logon we check wether GUID+display name are still valid for the current Vault. If not, we update the config file with the new GUID and gently ask the user to close and restart Vault.&lt;BR /&gt;&lt;BR /&gt;So, i'm not aware of ways to create menu items after logon, which would make sense anyway as i'd like to add menu items differently for the according user.&lt;BR /&gt;Our workaround is to keep GUID configurable and have a login in the logon that checks if the GUID is still valid. if not, then update the GUID In the config and restart Vault.&lt;BR /&gt;&lt;BR /&gt;hope this helps&lt;BR /&gt;&lt;BR /&gt;ciao&lt;BR /&gt;marco&lt;BR /&gt;</description>
      <pubDate>Mon, 29 Dec 2014 18:42:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vault-customization-forum/adding-commandsite-after-vault-login/m-p/5454688#M9883</guid>
      <dc:creator>marco.mirandola</dc:creator>
      <dc:date>2014-12-29T18:42:09Z</dc:date>
    </item>
    <item>
      <title>Re: Adding CommandSite After Vault Login</title>
      <link>https://forums.autodesk.com/t5/vault-customization-forum/adding-commandsite-after-vault-login/m-p/5454764#M9884</link>
      <description>&lt;P&gt;Marco, thank you for the reply.&lt;/P&gt;&lt;P&gt;Considering the limitations, your workaround sounds like the best which could be done at this point.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Fortunately, for my case at least, I found a solution.&lt;/P&gt;&lt;P&gt;The API function:&lt;/P&gt;&lt;PRE&gt;WebServiceManager.CustomEntityService.AddCustomEntityDefinition&lt;/PRE&gt;&lt;P&gt;Allows you to create a custom entity definition and specify the GUID (i.e. SystemName) associated with the new definition.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I created a generic extension which leverages this call so the customer now just needs to make sure they create new entity definitions via this interface and specify the exact GUID value when they want to leverage the customization. This way the GUID can be hardcoded into the source.&lt;/P&gt;</description>
      <pubDate>Mon, 29 Dec 2014 19:45:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vault-customization-forum/adding-commandsite-after-vault-login/m-p/5454764#M9884</guid>
      <dc:creator>jfaulkner-evolve</dc:creator>
      <dc:date>2014-12-29T19:45:52Z</dc:date>
    </item>
  </channel>
</rss>

