Добрый день,
Я создал свой Workflow Action, в котором один из параметров имеет тип "Массив". Для редактирования сделал отдельное окно, и попытался реализовать сохранение и загрузку значений параметра по аналогии с текстовым параметром:
function LoadData(DiagramItem) {
// заберем значения в свою переменную
MyObject.IDs = WFGetParamsMapItemValue(DiagramItem, 'IDs');
}
function SaveData(DiagramItem) {
WFSetParamsMapItemValue(DiagramItem, 'IDs', MyObject.IDs, wptArray);
}
При сохранении бизнес-процесса, на который поставлен этот Action, происходит ошибка "Тип 'varDispatch' не поддерживается".
Попробовал вместо непосредственно коллекции значений параметра использовать массив, вот так:
function LoadData(DiagramItem) {
// заберем значения в свою переменную
MyObject.IDs = GetArrayByCollection(WFGetParamsMapItemValue(DiagramItem, 'IDs'));
}
function SaveData(DiagramItem) {
var Value = WFGetParamsMapItemValue(DiagramItem, 'IDs');
Value.Clear();
for (var i = 0; i MyObject.IDs.length; i++)
Value.Add(MyObject.IDs[i]);
}
В этом случае все работает нормально, пока не закрою бизнес-процесс. То есть, создаю новый БП, ставлю на него свой Action, в окне редактирования в список добавляю несколько значений, закрываю окно. Сохраняю бизнес-процесс, опять дважды щелкаю на Action-е - открывается окно редактирования со списком значений. Вроде все хорошо. Но когда я закрываю сервис БП и открываю его снова, затем дважды щелкаю на Action-е - список значений пуст.
Подскажите пожалуйста, что я делаю не так? :)
Версия Х25 3.3.0.46
Нравится
Может использовать ни массив, а TSObjectLibrary.StringsList
var MyObject = new Object(); function LoadData(DiagramItem) { // заберем значения в свою переменную MyObject.IDs = System.CreateObject('TSObjectLibrary.StringsList'); MyObject.IDs.CommaText = WFGetParamsMapItemValue(DiagramItem, 'IDs'); } function SaveData(DiagramItem) { WFSetParamsMapItemValue(DiagramItem, 'IDs', MyObject.IDs.CommaText, wptString); }
Да, это вариант, спасибо.
Но все же интересно, как работать с параметром типа Массив, раз уж такой есть :)
То что есть такой тип, еще не означает что с ним можно работать :)