<?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 ProcessDefinition identitylink roles aside from candidate in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166967#M120526</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We're developing a workflow project with Activiti as our backbone, and one of the requirements we've received on the side of Process Definitions is to ensure we know which user deployed a process definition. Natively, activiti does not seem to support this, so it seemed reasonable to create an IdentityLink entry linking that processdefinition ID to the user, with the TYPE_ field equal to"owner". Once again, this does not seem to be supported natively in the API, so I wrote some simple test code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-java line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IdentityLinkEntity newEntity = new IdentityLinkEntity();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newEntity.setProcessDefId(processDef.getId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newEntity.setType(OWNER);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newEntity.setUserId(user.getUserId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newEntity.setId(UUID.randomUUID().toString());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newEntity.insert();&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Our process engine is set up using spring: &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-java line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="processEngineName" value="processEngine"/&amp;gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="dataSource" ref="dataSource1" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="transactionManager" ref="transactionManager" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="databaseSchemaUpdate" value="false" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="jobExecutorActivate" value="false" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="databaseSchema" value="WORKFLOW_POC1" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the call to newEntity.insert() yields a nullpointer exception for this line of code within &lt;/SPAN&gt;&lt;A href="https://github.com/Activiti/Activiti/blob/master/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/IdentityLinkEntity.java" rel="nofollow noopener noreferrer"&gt;IdentityLinkEntity.java&lt;/A&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-java line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Context&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getCommandContext()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getDbSqlSession()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .insert(this);&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Specifically, the first line, Context.getCommandContext(). Upon further investigation, Context is indeed null.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So my question is - is there specific setup I'll need to do to get this call to work? Or is there an alternative approach that anybody can suggest, either for this method of creating an audit trail that can be traced to users, or any other method? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 05 May 2014 17:15:56 GMT</pubDate>
    <dc:creator>nhmarsh</dc:creator>
    <dc:date>2014-05-05T17:15:56Z</dc:date>
    <item>
      <title>ProcessDefinition identitylink roles aside from candidate</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166967#M120526</link>
      <description>Hi all,We're developing a workflow project with Activiti as our backbone, and one of the requirements we've received on the side of Process Definitions is to ensure we know which user deployed a process definition. Natively, activiti does not seem to support this, so it seemed reasonable to create a</description>
      <pubDate>Mon, 05 May 2014 17:15:56 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166967#M120526</guid>
      <dc:creator>nhmarsh</dc:creator>
      <dc:date>2014-05-05T17:15:56Z</dc:date>
    </item>
    <item>
      <title>Re: ProcessDefinition identitylink roles aside from candidate</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166968#M120527</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Command context can be obtained from command. You can create create your own command. Good example could be&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;org.activiti.engine.impl.cmd.AddIdentityLinkForProcessDefinitionCmd&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Martin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e.g&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 06:04:51 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166968#M120527</guid>
      <dc:creator>martin_grofcik</dc:creator>
      <dc:date>2014-05-06T06:04:51Z</dc:date>
    </item>
    <item>
      <title>Re: ProcessDefinition identitylink roles aside from candidate</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166969#M120528</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This did not seem to work. Here is the code I used:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;where "configuration" is our spring-specified ProcessEngineConfigurationImpl&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; IdentityLinkEntity newEntity = new IdentityLinkEntity();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; newEntity.setProcessDefId(processDef.getId());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; newEntity.setType("owner");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; newEntity.setUserId("ownerUser");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; AddIdentityLinkForProcessDefinitionCmd newCmd = new AddIdentityLinkForProcessDefinitionCmd(processDef.getId(), "ownerUser", null);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; CommandContext context = new CommandContext(newCmd, (ProcessEngineConfigurationImpl) processEngineConfiguration);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Context.setProcessEngineConfiguration((ProcessEngineConfigurationImpl) processEngineConfiguration);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Context.setCommandContext(context);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; newEntity.insert();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Does not create the expected entity. Is there something else I need to set up, or check? I'm using the same processConfigurationEngine that we use to generate our service. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 15:26:25 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166969#M120528</guid>
      <dc:creator>nhmarsh</dc:creator>
      <dc:date>2014-05-06T15:26:25Z</dc:date>
    </item>
    <item>
      <title>Re: ProcessDefinition identitylink roles aside from candidate</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166970#M120529</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;processEngineConfigurationImpl.getCommandExecutor().execute(new Command&amp;lt;Void&amp;gt;() {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Void execute(CommandContext commandContext) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IdentityLinkEntity newEntity = new IdentityLinkEntity();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newEntity.setProcessDefId(pi.getProcessDefinitionId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newEntity.setType(OWNER);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newEntity.setUserId(user.getUserId());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newEntity.setId(UUID.randomUUID().toString());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newEntity.insert();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Martin&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 May 2014 06:36:27 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166970#M120529</guid>
      <dc:creator>martin_grofcik</dc:creator>
      <dc:date>2014-05-07T06:36:27Z</dc:date>
    </item>
    <item>
      <title>Re: ProcessDefinition identitylink roles aside from candidate</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166971#M120530</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That worked! Thanks much!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 May 2014 13:42:57 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/processdefinition-identitylink-roles-aside-from-candidate/m-p/166971#M120530</guid>
      <dc:creator>nhmarsh</dc:creator>
      <dc:date>2014-05-07T13:42:57Z</dc:date>
    </item>
  </channel>
</rss>

