Текущее время: Чт, мар 28 2024, 21:41

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




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 09:38 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Здравствуйте!
Я делаю первые шаги в PI, и вот возникла задача:

Есть документ перемещения с шапкой (Номер, дата, отправитель, получатель) и списком товаров:
Код товара | Количество | Код клиента

И для товара, где указан код клиента надо создать iDoc ZCUSTOMERRETURN_CREATEFROMDATA (Заказ на возврат)

Создать для позиций, где есть код клиента отдельные заказы у меня получилось. Но теперь задача расширяется: надо объединить заказы по клиентам, т.е. создавать не отдельный заказ на каждую позицию, а на каждого клиента по всем его позициям в перемещении.
И, честно говоря, моих начальных знаний уже не хватает. До этого я создавал iDoc по наличию заполненного кода, а теперь получается, что как-то надо получать список, проходить по нему, создавать iDoc и заполнять его позициями данного клиента.
Не подскажете, можно ли это реализовать стандартными функциями и подсказать направление, куда копать.

Заранее спасибо!

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 09:53 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
Добрый день!
аггрегировать хотите на стороне отправителя или в PI?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 10:01 
Старший специалист
Старший специалист
Аватара пользователя

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

В PI. На стороне отправителя в силу ряда причин не удастся, хотя это решило бы проблему.

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 10:03 
Директор
Директор

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

И как определить временной интервал агреггирования?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 11:42 
Старший специалист
Старший специалист
Аватара пользователя

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

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 12:04 
Директор
Директор

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

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 12:11 
Старший специалист
Старший специалист
Аватара пользователя

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

На входе:
Мат. 1 - ...
Мат. 2 - Клиент 1
Мат. 3 - Клиент 2
Мат. 4 - Клиент 1

На выходе должно быть:
iDoc 1 - Клиент 1 - Мат. 2, Мат. 4
iDoc 2 - Клиент 2 - Мат. 3

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 12:21 
Специалист
Специалист

Зарегистрирован:
Пт, май 07 2010, 13:17
Сообщения: 120
Откуда: Сургут
Пол: Мужской
тогда бизнес процесс.
разбить сообщения на строки
в цикле по строкам собрать сообщения по клиентам и на каждое сообщение отправить IDOC


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 12:22 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
То есть меппинг 1:N ?
можно без ccBPM, кажись IDoc адаптер поддерживает сплит.

В Operation mapping ставите сигнатуру "один пришёл много ушло", делаете мультимеппинг и вперёд.
Лучше на XSLT, абаповский xsl:for-each поддерживает и distinct-values (?), а так могу за ноль-пять пива выслать jar-файл с джавашным меппингом. Но нужны примеры сообщений.

Можно и графическим, но один фиг для аггрегирования придётся писать джава-вставку.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 12:29 
Старший специалист
Старший специалист
Аватара пользователя

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

chumpa написал:
а так могу за ноль-пять пива выслать jar-файл с джавашным меппингом. Но нужны примеры сообщений.


Я бы с радостью, да из Владивостока пиво слать далековато, не дойдет :-)

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 12:34 
Директор
Директор

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

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 12:37 
Старший специалист
Старший специалист
Аватара пользователя

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

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Ср, сен 07 2011, 13:50 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, янв 25 2005, 19:26
Сообщения: 67
Пол: Мужской
Chaser009 написал:
Не так. Мне нужно из входящего сообщения, содержащего список позиций, получить по iDoc'у на каждого клиента, присутствующего в списке, в котором будут все позиции по клиенту, пришедшие в сообщении.

На входе:
Мат. 1 - ...
Мат. 2 - Клиент 1
Мат. 3 - Клиент 2
Мат. 4 - Клиент 1

На выходе должно быть:
iDoc 1 - Клиент 1 - Мат. 2, Мат. 4
iDoc 2 - Клиент 2 - Мат. 3


Я в свое время использовал трюк со сменой кардинальности в XSD-схеме айдока - работало.

Вот описание от уважаемого Михала Кравчика:
XI: IDOC bundling - the "trick" with the occurance change
http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/2762

_________________
Come to Cookies! We Have Dark Sides!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Чт, сен 08 2011, 03:57 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Почитал. Не совсем то, что надо. У меня в целевом iDoc'е кол-во сегментов и так неограничено.

Вот стркутура исходного сообщения:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
   <ns0:Message1>
      <ns1:MT_1C_BXY_M xmlns:ns1="urn:namespace_1C_SAP_OLD">
         <ONE>
              <FIO/>
              <ID/>
              <NPRT/>
              <CDAT/>
              <CTIM/>
              <NUM/>
              <GPT/>
              <SKL/>
              <GPT1/>
              <SKL1/>
              <TOV>
                 <FRID/>
                 <SIGN/>
                 <CODT/>
                 <KOL/>
                 <SUM/>
                 <NZK/>
                 <NPS/>
              </TOV>
         </ONE>
      </ns1:MT_1C_BXY_M>
   </ns0:Message1>
</ns0:Messages>

А мне из него нужно получить что-то типа этого:

Code:
   <ns0:Message1>
      <ns1:MT_1C_BXY_M xmlns:ns1="urn:namespace_1C_SAP_OLD">
         <ONE>
            <FIO/>
            <ID/>
            <NPRT/>
            <CDAT/>
            <CTIM/>
            <NUM/>
            <GPT/>
            <SKL/>
            <GPT1/>
            <SKL1/>
            <FRID/>
            <TOV>
               <SIGN/>
               <CODT/>
               <KOL/>
               <SUM/>
               <NZK/>
               <NPS/>
            </TOV>
         </ONE>
      </ns1:MT_1C_BXY_M>
   </ns0:Message1>


Т.е. сгруппировать позиции по FRID (по коду клиента)

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос начинающего: как создание агрегированного iDoc
СообщениеДобавлено: Чт, сен 08 2011, 10:08 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
может быть проще интерфейс детерминейшн с условием?


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

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


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

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


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

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