Адаптер |
Идентификатор |
Роль |
ERP |
ERP_01 |
Источник |
EAM |
EAM_01 |
Приемник |
Источник ERP
Сопоставление с сущностями ИС адаптера ERP
Основная |
Сущность ИС |
Отслеживать операции |
Полное наименование |
Отключено |
True |
KATOS |
Создание;Изменение;Удаление |
Galaktika.ESB.Adapter.Atlantis.Api.KATOS |
False |
KATOS
Сопоставление
Свойство приложения |
Тип свойства приложения |
Свойство модели |
Тип свойства модели |
Не используется |
INNUM |
Свойство |
code |
Свойство |
False |
NAMEOS |
Свойство |
name |
Свойство |
False |
ZAVNOM |
Свойство |
fac_num |
Свойство |
False |
PSNUM |
Свойство |
pass_num |
Свойство |
False |
GODV |
Свойство |
rel_date |
Свойство |
False |
DATEK |
Свойство |
input_date |
Свойство |
False |
DATOK |
Свойство |
deliv_date |
Свойство |
False |
DATV |
Свойство |
retir_date |
Свойство |
False |
KOL |
Свойство |
quantity |
Свойство |
False |
CPODR |
Свойство |
dept_id |
Свойство |
False |
CED |
Свойство |
unit_id |
Свойство |
False |
Условие публикации
public override Task ExecuteAsync(FilterContext context)
{
var result = context.EntityData.Where(e =>
{
// Если операция удаления
if (e.TypeStorageOperation == T2.DIP.AppStorage.Abstractions.Enums.TypeStorageOperation.Delete)
{
Logger.LogInformation("Публикация удаления (D---1): finan_assset");
return true;
}
// Если операция создания или изменения
//Публикация
if (e.AppEntity.TIDK == 15)
{
Logger.LogInformation("Условие публикации (D---1): finan_assset => (TIDK) => NREC = {0}", e.AppEntity.NREC);
return true;
}
return false;
}).ToList();
context.EntityData = result;
return Task.CompletedTask;
}
После сопоставления
Logger.LogInformation("После сопоставления (B): finan_asset");
// Служебные объекты
var appDataService = GetAppDataService(context);
var locator = context.GetKeyLocator();
var pipeContext = context.GetAppDataContext();
var spKatOS = appDataService.GetAppEntity<T2.DIP.ERP.DataTypes.Storage.SPKATOS>( p => p.CKATOS == appEntity.NREC);
if (spKatOS != null)
{
mainEntity.cost = (System.Decimal)spKatOS.STOIM;
mainEntity.wear_sum = (System.Decimal)spKatOS.SUMIZN;
System.Decimal factor = 1;
if (T2.DIP.ERP.Functions.TfwGetTune("OS.SROKISPEDIZM") == 1)
factor = 12;
mainEntity.use_period = ((System.Decimal)spKatOS.SROKISP) * factor;
mainEntity.use_period_after = ((System.Decimal)spKatOS.ISPCUR) * factor;
mainEntity.use_period_before = ((System.Decimal)spKatOS.ISPPS) * factor;
}
Logger.LogInformation("После сопоставления (E): finan_asset");
Приемник EAM
Сопоставление с сущностями ИС адаптера EAM
Основная |
Сущность ИС |
Отслеживать операции |
Полное наименование |
Отключено |
True |
ОсновноеСредство |
Не задано |
PromAktiv.Module.ОС.ОсновноеСредство |
False |
ОсновноеСредство
Сопоставление
Свойство приложения |
Тип свойства приложения |
Свойство модели |
Тип свойства модели |
Не используется |
ExternalID |
Свойство |
object_id |
Свойство |
False |
Код |
Свойство |
code |
Свойство |
False |
Наименование |
Свойство |
name |
Свойство |
False |
НомерПаспорта |
Свойство |
pass_num |
Свойство |
False |
ЗаводскойНомер |
Свойство |
fac_num |
Свойство |
False |
ДатаВыпуска |
Свойство |
rel_date |
Свойство |
False |
ДатаВвода |
Свойство |
input_date |
Свойство |
False |
ДатаПоступления |
Свойство |
deliv_date |
Свойство |
False |
ДатаВыбытия |
Свойство |
retir_date |
Свойство |
False |
Количество |
Свойство |
quantity |
Свойство |
False |
СтоимостьОС |
Свойство |
cost |
Свойство |
False |
СуммаИзносаОС |
Свойство |
wear_sum |
Свойство |
False |
ПроизводственнаяЕдиница |
Свойство |
dept_id |
Свойство |
False |
СрокПолезнИсп |
Свойство |
use_period |
Свойство |
False |
СрокИспПосле |
Свойство |
use_period_after |
Свойство |
False |
СрокИспДо |
Свойство |
use_period_before |
Свойство |
False |
Unit |
Свойство |
unit_id |
Свойство |
False |
Получение объекта
LogService.Info("Получение объекта (B): finan_asset");
// Инициализация структуры Result
Result.CreatedObject = null;
Result.CreationHandled = false;
//
var xafSession = ((Galaktika.ESB.Adapter.XAF.Adapter.XafContext)Session.EsbContext).ObjectSpace as DevExpress.ExpressApp.Xpo.XPObjectSpace;
//
var finan_asset = xafSession.FindObject<PromAktiv.Module.ОС.ОсновноеСредство>(
DevExpress.Data.Filtering.CriteriaOperator.Parse("Код = ?", MainEntity.code));
Result.CreatedObject = finan_asset;
LogService.Info("Получение объекта (E): finan_asset");