0

我们有一个 QBO 工作流程,包括以下步骤:

  • 任务 A
  • 等一天
  • 任务 B

在大多数情况下,用户会:

  • 从他们的工作清单开始
  • 导航到任务 A
  • 完成后返回到他们的工作清单
  • 第二天,任务 B 应该出现在他们的工作清单上

在少数情况下,由任务 A 中的字段决定,流程应该是:

  • 从他们的工作清单开始
  • 导航到任务 A
  • 完成后:
    • 如果 Foo = 'Bar',移动到相同父记录的任务 B,
    • 否则返回他们的工作清单

如何在 qbo3 工作流程中实现这一点?

4

1 回答 1

0

根据设计,任务将在保存(或取消)时将用户返回到引用页面。

要呈现不同的页面,请使用 javascript 将引用页面设置为不同的值。

从任务 GUI 设计器:

  • 单击该Foo字段
  • 在 Javascript > onblur 字段中,输入类似于以下的代码(不需要回车;这里只是为了便于阅读):
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
  • 传递的 URL 是一个相对 URL,并导致 aTask被呈现
  • ObjectObjectID参数告诉在qbo3与当前任务相同的父对象上渲染任务
  • 使用花括号{}告诉setReferrer用当前任务中的匹配值替换表达式(例如Task A,并且Task B应该每个都具有相同的ObjectObjectID
    • 因为这个数据被传递到XSLT中,所以大括号必须加倍:{{}}这样XSLT就不会试图解释它们
    • 因为这个数据被传递到XSLT,所以&必须是XML- 兼容的;因此使用&
于 2021-01-21T17:44:37.603 回答