Текущее время: Пн, июл 28 2025, 01:33

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Change pointers и IDoc
СообщениеДобавлено: Чт, дек 20 2012, 09:10 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
Всем доброго времени суток!
Сразу извиняюсь, если мои вопросы покажутся глупыми, я только учусь, но хочу действительно научиться.
Постараюсь задавать вопросы по существу.
Опишу сначала само задание, а потом уже буду задавать конкретные вопросы, которые уже появились или появятся в ходе разработки.
Заранее благодарю за помощь. Буду рада и конкретным советам и ссылкам где есть что почитать в связи с моим вопросом.

Задание следующего характера:
Необходимо отслеживать изменения в определенных ячейках по материалам и их ценам и отсылать эти данные из САПа в другую систему с помощью IDoc. То есть нужно написать программу, которая будет считывать change pointers и отсылать информацию из них, использую IDoc. При этом необходимо. чтобы была возможность отсылать одно и ту же информацию об изменениях несколько раз.

Нужно чтобы отсылалась и старая информация и новая.
В условиях сказано, что нужно использовать два change pointers:
• MAT_FULL для изменений в материалах и
• COND_A для изменений в ценах.
А также нужно создать свой change pointer.
И вот здесь я не поняла зачем нужно его создавать, если у нас есть change pointers MAT_FULL и COND_A. Может кто-то сможет помочь мне понять.

IDoc будут использоваться стандартные MATMAS04 и COND_A02.

Как понимаю, ход примерно должен быть следующий в разработке:
• настроить change pointers и создать новый;
• считать сhange pointers, используя CHANGE_POINTERS_READ
• затем настроить сами IDoc и создавать их с помощью MASTER_IDOC_DISTRIBUTE.

В общем жду ответа по поводу третьего change pointer.
Есть мысль, что это change pointer должен объединять 2 предыдущих.
А также буду благодарна за любые комментарии по программе.
К сожалению с change pointer столкнулась впервые, с IDoc тоже почти не знакома - использовала только стандартный IDoc в импорте данных через LSMW.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Чт, дек 20 2012, 09:38 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Если кратко:
1. Заведите свой тип сообщения (sm30, ракурс VEDI_EDMSG)
2. Активируйте создание change pointers для него (sm30, ракурс V_TBDA2)
3. Присвойте к типу сообщения необходимые объекты и поля(sm30, ракурс V_TBD62)
(например MAT_FULL DMAKT KEY
MAT_FULL DMAKT MAKTX
MAT_FULL DMARM BREIT
MAT_FULL DMARM EAN11
MAT_FULL DMARM HOEHE
MAT_FULL DMARM KEY
MAT_FULL DMARM LAENG
MAT_FULL DMARM UMREZ
MAT_FULL MARA BRAND_ID
MAT_FULL MARA BREIT
MAT_FULL MARA BRGEW
MAT_FULL MARA EAN11
MAT_FULL MARA HOEHE
MAT_FULL MARA INHAL
MAT_FULL MARA INHME
MAT_FULL MARA KEY
MAT_FULL MARA LAENG
MAT_FULL MARA MHDHB
MAT_FULL MARA MHDRZ
MAT_FULL MARA NTGEW
MAT_FULL MAW1 KEY
MAT_FULL MAW1 WMAAB )
Далее можно считывать необработанные change pointer'ы и собирать из них материалы.
Свой тип сообщений нужен чтобы не влиять на остальную обработку другими программами (подразумевается что после считывания необработанных changepointer'ов нужно проставить им флаг обработки).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Чт, дек 20 2012, 09:46 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
__Gennady, спасибо, буду пробовать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Чт, дек 20 2012, 11:42 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
Появился ещё вопрос, change pointers формируются в таблице BDCP. Чтобы увидеть их, нужно указать id check pointer'a. Не понимаю как узнать ид. Как-то гугл мне в этом не помог. Или мне совсем не нужно их видеть в этой таблице? В общем совсем запуталась.

Просто в одном из пунктов задания, сказано после настройки change pointer'a, проверить появились ли они, а как это проверить не пойму.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Чт, дек 20 2012, 12:04 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Должны появляться в таблице BDCP\BDCP2
Пример считывания:
Code:

CALL FUNCTION 'CHANGE_POINTERS_READ'
      EXPORTING
        activation_date_high        = '99991231'
        creation_date_high          = '99991231'
        message_type                = 'TEST_MESTYPE'
        read_not_processed_pointers = 'X'
      TABLES
        change_pointers             = lt_bdcp
      EXCEPTIONS
        error_in_date_interval      = 1
        error_in_time_interval      = 2
        OTHERS                      = 3.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Чт, дек 20 2012, 12:08 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
Спасибо, думала, что надо как-то вручную проверять.
Функциональный модуль Change_pointers_read видела, думала, что это потом уже в самом конце.
В таблице bdcp2 удалось посмотреть, создались. Извините, что возможно туплю и спрашиваю такие вопросы. Но большое спасибо вам за помощь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 08:43 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
__Gennady написал(а):
Далее можно считывать необработанные change pointer'ы и собирать из них материалы.

Если не ошибаюсь, для 2-х стандартных IDoc-в из задания отправку можно сделать без абапа, т.е. нужно просто настроить соответствующим образом Change pointers, IDoc и запланировать стандартное фоновое задание которое считывает change pointer'ы и формирует IDoc-и


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 09:53 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
zsap написал:
Если не ошибаюсь, для 2-х стандартных IDoc-в из задания отправку можно сделать без абапа, т.е. нужно просто настроить соответствующим образом Change pointers, IDoc и запланировать стандартное фоновое задание которое считывает change pointer'ы и формирует IDoc-и

Есть такое дело. А умеет собирать товары по изменившимся ценам? И тип айдока в изначальном сообщении не указан. Не думаю, что там 100% стандарт.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 10:21 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
В задании изначально указано, что должны использоваться стандартные типы IDoc'ов : MATMAS04 for material changes, COND_A02 for price changes. Это я просто из самого задания их скопировала. Далее указано, что первый IDoc идёт для master Basic Data 1, что включает в себя следующую информацию: Material number, Description, EAN code, EAN category. Для этого указан как пример транзакции ММ03. Соответственно второй IDoc для отслеживания цен и это идёт через транзакцию VK13 и ячейки там следующие: Material number, Sales unit, Rate, Rate unit, Condition pricing unit, Condition unit, Valid from, Valid to. Указано, что не нужно создавать свой IDoc, а именно использовать стандартные, которые будут отсылаться одновременно.

Изначально нужно создать selection screen, который содержит дату изменений с и до, material number, sales org, distribution ch. Уже на основе этого написано, что надо отбирать именно вот эти изменения, если они произошли. При этом указано, что даже если цена не менялась, но изменилось какая-о информация, изменения должны быть отобраны и соответственно должны отсылаться IDoc'и.

Понимаю, что возможно написала всё очень сумбурно. Просто из-за того, что опыта скорее 0, чем немного, пытаюсь разобраться, чтобы все сделать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 10:22 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
zsap написал:
Если не ошибаюсь, для 2-х стандартных IDoc-в из задания отправку можно сделать без абапа, т.е. нужно просто настроить соответствующим образом Change pointers, IDoc и запланировать стандартное фоновое задание которое считывает change pointer'ы и формирует IDoc-и


Уважаемый, zsap, что имеется ввиду под стандартным фоновым заданием?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 10:28 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
__Gennady написал(а):
Если кратко:
1. Заведите свой тип сообщения (sm30, ракурс VEDI_EDMSG)
2. Активируйте создание change pointers для него (sm30, ракурс V_TBDA2)
3. Присвойте к типу сообщения необходимые объекты и поля(sm30, ракурс V_TBD62)

Далее можно считывать необработанные change pointer'ы и собирать из них материалы.
Свой тип сообщений нужен чтобы не влиять на остальную обработку другими программами (подразумевается что после считывания необработанных changepointer'ов нужно проставить им флаг обработки).

При пункте 3 присвоении небоходимых объектов. получается нужно присвоить те объекты и поля, которые не используются в двух предыдущих change pointer'ах?
Я просто совсем запуталась.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 10:33 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
Я нашла, что все данные, которые показывается в транзакции ММ03 генерируются через соответствующую программу SAPMMG01. Как я понимаю, мне нужно к новому типу сообщения созданному присвоить поля с данными из Basic Data 1 и те поля, которые я указала нужны из транзакции VK13, что является результатом запуска программы SAPMV13A.
Нашла, что таблица в SAPMMG01 из которой собираются данные это таблица RMMG1. В SAPMV13A вообще очень много таблиц, наверное сейчас буду сначала думать как это все реализовать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 10:44 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
__Gennady написал(а):
Если кратко:
...
3. Присвойте к типу сообщения необходимые объекты и поля(sm30, ракурс V_TBD62)
(например MAT_FULL DMAKT KEY
...


Спасибо за примеры, нашла тут свои нужные поля для Basic Data 1 уже, буду смотреть поля для остальной информации.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 11:14 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 20 2012, 08:34
Сообщения: 13
Такой вот ещё вопрос, я не понимаю, зачем нужен новый change pointer, если я его привязываю к новому типу сообщения. В общем несмотря на пояснение __Gennady, я ничего не понимаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Change pointers и IDoc
СообщениеДобавлено: Пт, дек 21 2012, 12:42 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
arsenikums написал(а):
Уважаемый, zsap, что имеется ввиду под стандартным фоновым заданием?

См. транзакцию BD10 (для MATMAS04)


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

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


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

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


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

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