SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

Regeln für die Inhaltsorganisation

bewertet von 0 Usern
Dieser Beitrag hat 3 Antworten | 2 Followers

Top-200-Beitragsschreiber
Beiträge 70
Dennis94 erstellt: 26 Jun 2017 11:05

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

Top-25-Beitragsschreiber
Beiträge 345

Dennis94:

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

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

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.

 

Top-200-Beitragsschreiber
Beiträge 70

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?

Top-200-Beitragsschreiber
Beiträge 70

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 :)

Seite 1 von 1 (4 Elemente) | RSS