Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема розпочата: jacknk88 від Липень 16, 2013, 03:01:36 ПП

Назва: BADI: глобальная переменная
Відправлено: jacknk88 від Липень 16, 2013, 03:01:36 ПП
здравствуйте. Для проверки при проводке (тр. MB1B ) по виду движения 309/310 и 391/392 необходимо сделать проверки по количеству материала в проводке. Для этого, до меня уже, был создан Z-ий класс, метод которого срабатывает при нажатии на Сохранить или Enter. Если пользователь у отдающего материала использует сразу несколько партий, то этот метод вызывается столько же раз. Мне надо определить количество в проводке по всем указанным партиям, пр., по  1-ой партии надо menge = 10, по 2-й - 15, по 3-ей - 5, то в сумме 30. Это чтобы потом сравнить с количеством в страхового запаса и объемом свободного используемого запаса.  Понятия не имею где можно объявить глобальную переменную. SET и GET PARAMETR не работает.
Назва: Re: BADI: глобальная переменная
Відправлено: Uukrul від Липень 16, 2013, 03:11:24 ПП
Это вы используете старую реализацию BADI или новую? Если новую то там довольно прозрачно все хранится, но сейчас объяснить не смогу, вечером постараюсь написать.
Назва: Re: BADI: глобальная переменная
Відправлено: jacknk88 від Липень 16, 2013, 03:16:04 ПП
Цитата: Uukrul від Липень 16, 2013, 03:11:24 ПП
Это вы используете старую реализацию BADI или новую?
старую....это уже давно до меня делали....в SE19 есть "Новая" и "Классическая"....я использую старую
Назва: Re: BADI: глобальная переменная
Відправлено: crxcrvs від Липень 17, 2013, 08:33:49 ДП
Цитата: jacknk88 від Липень 16, 2013, 03:16:04 ПП
  старую....это уже давно до меня делали....в SE19 есть "Новая" и "Классическая"....я использую старую
Это совершенно без разницы старая бади  или новая в z классе создаете статический атрибут и в нем накаплиыавете нужное вам значение.
Назва: Re: BADI: глобальная переменная
Відправлено: jacknk88 від Липень 17, 2013, 08:34:58 ДП
вроде получилось...вот отрывок кода


DATA: menge TYPE BSTMG, " количество в проводке
            mng TYPE string.

if is_mseg-zeile > 1. " чтобы при первом вызове метода не считывать из памяти
     IMPORT p1 = mng FROM MEMORY ID 'MENGE'.
     FREE MEMORY ID 'MENGE'.
      menge = mng.
endif.
   menge = menge + is_mseg-menge.
   mng = menge.
   EXPORT p1 = mng TO MEMORY ID 'MENGE'.
Назва: Re: BADI: глобальная переменная
Відправлено: jacknk88 від Липень 17, 2013, 08:35:57 ДП
Цитата: crxcrvs від Липень 17, 2013, 08:33:49 ДП
Это совершенно без разницы старая бади  или новая в z классе создаете статический атрибут и в нем накаплиыавете нужное вам значение.

ок..спасибо..попробую