Текущее время: Вс, июл 20 2025, 05:31

Часовой пояс: 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 часа


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

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


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

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