开发者

ActivityLibrary for Sharepoint Designer

I'm trying to implement an MSDN tutorial to create an activity library for Sharepoint Designer, and it gives me this error:

Namespace1.CreateTaskInListOnSite' does not contai开发者_如何学编程n a definition for 'ListName' and no extension method 'ListName' accepting a ...

and the same for AssignedTo and 'SiteUrl`.

Shouldn't 'AssignedTo', 'ListName' and 'SiteUrl' be inherited members from SequenceActivity class?

Here is the code which is erred:

protected override ActivityExecutionStatus 
Execute(ActivityExecutionContext executionContext)
{
    try
    {
        SPSite sitecollection = new SPSite(this.SiteUrl); //here
        SPWeb web = sitecollection.OpenWeb();
        SPUser user = web.Users[this.AssignTo[0].ToString()]; // here
        SPList list = web.Lists[this.ListName]; // and here
        SPListItem item = list.Items.Add();
        item["Title"] = this.TaskTitle; 
        item["AssignedTo"] = user; 
        item.Update();
    } 
    catch (Exception ex)
    {
        EventLog.WriteEntry("MSDN Workflow", ex.ToString());
    }
    return ActivityExecutionStatus.Closed; 
}

Here is the .actions file:

<?xml version="1.0" encoding="utf-8" ?>

<WorkflowInfo>
<Actions Sequential="then" Parallel="and">
<Action Name="Create Task in List On Site"
 ClassName="Namespace1.CreateTaskInListOnSite"
Assembly="CustomWorkflowActivities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a3170baa21b0a3e9"
AppliesTo="all" Category="Cross Site Actions">
    <RuleDesigner
     Sentence="Create task titled %1 for %2 on site %3 in 
          list %4">
    <FieldBind Field="TaskTitle" DesignerType="TextArea"
       Id="1"/>
    <FieldBind Field="AssignTo" DesignerType="Person"
       Text="this user" Id="2"/>
    <FieldBind Field="SiteUrl" DesignerType="TextArea" Id="3"/>
    <FieldBind Field="ListName" DesignerType="TextArea" Id="4"/>
  </RuleDesigner>
  <Parameters>
    <Parameter Name="TaskTitle" Type="System.String, mscorlib"
      Direction="In" />
    <Parameter Name="AssignTo" Type="System.String, mscorlib"
      Direction="In" />
    <Parameter Name="SiteUrl" Type="System.String, mscorlib"
      Direction="In" />
    <Parameter Name="ListName" Type="System.String, mscorlib"
      Direction="In" />
  </Parameters>
</Action>


The .ACTIONS file calls the ClassName as MSDN.HowTo.CreateTaskInListOnSite, where as in your code file you seem to use the namespace Namespace1. The two have to match.

So either you change .ACTIONS to this:

<Action Name="Create Task in List On Site"
 ClassName="MSDN.HowTo.CreateTaskInListOnSite" .... />

or change the namespace definition in your code file to MSDN.HowTo.

The assembly attribute values also have to be correct. You can use the sn.exe tool to retrieve the public key token for your assembly.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜