ActivityLibrary для Sharepoint Designer - PullRequest
       1

ActivityLibrary для Sharepoint Designer

0 голосов
/ 06 сентября 2011

Я пытаюсь реализовать учебник MSDN , чтобы создать библиотеку действий для Sharepoint Designer, и она выдает мне эту ошибку:

Namespace1.CreateTaskInListOnSite' does not contain a definition for 'ListName' and no extension method 'ListName' accepting a ...

и то же самое для AssignedTo и 'SiteUrl`.

Разве «AssignedTo», «ListName» и «SiteUrl» не должны быть унаследованы от класса SequenceActivity?

Вот код ошибки:

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; 
}

Вот файл .actions:

<?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>

1 Ответ

0 голосов
/ 06 сентября 2011

Файл .ACTIONS вызывает ClassName как MSDN.HowTo.CreateTaskInListOnSite , где, как и в вашем кодовом файле, вы используете пространство имен Пространство имен1 . Два должны совпадать.

Так что либо вы меняете .ACTIONS на это:

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

или измените определение пространства имен в файле кода на MSDN.HowTo.

Значения атрибута сборки также должны быть правильными. Вы можете использовать инструмент sn.exe для получения токена открытого ключа для вашей сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...