簡體   English   中英

從SharePoint 2010中列表項上的自定義按鈕/操作啟動工作流(全部使用Visual Studio 2010)

[英]Start a workflow from a custom button/action on a list item in SharePoint 2010 (all with Visual Studio 2010)

很抱歉問了一個雙重問題,但我卻找不到任何解決辦法,或者對答案的理解不夠。

我的問題就像描述的那樣:

我有一些帶有按鈕的自定義自定義功能區。 而且,如果我單擊設計按鈕,我希望啟動工作流程。

好的,有關設置的更多信息:

這是一個通用列表,這意味着我的elemets.xml如下所示:

<CustomAction
  Id="MyCustomRibbonTab"
  Location="CommandUI.Ribbon.ListView"
  RegistrationId="100"
  RegistrationType="List">
  <CommandUIExtension>
    <CommandUIDefintions>
      <CommandUIDefinition
        Location="Ribbon.Tabs._children">
        <Tab Id="Ribbon.CustomTab" Sequence="501">
        ... (Scaling)
          <Groups Id="Ribbon.CustomTab.Groups">
            <Group 
              Id="Ribbon.CustomTab.GroupOne" 
              Sequence="52">
              <Controls Id="Ribbon.CustomTab.GroupOne.Controls">
                <Button
                  Id="Ribbon.CustomTab.GroupOne.ButtonOne"
                  Command="CustomTab.ButtonOneCommand"
                  Sequence="11">
              </Controls>
            </Group>
          </Groups>
        </Tab>
      </CommandUIDefinition>
    </CommandUIDefinitions>
    <CommandUIHandlers>
      <CommandUIHandler
        Command="CustomTab.ButtonOneCommand"
        CommandAction="javascript:alert('how start workflow here?');" />
        />
    </CommandUIHandlers>
  </CommandUIExtension>
  <!-- what about starting workflow here? How? -->
</CustomAction>

希望我的XML-Post意味着什么。 好的,如果我將CommandAction =“ javascript:alert('應該啟動工作流程');”放上,那很好。 我的意思是,此警報彈出,我可以單擊“確定”,僅此而已。

現在,我在同一項目中設計了我的工作流程。 有兩種類型,一種具有asp的初始化形式,另一種則沒有,都對所選項目起作用。 我可以在使用標准功能區“工作流”時啟動它們,然后單擊它們。 到目前為止一切都很好。

但是我想通過單擊我的按鈕來啟動每個工作流程,而不是像現在這樣點擊更多。 到目前為止,謝謝您對我的幫助。

我對SharePoint非常陌生。 因此,請在您的答案中包括“添加新的...空元素/ JavaScript文件”之類的內容,或獲得我所假定的內容所必需的內容。

如果您對我的工作流程設計還有其他疑問,我將盡快答復。

非常感謝你,

danbruc

注意:是的,我只希望我的Elements.xml都可以。 我從網絡上拿走了所有東西。 因此,如果您有重新設計的建議,我會開放的。 只是看不見解決方案。 另外,我可以將此選項卡放入ListView的ContextualTab中,但即使是javascript也無法正常工作。

您是否閱讀了有關自定義和擴展SharePoint 2010 Server功能區的文檔?

它非常簡潔,並向您顯示了有關您的問題的要點:您將需要執行回發操作以通過服務器端代碼啟動工作流程:

<CommandUIHandler Command="WebPartContextualTabs.OnPostback"
CommandAction="javascript:__doPostBack('StartMyWorkflowPostBack','');" />

現在在StartMyWorkflowPostBack放入什么來啟動您的工作流程? 有幾種資源可以通過Google找到更多資源:

讓我簡短地解釋一下:您沒有告訴我們什么樣的工作流程。 基於列表的工作流或網站工作流的啟動方法有所不同。 以列表工作流程為例,您將需要像這樣啟動工作流程:

SPWorkflowProperties.Site.WorkflowManager.StartWorkflow(listItem, associationTemplate, initData);

但是正如您所看到的,您將需要很多東西: SPListItemSPWorkflowAssociationTemplate以及一些初始化數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM