Передача AccountID между задачами БП

Добрый день, господа.
Понимаю, что похожая тема неоднократно поднималась, но, видимо, изменения в версиях требуют уточнений.
Моя версия: Terrasoft XRM 3.3.2.43.

Надо: в ходе выполнения бизнес-процесса передать параметр AccountID из одной задачи в другую.

Сделал:

  1. 1. В диаграмме БП создал строковый параметр диаграммы AccounID.
  2. 2. В описание wa_TaskAction добавил строковый параметр элемента AccountID.
  3. 3. В диаграмме БП связал у задач параметр AccountID с соответствующим параметром диаграммы, у первой задачи указав его модификатор как "Входящий\Исходящий".

В коде скрипта wa_TaskActionScript параметр AccountID, насколько я понял, всё-таки сериализуется, поэтому дописывать там ничего не стал.

В итоге: значение контрагента не передается :(

Подскажите, пожалуйста, в чем проблема или каков радиус кривизны рук?

Нравится

5 комментариев

Сергей, Ваше замечание передано для анализа в департамент разработки продуктов.

Пока могу предложить обходное решение: в обработчике OnAfterExecute элемента БП написать код:

if (IsComplete) {
	WFSetParamValue(ActionItem.ParentItems.ParentDiagram, 'AccountID',
		ActionItem.Parameters('AccountID').Value);
}

Для работы данного решения достаточно только добавить в диаграмму параметр AccountID. Элемент "Задача" изменять нет необходимости.

Спасибо, Олег.

Сергей, добрый день.

Для решения проблемы попробуйте внести следующие изменения в функцию wa_TaskActionOnInitialize скрипта wa_TaskActionScript:

function wa_TaskActionOnInitialize(WorkflowAction, ActionItem) {
	WFConnectParams(ActionItem, 'AccountID', 'AccountID', pdtString, wpmitInOut);
	WFConnectParams(ActionItem, 'ContactID', 'ContactID', pdtString, wpmitInOut);
	/* MODULE OPPORTUNITIES */
	WFConnectParams(ActionItem, 'OpportunityID', 'OpportunityID', pdtString, wpmitInOut);
	/* ENDMODULE OPPORTUNITIES */
	WFConnectParams(ActionItem, 'ContractID', 'ContractID', pdtString, wpmitInOut);
	..............
	// аналогичные изменения для остальных параметров
}

Здравствуйте,
Мне нужна помощь, как построит такой процесс: проверить, является ли уже такой клиент в системе. Если нет - создать запись нового клиента, если да – уточнить информацию. Спасибо

Проверку делать либо вручную, либо по конкретным параметрам скриптом.

Не стоит забывать о стандартном функционале, когда при создании нового контрагента и контакта идет проверка существования в системе таких сущностей по указанным в настройках полях (функционал проверки дублей в БД).

Показать все комментарии