0

我想通过 eScript bcAction 查询获取重复操作的所有实例。

我已经发现关于重复动作的内容:

  • 我创建了一个重复动作,重复间隔 = 每天
  • 我可以在 Siebel 日历小程序中看到此操作的多个实例。
  • 如果我通过 eScript 查询所有动作,我会得到一个重复动作的单行,这是所有重复实例的“模板”
  • 如果我通过 Siebel 日历修改特定操作实例,则会为该实例创建一个新行。
  • 如果再次查询所有动作,我会得到 2 个与重复动作相关的动作。“模板”和修改后的实例。
  • 当我在 Siebel 日历中打开一个未更改的重复操作实例并打开菜单“Help -> About Record...”时,我看到该实例的行 id 有点特殊,就像一个临时的 rowid: 8SIA-81UT810/10/2010

到现在为止还挺好。现在我想获取 eScript 中重复动作的所有实例,无论它们是否已更改。就像在 Siebel 日历小程序中一样。

在 Bookshelf 中,我发现了一个很有前途的方法:

CSSBCActivity.SetGridBeginEndDate(startDate, endDate)

它应该将业务组件设置为日历模式。我希望通过这样做,对于给定时间范围内的所有重复操作实例,将创建临时操作行,然后我可以对其进行查询。

var args = new Array(2);
args[0] = "10/01/2010";
args[1] = "10/31/2010";
bcActivity.InvokeMethod("SetGridBeginEndDate", args);
...
bcACtivity.ExecuteQuery(ForwardOnly);

但是,执行查询失败,并出现异常“00/00/0000 无法转换为时间戳”。我跟踪查询并发现以下内容:

SELECT ... FROM SIEBEL.S_EVT_ACT T1 ...
WHERE 
      ((T1.APPT_REPT_FLG = 'Y' AND (T1.APPT_REPT_END_DT IS NULL OR T1.APPT_REPT_END_DT >= '00/00/0000') AND T1.TODO_PLAN_START_DT < '01/02/,)/.' OR T1.TODO_PLAN_START_DT >= '00/00/0000' AND T1.TODO_PLAN_START_DT < '01/02/,)/.' AND T1.APPT_REPT_FLG = 'N' OR T1.TODO_PLAN_START_DT < '00/00/0000' AND T1.TODO_PLAN_END_DT >= '00/00/0000' AND T1.APPT_REPT_FLG = 'N') AND

这里的一些日期文字显然有问题。所以我打赌我做错了什么。知道怎么做吗?谢谢!

4

1 回答 1

0

我发现了错误。InvokeMethod 的参数必须像这样传递:

bcActivity.InvokeMethod("SetGridBeginEndDate", "10/01/2010", "10/31/2010");

获取重复操作的临时实例按预期方式工作。凉爽的!

于 2010-09-29T13:43:51.867 回答