none
Как инициировать Workflow на запуск aspx-страницы? RRS feed

Все ответы

  • Добрый день!

    На страницу вставьте вэб-часть "Редактор сценариев" и на событие onload в javascript выполните код указанный в примере (заменив на свой рабочий процесс):

    https://www.codeproject.com/Articles/607127/Using-SharePoint-2013-Workflow-Services-JS-API#example5 


    • Изменено agemlex77 6 сентября 2017 г. 11:35 Корректировка
    6 сентября 2017 г. 11:35
  • Так это получается что страница будет запускать Workflow а не Workflow страницу ? 

    Или я ошибаюсь?

    6 сентября 2017 г. 11:49
  • Вобщем мне надо сделать вот это:

    Create a custom aspx page and initate a workflow on calling the aspx page which will try to start the workflow and eventually fail. This way we will atleast warmup the SharePoint Workflow Engine.

    6 сентября 2017 г. 11:53
  • Вы написали: 

    Как инициировать Workflow на запуск aspx-страницы? :) А мне сразу пришло на ум, что вы хотите с запуском страницы инициировать Workflow. Двусмысленное предложение.

    Тогда вам нужно: Сделать редирект страницы после или во время выполнения Workflow.

    Вот разные подходы:

    https://audministrator.wordpress.com/2013/12/16/redirect-workflow-page-after-starting/

    http://techtrainingnotes.blogspot.com/2009/06/sharepoint-redirecting-to-page-after.html

    В том числе из c# https://social.msdn.microsoft.com/Forums/office/en-US/a7410aff-f283-4f3d-bbf6-ee529fd9300e/c-button-to-redirect-user-to-a-custom-newform-sharepoint-page?forum=sharepointdevelopmentlegacyТак же можно создать кастомную форму (infopath или webpart) и делать редирект минуя workflow/

    7 сентября 2017 г. 2:46
  • Если вы решаете проблему медленного запуска workflow (судя по вашему последнему предложению: This way we will atleast warmup the SharePoint Workflow Engine), то здесь это вы уже обсуждали :) https://social.msdn.microsoft.com/Forums/ru-RU/8f9cc774-b7fc-42bf-ae2d-3fe3aa39fc13/sharepoint-2016-?forum=sharepointru

    https://social.msdn.microsoft.com/Forums/ru-RU/d2bb57c1-b5a2-4362-bb3d-774166189676/-sharepoint-2016?forum=sharepointru

    Моё мнение по этому вопросу - вообще не использовать workflow, а всю работу сделать в кастомной форме (webpart, C#,ASP .Net, JavaScript). Будет работать моментально.



    • Изменено agemlex77 7 сентября 2017 г. 3:15 Дополнение
    7 сентября 2017 г. 2:57
  • Изначально, идея "разогрева" была в том, чтобы "наполнить буфер пула" SharePoint (после перезапуска пула) при помощи какой-нибудь запущенной (простейшей) задачи.

    Сделал.....

    1) Рестартанул пул приложений SharePoint. (После этого шага, самый первый запуск задачи всегда долгий)
    2) После долгого запуска и отработки заранее заготовленной задачи, я попробовал запустить этот самый процесс согласования (из-за которого весь сыр-бор)

    3) Он также ДОЛГО 30-40 сек. запускался, и потом отработал.
    4) Следующий запуск этого же самого процесса проходит моментально.

    Из вышесказанного я могу сделать вывод, что бесполезно наполнять пустой пул после ночи, абы какими задачами. Это эффекта не даст.

    Нужен именно старт задачи утверждения этого процесса согласования.


    7 сентября 2017 г. 6:37
  • А теперь вы сделаете Sharepoint Job на C#, который в 09-00 будет будить :) Workflow запуском?
    7 сентября 2017 г. 7:10
  • В том то и дело, что запуск Workflow в моем случае ничего не решает. Нужен запуск задачи утверждения. Которая уже создана логикой Workflow, и ожидает в статусе "не начата".

    Но так как утверждение приведёт к завершению процесса, мне потом придется создавать ещё один процесс согласования, делать задачу, и запускать её в целях "разогрева" шарика - Это накладно, во всех отношениях.

    Поэтому я решил поступить иначе. Я НЕ буду утверждать в задаче утверждения, я буду переназначать задачу самому себе. Выгода от этого в том, что workflow будет работать, и каждый раз, когда пул шарика будет пуст, я смогу запустить скрипт который переназначит опять мне эту задачу. В результате старая задача закроется, новая создастся. Пул "прогреется".

    Это всё работает, и довольно успешно, если делать руками. Открывать форму, жать кнопку "Переназначить задачу", вписывать нового исполнителя и жать кнопку "Отправить".

    Скриптом такого повторить не могу. Точнее переназначить то её себе получается, но старую задачу. Новой при этом, почему то не создается. И пул не прогревается.

    7 сентября 2017 г. 9:03
  • Может это как то связано с вашими админскими правами? По крайней мере, если рабочий процесс создан в Sharepoint Design, то его запуск возможен только вручную, а на добавление нового или изменение существующего элемента процесс не запускается. В тоже время, если пользователь не админ, то всё работает.
    7 сентября 2017 г. 9:26
  • Задачу в нужный список задач я добавить могу через $item.AddItem()

    И она добавится. Проблема в том, что она добавится но открываться не будет (возникает ошибка).

    Это возникает потому, что в своё время, программер приложил ручки и закастомайзил в форму задачи InfoPath форму с несколькими кнопками "Переназначить задачу" и "Отправить". 

    К этим кнопкам я никак не могу подступиться. Не могу посмотреть код, что происходит при их нажатии.

    Консоль Google Chrome тоже не особо спасает.


    7 сентября 2017 г. 11:29