Текущее время: Пт, ноя 01 2024, 03:32

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Ср, июн 10 2009, 11:48 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 16 2009, 08:40
Сообщения: 56
Пол: Женский
Постановка задачи следующая:
Необходимо в шаге решения пользователя, где есть 2 возможных решения (согласовать или отклонить) задавать вопрос «Вы действительно хотите согласовать?" (или отклонить - в зависимости от выбора).
Если ответ «Да» – выходим из ЭПО без вопросов. (Эту часть сделали с помощью экзитов программирования, спасибо за помощь John Doe ).

Если ответ «нет» – необходимо возвращаться в начало текущего ЭПО и повторно запускать задачу согласования. Как это можно реализовать?
Не хотелось бы для этого использовать отдельный шаг, т.к. этот ЭПО «напичкан» всякими дополнительными методами.

На всякий случай привожу код:


IF im_event_name EQ if_swf_ifs_workitem_exit~c_evttyp_after_execution.
DATA: answer,
question(400).
DATA: wi_cont TYPE REF TO if_swf_ifs_parameter_container,
result TYPE string.
* Get task container
wi_cont = im_workitem_context->get_wi_container( ).
TRY.
CALL METHOD wi_cont->get
EXPORTING
name = '_WI_RESULT'
IMPORTING
value = result.
CATCH cx_swf_cnt_elem_not_found .
CATCH cx_swf_cnt_elem_type_conflict .
CATCH cx_swf_cnt_unit_type_conflict .
CATCH cx_swf_cnt_container .
ENDTRY.
CASE result.
WHEN '0001'. " Complete
question = 'Вы действительно хотите СОГЛАСОВАТЬ инвест.предложение' .
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = 'Предостережение'
TEXT_QUESTION = question
DISPLAY_CANCEL_BUTTON = SPACE
IMPORTING
ANSWER = answer.
IF answer = 2.
exit.
ENDIF.
* MESSAGE 'Approved' TYPE 'I'.
WHEN '0002'. " Canceled complete
question = 'Вы действительно хотите ОТКЛОНИТЬ инвест.предложение' .
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = 'Предостережение'
TEXT_QUESTION = question
DISPLAY_CANCEL_BUTTON = SPACE
IMPORTING
ANSWER = answer.
IF answer = 2.
exit.
ENDIF.
* MESSAGE 'Rejected' TYPE 'I'.
WHEN OTHERS.
ENDCASE.
ENDIF.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Ср, июн 10 2009, 12:38 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Возможно я что-то не понял. Попробуйте для начала очистить значение элемента _WI_RESULT в случае отклонения, чтобы задача не завершалась.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Ср, июн 10 2009, 17:25 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 16 2009, 08:40
Сообщения: 56
Пол: Женский
Не получается. При очистке переменной поток останавливается и приобретает статус ERROR. При попытке перезапуска потока система выдает сообщение:
"Для узла 402806 и события 0000 не определен последователь".

А нам необходимо, чтобы после того, как пользователь на вопрос "Вы действительно хотите отклонить ..?" ответил "нет" система повторно спрашивала "Выберите одну из следующих альтернатив:
Согласовать,
Отклонить".
Это необходимо для того, чтобы при ошибочном нажатии на "Отклонить" (промазал кнопкой человек), после того, как заявку согласовало 10 человек, поток не начинался с начала, а была возможность выбрать нужное решение на 11-м уровне.
(Мы используем аналог задачи TS00300052)

Может можно как-то программно из экзита вызвать задачу?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Ср, июн 10 2009, 18:04 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Забавный у Вас процесс. Оставьте ему одну кнопку "Согласовать" и не мучайте выбором.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Ср, июн 24 2009, 11:10 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 16 2009, 08:40
Сообщения: 56
Пол: Женский
Ну, а все-таки...
Ведь в Windows есть функция подтверждения выбора:
"Вы действительно хотите удалить файл?"...Ведь человек мог нечаянно кнопкой промазать...
Как быть? Неужели в САПе такое нельзя реализовать для шага решения пользователя.
Смысл не в том, чтобы он только "согласовать" нажал, а в том, что "Отклонить" нажато не случайно... т.е. необходимо переспросить пользователя действительно ли он принял решение "отклонить" :( .


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Вт, сен 29 2009, 06:50 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 21 2005, 12:40
Сообщения: 371
Пол: Мужской
Можно. Посмотрите стандартные исключения


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Чт, окт 01 2009, 10:32 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 16 2009, 08:40
Сообщения: 56
Пол: Женский
А где эти стандартные исключения можно посмотреть?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Пт, окт 02 2009, 13:45 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 21 2005, 12:40
Сообщения: 371
Пол: Мужской
Например взгляните на макрос exit_cancelled


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения  Тема решена
СообщениеДобавлено: Пн, окт 05 2009, 14:59 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 16 2009, 08:40
Сообщения: 56
Пол: Женский
Спасибо за участие :) . Exit_cancelled не помогло, т.к. несмотря на то, что статус ЭПО не был завершен, поток продолжал двигаться дальше и письмо шло следующему обработчику.
Переделали саму схему потока, добавили цикл, чтобы он не завершался, пока пользователь не подтвердит решение. Теперь работает.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Вс, окт 11 2009, 20:41 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 21 2005, 12:40
Сообщения: 371
Пол: Мужской
А почему в-тупую не проставить у задачи решения галочку "Подтверждение выполнения" (или как она там называется).
В итоге, в случае выбора неправильного нажания на кнопку пользователю придется еще и в стандартном окоше нашать кнопку "Завершить ЭПО"?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Пн, окт 12 2009, 09:20 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 16 2009, 08:40
Сообщения: 56
Пол: Женский
Мы про назначение этой галочки не знали. Но сейчас я посмотрела как она работает. Там идет текст тот же, что и на экране с альтернативами и 2 кнопки "Завершить ЭПО", "Отмена". Нигде не сказано, какое решение пользователь принял, и пользователь на данном этапе может и не увидеть, что он нажал не на ту кнопку.
На самом деле цикл несложно было переделать, я думала это будет тяжелей и пыталась найти альтернативные методы.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача "Решение пользователя": подтверждение принятого решения
СообщениеДобавлено: Пн, окт 12 2009, 15:11 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Видимо единственный вариант "переспросить" пользователя - это чуть "подрихтовать" ФМ SWU_PROCESS_MANUEL_DECISION при наличии системы ECC 6.0. Нужно поместить внедрение расширения перед ENDFUNCTION и ограничить его работу хотя бы по ID задачи или номеру потока (поскольку модуль отрабатывает во всех решениях пользователя) . В самом внедрении достаточно разместить POPUP_TO_CONFIRM и в случае отказа очищать result и дергать raise function_canceled.


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

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


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

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


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

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