Domanda

Sto cercando di creare un semplice flusso di lavoro contenente un po 'in cui puoi trovare: createtaskwithcontententspes mentre Ontaskcanged. CompleteTask

Quando provo a lanciare il flusso di lavoro aggiungendo un nuovo elemento alla mia lista associata, mi trovo con un "errore si è verificato". Così ho provato a eseguire il debug un po 'e ho scoperto che l'errore era sul ricevitore di eventi ONTASKANGED. Ma l'unica cosa che fa sta lasciando il flusso di lavoro. Non ho un messaggio di errore o altro.

Quindi ho guardato su Internet e ho scoperto qualche problema simile. Ma immagino di non aver trovato il mio, o non ho capito di cosa si trattava!

Ecco il mio metodo Crea attività:

private void createTaskWithContentType1_MethodInvoking(object sender, EventArgs e)
{
    TaskProperties = new SPWorkflowTaskProperties();
    TaskId = Guid.NewGuid();
    TaskProperties.Title = Title;
    TaskProperties.Description = DescriptionName;
    TaskProperties.DueDate = DueDate;
    TaskProperties.AssignedTo = this.Approver;
    TaskProperties.PercentComplete = 0;
    TaskProperties.StartDate = DateTime.Today;
}
.

Ecco il mio modo in cui la condizione del codice:

private void WaitResponse_Invoke(object sender, ConditionalEventArgs e)
{
    e.Result = !isFinished;
}
.

Ecco il metodo invocato del mio ricevitore evento OntaskChanged (fondamentalmente non fa nulla):

private void WaitApproval_Invoked(object sender, ExternalDataEventArgs e)
{           
}
.

Ecco il dopo e prima dei propertie: Dipendenza statica pubblicaProperty wait approval_afterpropertiesproperty=

DependencyProperty.Register("WaitApproval_AfterProperties", typeof(Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties), typeof(ActivityLibrary.EtapeOuiNon));

    [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
    [BrowsableAttribute(true)]
    [CategoryAttribute("Misc")]
    public Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties WaitApproval_AfterProperties
    {
        get
        {
            return ((Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties)(base.GetValue(ActivityLibrary.EtapeOuiNon.WaitApproval_AfterPropertiesProperty)));
        }
        set
        {
            base.SetValue(ActivityLibrary.EtapeOuiNon.WaitApproval_AfterPropertiesProperty, value);
        }
    }

    public static DependencyProperty WaitApproval_BeforePropertiesProperty = DependencyProperty.Register("WaitApproval_BeforeProperties", typeof(Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties), typeof(ActivityLibrary.EtapeOuiNon));

    [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
    [BrowsableAttribute(true)]
    [CategoryAttribute("Misc")]
    public Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties  WaitApproval_BeforeProperties
    {
        get
        {
            return ((Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties)(base.GetValue(ActivityLibrary.EtapeOuiNon.WaitApproval_BeforePropertiesProperty)));
        }
        set
        {
            base.SetValue(ActivityLibrary.EtapeOuiNon.WaitApproval_BeforePropertiesProperty, value);
        }
    }
.

Per informazioni il token di correlazione è lo stesso ovunque. Anche tutta questa parte del mio flusso di lavoro è in un'attività separata.

Quindi se qualcuno ha un'idea di cosa potrebbe essere! Molte grazie !

È stato utile?

Soluzione

Ho trovato il problema! Quando si accede all'evento OnTAskChanged, il flusso di lavoro sta cercando di serializzare se stesso, in modo che possa essere magazzino durante l'attesa che l'evento venga attivato!

Il problema è che nel mio flusso di lavoro stavo usando personalizzare l'oggetto che non era seriatabile come variabile pubblica:

public sealed partial class Workflow1 : SequentialWorkflowActivity
{
    public Workflow1()
    {
        InitializeComponent();
    }
    public List<DefEtape> ListeEtapes = new List<DefEtape>();
    public DefEtape etapeEnCours = new DefEtape();
.

Per superare questo probleo che ho appena aggiunto: [serializzabile] alle mie lezioni in modo che sia diventato:

namespace CSPIMMOHelper
{
    [Serializable]
    public class DefEtape
    {
.

Spero che questo aiuterà alcune persone

Altri suggerimenti

Grazie questa è stata la soluzione per il mio problema!Ho avuto uno Splistitem nella mia classe che non è isericabile, come un bug con esso in generale.

Il problema può essere trovato nei registri ULS

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