Я хотел бы получить все экземпляры повторяющегося действия с помощью запроса eScript bcAction.
Что я уже узнал о повторяющихся действиях:
- Я создаю повторяющееся действие, повторяющийся интервал = ежедневно
- Я вижу несколько экземпляров этого действия в Siebelапплет календаря.
- Если я запрашиваю все действия по eScript, я получаю одну строку для повторяющегося действия, своего рода «шаблон» всех повторяющихся экземпляров
- Если я изменяю конкретный экземпляр действияс помощью календаря Siebel для этого экземпляра создается новая строка.
- Если запросить все действия снова, я получу 2 действия, которые относятся к повторяющемуся действию.«Шаблон» и измененный экземпляр.
- Когда я открываю неизменный повторяющийся экземпляр действия в календаре Siebel и открываю Меню «Справка -> О записи ...», я вижу, что идентификатор строки экземпляракак-то особенный, как временный rowid:
8SIA-81UT810/10/2010
Пока все хорошо.Теперь я хочу получить все экземпляры повторяющегося действия в eScript, независимо от того, были они изменены или нет.Как и в апплете с календарем Siebel.
В Книжной полке я нашел многообещающий метод:
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
Здесь явно что-то не так с некоторыми литералами даты.Спорим, я делаю что-то не так.Есть идеи, как это сделать правильно?Спасибо!