Руководство пользователя Semantic MDM
×
Меню
Индекс

Методы для работы с импортируемым объектом

 

Методы ProcessedRootObject(ProcessObject)

 

Методы ProcessObject

 

Методы List<ProcessedValue>

Скриптовой язык Groovy, предоставляет возможность с помощью анонимных функций (Closure) выполнить поиск атрибута (ProcessedValue) в списке (List<ProcessedValue>) по любому его свойству с помощью метода find(). Так, например, можно найти атрибут в списке как по наименованию атрибута для внешней системы (getName()), так и по идентификатору атрибута Semantic MDM (getPropertyId()). Подробнее о методах класса ProcessedValue в разделе Методы для чтения данных из Semantic MDM.
С помощью добавления/удаления атрибутов из списка, возвращаемого функцией getValues(), можно выполнять изменение состава атрибутов импортируемого объекта. Такая возможность необходима для того, чтобы привести состав атрибутов импортируемого объекта к составу атрибутов группы (ProcessedObject.getMdmNodeId) Semantic MDM, в которую будет выполняться импорт.
 
Получение атрибута из списка List<ProcessedValue>
Пример получения атрибута по наименованию для внешней системы:
ProcessedValue FindedVal = root.getValues().find {element -> element.getName()=="CA_TYPE"};
if (FindedVal != null)
{ /*... сделать что-то если атрибут нашли ...*/}
else
{ /*... сделать что-то если атрибут НЕ нашли ... */}
 
Пример получения атрибута по идентификатору атрибута Semantic MDM:
ProcessedValue FindedVal = root.getValues().find {element -> element. getPropertyId()==@[Тип контрагента].toId()};
if (FindedVal != null)
{ /*... сделать что-то если атрибут нашли ...*/ }
else
{ /*... сделать что-то если атрибут НЕ нашли ... */ }
 
Добавление атрибута в список List<ProcessedValue>
Пример добавления строкового атрибута “Тип контрагента” со значением “ЮЛ”:
List<ProcessedValue> Values = root.getValues();
ProcessedValue NewValue = new ProcessedValue(propertyId: @[Тип контрагента].toId(), stringValue: "ЮЛ");
root.getValues().add(NewValue);
 
Пример добавления атрибута “Сопроводительный документ” со ссылкой на позицию с известным UUID:
List<ProcessedValue> Values = root.getValues();
ProcessedValue NewValue = new ProcessedValue(propertyId: @[Сопроводительный документ].toId(), processObject: new ProcessObject(mdmId: "6f667c55-8629-11ea-9c9c-f079596e5df8"));
root.getValues().add(NewValue);
 
Пример добавления атрибута “Сопроводительный документ” со ссылкой на позицию с известным идентификатором объекта в текущей внешней системе, из которой выполняется импорт:
ProcessedValue NewValue = new ProcessedValue(propertyId: @[Сопроводительный документ].toId(), processObject: new ProcessObject(sourceId: "6f667c55-8629-11ea-9c9c-f079596e5df8"));
root.getValues().add(NewValue);
 
Удаление атрибута из списка List<ProcessedValue>
Пример удаления атрибута “Тип контрагента”:
//Найдем атрибут по идентификатору атрибута Semantic MDM
List<ProcessedValue> ListValues = root.getValues();
int FindedIdx = ListValues.findIndexOf {it.getName()=="CA_TYPE"};
if (FindedIdx >= 0) {
  ListValues.remove(FindedIdx);
}
 
Пример удаления всех атрибутов у импортируемого объекта:
//Найдем атрибут по идентификатору атрибута Semantic MDM
root.getValues().clear();
 
 

Методы ProcessedValue

Чтение информации об атрибуте обменного класса из ProcessedValue
 
Чтение/запись единичных значений в ProcessedValue
Предполагается, что при разработке скрипта разработчику известно к какому типу данных принадлежит значение, которое должно храниться в ProcessValue, и является оно множественным или единичным. Исходя из этой информации, разработчик должен использовать соответствующие методы для чтения и записи значений в атрибут.
 
Чтение/запись множественных значений в ProcessedValue
 

Методы ExchangeComplexDouble