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

Часовой пояс: 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 часа


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

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


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

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