Текущее время: Вс, июл 20 2025, 23:15

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Сб, фев 04 2006, 05:40 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Только если 2 раза Enter не нажмешь?
А каким образом количество читаешь?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, фев 04 2006, 15:23 
Специалист
Специалист

Зарегистрирован:
Вт, ноя 01 2005, 13:15
Сообщения: 228
Откуда: Москва
OlegDm написал(а):

Code:
FUNCTION FIELD_EXIT_EXBWR.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(INPUT)
*"  EXPORTING
*"     REFERENCE(OUTPUT)
*"----------------------------------------------------------------------
  field-symbols: <fs>.

  assign: ('(SAPMM07M)MSEG-BWART') to <fs>.

  if sy-subrc = 0.
    case <fs>.
      when '531'.
        output = 100.
      when others.
    endcase.
  endif.

ENDFUNCTION.




Вопрос к OlegDm.
А при таком синтаксисе сработает?
Code:
assign: ('MSEG-BWART') to <fs>.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 06 2006, 06:39 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
если б так можно было, то смысл в assign-е пропал бы, в данном примере можно было бы просто проанализировать mseg-bwart и все. ФМ FIELD_EXIT_EXBWR, и прочие ФМ - филдэкзиты, создаются, как правило, в юзеровской группе функций, и поэтому в момент работы экзита в нем "не видны" переменные объявленные в вызывающей программе, в данном случае - SAPMM07M. Поэтому один из выходов - assign к переменным вызывающей программы:
Code:
assign: ('(SAPMM07M)MSEG-BWART') to <fs>.
Хотя именно в этом примере вид движения правильнее взять из SAP памяти:
Code:
get parameter id 'BWA' field bwa.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 06 2006, 08:56 
Специалист
Специалист

Зарегистрирован:
Вт, ноя 01 2005, 13:15
Сообщения: 228
Откуда: Москва
OlegDm написал(а):
если б так можно было, то смысл в assign-е пропал бы, в данном примере можно было бы просто проанализировать mseg-bwart и все. ФМ FIELD_EXIT_EXBWR, и прочие ФМ - филдэкзиты, создаются, как правило, в юзеровской группе функций, и поэтому в момент работы экзита в нем "не видны" переменные объявленные в вызывающей программе, в данном случае - SAPMM07M. Поэтому один из выходов - assign к переменным вызывающей программы:
Code:
assign: ('(SAPMM07M)MSEG-BWART') to <fs>.
Хотя именно в этом примере вид движения правильнее взять из SAP памяти:
Code:
get parameter id 'BWA' field bwa.


Это все понятно. Просто в документации про динамический assign сказано следующ.:

The system searches for the field to be assigned in the following order:
If the statement is in a procedure (that is, a subroutine, function module, or method), it searches first in this procedure.
If the statement is in a method, it searches in the statically visible attributes of the associated class. In instance methods, the name is automatically prefixed with the self-reference ME-> .
It then searches for the field in the program's global data.
If it cannot find the field, it searches in the table work areas of the main program of the current program group. (These are declared using TABLES).

Исходя из последних строк, я думал , что можно обойтись и без приставки (SAPMM07M).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 06 2006, 09:28 
Специалист
Специалист

Зарегистрирован:
Пн, сен 20 2004, 10:55
Сообщения: 228
Откуда: Москва, Hamburg, Prague, Brussels
OlegDm написал(а):
Только если 2 раза Enter не нажмешь?
А каким образом количество читаешь?

Code:
assign: ('(SAPMM07M)MSEG-ERFMG') to <fs>.


Последний раз редактировалось Dan Пн, фев 06 2006, 10:07, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 06 2006, 09:34 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
sergedem написал(а):
It then searches for the field in the program's global data.
If it cannot find the field, it searches in the table work areas of the main program of the current program group. (These are declared using TABLES).

Исходя из последних строк, я думал , что можно обойтись и без приставки (SAPMM07M).


в том то и дело, что для ФМ-филдэкзита глобальными будут те данные, которые объявленны в гл.программе его группы функций.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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