none
Ссылка для запуска рабочего прочесса RRS feed

  • Вопрос

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

    Подскажите как сделать ссылку на форму запуска рабочего процесса в ECB для конкретного списка?

    Пробую:

    <CustomAction
        Id="APC.WFExecute"
            Location="EditControlBlock"
            Title="Run Workflow 1"
            RegistrationType="ContentType"
            RegistrationId="0x01">
        <UrlAction Url="~site/_layouts/MTSolution/MTFlow/WorkflowInitiationForm1.aspx?List={914b6abc-7ec3-49b9-b02c-4b38b2a0eb55}&amp;ID={ItemId}&amp;TemplateID={f9a77314-cf38-4750-8521-42fcbb0a2d93}&amp;Source={SiteUrl}"/>
      </CustomAction>
    

    Но TemplateID меняется при перекомпиляции процесса в VS2010.

    И вотрой вопрос, как отобразить ссылку только в конкретном списке.

     

    10 ноября 2011 г. 6:38

Ответы

  • Можно сделать customAction для списка, по нажатию будет открываться форма рп, в CA указывается id типа списка для которого она будет работать, чтобы работала только для конкретного списка, можно сделать свой тип списка, а при создании customAction укажите id вашего списка, и эта кнопка будет видна только в этом списке!
    |Мой Блог | Мой твиттер |
    • Предложено в качестве ответа Sergey Shitikov 10 ноября 2011 г. 11:35
    • Помечено в качестве ответа yeaster 11 ноября 2011 г. 5:58
    10 ноября 2011 г. 9:24
  • Спасибо! Сделал RegistrationType="List"    и   RegistrationId="id списка" В адресе TemplateID придется менять при перестроении рабочего процесса. На форме запуска сделал проверку, запущен ли процесс и если запущен перенаправление на

    WrkStat.aspx:

    public static Guid IsWorkflowRunning(SPListItem listItem, Guid workflowId, Guid associationId)
            {
                foreach (SPWorkflow workflow in listItem.Workflows)
                {
                    
                    if (workflow.ParentAssociation.BaseTemplate.Id == workflowId &&
                        workflow.InternalState == SPWorkflowState.Running && workflow.AssociationId == associationId)
                    {
    
                        return workflow.InstanceId;
    
                    }
                }
                return Guid.Empty;
            }
    
    

    • Помечено в качестве ответа yeaster 11 ноября 2011 г. 5:58
    11 ноября 2011 г. 5:58

Все ответы

  • Можно сделать customAction для списка, по нажатию будет открываться форма рп, в CA указывается id типа списка для которого она будет работать, чтобы работала только для конкретного списка, можно сделать свой тип списка, а при создании customAction укажите id вашего списка, и эта кнопка будет видна только в этом списке!
    |Мой Блог | Мой твиттер |
    • Предложено в качестве ответа Sergey Shitikov 10 ноября 2011 г. 11:35
    • Помечено в качестве ответа yeaster 11 ноября 2011 г. 5:58
    10 ноября 2011 г. 9:24
  • Спасибо! Сделал RegistrationType="List"    и   RegistrationId="id списка" В адресе TemplateID придется менять при перестроении рабочего процесса. На форме запуска сделал проверку, запущен ли процесс и если запущен перенаправление на

    WrkStat.aspx:

    public static Guid IsWorkflowRunning(SPListItem listItem, Guid workflowId, Guid associationId)
            {
                foreach (SPWorkflow workflow in listItem.Workflows)
                {
                    
                    if (workflow.ParentAssociation.BaseTemplate.Id == workflowId &&
                        workflow.InternalState == SPWorkflowState.Running && workflow.AssociationId == associationId)
                    {
    
                        return workflow.InstanceId;
    
                    }
                }
                return Guid.Empty;
            }
    
    

    • Помечено в качестве ответа yeaster 11 ноября 2011 г. 5:58
    11 ноября 2011 г. 5:58