Posted: Thu Sep 04, 2008 4:50 pm Post subject: Нумерация партий
Здравствуйте.
Есть следующая ситуация.
Необходимо сделать что бы при перемещении с помощью 311 вида движения номер Принимающей партии был не таким как у передающей. А начинался например на 'Z'.
Порывшись в инете я сделал следующее:
В транзакции OMJJ для вида движения 311 поставил:
Создавать новую партию B Автоматически/вручную с проверкой в USER EXIT
С помощью транзакции CMOD поменял компонент расширения: exit_saplv01z_002.
Там я написал следующее:
Code:
*&---------------------------------------------------------------------*
*& Include ZXVBZU02
*&---------------------------------------------------------------------*
data numom type string.
if x_bncom-bwart = '311' . " Для 311 ВДв
move x_bncom-umcha to numom. " Номер партии который генерируется автоматически
shift numom by 1 places. " Отрежем справа один символ
concatenate 'Z' numom into new_charg. " Приклеим 'Z'
endif.
Но при перемещении номер принимающей партии все равно копируется из номера передающей.
Помогите, пожалуйста, разобраться - как правильно сделать?
P.S. Доработку такого типа делаю впервые поэтому сильно строго меня не судите.
Немного порылся и если сделать вот так тогда вроде как получается:
Код:
Code:
*&---------------------------------------------------------------------*
*& Include ZXVBZU02
*&---------------------------------------------------------------------*
if x_bncom-bwart = '311' . " Для 311 ВДв
shift new_charg by 1 places. " Отрежем справа один символ
concatenate 'Z' new_charg into new_charg. " Приклеим 'Z'
endif.
Но есть одна неувязочка нужно теперь сделать следующее:
Формировать номер принимающей партии следующим образом:
[Z][Номер передающей партии][Номер принимающей партии]
Где номер принимающей партии это следующий генерируемый системой номер партии.
Но никак не получается. Если установлен номер передающей партии то система не заходит в exit_saplv01z_002.
Подскажите пожалуйста как можно перехватить номер передающей партии и потом сгенерировать следующий и приклеить к нему 'Z'?
Age: 48 Joined: 25 Jan 2008 Posts: 580 Location: Москва
Posted: Wed Sep 10, 2008 12:58 pm Post subject:
Для подстановки номера партии можно использовать BAdI MB_MIGO_BADI, метод LINE_MODIFY, который работает всегда при вводе/изменении позиции ДМ.
Прередающая партия - CS_GOITEM-CHARG, принимающая партия - CS_GOITEM-UMCHA.
Необходимо также производить анализ или вида движения(311), или выполняемой операции (A08 - проводка переноса)
Для определения следующего номера можно использовать ФМ VB_NEXT_BATCH_NUMBER _________________ С уважением,
Удав.
Всем еще раз спасибо за советы. Решил остановиться на следующем варианте.
Code:
METHOD IF_EX_MB_MIGO_BADI~LINE_MODIFY.
* В момент выбора запаса из передающей партии. Нажатии на кнопку "Скопировать"
IF CS_GOITEM-BWART = '311' AND CS_GOITEM-CHARG <> '' AND CS_GOITEM-UMCHA = CS_GOITEM-CHARG.
CALL FUNCTION 'VB_NEXT_BATCH_NUMBER' " Получим новый номер партии
EXPORTING
MATNR = CS_GOITEM-MATNR " Код материала
IMPORTING
NEW_CHARG = CS_GOITEM-UMCHA. " Новый номер партии
SHIFT CS_GOITEM-UMCHA BY 1 PLACES. " Отрежем справа один символ
CONCATENATE 'Z' CS_GOITEM-UMCHA INTO CS_GOITEM-UMCHA. " Приклеим 'Z'
ENDIF.
ENDMETHOD.
Еще один вопросик. Как сгенерировать нажатие на кнопку "Классифицировать", которая на вкладке "Партия"?
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.