Siebel CSSBCACTIVE.SETGRIDBEGINENDDATE или Как получить все случаи повторяющихся действий в ESCRT?

StackOverflow https://stackoverflow.com/questions/3821766

  •  26-09-2019
  •  | 
  •  

Вопрос

Я хотел бы получить все экземпляры повторяющегося действия через запрос 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");

Получение временных экземпляров повторяющихся действий работает таким образом, как и ожидалось. Прохладный!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top