MBCFC004 - В данном экзите можно выполнить автоматическое присвоение значений для полей классификации партии. Экзит автоматически вызывается при задании партии и мы можем заполнить значения полей. Список полей передается в структуре attributes, так что все что нужно это заполнить параметр VALUES.
LOOP AT attributes.
MOVE-CORRESPONDIG attributes TO values.
CASE/IF <в зависимости от имени признака>
values-atwtb = <значение присвоенное признаку>.
ENDCASE/ENDIF.
APPEND values.
ENDLOOP.
PS: Случайно вместо имени экзита указал имя инклуда.
Что то не могу найти этот экзит, твоей прогой искал - http://sapforum.biz/index.php/topic,654.0.html
Нашел SAPLV1ZN - EXIT_SAPLV01Z_014
Мне кажется что ты перепутал с ZXVBZU10.
Как мне найти в каком Enhancement"е находится ZXMBCU04?
Цитата: Паганель від Вересень 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"
А имя расширения, которое можно указать в smod
т.е. есть у нас екзит EXIT_SAPMM07M_010, есть инклуд ZXMBCU10, как определить название расширения которое надо в проекте присвоить?
Цитата: Паганель від Вересень 27, 2009, 12:15:29 ПП
А имя расширения, которое можно указать в smod
т.е. есть у нас екзит EXIT_SAPMM07M_010, есть инклуд ZXMBCU10, как определить название расширения которое надо в проекте присвоить?
MBCFC010 ;)
В общем-то имя экзита MBCFC004, но чтобы он вызвался нужно для вида движения убедиться что классификация активна. Для этого зайдите в транзакцию настройки классификации партий для видов движений OMCV и установите требуемый код для вида движения. Например если вы классифицируете в экзите тогда можно поставить режим 1 - Классификация выполняется в фоновом режиме (все партии) или 3 - Классификация вызывается всегда в ДиалогРежиме (все партии), при этом для режима три будет вызван экзит, а потом пользователю будет показан экран классификации с заполненными в экзите полями.
Т.е. это экзит вызывается когда в миго нажимают кнопку "Классификация"?
А как же заполнять в фоне?
Цитата: Паганель від Вересень 27, 2009, 07:19:03 ПП
Т.е. это экзит вызывается когда в миго нажимают кнопку "Классификация"?
А как же заполнять в фоне?
Не знаю... я в новых транзакциях не смотрел, но в 4.6 работает без нажатия на кнопочку... а ты точно там поставил тип 1? Кстати попробуй через MB01 сделать приход...
mb01 не катит ....
Цитата: Uukrul link=topic=782.msg5095#msg5095 date=1254067966
Например если вы классифицируете в экзите тогда можно поставить режим 1 - Классификация выполняется в фоновом режиме (все партии)
Не могу найти экзит
Цитата: Паганель від Вересень 27, 2009, 07:27:54 ПП
uukrul:
экзит я тебе сказал...
блин,типа если для ВД утановить это индикатор, то будет вызыватся MBCFC004?
Типа таки вот как оно работает, только что проверил по всей цепочки в 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
Так что не знаю... у меня как видим в двух разных системах все работает.
Прикольно, у меня так что-то не работает .... сделал бади в нем вызываю VB_CREATE_BATCH всеравно .... получилось создавать партию, только как бы там не было вызывается (показывается) диалог классификации
Цитата: Паганель від Вересень 27, 2009, 08:30:44 ПП
Прикольно, у меня так что-то не работает .... сделал бади в нем вызываю VB_CREATE_BATCH всеравно .... получилось создавать партию,
Ну я бади как-то у себя в примере не вижу... а так как сделал, то.. еще раз в двух разных системах это работает. Отсюда вывод или у ритейла что-то не то?! Сомневаюсь однако... или кто-то уже что-то хорошо поломал где-то.
Цитата: Паганель від Вересень 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. Стандартный механизм, поисанный Уукрулом не срабатывал, так как в Ритейле, нету закладки "Классификация" в ОЗМ, и присвоить класс ..... как бы нельзя, или я просто его не нашел.
Есть идеи?
Цитата: Паганель від Жовтень 07, 2009, 01:48:10 ПП
2. Стандартный механизм, поисанный Уукрулом не срабатывал, так как в Ритейле, нету закладки "Классификация" в ОЗМ, и присвоить класс ..... как бы нельзя, или я просто его не нашел.
Так это вообще такой закладки нет или может ее для вида материала не активировали?
Вообще в Ритейле нету такого ракурса
Добавлю небольшие свои 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) и показано на рисунке.
Цитата: 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 сделал точку остановы (брейк поинт) но программа не попадает туда, посоветуйте что нужно проверить или сделать?
Цитата: Sed0Y від Травень 03, 2011, 11:40:44 ПП
Не подскажете, сделал все как описано выше, в инклюде ZXMBCU04 сделал точку остановы (брейк поинт) но программа не попадает туда, посоветуйте что нужно проверить или сделать?
Так это вы проект расширения создали и его активировали?
Цитата: Uukrul від Травень 03, 2011, 11:43:47 ПП
Так это вы проект расширения создали и его активировали?
Смотрите -создал в CMOD MBCFC004, в нем дважды нажал на "EXIT_SAPMM07M_004" выбрал перешел в папку где находится этот
user- exits и через нажатие правой кнопки мыши "создать инклюд" создал "ZXMBCU04" написал код остановы, активировал, вышел и в cmod активировал - верно?
P.S. это первый мой опыт создания user- exits, читал литературу, вроде так и писали как делать, как я написал, если дадите ссылку на другой ресурс, или книгу где все это описывается внятно, буду очень признателен...
Цитата: Sed0Y від Травень 04, 2011, 12:02:52 ДП
или книгу где все это описывается внятно, буду очень признателен...
Ну не знаю.. сейчас накидаю, что-то... минут за 20... чтобы было понятно что и как... а то у меня чувство что вы проект не правильно создали.
Цитата: Sed0Y від Травень 04, 2011, 12:02:52 ДП
читал литературу, вроде так и писали как делать, как я написал, если дадите ссылку на другой ресурс, или книгу где все это описывается внятно, буду очень признателен...
Ну в общем тут пример набросал: http://sapforum.biz/index.php/topic,1649.msg8905.html#msg8905
Цитата: Uukrul від Травень 04, 2011, 12:49:41 ДП
Ну в общем тут пример набросал: http://sapforum.biz/index.php/topic,1649.msg8905.html#msg8905
Uukrul - большое спасибо, завтра утром попробую!
все сделал как по ссылке результат = 0
Тогда хочу уточнить, может это расширение не к этой классификации, что мне нужно.
Когда захожу в MIGO - закладка "Партии" - кнопка "Классификация" после нажатия, если посмотреть то запускается:
Транзакция MSC3N
Программа SAPLCHRG
Это оно?
Цитата: Sed0Y від Травень 04, 2011, 09:26:16 ДП
все сделал как по ссылке результат = 0
В смысле не заходит в расширение или заходит но классифицирование не просиходит?
Цитата: Sed0Y від Травень 04, 2011, 09:26:16 ДП
Когда захожу в MIGO - закладка "Партии" - кнопка "Классификация" после нажатия, если посмотреть то запускается:
Транзакция MSC3N
Программа SAPLCHRG
Ну запускается стандартная транзакция, но тебе ж нужно присвоить признаки классу или что вообще нужно сделать?
Цитата: Uukrul від Травень 04, 2011, 10:06:13 ДП
В смысле не заходит в расширение или заходит но классифицирование не просиходит?
не заходит в расширение
Цитата: Uukrul від Травень 04, 2011, 10:06:13 ДП
Ну запускается стандартная транзакция, но тебе ж нужно присвоить признаки классу или что вообще нужно сделать?
Мне нужно при создании Классификации (из MIGO) что бы присваивалось значение признаку
(//)
Цитата: Sed0Y від Травень 04, 2011, 10:18:56 ДП
не заходит в расширение
Значит нужно смотреть чего расширение не вызывается, у меня на 4.6 работало. Нужно глянуть настройку видов материала, там определяется способ вызова классификации, если ничего не путаю, может у вас там стоит только в диалоге, поэтому и не срабатывает.
Цитата: Uukrul від Травень 04, 2011, 10:36:04 ДП
Значит нужно смотреть чего расширение не вызывается, у меня на 4.6 работало. Нужно глянуть настройку видов материала, там определяется способ вызова классификации, если ничего не путаю, может у вас там стоит только в диалоге, поэтому и не срабатывает.
Проверила, для вдв 101, в OMCV стоит заполнение в фоне, а вот галки для расширения не было.
(А вот в виде материала не нашла как определить способ вызова классификации, там только вид класса и класс.)
Но после того, как установила галку расширение классификации....все равно не сработала точка остановки ???
Может быть дело еще в настройке признака ???
Таки да, все дело в созданном признаке.
Добавила проверку по ФМ и в migo при проверке мы попадаем в него.
Uukrul большое спасибо
Цитата: Sed0Y від Травень 04, 2011, 12:14:52 ПП
Uukrul большое спасибо
Да вроде ж как сами разобрались где собака порылась :-)
Добрый день. Не стала открывать новую тему, т.к. у меня вопрос по классификации при сохранении документа с помощью MIGO.
Как можно прочитать (с помощью чего) значения признаков классификации, перед сохранением?
Проблема такова, что перед сохранением документа необходимо проверить значения некоторых признаков. Если они не заполнены остановить обработку документа и выдать сообщение.
Используем UserExit MB_MIGO_BADI для проверки информации при сохранении. Можно ли каким-то образом в нем сделать проверку признаков классификации?
Будем благодарны за ответ.
Добрый день. Может кому-нибудь понадобится считать признаки классификации:
в 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 нужно положить материал+партию
Цитата: dev403k від Липень 26, 2011, 02:30:55 ПП
Можно обойтись и без 1-го ФМ, но тогда в objek0 нужно положить материал+партию[/color]
Думаю лучше считать настройку (хоть и медленнее) http://sapforum.biz/index.php/topic,1293.0.html
Цитата: Паганель від Липень 26, 2011, 10:44:52 ПП
Думаю лучше считать настройку (хоть и медленнее) http://sapforum.biz/index.php/topic,1293.0.html
Добрый день.
Я написала часть кода, для случая, когда создается новая партия в MIGO. Если пользователь не ввел значения в нужные признаки. Пока не нажата кнопка "сохранить" - читать по ФМ BAPI_OBJCL_CHANGE и с прозрачных раблиц нечего.
Код внизу продолжается , если партия уже ранее создана. Вот в этом случае можно учесть Вашу ссылку. Спасибо.