Удаление записей в целевой системе по условию.

2
solutions
N

Удаление записей в целевой системе по условию.


  • Петр Лещенок (ESB Team)
  • 12/23/2020 11:53:24 AM

Как сделать так, что бы в целевой системе удалялись только те записи, которые соответствуют некоторому условию?


2 Solutions


  • Петр Лещенок (ESB Team)
  • 12/23/2020 4:45:49 PM

https://docs.t2plus.ru/integration/samples/T10111.html


  • Петр Лещенок (ESB Team)
  • 12/23/2020 5:00:10 PM

Рассмотрим на примере. Допустим, что интегрированы две информационные системы. Источник нам не важен, но приемником, для примера, является Галактика AMM. Из системы-источника в систему-приемник передаются единицы измерения. Все конвейеры настроены, и интеграция работает успешно.

Предположим, нам необходимо изменить способ обработки сообщений об необходимости удаления единицы измерения в системе-приемнике, таким образом, чтобы не удалялись записи в наименовании которых присутствует фраза «Не удалять».

Для этого необходимо в конвейер получения перед операцией «Удалить объекты ИС» добавить новую вышестоящую операцию.

Назовем ее «Условие удаления»

Конвейер после этого должен выглядеть следующим так.

 

Далее в редакторе исходного кода операции «Условие удаления» необходимо вставить между тегами //#usercode.begin и //#usercode.end следующий код:


// словарь для удаляемых объектов
var entitiesToRemove = new Dictionary<IMainEntity, TType>();

// наполняем список удаляемых объектов
foreach (var entity in context.Entities)
{
	// пропускаем единицу измерения содержащую в наименовании "Не удалять"
	if (entity.Value.Наименование.Contains("Не удалять"))
		continue;

	entitiesToRemove.Add(entity.Key, entity.Value);
}

// заменяем список со всеми объектами к удалению на отфильтрованный список
context.Entities = entitiesToRemove;


После этого сохранить, зафиксировать и отправить в рабочую модель внесенные изменения. После активации модели, при передаче из системы-источника в систему-приемник сообщений об удалении той или иной единицы измерения, те из них которые будут содержать в наименовании фразу «Не удалять» будут проигнорированы и не будут удалены из системы-приемника.




TID:
T10111

Created On:
12/23/2020 11:53:24 AM