1

リストから連結された文字列を返す SharePoint Designer で使用するカスタム ワークフロー アクションを開発しています。実際にはアクションの内部で問題なく動作しますが、常にエラーが返されます。

テスト ワークフローでエラーが発生しました

ULS ログの内部には、どこにあるかわからないことを除いて、null ポインター エラーがあります。

System.NullReferenceException: Object reference not set to an instance of an object.
     at Microsoft.SharePoint.WorkflowActions.SPUserCodeWorkflowActivity.ExecuteUserCode()
     at Microsoft.SharePoint.WorkflowActions.SPUserCodeWorkflowActivity.System.Workflow.ComponentModel.IActivityEventListener<System.Workflow.ComponentModel.ActivityExecutionStatusChangedEventArgs>.OnEvent(Object sender, ActivityExecutionStatusChangedEventArgs e)
     at System.Workflow.ComponentModel.ActivityExecutorDelegateInfo`1.ActivityExecutorDelegateOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
     at System.Workflow.Runtime.Scheduler.Run()

メソッドの最後にエラーが返される理由に困惑しています。ここで呼ばれるメソッド

public Hashtable ListColumnToString(SPUserCodeWorkflowContext context, string ListName, string ColumnName, string Delimiter)
{
    Hashtable results = new Hashtable();

    try
    {
        using (SPSite site = new SPSite(context.CurrentWebUrl))
        {
            using (SPWeb web = site.OpenWeb())
            {
                SPList list = web.Lists[new Guid(ListName)];
                string output = string.Empty;

                foreach (SPItem item in list.Items)
                {
                    output += item[ColumnName].ToString() + Delimiter;
                }

                results["OutputString"] = output;

                SPWorkflow.CreateHistoryEvent(web,
                    context.WorkflowInstanceId,
                    0,
                    web.CurrentUser,
                    TimeSpan.Zero,
                    "Information",
                    output,
                    string.Empty);
            }
        }
    }
    catch (Exception ex)
    {
        results["OutputString"] = string.Empty;
    }

    return results;
}

ワークフローは出力値を期待どおりに正しくログに記録し、ログ コマンドの時点で、ワークフロー アクションはコード ブロックを完了しましたが、ワークフローはこのステップでエラーを報告します。

ここに画像の説明を入力

SharePoint Designer 2010 でワークフローを作成していますが、ステップが 1 つしかなく、カスタム アクションが 1 つだけあります。追加のアクションを追加すると、このエラーのために到達することはありません。

ここに画像の説明を入力

このワークフロー アクションが成功を返すようにするにはどうすればよいですか?

Elements.xml - 関連する場合は、ここにアクション XML があります

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <WorkflowActions>
    <Action Name="List Column to String"
            SandboxedFunction="true"
            Assembly="$SharePoint.Project.AssemblyFullName$"
            ClassName="ListColumnToStringActivity"
            FunctionName="ListColumnToString"
            AppliesTo="all"
            Category="My Custom">
      <RuleDesigner Sentence="From %1 list, %2 column. Save to string %3 with %4 delimiter">
        <FieldBind Field="ListName" Id="1" Text="List name" DesignerType="ListNames" />
        <FieldBind Field="ColumnName" Id="2" Text="Column name" DesignerType="Text" />
        <FieldBind Field="OutputString" Id="3" Text="Output string" DesignerType="ParameterNames" />
        <FieldBind Field="Delimiter" Id="4" Text="Delimiter for columns" DesignerType="Text" />
      </RuleDesigner>
      <Parameters>
        <Parameter Name="__Context"
                   Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions"
                   Direction="In"
                   DesignerType="Hide" />
        <Parameter Name="ListName"
                   Type="System.String, mscorelib"
                   Direction="In"
                   DesignerType="ListNames"
                   Description="Name of list" />
        <Parameter Name="ColumnName"
                   Type="System.String, mscorelib"
                   Direction="In"
                   DesignerType="TextBox"
                   Description="Name of column" />
        <Parameter Name="OutputString"
                   Type="System.String, mscorelib"
                   Direction="Out"
                   DesignerType="ParameterNames"
                   Description="Delimited string returned" />
        <Parameter Name="Delimiter"
                   Type="System.String, mscorelib"
                   Direction="In"
                   DesignerType="TextBox"
                   Description="Delimiter" />
      </Parameters>
    </Action>
  </WorkflowActions>
</Elements>

アップデート

よく調べた結果、ワークフローを実行すると、ULS ログにさらに 3 つのエントリが見つかりました。これらを修正するために何をすべきかわかりませんが、構成ファイル全体がどこかに欠けているようです。

Solution Deployment : Looking for 'ReceiverAssembly' attribute in manifest root node for solution 'SharePoint.ListColumnToString.wsp'.   
Solution Deployment : Looking for 'ReceiverClass' attribute in manifest root node for solution 'SharePoint.ListColumnToString.wsp'.
Solution Deployment : Missing one or more of the following attributes from the root node in solution SharePoint.ListColumnToString.wsp: assembly '', type ''.   
4

0 に答える 0