Текущее время: Сб, июл 19 2025, 14:03

Часовой пояс: UTC + 3 часа


Правила форума


Вопросы по ППМ (MRP) - сюда.
Вопросы по классификации - сюда.
Вопросы по входящим поставкам - сюда.



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Тип заказа на поставку и скрин экзит
СообщениеДобавлено: Ср, май 04 2005, 19:00 
Гость
Хай, Олл.
Есть расширение к ведению ЗП MM06E005 - (ME21,22,23) для юзер-полей. Сделал доп.экранчик для позиций. Но надо, чтобы он появлялся только для определенного вида ЗП. Скрыть в PBO можно, но как считать заранее тип введеного ЗП? кто может знает?
Система 40B
Спасибо.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения: Re: тип зп и скрин экзит
СообщениеДобавлено: Чт, май 05 2005, 06:31 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Inferno2 написал(а):
Хай, Олл.
Есть расширение к ведению ЗП MM06E005 - (ME21,22,23) для юзер-полей. Сделал доп.экранчик для позиций. Но надо, чтобы он появлялся только для определенного вида ЗП. Скрыть в PBO можно, но как считать заранее тип введеного ЗП? кто может знает?
Система 40B
Спасибо.


Во многие ФМ этого экзита передается структура I_EKKO, в ней есть поля определяющие и вид документа закупки (ЕККО-BSART) и его тип (EKKO-BSTYP)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тип зп и скрин экзит
СообщениеДобавлено: Чт, май 05 2005, 11:23 
Гость
OlegDm написал(а):
Inferno2 написал(а):
Хай, Олл.
Есть расширение к ведению ЗП MM06E005 - (ME21,22,23) для юзер-полей. Сделал доп.экранчик для позиций. Но надо, чтобы он появлялся только для определенного вида ЗП. Скрыть в PBO можно, но как считать заранее тип введеного ЗП? кто может знает?
Система 40B
Спасибо.


Во многие ФМ этого экзита передается структура I_EKKO, в ней есть поля определяющие и вид документа закупки (ЕККО-BSART) и его тип (EKKO-BSTYP)


Былоб так просто... наример, при создании, вызываются те экзиты, в которых этих структур нету, да и при просмотрах и редактировании те экзиты, где они есть, вызываются уже после прорисовки экрана...((


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения: Re: тип зп и скрин экзит
СообщениеДобавлено: Чт, май 05 2005, 13:27 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Inferno2 написал(а):
OlegDm написал(а):
Inferno2 написал(а):
Хай, Олл.
Есть расширение к ведению ЗП MM06E005 - (ME21,22,23) для юзер-полей. Сделал доп.экранчик для позиций. Но надо, чтобы он появлялся только для определенного вида ЗП. Скрыть в PBO можно, но как считать заранее тип введеного ЗП? кто может знает?
Система 40B
Спасибо.


Во многие ФМ этого экзита передается структура I_EKKO, в ней есть поля определяющие и вид документа закупки (ЕККО-BSART) и его тип (EKKO-BSTYP)


Былоб так просто... наример, при создании, вызываются те экзиты, в которых этих структур нету, да и при просмотрах и редактировании те экзиты, где они есть, вызываются уже после прорисовки экрана...((


Подожди ка, ты ж говоришь если будешь знать вид документа то сможешь соответственно модифицировать свой экран. Значит смотри в pbo логике своего экрана какой вид заказа и соответственно модифицируй экран. Чтоб узнать вид заказа в PBO используй assign к структуре MEPO_TOPLINE программы SAPLMEGUI.

Примерно так:

Code:
   data: x_mepo_topline like mepo_topline.

   field-symbols: <fs_mepo_topline> type any.

   assign: ('(SAPLMEGUI)MEPO_TOPLINE')  to <fs_mepo_topline>.

   if sy-subrc = 0.

      move: <fs_mepo_topline> to x_mepo_topline .
*     В поле x_mepo_topline-bsart твой вид заказа
      . . .

   endif.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тип зп и скрин экзит
СообщениеДобавлено: Чт, май 05 2005, 15:46 
Гость
Подожди ка, ты ж говоришь если будешь знать вид документа то сможешь соответственно модифицировать свой экран. Значит смотри в pbo логике своего экрана какой вид заказа и соответственно модифицируй экран. Чтоб узнать вид заказа в PBO используй assign к структуре MEPO_TOPLINE программы SAPLMEGUI.

Примерно так:

Code:
   data: x_mepo_topline like mepo_topline.

   field-symbols: <fs_mepo_topline> type any.

   assign: ('(SAPLMEGUI)MEPO_TOPLINE')  to <fs_mepo_topline>.

   if sy-subrc = 0.

      move: <fs_mepo_topline> to x_mepo_topline .
*     В поле x_mepo_topline-bsart твой вид заказа
      . . .

   endif.
[/quote]

В 4.0 не нашел проги, хотя в 4.6 есть...
Проблемку пока решил - считываю из ID параметра BSA... но мне ет не очень нравиться..


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения: Re: тип зп и скрин экзит
СообщениеДобавлено: Чт, май 05 2005, 16:12 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Inferno2 написал(а):
Подожди ка, ты ж говоришь если будешь знать вид документа то сможешь соответственно модифицировать свой экран. Значит смотри в pbo логике своего экрана какой вид заказа и соответственно модифицируй экран. Чтоб узнать вид заказа в PBO используй assign к структуре MEPO_TOPLINE программы SAPLMEGUI.

Примерно так:

Code:
   data: x_mepo_topline like mepo_topline.

   field-symbols: <fs_mepo_topline> type any.

   assign: ('(SAPLMEGUI)MEPO_TOPLINE')  to <fs_mepo_topline>.

   if sy-subrc = 0.

      move: <fs_mepo_topline> to x_mepo_topline .
*     В поле x_mepo_topline-bsart твой вид заказа
      . . .

   endif.


В 4.0 не нашел проги, хотя в 4.6 есть...
Проблемку пока решил - считываю из ID параметра BSA... но мне ет не очень нравиться..




тогда:

Code:
data: x_RM06E like RM06E.

   field-symbols: <fs_RM06E> type any.

   assign: ('(SAPMM06E)RM06E)  to <fs_RM06E>.

   if sy-subrc = 0.

      move: <fs_RM06E> to x_RM06E.
*     В поле x_RM06E-bsart твой вид заказа
      . . .

   endif.


хотя взять из памяти тоже хороший вариант.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тип зп и скрин экзит
СообщениеДобавлено: Чт, май 05 2005, 16:39 
Гость
тогда:

Code:
data: x_RM06E like RM06E.

   field-symbols: <fs_RM06E> type any.

   assign: ('(SAPMM06E)RM06E)  to <fs_RM06E>.

   if sy-subrc = 0.

      move: <fs_RM06E> to x_RM06E.
*     В поле x_RM06E-bsart твой вид заказа
      . . .

   endif.


хотя взять из памяти тоже хороший вариант.[/quote]

Спасибо, друг. Заработало через assign !


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 16:54 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Я бы, прежде чем "швыряться" такими ... посмотрел на результат вызова

data: lf_bsart type bsart.
get parameter id 'BSA' field lf_bsart.

в твоем замещении... :?

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 06 2005, 06:15 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
nicky555 написал:
Я бы, прежде чем "швыряться" такими ... посмотрел на результат вызова

data: lf_bsart type bsart.
get parameter id 'BSA' field lf_bsart.

в твоем замещении... :?


Nicky, если ты имеешь ввиду мой совет насчет assign-а, то мне так кажется, если он используется только для чтения - особого криминала в этом нет. Плюс кроме переменной которую можно взять из SAP памяти, можно проанализировать и еще кой-какие параметры структуры, которую читаешь, то чего из памяти не вытащишь.

Но если, нужен только вид заказа, то как уже говорил выше - прочитать из памяти наиболее верный вариант - не надо что-то там городить.

Откровенно говоря частенько бывает, что в экзитах нет нужной информации и использование assign решает многие проблемы.

Добавлю, что это сугубо мое мнение (не-абапера) ...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 06 2005, 07:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
На мой взгляд простого АВАР'ера - использование динамического assign'а там, где достаточно сделать дополнительную выборку по имеющимся данным, или считать значения SPA/GPA, просто неоправданно.
Указанное средство стоит использовать в самую последнюю очередь, поскольку оно опасно и ненадежно.
Опасно в том плане, что, просто описАвшись, вы можете случайно изменить данные (а они уже прошли все стандартные проверки и готовы к записи в БД!).
Ненадежно, поскольку в своей процедуре вы должны жестко типизовать принимающее поле и привязаться к имени переменной в программе-отправителе.
"... что-то там городить..." - городите вы, используя динамическую ссылку (!)
Ну, и напоследок - см. мою подпись. Облегчая жизнь себе, вы не задумываетесь о будущем вашей системы (для консалтинга это нормально). А ведь впереди обновления версий, патчи... :roll:

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 06 2005, 07:44 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
nicky555 написал:
На мой взгляд простого АВАР'ера - использование динамического assign'а там, где достаточно сделать дополнительную выборку по имеющимся данным, или считать значения SPA/GPA, просто неоправданно.
Указанное средство стоит использовать в самую последнюю очередь, поскольку оно опасно и ненадежно.
Опасно в том плане, что, просто описАвшись, вы можете случайно изменить данные (а они уже прошли все стандартные проверки и готовы к записи в БД!).
Ненадежно, поскольку в своей процедуре вы должны жестко типизовать принимающее поле и привязаться к имени переменной в программе-отправителе.
"... что-то там городить..." - городите вы, используя динамическую ссылку (!)
Ну, и напоследок - см. мою подпись. Облегчая жизнь себе, вы не задумываетесь о будущем вашей системы (для консалтинга это нормально). А ведь впереди обновления версий, патчи... :roll:


Nicky, когда я говорил "взять из памяти" - имел ввиду как раз таки SAP-память, и слово "городить" - как раз таки отнес к конструкции с assign-ами :) (но только в этом случае, когда можно легко получить значение из SAP-памяти)

И еще... лично мне ценны ваши советы :wink:

Но учительский тон иной раз ... :) (без обид)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 06 2005, 08:27 
Гость
OlegDm написал(а):
Но учительский тон иной раз ... :) (без обид)

:wink: Извиняюсь - привычка :)


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения: Re: тип зп и скрин экзит  Тема решена
СообщениеДобавлено: Ср, фев 11 2015, 11:06 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 22 2013, 01:09
Сообщения: 108
Откуда: г. Жлобин, Республика Беларусь
Пол: Мужской
Вот кстати столкнулся с реальным случаем, когда пришлось прибегнуть к assign: ('(SAPLMEGUI)MEPO_TOPLINE') to <fs_mepo_topline>.
Стандартный экран в транзакции me22n, поле номер материала. Клиент пожелал, чтобы в средстве поиска по виду материала учитывалась z-зависимость между видом заказа и видом материала. Создал свое элементарное средство поиска. Оно нормально работало когда можно было считать вид заказа. И в этом то и была вся загвоздка - при вызове средства поиска в рамках функционального модуля, связанного со средством поиска, get parameters id 'BSA' field lv_bsart не работал, переменная lv_bsart оставалась пустой. И пока не прибегнул к assign проблему победить не получалось. В итоге конечно средство сделалось зависимым от контекста запуска, но тут уж ничего другого в голову не пришло.

_________________
Когда другие слепо следуют за истиной, помни - ничто не истина.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB