Текущее время: Вт, июл 15 2025, 09:57

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


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

Сейчас этот форум просматривают: Ahrefs [Bot]


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

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