Sapforum.Biz

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

Название: MBCFC004 - Заполнение классификации для партий
Отправлено: Uukrul от Сентябрь 08, 2009, 12:44:35 pm
MBCFC004 - В данном экзите можно выполнить автоматическое присвоение значений для полей классификации партии. Экзит автоматически вызывается при задании партии и мы можем заполнить значения полей. Список полей передается в структуре attributes, так что все что нужно это заполнить параметр VALUES.
Код: You are not allowed to view links. Register or Login
 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 am
Что то не могу найти этот экзит, твоей прогой искал - http://sapforum.biz/index.php/topic,654.0.html
Нашел SAPLV1ZN - EXIT_SAPLV01Z_014
Мне кажется что ты перепутал с ZXVBZU10.

Как мне найти в каком  Enhancement"е находится ZXMBCU04?
Название: Re: ZXMBCU04 - Заполнение классификации для партий
Отправлено: Dmitriy от Сентябрь 27, 2009, 11:35:46 am
You are not allowed to view links. Register or Login
Что то не могу найти этот экзит, твоей прогой искал - 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 pm
А имя расширения, которое можно указать в smod

т.е. есть у нас екзит EXIT_SAPMM07M_010, есть инклуд ZXMBCU10, как определить название расширения которое надо в проекте присвоить?
Название: Re: ZXMBCU04 - Заполнение классификации для партий
Отправлено: Dmitriy от Сентябрь 27, 2009, 12:47:50 pm
You are not allowed to view links. Register or Login
FM "EXIT_SAPMM07M_004"
Расширение MBCFC004
Название: Re: ZXMBCU04 - Заполнение классификации для партий
Отправлено: Dmitriy от Сентябрь 27, 2009, 12:50:09 pm
You are not allowed to view links. Register or Login
А имя расширения, которое можно указать в smod

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

Не могу найти экзит
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Паганель от Сентябрь 27, 2009, 07:29:21 pm
You are not allowed to view links. Register or Login
uukrul:
экзит я тебе сказал...

блин,типа если для ВД утановить это индикатор, то будет вызыватся MBCFC004?
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Uukrul от Сентябрь 27, 2009, 08:21:55 pm
Типа таки вот как оно работает, только что проверил по всей цепочки в 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 и в нем написал вот такой вот текст:
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*&  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 pm
Прикольно, у меня так что-то не работает .... сделал бади в нем вызываю VB_CREATE_BATCH всеравно .... получилось создавать партию, только как бы там не было вызывается (показывается) диалог классификации
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Uukrul от Сентябрь 27, 2009, 08:33:18 pm
You are not allowed to view links. Register or Login
Прикольно, у меня так что-то не работает .... сделал бади в нем вызываю VB_CREATE_BATCH всеравно .... получилось создавать партию,
Ну я бади как-то у себя в примере не вижу... а так как сделал, то.. еще раз в двух разных системах это работает. Отсюда вывод или у ритейла что-то не то?! Сомневаюсь однако... или кто-то уже что-то хорошо поломал где-то.
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Паганель от Октябрь 07, 2009, 01:48:10 pm
You are not allowed to view links. Register or Login
Прикольно, у меня так что-то не работает .... сделал бади в нем вызываю 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 pm
You are not allowed to view links. Register or Login
2. Стандартный механизм, поисанный Уукрулом не срабатывал, так как в Ритейле, нету закладки "Классификация" в ОЗМ, и присвоить класс ..... как бы нельзя, или я просто его не нашел.
Так это вообще такой закладки нет или может ее для вида материала не активировали?
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Паганель от Октябрь 07, 2009, 02:01:53 pm
Вообще в Ритейле нету такого ракурса
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Dmitriy от Октябрь 12, 2009, 12:22:10 pm
Добавлю небольшие свои 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 pm
You are not allowed to view links. Register or Login
Типа таки вот как оно работает, только что проверил по всей цепочки в 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 и в нем написал вот такой вот текст:
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*&  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 pm
You are not allowed to view links. Register or Login
Не подскажете, сделал все как описано выше, в инклюде ZXMBCU04 сделал точку остановы (брейк поинт) но программа не попадает туда, посоветуйте что нужно проверить или сделать?
Так это вы проект расширения создали и его активировали?
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Sed0Y от Май 04, 2011, 12:02:52 am
You are not allowed to view links. Register or Login
Так это вы проект расширения создали и его активировали?

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

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

Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Uukrul от Май 04, 2011, 12:30:00 am
You are not allowed to view links. Register or Login
или книгу где все это описывается внятно, буду очень признателен...
Ну не знаю.. сейчас накидаю, что-то... минут за 20... чтобы было понятно что и как... а то у меня чувство что вы проект не правильно создали.
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Uukrul от Май 04, 2011, 12:49:41 am
You are not allowed to view links. Register or Login
читал литературу, вроде так и писали как делать, как я написал, если дадите ссылку на другой ресурс, или книгу где все это описывается внятно, буду очень признателен...
Ну в общем тут пример набросал: http://sapforum.biz/index.php/topic,1649.msg8905.html#msg8905
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Sed0Y от Май 04, 2011, 12:57:28 am
You are not allowed to view links. Register or Login
Ну в общем тут пример набросал: http://sapforum.biz/index.php/topic,1649.msg8905.html#msg8905

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

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

Это оно?
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Uukrul от Май 04, 2011, 10:06:13 am
You are not allowed to view links. Register or Login
все сделал как по ссылке результат = 0
В смысле не заходит в расширение или заходит но классифицирование не просиходит?

You are not allowed to view links. Register or Login
Когда захожу в MIGO - закладка "Партии" - кнопка "Классификация" после нажатия, если посмотреть то запускается:
Транзакция           MSC3N
Программа            SAPLCHRG

Ну запускается стандартная транзакция, но тебе ж нужно присвоить признаки классу или что вообще нужно сделать?
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Sed0Y от Май 04, 2011, 10:18:56 am
You are not allowed to view links. Register or Login
В смысле не заходит в расширение или заходит но классифицирование не просиходит?
не заходит в расширение

You are not allowed to view links. Register or Login
Ну запускается стандартная транзакция, но тебе ж нужно присвоить признаки классу или что вообще нужно сделать?
Мне нужно при создании Классификации (из MIGO) что бы присваивалось значение признаку

(http://)
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Uukrul от Май 04, 2011, 10:36:04 am
You are not allowed to view links. Register or Login
не заходит в расширение
Значит нужно смотреть чего расширение не вызывается, у меня на 4.6 работало. Нужно глянуть настройку видов материала, там определяется способ вызова классификации, если ничего не путаю, может у вас там стоит только в диалоге, поэтому и не срабатывает.
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: MM_ka от Май 04, 2011, 11:32:39 am
You are not allowed to view links. Register or Login
Значит нужно смотреть чего расширение не вызывается, у меня на 4.6 работало. Нужно глянуть настройку видов материала, там определяется способ вызова классификации, если ничего не путаю, может у вас там стоит только в диалоге, поэтому и не срабатывает.
Проверила, для вдв 101, в OMCV стоит заполнение в фоне, а вот галки для расширения не было.
(А вот в виде материала не нашла как определить способ вызова классификации, там только вид класса и класс.)
Но после того, как установила галку расширение классификации....все равно не сработала точка остановки  ???

Может быть дело еще в настройке признака ???
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: MM_ka от Май 04, 2011, 12:13:53 pm
Таки да, все дело в созданном признаке.
Добавила проверку по ФМ и в migo при проверке мы попадаем в него.
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Sed0Y от Май 04, 2011, 12:14:52 pm
Uukrul большое спасибо
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: Uukrul от Май 04, 2011, 12:15:38 pm
You are not allowed to view links. Register or Login
Uukrul большое спасибо
Да вроде ж как сами разобрались где собака порылась :-)
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: dev403k от Июль 25, 2011, 10:03:23 pm
Добрый день. Не стала открывать новую тему, т.к.  у меня вопрос по классификации при сохранении документа с помощью MIGO.

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

Будем благодарны за ответ.
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: dev403k от Июль 26, 2011, 02:30:55 pm
Добрый день. Может кому-нибудь понадобится считать признаки классификации:
в 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 pm
You are not allowed to view links. Register or Login
Можно обойтись и без 1-го ФМ, но тогда в objek0 нужно положить материал+партию[/color]
Думаю лучше считать настройку (хоть и медленнее) http://sapforum.biz/index.php/topic,1293.0.html
Название: Re: MBCFC004 - Заполнение классификации для партий
Отправлено: dev403k от Июль 27, 2011, 10:49:58 am
You are not allowed to view links. Register or Login
Думаю лучше считать настройку (хоть и медленнее) http://sapforum.biz/index.php/topic,1293.0.html

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