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.




Regeln für die Inhaltsorganisation

Dieser Beitrag hat 3 Antworten

Ohne Rang
116 Beiträge
Dennis94 erstellt 26 Juni 2017 11:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Zusammen,

Für mein Datenarchiv würde ich gerne mittels REST-API Regeln für die Inhaltsorganisation generieren. Ich habe den richtigen Endpunkt und auch die meisten Felder kann ich problemlos setzen. Einzig wenn ich RoutingConditions hinzufügen will, bekomme ich eine Bad Request Fehlermeldung. Um die richtigen Werte zu finden, hatte ich das ganze erstmal mit CSOM getestet, dort kann ich auch die Conditions setzen und zwar wie folgt:

routingRule["RoutingConditions"] = "<Conditions><Condition Column='94ab0e5d-bdf5-4ff9-81ff-61913ce1d6cd|Firmenname|Firmenname' Operator='IsEqual' Value='"+ name +"'/></Conditions>";

Nach diesem Schema probiere ich es erfolglos mit REST. Der body der Rest-Anfrage sieht dabei so aus:

string conditions = "<Conditions><Condition Column='94ab0e5d-bdf5-4ff9-81ff-61913ce1d6cd|Firmenname|Firmenname' Operator='IsEqual' Value='" + name + "' /></Conditions>";

byte[] content = ASCIIEncoding.UTF8.GetBytes(@"{ '__metadata' : { 'type' : 'SP.ListItem' },

                                                                " 'Title' : '" + name + "'," +
                                                                " 'RoutingRuleName' : '" + name + "'," +
                                                                " 'RoutingRuleDescription' : 'Routing Rule forFolder " + name + "'," +
                                                                " 'RoutingPriority' : '4'," +
                                                                " 'RoutingContentType' : 'Dokument'," +
                                                                " 'RoutingTargetLibrary' : 'Firmen'," +
                                                                " 'RoutingTargetFolder' : '" + name + "'," +
                                                                " 'RoutingAutoFolderProp' : '', " +
                                                                " 'RoutingCustomRouter' : ''," +
                                                                " 'RoutingTargetPath' : '" + relativePath + name + "'," +
                                                                " 'RoutingContentTypeInternal' : '0x0101|Dokument'," +
                                                                " 'RoutingConditionProperties' : 'Firmenname'," +
                                                                " 'RoutingRuleExternal' : false ," +
                                                                " 'RoutingEnabled' : true ," +
                                                                " 'RoutingConditions' : ' "+ conditions +" ' }");

Wenn ich hier den letzten Paert (" 'RoutingConditions' : ' "+ conditions +" ' }") weglasse, funktioniert der Call und es wird eine neue Regel erstellt.

Weiß jemand was ich bei der Eingabe der Bedingung falsch mache?

Gruß Dennis

Alle Antworten

Ohne Rang
496 Beiträge
Derby Als Antwort am 26 Juni 2017 11:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Dennis94"]

string conditions = "<Conditions><Condition Column='94ab0e5d-bdf5-4ff9-81ff-61913ce1d6cd|Firmenname|Firmenname' Operator='IsEqual' Value='" + name + "' /></Conditions>";         

                    
" 'RoutingConditions' : ' "+ conditions +" ' }");

[/quote]

Wenn die Variable in den Property eingesetzt wird, sieht das so aus,

" 'RoutingConditions' : ' ""<Conditions><Condition Column='94ab0e5d-bdf5-4ff9-81ff-61913ce1d6cd|Firmenname|Firmenname' Operator='IsEqual' Value='" + name + "' /></Conditions>";" ' }");

Eventuell zu viele " drin. Die Regel an sich sieht korrekt aus  benutze die in Power Shell Scripts.

 

Ohne Rang
116 Beiträge
Dennis94 Als Antwort am 26 Juni 2017 11:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mit zu vielen " hattest du recht. Habe das entsprechnd abgeändert. Sieht jetzt so aus:

'RoutingConditions' : '<Conditions><Condition Column=94ab0e5d-bdf5-4ff9-81ff-61913ce1d6cd|Firmenname|Firmenname Operator=IsEqual Value=123 /></Conditions>'

Nun bekomme ich auch keine Fehlermeldung mehr und die Regel wird erstellt. Wenn ich die Regel aber manuell einsehen will, sie also in SharePoint öffnen möchte, bekomme ich dort eine Fehlermeldung. Ich glaube, dass liegt daran, dass der Wert für die Bedingung ungültig ist. normalerweise müssen ja um den Wert der Column und Operator usw. " also zB Operator="IsEqual". Wenn ich diese aber in dem body der Anfrage setzte bekomme ich wieder eine Fehlermeldung im Call.

Hast du da vielleicht noch eine Idee?

Ohne Rang
116 Beiträge
Dennis94 Als Antwort am 26 Juni 2017 12:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Habe es hinbekommen. Ich musste die " nur mit \ escapen. Für alle, die vielleicht mal ein ähnliches Problem haben, so sieht die funktionsfähige Bedingung aus:

'RoutingConditions' : '<Conditions><Condition Column=\"94ab0e5d-bdf5-4ff9-81ff-61913ce1d6cd|Firmenname|Firmenname\" Operator=\"IsEqual\" Value=\"123\" /></Conditions>'

Vielen Dank Derby für deine Hilfe dabei :)