我想通过 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
这里的一些日期文字显然有问题。所以我打赌我做错了什么。知道怎么做吗?谢谢!