Beschreibung der Prozeduren für Importe in die Processes-Datenbank

Wie Sie die neuen Prozeduren zum Erstellen von Benutzern und Assoziationen in der Processes-Datenbank einsetzen, erfahren Sie im folgenden Abschnitt.

Action_Context - Aktionskontext erstellen

Der Aktionskontext muss in jedem Importskript mit der Prozedur hlapi_createapicontext erstellt werden. Dazu müssen Sie den folgenden Code in Ihr Importskript an die erste Stelle direkt unter die Kopfzeile kopieren.

Auf diese Weise fügen Sie einen Wert in die Variable @ActionContext ein, der von allen anderen nachfolgende beschriebenen Prozeduren verwendet wird.

Verwenden Sie die Prozedur wie folgt:

-- Generate API Context
DECLARE @ActionContext    BIGINT
DECLARE @APIContextID     NVARCHAR(100) = 'ActiveDirectory_BPF_Import'
EXEC hlapi_createapicontext @APIContextID, @ActionContext OUTPUT
 
-- Generate necessary variables for API
DECLARE @DefTypePerson     INT = 3
        , @DefTypeOrgUnit    INT = 4
        , @DefTypeProduct    INT = 5

Den Inhalt der Variable @APIContextID können sie entsprechend dem Namen des Imports anpassen.

Objekte Assoziieren

Die Prozedur hlapi_userimport_associateobject wird dazu verwendet, eine Assoziation zwischen zwei Objekten herzustellen.

Verwenden Sie die Prozedur wie folgt:

EXEC hlapi_userimport_associateobject @apicontextid, @AssociationDefID
, @ObjectTypeA, @ObjectIDA, @ObjectDefIDA
, @ObjectTypeB, @ObjectIDB, @ObjectDefIDB
, @removeolda, @removeoldb @removeoldignoredfid

Verwenden Sie die folgenden Parameter:

@apicontextid
Benötigt den Rückgabewert aus der Prozedur hlapi_createapicontext.
@AssociationDefID
DefId der Assoziation, die erstellt werden soll.
@ObjectTypeA
Gibt den Typ des Objekts an, das in Rolle A der zu erstellenden Assoziation verwendet werden soll.
Der Parameter erwartet einen der 3 Werte:
  • 3: Person
  • 4: Organisationseinheit
  • 5: Produkt
@ObjectIDA
Gibt die ID der Objektinstanz an, die in der neuen Assoziation in Rolle A verwendet werden soll.
@ObjectdefIDA
Gibt die DefinitionsID des Objekts an, das in der neuen Assoziation in Rolle A verwendet werden soll.
@ObjectTypeB
Gibt den Typ des Objekts an, das in Rolle A der zu erstellenden Assoziation verwendet werden soll.
Der Parameter erwartet einen der 3 Werte:
  • 3: Person
  • 4: Organisationseinheit
  • 5: Produkt
@ObjectIDB
Gibt die ID der Objektinstanz an, die in der neuen Assoziation in Rolle B verwendet werden soll.
@ObjectdefIDB
Gibt die DefinitionsID des Objekts an, das in der neuen Assoziation in Rolle B verwendet werden soll.
@removeolda
Steuert ob beim Erstellen der Assoziation eine bereits bestehende Assoziation zu einem anderen untergeordneten Objekt der gleichen Definition gelöscht werden soll. Folgende Werte sind zulässig:
  • 0: Es wird keine andere Assoziation zwischen dem Objekt B und anderen Objekten A gelöscht
  • 1: Es werden andere Assoziationen zwischen dem Objekt #b und anderen Objekten A gelöscht, wenn sie von der gleichen Assoziationsdefinition sind.
@removeoldb
Steuert ob beim Erstellen der Assoziation eine bereits bestehende Assoziation zu einem anderen untergeordneten Objekt der gleichen Definition gelöscht werden soll. Folgende Werte sind zulässig:
  • 0: Es wird keine andere Assoziation zwischen dem Objekt A und anderen Objekten B gelöscht
  • 1: Es werden andere Assoziationen zwischen dem Objekt A und anderen Objekten B gelöscht, wenn sie von der gleichen Assoziationsdefinition sind.
@removeoldignoredefid
Steuert ob beim Löschen mit den beiden vorherigen Parametern die DefID des anderen Objekts ignoriert wird. Folgende Werte sind zulässig:
  • 0: Es werden nur Assoziationen gelöscht, bei denen die DefIDs der Objekte in A oder B exakt den übergebenen Werten aus den Parametern @objectdefida bzw. @objectdefidb entsprechen.
  • 1: Wenn @removeolda = 1 ist werden alle Assoziationen des gleichen Typs zwischen dem Objekt B und anderen Objekten A gelöscht. Die DefID der Objekte in A wird ignoriert
  • oder
  • Wenn @removeoldb = 1 ist werden alle Assoziationen des gleichen Typs zwischen dem Objekt A und anderen Objekten B gelöscht. Die DefID der Objekte in B wird ignoriert
  • Beispiel:
Ein Kontakt (B) wird mit der Assoziation „Contact2Organization“ mit einer Abteilung (A) Assoziiert. Durch das Verwenden von @removeolda = 1 und @removeoldignoredefid = 0 werden ausschließlich andere Assoziationen vom Typ „Contact2Organization“ zwischen diesem Kontakt und anderen Abteilungen entfernt. Durch das Verwenden von @removeolda = 1 und @removeoldignoredefid = 1 werden Assoziationen vom Typ „Contact2Organization“ zwischen diesem Kontakt und anderen Abteilungen sowie Firmen entfernt.

Löschen einer Assoziation zwischen zwei Objekten

Die Prozedur hlapi_userimport_deassociateobject wird zum Löschen einer Assoziation zwischen zwei bestimmten Objekten verwendet.

Verwenden Sie die Prozedur wie folgt.
Anmerkung: Diese Prozedur wird mit Patch Patch HL71009-SRV-P ausgeliefert. Sie ist nicht enthalten in der GA-Version.
EXEC hlapi_userimport_deassociateobject @ActionContext
    , @AssociationDefID
    , @ObjectIDA, @ObjectDefIDA
    , @ObjectIDB, @ObjectDefIDB
Verwenden Sie die folgenden Parameter:
@ActionContext:
Gibt den Wert aus der Prozedur Aktionskontext zurück.
@AssociationDefID
DefinitionsID der Assoziation die gelöscht werden soll.
@ObjectIDA
ObjectID des Objekts in Rolle A.
@ObjectDefIDA
ObjectDefID des Objekts in Rolle A.
@ObjectIDB
ObjectID des Objekts in Rolle B.
@ObjectDefIDB
ObjectDefID des Objekts in Rolle B.

Benutzerobjekt erzeugen und mit einem Kontakt verbinden

Mit der Prozedur hlapi_userimport_elevatepersontouser wird ein Benutzerobjekt erzeugt, das mit einem Kontakt verbunden ist. Diese Prozedur wird zum Import von Benutzern für den Portal-Zugriff verwendet.
Anmerkung: Diese Prozedur erzeugt einen Benutzer in Serviceware Processes aber keinen Benutzer im Serviceware Authenticator.

Verwenden Sie die Prozedur wie folgt:

-- create user out of contact information in Processes
EXEC hlapi_userimport_elevatepersontouser @ActionContext
, @PersonID
, @PersonDefID
, @UserID OUTPUT
Verwenden Sie die folgenden Parameter:
@ActionContext:
Benötigt den Rückgabewert aus der Prozedur hlapi_createapicontext.
@PersonID
PersonenID der Person, die mit einem Benutzer verlinkt wird.
@PersonDefID
DefinitionsID des Personenobjekts.
@UserID:
Rückgabeparameter
Dieser Wert wird in den folgenden Prozeduren verwendet.

SSO-Konto für einen Benutzer anlegen

Die Prozedur hlapi_userimport_iodcaccointforuser erzeugt ein SSO-Konto für einen definierten Benutzer in Serviceware Processes.

Diese Prozedur wird zum Import von Benutzern für den Portal-Zugriff verwendet.

Verwenden Sie die Prozedur wie folgt.

-- create login for user
EXEC hlapi_userimport_oidcaccountforuser @ActionContext
    , @UserID
    , @UserAccountNT

Verwenden Sie das Skript mit den folgenden Parametern:

@ActionContext
Gibt den Wert aus der Prozedur Action_Context zurück.
@UserID
Rückgabewert aus Prozedur hlapi_userimport_iodcaccountforuser.
@UserAccountNT
Kontoname als String.

Benutzer Portal-Zugriff geben

Die Prozedur hlapi_userimport_assignusertoportalgroups fügt einen Benutzer zu einer benannten Portal-Gruppe hinzu. Die Prozedur wird zum Import von Benutzern für den Portal-Zugriff verwendet.

Verwenden Sie die Prozedur wie folgt:
-- associate all groups needed for portal
EXEC hlapi_userimport_assignusertoportalgroups @ActionContext
    , @UserID
    , @PortalName

Verwenden Sie das Skript mit den folgenden Parametern:

@ActionContext

Benötigt den Rückgabewert aus der Prozedur hlapi_createapicontext.

@UserID
Rückgabewert aus Prozedur hlapi_userimport_iodcaccountforuser.
@PortalName
Portalname als String.

Fehlermeldungen

Im Fall von Fehlern können die folgenden Meldungen ausgegeben werden:

Nummer Beschreibung
15600 Einer der Parameter ist Null.
400001 Die Person ist bereits mit einem Benutzer assoziiert.
400003 Die Erweiterungsgruppe existiert nicht.
400113 Der Benutzer existiert für die Person bereits.
400710 Ein Benutzer mit der angegebenen ID existiert nicht.
401000 Ein Benutzer mit der spezifizierten ID existiert nicht.
402110 Der Parameter @accountname ist leer oder länger als 255 Zeichen.
402120 Der Serviceware Authenticator-Benutzer ist bereits mit einem anderen Processes-Benutzer verbunden.