2011-12-22 22 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-Postは何を意味するのかは明らかであると思います。それは、CommandAction = "javascript:alert( 'ワークフローを開始する必要があります)'; 。つまり、このアラートがポップアップし、[OK]をクリックするだけです。

私は同じプロジェクトで自分のワークフローを設計しました。 2つのタイプがあり、1つは開始フォームがASPで、もう1つが選択されていないアイテムで動作します。私は標準のリボン「ワークフロー」を使用している間にそれらを開始し、それらをクリックすることができます。これまではすべてが問題ありません。

しかし、私は自分のボタンをクリックして各ワークフローを開始したいと思います。今まで私を助けてくれてありがとう。

私はSharePoint上で非常に新しいです。だから、あなたの答えのものに "新しい要素を追加...空の要素/ JavaScriptファイル"か、何が必要なのかを私が想定しているものを得るように含めてください。

私のワークフローの設計について他に質問がある場合は、お答えします。

は、非常に多くの

danbrucありがとう:はい、私はちょうどでも私のElements.xmlは大丈夫であることを願っています。私はウェブからすべてを取った。だから、もしあなたが再設計の提案を持っていれば、私は心が開いています。ソリューションを見るのが盲目になります。 さらに、私はこのTabをListViewのContextualTabの中に置くことができますが、javascriptも機能しません。

答えて

6

Customizing and Extending the SharePoint 2010 Server Ribbonの文書をお読みになりましたか?

それは非常に簡潔で、あなたの問題に関する重要なポイントを示しています あなたはサーバーサイドコードを経由してワークフローを開始するためのポストバックを実行する必要があります。

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

あなたを開始するStartMyWorkflowPostBackに置くために何をワークフロー?そここれにはいくつかのリソースがあるとは、Googleを経由してもっとたくさん見つかります。

は私が短い中で説明しましょう:あなたは私たちに教えてくれませんでしたどのような種類のワークフロー。リストベースのワークフローまたはサイトワークフロー、開始メソッドはこれらのために異なります。あなたがちょうどそうのようなワークフローを開始する必要があります。例として、リストのワークフローを取る:

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

しかし、あなたは、あなたがこのために多くのものが必要になります見ることができますように:SPListItemSPWorkflowAssociationTemplateだけでなく、いくつかの開始をデータ。

+0

親愛なるmoontear、 あなたの速い応答に非常に感謝します。私はあなたのリンクの内部を見て、彼らは非常に便利だと思う。 Googleの正しい質問をすることができなかったようです。私はワークフローのために数多くのウォークスルーを見つけたので、やはりカスタムアクションのためのトンですが、組み合わされたものはありません。 ご質問を参照: a)すべてのワークフローは特定のリスト Bのためのものである)、いくつかは、開始フォームを持って、他の人がそうではない ありがとう、私はあなたのリンクあなたが何をしようとして –

+0

を理解した上で掲載します容易ではありませんが、達成可能です。あなたのカスタムアクションのMSDNのポストバックの例を理解して、コードの中に 'StartWorkflow'を呼び出すだけです - それは基本的にはプロセスです:-) –

+0

ATM私はすべてが私によって配備されている間に別のワークフローを開始することができました。これは素晴らしいことであり、後で使用するためです。ポストバックは次のものですが、今は就任しておらず、楽しむことができる幸せな週末をお祈りしています。 (誰もがクリスマスに属しているわけではない)。 –

関連する問題