Методы для работы с экспортируемым объектом
Методы ExportRootObject (exportObject)
-
boolean getConformsExportRestriction () – удовлетворяет условиям экспорта (true – удовлетворяет / false – не удовлетворяет);
-
String getExchangeClassId() – получить идентификатор обменного класса, для экспортируемого объекта;
-
String getExternalSystemId() – получить идентификатор внешней системы, в которую экспортируется объект.
Методы ExportObject
-
List<ExportSourceId> getSourceIds() – получить идентификаторы внешней системы, с которыми связана экспортируемая позиция. Если для системы, в которую экспортируется позиция, в опции “Формировать сообщение на экспорт” установлен режим “для каждой позиции”, то список будет содержать все идентификаторы объектов внешней системы, в которую выполняется экспорт. Если для системы в которую экспортируется позиция, в опции “
Формировать сообщение на экспорт” установлен режим “для каждого переходного ключа”, то сообщение экспорта будет сформировано для каждого идентификатора внешней системы, в которую выполняется экспорт, при этом для каждого идентификатора дубликата (с флагом
isDuplicate() =true), список
getSourceIds() будет дополнен идентификатором объекта оригинала (с флагом
isDuplicate() =false).
Свойства ExportSourceId:
-
String getValue() – идентификатор объекта во внешней системе.
-
Boolean isDuplicate() – признак дубликата (true – дубликат / false - оригинал).
-
setSourceIds(List<ExportSourceId>) – записать в экспортируемый объект информацию о связанных с ним идентификаторах внешних объектов. Данный метод может быть востребован для инициализации нового
ExportObject, созданного через оператор new в Groovy скрипте.
-
String getMdmId() – получить uuid экспортируемой позиции Semantic MDM.
-
setMdmId() – записать uuid позиции Semantic MDM. Данный метод может быть востребован только для инициализации нового
ExportObject, созданного в Groovy скрипте через оператор new.
-
getMdmNodeId() – получить uuid группы, которой принадлежит экспортируемая позиция.
-
ItemStatus getStatus() – получить статус экспортируемой позиции. Возможные значения:
-
ItemStatus.Abnormal (Не нормализована),
-
ItemStatus.Standardized (Нормализована),
-
ItemStatus.Blocked (Заблокирована),
-
ItemStatus.Removed (Удалёна)
-
ItemStatus.Duplicate (Дубликат)
-
List<ExportValue> getValues() – получить список экспортируемых значений атрибутов. Допускается редактирование полученного списка (
List<ExportValue>) через добавление нового или удаление существующего атрибута со значением.
Методы List<ExportValue>
Скриптовой язык Groovy, предоставляет возможность с помощью анонимных функций (
Closure) выполнить поиск атрибута (
ExportValue) в списке (
List<ExportValue>) по любому его свойству с помощью метода
find() или
findAll(). Так, например, можно найти атрибут в списке по его наименованию для внешней системы (
getName()) или по любому другому свойству, доступному в
ExportValue. Подробнее о методах класса
ExportValue в пункте
Методы для чтения данных из Semantic MDM.
С помощью добавления / удаления атрибутов из списка, возвращаемого функцией getValues(), можно выполнять изменение состава атрибутов экспортируемого объекта. Такая возможность необходима для того, чтобы привести состав атрибутов экспортируемого объекта к составу атрибутов справочника внешней системы.
Получение атрибута из списка List<ExportValue>
Пример получения атрибута по наименованию для внешней системы:
ExportValue FindedVal = exportObject.getValues().find {element -> element.getName()=="CA_TYPE"};
if (FindedVal != null)
{ /*... сделать что-то если атрибут нашли ...*/}
else
{ /*... сделать что-то если атрибут НЕ нашли ... */}
Добавление атрибута в список List<ProcessedValue>
Пример добавления строкового атрибута “CA_TYPE” со значением “ЮЛ”:
List<ExportValue> Values = exportObject.getValues();
ExportValue NewValue = new ExportValue(name: "CA_TYPE", stringValue: "ЮЛ");
exportObject.getValues().add(NewValue);
Пример добавления атрибута “DOCUMENT” с вложенным в него атрибутом “CODE”:
//Создадим вложенный объект с атрибутом CODE
ExportObject ValObj = new ExportObject();
ValObj.getValues().add(new ExportValue(name: "CODE", stringValue: "ГОСТ 1050-88"));
//Добавим новый атрибут DOCUMENT с созданным ранее объектом
exportObject.getValues().add(new ExportValue(name:"DOCUMENT", objectValue: ValObj));
Пример добавления атрибута “DOCUMENT” со ссылкой на позицию с известным идентификатором объекта во внешней системе:
//Создадим новый вложенный объект
ExportObject ValObj = new ExportObject();
//Пропишем в него ссылку на объект внешней системы
ValObj.setSourceIds([new ExportSourceId(value: "6f667c55-8629-11ea-9c9c-f079596e5df8", duplicate: false)]);
//Добавим новый атрибут DOCUMENT с созданным ранее объектом
exportObject.getValues().add(new ExportValue(name:"DOCUMENT", objectValue: ValObj));
Пример добавления атрибута “EXTERNAL_KEY” с переходным ключом:
SystemKeyTransfer key = new SystemKeyTransfer(systemId:"TEAMCENTER", sourceId: "gjt8rvZnjbRp1fcAZ")
exportObject.getValues().add(new ExportValue(name:"EXTERNAL_KEY", systemKey: key));
Удаление атрибута из списка List<ProcessedValue>
Пример удаления атрибута “CA_TYPE”:
//Найдем атрибут по идентификатору атрибута Semantic MDM
List<ProcessedValue> ListValues = exportObject.getValues();
//Получим индекс атрибута
int FindedIdx = ListValues.findIndexOf {it.getName()=="CA_TYPE"};
if (FindedIdx >= 0) {
ListValues.remove(FindedIdx);
}
Пример удаления всех атрибутов у экспортируемого объекта:
//Найдем атрибут по идентификатору атрибута Semantic MDM
exportObject.getValues().clear();
Методы ExportValue
Чтение/запись имени атрибута обменного класса из ExportValue
-
String getName() – получить наименование атрибута для внешней системы
-
setName(String name) –записать наименование атрибута для внешней системы. Востребовано только при создании
ExportValue через оператор
new.
Чтение/запись единичных значений в ExportValue
Чтение/запись множественных значений в ExportValue
-
List<String> getStringValues() – получить список строковых значений атрибута для строкового типа данных.
-
setStringValues(List<String> values) – записать список строковых значений в атрибут для строкового типа данных.
-
List<Date> getDateValues() - получить список значений атрибута типа Дата.
-
setDateValues(List<Date> values) – записать список значений типа дата в атрибут.
-
List<Integer> getIntValues() - получить список числовых значений атрибута.
-
setIntValues(List<Integer> values) – записать список числовых значений в атрибут.
-
List<ExchangeComplexDouble> getComplexDoubleValue() – получить список значений чисел с плав. запятой из атрибута.
-
setComplexDoubleValues(List<ExchangeComplexDouble> values) – записать список значений чисел с плав. запятой в в атрибут
-
List<ExportObject> getObjectValues() – получить список вложенных объектов из атрибута.
-
setObjectValues(List<ExportObject> values) – записать список вложенных объектов в атрибут.
-
List<ExchangeFile> getFileValues() – получить информацию о хеше и имени экспортируемого файла
-
setFileValues(List<ExchangeFile> values) – записать новый список файлов с указанием хеша и имени экспортируемого файла для каждого элемента списка. Получить хеш и имя файла из позиции
Semantic MDM можно с помощью функции:
getItemPropertyValues.
Методы ExchangeComplexDouble
-
String getMeasurementUnit – получить гуид единицы измерения Semantic MDM, в которой она должна отображаться в Semantic MDM;
-
ValueDoubleTransfer getValue – получить объект класса
ValueDoubleTransfer со следующими методами:
-
double value – содержит основное значение атрибута в базовой единице измерения, если из внешней системы передается простое число с плав. запятой или число с отклонениями. Отклонения для числа с плав. запятой будут храниться в min и max соответственно. Для диапазона, должно содержать центральное значение диапазона, к которому при прибавлении значения из min, получаем нижнюю границу отклонения, а при прибавлении значения из max, верхнее отклонение;
-
double min – получить значение нижнего отклонения;
-
double max – получить значение верхнего отклонения;
-
encodedString – строковое кодированное значение, содержит значения
value,
min и
max в той ЕИ, в которой задал значение пользователь. Значение в
encodedString кодируется следующим образом:
value=<среднее число >;
min=<нижнее отклонение, всегда меньше нуля>;
max=<верхнее отклонение, всегда больше нуля>;
measure=<числовой идентификатор ЕИ>;
precision=<количество знаков после запятой для округления>;
type=<тип ЕИ: “NORMAL”, “RANGE”, “DEFLECTIONS”>. Примеры кодированной строки
encodedString:
-
200 мм: “value=200;min=0;max=0;measure=313;precision=5;type=NORMAL”
-
300 – 400 мм: “value=0;min=300;max=400;measure=313;precision=5;type=RANGE”
-
10(-0.1;0.15) мм: “value=10;min=-0.1;max=0.15;measure=313;precision=5;type=DEFLECTIONS”