Адаптер |
Идентификатор |
Роль |
ERP |
ERP_01 |
Источник |
EAM |
EAM_01 |
Приемник |
Источник ERP
Сопоставление с сущностями ИС адаптера ERP
Основная |
Сущность ИС |
Отслеживать операции |
Полное наименование |
Отключено |
True |
KATED |
Создание;Изменение;Удаление |
Galaktika.ESB.Adapter.Atlantis.Api.KATED |
False |
KATED
Сопоставление
Свойство приложения |
Тип свойства приложения |
Свойство модели |
Тип свойства модели |
Не используется |
NAME |
Свойство |
name |
Свойство |
False |
ABBR |
Свойство |
abbr_name |
Свойство |
False |
Условие публикации
// Если операция удаления
if (OperationType == Galaktika.ESB.Contract.TypeStorageOperation.Delete)
{
LogService.Info("Публикация удаления (D---1): unit");
return true;
}
// Если операция создания или изменения
// Проверка на существование объекта
if (AppEntity == null)
{
LogService.Error("Условие публикации (D---1): unit => AppEntity == null");
return false;
}
// Публикация
if (!String.IsNullOrWhiteSpace(AppEntity.CODE)) // Передаются только те ЕИ, у которых заполнено свойство CODE
{
LogService.Info("Публикация (D---1): unit => NREC = {0}", AppEntity.NREC);
return true;
}
После сопоставления
Logger.LogInformation("После сопоставления (B): unit");
// Получение значения для атрибута «divisibility»
if (appEntity.DISKRET == (System.Int32)1)
mainEntity.divisibility = (System.Int32)0;
else
mainEntity.divisibility = (System.Int32)1;
// Получение значения для атрибута «Код»
int wTable = 1412; // KatEd
mainEntity.code = T2.DIP.ERP.Functions.ExtAttr_sGetAttr(wTable, appEntity.NREC, "Код");
Logger.LogInformation("После сопоставления (E): unit");
Приемник EAM
Сопоставление с сущностями ИС адаптера EAM
Основная |
Сущность ИС |
Отслеживать операции |
Полное наименование |
Отключено |
True |
ЕдиницаИзмерения |
Не задано |
PromAktiv.Core.CD.Module.ITM.ЕдиницаИзмерения |
False |
Сопоставление
Свойство приложения |
Тип свойства приложения |
Свойство модели |
Тип свойства модели |
Не используется |
ExternalID |
Свойство |
object_id |
Свойство |
False |
Наименование |
Свойство |
name |
Свойство |
False |
АББР |
Свойство |
abbr_name |
Свойство |
False |
Код |
Свойство |
code |
Свойство |
False |
Делимость |
Свойство |
divisibility |
Свойство |
False |
После сопоставления
Logger.LogInformation("После сопоставления (B): unit");
// Установка статуса объекта
appEntity.СтатусОбъекта = Xafari.BC.StatusTypes.Published;
Logger.LogInformation("После сопоставления (E): unit");
Получение объекта
LogService.Info("Получение объекта (B): unit");
//
Result.CreationHandled = false; // Не финальная обработка
Result.CreatedObject = null;
// Поиск существующей ЕИ по коду АСУ НСИ
var ed = ((Galaktika.ESB.Adapter.XAF.Adapter.XafContext)Session.EsbContext).ObjectSpace.FindObject<PromAktiv.Core.CD.Module.ITM.ЕдиницаИзмерения>(
DevExpress.Data.Filtering.CriteriaOperator.Parse("Код = ?", MainEntity.code_asu_nsi));
if (ed != null)
Result.CreatedObject = ed;
else
{
Result.CreatedObject = restier.CreateAppEntity<PromAktiv.Core.CD.Module.ITM.ЕдиницаИзмерения>(Session);
ed = (PromAktiv.Core.CD.Module.ITM.ЕдиницаИзмерения)Result.CreatedObject;
ed.ExternalID = MainEntity.object_id;
ed.Код = MainEntity.code_asu_nsi;
ed.OKEI = MainEntity.okei_code;
ed.АББР = MainEntity.name;
ed.Наименование = MainEntity.full_name;
}
LogService.Info("Получение объекта (E): unit => {0}", !Result.CreationHandled);