我正在使用Alfresco Share中的Activiti工作流,我需要在工作流中添加一个通用的所有用户任务表单的标题。此头将是一组只读属性(字段),在工作流中所有用户任务表单的顶部显示上下文工作流信息。例如,在客户端管理工作流中,头可能显示客户端名称和姓氏、客户端文件代码等,并在只读文本框或标签中显示每个值。
我想实现这样的事情(见红方):
包含信息字段的任务窗体
提前感谢您的帮助。
<aspect name="myns:customerTaskHeader">
<title>Customer task header</title>
<properties>
<property name="myns:customerName">
<title>Name</title>
<type>d:text</type>
</property>
<property name="myns:customerSurname">
<title>Surname</title>
<type>d:text</type>
</property>
</properties>
</aspect>
<type name="wf:customerDelivery">
<title>Delivery to customer</title>
<parent>bpm:workflowTask</parent>
<properties>
<property name="wf:customerDeliveryType">
<title>Delivery type</title>
<type>d:text</type>
</property>
<property name="wf:customerDeliveryStatus">
<title>Signed</title>
<type>d:boolean</type>
</property>
</properties>
<mandatory-aspects>
<aspect>myns:customerTaskHeader</aspect>
</mandatory-aspects>
</type>
<config evaluator="task-type" condition="wf:customerDelivery">
<forms>
<form>
<field-visibility>
<show id="myns:customerName" />
<show id="myns:customerSurname" />
<show id="packageItems" />
<show id="wf:customerDeliveryType" />
<show id="wf:customerDeliveryStatus" />
<show id="bpm:comment" />
<show id="transitions" />
</field-visibility>
<appearance>
<set id="" appearance="title" label-id="workflow.set.general" />
<set id="items" appearance="title" label-id="workflow.set.items" />
<set id="response" appearance="title" labelid="workflow.set.response" />
<field id="bpm:comment" labelid="workflow.field.message">
<control template="/org/alfresco/components/form/controls/textarea.ftl">
<control-param name="style">width: 95%</control-param>
</control>
</field>
<field id="packageItems" set="items" />
<field id="transitions" set="response" />
<field id="myns:customerName" read-only="true">
<control template="/org/alfresco/components/form/controls/info.ftl" />
</field>
<field id="myns:customerSurname" read-only="true">
<control template="/org/alfresco/components/form/controls/info.ftl" />
</field>
</appearance>
</form>
</forms>
</config>
我在这个(可能的)解决方案中看到了一些缺点:
CustomerTaskHeader
方面。问题是工作流中的许多用户任务具有内置类型,而不是自定义类型。如果能够在运行时通过JavaScript代码将包含所有所需值的方面添加到任务类型中,那就太好了,但这可能是不可能的。[JavaScript代码]
var customerName = execution.getVariable('customerName');
var customerSurname = execution.getVariable('customerSurname');
task.setVariable('myns_customerName', customerName);
task.setVariable('myns_customerSurname', customerSurname);
定义自定义表单模板非常容易,如http://wiki.alfresco.com/wiki/forms所述。作为模板的一部分,您可以在开始呈现字段之前显示所需的任何信息。如果需要在多个表单模板中显示,您甚至可以创建一个通用的“include”模板。
问题是您希望在标题中显示哪些信息,这些信息存储在哪里?这将影响您需要如何检索它以显示给用户。
如果您需要的属性在任务项上可用,那么通过表单字段值检索它们就很容易了。然后它们可以直接呈现到输出HTML中。
<#if field.value?? && field.value?length > 0>
...
<script type="text/javascript">//<![CDATA[
YAHOO.util.Event.onContentReady("${fieldHtmlId}", function ()
{
YAHOO.util.Dom.get("${fieldHtmlId}").innerHTML = Alfresco.util.userProfileLink("${userName}", "${fullName}", "", ${disableLink?string});
}, this);
//]]></script>
</#if>
这里html" target="_blank">客户端函数使用alfresco.util.UserProfilelink
,但是您可以实现自己的函数,它使用alfresco.util.ajax.jsonget()
或类似的方法检索数据,然后使用yahoo.util.dom函数填充数据。
但正如我所说,确切的方法取决于您的数据在哪里以及您需要如何显示它。
创建工作流后,它被保存为XML文件,为了检查转换后的工作流的外观,它被上传到bpmn.io(目前包括一个消息对象,如果XML文件在bpmn.io上传,该对象将不显示):
我使用的是activiti社区6.0版。我已经浏览了文档,但看不到REST API来检索任务表单。 我注意到Activiti使用以下请求url来获取表单定义:
我正在将我的java项目从Rabbit MQ迁移到Kafka(出于某些原因)。 在当前的工作流中,我将所有消息发布到rabbit mq exchange中,并根据消息的路由密钥将消息重定向到一个或多个队列中。我也想保留Kafka同样的功能。(我知道Kafka本来就不适合,但我想要一个变通办法)。 基本上,我想要这样的东西:每当一个主题接收到一个消息时,基于消息中存在的元,该消息应该被重定向到其他一
问题内容: 我需要将删除标志列添加到数据库中的所有40个用户表。我可以编写一个脚本来遍历sys.tables,但是我想我会检查是否有人有更好的解决方案,或者针对这种情况预先创建了sql。 问题答案: 有一个未记录但众所周知的存储过程sp_msforeachtable:
我已经使用eclipse的Service任务等创建了一个Activit Process,并将. bar部署到在tomcat上运行的Activiti。它已成功部署,我可以使用Activit-Explorer启动我的进程,没有任何问题。部署的进程名称是“我的进程”,它列在进程下- 但我有两个问题。 我需要使用REST调用启动进程。(即不使用Activiti explorer)。它的URL是什么?我尝试
我试图使用apache POI、使用primefaces和java在现有的excel工作簿中创建一个新的工作表,但是到目前为止还没有成功。谁能告诉我这是怎么做的吗?我可以做单张 下面的代码是我为在一个xls文件中创建多个工作表而编写的,我给出的条件是它没有大于65535的of行创建新工作表并迭代它,但它显示错误 警告:允许范围(0..65535)之外的无效行号(65536)java.lang.Il