Текущее время: Пн, дек 11 2017, 08:11

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Вт, апр 22 2014, 10:13 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Коллеги, добрый день!

Вопрос: можно ли как-то в файловом адаптере выдернуть имя файла и сохранить его в payload сообщения?

Я пытался так:
В модулях добавляю

AF_Modules/DynamicConfigurationBean dc
AF_Modules/PutPayloadValueBean ppl

В параметрах

dc key.0 write http://sap.com/xi/XI/System/File FileName
dc value.0 module.fileName
ppl put:/ns0:MT_XLS_Message/FileName module.fileName
ppl xmlns xmlns:ns0="urn:XLS_to_XML"

Вылетает в ошибку, как я понимаю, на вызове PutPayloadValueBean. Причем ощущение, что не нравится именно module.fileName в качестве параметра, так как если поставить что-то типа "какое-то значение", то все чудесно работает.

Вот думаю: вообще возможно такое действие?

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Вт, апр 22 2014, 12:25 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, дек 06 2011, 11:11
Сообщения: 78
В меппинге достать из динамик конфигурейшн и затолкать в пейлоад.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Вт, апр 22 2014, 12:55 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 18:44
Сообщения: 986
Откуда: что и все
Пол: Мужской
и не забыть поставить "Set ASMA" в канале.

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Вт, апр 22 2014, 15:28 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Jey1977 писал(а):
В меппинге достать из динамик конфигурейшн и затолкать в пейлоад.


chumpa писал(а):
и не забыть поставить "Set ASMA" в канале.


Да не вопрос :-) Дело в том, что мэппинга нет. Структура сообщения рождается в моем модуле адаптера. Я, конечно, уже в модуле выхватил нужные данные и положил, куда нужно. Но просто интересно: вроде теоретически должно работать, хотя именно в таком варианте я примеров не находил. Вроде достать из Dynamic Configuration и положить в переменную контекста модуля можно. Взять из переменной и записать в пэйлоад тоже. Но почему-то оно у меня не работает.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Вт, апр 22 2014, 15:44 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, дек 06 2011, 11:11
Сообщения: 78
Chaser009 писал(а):
Вроде достать из Dynamic Configuration и положить в переменную контекста модуля можно. Взять из переменной и записать в пэйлоад тоже. Но почему-то оно у меня не работает.


Не логично. А куда писать в пейлоад? В какое место? Преобразовывть его как-то?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Ср, апр 23 2014, 03:08 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Jey1977 писал(а):
Не логично. А куда писать в пейлоад? В какое место? Преобразовывть его как-то?


Chaser009 писал(а):
ppl put:/ns0:MT_XLS_Message/FileName module.fileName
ppl xmlns xmlns:ns0="urn:XLS_to_XML"


Вроде все логично: указываете XPath-выражение, куда писать, и все отлично пишется. Ничем не отличается, на мой взгляд, от записи в мэппинге или java-коде.



Вот что интересно: в адаптере-отправителе просто отказывалось работать с ошибкой "Module exception: null".
Перенес в канал-получатель. Там DynamicConfigurationBean отрабатывает:
write property fileName from key (http://sap.com/xi/XI/System/File)FileName with value XLStoXML.xls;
Дальше пошел PutPayloadValueBean:
PutPayloadValueBean: contextKey =fileName
PutPayloadValueBean: put:xpath =/ns0:MT_XLS_Message/@ReturnAddress
MP: exception caught with cause com.sap.aii.af.lib.mp.module.ModuleException: PutPayloadValueBean: Value cannot be null

Ощущение, что второй модуль не видит переменную, созданную первым.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Ср, апр 23 2014, 10:45 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, дек 06 2011, 11:11
Сообщения: 78
Chaser009 писал(а):
Ничем не отличается, на мой взгляд, от записи в мэппинге или java-коде.


Наверное. Только еще файл дополнительно парсите. Да и непонятно что делать если ошибка при этом будет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Ср, апр 23 2014, 11:03 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Jey1977 писал(а):
Наверное. Только еще файл дополнительно парсите. Да и непонятно что делать если ошибка при этом будет.


Мы, наверное, не совсем понимаем друг друга :-) Парсинг файла модулем - это отдельная задача. А подхватить атрибут в адаптере - это попутно, возникла позже. И может понадобиться в иных случаях.
Конечно, можно UDF'ы клонировать для каждого компонента, но почему не воспользоваться возможностью получить требуемое без написания кода?

Правда, похоже, фокус не удался...

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сохранить имя файла в payload в адаптере
СообщениеДобавлено: Чт, ноя 23 2017, 19:08 
Начинающий
Начинающий

Зарегистрирован:
Чт, сен 28 2017, 17:51
Сообщения: 3
DynamicConfigurationBean stores the value in the module context under keys that begin with "module."
However, PutPayloadValueBean retrieves the value in the module context with prefix "ValueBean.".
So the two modules are not compatible

Взято отсюда
https://archive.sap.com/discussions/thread/3884251


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB