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.




SPException: Der Stammaktivitätstyp ist ungültig

Unbeantwortet Dieser Beitrag hat 4 Antworten

Ohne Rang
216 Beiträge
Nachtschelm erstellt 15 Apr. 2011 11:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo SharePoint-Community,
ich habe einen sporadisch auftretenden Fehler beim Starten von SPD-Workflows aus einem VS-Workflow heraus. Insgesamt werden sechs SPD-Workflows angestoßen von denen drei ab und an beim Starten auf einen Fehler laufen. Im Log-File finde ich dann folgenden Eintrag:

Unexpected    RunWorkflow: Microsoft.SharePoint.SPException: <Error><CompilerError Line="1" Column="1" Text="Der Stammaktivitätstyp ist ungültig." /></Error>     bei Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.LoadXomlAssembly(SPWorkflowAssociation association, SPWeb web)     bei Microsoft.SharePoint.Workflow.SPWinOeHostServices.LoadDeclarativeAssembly(SPWorkflowAssociation association)     bei Microsoft.SharePoint.Workflow.SPWinOeHostServices.CreateInstance(SPWorkflow workflow)     bei Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(SPWorkflowHostService host, SPWorkflow workflow, Collection`1 events, TimeSpan timeOut)     bei Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow workflow, Collection`1 events, SPWorkflowRunOptionsInternal runOptions)    

 

Hier mein Code, der die Workflows startet:


        private void triggerWorkflows()
        {
            SPWorkflowManager wfManager = currentSite.WorkflowManager;
            SPWorkflowAssociationCollection wfAssociationColl = currentList.WorkflowAssociations;

            for (int i=0;i<wfAssociationColl.Count; i++)
            {
                Thread t = new Thread(new ParameterizedThreadStart(runWF));
                t.Name = "Thread " + i;
                String params_string = currentSite.ID +"|" +currentWeb.ID +"|" +currentList.ID +"|" +currentListItem.UniqueId +"|" +i;
                t.Start(params_string);
            }
        }// endmethod triggerWorkflows


        private void runWF(Object param)
        {
            String[] parameters = ((String) param).Split('|');
            Guid site_guid = new Guid(parameters[0]);
            Guid web_guid = new Guid(parameters[1]);
            Guid list_guid = new Guid(parameters[2]);
            Guid item_guid = new Guid(parameters[3]);
            int association_id = Int32.Parse(parameters[4]);
           
            SPSite site = new SPSite(site_guid);
            SPWeb web = site.OpenWeb(web_guid);
            SPList list = web.Lists[list_guid];
            SPListItem item = list.GetItemByUniqueId(item_guid);
            SPWorkflowManager manager = site.WorkflowManager;

            SPWorkflowAssociation association = list.WorkflowAssociations[association_id];

            SPWorkflow wf = manager.StartWorkflow(item, association, association.AssociationData);

            web.Dispose();
            web.Close();
            site.Dispose();
            site.Close();
        }// endmethod runWF

 

Mich interessiert jetzt, was die Meldung "Der Stammaktivitätstyp ist ungültig." im Allgemeinen bedeutet, also, wodurch sie hervorgerufen wird und im Konkreten natürlich, wieso sie bei mir auftritt und wie ich das Problem beheben kann.

 

Hat jemand einen heißen Tipp für mich?

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Apr. 2011 12:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Keine Ahnung, ob es was ändert, aber warum startest Du die Workflows in einem eigenen Thread? Die laufen ohnehin in Ihrem eigenen Prozeß.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
216 Beiträge
Nachtschelm Als Antwort am 15 Apr. 2011 13:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,
erst mal danke, dass du Dich meiner annimmst ;-).

Ich habe anfangs die Workflows ohne eigenen Thread gestartet, hatte dann aber öfter folgende Fehlermeldung:
Workflow ID=GUID attempting to run on a thread currently executing workflow ID=GUID.  This workflow will be run at a later time.

Hab dann viel rumgegooglet und unter anderem gelesen, dass man Workflows mit eigenen Threads und SPSite-/SPWeb-Objekten starten soll.
Daher die WFs im eigenen Thread.

Hast Du zum sporadisch auftretenden Fehler eine Idee?

Viele Grüße
Nachtschelm

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Apr. 2011 13:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Nachtschelm"]öfter folgende Fehlermeldung:
Workflow ID=GUID attempting to run on a thread currently executing workflow ID=GUID.  This workflow will be run at a later time[/quote]

War das dann dieselbe GUID? Das hieße denselben Workflow auf demselben Element nochmal starten. Sowas geht nicht und läßt sich auch nicht mit einem neuen Thread "austricksen". Vielleicht ist das ja die Ursache Deiner Probleme?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
216 Beiträge
Nachtschelm Als Antwort am 15 Apr. 2011 13:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,
ja, ich hatte versucht, auf das gleiche Element nochmal den gleichen Workflow loszulassen.

Ich werde nun die Thread-Verpackung mal rauslassen und schauen, ob sich damit mein Problem löst.

 

Danke!

Viele Grüße
Nachtschelm