<?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 Re: UserTask with an optional form in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/usertask-with-an-optional-form/m-p/167227#M120767</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;No, activiti:formHandlerClass attribute is defined in &amp;lt;c&amp;gt;activiti-bpmn-extensions-5.4.xsd&amp;lt;/c&amp;gt; in &amp;lt;c&amp;gt;org.activiti.impl.bpmn.parser&amp;lt;/c&amp;gt;, in Activiti 5.10 that we're (still) using.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;attribute name="formHandlerClass"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;annotation&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;documentation&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Attribute on a startEvent or userTask.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Allows to specify a custom class that will be called during the parsing &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; of the form information. Thus way, it is possible to use custom forms and form handling.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This class must implement the &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org.activiti.engine.inpl.form.FormHamdler/StartFormHandler/taskFormHandler interface&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (specific interface depending on the activity). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/documentation&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/annotation&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;simpleType&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;restriction base="string"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!– regular expression taken from &lt;/SPAN&gt;&lt;A href="http://regexlib.com/REDetails.aspx?regexp_id=2821" rel="nofollow noopener noreferrer"&gt;http://regexlib.com/REDetails.aspx?regexp_id=2821&lt;/A&gt;&lt;SPAN&gt; –&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pattern value="([a-z]{2,3}(\.[a-zA-Z][a-zA-Z_$0-9]*)*)\.([A-Z][a-zA-Z_$0-9]*)"/&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/restriction&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/simpleType&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/attribute&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[sic on the typo in FormHamdler]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And it works a treat too (I haven't found my back to where it is actually evaluated yet, but I did a year or so ago, and have used it ever since). It allows me to construct a different form depending on the user in the session (or really anything else, because the class is called _right_ before the form's path is loaded.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Problem with the exclusiveGateway is that this is a UserTask, and that the taskListener is called at the wrong moment. The choice between UserTask or UserTask-with-form is made based on the state of the system at time 0, but then the UserTask is serialized to database, weeks can go by and the state of the system can get changed in a significant manner. Then user comes along and clicks Complete on his task and user gets a result that's weeks old.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't really want to present users with dialogs that have a "Oh, sorry, nevermind, seems the reason I display this message is no longer there" message (i.e. just a silly info message)… Seems that may be the way to go though, or I have to find a way to hack a way into the Implementation (with all associated risks acknowledged and accepted) and override everything until I get to the point where I can 'remove' the 'activiti:formKey' effect dynamically.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Gwap&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[EDIT: Ah, here we go: &amp;lt;c&amp;gt;org.activiti.engine.impl.bpmn.parser.BpmnParse#parseTaskDefinition(Element, String, ProcessDefinitionEntity)&amp;lt;/c&amp;gt; line 1991-etc]&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 20 Sep 2013 14:19:49 GMT</pubDate>
    <dc:creator>gwaptiva</dc:creator>
    <dc:date>2013-09-20T14:19:49Z</dc:date>
    <item>
      <title>UserTask with an optional form</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/usertask-with-an-optional-form/m-p/167225#M120765</link>
      <description>Sorry if the title is a bit confusing, not sure how to express this better. I'll try to explain:Embedded Activiti 5.10In my flow, I have a multi-instance &amp;lt;c&amp;gt;subProcess&amp;lt;/c&amp;gt;, to execute x times in parallel. In the &amp;lt;c&amp;gt;subProcess&amp;lt;/c&amp;gt; I define a &amp;lt;c&amp;gt;UserTask&amp;lt;/c&amp;gt;, with a</description>
      <pubDate>Fri, 20 Sep 2013 11:57:46 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/usertask-with-an-optional-form/m-p/167225#M120765</guid>
      <dc:creator>gwaptiva</dc:creator>
      <dc:date>2013-09-20T11:57:46Z</dc:date>
    </item>
    <item>
      <title>Re: UserTask with an optional form</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/usertask-with-an-optional-form/m-p/167226#M120766</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The activiti:formHandlerClass attribute is that something you implemented yourself? Because that's not supported in Activiti.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Couldn't you use a task listener to update the form key value?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Otherwise an exclusive gateway is probably the best approach.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Sep 2013 12:42:33 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/usertask-with-an-optional-form/m-p/167226#M120766</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2013-09-20T12:42:33Z</dc:date>
    </item>
    <item>
      <title>Re: UserTask with an optional form</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/usertask-with-an-optional-form/m-p/167227#M120767</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;No, activiti:formHandlerClass attribute is defined in &amp;lt;c&amp;gt;activiti-bpmn-extensions-5.4.xsd&amp;lt;/c&amp;gt; in &amp;lt;c&amp;gt;org.activiti.impl.bpmn.parser&amp;lt;/c&amp;gt;, in Activiti 5.10 that we're (still) using.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;attribute name="formHandlerClass"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;annotation&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;documentation&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Attribute on a startEvent or userTask.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Allows to specify a custom class that will be called during the parsing &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; of the form information. Thus way, it is possible to use custom forms and form handling.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This class must implement the &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org.activiti.engine.inpl.form.FormHamdler/StartFormHandler/taskFormHandler interface&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (specific interface depending on the activity). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/documentation&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/annotation&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;simpleType&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;restriction base="string"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!– regular expression taken from &lt;/SPAN&gt;&lt;A href="http://regexlib.com/REDetails.aspx?regexp_id=2821" rel="nofollow noopener noreferrer"&gt;http://regexlib.com/REDetails.aspx?regexp_id=2821&lt;/A&gt;&lt;SPAN&gt; –&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pattern value="([a-z]{2,3}(\.[a-zA-Z][a-zA-Z_$0-9]*)*)\.([A-Z][a-zA-Z_$0-9]*)"/&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/restriction&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/simpleType&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/attribute&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[sic on the typo in FormHamdler]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And it works a treat too (I haven't found my back to where it is actually evaluated yet, but I did a year or so ago, and have used it ever since). It allows me to construct a different form depending on the user in the session (or really anything else, because the class is called _right_ before the form's path is loaded.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Problem with the exclusiveGateway is that this is a UserTask, and that the taskListener is called at the wrong moment. The choice between UserTask or UserTask-with-form is made based on the state of the system at time 0, but then the UserTask is serialized to database, weeks can go by and the state of the system can get changed in a significant manner. Then user comes along and clicks Complete on his task and user gets a result that's weeks old.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't really want to present users with dialogs that have a "Oh, sorry, nevermind, seems the reason I display this message is no longer there" message (i.e. just a silly info message)… Seems that may be the way to go though, or I have to find a way to hack a way into the Implementation (with all associated risks acknowledged and accepted) and override everything until I get to the point where I can 'remove' the 'activiti:formKey' effect dynamically.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Gwap&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[EDIT: Ah, here we go: &amp;lt;c&amp;gt;org.activiti.engine.impl.bpmn.parser.BpmnParse#parseTaskDefinition(Element, String, ProcessDefinitionEntity)&amp;lt;/c&amp;gt; line 1991-etc]&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Sep 2013 14:19:49 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/usertask-with-an-optional-form/m-p/167227#M120767</guid>
      <dc:creator>gwaptiva</dc:creator>
      <dc:date>2013-09-20T14:19:49Z</dc:date>
    </item>
  </channel>
</rss>

