Текущее время: Чт, июл 24 2025, 01:38

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




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Как автоматически создать инфо-тип со специфическим кодом функции? Нужно создать ИТ 0416.
СообщениеДобавлено: Чт, янв 24 2008, 09:31 
Ассистент
Ассистент

Зарегистрирован:
Пт, сен 01 2006, 16:41
Сообщения: 37
Необходимо при увольнении сотрудника создать ИТ 0416 и компенсировать все неиспользованные лимиты подлежащие компенсации - кнопочка "компенсировать все". Т.е. использовать код функции инициировавшей PAI - ALLCOMPENS?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 24 2008, 12:04 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
ИМХО либо ФМ искать, либо запускать бизнес-логику инфотипа, подсовывая ей на вход нужные параметры.

Второй способ надо дополнительно "исследовать", но вполне вероятно, что он подойдет. Подробнее см. de-coupling - разделение бизнес логики и представления данных в инфотипах.

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 24 2008, 13:24 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 11 2008, 16:36
Сообщения: 7
Попробуйте INCLUDE ZXPADU02.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 24 2008, 13:39 
Ассистент
Ассистент

Зарегистрирован:
Пт, сен 01 2006, 16:41
Сообщения: 37
Bully написал(а):
ИМХО либо ФМ искать, либо запускать бизнес-логику инфотипа, подсовывая ей на вход нужные параметры.

Второй способ надо дополнительно "исследовать", но вполне вероятно, что он подойдет. Подробнее см. de-coupling - разделение бизнес логики и представления данных в инфотипах.


Спасибо! Одним ФМ скорее всего не отделаюсь, help буду смотреть!

INCLUDE ZXPADU02 м.б. можно будет задействовать, но вопрос все тот же - каким образом создать этот ИТ. Где выставить параметр ALLCOMPENS при его создании?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 24 2008, 17:06 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
tartan написал(а):
Bully написал(а):
ИМХО либо ФМ искать, либо запускать бизнес-логику инфотипа, подсовывая ей на вход нужные параметры.

Второй способ надо дополнительно "исследовать", но вполне вероятно, что он подойдет. Подробнее см. de-coupling - разделение бизнес логики и представления данных в инфотипах.


Спасибо! Одним ФМ скорее всего не отделаюсь, help буду смотреть!

INCLUDE ZXPADU02 м.б. можно будет задействовать, но вопрос все тот же - каким образом создать этот ИТ. Где выставить параметр ALLCOMPENS при его создании?

Я не совсем понимаю проблему. Юзера после нажатия кнопки создания инфотипа ломает надать еще одну кнопку компенсации?
Если так, то инклуд ZXPADU02 не поможет - он работает c PAI логикой.
Нужно писать PBO логику в ZXPADU01.
Передать команду можно так
Code:
sy-ucomm = 'Код'.

выйти из PBO логики и пойти сразу на PAI с обработкой команды
Code:
SUPPRESS DIALOG.

Ну и естественно это надо все обернуть проверками, чтобы не зациклиться.
Да и ZXPADU01 не очень удачное место, так как он расположен в начале PBO инфотипов. По идее в нем тогда придется повторить всю логику, которая идет после перед вызовом SUPPRESS DIALOG.
Попробуйте это написать в проге работающей с расширением инфотипа T582C.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 25 2008, 14:01 
Ассистент
Ассистент

Зарегистрирован:
Пт, сен 01 2006, 16:41
Сообщения: 37
Цитата:
Я не совсем понимаю проблему. Юзера после нажатия кнопки создания инфотипа ломает надать еще одну кнопку компенсации?

Дело в том, что при увольнении сотрудника мы хотим расчитывать компенсацию автоматически используя, например, динамические мероприятия.

Цитата:
Нужно писать PBO логику в ZXPADU01.
Передать команду можно так Код:
Code:
sy-ucomm = 'Код'.

Прописал здесь код
Code:
sy-ucomm = allcompens

Цитата:
выйти из PBO логики и пойти сразу на PAI с обработкой команды
Code:
SUPPRESS DIALOG.

Это где, в ZXPADU02? Но я после ZXPADU01 в ZXPADU02 не попадаю.
Как пойти в PAI?

Но даже после подавления диалога при создании ИТ через динамические мероприятия меня вываливает в ИТ и требует выбрать правило компенсации. Хотя в переменной sy-ucomm стоит значение ALLCOMPENS.

В модуле PAI есть код:
Code:
IF FCODE = COMPENS_ALL

Сейчас при попытке автоматического зоздания ИТ переменная FCODE пустая, переменная COMPENS_ALL = ALLCOMPENS.
После нажатия кнопки "Компенсировать все" переменная FCODE = ALLCOMPENS, COMPENS_ALL = ALLCOMPENS. Т.е. нужно как-то в FCODE поместить значение ALLCOMPENS.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 25 2008, 15:54 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
tartan написал(а):
Дело в том, что при увольнении сотрудника мы хотим расчитывать компенсацию автоматически используя, например, динамические мероприятия.

Так и пишите процедуру по созданию записей 0416 и добавляйте ее в динамические мероприятия. Это гораздо проще.

SUPPRESS DIALOG нужно ставить только в PBO логику (посмотрите help), то есть в ZXPADU01.
Если проверяется fcode в PAI, то устанавливайте значение fcode = ALLCOMPENS. После SUPPRESS DIALOG управление уходит в PAI логику экрана и в какой-то момент должно прийти на ZXPADU02, если не прервется по ошибке ранее.
А так как SUPPRESS DIALOG стоит в начале PBO логики экрана, то пропущена вся важная часть PBO логики экрана. И поэтому естественно до ZXPADU02 не доходит, ломается ранее.
Вообще в PAI никакй доплогики писать не надо, если нужна стандартная обработка кода ALLCOMPENS.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 25 2008, 17:00 
Ассистент
Ассистент

Зарегистрирован:
Пт, сен 01 2006, 16:41
Сообщения: 37
Murzik написал(а):
Цитата:
Так и пишите процедуру по созданию записей 0416 и добавляйте ее в динамические мероприятия. Это гораздо проще.

Спасибо за ответы!
Так вопрос и состоит в том как написать процедуру фонового создания этого ИТ в динамических мероприятиях с кодом функции ALLCOMPENS. Как вариант буду рассматривать пакетный ввод.
Хотя хотелось обойтись без пакетника.


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

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
tartan написал(а):
Murzik написал(а):
Цитата:
Так и пишите процедуру по созданию записей 0416 и добавляйте ее в динамические мероприятия. Это гораздо проще.

Спасибо за ответы!
Так вопрос и состоит в том как написать процедуру фонового создания этого ИТ в динамических мероприятиях с кодом функции ALLCOMPENS. Как вариант буду рассматривать пакетный ввод.
Хотя хотелось обойтись без пакетника.

С динамических мероприятиями есть два варианта.
1) Написать свою программу и вызвать ее из динамического мероприятия. Здесь никакого кода не надо передавать вообще.
2) Вызвать создание инфотипа 0416 из динамического мероприятия.
Как передать код и уйти в PAI логику я написал. Осталось в экзитах это обернуть в правильный код.
Код ALLCOMPENS (и любой другой) из динамического мероприятия не передается!
Никакого пакетника не надо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 30 2008, 11:51 
Ассистент
Ассистент

Зарегистрирован:
Пт, сен 01 2006, 16:41
Сообщения: 37
Цитата:
2) Вызвать создание инфотипа 0416 из динамического мероприятия.

Вызываю создание из динамического мероприятия с подавлением вывода на экран, передаю код, все компенсируется. Но теперь проблема - ИТ выводится на экран и нужно просто сохранить вручную.
Как подавить вывод на экран и сохранить автоматически?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 30 2008, 19:40 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
tartan написал(а):
Вызываю создание из динамического мероприятия с подавлением вывода на экран, передаю код, все компенсируется. Но теперь проблема - ИТ выводится на экран и нужно просто сохранить вручную.
Как подавить вывод на экран и сохранить автоматически?

Как это с подавлением, но выводится :?:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 07:12 
Специалист
Специалист

Зарегистрирован:
Вт, июл 31 2007, 09:35
Сообщения: 161
tartan написал(а):
Цитата:
2) Вызвать создание инфотипа 0416 из динамического мероприятия.

Как подавить вывод на экран и сохранить автоматически?

Enter an indicator which defines whether the step is to be run in the background.
I INS,19,01/D
Step: Create a Dates record, subtype 01, run in the background


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 09:14 
Ассистент
Ассистент

Зарегистрирован:
Пт, сен 01 2006, 16:41
Сообщения: 37
Ага, именно с подавлением (/D) и выводится :(
В отладке полю PSPAR-SUPDG присвоено значение D.


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

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


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

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


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

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