Domanda

Ho seguito alcuni esempi per quanto riguarda le azioni personalizzate. Ho cercato di implementare la mia, ma anche se posso vedere l'azione all'interno SPD, quando selezionato non appare nella fase del flusso di lavoro.

Quello che sto cercando di fare è quello di eseguire una ricerca di campo in entrambe le proprietà CSVString e ReleaseID, e un nome elenco di ricerca in SecondaryListName.

Ho VS e SP entrambi sulla stessa casella di sviluppo quindi non ci sono più front-end. Ci sono diverse applicazioni web, ma mi hanno fatto in modo che ho aggiornato il corretto web.config.

Lo spazio dei nomi che sto utilizzando è "CustomActivity" e la classe (che è pubblico) si chiama "StringIteration".

Ho schierato la dll nella GAC ??con successo.

Gli sguardi di file CustomActivity.actions come:

<?xml version="1.0" encoding="utf-8" ?>
<WorkflowInfo>
    <Actions Sequential="then" Parallel="and">
        <Action Name="String Iterate To New List Items"
            ClassName="CustomActivity.StringIteration"
            Assembly="CustomActivity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=82239858eda182a1"
            Category="My Custom Activities"
            AppliesTo="all">
            <RuleDesigner Sentence="Get CSV values from field %1 using request ID %2 and insert to list %3">
                <FieldBind DesignerType="FieldNames" Id="1" Text="Field with CSV contents" Field="CSVString" />
                <FieldBind DesignerType="ListNames" Id="2" Text="List to add new records to" Field="SecondaryListName" />
                <FieldBind DesignerType="FieldNames" Id="3" Text="Release ID Field" Field="ReleaseID" />
            <Parameters>
                <Parameter Name="CSVString" Type="System.String, mscorlib" Direction="In" DesignerType="FieldNames" Description="Approver matrix list name." />
                <Parameter Name="SecondaryListName" Type="System.String, mscorlib" Direction="In" DesignerType="ListNames" Description="Approver matrix fields." />
                <Parameter Name="ReleaseID" Type="System.Int32, mscorlib" Direction="In" DesignerType="FieldNames" Description="Workflow variable output by this action." />
                <Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions" Direction="In" DesignerType="Hide" />
            </Parameters>
        </Action>
    </Actions>
</WorkflowInfo>

Ho aggiornato il web.config rilevanti con:

<authorizedType Assembly="CustomActivity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=82239858eda182a1" Namespace="CustomActivity.StringIteration" TypeName="*" Authorized="True" />

Qualsiasi aiuto sarebbe molto apprezzato

Grazie

EDIT: Come nel caso di questa domanda, sono in grado di spezzare il flusso di lavoro modificando il nome di montaggio all'interno del file azioni. Ciò causa un errore SPD da generare, quindi deve essere leggendo il montaggio corretto (Credo).

personalizzato attività di workflow per la SP 2007 appare nel selettore azione del designer ma non aggiungerà

EDIT 2:

ho aggiornato il mio file di azioni commenti di Tim, ma la stessa cosa accade ancora:

<?xml version="1.0" encoding="utf-8" ?>
<WorkflowInfo>
    <Actions Sequential="then" Parallel="and">
        <Action Name="String Iterate To New List Items"
            ClassName="CustomActivity.StringIteration"
            Assembly="CustomActivity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=82239858eda182a1"
            Category="My Custom Activities"
            UseCurrentItem="true"
            AppliesTo="all">
            <RuleDesigner Sentence="Get CSV values from field %1 using request ID %2 and insert to list %3">
                <FieldBind DesignerType="FieldNames" Id="1" Text="Field with CSV contents" Field="CSVString" />
                <FieldBind DesignerType="FieldNames" Id="2" Text="Release ID Field" Field="ReleaseID" />
                <FieldBind DesignerType="ListNames" Id="3" Text="List to add new records to" Field="SecondaryListName" />
            </RuleDesigner>
            <Parameters>
                <Parameter Name="CSVString" Type="System.String, mscorlib" Direction="In" />
                <Parameter Name="ReleaseID" Type="System.Int32, mscorlib" Direction="In" />
                <Parameter Name="SecondaryListName" Type="System.String, mscorlib" Direction="In" />
                <Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions" Direction="In" DesignerType="Hide" />
            </Parameters>
        </Action>
    </Actions>
</WorkflowInfo>

EDIT 3: Okay, questo va da peggio ancora peggio. Ho costantemente rimosso oggetti di file azioni (e dependancyproperties dalla DLL) fino a quando c'è 1 beni lasciati. Ho impostato che si tratta un DesignerType di TextArea e dependancyproperty è una stringa. Ho cancellato la cache, reimpostare IIS ... e ancora niente.

Così ora mi chiedo se si tratta di qualcosa di diverso? il codice per il dll è:


namespace CustomActivity
{
    public partial class StringIteration : SequenceActivity
    {
        private string _updatedCSVString = "";


        public static DependencyProperty CSVStringProperty = DependencyProperty.Register("CSVString", typeof(string), typeof(StringIteration), new PropertyMetadata(""));
        [ValidationOption(System.Workflow.ComponentModel.Compiler.ValidationOption.Required)]
        public string CSVString
        {
            get
            {
                return (string)base.GetValue(StringIteration.CSVStringProperty);
            }
            set
            {
                base.SetValue(StringIteration.CSVStringProperty, value);
                _updatedCSVString = value;
            }
        }

        public StringIteration()
        {
            InitializeComponent();
        }

        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            CSVString = "Work please";
            return ActivityExecutionStatus.Closed;
        }
    }
}

e il nuovo, curato giù file di azioni è:


<?xml version="1.0" encoding="utf-8" ?>
<WorkflowInfo>
    <Actions Sequential="then" Parallel="and">
        <Action Name="String Iterate To New List Items"
            ClassName="CustomActivity.StringIteration"
            Assembly="CustomActivity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=82239858eda182a1"
            Category="My Custom Activities"
            AppliesTo="all">
            <RuleDesigner Sentence="Get CSV values from field %1">
                <FieldBind Field="CSVStringProperty" DesignerType="TextArea" Id="1" Text="Field with CSV contents"/>
            </RuleDesigner>
            <Parameters>
                <Parameter Name="CSVStringProperty" Type="System.String, mscorlib" Direction="In" />
            </Parameters>
        </Action>
    </Actions>
</WorkflowInfo>

Grazie per tutti quanti aiuto finora! Tutte le ultime idee?

È stato utile?

Soluzione 2

Ho seguito questo link ed è riuscito a ottenere questo lavoro demo:

https://msmvps.com/blogs/sundar_narasiman/archive/2010/12/26/develop-custom-workflow-activity-for-sharepoint-2010-workflow.aspx

Invece di copiare manualmente tutto per dove dovrebbe essere Ho usato Visual Studio Deploy per installare tutto, e il progetto in più per contenere il file azioni nella cartella corretta.

Tutti ora di lavoro.

Grazie per tutti quanti aiuto

Altri suggerimenti

Questo è abbastanza comune quando prima lo sviluppo di un azione. Alcune cose da controllare:

  1. Riavvia SharePoint Designer e IIS.
  2. Cancella SharePoint Workflow Designer Assembly cache .
  3. Assicurati il ??nome sicuro nell'elemento AuthorizedType (uso del riflettore per ottenere la firma completa dell'Assemblea).
  4. Controllare la sintassi nel file Azioni. È la mia esperienza che se si ottiene qualcosa di sbagliato nel non vengono segnalati errori, semplicemente non funziona. (Capitalizzazione, tipi di parametri, etc)

Se si sta rivelando nella lista delle attività, e selezionandolo, non succede nulla, nella mia esperienza, un'eccezione viene catturato da qualche parte, e probabilmente registrata. Quindi provare a selezionare, e andare a destra per i registri di SharePoint.

Un'altra idea, è che SharePoint Designer è schizzinoso e non sono stato in grado di determinare quando le cose sono / non sono memorizzati nella cache. Hai provato semplicemente chiudendo / riapertura SPD?

Ho un esempio di lavoro posso confrontare con quando arrivo in ufficio.

Modifica 1

Penso che ci potrebbe essere un problema nella tua sezione <Parameters>. Penso che bisogno il vostro campo di bind per abbinare i vostri parametri. Ecco un esempio che ho fatto che ha creato un elenco basato su un URL, e in uscita ad una variabile bool. Mi ricordo di aver problemi fino a quando la proprietà Field e Name abbinati, e devono soddisfare le vostre proprietà di dipendenza.

<RuleDesigner Sentence="Create List named %1 at site %2 (IsSuccessful out to %3)">
  <FieldBind Field="ListName" Text="Custom List" DesignerType="TextArea" Id="1" />
  <FieldBind Field="SiteUrl" Text="Site" DesignerType="TextArea" Id="2" />
  <FieldBind Field="IsSuccessful" Text="WasListCreated" DesignerType="ParameterNames" Id="3" />
</RuleDesigner>
<Parameters>
  <Parameter Name="ListName" Type="System.String, mscorlib" Direction="In" />
  <Parameter Name="SiteUrl" Type="System.String, mscorlib" Direction="In" />
  <Parameter Name="IsSuccessful" Type="System.Boolean, mscorlib" Direction="Out" />
</Parameters>

Modifica 2

Prova ad aggiungere il seguente attributo alle proprietà

[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
[BrowsableAttribute(true)]

Modifica 3

Puoi provare a cancellare manualmente la cache? Il questo posta

Ho lo stesso problema, ma ora ho trovato. Se l'azione personalizzata non inserire nei passaggi del flusso di lavoro, certo non è autorizzare e controllare il nome di nome di assembly nello script autorizzare, per esempio, se il mio nome montaggio è "CustomActionDemo.dll", assemblaggio nome in codice di autorizzare deve essere esattamente: "CustomActionDemo"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top