Текущее время: Вт, июл 17 2018, 10:10

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




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

Зарегистрирован:
Пт, дек 20 2013, 16: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, 23:48 
Специалист
Специалист
Аватара пользователя

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

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

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

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


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

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

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


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

Зарегистрирован:
Чт, ноя 22 2012, 11: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, 18:47 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 20 2013, 16: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, 06:35 
Специалист
Специалист

Зарегистрирован:
Пт, май 07 2010, 14: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, 12:53 
Специалист
Специалист
Аватара пользователя

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

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

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

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

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


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

Зарегистрирован:
Сб, фев 25 2012, 03: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, 16:32 
Начинающий
Начинающий

Зарегистрирован:
Вт, июн 04 2013, 11: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, 03:28 
Старший специалист
Старший специалист
Аватара пользователя

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


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

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


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

Зарегистрирован:
Пн, авг 29 2011, 09: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, 03:54 
Старший специалист
Старший специалист
Аватара пользователя

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

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


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

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

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


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

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


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

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

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


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

Зарегистрирован:
Вт, июл 18 2006, 18:44
Сообщения: 992
Откуда: что и все
Пол: Мужской
как вариант по адаптеру, представляются два варианта генерации сообщения -- через 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 + 4 часа


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

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


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

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