Текущее время: Пт, июл 25 2025, 05:42

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Создание новой функции по з/п для проверки ИТ 0860
СообщениеДобавлено: Ср, июл 04 2012, 07:40 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 04 2007, 07:33
Сообщения: 169
Откуда: Almaty
Пол: Мужской
Добрый день!
Необходимо определить, есть ли в ИТ0860 Санкции/правонарушения запись на расчетный период, и в случае наличия там записи, не формировать определенные выплаты сотрудникам.
Пытались реализовать по коду мероприятия, и обращаться в правиле через MASSN к этому коду, но такой вариант Клиента не устроил.
Теперь думаем создать функцию, наподобие P0009, для считывания записей из ИТ0860. Создали функцию _0860, параметром вывода ввели некоторый объект ZT. В Include PCBURZRU0 написали след. код - возвращать в объект ZT значение TRUE, если запись в ИТ0860 есть.

FORM FU_0860.
zt = 'F'.
PROVIDE * FROM p0860 BETWEEN p0860-begda AND p0860-endda.
zt = 'T'.
endprovide.
endform.

Как обратиться к этому объекту? Насколько понял, у функции _0860 в схеме (PE01) в Параметре 1 должно стоять некоторое правило, например, ZFBN, где должно быть прописано условие, что если TRUE, то выплату не начислять, и наоборот. Правильна ли эта логика? Либо в самой форме FORM FU_0860 следует это как-то прописать? МОжет, есть какие примеры подобных функций? Или записывать TRUE или 1 в некоторый созданный вид оплаты и потом уже по этому в/о проверять? ПОдскажите, пожалуйста, функцию создаем впервые. Спасибо!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание новой функции по з/п для проверки ИТ 0860
СообщениеДобавлено: Ср, июл 04 2012, 08:13 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 23 2005, 12:50
Сообщения: 942
Пол: Мужской
Проще сделать сразу операцию возвращающую дерево решения, смотрите как пример операцию subrc или r51p1.

_________________
Нет таких денег, за которые кто-то будет работать лучше, чем энтузиасты бесплатно. Пол Грэм.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание новой функции по з/п для проверки ИТ 0860
СообщениеДобавлено: Ср, июл 04 2012, 08:33 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 04 2007, 07:33
Сообщения: 169
Откуда: Almaty
Пол: Мужской
почитал про SUBRC, но не понял, как в ней можно проверить ИТ0860? В Исходном коде к этой вновь созданной операции по аналогии SUBRC прописать свою проверку и вставить в правило?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание новой функции по з/п для проверки ИТ 0860  Тема решена
СообщениеДобавлено: Ср, июл 04 2012, 11:02 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1398
Если хотите принимать какое-то решение на основе Ит0860, то нужно создавать не функцию, а операцию. Операцию затем использовать в правиле.
В операции должны быть следующие строчки

vargt = ... " определить значение для принятия решения
PERFORM fillvargt. " перенести значение в поле принятия решения.

Код будет выглядеть примерно так

FORM FU_0860.
vargt = 'N'.
" Сначала данные в p0860 нужно зачитать
" ФМ HR_READ_INFOTYPE или макрос rp-read-infotype
...
" теперь проверка, внимание на периоды
PROVIDE * FROM p0860 BETWEEN aper-begda AND aper-endda.
vargt = 'Y'.
exit.
endprovide.

PERFORM fillvargt.

endform.

Операция должна быть объявлена как операция принятия решения, символ D, длина 1 (см. SUBRC в параметром ?)

Затем эту операцию можно использовать в правиле, которая вставлена в какую-нибудь функцию.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание новой функции по з/п для проверки ИТ 0860
СообщениеДобавлено: Пн, июл 16 2012, 07:09 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 04 2007, 07:33
Сообщения: 169
Откуда: Almaty
Пол: Мужской
Спасибо, операцию создали и вставили в рабочую функцию, все получилось.


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

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


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

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


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

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