Organizationssynchronisation



Überblick

Organisationseinheiten können in primedocs manuell oder automatisiert angelegt werden. Über den OrgSync können Organisationseinheiten mit einem Fremdsystem synchronisiert werden.

Da Organisationseinheiten hierarchisch organisiert sind, ist ein 1:1-Abgleich wie bei den Benutzern nicht möglich. Als Synchronisationsquelle dient daher eine XML-Datei, welche mit den Daten vom Fremdsystem ausgefüllt werden muss.

Folgende Daten können hierbei zu primedocs synchronisiert werden:

  • Titel der Organisationseinheit

  • Zu setzende Felder der Organisationseinheit

  • Berechtigungen der Organisationseinheit

  • Organisationseinheitenhierachie

Die Organisationseinheit wird über ein eindeutiges Merkmal in primedocs erkannt, d.h. das Fremdsystem gibt einen “Schlüssel/Technisches Merkmal” vor und beim Import der Organisationseinheiten wird dieses Merkmal in primedocs gespeichert.

Die generierte Datei muss danach über den JobHost, z.B. als zeitgesteuerte Aufgabe, in die primedocs Datenquelle importiert werden.


XML Struktur

Folgende XML Struktur wird benötigt:

<primedocsOrgSync> <OrganizationUnits> <OrganizationUnit> <!-- "Technical feature" - Must be unique and is our "identification feature" for the sync --> <Identifier></Identifier> <!-- Title of the OU --> <Title></Title> <!-- Fields that will be synced to primedocs --> <Fields> <!-- Id="Org.Street": refers to a field definition (FieldId) in primedocs Value="Sample Street 123": Is the actual value that is saved for this organizational unit for this field. --> <Field Id="Org.Street" Value="Sample Street 123" /> <!-- The exact LCID is required for multilingualism. Without it, it is saved in the default language Only specific LCIDs are permitted, i.e. "LCID 9" for "English" is not permitted, but must point exactly to "en-US" or "en-GB". See: https://docs.microsoft.com/en-us/openspecs/office_standards/ms-oe376/6c085406-a698-4e12-9d4d-c3b0ee3dbc4a --> <Field Id="Org.City" Value="München" /> <Field Id="Org.City" Value="Munich" LCID="2057" /> <!-- empty values are also supported --> <Field Id="Org.POBox" Value="" /> </Fields> <Permissions> <!-- primedocs needs the SID and the type (user or group) and stores this information in the database. To load this information, we do a "lookup" The syntax allows us to search for SID, sAMAccountName or UPN in the Active Directory, for example The value searched for must correspond to exactly one object in the directory. LookupKey must be set, otherwise the OrgSync will not find the target user. Valid fields are based on the Principal Connector: i.e. in the Action Directory: objectSid, sAMAccountName, but theoretically also other AD fields etc. in the Azure Active Directory: "id" - currently no other fields possible --> <SecurityAccount LookupValue="local\username" LookupKey="sAMAccountName" /> </Permissions> <OrganizationUnits> <!-- "Sub-OU", same schema --> <OrganizationUnit></OrganizationUnit> </OrganizationUnits> </OrganizationUnit> </OrganizationUnits> </primedocsOrgSync>

Berechtigungssynchronisation

Permissions, welche in dieser Datei angeben sind, werden mit der gefundenen Organisationseinheit in der primedocs Datenquelle überschrieben, d.h. im primedocsOrgSync müssen alle gewünschten Permissions vorhanden sein. Manuell gesetzte Berechtigungen werden überschrieben.


Feldsynchronisation

Fields hingegen werden mit den bestehenden Feldern in der Organisationseinheit zusammengeführt, d.h. nicht angegebene Felder werden nicht geleert, sondern so belassen.

Über den primedocsOrgSync können auch keine Felder gelöscht werden, sodass der Vererbungsmechanismus von primedocs greift. Dies muss manuell geschehen.


Synchronisationsverhalten

Alle Organisationseinheiten, die unterhalb des SyncRoot existieren, aber nicht im Import enthalten sind, werden gelöscht.

Profile, die an den gelöschten Organisationseinheiten hängen, werden auf die FallBackOu umgehängt.

Organisationseinheiten, die in der Datenbank ausserhalb des SyncRoot sind aber im Import als Kind des SyncRoot angegeben sind, werden entsprechend dem Import verschoben.


JobHost

Analog dem UserSync kann beim OrgSync eine DataSourceId angegeben werden - ist diese nicht angegeben, wird der OrgSync auf allen Datenbanken ausgeführt. Ohne angegebene DataSourceId ergibt sich der minimale Aufruf ...\primedocs.JobHost.exe OrgSync -i "P:\ath\To\InputFile.xml" mit dem Pfad zur XML-Datei als einzigen zwingenden Parameter.

Parameter

Für den OrgSync stehen die folgenden Aufrufparameter zur Verfügung:

Short

Long

Required

Default

Beschreibung

Short

Long

Required

Default

Beschreibung

-i

--InputFile

true

String.Empty

Pfad zur Importdatei

-d

--DataSourceId

false

null

GUID der Zieldatenbank auf dem Server. Wenn weggelassen wird der OrgSync auf allen konfgurierten Datenbanken ausgeführt.

-r

--SyncRoot

false

String.Empty

Root-OE für den Syncprozess. Der Inhalt aus dem InputFile (-i) wird in den OE-Baum unterhalb des SyncRoot synchronisiert. Ist der SyncRoot selbst teil des Imports, wird dieser ebenfalls Synchronisiert. Kann eine GUID (primedocs-Id der OE), oder der Identifier aus dem Import-File sein. Wenn kein SyncRoot angegeben ist, wird anhand des Import-Files versucht ein SyncRoot zu ermitteln: Top-Level OE des Import-Files wird anhand des Identifiers in der DB gesucht. Bei mehreren Top-Level OEs im Import-File wird in der DB nach einer OE gesucht, die mindestens eine der Top-Level OEs aus dem Importfile als Kind hat. Kann kein SyncRoot ermittelt werden, wird der Import Standardmässig als Kind(er) des bestehenden Root angelegt (bei mehreren bestehenden Root-OEs in der Datenbank wird die erste gefundene verwendet). Mit der Option -c kann gesetzt werden, dass der Import als neue Root OE(s) als Geschwister zum bestehenden Root angelegt wird.

-c

--CreateNewRootAsSibling

false

false

Wenn true, wird der Import als Geschwister zum bestehenden Root angelegt. Wenn false, wird der Import als Kind des bestehenden Root angelegt. Kommt nur zum Tragen, wenn der angegebene SyncRoot (-r) nicht exisitert, oder kein SyncRoot ermittelt werden kann.

-f

--FallBackOu

false

String.Empty

OE, an welche Profile von gelöschten OEs angehängt werden. Wenn diese nicht angegeben ist, wird die bestehende Root-OE verwendet. Bei mehreren bestehenden Root-OEs in der Datenbank wird die erste gefundene verwendet.


Einschränkungen

Der OrgSync hat das Ziel, eine vorgegebene Organisationsstruktur in primedocs zu importieren und synchron zu halten.

Ist bereits im primedocs eine Organisationsstruktur vorhanden, gibt es aktuell keine automatische Möglichkeit diese mit einem Fremdsystem zu synchronisieren.
Ebenfalls gibt es keine Oberfläche, um die Identifier für die Synchronisierung zu setzen oder zu ändern.

Bei Fragen wenden Sie sich an unseren Support - wir helfen Ihnen gern weiter.

 

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland