Текущее время: Вт, июл 22 2025, 17:11

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 10:00 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 22 2014, 11:32
Сообщения: 89
0000 04 601 P T001P-MOLGA='33'
0000 04 610 P PSPAR-MASSN='Z8'
0000 04 620 P P0040-LEIHG='06'
0000 04 630 P P0040-ENDDA>=P0000-BEGDA
0000 04 640 F FO(ZFO)

Не работает проверка:
0000 04 620 P P0040-LEIHG='06'
0000 04 630 P P0040-ENDDA>=P0000-BEGDA

Программа ZFO запускается в не зависимости от наличия записи ИТ 0040 или ее дат.

Подскажите, почему так происходит ? Необходимо сделать выход из мероприятия увольнения с предупреждением (программка ZFO предупреждает и выходит) при наличии не ограниченной заранее записи ИТ 0040.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 10:59 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 13 2011, 22:45
Сообщения: 497
Скорее всего при сохранении P0040-LEIHG = 'Пусто'... Откуда там чему то взяться? Может Вам имеет смысл проверить эти условия в ZFO?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 11:16 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 22 2014, 11:32
Сообщения: 89
P0040-LEIHG='06' на момент проведения мероприятия есть, т.к. есть запись ИТ0040 с подтипом 06 на тестовом ТН. Или я вас не понял


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 11:32 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 13 2011, 22:45
Сообщения: 497
Судя по приложенному из t588z, вызов программы не должен выполняться, так как при сохранении 0000 ИТ, структура P0000 существует, а структуры P0040. Может быть у Вас где-то еще прописан вызов этой проги?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 11:35 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 22 2014, 11:32
Сообщения: 89
программа выполняется всегда при запуске Z8. Просто игнорируется проверка P0040. В этом и проблема. Вопрос именно в том, чтобы проверка на наличие записи ИТ 0040 на момент проведения z8 была.

Или динамические мероприятия так не умеют ?

Вот здесь http://scn.sap.com/thread/2049803 товарищ насоветовал сделать нечто подобное. Но как видно, не работает это.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 11:45 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 13 2011, 22:45
Сообщения: 497
ну так он использует W для P0040-ENDDA, это же просто запись значения.
P используется для проверки в 0040ИТ. В этом случае P0040 будет заполнена.


Последний раз редактировалось gomer4ik Чт, май 22 2014, 11:52, всего редактировалось 2 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 11:47 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 13 2011, 22:45
Сообщения: 497
Если хотите чтобы это у Вас работало, то лучше всего Ваши проверки на LEIGH='06' и ENDDA поместить в Вашу прогу ZFO, считать там 40ИТ, и проверить условия


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 11:54 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 22 2014, 11:32
Сообщения: 89
Отвечающий предлагает использовать проверку
0000 00 5 P P0040-LEIHG=10
0000 00 6 P P0040-ENDDA>=P0000-BEGDA

Насчет abap - эта мысль, конечно, посещала, но мне этого не сделать, ибо почти нуль. Вот код вызываемой программки:

Perform FO.

Form FO.


DATA: lv_id TYPE icon-id.
TABLES: icon.

SELECT SINGLE id
FROM icon
INTO lv_id
WHERE name = 'ICON_MESSAGE_WARNING'.
* ENDSELECT.

CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = 'ВНИМАНИЕ'
txt1 = lv_id
txt2 = 'С материально-ответственного не снята ответственность. Мероприятие прервано.'
txt3 = 'Обратитесь к начальнику Управления кадров'
EXCEPTIONS
OTHERS = 1.


LEAVE TO TRANSACTION 'PA40'.
endform.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 12:09 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 22 2014, 11:32
Сообщения: 89
на данный момент я сделал так:

1. Добавил в инфо-группу мероприятия z8 на позиции 02 MOD ИТ 0040
2. Повесил на ИТ 0040 динамическое мероприятие

0040 04 620 P P0040-LEIHG='06'
0040 04 640 F FO(ZFO)

3. Теперь выкидывает в мероприятии, но и при прямом редактировании записи ИТ 0040 тоже выкидывает, при этом, успевает сохранить изменения, если их произвести.

Осталось решить вопрос, как заставить действовать только на ИТ во время мероприятия, но не на прямое ведение ИТ.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие  Тема решена
СообщениеДобавлено: Чт, май 22 2014, 12:34 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 13 2011, 22:45
Сообщения: 497
см. в личку


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 13:40 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 22 2014, 11:32
Сообщения: 89
да нет не нужных записей у меня в этой таблице.


Итак, наверное, готовое решение:

1) кадровик идет в PA40 и запускает мероприятие Увольнение z8
2) Если есть запись ИТ 0040, ENDDA которого больше даты увольнения, то его выкидывает обратно в PA40.
3) Он идет в PA30 и ограничивает руками запись ИТ 0040 (при этом его кидает в PA40)
4) Проводит увольнение как обычно.
таково было ТЗ.

Как сделано:

0000 04 600 * ****БЛОКИРОВАНИЕ УВОЛЬНЕНИЯ ПРИ НАЛИЧИИ ИТ 0040****
0000 04 601 P T001P-MOLGA='33'
0000 04 610 P PSPAR-MASSN='Z8'
0000 04 620 I MOD,0040,06,,(RP50D-DATE2),(RP50M-BEGDA)/D

Это динамика в фоне вызывает редактирование записи ИТ 0040, если она есть (но ничего не пересохраняет, т.к. кривой MOD)

0040 06 600 * ****БЛОКИРОВАНИЕ УВОЛЬНЕНИЯ ПРИ НАЛИЧИИ ИТ 0040****
0040 06 632 F FO(ZFO)

Это вторая динамика, которая реагирует на MOD ИТ 0040 и запускает программку ZFO, код которой был выше.

Остался один баг - при прямом ведении ИТ 0040 выкидывает с сообщением в PA40. Но это можно обрисовать как фичу))


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не работает динамическое мероприятие
СообщениеДобавлено: Чт, май 22 2014, 13:55 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 22 2014, 11:32
Сообщения: 89
gomer4ik ооо, вы прислали мне код программы и он работает идеально ! Спасибо !


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

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


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

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


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

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