Как я могу получить доступ к свойству контекста (имя входящего файла) в преобразовании (пользовательский xslt)?

Много исторических сообщений о BizTalk Context Accessor (CodePlex), но все ссылки не работают. Существует ли современный функтоид/компонент доступа к контексту, который можно использовать сегодня? Или есть ли другой способ, например, создать вспомогательный класс или что-то в этом роде?

Моя цель — добавить имя файла (без пути) в целевое сообщение на карте с помощью пользовательского XSLT. Нет существующей оркестровки, только выбор файла и запуск карты для преобразования сообщения из исходного формата в целевой (для этого требуется добавить к нему имя исходного файла...).

Там нет ни одного доступного там в Интернете. У меня есть копия этого кода, который был обновлен и улучшен для BizTalk 2010, но он даже не компилируется в Visual Studio 2013 для BizTalk 2013R2. Я мог бы отправить вам эту кодовую базу, если интересно. Альтернативой Context Accessor является компонент конвейера BRE, где вы можете вводить что-то в полезную нагрузку, чтобы карта могла использовать ее.

Dijkgraaf 29.03.2022 22:50

@Dijkgraaf, да, меня интересует эта кодовая база (по крайней мере, для моего понимания того, что она на самом деле делает).

JERKER 30.03.2022 10:36

Аксессор контекста для входящего конвейера использует двухэтапный подход. Первый компонент конвейера будет хранить API «Контекст» (доступный в конвейерах) в переменной «Локальное хранилище потока». Его можно разместить на любом этапе до преобразования. Функция извлечет это значение и, таким образом, получит доступ к контексту. Поскольку конвейер будет работать в одном потоке (по крайней мере, до BT 2016).

Marvin Smit 30.03.2022 14:31

@MarvinSmit Вы автор средства доступа к контексту? Я вижу ваше имя в заголовке пайплайна и функтоидов :-) Если да, могу ли я опубликовать код здесь?

Dijkgraaf 30.03.2022 21:57

@Dijkgraaf Я являюсь автором этого кода. Раньше я преподавал для DevelopMentor (BizTalk был одним из курсов, которые я проходил) и давал его любому слушателю, который хотел. Так что да, не стесняйтесь делать код доступным для разработчиков.

Marvin Smit 31.03.2022 13:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
32
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Альтернативой функции доступа к контексту является использование Структура конвейера BRE, чтение свойства контекста и вставка его в полезные данные XML.

Ответ принят как подходящий

Я решил свою проблему (на этот раз) с помощью оркестровки, в которой я могу легко получить доступ к контексту входящего сообщения, а после сопоставления ввести/обновить исходящее сообщение с именем файла.

Мне нужно было решить еще одну проблему, которая на этот раз помогла мне принять оркестровку в качестве решения. Две мухи одним махом.

(Проблема заключалась в том, заметьте для себя, что я хотел повторно использовать схему назначения в другом сценарии депакетирования, т. е. это была схема конверта. Забавно, BizTalk не смог разрешить схему содержимого тела, если карта была запущена в порту получения. Однако работающая карта внутри оркестровки он смог разрешить схему содержимого тела и сопоставление со схемой конверта, поскольку назначение работало.)

Другие вопросы по теме