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.




Workflow AssociationCategories für ListContentTypes

Geprüfte Antwort Dieser Beitrag hat 3 Antworten

Ohne Rang
929 Beiträge
Thomas Östreich erstellt 18 März 2011 11:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo

ist es irgendwie möglich in <AssociationCategories> anzugeben das auch abgeleitet ContentTypes die Bindung ermöglicht?

wenn ich das so nutze:

<AssociationCategories>ContentType;0x01010088c0ba7dd64e4075bcf5df9f3b8a4674</AssociationCategories> 

dann kann ich nur auf den Parent ContentType in der Liste den Workflow binden aber nicht auf den direkten ContentType in der Liste. Es gibt ja die Möglichkeit beim hinzufügen von WF zur einer Liste den ContentType auszuwählen woran dieser gebunden wird, wälle ich nun meinen CT aus gibt es keine WF.

Ich vermute mal es ist ein Bug, bin mir auch ziemlich sicher das das in 2007 / wss3 funktionierte mit abgeleitete ContentTypes. 

Alle Antworten

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 18 März 2011 12:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

In WrkSetngPage hat Microsoft den Fehler:

protected bool AllowAddWorkflowLink()
{
    StringBuilder builder = new StringBuilder("General;#");
    if (base.m_ct != null)
    {
        builder.Append("ContentType;#");
        builder.Append("ContentType;" + base.m_ct.Id + ";#");
    }
    else if (base.List != null)
    {
        builder.Append("List;#");
        builder.Append("List;" + base.List.TemplateFeatureId + ";#");
        builder.Append("List;" + ((int) base.List.BaseTemplate) + ";#");
        builder.Append(string.Concat(new object[] { "List;", base.List.TemplateFeatureId, ";", (int) base.List.BaseTemplate, ";#" }));
    }
    else
    {
        builder.Append("Site;#");
        builder.Append("Site;" + base.Web.WebTemplate + ";#");
    }
    return (base.Web.Site.WorkflowManager.GetWorkflowTemplatesByCategory(base.Web, builder.ToString()).Count > 0);
}

In der AddWrkfl Page ist der Fehler das nur im QueryString geschaut wird ob der ContentType gesetzt ist und nicht ob der Liste ContentTypes zugeordnet sind. Wenn man nun in der Liste ist und dann auf Workflows geht steht im QueryString ebend nur die Liste und somit wird nur geprüft ob es Association zur Liste gibt.

Also muss ein Workaround her:

Einstellungen zur Liste -> Inhaltstyp auswählen -> Workfloweinstellungen -> "WrkSetng.aspx" öffnet sich und zeigt an das es keine WF gibt daher einfach WrkSetng.aspx in AddWrkfl.aspx umbenennen und es geht.

Werde ich wohl eine CustomAction hinzufügen.

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 21 März 2011 08:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der Fehler liegt bei Microsoft:

WrkSetng.aspx (WrkSetngPage)

  1. In der Methode AllowAddWorkflowLink wird nur die Abfrage Zeichenfolge für WorkflowManager.GetWorkflowTemplatesByCategory für den Aktuellen Inhaltstyp erstellt und nicht wie bei AddWrkflPage für die Übergeordneten.

AddWrkfl.aspx (Listeinstellungen / Ribbon Add Workflow)

  1. Sobald kein Inhaltstyp angegeben ist im QueryString (was ja bei diesen Kommandos der Fall ist) wird nicht geprüft ob die Inhaltstypen in WF AssociationCategies aufgeführt sind und es kommt zu den Fehler das keine Workflows vorhanden sind.

Workaround

  • WrkSetng.aspx über das Ribbon Command "Workfloweinstellungen" aufrufen
  • seinen Inhaltstyp auswählt so das im Query die ListID und ctype steht
  • WrkSetng.aspx gegen AddWrkfl.aspx austauschen
  • Workflow kann jetzt hinzugefügt werden
Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 25 März 2011 09:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sobald irgend ein Workflow vorhanden ist, der auf eine beliebige Liste aktiviert werden kann, so können auch die speziffischen WF für die Inhaltstypen ausgewählt werden.

Da ja in den meissten Vorlagen das Feature "Workflow mit drei Status" aktiviert ist fällt das Problem auch nicht auf.