Текущее время: Чт, апр 18 2024, 15:19

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




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Интерфейс с сайтом ЦБ РФ по закачке курсов валют
СообщениеДобавлено: Пт, дек 20 2013, 16:06 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 20 2013, 15:31
Сообщения: 3
Здравствуйте, уважаемые коллеги, форумчане! :D

Сейчас я делаю первые шаги в PI 7.4
и недавно возникла такая вот задачка:
получить курсы валют с сайта ЦБР , то есть

Реализовать интеграционный сценарий SAP(ABAP Proxy) -> (SOAP Adapter/XI 3.0 Format) PI (SOAP Adapter/SOAP 1.1) -> (Web Service) Сайт ЦБР.
Собственно, веб-сервис http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL

Применив Web service Navigator я получил ->

Запрос:
Code:
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <pns:GetCursOnDate xmlns:pns="http://web.cbr.ru/">
      <pns:On_date>2013-12-19T08:42:15.170+04:00</pns:On_date>
    </pns:GetCursOnDate>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Ответ:
Code:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <GetCursOnDateResponse xmlns="http://web.cbr.ru/">
      <GetCursOnDateResult>
        <xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" id="ValuteData">
          <xs:element name="ValuteData" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:OnDate="20131219">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="ValuteCursOnDate">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="Vname" type="xs:string" minOccurs="0"/>
                      <xs:element name="Vnom" type="xs:decimal" minOccurs="0"/>
                      <xs:element name="Vcurs" type="xs:decimal" minOccurs="0"/>
                      <xs:element name="Vcode" type="xs:int" minOccurs="0"/>
                      <xs:element name="VchCode" type="xs:string" minOccurs="0"/>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <ValuteData xmlns="">
            <ValuteCursOnDate diffgr:id="ValuteCursOnDate1" msdata:rowOrder="0">
              <Vname>Австралийский доллар</Vname>
              <Vnom>1</Vnom>
              <Vcurs>29.3532</Vcurs>
              <Vcode>36</Vcode>
              <VchCode>AUD</VchCode>
            </ValuteCursOnDate>
            .....................................................................................
            <ValuteCursOnDate diffgr:id="ValuteCursOnDate35" msdata:rowOrder="34">
              <Vname>Японская иена</Vname>
              <Vnom>100</Vnom>
              <Vcurs>31.9918</Vcurs>
              <Vcode>392</Vcode>
              <VchCode>JPY</VchCode>
            </ValuteCursOnDate>
          </ValuteData>
        </diffgr:diffgram>
      </GetCursOnDateResult>
    </GetCursOnDateResponse>
  </soap:Body>
</soap:Envelope>


Как я понимаю, дальше поэтапно:

1. Я должен создать программные компоненты SAP ERP и ЦБР
2. В Enterprise Service Repository (ESR) создать data type, message type, service interface, mapping
3. В Integration Directory (ID):
- Создать Business Component в ID для обозначения сайта ЦБР
- Собрать интеграционный сценарий

Собственно вопрос, уважаемые гуру: =)
У нас всё-таки 2 интерфейса или можно обойтись одним?

Сообщения 1) GetCursOnDate { On_date }
2) ValuteCursOnDate { Vname Vnom Vcurs Vcode VchCode }

Как реализовать mapping 2-х разных структур и правильно ли я рассуждаю?
Надеюсь на вашу помощь!
Заранее спасибо! :wink:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Пт, дек 20 2013, 22:48 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
Добрый вечер!

Интерфейсов будет 2: исходящий из ЦБ (SOAP) и входящий в ERP (PROXY или RFC). Оба - синхронные.
Мэппинг между синхронными интерфейсами включает в себя два message mappings: запрос ERP -> запрос в ЦБР и ответ ЦБР -> ответ в ERP.

Порядок действий, в принципе, изложен правильно, только программные компоненты тут не сильно важны - можно и все интерфейсы в один вложить.

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Сб, дек 21 2013, 19:16 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 20 2013, 15:31
Сообщения: 3
pitroff

Спасибо большое!!! :D


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Вт, дек 24 2013, 14:47 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
привет, коллеги.

Я тут пробую решить одну задачку в плане самообразования: есть файловый канал, на котором появляется файл с датой. Нужно, чтобы по этой дате вернулся файл с курсом ЦБ.
Что-то мне не приходилось такого делать. Тут без БПМ не получается, поскольку асинк-синк-асинк. нашел http://scn.sap.com/people/kokil.handa/blog/2010/07/07/use-of-bpm-in-file--soap--file-pi-71-scenario--design-approach, я запутался в интерфейсах. получается я не правильно понимал абстрактный интерфейс, наверное? Подскажите вкратце, что это. Какой-то тупейший провал в моих знаниях - не приходилось BPM применять на практике.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Вт, дек 24 2013, 17:47 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 20 2013, 15:31
Сообщения: 3
doleynikov, я бы помог, но сам новичок :)

pitroff

дело было так...

1. я реализовал все data types, message mappings, интерфейсы, actions
в 1-м компоненте, но разных namespace-ах

когда дело дошло до Сценария, то
при загрузке actions и создании связи между ними все поля пустые
это потому что они синхронные? или делается по-другому?

Немного не по теме. Касательно ABAP Proxy

Генерация прокси, а затем активация прошли успешно

но при попытки тестирования F8

ругается на "No implementing class registered for the interface (ABAP interface, request message, namespace)"

хотя всё реализовано...

Заранее спасибо :D


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Ср, дек 25 2013, 05:35 
Специалист
Специалист

Зарегистрирован:
Пт, май 07 2010, 13:17
Сообщения: 120
Откуда: Сургут
Пол: Мужской
Всем привет, немного выпал из жизни форума.
doleynikov написал(а):
привет, коллеги.

Я тут пробую решить одну задачку в плане самообразования: есть файловый канал, на котором появляется файл с датой. Нужно, чтобы по этой дате вернулся файл с курсом ЦБ.
Что-то мне не приходилось такого делать. Тут без БПМ не получается, поскольку асинк-синк-асинк. нашел http://scn.sap.com/people/kokil.handa/blog/2010/07/07/use-of-bpm-in-file--soap--file-pi-71-scenario--design-approach, я запутался в интерфейсах. получается я не правильно понимал абстрактный интерфейс, наверное? Подскажите вкратце, что это. Какой-то тупейший провал в моих знаниях - не приходилось BPM применять на практике.


Решенить твою задачу file-ws-file без BPM можно File-RFC-File(Without BPM) по аналогии.
Абстрактный интерфейс используется для работы в ccBPM (может в ховых версиях системы что изменилось).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Ср, дек 25 2013, 11:53 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
Добрыня, ох, чувствую, порядка нет в Ваших знаниях. :)

Сценарий нужен, когда Вы разрабатываете интерфейс "от дизайна к наполнению", то есть сначала рисуете будущий сценарий, а потом наполняете его деталями.
Ну или для удобства и красоты. )

В Вашем случае, actions и сценарий можно пока пропустить и, если интерфейсы и мэппинг готовы - перейти уже к конфигурированию.

P.S.: по Proxy - лучше отдельной темой и со скриншотом.

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Ср, дек 25 2013, 12:22 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
doleynikov написал(а):
привет, коллеги.

Я тут пробую решить одну задачку в плане самообразования: есть файловый канал, на котором появляется файл с датой. Нужно, чтобы по этой дате вернулся файл с курсом ЦБ.
Что-то мне не приходилось такого делать. Тут без БПМ не получается, поскольку асинк-синк-асинк. нашел http://scn.sap.com/people/kokil.handa/blog/2010/07/07/use-of-bpm-in-file--soap--file-pi-71-scenario--design-approach, я запутался в интерфейсах. получается я не правильно понимал абстрактный интерфейс, наверное? Подскажите вкратце, что это. Какой-то тупейший провал в моих знаниях - не приходилось BPM применять на практике.


molochko_mf правильно написал, async-sync bridge спасет от BPM. :)
Эти модули изначально под JMS адаптер написаны, но работают с любым:
http://help.sap.com/saphelp_nwpi71/help ... ontent.htm

Делаем два синхронных интерфейса, в одном из них запрос - это формат файла-запроса, ответ - формат файла с курсами; второй интерфейс - запрос-ответ ЦБ.

По сути, все настройки стандартные, кроме sender comm channel, который "поднимает" файл с запросом:
1) Используем AF_Modules/RequestResponseBean до модуля адаптера, AF_Modules/ResponseOnewayBean - после.
2) Для RRB ставим параметр passThrough со значением true
3) Для ROB ставим параметры, указывающие куда отправить ответ:
receiverParty = <Party> (если есть, если нет - можно пропустить)
receiverService = <Имя бизнес-системы - получателя> (в нашем случае - та, что за файлы отвечает)
receiverChannel = <Канал связи> (receiver, записывающий файл с курсами)

Как-то так. В другую сторону тоже работает, sync-async bridge, только настройки делаются в receiver comm channel.

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Пн, окт 13 2014, 15:32 
Начинающий
Начинающий

Зарегистрирован:
Вт, июн 04 2013, 10:56
Сообщения: 9
pitroff написал:
Добрый вечер!

Интерфейсов будет 2: исходящий из ЦБ (SOAP) и входящий в ERP (PROXY или RFC). Оба - синхронные.
Мэппинг между синхронными интерфейсами включает в себя два message mappings: запрос ERP -> запрос в ЦБР и ответ ЦБР -> ответ в ERP.

Порядок действий, в принципе, изложен правильно, только программные компоненты тут не сильно важны - можно и все интерфейсы в один вложить.

Всем доброго дня
Также новичок в PI. При чтении данной темы возник вопрос: почему интерфейсы исходящий из ЦБ (SOAP) и входящий в ERP (PROXY или RFC). Не наоборот - исходящий/outbound из ERP и входящий/inbound в ЦБ? Тип интерфейса ведь определяется относительно системы отправителя/получателя. В данном случае отправитель - ERP, запрашивает данные, получатель ЦБ возвращает данные в ответ.


И еще вопрос - возможно ли настроить сценарий таким образом, чтобы запрос поступал не из ERP, а PI сам отправлял запрос в ЦБ и, получив ответ, передавал данные в ERP (по аналогии с файловым адаптером, где можно настроить период чтения каталога с искомым файлом, или jdbc адаптер - суть та же)?


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

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
vick написал(а):
И еще вопрос - возможно ли настроить сценарий таким образом, чтобы запрос поступал не из ERP, а PI сам отправлял запрос в ЦБ и, получив ответ, передавал данные в ERP (по аналогии с файловым адаптером, где можно настроить период чтения каталога с искомым файлом, или jdbc адаптер - суть та же)?


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

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Ср, окт 15 2014, 02:36 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
doleynikov написал(а):
привет, коллеги.

Я тут пробую решить одну задачку в плане самообразования: есть файловый канал, на котором появляется файл с датой. Нужно, чтобы по этой дате вернулся файл с курсом ЦБ.
Что-то мне не приходилось такого делать. Тут без БПМ не получается, поскольку асинк-синк-асинк. нашел http://scn.sap.com/people/kokil.handa/blog/2010/07/07/use-of-bpm-in-file--soap--file-pi-71-scenario--design-approach, я запутался в интерфейсах. получается я не правильно понимал абстрактный интерфейс, наверное? Подскажите вкратце, что это. Какой-то тупейший провал в моих знаниях - не приходилось BPM применять на практике.


Ну абстрактный интерфейс используется внутри IP для хранения/обработки данных. Поэтому у него нет деления на входящий/исходящий - может работать в любом направлении.
Кстати, мы у себя от BPM не бегаем :-) Временами очень удобно: при отправке, допустим, сразу в несколько систем со сбором и обработкой статусов или, как я недавно делал, при забрасывании данных в SQL и вызовом пары хранимых процедур и юзерских функций по результату заброса вам адаптерные мосты могут не помочь. Поэтому, будет нелишним поизучать :-)

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Интерфейс с сайтом ЦБ РФ по закачке курсов валют
СообщениеДобавлено: Ср, окт 15 2014, 02:54 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Кстати, по поводу инициирования в PI: тут уважаемый chumpa бросал клич на заявки по разработке адаптера. Вот пару раз посещала мысль, что хорошо бы иметь некий адаптер-планировщик, который бы по неким условиям или по расписанию мог бы формировать сообщение заданного типа с указанными значениями и отправлять его в PI, а дальше уже тот же IP ловил бы его и выполнял определенную последовательность действий.

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Интерфейс с сайтом ЦБ РФ по закачке курсов валют
СообщениеДобавлено: Ср, окт 15 2014, 14:38 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
вопрос лишь -- как генерировать XML по расписанию, то есть как задавать в канале что константа а что по каким правилам должно генерироваться.
Если всё выносить в модули, будет ненамного легче использовать.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос Новичка: задача по курсу валют
СообщениеДобавлено: Ср, окт 15 2014, 14:51 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
Chaser009 написал:
Ну если я не ошибаюсь (пусть коллеги поправят), PI сам не особо может что-то стартовать. Всегда нужен какой-то инициатор (файл на файловом канале, мэйл на почту, вызывающий веб-сервис), одним словом, входное сообщение в PI.


Официальный способ -- сделать исходящий джава-прокси и сделать шедулерный Message-driven bean.
Запланировать джоб и дёргать в бине абап-прокси. Как-то так :P

Ну и разные способы с BPMN, но там везде изначально надо стартовать процесс, а стандартного джоба старта чего-либо кастомного после рестарта системы нет.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейс с сайтом ЦБ РФ по закачке курсов валют
СообщениеДобавлено: Ср, окт 15 2014, 17:01 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
как вариант по адаптеру, представляются два варианта генерации сообщения -- через XSLT и через XML+изменения:
1. Реализовать только отправитель, что логично :)
2. Есть в АПИ кнопочка загрузки файла. Правда, в стандартных адаптерах она не задействована. Так вот, через неё загрузить некий xml-payload или xslt.
3. Для режима XML+Изменения, сделать табличку с полями:
Адрес (XPath) Выражение (тоже XPath)

и в ней для нужных XPath указывать, что по данному адресу надо прописывать
4. Расписание задавать или в кроновском стиле или как это в NWA есть.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2, 3  След.

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


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

Сейчас этот форум просматривают: Ahrefs [Bot]


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

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