我一直在研究Github上的Aikau教程,但无法解决如何创建我可以传递给视图的列表。要求是为所有用户选择所有工作流程任务并显示结果。
我添加了以下小部件,其中显示了一个用户的详细信息(硬编码),但我需要遍历所有用户并显示所有工作流程。
model.jsonModel = {
services: [
"alfresco/services/CrudService"
],
widgets:[
{
name: "alfresco/lists/AlfSortablePaginatedList",
config: {
loadDataPublishTopic: "ALF_CRUD_GET_ALL",
loadDataPublishPayload: {
url: "api/task-instances?authority=abeecher"
},
itemsProperty: "data",
widgets: [
{
name: "alfresco/lists/views/AlfListView",
config: {
additionalCssClasses: "bordered",
widgetsForHeader: [
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Workflow ID",
sortable: true,
sortValue: "id"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Description"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Status"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Due Date",
sortable: true,
sortValue: "properties.bpm_dueDate"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Created By"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Assigned To",
sortable: true,
sortValue: "owner.firstName"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Tag1"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Tag2"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Tag3"
}
}
],
widgets: [
{
name: "alfresco/lists/views/layouts/Row",
config: {
widgets: [
{
name: "alfresco/lists/views/layouts/Cell",
config: {
additionalCssClasses: "mediumpad",
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "id",
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "workflowInstance.message",
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "state",
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "properties.bpm_dueDate",
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "workflowInstance.initiator.firstName" ,
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "owner.firstName",
}
}
]
}
},
]
}
}
]
}
}
]
}
}
]
};
最终解决方案需要能够对列进行排序,并能够单击任务以查看基础工作流。根据这些要求创建初始列表的最佳方法是什么?
如果我要编写一个构建列表的小部件,我该如何将小部件与表单相结合?这是一个pub / sub解决方案,因为用户没有点击任何东西 - 只是加载页面?
我认为如果我使用" url"我需要编写自定义的webscript。 loadDataPublishPayload选项下的关键字?如果我写了一个webscript,那么将json数据返回到表单的最终语句是什么?
我只需要就最佳前进方向提供一些指导。
答案 0 :(得分:1)
在撰写本文时,使用最新发布的Aikau版本(1.0.83),使用开箱即用的小部件和服务无法做到这一点。
主要问题是Aikau与基于Share XML的表单运行时之间没有完整的映射。这个blog post解释了手头的问题。然而,这是我们正在努力的事情。
一旦“alfresco / services / FormsRuntimeService”完成,这将是一个更容易完成的练习。没有必要为列表编写额外的小部件,因为现有的列表小部件处理排序/分页的所有要求(如果底层REST API支持排序和分页!)。
我想你最好的前进方式很大程度上取决于需要多快的解决方案。我们正在使用FormsRuntimeService取得进展,但我不能说它何时会完全准备好。
Share中显示使用共享表单运行时的任务和工作流的现有页面依赖于返回HTML的API,该HTML是硬编码的,以与基于Share YUI2的小部件一起使用 - 它可能实现您想要的目标使用较旧的Surf Component / YUI2小部件方法。这可能是另一个值得探索的领域。
要做的主要事情是确定是否存在满足您核心要求的现有REST API