Текущее время: Чт, май 15 2025, 23:34

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


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


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Замещение поля в логическом правиле
СообщениеДобавлено: Вт, сен 27 2005, 13:56 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
Коллеги!

Сталкивался ли кто-либо с проблемой замещения поля при проверке в логическом правиле? У меня есть логическое правило, которое использует user-exit вида
Code:
FORM U999 USING B_RESULT.

...

B_RESULT = TRUE.
ENDFORM.


Предварительно этот UE описан в процедуре GET_EXIT_TITLES как

Code:
exits-name = 'U999'.
exits-class = c_exit_param_none.
exits-title  = 'U999 user-exit'.



Я хочу заменить одно из полей при отработке логического правила. Подозреваю, что надо использовать UE типа с_exit_param_field вместо c_exit_param_none. Но как именно? Как указать какое поле я хочу заместить и т.д.?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 14:12 
Гость
А логическое правило в какой момент времени и для какой прикладной области срабатывает?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 14:21 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
ОБласть использования - GS (Выбор регистра). Момент времени - 006 (Выбор регистра FI)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 14:31 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 15:47 
Гость
Разница ясна. ЕСть необходимость использовать замещение в логическом правиле, вызванная спецификой ТПР по налогу на прибыль. Ну не привязать замещение к узлу налоговой иерархии!


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 15:53 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Можно использовать такую схему:

exits-name = 'aaa'.
exits-param = c_exit_param_class.
exits-title = 'title'.
APPEND exits.

И далее ...

FORM aaa USING bool_data TYPE gb002_015.
....
ENDFORM.

тип gb002_015 используется для FI.
соответственно изменеия bool_data - изменение документа.
В GB002 (группа типов) можно попробовать найти нужный класс.

exits-name = 'aaa'.
exits-param = c_exit_param_field.
exits-title = 'title'.
APPEND exits.

И далее ...

FORM aaa USING bldat like bkpf-bldat.
....
bldat = sy-datum.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 16:23 
Гость
Насколько я помню, ситуация с изменением данных в логических правилах такова:

Каждому сочетанию Application Area + Callup Point присвоен Boolean Class. Класс определяет какие структуры будут доступны в правилах + какие поля этих структур можно изменять, а какие только читать (таблицы GB01 and GB01C + см.
http://help.sap.com/saphelp_erp2004/hel ... ontent.htm)

Если нужное поле определено как изменяемое, то в user-exit'e структура, содержащее это поле просто объявляется с помощью tables и меняется как душе угодно.
При этом user-exit объявляется типа C_EXIT_PARAM_NONE.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 16:25 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Упс.. Предыдующий пост мой был.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 16:42 
Гость
Lars написал:
Можно использовать такую схему:

exits-name = 'aaa'.
exits-param = c_exit_param_class.
exits-title = 'title'.
APPEND exits.

И далее ...

FORM aaa USING bool_data TYPE gb002_015.
....
ENDFORM.

тип gb002_015 используется для FI.

В том то и дело, что в данном случае логическое правило не относится к области FI. :wink:

В стандартном инклюде RGGBR000 можно посмотреть, как реализована процедура UM001.
Естественно, что в GB01C необходимо прописать поля для
boolclass = 023,
booltype = 'S'
нужные поля.
Осталось непонятным только одно: как генерится код для определения типа gb002_XXX :roll:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 16:56 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 17:35 
Гость
Хотя пример с UM001 глючный:
в настройке эта процедура не видна - видны только процедуры, у которых в get_exit_titles прописано c_param_none... :oops:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 28 2005, 12:11 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
Во-во... :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 28 2005, 12:18 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Ну а так что насчет объявления с помощью tables, не помогает?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 29 2005, 08:42 
Гость
Manticore написал(а):
Во-во... :(

Там еще шутка в том, что эти логические правила вызываются в функции AC_DOCUMENT_CREATE, поэтому через прямой доступ к памяти получится только читать данные из структур BKPF, BSEG, ACCIT_GLX и ACCHD, изменить что-нибудь не получится...
Для более подробной информации можно посмотреть использование функции G_VSR_SUBRULE_CALL

Удачи!


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

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


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

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


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

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