SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Fehler in Custom Workflow Action: System.Workflow.ComponentModel.WorkflowTerminatedException

Unbeantwortet Dieser Beitrag hat 1 Antworten

Ohne Rang
48 Beiträge
Lars Schwanitz erstellt 7 Juni 2012 06:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Morgen,

diese Frage ist die Fortsetzung von: http://sharepointcommunity.de/forums/p/16805/48166.aspx#48166

Ich habe eine Custom Workflow Action zur Verwendung im SPD erstellt. (Diese Anleitung: http://www.geeklife.ch/dev/custom-workflow-actions-fur-sharepoint-designer/). Der Code der kompletten Klasse die diese Aktion ausmacht ist unten reinkopiert. Wie man sieht ist das ganze sehr rudimentär und ohne größere Funktionalität. Es wird beim Aufruf nur eine Variable verändert. (Test).

Im SPD lasse ich mir diese Variable in die Workflowprotokollierung schreiben. Der Workflow wird mit dem Status:  "Workflow abgeschlossen" angezeigt. Aber es wurde eine Ausnahme ausgelöst. In der Ausgabe steht dann: Eine Ausnahme vom Typ "System.Workflow.ComponentModel.WorkflowTerminatedException" wurde ausgelöst.

Über google habe ich die Aussage gefunden das diese Exeption immer beim beenden einer Workflow Action erzeugt wird. Ist das so?

Wenn ich die Protokollierung über das Eventlog machen möchte wie im Beispiel (bei mir auskommentiert), wird der Workflow mit dem Status: "Fehler" beendet.

Wo ist mein Fehler, bzw was ist da los.

Danke

Lars

 

using System.Collections;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;
using Microsoft.SharePoint.Workflow;
using Microsoft.SharePoint.WorkflowActions;
using System.Security;
using System.Security.Permissions;
using System.Reflection;
using System.Runtime.CompilerServices;

namespace CustomWorkflowActions{  

    public class GetSerialNumber : Activity
    {

        //Fehlervariable
        public static DependencyProperty ErrorProperty = DependencyProperty.Register("Error", typeof(string), typeof(GetSerialNumber));
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public string Error
        {
            get
            {
                return ((string)(base.GetValue(GetSerialNumber.ErrorProperty)));
            }
            set
            {
                base.SetValue(GetSerialNumber.ErrorProperty, value);
            }
        }              

        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {

            try
            {              
                /* EventLog Log = new EventLog();
                Log.Source = "Get Serial Number";
                Log.WriteEntry("Test", EventLogEntryType.Warning);*/
                Error = "Hallo";              
            }
            catch (Exception ex)
            {
                /*  EventLog Log = new EventLog();
                Log.Source = "Get Serial Number";
                Log.WriteEntry(ex.ToString(), EventLogEntryType.Warning);*/
                Error = ex.Message.ToString();
            }
            return base.Execute(executionContext);
        }
    }
}

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Juni 2012 14:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Versuche als Rückgabewert nicht base.Execute(..), sondern ActivityExecutionStatus.Closed

Viele Grüße
Andi
af @ evocom de
Blog