Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SMOD/CMOD - Расширения => Тема розпочата: Uukrul від Вересень 08, 2009, 12:44:35 ПП

Назва: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Вересень 08, 2009, 12:44:35 ПП
MBCFC004 - В данном экзите можно выполнить автоматическое присвоение значений для полей классификации партии. Экзит автоматически вызывается при задании партии и мы можем заполнить значения полей. Список полей передается в структуре attributes, так что все что нужно это заполнить параметр VALUES.

 LOOP AT attributes.
   MOVE-CORRESPONDIG attributes TO values.
   CASE/IF <в зависимости от имени признака>
     values-atwtb = <значение присвоенное признаку>.
   ENDCASE/ENDIF.
   APPEND values.
 ENDLOOP.


PS: Случайно вместо имени экзита указал имя инклуда.
Назва: Re: ZXMBCU04 - Заполнение классификации для партий
Відправлено: Паганель від Вересень 27, 2009, 11:02:14 ДП
Что то не могу найти этот экзит, твоей прогой искал - http://sapforum.biz/index.php/topic,654.0.html
Нашел SAPLV1ZN - EXIT_SAPLV01Z_014
Мне кажется что ты перепутал с ZXVBZU10.

Как мне найти в каком  Enhancement"е находится ZXMBCU04?
Назва: Re: ZXMBCU04 - Заполнение классификации для партий
Відправлено: Dmitriy від Вересень 27, 2009, 11:35:46 ДП
Цитата: Паганель від Вересень 27, 2009, 11:02:14 ДП
Что то не могу найти этот экзит, твоей прогой искал - http://sapforum.biz/index.php/topic,654.0.html
Нашел SAPLV1ZN - EXIT_SAPLV01Z_014
Мне кажется что ты перепутал с ZXVBZU10.

Как мне найти в каком  Enhancement"е находится ZXMBCU04?
FM "EXIT_SAPMM07M_004"

Назва: Re: ZXMBCU04 - Заполнение классификации для партий
Відправлено: Паганель від Вересень 27, 2009, 12:15:29 ПП
А имя расширения, которое можно указать в smod

т.е. есть у нас екзит EXIT_SAPMM07M_010, есть инклуд ZXMBCU10, как определить название расширения которое надо в проекте присвоить?
Назва: Re: ZXMBCU04 - Заполнение классификации для партий
Відправлено: Dmitriy від Вересень 27, 2009, 12:47:50 ПП
Цитата: Dmitriy від Вересень 27, 2009, 11:35:46 ДП
FM "EXIT_SAPMM07M_004"
Расширение MBCFC004
Назва: Re: ZXMBCU04 - Заполнение классификации для партий
Відправлено: Dmitriy від Вересень 27, 2009, 12:50:09 ПП
Цитата: Паганель від Вересень 27, 2009, 12:15:29 ПП
А имя расширения, которое можно указать в smod

т.е. есть у нас екзит EXIT_SAPMM07M_010, есть инклуд ZXMBCU10, как определить название расширения которое надо в проекте присвоить?
MBCFC010 ;)
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Вересень 27, 2009, 07:12:46 ПП
В общем-то имя экзита MBCFC004, но чтобы он вызвался нужно для вида движения убедиться что классификация активна. Для этого зайдите в транзакцию настройки классификации партий для видов движений OMCV и установите требуемый код для вида движения. Например если вы классифицируете в экзите тогда можно поставить режим 1 - Классификация выполняется в фоновом режиме (все партии) или 3 - Классификация вызывается всегда в ДиалогРежиме (все партии), при этом для режима три будет вызван экзит, а потом пользователю будет показан экран классификации с заполненными в экзите полями.
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Паганель від Вересень 27, 2009, 07:19:03 ПП
Т.е. это экзит вызывается когда в миго нажимают кнопку "Классификация"?
А как же заполнять в фоне?
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Вересень 27, 2009, 07:20:33 ПП
Цитата: Паганель від Вересень 27, 2009, 07:19:03 ПП
Т.е. это экзит вызывается когда в миго нажимают кнопку "Классификация"?
А как же заполнять в фоне?
Не знаю... я в новых транзакциях не смотрел, но в 4.6 работает без нажатия на кнопочку... а ты точно там поставил тип 1? Кстати попробуй через MB01 сделать приход...
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Паганель від Вересень 27, 2009, 07:21:25 ПП
mb01 не катит ....
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Паганель від Вересень 27, 2009, 07:27:54 ПП
Цитата: Uukrul  link=topic=782.msg5095#msg5095 date=1254067966
Например если вы классифицируете в экзите тогда можно поставить режим 1 - Классификация выполняется в фоновом режиме (все партии)

Не могу найти экзит
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Паганель від Вересень 27, 2009, 07:29:21 ПП
Цитата: Паганель від Вересень 27, 2009, 07:27:54 ПП
uukrul:
экзит я тебе сказал...

блин,типа если для ВД утановить это индикатор, то будет вызыватся MBCFC004?
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Вересень 27, 2009, 08:21:55 ПП
Типа таки вот как оно работает, только что проверил по всей цепочки в ECC 6.0 с созданием экзита и всех шагов. У меня работает:

1. Создал материал, система IDES, за основу взял P-100, создал P-100-B, вид материала HAWA, на закладках "Классификация" присвоил свой класс YTOV_BATCH для вида класса 023 с одним признаком для тестирования, на ракусе "Закупка" поставил ведение по партиям, на закладке "БухУчет1" поставил оценка типа X, класс оценки 3100 и цена среднескользящая. Пример на рисунках MM01-1.png, MM01-2.png и MM01-3.png

2. Зашел в создание расширения, там сделал проект с расширением MBCFC004 и в нем написал вот такой вот текст:

*&---------------------------------------------------------------------*
*&  Include           ZXMBCU04
*&---------------------------------------------------------------------*
LOOP AT attributes.
  MOVE-CORRESPONDING attributes TO values.
  values-atwtb = '00005'.
  APPEND values.
ENDLOOP.

В общем типа всегда заполняю признак, там он только один, значением 00005.

3. В транзакции OMCV, поставил для вида движения 501 поставил так как на рисунке OMVC.png, в общем классификация только в фоне, чтобы диалог не вызвался.

4. Пошел в MB1C и затем тоже в MIGO сделал 501 вид движения, все красиво отклассифицировалось MIGO-1.png и MIGO-2.png

Так что не знаю... у меня как видим в двух разных системах все работает.
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Паганель від Вересень 27, 2009, 08:30:44 ПП
Прикольно, у меня так что-то не работает .... сделал бади в нем вызываю VB_CREATE_BATCH всеравно .... получилось создавать партию, только как бы там не было вызывается (показывается) диалог классификации
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Вересень 27, 2009, 08:33:18 ПП
Цитата: Паганель від Вересень 27, 2009, 08:30:44 ПП
Прикольно, у меня так что-то не работает .... сделал бади в нем вызываю VB_CREATE_BATCH всеравно .... получилось создавать партию,
Ну я бади как-то у себя в примере не вижу... а так как сделал, то.. еще раз в двух разных системах это работает. Отсюда вывод или у ритейла что-то не то?! Сомневаюсь однако... или кто-то уже что-то хорошо поломал где-то.
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Паганель від Жовтень 07, 2009, 01:48:10 ПП
Цитата: Паганель від Вересень 27, 2009, 08:30:44 ПП
Прикольно, у меня так что-то не работает .... сделал бади в нем вызываю VB_CREATE_BATCH всеравно .... получилось создавать партию, только как бы там не было вызывается (показывается) диалог классификации

Ну частично решили:
1- у меня для автоматичесского и принудительного создания партии при движении материала, в MB_MIGO_ITEM_BADI вызывается VB_CREATE_BATCH (http://sapforum.biz/index.php/topic,827.0/highlight,vb_create_batch.html), только там была ошибка с передачей параметра kzcla = 'X', надо было передавать '1'
2. Стандартный механизм, поисанный Уукрулом не срабатывал, так как в Ритейле, нету закладки "Классификация" в ОЗМ, и присвоить класс ..... как бы нельзя, или я просто его не нашел.

Есть идеи?
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Жовтень 07, 2009, 01:52:08 ПП
Цитата: Паганель від Жовтень 07, 2009, 01:48:10 ПП
2. Стандартный механизм, поисанный Уукрулом не срабатывал, так как в Ритейле, нету закладки "Классификация" в ОЗМ, и присвоить класс ..... как бы нельзя, или я просто его не нашел.
Так это вообще такой закладки нет или может ее для вида материала не активировали?
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Паганель від Жовтень 07, 2009, 02:01:53 ПП
Вообще в Ритейле нету такого ракурса
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Dmitriy від Жовтень 12, 2009, 12:22:10 ПП
Добавлю небольшие свои 5 копеек, относящиеся к первой половине топика.
Если известно имя Include, то с первого экрана SE38 ч/з журнал использования можно найти программу, в которой он используется. Возникал вопрос: а если он еще не создан, то как узнать имя расширения? Попробовал для двух расширений:
1. MBCFC010, Include ZXMBCU10.
2. HRESSW4 (http://sapforum.biz/index.php/topic,688.msg4280.html#msg4280), Include ZXWWWU03 соответственно.
Ни один из Includes в моей тестовой системе еще не создан. SE38 -> Журнал использования (все галочки):
1. LXMBCU10, однозначно указывающий нам на ФМ "EXIT_SAPMM07M_010".
2. Сообщение ES240 "ZXWWWU03 - не Include", по аналогии со случаем 1 меняем Z на L, жмем просмотр и видим ФМ "EXIT_SAPLEHUS_001". Также ZXWWWU03 можно было просто создать, затем удалить, если не нужен.
Ну а зная имя ФМ ищем расширение так, как написал Удав здесь (http://sapforum.biz/index.php/topic,688.msg4554.html#msg4554) и показано на рисунке.
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Sed0Y від Травень 03, 2011, 11:40:44 ПП
Цитата: Uukrul від Вересень 27, 2009, 08:21:55 ПП
Типа таки вот как оно работает, только что проверил по всей цепочки в ECC 6.0 с созданием экзита и всех шагов. У меня работает:

1. Создал материал, система IDES, за основу взял P-100, создал P-100-B, вид материала HAWA, на закладках "Классификация" присвоил свой класс YTOV_BATCH для вида класса 023 с одним признаком для тестирования, на ракусе "Закупка" поставил ведение по партиям, на закладке "БухУчет1" поставил оценка типа X, класс оценки 3100 и цена среднескользящая. Пример на рисунках MM01-1.png, MM01-2.png и MM01-3.png

2. Зашел в создание расширения, там сделал проект с расширением MBCFC004 и в нем написал вот такой вот текст:

*&---------------------------------------------------------------------*
*&  Include           ZXMBCU04
*&---------------------------------------------------------------------*
LOOP AT attributes.
  MOVE-CORRESPONDING attributes TO values.
  values-atwtb = '00005'.
  APPEND values.
ENDLOOP.

В общем типа всегда заполняю признак, там он только один, значением 00005.

3. В транзакции OMCV, поставил для вида движения 501 поставил так как на рисунке OMVC.png, в общем классификация только в фоне, чтобы диалог не вызвался.

4. Пошел в MB1C и затем тоже в MIGO сделал 501 вид движения, все красиво отклассифицировалось MIGO-1.png и MIGO-2.png

Так что не знаю... у меня как видим в двух разных системах все работает.

Не подскажете, сделал все как описано выше, в инклюде ZXMBCU04 сделал точку остановы (брейк поинт) но программа не попадает туда, посоветуйте что нужно проверить или сделать?
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Травень 03, 2011, 11:43:47 ПП
Цитата: Sed0Y від Травень 03, 2011, 11:40:44 ПП
Не подскажете, сделал все как описано выше, в инклюде ZXMBCU04 сделал точку остановы (брейк поинт) но программа не попадает туда, посоветуйте что нужно проверить или сделать?
Так это вы проект расширения создали и его активировали?
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Sed0Y від Травень 04, 2011, 12:02:52 ДП
Цитата: Uukrul від Травень 03, 2011, 11:43:47 ПП
Так это вы проект расширения создали и его активировали?

Смотрите -создал в CMOD MBCFC004, в нем дважды нажал на "EXIT_SAPMM07M_004" выбрал перешел в папку где находится этот
user- exits и через нажатие правой кнопки мыши "создать инклюд" создал "ZXMBCU04" написал код остановы, активировал, вышел и в cmod активировал - верно?

P.S. это первый мой опыт создания user- exits, читал литературу, вроде так и писали как делать, как я написал, если дадите ссылку на другой ресурс, или книгу где все это описывается внятно, буду очень признателен...

Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Травень 04, 2011, 12:30:00 ДП
Цитата: Sed0Y від Травень 04, 2011, 12:02:52 ДП
или книгу где все это описывается внятно, буду очень признателен...
Ну не знаю.. сейчас накидаю, что-то... минут за 20... чтобы было понятно что и как... а то у меня чувство что вы проект не правильно создали.
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Травень 04, 2011, 12:49:41 ДП
Цитата: Sed0Y від Травень 04, 2011, 12:02:52 ДП
читал литературу, вроде так и писали как делать, как я написал, если дадите ссылку на другой ресурс, или книгу где все это описывается внятно, буду очень признателен...
Ну в общем тут пример набросал: http://sapforum.biz/index.php/topic,1649.msg8905.html#msg8905
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Sed0Y від Травень 04, 2011, 12:57:28 ДП
Цитата: Uukrul від Травень 04, 2011, 12:49:41 ДП
Ну в общем тут пример набросал: http://sapforum.biz/index.php/topic,1649.msg8905.html#msg8905

Uukrul - большое спасибо, завтра утром попробую!
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Sed0Y від Травень 04, 2011, 09:26:16 ДП
все сделал как по ссылке результат = 0

Тогда хочу уточнить, может это расширение не к этой классификации, что мне нужно.
Когда захожу в MIGO - закладка "Партии" - кнопка "Классификация" после нажатия, если посмотреть то запускается:
Транзакция           MSC3N
Программа            SAPLCHRG

Это оно?
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Травень 04, 2011, 10:06:13 ДП
Цитата: Sed0Y від Травень 04, 2011, 09:26:16 ДП
все сделал как по ссылке результат = 0
В смысле не заходит в расширение или заходит но классифицирование не просиходит?

Цитата: Sed0Y від Травень 04, 2011, 09:26:16 ДП
Когда захожу в MIGO - закладка "Партии" - кнопка "Классификация" после нажатия, если посмотреть то запускается:
Транзакция           MSC3N
Программа            SAPLCHRG

Ну запускается стандартная транзакция, но тебе ж нужно присвоить признаки классу или что вообще нужно сделать?
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Sed0Y від Травень 04, 2011, 10:18:56 ДП
Цитата: Uukrul від Травень 04, 2011, 10:06:13 ДП
В смысле не заходит в расширение или заходит но классифицирование не просиходит?
не заходит в расширение

Цитата: Uukrul від Травень 04, 2011, 10:06:13 ДП
Ну запускается стандартная транзакция, но тебе ж нужно присвоить признаки классу или что вообще нужно сделать?
Мне нужно при создании Классификации (из MIGO) что бы присваивалось значение признаку

(//)
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Травень 04, 2011, 10:36:04 ДП
Цитата: Sed0Y від Травень 04, 2011, 10:18:56 ДП
не заходит в расширение
Значит нужно смотреть чего расширение не вызывается, у меня на 4.6 работало. Нужно глянуть настройку видов материала, там определяется способ вызова классификации, если ничего не путаю, может у вас там стоит только в диалоге, поэтому и не срабатывает.
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: MM_ka від Травень 04, 2011, 11:32:39 ДП
Цитата: Uukrul від Травень 04, 2011, 10:36:04 ДП
Значит нужно смотреть чего расширение не вызывается, у меня на 4.6 работало. Нужно глянуть настройку видов материала, там определяется способ вызова классификации, если ничего не путаю, может у вас там стоит только в диалоге, поэтому и не срабатывает.
Проверила, для вдв 101, в OMCV стоит заполнение в фоне, а вот галки для расширения не было.
(А вот в виде материала не нашла как определить способ вызова классификации, там только вид класса и класс.)
Но после того, как установила галку расширение классификации....все равно не сработала точка остановки  ???

Может быть дело еще в настройке признака ???
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: MM_ka від Травень 04, 2011, 12:13:53 ПП
Таки да, все дело в созданном признаке.
Добавила проверку по ФМ и в migo при проверке мы попадаем в него.
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Sed0Y від Травень 04, 2011, 12:14:52 ПП
Uukrul большое спасибо
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Uukrul від Травень 04, 2011, 12:15:38 ПП
Цитата: Sed0Y від Травень 04, 2011, 12:14:52 ПП
Uukrul большое спасибо
Да вроде ж как сами разобрались где собака порылась :-)
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: dev403k від Липень 25, 2011, 10:03:23 ПП
Добрый день. Не стала открывать новую тему, т.к.  у меня вопрос по классификации при сохранении документа с помощью MIGO.

Как можно прочитать (с помощью чего) значения признаков классификации, перед сохранением?
Проблема такова, что перед сохранением документа необходимо проверить значения некоторых признаков. Если они не заполнены остановить обработку документа и выдать сообщение.
Используем UserExit MB_MIGO_BADI для проверки информации при сохранении. Можно ли каким-то образом в нем сделать проверку признаков классификации?

Будем благодарны за ответ.
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: dev403k від Липень 26, 2011, 02:30:55 ПП
Добрый день. Может кому-нибудь понадобится считать признаки классификации:
в UserExit MB_MIGO_BADI  проверяем :
CALL FUNCTION 'VB_BATCH_READ_BUFFER_DB'
        EXPORTING
         matnr                        = ls_goitem-matnr " материал
         charg                        = ls_goitem-charg " партия
         werks                        = ls_goitem-werks "завод
*          LGORT                        =
         read_from_buffer              = 'X'
         read_from_db                  = 'X'
       IMPORTING
         batch_cuobj                   = cuobj0
         batch_objek                   = objek0 " то что нам нужно
         batch_class                   = class0
       EXCEPTIONS
         no_material                  = 1
         no_batch                     = 2
         no_plant                     = 3
         lock_on_batch                = 4
         OTHERS                       = 5
                .
      IF sy-subrc <> 0.                                   
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.                                               
        IF objek0 IS NOT INITIAL.                   
          CALL FUNCTION 'CLFM_GET_AUSP_FROM_BUFFER' 
            EXPORTING
             object               = objek0
             classytpe             = '023'
             ptable                = 'MCH1'
             mafid                 = 'O'
             atinn                 = atinn1   "признак классификации по которону нужно считать ин-ю
            TABLES
             exp_ausp              = lt_ausp.
          READ TABLE lt_ausp INTO ls_ausp1 INDEX 1.
Можно обойтись и без 1-го ФМ, но тогда в objek0 нужно положить материал+партию
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: Паганель від Липень 26, 2011, 10:44:52 ПП
Цитата: dev403k від Липень 26, 2011, 02:30:55 ПП
Можно обойтись и без 1-го ФМ, но тогда в objek0 нужно положить материал+партию[/color]
Думаю лучше считать настройку (хоть и медленнее) http://sapforum.biz/index.php/topic,1293.0.html
Назва: Re: MBCFC004 - Заполнение классификации для партий
Відправлено: dev403k від Липень 27, 2011, 10:49:58 ДП
Цитата: Паганель від Липень 26, 2011, 10:44:52 ПП
Думаю лучше считать настройку (хоть и медленнее) http://sapforum.biz/index.php/topic,1293.0.html

Добрый день.
Я написала часть кода, для случая, когда создается новая партия в MIGO. Если пользователь не ввел значения в нужные признаки. Пока не нажата кнопка "сохранить" -  читать по ФМ BAPI_OBJCL_CHANGE и с прозрачных раблиц нечего.
Код внизу продолжается , если партия уже ранее создана. Вот в этом случае можно учесть Вашу ссылку. Спасибо.