Здравствуйте. Подскажите, как создать ссылку в уведомлении бизнес-процесса "Сообщение соц.сети", что бы она ссылалась на задание бизнес-процесса.
25.01.2013 09:15:48
Здравствуйте. Подскажите, как создать ссылку в уведомлении бизнес-процесса "Сообщение соц.сети", что бы она ссылалась на задание бизнес-процесса.
|
|
|
|
25.01.2013 10:03:16
Или как с помощью php кода можно получить id задания бизнес-процесса?
|
|
|
|
31.01.2013 22:28:08
Сам недавно заморачивался и нашел решение.
Применяете конструкцию БП - параллельное выполнение. В левой ветке я использовал блок "Запрос дополнительной информации", который как раз и создает задачу бизнес процесса. В правой ветке сначала запускаете PHP код. Потом уведомление со ссылкой, где соответственно используется ID сделки и ID задачи. Код для получения ID задачи я использую такой. Может меня кто поправит, я не программист. Просто пытливый ))
В коде не расписано как получить User_id (третья строка, 1). Сам еще до этого не дошел )) Может, кстати, подскажите? В $taskID будет код именно созданной ранее задачи, если она первая в этом БП (0 в четвертой строке, соответствует первому значению в массиве задач БП). Надеюсь понятно объяснил. |
|||
|
|
31.01.2013 22:34:06
Не знаю как строки переносить в коде. Извините.
И забыл добавить, что нужно присвоить значение переменно БП $this->SetVariable("Var1", $taskID); И наверное, получение root здесь не нужно? не проверял. А смысл этого рут никак не пойму. PS Как вступать в группы веб-разработчиков? Хотел бы почитать мысли умных людей, а нигде не нашел как это сделать. |
|
|
|
31.01.2013 23:03:57
оригинальное решение =) это и есть извращённые вещи =) к сожалению, требующие необходимости вникать в код модуля БП. впрочем, кастомизация компонентов - тоже и более затратно. Минус - если у вас где-то в параллели было ещё запущено задание на этого пользователя ранее - то получите ид его, а не только что созданного задания. рутактивити тут не нужно. можно попробовать так: $BP = this->GetWorkflowInstanceId(); $ar = CBPDocument::GetUserTasksForWorkflow(1, $BP); $taskID = $ar[0][ID]; UserID - какого юзера нужен айдишник?
спасибо на лайк не намажешь
|
|||
|
|
31.01.2013 23:29:17
UserID - какого юзера нужен айдишник?
|
|||||
|
|
31.01.2013 23:32:47
спасибо на лайк не намажешь
|
|||||
|
|
31.01.2013 23:37:35
Согласен.
В моем случае этот юзер - ответственный по сделке. |
|
|
|
31.01.2013 23:48:13
{=docu ment:assigned_by_id} ?
спасибо на лайк не намажешь
|
|
|
|
31.01.2013 23:49:57
Да. Именно.
Кстати, где можно найти список всех этих параметров? |
|
|
|
31.01.2013 23:56:29
Параметры шаблона - итак понятно. С переменными то же самое. С полями документа - зависит от документа (элемент иб, элемент CRM - какие у него поля и свойства, такие и выводятся, если типы совместимы). Дополнительные результаты - это то, что возвращают некоторые действия БП. Пользователи - тоже всё понятно.
Код сейчас набросаю примерный
спасибо на лайк не намажешь
|
|
|
|
01.02.2013 00:02:42
$root = $this->GetRootActivity();
$docID = $root->GetDocumentId(); $docService = $this->workflow->GetService("DocumentService"); $docFields = $docService->GetDocument($docID); $userID = $docFields["ASSIGNED_BY_ID"]; что-то примерно такого плана, навскидку. ну а вообще можно упростить - создать действие изменение переменной, и в какую-нибудь переменную сохранить ответственного из документа, потом в пхп-коде просто дёргать переменную. возможно будет проще и наглядней
спасибо на лайк не намажешь
|
|
|
|
01.02.2013 00:08:05
Евгений, спасибо.
Буду пробовать. |
|
|
|
01.02.2013 00:14:21
Есть ещё вариант решения - кастомизировать действие, чтобы оно умело возвращать TaskId. Но тогже не ахти, так как потом это действие придётся обновлять и синхронизировать со штатным ручками.
спасибо на лайк не намажешь
|
|
|
|
01.02.2013 00:21:11
Это для меня трудновато. И есть ли смысл? Если и так в принципе норм (для моих задач).
|
|
|
|
01.02.2013 00:25:05
да нет, просто в голову пришло, как ещё можно решить проблему получения айдишника задания. при таком подходе можно будет потом всё делать через дизайнер, без пхп-кода для получения айди (если такие операции будут часто нужны). хотя сейчас есть фича сохранения настроенных действий в бп - так что не проблема и пхп-код растиражировать, раньше такой возможности не было.
спасибо на лайк не намажешь
|
|
|
|
01.02.2013 13:54:32
Выкладываю проверенный код для получения ID задания созданного в бизнес процессе
$root = $this->GetRootActivity(); $docID = $root->GetDocumentId(); $docService = $this->workflow->GetService("DocumentService" ; $docFields = $docService->GetDocument($docID); $userID = $docFields[ASSIGNED_BY_ID]; $userID = intval(substr($userID, strlen("user_" )); $BP = CBPActivity::GetWorkflowInstanceId(); $ar = CBPDocument::GetUserTasksForWorkflow($userID, $BP); $taskID = $ar[0][ID]; $this->SetVariable("taskID", $taskID); Пришлось немного доработать код от Всем успехов. |
|
|
|
01.02.2013 14:36:58
А да, забыл совсем про вариант айдишника юзера для БП.
$BP = CBPActivity::GetWorkflowInstanceId(); я бы заменил на
спасибо на лайк не намажешь
|
|||
|
|
25.08.2013 00:02:35
а почему нельзя воспользоваться штатным функционалом?
|
|
|
|
25.08.2013 15:19:20
|
|||
|
|
25.08.2013 22:44:45
спасибо на лайк не намажешь
|
|||
|
|
26.08.2013 00:11:12
Кстати бред какой то - задания это вкорне урезанные задачи??? Ни срок поставить выполнения, ни напоминания, ни просрочки, и вообще пользователь иногда вообще не видит, что у него там что-то висит, на что надо ответить. Значок маленький и в центр нотификаций задания не падают. Вообще бред. |
|||
|
|
26.08.2013 08:30:53
Да просто понятия эти путанные (также как были посты блогов и сообщения, потом смешали всё в кучу, сейчас люди часто не понимают, о чём же речь), человек в топике написал про задачи, а в самом сообщении - про задания. И дальше путаница по тексту. Но речь про задания была.
Задания и задачи - разные сущности совершенно. Задания типа атомарных операций, сделал и всё, однозначно интерпретируемый результат и данные. Задачи - сами знаете, объект, который подразумевает длительную работу и неоднозначный результат на выходе. Я сам изначально просил объединения этих сущностей, чтобы не создавать путаницы и пользоваться тем функционалом, который есть в задачах. Но с тех пор задачи ушли очень далеко и как-то объединять задачи и задания простого пути не вижу. А когда-то всё выглядело так, что к задачам достаточно добавить возможность вывода произвольных полей, как в задании "запрос доп. инфы". Насчёт нотификации - добавляйте самостоятельно в процесс отсылку уведомлений. Что до остального - да, труба.
спасибо на лайк не намажешь
|
||||
|
|
|||