SAPфорум.RU
https://www.sapboard.ru/forum/

Интеграция SAP - MDM: WorkFlow
https://www.sapboard.ru/forum/viewtopic.php?f=80&t=36528
Страница 1 из 1

Автор:  111 [ Вс, апр 20 2008, 15:32 ]
Заголовок сообщения:  Интеграция SAP - MDM: WorkFlow

Поиск юзал, нужной инфы не нашел, поэтому открываю новую тему.
Извините, если скажу что-нибудь не то - до этого с MDM не сталкивался.

Ситуация.
Есть MDM (v.5.56 SP04), есть SAP-системы. MDM в основной части уже внедрен, настроен, репликация данных между MDM и SAP работает. Во всяком случае, это не наша головная боль.

Задача 1.
У нас есть готовое типовое решение - "Подсистема централизованного ведения НСИ" (на SAP-платформе).
Предназначена для обеспечению потока операций по добавлению, изменению, удалению разнообразных единиц НСИ (материалов, дебиторов, кредиторов, и т.д.), а также по согласованию таких изменений. А именно:
1.) Конечный пользователь создает в SAP-системе заявку на изменение единиц НСИ . После создания, выставляет статус "Отправлено на рассмотрение".
2.) Далее, заявка поступает на рассмотрение Админу НСИ. Он ее одобряет, дополняет значениями для тех или иных полей, и производит физические изменения соответствующих НСИ в системе.
3.) Либо отклоняет, пишет комментарии - заявка возвращается обратно юзеру на доработку. И т.д. по кругу, пока единицы НСИ, содержащиеся в заявке, не будут изменены либо пока заявка не будет отменена юзером.
4.) Все это реализовано с помощью своей статусной модели. Обработка идет через Workflow. + 1 Z-транзакция + 2 Z-таблицы + стандартная система классификации SAP (для настройки структуры ракурсов и состава заполняемых полей).

Возникла необходимость интеграции этого решения с MDM. Т.е. НСИ будут заводиться Админом НСИ в MDM, а не в SAP-системе (юзеры будут, понятно, в SAP-системе работать).
В MDM есть свой внутренний workflow для подобных целей, устроен он похожим образом. Хотелось бы подружить WorkFlow нашего решения с MDM-овским WorkFlow.
Мотивация: например, для того, чтобы не забивать голову конечным юзерам еще и MDM-ом.

Вопрос: как в целом это возможно осуществить?
Из документации по MDM ABAP API не совсем понятно. Например, как устанавливать и контролировать статусы заявок.

Задача 2.
Одним из главных достоинств MDM можно назвать мега-быстрый поиск единиц НСИ - гораздо быстрее, чем в SAP-системах. У клиента родилась идея создать средства поиска для SAP-систем, которые будут искать НСИ не в SAP-системе, а будут обращаются к MDM (например, через IF_MDM_CORE_SERVICES->QUERY).
Подразумевается, что SAP-системы и MDM всегда будут безукоризненно синхронизированы друг с другом (во всяком случае, это не наша головная боль).

Вопрос.
Кто-нибудь пробовал делать что-нибудь подобное? СтОит овчинка выделки? Будет ли существенный выигрыш по быстродействию, не съест ли его взаимодействие через интерфейсы?

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

Автор:  111 [ Пн, апр 21 2008, 09:44 ]
Заголовок сообщения: 

Up

Автор:  korchagin [ Пн, апр 21 2008, 13:36 ]
Заголовок сообщения:  Re: Интеграция SAP - MDM: WorkFlow

111 написал(а):
1.) Конечный пользователь создает в SAP-системе заявку на изменение единиц НСИ . После создания, выставляет статус "Отправлено на рассмотрение".
2.) Далее, заявка поступает на рассмотрение Админу НСИ. Он ее одобряет, дополняет значениями для тех или иных полей, и производит физические изменения соответствующих НСИ в системе.
3.) Либо отклоняет, пишет комментарии - заявка возвращается обратно юзеру на доработку. И т.д. по кругу, пока единицы НСИ, содержащиеся в заявке, не будут изменены либо пока заявка не будет отменена юзером.
4.) Все это реализовано с помощью своей статусной модели. Обработка идет через Workflow. + 1 Z-транзакция + 2 Z-таблицы + стандартная система классификации SAP (для настройки структуры ракурсов и состава заполняемых полей).

Возникла необходимость интеграции этого решения с MDM. Т.е. НСИ будут заводиться Админом НСИ в MDM, а не в SAP-системе (юзеры будут, понятно, в SAP-системе работать).

...

Мотивация: например, для того, чтобы не забивать голову конечным юзерам еще и MDM-ом.


Не понял идеи. А чем плоха обработка заявок в ERP? Зачем непроверенные заявки писать в репозитарий?

Получается, вы хотите выкинуть XI и заменить на MDM ABAP API? И гонять заявки на стадии доработки между ABAP-сервером и MDM?

Автор:  111 [ Пн, апр 21 2008, 14:21 ]
Заголовок сообщения:  Re: Интеграция SAP - MDM: WorkFlow

korchagin написал:
Не понял идеи. А чем плоха обработка заявок в ERP? Зачем непроверенные заявки писать в репозитарий?


Возможно, как вариант. Но клиент хочет использовать возможности MDM для проверки этих заявок.

В общем, идея такова.
1.) Пользователь заводит в SAP заявку на изменение НСИ.
2.) Она улетает в MDM (ессно, в формате MDM).
3.) Там она проверяется, средствами MDM, если все ОК - изменения НСИ производятся там же, в MDM, а оттуда уже измененные "по-взрослому" единицы НСИ расползаются по SAP-системам с помощью стандартных механизмов репликации.
4.) Иначе - заявка поступает обратно в SAP (естественно, преобразованная к нашему формату), юзер продолжает с ней работу. И так по кругу.

korchagin написал:
Получается, вы хотите выкинуть XI и заменить на MDM ABAP API? И гонять заявки на стадии доработки между ABAP-сервером и MDM?


Да, точно.
Но XI не выкидывается совсем, он по-прежнему будет использоваться для репликации данных между системами (для синхронизации НСИ, уже имеющихся в системах). MDM ABAP API будет использоваться только для заявок.

Автор:  korchagin [ Пн, апр 21 2008, 15:35 ]
Заголовок сообщения:  Re: Интеграция SAP - MDM: WorkFlow

111 написал(а):
2.) Она улетает в MDM (ессно, в формате MDM).

Вот тут она напрямую пишется в репозитарий? И структуры преобразовываются программно?

111 написал(а):
Но XI не выкидывается совсем, он по-прежнему будет использоваться для репликации данных между системами (для синхронизации НСИ, уже имеющихся в системах). MDM ABAP API будет использоваться только для заявок.

В общем, я с MDM ABAP API дела не имел, использовал Java API, но подозреваю, что проблемы там сходные:
- сам API (не говоря уж о протоколе) меняется с каждым патчем;
- можно сразу забыть о настройках структуры и мэппинга сообщений;
- теряется: очереди, обработка ошибок, мониторинг, конфигурирование, масштабирование и т.д. и т.п. - все, что дает XI.

Технически не вижу никаких препятствий для внесения записей в репозитарий. У нас заявки создаются во внешних системах, переносятся при помощи XI в MDM, где обрабатываются администратором. К сожалению, средства MDM (встроенный язык "проверок") ограничены, поэтому приходится отлавливать изменения записей через Java API и обрабатывать их внешним приложением (проверка ИНН, автоматическое присвоение значений из диапазона по условию и т.д.). Интерфейс для внесения и обработки записей писался, но тоже на Java, и идея там была несколько иная - разместить приложение и MDM-сервер на одном хосте, а с пользовательским интерфейсом обмениваться минимумом данных.

Автор:  111 [ Вт, апр 22 2008, 10:23 ]
Заголовок сообщения:  Re: Интеграция SAP - MDM: WorkFlow

korchagin написал:
111 написал(а):
2.) Она улетает в MDM (ессно, в формате MDM).

Вот тут она напрямую пишется в репозитарий? И структуры преобразовываются программно?


Дык, не знаю :roll: .
Вопрос как раз в том, как сделать так, чтобы сначала положить данные как бы понарошку, в неком черновом статусе, а потом, в случае правильности данных, завести их уже "по-взрослому".
И тут есть свои нюансы.

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

Не совсем понятно, как в MDM решаются подобные вопросы.

Автор:  dump [ Вт, апр 22 2008, 14:57 ]
Заголовок сообщения: 

Виктор, а Вы интерфейс для ввода планируете делать на абапе в одной из сап систем или на вэб-динпро ?

Автор:  111 [ Вт, апр 22 2008, 19:57 ]
Заголовок сообщения: 

dump написал(а):
Виктор, а Вы интерфейс для ввода планируете делать на абапе в одной из сап систем или на вэб-динпро ?


Интерфейс уже сделан на АВАРе, никакого вэб-интерфейса не предусмотрено (честно говоря, не представляется целесообразным).
Вот, примерно в таком виде:
Изображение
Изображение
Скриншоты не очень актуальны, достаточно старая версия, более актуальные по техническим причинам сейчас не могу сделать.
Явно видны мелкие баги.
Например, по части статусов - не должно быть "зеленых друзей", если под ними сидит хоть один "красненький". По части отображения (например, "ST" вместо "ШТ"). И т.д.
Имена юзеров из колонки "Пользователи" вырезаны специально.

Насчет MDM - изначально про интеграцию с MDM-ом вообще речи не шло, это был продукт чисто под SAP.

Автор:  Skif [ Ср, апр 23 2008, 09:28 ]
Заголовок сообщения: 

111 написал(а):
Насчет MDM - изначально про интеграцию с MDM-ом вообще речи не шло, это был продукт чисто под SAP.

чисто в двух словах - чем обусловлено быстродействие выборок в MDM? - это какой-то внешнеплатформенный продукт, типа очередное "благоприобретение" SAP AG? ;)

Автор:  111 [ Ср, апр 23 2008, 09:38 ]
Заголовок сообщения: 

Skif написал:
111 написал(а):
Насчет MDM - изначально про интеграцию с MDM-ом вообще речи не шло, это был продукт чисто под SAP.

чисто в двух словах - чем обусловлено быстродействие выборок в MDM?


Слушай - фик знает, самому интересно. Но плотно еще не разбирался, да и продукт закрытый. Видимо, оригинальная модель данных, позволяющая все хорошо проиндексировать.
Наверняка здесь есть гуру, которые могут объяснить.

Skif написал:
- это какой-то внешнеплатформенный продукт, типа очередное "благоприобретение" SAP AG? ;)


Да :). Оно не на SAP-платформе, сделано кем-то со стороны и куплено SAP-ом.

Автор:  korchagin [ Ср, апр 23 2008, 15:15 ]
Заголовок сообщения:  Re: Интеграция SAP - MDM: WorkFlow

111 написал(а):
korchagin написал:
111 написал(а):
2.) Она улетает в MDM (ессно, в формате MDM).

Вот тут она напрямую пишется в репозитарий? И структуры преобразовываются программно?


Дык, не знаю :roll: .
Вопрос как раз в том, как сделать так, чтобы сначала положить данные как бы понарошку, в неком черновом статусе, а потом, в случае правильности данных, завести их уже "по-взрослому".
И тут есть свои нюансы.

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

Не совсем понятно, как в MDM решаются подобные вопросы.


А зачем внешний код (номер заявки или ID во внешней системе) заменять на код центрального справочника? Сделайте два разных поля, первое позволит контролировать прохождение этапов обработки и связь с дополнительными структурами (например, классификации, если речь идет о материалах), а второе проапдейтится только перед публикацией.

У нас обрабатывается одномоментно заявка только из одной системы, то есть делается либо создание записи в центральном справочнике (сущность не найдена в ЦС), либо merging двух записей - центрального справочника и заявочной (сущность ранее заведена в ЦС). В этом случае в "слитой" записи присутствует номер последней заявки. Кроме того, в многозначное поле "Системы" центрального справочника добавляется система, приславшая заявку.

(на самом деле сделано несколько сложнее - в этом поле указывается не бизнес-система, а предприятие, а каждому предприятию, в свою очередь, сопоставлены одна или несколько систем)

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

Идентификатор центрального справочника у нас присваивается автоматически в момент назначения администратором статуса "ОК" (это делает программа-listener, которая ловит события в репозитарии - вроде внешнего триггера). Синдикатор публикует все записи со статусом отличным от "не обработана". В XI делается ветвление на основании многозначного поля "Системы" и сообщения уходят тем системам, которые ранее присылали заявки на данную сущность.

До тех пор, пока у записи статус "не обработана", она болтается в репозитарии, но не отдается внешним системам.

Автор:  korchagin [ Ср, апр 23 2008, 17:11 ]
Заголовок сообщения: 

111 написал(а):
Skif написал:
- это какой-то внешнеплатформенный продукт, типа очередное "благоприобретение" SAP AG? ;)


Да :). Оно не на SAP-платформе, сделано кем-то со стороны и куплено SAP-ом.

Кстати, первоначально MDM делался на ABAP-платформе самим SAPом. Но потом, намаявшись с ним, купили совсем другой продукт небольшой израильской компании, написаный на Java и скомпилированный в нативный код (видимо, берегут так ноу-хау свои). Предполагаю, что здравый смысл победит, и однажды этот продукт сделают нормальным приложением Java, работающим под SAP Java WAS. Пока же эта нативность дает только кучу проблем и глюков.

Автор:  111 [ Пт, апр 25 2008, 22:27 ]
Заголовок сообщения:  Re: Интеграция SAP - MDM: WorkFlow

korchagin написал:
111 написал(а):
korchagin написал:
111 написал(а):
2.) Она улетает в MDM (ессно, в формате MDM).

Вот тут она напрямую пишется в репозитарий? И структуры преобразовываются программно?


Дык, не знаю :roll: .
Вопрос как раз в том, как сделать так, чтобы сначала положить данные как бы понарошку, в неком черновом статусе, а потом, в случае правильности данных, завести их уже "по-взрослому".
И тут есть свои нюансы.

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

Не совсем понятно, как в MDM решаются подобные вопросы.


А зачем внешний код (номер заявки или ID во внешней системе) заменять на код центрального справочника? Сделайте два разных поля, первое позволит контролировать прохождение этапов обработки и связь с дополнительными структурами (например, классификации, если речь идет о материалах), а второе проапдейтится только перед публикацией.

У нас обрабатывается одномоментно заявка только из одной системы, то есть делается либо создание записи в центральном справочнике (сущность не найдена в ЦС), либо merging двух записей - центрального справочника и заявочной (сущность ранее заведена в ЦС). В этом случае в "слитой" записи присутствует номер последней заявки. Кроме того, в многозначное поле "Системы" центрального справочника добавляется система, приславшая заявку.

(на самом деле сделано несколько сложнее - в этом поле указывается не бизнес-система, а предприятие, а каждому предприятию, в свою очередь, сопоставлены одна или несколько систем)

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

Идентификатор центрального справочника у нас присваивается автоматически в момент назначения администратором статуса "ОК" (это делает программа-listener, которая ловит события в репозитарии - вроде внешнего триггера). Синдикатор публикует все записи со статусом отличным от "не обработана". В XI делается ветвление на основании многозначного поля "Системы" и сообщения уходят тем системам, которые ранее присылали заявки на данную сущность.

До тех пор, пока у записи статус "не обработана", она болтается в репозитарии, но не отдается внешним системам.


Большое спасибо за подробные и дельные советы!
Ответил также в личку.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/