Spring til indholdet

Regler til Content Organizer oprettet med REST

En regel til Content Organizer er et element i listen Content Organizer Rules og kan oprettes med REST fra Power Automate. Hvad felterne betyder, og at funktionen ikke længere understøttes i SharePoint Online.

Opdateret Power AutomateSharePoint Online 4 min. læsning

Content Organizer understøttes ikke længere i SharePoint Online. Microsoft skrev funktionen ud i januar 2025 sammen med Record Center og “send to”-placeringerne: “The following features will no longer be supported by Microsoft and configurations will no longer be available”. Microsoft skriver også, at en udfaset funktion kan forsvinde fra brugerfladen, ikke kan slås til eller fra, og at det bagved kan holde op med at virke. I stedet peger Microsoft på Power Automate eller en regel i Syntex, der flytter eller kopierer filer. I SharePoint Server 2016, 2019 og Subscription Edition findes Content Organizer stadig.

Noten er det, jeg fandt ud af i maj 2023, rettet.

Content Organizer#

Funktionen slås til under Site settings → Manage site features → Content Organizer, på det enkelte websted. Den opretter biblioteket Drop Off Library og listen Content Organizer Rules. En fil, der lægges i Drop Off Library, flyttes til det bibliotek eller den mappe, den første passende regel peger på. En regel matcher på filens indholdstype og op til en håndfuld betingelser på dens kolonner.

Opret en regel#

En regel er et element i listen. Send an HTTP request to SharePoint, metode POST:

_api/web/lists/GetByTitle('Content Organizer Rules')/items

Headers:

Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose

Body, som jeg sendte den i 2023:

 1{
 2  "__metadata": { "type": "SP.Data.RoutingRulesItem" },
 3  "Title": "test2",
 4  "RoutingRuleName": "test2",
 5  "RoutingRuleDescription": "Test Rule description",
 6  "RoutingPriority": "5",
 7  "RoutingEnabled": true,
 8  "RoutingContentType": "Document",
 9  "RoutingConditionProperties": "Title",
10  "RoutingAliases": "Document/test2/test3",
11  "RoutingTargetLibrary": "Account",
12  "RoutingTargetFolder": null,
13  "RoutingTargetPath": "/sites/<websted>/account",
14  "RoutingAutoFolderProp": null,
15  "RoutingCustomRouter": null,
16  "RoutingRuleExternal": false
17}

Har listen et andet navn på et websted på et andet sprog, kan den hentes med sit id i stedet for GetByTitle. Det har jeg ikke efterprøvet.

Felterne#

Microsoft dokumenterer ikke de interne feltnavne. Betydningerne herunder er fra Microsofts beskrivelse af kolonnerne og klassen EcmDocumentRouterRule i SharePoint 2010, og feltnavnene er fra folk, der har oprettet regler med kode.

FeltBetyder
RoutingRuleName, RoutingRuleDescriptionNavn og beskrivelse
RoutingPriority1 til 9. Matcher en fil flere regler, vinder den med højest prioritet. At 1 er den højeste og 5 standard, står kun hos andre end Microsoft
RoutingEnabledOm reglen er aktiv
RoutingContentTypeNavnet på indholdstypen, filerne skal have, ikke id’et
RoutingContentTypeInternalIndholdstypens id og navn med | imellem
RoutingAliasesAndre navne for samme indholdstype, fx når den hedder noget andet på et andet websted. Ikke nøgleord i titlen eller filnavnet
RoutingConditionPropertiesKun visning: de kolonner, betingelserne bruger
RoutingConditionsSelve betingelserne som XML
RoutingTargetLibrary, RoutingTargetFolderBiblioteket og mappen, som de vises i listen
RoutingTargetPathStien til målet fra serverens rod
RoutingAutoFolderPropKolonnen, der laves en mappe pr. værdi af
RoutingRuleExternalOm reglen sender til et andet websted
RoutingCustomRouterEn custom router, som er serverkode og ikke kan bruges i SharePoint Online

Min body fra 2023 havde hverken RoutingContentTypeInternal eller RoutingConditions. Om reglen virker uden RoutingContentTypeInternal, har jeg ikke efterprøvet, men de, der har oprettet regler med kode, sætter det. RoutingAliases skrev jeg med / imellem. Microsofts beskrivelse af kolonnen siger kommasepareret. Hvordan værdien skal gemmes, har jeg ikke fundet.

Betingelserne#

RoutingConditions har formen:

1<Conditions>
2  <Condition Column="<felt-id>|<internt navn>|<visningsnavn>" Operator="GreaterThan" Value="100000" />
3</Conditions>

Operatorerne er blandt andet IsEqual, IsNotEqual, GreaterThan, LessThan, GreaterThanOrEqual, LessThanOrEqual, BeginsWith, EndsWith, Contains, NotContains, IsEmpty og IsNotEmpty. Hvilke der kan bruges, afhænger af kolonnens type: en Ja/nej-kolonne tager kun IsEqual og IsNotEqual, og person-, link- og beregnede kolonner kan slet ikke bruges. Microsoft siger både fem betingelser (skemaet) og seks (brugerfladen).

Det der driller#

  • ContentTypeId i min body var reglens egen indholdstype, Rule (0x0100DC2417D125A4489CA59DCC70E3F152B2) med listens endelse, ikke indholdstypen på de filer, der skal flyttes. Den kan udelades, for Rule er listens eneste indholdstype. Det har jeg ikke efterprøvet.
  • Ikke alt flyttes med det samme. En fil med de nødvendige metadata flyttes, når den lægges op. Mangler der metadata, bliver den i Drop Off Library, og ellers tager et timerjob den. I SharePoint Server kører det én gang i døgnet som standard. Dokumentsæt venter altid på jobbet.
  • Mappeopdeling laver en ny mappe, når en mappe har 2.500 elementer, hvis det er slået til under Content Organizer Settings.
  • Til et andet websted kræver, at målwebstedet også har Content Organizer, og en “send to”-forbindelse. Begge dele er udfaset i SharePoint Online.
  • Rettigheder. Den, der administrerer reglerne, skal have Manage Web Site.

Alle noter