2011-12-22 191 views
2

我是問一個雙待很抱歉,但我與發現無解搞砸了一個列表項開始從自定義按鈕/動作的工作流 - 或失蹤理解答案。在SharePoint 2010(所有與Visual Studio 2010)

我的問題是像descrided:

我有一個按鈕一些自我構建的自定義功能區。如果我點擊設計好的按鈕,我喜歡開始一個工作流程。

好了,更多設置:

這是一個通用的清單,是指,我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-立柱裝置。好吧,如果我把CommandAction =「javascript:alert('應該啓動一個工作流程');」 。我的意思是,這個警報彈出,我可以點擊好的,沒有別的。

現在我在同一個項目中我的工作流程而設計的。有兩種類型,一種是在asp中啓動的形式,另一種是沒有的,都在選定的項目上運行。我可以在使用標準功能區「Workflows」時啓動它們,然後單擊它們。目前一切都很好。

但我想通過點擊我的按鈕,沒有更多的點擊,因爲它是從現在開始每個工作流程。謝謝你幫助我。

我很新的SharePoint。所以請在你的答案中包括「添加新的......空元素/ JavaScript文件」或任何需要的東西來獲得我的假設。

如果您對我的工作流設計更多的問題,我會盡快答覆。

非常感謝你,

danbruc

注:是的,我只希望,甚至我的Elements.xml是好的。我從網上拿走了所有的東西所以如果你有重新設計的建議,我是開放的。只是盲目地看到解決方案。 此外,我可以把這個選項卡放在ListView的ContextualTab中,但是即使javascript不工作。

回答

6

你閱讀Customizing and Extending the SharePoint 2010 Server Ribbon的文檔?

這是非常簡潔的,並告訴您關於您的問題,一個重要的點: 你需要做一個回發到發起通過服務器端代碼的工作流程:

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

現在要放什麼StartMyWorkflowPostBack開始你工作流程?這有幾個資源,你會發現很多更通過谷歌:

讓我在很短解釋:你沒有​​告訴我們是什麼樣的流程。基於列表的工作流程或站點工作流程,啓動方法因此而異。以列表的工作流程作爲一個例子,你需要只啓動工作流,像這樣:

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

但正如你所看到的,你將需要爲這個有很多的東西:在SPListItem,則SPWorkflowAssociationTemplate以及一些啓動數據。

+0

親愛的moontear, 非常感謝您的快速回答。我會看看你的鏈接,他們聽起來很有用。 而且看起來我無法爲Google提出正確的問題。因爲我發現了大量工作流程的演練,同樣噸的自定義操作,但沒有合併。 參考您的問題: 一)所有的工作流程是針對特定列表 B)有些人發起的形式,有的則沒有 謝謝你,我會後瞭解你的鏈接 – 2011-12-22 13:25:13

+0

你想後做什麼不容易,但可以實現。理解您的自定義操作在MSDN上的Postback示例,並在後面的代碼中調用一個'StartWorkflow' - 基本上就是這個過程:-) – 2011-12-22 14:11:50

+0

ATM我可以從另一個啓動工作流程,同時全部由我部署。這是偉大的,供以後使用。回寄的東西將是下一個,但現在我不在辦公室,並希望你度過愉快的週末愉快的時光。 (不是每個人都屬於聖誕節)。 – 2011-12-22 15:50:06