SAPфорум.RU https://sapboard.ru/forum/ |
|
SOAP receiver: очищается динамическая конфигурация https://sapboard.ru/forum/viewtopic.php?f=70&t=93751 |
Страница 1 из 1 |
Автор: | Андрей Петин [ Сб, окт 01 2016, 20:41 ] |
Заголовок сообщения: | SOAP receiver: очищается динамическая конфигурация |
Добрый день. Сделан асинхронно-синхронный мост: JDBC -> SOAP -> JDBC. Некоторые поля из исходного сообщения нужны в обратном мэппинге. Для этого я их в "прямом" мэппинге кладу в динамическую конфигурацию, ожидая их видеть и в ответном сообщении, т.к. получатель синхронный. Однако в ответе этих новых полей в динамической конфигурации нет. Вроде пишут, что SOAP-канал всё это очищает. А можно как-нибудь обойти эту проблему? P.S.: в сценарии FILE -> JDBC (синх.) -> FILE в ответе динамическая конфигурация сохранялась. |
Автор: | Chaser009 [ Пн, окт 03 2016, 05:06 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Здравствуйте! Попробую угадать: это, скорее всего, ICo. Да, именно так и происходит, это известный "прикол". Решить можно просто: До XISOAPAdapterBean ставите АF_Modules/DynamicConfigurationBean с параметрами: key.1 write <dc key namespace> <dc key name> value.1 module.MyValue Этим вы сохраните значение из DC в переменную модуля MyValue. После SOAP-модуля еще раз для обратной операции (чтения): key.1 read <dc key namespace> <dc key name> value.1 module.MyValue Естественно, Module Key должен быть отдельный для каждого. |
Автор: | Андрей Петин [ Пн, окт 03 2016, 09:50 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Добрый день! Да, ICo (у меня 7.4 без абапа). Проблема в том, что значений произвольное количество. То есть, допустим, в запросе есть 10 объектов с идентификаторами и другими данными (номер телефона). Во внешнюю систему (на веб-сервис) передаются только телефоны, а полученные 10 ответов нужно склеить с 10 исходными идентификаторами. Я эти идентификаторы пытался записывать в динамическую конфигурацию в цикле как id[1], id[2] и т.д., а в ответе - считывать. В общем, видимо, придётся осваивать технологию новых BPM. |
Автор: | Андрей Петин [ Пн, окт 03 2016, 11:32 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Chaser009 написал: Решить можно просто Подумал, что можно склеить весь набор идентификаторов в одну строку, т.е. если есть значения 11, 22, 33, то сделать 11#22#33 и сохранять её с неким единственным ключом и использовать ваш способ. А на обратном пути расклеивать в 3 значения. Правда, всё вместе получается как-то не очень изящно, но больше вариантов и не вижу. Либо действительно BPM. |
Автор: | Chaser009 [ Пн, окт 03 2016, 11:49 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Попробуйте, например, запихать целиком XML-дерево. Сам не пробовал, но как вариант. Или параметры в разных местах? |
Автор: | Андрей Петин [ Пн, окт 03 2016, 11:58 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
XML записать в переменную с помощью модуля DynamicConfigurationBean? Попробую изучить такой вариант. Проблема в том, что значения в динамической конфигурации вроде должны укладываться в 200 символов. |
Автор: | Chaser009 [ Пн, окт 03 2016, 12:14 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Тогда еще вариант: в Supplemental Data модуля запихать. Но там, скорее всего, модуль для адаптера писать надо будет. |
Автор: | Андрей Петин [ Пн, окт 03 2016, 12:28 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Ага. Как я понял, предложенный вами в первом сообщении вариант как раз туда и пишет эти данные. То есть нужно понять, как их туда писать не с помощью фиксированного набора ключей из динамической конфигурации, а как-то в цикле. Т.е. например, искать все ключи определенного пространства имён, или начинающиеся на ID*. Если существующие модули не позволяют такое делать, то да, наверное, надо свой писать. |
Автор: | Chaser009 [ Пн, окт 03 2016, 12:32 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
А что за сценарий в целом? |
Автор: | Chaser009 [ Пн, окт 03 2016, 12:47 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Просто если вы с веб-сервиса просто данные тянете какие-то, а не пишете туда что-то, то можно простой асинхронный сценарий с лукапом сделать и не заморачиваться с мостами и сохранениями данных. Дешево и сердито. |
Автор: | Андрей Петин [ Пн, окт 03 2016, 12:56 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Сценарий - отправка SMS-сообщений с использованием внешнего сервиса. С нашей стороны - ID + телефон + текст (читается из БД как JDBC), с той стороны в ответе - только телефон + результат обработки (результат нужно записать также по JDBC). Но множественность - 1..N. И телефон как ключ тут не срабатывает, он может и повторяться. Да может, и lookup сделать лучше, действительно. Просто с Java-мэппингом это сразу станет несколько сложнее в поддержке - если что, перекомпилировать и снова загружать класс, всё такое. Думал, может, без этого получится. |
Автор: | Chaser009 [ Пн, окт 03 2016, 13:03 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Да нет, тут другое: лукапы используются для получения данных - и только. Они не должны изменять состояние данных. Вот представьте: запрос вы выполнили, данные по СМС вылетели, а где-то дальше в сценарии ошибка. При перезапуске повторно СМСки полетят - а это плохо. |
Автор: | Chaser009 [ Пн, окт 03 2016, 13:09 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Если данных много, попробуйте все-таки Supplemental data. Туда, если правильно помню, можно, например, Map с параметрами закинуть. |
Автор: | Андрей Петин [ Пн, окт 03 2016, 13:44 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Chaser009 написал: При перезапуске повторно СМСки полетят - а это плохо. Имеете в виду, что желательно иметь staging на стадии "После мэппинга"? Чтоб если что, то перезапускать не с самого начала? |
Автор: | Chaser009 [ Вт, окт 04 2016, 03:38 ] |
Заголовок сообщения: | Re: SOAP receiver: очищается динамическая конфигурация |
Ну это по ситуации. Я просто имел в виду, что всяческие лукапы настоятельно рекомендуется использовать исключительно для получения данных, без внесения изменений или выполнения каких-то побочных действий. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |