我们有一个 QBO 工作流程,包括以下步骤:
- 任务 A
- 等一天
- 任务 B
在大多数情况下,用户会:
- 从他们的工作清单开始
- 导航到任务 A
- 完成后返回到他们的工作清单
- 第二天,任务 B 应该出现在他们的工作清单上
在少数情况下,由任务 A 中的字段决定,流程应该是:
- 从他们的工作清单开始
- 导航到任务 A
- 完成后:
- 如果 Foo = 'Bar',移动到相同父记录的任务 B,
- 否则返回他们的工作清单
如何在 qbo3 工作流程中实现这一点?
根据设计,任务将在保存(或取消)时将用户返回到引用页面。
要呈现不同的页面,请使用 javascript 将引用页面设置为不同的值。
从任务 GUI 设计器:
Foo
字段if (this.value == 'Bar')
qbo3.getObject(this).setReferrer('api/importform/summary?Object={{Object}}
&ObjectID={{ObjectID}}
&Method=RenderEdit
&Template=Task B', this);
Save
关于上面的 javascript 片段的一些注释/问题:
qbo3.getObject(this).setReferrer(...)
改变值document.referrer
Task
被呈现Object
和ObjectID
参数告诉在qbo3
与当前任务相同的父对象上渲染任务{}
告诉setReferrer
用当前任务中的匹配值替换表达式(例如Task A
,并且Task B
应该每个都具有相同的Object
和ObjectID
XSLT
中,所以大括号必须加倍:{{}}
这样XSLT
就不会试图解释它们XSLT
,所以&
必须是XML
- 兼容的;因此使用&