Siebel CSSBCACTIVE.SETGRIDBEGINENDDATE или Как получить все случаи повторяющихся действий в ESCRT?
Вопрос
Я хотел бы получить все экземпляры повторяющегося действия через запрос BCCACTION.
То, что я уже узнал о повторении действий:
- Я создаю повторяющуюся действие, повторите интервал = ежедневно
- Я вижу несколько экземпляров для этого действия в календарном апплете Siebel.
- Если я запрашиваю все действия по Escript, я получаю единую строку для повторяющихся действий, вроде «шаблон» всех повторяющихся экземпляров
- Если я изменим определенный экземпляр действий через Siebel Calendar, для этого экземпляра создается новая строка.
- Если запросить все действия снова, я получаю 2 действия, которые относятся к повторению действий. «Шаблон» и модифицированный экземпляр.
- Когда я открываю неизменную повторяющуюся экземпляр действий в календаре Siebel и открытым меню «Help -> о записи ...», я вижу, что идентификатор рядка экземпляра как-то особенный, как временная ROWID:
8SIA-81UT810/10/2010
Все идет нормально. Теперь я хочу получить все случаи повторяющихся действий в Escript, были ли они изменены или нет. Как и в каландре Siebel Calender.
На книжной полке я нашел многообещающий метод:
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
Очевидно, что-то не так с некоторыми датами литералы здесь. Итак, держу пари, я делаю что-то не так. Любая идея, как это сделать правильно? Спасибо!
Решение
Я нашел ошибку. Параметры invokeMethod должны быть переданы так:
bcActivity.InvokeMethod("SetGridBeginEndDate", "10/01/2010", "10/31/2010");
Получение временных экземпляров повторяющихся действий работает таким образом, как и ожидалось. Прохладный!