Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das BHOLD-Core-Modul kann Skriptbefehle verarbeiten. Dies kann mithilfe der bscript.dll in einem .NET-Projekt direkt erfolgen. Interagiert auch mit dem Webdienst b1scriptservice.asmx-Schnittstelle.
Bevor ein Skript ausgeführt wurde, sollten alle Informationen innerhalb des Skripts gesammelt werden, um dieses Skript zu verfassen. Diese Informationen können aus den folgenden Quellen gesammelt werden:
- Benutzereingabe
- BHOLD-Daten
- Anträge
- Andere
Die BHOLD-Daten können mithilfe der GetInfo-Funktion des Skriptobjekts abgerufen werden. Es gibt eine vollständige Liste der Befehle, die alle in der BHOLD-Datenbank gespeicherten Daten darstellen können. Die angezeigten Daten unterliegen jedoch den Ansichtsberechtigungen des angemeldeten Benutzers. Das Ergebnis ist in Form eines XML-Dokuments, das analysiert werden kann.
Eine weitere Informationsquelle kann eine der Anwendungen sein, die von BHOLD gesteuert werden. Das Anwendungs-Snap-In verfügt über eine spezielle Funktion, die FunctionDispatch, die verwendet werden kann, um anwendungsspezifische Informationen darzustellen. Dies wird auch als XML-Dokument dargestellt.
Wenn es keine andere Möglichkeit gibt, kann das Skript Befehle direkt für andere Anwendungen oder Systeme enthalten. NoThenstallation von zusätzlicher Software auf dem BHOLD-Server kann die Sicherheit des gesamten Systems untergraben.
Alle diese Informationen werden in ein XML-Dokument eingefügt und dem BHOLD-Skriptobjekt zugewiesen. Das Objekt kombiniert dieses Dokument mit einer vordefinierten Funktion. Die vordefinierte Funktion ist ein XSL-Dokument, das das Skripteingabedokument in ein BHOLD-Befehlsdokument übersetzt.
Die Befehle werden in der gleichen Reihenfolge ausgeführt wie im Dokument. Wenn eine Funktion fehlschlägt, werden alle ausgeführten Befehle zurückgesetzt.
Script-Objekt
In diesem Abschnitt wird die Verwendung des Skriptobjekts beschrieben.
Abrufen von BHOLD-Informationen
Die GetInfo--Funktion wird verwendet, um Informationen aus den verfügbaren Daten im BHOLD-Autorisierungssystem abzurufen. Die Funktion erfordert einen Funktionsnamen und schließlich einen oder mehrere Parameter. Wenn diese Funktion erfolgreich ist, wird ein BHOLD-Objekt oder eine Auflistung in Form eines XML-Dokuments zurückgegeben.
Wenn die Funktion nicht erfolgreich ist, gibt die GetInfo-Funktion eine leere Zeichenfolge oder einen Fehler zurück. Die Fehlerbeschreibung und -nummer können verwendet werden, um weitere Informationen zum Fehler zu erhalten.
Die GetInfo-Funktion 'FunctionDispatch' kann verwendet werden, um Informationen aus einer Anwendung abzurufen, die vom BHOLD-System gesteuert wird. Diese Funktion erfordert drei Parameter: Die ID der Anwendung, die Dispatch-Funktion, wie sie in der ASI definiert ist, und ein XML-Dokument mit unterstützenden Informationen für die ASI. Wenn die Funktion erfolgreich ist, ist das Ergebnis im XML-Format im Ergebnisobjekt verfügbar.
Der folgende Codeausschnitt ist ein einfaches C#-Beispiel für GetInfo:
ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");
Ebenso kann auf das BScript--Objekt auch über den Webdienst b1scriptservicezugegriffen werden. Dazu fügen Sie einen Webverweis zu Ihrem Projekt mithilfe von http://<Server>:5151/BHOLD/Core/b1scriptservice.asmx hinzu, wobei <Server> der Server ist, auf dem die BHOLD-Binärdateien installiert sind. Weitere Informationen finden Sie unter Hinzufügen eines Webdienstverweises zu einem Visual Studio-Projekt.
Das folgende Beispiel zeigt, wie Sie die GetInfo-funktion aus einem Webdienst verwenden. Dieser Code ruft die Organisationseinheit mit einer OrgID von 1 ab und zeigt dann den Namen dieser Organisationseinheit auf dem Bildschirm an.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace bhold_console
{
class Program
{
static void Main(string[] args)
{
var bholdService = new BHOLDCORE.B1ScriptService();
bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
string orgname= "";
if (args.Length == 3)
{
//Use explicit credentials from command line
bholdService.UseDefaultCredentials = false;
bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
bholdService.PreAuthenticate = true;
}
else
{
bholdService.UseDefaultCredentials = true;
bholdService.PreAuthenticate = true;
}
//Load BHOLD information into an xml document and loop through document to find the bholdDescription value
var myOrgUnit = new System.Xml.XmlDocument();
myOrgUnit.LoadXml(bholdService.GetInfo("OrgUnit","1","","");
XmlNodeList myList = myOrgUnit.SelectNodes(("//item");
foreach (XmlNode myNode in myList)
{
for (int i = 0; i < myNode.ChildNodes.Count; i++)
{
if (myNode.ChildNodes[i].InnerText.ToString() == "bholdDescription")
{
orgname = myNode.ChildNodes[i + 1].InnerText.ToString();
}
}
}
System.Console.WriteLine("The Organizational Unit Name is: " + orgname);
}
}
}
Im folgenden VBScript-Beispiel wird der Webdienst über SOAP und getInfo verwendet. Weitere Beispiele für SOAP 1.1, SOAP 1.2 und HTTP POST finden Sie im Abschnitt "BHOLD Managed Reference", oder Sie können direkt über einen Browser zum Webdienst navigieren und dort anzeigen.
Dim SOAPRequest
Dim SOAPParameters
Dim SOAPResponse
Dim xmlhttp
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "POST", "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx", False, "CORP\Administrator", "abc123*2k"
xmlhttp.setRequestHeader "Content-type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", "http://B1/B1ScriptService/GetInfo"
SOAPRequest = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsi=""http://" & vbCRLF
SOAPRequest = SOAPRequest & " www.w3.org/2001/XMLSchema-instance""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsd=""http://www.w3.org/2001/XMLSchema""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCRLF
SOAPRequest = SOAPRequest & " <soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " <GetInfo xmlns=""http://B1/B1ScriptService"">" & vbCRLF
SOAPRequest = SOAPRequest & " <functionName>OrgUnit</functionName>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter1>1</parameter1>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter2></parameter2>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter3></parameter3>" & vbCRLF
SOAPRequest = SOAPRequest & " </GetInfo>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Envelope>"
MsgBox SOAPRequest
xmlhttp.send SOAPRequest
SOAPResponse = xmlhttp.responseText
MsgBox SOAPResponse
Ausführen von Skripts
Die ExecuteScript--Funktion des BScript--Objekts kann zum Ausführen von Skripts verwendet werden. Für diese Funktion sind zwei Parameter erforderlich. Der erste Parameter ist das XML-Dokument, das die benutzerdefinierten Informationen enthält, die vom Skript verwendet werden sollen. Der zweite Parameter ist der Name des zu verwendenden vordefinierten Skripts. In the BHOLD predefined scripts directory, here should be an XSL document with the same name as the function, but with the .xsl extension.
Wenn die Funktion nicht erfolgreich ist, gibt die ExecuteScript-Funktion den Wert False zurück. Die Fehlerbeschreibung und -nummer können verwendet werden, um zu wissen, was schief gelaufen ist. Im Folgenden sehen Sie ein Beispiel für die Verwendung der ExecuteXML-Webmethode. Diese Methode ruft ExecuteScript auf.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
var bholdService = new BHOLDCORE.B1ScriptService();
bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
if (args.Length == 3)
{
//Use explicit credentials from command line
bholdService.UseDefaultCredentials = false;
bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
bholdService.PreAuthenticate = true;
}
else
{
bholdService.UseDefaultCredentials = true;
bholdService.PreAuthenticate = true;
}
System.Console.WriteLine( "Add user #3 to role #44, result: {0}", bholdService.ExecuteXml(roleAddUser("44", "3")) );
System.Console.WriteLine("Add user D1 to role 'MR-OU2 No Users', result: {0}", bholdService.ExecuteXml(roleAddUser("MR-OU2 No Users", "D1")));
}
private static System.Xml.XmlNode roleAddUser(string roleId, string userId)
{
var script = new System.Xml.XmlDocument();
script.LoadXml(string.Format("<functions>"
+" <function name='roleadduser' roleid='{0}' userid='{1}' />"
+"</functions>",
roleId,
userId)
);
return script.DocumentElement;
BholdScriptResult
Diese GetInfo-Funktion ist verfügbar, nachdem die executescript--Funktion ausgeführt wurde. Die Funktion gibt eine XML-formatierte Zeichenfolge zurück, die den vollständigen Ausführungsbericht enthält. Der Skriptknoten enthält die XML-Struktur des ausgeführten Skripts.
Für jede Funktion, die während der Ausführung des Skripts fehlschlägt, wird eine Node-Funktion mit dem Knotennamen hinzugefügt. ExecuteXML und Error werden am Ende des Dokuments alle generierten IDs hinzugefügt.
Beachten Sie, dass nur die Funktionen, die einen Fehler enthalten, hinzugefügt werden. Eine Fehlernummer von "0" bedeutet, dass die Funktion nicht ausgeführt wird.
<Bhold>
<Script>
<functions>
<function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
<function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
</functions>
</Script>
<Function>
<Name>OrgUnitadd</Name>
<ExecutedXML>
<function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
</ExecutedXML>
<Error Number="5" Description="Violation of UNIQUE KEY constraint 'IX_OrgUnits'. Cannot insert duplicate key in object 'dbo.OrgUnits'.
The statement has been terminated."/>
</Function>
<Function>
<Name>roleaddOrgUnit</Name>
<ExecutedXML>
<function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
</ExecutedXML>
<Error Number="0" Description=""/>
</Function>
<IDS>
<ID name="@ID@">35</ID>
</IDS>
</Bhold>
ID-Parameter
ID-Parameter erhalten eine spezielle Behandlung. Nicht numerische Werte werden als Suchwert zum Suchen der entsprechenden Entitäten im BHOLD-Datenspeicher verwendet. Wenn der Suchwert nicht eindeutig ist, wird die erste Entität zurückgegeben, die dem Suchwert entspricht.
Um numerische Suchwerte von IDs zu unterscheiden, ist es möglich, ein Präfix zu verwenden. Wenn die ersten sechs Zeichen des Suchwerts gleich "no_id:" sind, werden diese Zeichen entfernt, bevor der Wert für die Suche verwendet wird. SQL-Wildcardzeichen '%' können verwendet werden.
Die folgenden Felder werden mit dem Suchwert verwendet:
| ID-Typ | Suchfeld |
|---|---|
| OrgUnitID | BESCHREIBUNG |
| roleID | BESCHREIBUNG |
| taskID | BESCHREIBUNG |
| userID | DefaultAlias |
Skriptzugriff und -berechtigungen
Serverseitiger Code in den Active Server Pages wird verwendet, um die Skripts auszuführen. Daher bedeutet der Zugriff auf das Skript Zugriff auf diese Seiten. Das BHOLD-System verwaltet Informationen über die Einstiegspunkte der benutzerdefinierten Seiten. Zu diesen Informationen gehören Startseite und Funktionsbeschreibung (mehrere Sprachen sollten unterstützt werden).
Ein Benutzer ist berechtigt, die benutzerdefinierten Seiten einzugeben und ein Skript auszuführen. Jeder Einstiegspunkt wird als Aufgabe dargestellt. Jeder Benutzer, der diese Aufgabe über eine Rolle oder eine Einheit gewonnen hat, kann die entsprechende Funktion ausführen.
Eine neue Funktion im Menü stellt alle benutzerdefinierten Funktionen dar, die vom Benutzer ausgeführt werden können. Da ein Skript Aktionen im BHOLD-System unter einer Identität ausführen kann, die sich von dem angemeldeten Benutzer unterscheidet. Es ist möglich, eine bestimmte Aktion auszuführen, ohne eine Aufsicht über ein Objekt zu haben. Dies kann z. B. für einen Mitarbeiter nützlich sein, der nur neue Kunden in das Unternehmen aufnehmen darf. Diese Skripts können auch zum Erstellen von Selbstregisterseiten verwendet werden.
Befehlsskript
Das Befehlsskript enthält eine Liste von Funktionen, die vom BHOLD-System ausgeführt werden. Die Liste wird in einem XML-Dokument geschrieben, das den folgenden Definitionen entspricht:
| Befehlsskript | <functions>functions</functions> |
|---|---|
| functions | Funktion {function} |
| Funktion | <funktionsname="functionName" functionParameters [return] (/> | > parameterList </ function>) |
| functionName | Ein gültiger Funktionsname, wie in den folgenden Abschnitten beschrieben. |
| functionParameters | { functionParameter } |
| functionParameter | parameterName = "parameterValue" |
| parameterName | Ein gültiger Parametername. |
| parameterValue | @variable@ | Wert |
| Wert | Ein gültiger Parameterwert. |
| parameterList | <Parameter> {parameterItem} </parameters> |
| parameterItem | <Parametername="parameterName"> parameterValue </parameter> |
| return | return="@variable@" |
| -Variable | Ein benutzerdefinierter Variablenname. |
XML verfügt über die folgenden Übersetzungen von Sonderzeichen:
| XML | Charakter |
|---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Diese XML-Zeichen können in Bezeichnern verwendet werden, aber sie werden nicht empfohlen.
Der folgende Code zeigt ein Beispiel für ein gültiges Befehlsdokument mit drei Funktionen:
<functions>
<functionname="OrgUnitAdd" parentID="34" description="Acme Inc." orgtypeID="5" return="@UnitID@" />
<function name="UserAdd" description="John Doe" alias="jdoe" languageID="1" OrgUnitID="@UnitID@" />
<function name="TaskAddFile" taskID="93" path="/customers/purchase">
<parameters>
<parameter name="history"> True</parameter>
</parameters>
</function>
</functions>
Die Funktion OrgUnitAdd speichert die ID der erstellten Einheit in einer Variablen namens UnitID. Diese Variable wird als Eingabe für die UserAdd-Funktion verwendet. Der Rückgabewert dieser Funktion wird nicht verwendet. In den folgenden Abschnitten werden alle verfügbaren Funktionen, die erforderlichen Parameter und deren Rückgabewerte beschrieben.
Ausführen von Funktionen
In diesem Abschnitt wird die Verwendung der Ausführungsfunktionen beschrieben.
ABAAttributeRuleAdd
Erstellen Sie eine neue Attributregel für einen bestimmten Attributtyp. Attributregeln können nur mit einem Attributtyp verknüpft werden.
Die angegebene Attributregel kann mit allen möglichen Attributtypen verknüpft werden.
Der RuleType kann nicht mit dem Befehl "ABAattributeruletypeupdate" geändert werden. Erfordert, dass die Beschreibung des Attributs durch eindeutig ist.
| Argumente | Typ |
|---|---|
| BESCHREIBUNG | Text |
| RuleType | Geben Sie die Art der Attributregel an. Abhängig von der Art des Attributregeltyps müssen andere Argumente eingeschlossen werden. Die folgenden Regeltypwerte sind gültig:
|
| InvertResult | ["0"|"1"|"N"|"Y"] |
| AttributeTypeID | Text |
| Optionale Argumente | Typ |
|---|---|
| Operator | Text Hinweis: Dieses Argument ist obligatorisch, wenn RuleType- 1 oder 4 ist. Die möglichen Werte sind "=", "<" oder ">". XML-Tags müssen ">" für '>' und "<" für '<' verwenden. |
| RangeMin | Nummer Hinweis: Dieses Argument ist obligatorisch, wenn RuleType- 3 ist. |
| RangeMax | Nummer Hinweis: Dieses Argument ist obligatorisch, wenn RuleType- 3 ist. |
| Wert | Text Hinweis: Dieses Argument ist obligatorisch, wenn RuleType- 0, 1 oder 4 ist. Das Argument muss ein numerischer oder alphanumerischer Wert sein. |
| Rückgabetyp AttributRuleID | Text |
applicationadd
Erstellt eine neue Anwendung, gibt die ID der neuen Anwendung zurück.
| Argumente | Typ |
|---|---|
| Beschreibung | |
| Computer | |
| module | |
| parameter | |
| Protokoll | |
| username | |
| Passwort | |
| svroleID (optional) | Wenn dieses Argument nicht vorhanden ist, wird eine Aufsichtsrolle des aktuellen Benutzers verwendet. |
| Applicationaliasformula (optional) | Die Aliasformel wird verwendet, um einen Alias für einen Benutzer zu erstellen, wenn er einer Berechtigung der Anwendung zugewiesen ist. Der Alias wird erstellt, wenn der Benutzer noch keinen Alias für diese Anwendung hat. Wenn kein Wert den Standardalias des Benutzers erhält, wird er als Alias für die Anwendung verwendet. Die Formel ist als [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)]formatiert. Der Offset ist optional. Es können nur Benutzer- und Anwendungsattribute verwendet werden. Freitext könnte verwendet werden. Die reservierten Zeichen sind eckige eckige Klammern ([) und rechte eckige Klammer (]). Beispiel: [Application.bholdDescription]\[User.bholdDefAlias(1,5)]. |
| Rückgabetyp | ID der neuen Anwendung. |
AttributeSetValue
Legt den Wert eines Attributtyps fest, der mit dem Objekttyp verbunden ist. Erfordert, dass die Beschreibungen des Objekttyps und der Attributtyp eindeutig sind.
| Argumente | Typ |
|---|---|
| ObjectTypeID | Text |
| ObjectID | Text |
| AttributeTypeID | Text |
| Wert | Text |
| Rückgabetyp | Typ |
AttributeTypeAdd
Fügt einen neuen Attributtyp /Eigenschaftstyp ein.
| Argumente | Typ |
|---|---|
| DataTypeID | Text |
| Beschreibung (=Identität) | Text Hinweis: Reservierte Wörter können nicht verwendet werden, einschließlich "a", "frm", "id", "usr" und "bhold". |
| Maximale Länge | Zahl in [1,..,255] |
| ListOfValues (boolean) | ["0"|"1"|"N"|"Y"] |
| Standardwert | Text |
| Rückgabetyp | Typ |
| AttributeTypeID | Text |
AttributeTypeSetAdd
Fügt einen neuen Attributtypsatz ein. Erfordert, dass die Beschreibung eines Attributtypsatzes eindeutig ist.
| Argumente | Typ |
|---|---|
| Beschreibung (=Identität) | Text |
| Rückgabetyp | Typ |
| AttributeTypeSetID | Text |
AttributeTypeSetAddAttributeType
Fügt einen neuen Attributtyp in einen vorhandenen Attributtypsatz ein. Erfordert, dass die Beschreibungen des Attributtypsatzes und des Attributtyps eindeutig sind.
| Argumente | Typ |
|---|---|
| AttributeTypeSetID | Text |
| AttributeTypeID | Text |
| Bestellung | Nummer |
| LocationID | Text Hinweis: Der Speicherort ist entweder "gruppe" oder "single". |
| Obligatorisch | ["0"|"1"|"N"|"Y"] |
| Rückgabetyp | Typ |
ObjectTypeAddAttributeTypeSet
Fügt einem Objekttyp einen Attributtypsatz hinzu. Erfordert, dass die Beschreibung des Objekttyps und der Attributtypsatz eindeutig sind. Die Objekttypen sind: System, OrgUnit, User, Task.
| Argumente | Typ |
|---|---|
| ObjectTypeID | Text |
| AttributeTypeSetID | Text |
| Bestellung | Nummer |
| Sichtbar |
|
| Rückgabetyp | Typ |
OrgUnitadd
Erstellt eine neue Organisationseinheit, gibt die ID der neuen Organisationseinheit zurück.
| Argumente | Typ |
|---|---|
| Beschreibung | |
| orgtypeID | |
| parentID | |
| OrgUnitinheritedroles (optional) | |
| Rückgabetyp | Typ |
| ID der neuen Einheit | Der Parameter OrgUnitinheritedroles hat entweder den Wert "Ja" oder "Nein". |
OrgUnitaddsupervisor
Machen Sie einen Benutzer zu einem Vorgesetzten einer Organisationseinheit.
| Argumente | Typ |
|---|---|
| svroleID | Das Argument userID kann auch verwendet werden. In diesem Fall wird die Standardmäßige Aufsichtsrolle ausgewählt. Eine Standardaufseherrolle hat einen Namen wie __svrole gefolgt von einer Zahl. Die Argumentbenutzer-ID kann zur Abwärtskompatibilität verwendet werden. |
| OrgUnitID |
OrgUnitadduser
Machen Sie einen Benutzer zu einem Mitglied einer Organisationseinheit.
| Argumente | Typ |
|---|---|
| userID | |
| OrgUnitID |
OrgUnitdelete
Entfernt eine Organisationseinheit.
| Argumente | Typ |
|---|---|
| OrgUnitID |
OrgUnitdeleteuser
Entfernt einen Benutzer als Mitglied einer Organisationseinheit.
| Argumente | Typ |
|---|---|
| userID | |
| OrgUnitID |
roleadd
Erstellt eine neue Rolle.
| Argumente | Typ |
|---|---|
| BESCHREIBUNG | |
| svrole | |
| svroleID (optional) | Wenn dieses Argument nicht vorhanden ist, wird eine Aufsichtsrolle des aktuellen Benutzers verwendet. |
| ContextAdaptable (optional) | ["0","1","N","Y"] |
| MaxPermissions (optional) | Ganze Zahl |
| MaxRoles (optional) | Ganze Zahl |
| MaxUsers (optional) | Ganze Zahl |
| Rückgabetyp | Typ |
| ID der neuen Rolle |
roleaddOrgUnit
Weist einer Organisationseinheit eine Rolle zu.
| Argumente | Typ |
|---|---|
| OrgUnitID | roleID |
| inheritThisRole | "true" oder "false", gibt an, ob die Rolle für zugrunde liegende Einheiten vorgeschlagen wird. |
roleaddrole
Weist eine Rolle als Unterrole einer anderen Rolle zu.
| Argumente | Typ |
|---|---|
| roleID | |
| subRoleID |
roleaddsupervisor
Machen Sie einen Benutzer zu einem Vorgesetzten einer Rolle.
| Argumente | Typ |
|---|---|
| svroleID | Das Argument userID kann auch verwendet werden. In diesem Fall wird die Standardmäßige Aufsichtsrolle ausgewählt. Eine Standardaufseherrolle hat einen Namen wie __svrole gefolgt von einer Zahl. Die Argumentbenutzer-ID kann zur Abwärtskompatibilität verwendet werden. |
| roleID |
roleadduser
Weist einem Benutzer eine Rolle zu. Die Rolle kann keine kontextanpassungsfähige Rolle sein, wenn keine Kontext-ID angegeben wird.
| Argumente | Typ |
|---|---|
| userID | |
| roleID | |
| durationType (optional) | Kann die Werte "frei", "Stunden" und "Tage" enthalten. |
| durationLength (optional) | Erforderlich, wenn durationType "Stunden" oder "Tage" ist. sollte den ganzzahligen Wert für die Anzahl von Stunden oder Tagen enthalten, die der Rolle einem Benutzer zugewiesen ist. |
| Start (optional) | Datum und Uhrzeit der Zuweisung der Rolle. Wenn dieses Attribut nicht angegeben wird, wird die Rolle sofort zugewiesen. Das Datumsformat ist "JJJJ-MM-TTThh:nn:ss", wobei nur Jahr, Monat und Tag erforderlich sind. Beispielsweise sind "2004-12-11" und "2004-11-28T08:00" gültige Werte. |
| end (optional) | Datum und Uhrzeit, zu dem die Rolle widerrufen wird. Wenn durationType und durationLength angegeben werden, wird dieser Wert ignoriert. Das Datumsformat ist "JJJJ-MM-TTThh:nn:ss", wobei nur Jahr, Monat und Tag erforderlich sind. Beispielsweise sind "2004-12-11" und "2004-11-28T08:00" gültige Werte. |
| linkreason | Erforderlich, wenn Start, Ende oder Dauer angegeben wird, andernfalls ignoriert. |
| contextId (optional) | ID der Organisationseinheit, die nur für kontextanpassungsfähige Rollen erforderlich ist. |
roledelete
Löscht eine Rolle.
| Argumente | Typ |
|---|---|
| roleID |
roledeleteuser
Entfernt die Rollenzuweisung für einen Benutzer. Geerbte Rollen durch den Benutzer werden von diesem Befehl widerrufen.
| Argumente | Typ |
|---|---|
| userID | |
| roleID | |
| contextID (optional) |
roleproposeOrgUnit
Schlägt eine Rolle vor, die sie den Mitgliedern und den Unter-OrgUnits einer OrgUnit zuweist.
| Argumente | Typ |
|---|---|
| OrgUnitID | |
| roleID | |
| durationType (optional) | Kann Werte "frei", "Stunden" und "Tage" enthalten. |
| durationLength | Erforderlich, wenn durationType "Stunden" oder "Tage" ist, sollte den ganzzahligen Wert für die Anzahl von Stunden oder Tagen enthalten, die der Rolle einem Benutzer zugewiesen ist. |
| durationFixed | "true" oder "false", gibt an, ob die Zuweisung dieser Rolle zu einem Benutzer gleich "durationLength" sein soll. |
| inheritThisRole | "true" oder "false", gibt an, ob die Rolle für zugrunde liegende Einheiten vorgeschlagen wird. |
taskadd
Erstellt einen neuen Vorgang, gibt die ID des neuen Vorgangs zurück.
| Argumente | Typ |
|---|---|
| applicationID | |
| Beschreibung | Text mit maximal 254 Zeichen. |
| Taskname | Text mit maximal 254 Zeichen. |
| tokenGroupID | |
| svroleID (optional) | Wenn dieses Argument nicht vorhanden ist, wird eine Aufsichtsrolle des aktuellen Benutzers verwendet. |
| contextAdaptable (optional) | ["0","1","N","Y"] |
| unterstrukturiert (optional) | ["0","1","N","Y"] |
| auditaction (optional) |
|
| auditalertmail (optional) | Die E-Mail-Adresse, an die Benachrichtigungen über diese Berechtigung gesendet wurden, werden vom Auditor gesendet. Wenn dieses Argument nicht vorhanden ist, wird die E-Mail-Adresse der Warnung des Auditors verwendet. |
| MaxRoles (optional) | Ganze Zahl |
| MaxUsers (optional) | Ganze Zahl |
| Rückgabetyp | ID des neuen Vorgangs. |
taskadditask
Gibt an, dass zwei Vorgänge nicht kompatibel sind.
| Argumente | Typ |
|---|---|
| taskID | |
| taskID2 |
taskaddrole
Weist einer Rolle eine Aufgabe zu.
| Argumente | Typ |
|---|---|
| roleID | |
| taskID |
taskaddsupervisor
Machen Sie einen Benutzer zu einem Vorgesetzten einer Aufgabe.
| Argumente | Typ |
|---|---|
| svroleID | Das Argument userID kann auch verwendet werden. In diesem Fall wird die Standardmäßige Aufsichtsrolle ausgewählt. Eine Standardaufseherrolle hat einen Namen wie __svrole gefolgt von einer Zahl. Die Argumentbenutzer-ID kann zur Abwärtskompatibilität verwendet werden. |
| taskID |
useradd
Erstellt einen neuen Benutzer, gibt die ID des neuen Benutzers zurück.
| Argumente | Typ |
|---|---|
| Beschreibung | |
| alias | |
| languageID |
|
| OrgUnitID | |
| Enddatum (optional) | Das Datumsformat ist "JJJJ-MM-TTThh:nn:ss", wobei nur Jahr, Monat und Tag erforderlich sind. Beispielsweise sind "2004-12-11" und "2004-11-28T08:00" gültige Werte. |
| deaktiviert (optional) |
|
| MaxPermissions (optional) | Ganze Zahl |
| MaxRoles (optional) | Ganze Zahl |
| Rückgabetyp | ID des neuen Benutzers. |
UserAddRole
Fügt eine Benutzerrolle hinzu.
| Argumente | Typ |
|---|---|
UserDeleteRole
Löscht eine Benutzerrolle.
| Argumente | Typ |
|---|---|
UserUpdate
Aktualisiert einen Benutzer.
| Argumente | Typ |
|---|---|
| UserID | |
| Beschreibung (optional) | |
| Sprache |
|
| userDisabled (optional) |
|
| UserEndDate (optional) | Das Datumsformat ist "JJJJ-MM-TTThh:nn:ss", wobei nur Jahr, Monat und Tag erforderlich sind. Beispielsweise sind "2004-12-11" und "2004-11-28T08:00" gültige Werte. |
| firstName (optional) | |
| MiddleName (optional) | |
| Nachname (optional) | |
| maxPermissions (optional) | Ganze Zahl |
| maxRoles (optional) | Ganze Zahl |
GetInfo-Funktionen
Die in diesem Abschnitt beschriebenen Funktionen können verwendet werden, um Informationen abzurufen, die im BHOLD-System gespeichert sind. Jede Funktion kann mithilfe der GetInfo-Funktion aus dem BScript-Objekt aufgerufen werden. Für einige Objekte sind Parameter erforderlich. Die zurückgegebenen Daten unterliegen den Ansichtsberechtigungen und den überwachten Objekten des angemeldeten Benutzers.
GetInfo-Argumente
| Name | BESCHREIBUNG |
|---|---|
| Anwendungen | Gibt eine Liste von Anwendungen zurück. |
| Attributtypen | Gibt eine Liste von Attributtypen zurück. |
| Orgtypes | Gibt eine Liste der Organisationseinheitstypen zurück. |
| OrgUnits | Gibt eine Liste der Organisationseinheiten ohne die Attribute der Organisationseinheiten zurück. |
| OrgUnitproposedroles | Gibt eine Liste der vorgeschlagenen Rollen zurück, die mit der Organisationseinheit verknüpft sind. |
| OrgUnitroles | Gibt eine Liste der direkt verknüpften Rollen der angegebenen Organisationseinheit zurück. |
| Objecttypeattributetypes | |
| Erlaubnisse | |
| permissionusers | |
| Rollen | Gibt eine Liste der Rollen zurück. |
| roletasks | Gibt eine Liste der Aufgaben der angegebenen Rolle zurück. |
| Aufgaben | Gibt alle von BHOLD bekannten Vorgänge zurück. |
| users | Gibt eine Liste von Benutzern zurück. |
| usersroles | Gibt die Liste der verknüpften Supervisorrollen des angegebenen Benutzers zurück. |
| userpermissions | Gibt die Liste der Berechtigungen des angegebenen Benutzers zurück. |
OrgUnit-Informationen
| Name | Die Parameter | Rückgabetyp |
|---|---|---|
| OrgUnit | OrgUnitID | OrgUnit |
| OrgUnitasiattributes | OrgUnitID | Sammlung |
| OrgUnits | filter (optional), proptypeid (optional) Sucht nach Einheiten, die die in Filter- beschriebene Zeichenfolge in der in proptypeidbeschriebenen Eigenschaft enthalten. Wenn diese ID nicht angegeben wird, gilt der Filter für die Einheitenbeschreibung. Wenn kein Filter bereitgestellt wird, werden alle sichtbaren Einheiten zurückgegeben. |
Sammlung |
| OrgUnitOrgUnits | OrgUnitID | Sammlung |
| OrgUnitparents | OrgUnitID | Sammlung |
| OrgUnitpropertyvalues | OrgUnitID | Sammlung |
| OrgUnitproptypes | Sammlung | |
| OrgUnitusers | OrgUnitID | Sammlung |
| OrgUnitproposedroles | OrgUnitID | Sammlung |
| OrgUnitroles | OrgUnitID | Sammlung |
| OrgUnitinheritedroles | OrgUnitID | Sammlung |
| OrgUnitsupervisors | OrgUnitID | Sammlung |
| OrgUnitinheritedsupervisors | OrgUnitID | Sammlung |
| OrgUnitsupervisorroles | OrgUnitID | Sammlung |
Rolleninformationen
| Name | Die Parameter | Rückgabetyp |
|---|---|---|
| Rolle | roleID | Objekt |
| Rollen | Filter (optional) | Sammlung |
| roleasiattributes | roleID | Sammlung |
| roleOrgUnits | roleID | Sammlung |
| roleparentroles | roleID | Sammlung |
| rolesubroles | roleID | Sammlung |
| rolesupervisors | roleID | Sammlung |
| rolesupervisorroles | roleID | Sammlung |
| roletasks | roleID | Sammlung |
| roleusers | roleID | Sammlung |
| rolesupervisorroles | roleID | Sammlung |
| proposedroleOrgUnits | roleID | Sammlung |
| proposedroleusers | roleID | Sammlung |
Berechtigung – Vorgangsinformationen
| Name | Die Parameter | Rückgabetyp |
|---|---|---|
| Erlaubnis | TaskID | Erlaubnis |
| Erlaubnisse | Filter (optional) | Sammlung |
| permissionasiattributes | TaskID | Sammlung |
| permissionattachments | TaskID | Sammlung |
| permissionattributetypes | - | Sammlung |
| permissionparams | TaskID | Sammlung |
| permissionroles | TaskID | Sammlung |
| permissionsupervisors | TaskID | Sammlung |
| permissionsupervisorroles | TaskID | Sammlung |
| permissionusers | TaskID | Sammlung |
| task | TaskID | Aufgabe |
| Aufgaben | Filter (optional) | Sammlung |
| taskattachments | TaskID | Sammlung |
| taskparams | TaskID | Sammlung |
| taskroles | TaskID | Sammlung |
| tasksupervisors | TaskID | Sammlung |
| tasksupervisorroles | TaskID | Sammlung |
| taskusers | TaskID | Sammlung |
Benutzerinformationen
| Name | Die Parameter | Rückgabetyp |
|---|---|---|
| Benutzer | UserID | Benutzer |
| users | filter (optional), attributetypeid (optional) Sucht nach Benutzern, die in dem durch attributtyp angegebenen Attributtyp enthalten sind, die durch den Filter angegebene Zeichenfolge. Wenn diese ID nicht angegeben wird, gilt der Filter für den Standardalias des Benutzers. Wenn kein Filter bereitgestellt wird, werden alle sichtbaren Benutzer zurückgegeben. Beispiel:
|
UserCollection |
| benutzerapplications | UserID | Sammlung |
| Benutzerpermissionen | UserID | Sammlung |
| userroles | UserID | Sammlung |
| usersroles | UserID | Sammlung |
| userstasks | UserID | Sammlung |
| usersunits | UserID | Sammlung |
| usertasks | UserID | Sammlung |
| userunits | UserID | Sammlung |
Rückgabetypen
In diesem Abschnitt werden die Rückgabetypen der GetInfo-Funktion beschrieben.
| Name | Rückgabetyp |
|---|---|
| Sammlung | =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS> |
| Objekt | =<ITEM type="…" description="..." /> |
| OrgUnit | = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
| Erlaubnis | = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
| Rollen | = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS> |
| Rolle | = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
| Aufgabe | Berechtigung anzeigen |
| Benutzer | = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS> |
| Benutzer | = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Skriptbeispiel
Ein Unternehmen verfügt über einen BHOLD-Server und möchte ein automatisiertes Skript, das neue Kunden erstellt. Die Informationen über das Unternehmen und dessen Einkaufsmanager geben auf einer angepassten Webseite ein. Jeder Kunde wird im Modell als Einheit unter den Einheitenkunden präsentiert. Der Einkaufsmanager ist ebenso Mitglied wie ein Vorgesetzter dieser Einheit. Eine Rolle wird erstellt, die den Besitzern das Recht gibt, im Namen des neuen Kunden zu kaufen.
Dieser Kunde ist jedoch in der Anwendung nicht vorhanden. In der ASI FunctionDispatch wird eine spezielle Funktion implementiert, die ein neues Kundenkonto in der Einkaufsanwendung erstellt. Jeder Kunde hat einen Kundentyp.
Die möglichen Typen können auch von der FunctionDispatch-Funktion dargestellt werden. Die AA wählt den richtigen Typ für den neuen Kunden aus.
Erstellen Sie eine Rolle und Aufgabe, um die Kaufberechtigungen darzustellen. Das echte Kaufrecht wird von der ASI als Datei /customers/customer id/purchasepräsentiert. Diese Datei sollte mit der neuen Aufgabe verknüpft werden.
Die Active Server-Seite, die die Informationen sammelt, sieht wie folgt aus:
<%@ Language=VBScript %>
<% Option Explicit %>
<html>
<body>
<form action="MySubmit.asp" method=post>
<input type="hidden" name="OrgUnitID"
value="<% = Request("ID") %>">
Company <input type="text" name="Description"> <br>
Type <select name="OrgType">
<%Dim oOrgType
For Each oOrgType on bscript.getinfo("Orgtypes") %>
<option value="<% = oOrgType.OrgTypeID %>">
<% = oOrgType.Description %>
</option> <%
Next %>
</select> <br>
Manager <input type="text" name=" manager"> <br>
Alias <input type=" text" name=" alias"> <br>
e-mail <input type=" text" name=" email"> <br>
<input type="submit">
</form>
</body>
</html>
Alle angepassten Seiten müssten die richtigen Informationen anfordern und ein XML-Dokument mit den angeforderten Informationen erstellen. In diesem Beispiel transformiert die Seite "MySubmit" die Daten im XML-Dokument, weisen Sie sie dem b1script zu. Parameter Objekt und ruft schließlich die b1script.ExecuteScript("MyScript")-Funktion auf.
Das folgende Eingabeskript zeigt dieses Beispiel:
<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>
Dieses Eingabeskript enthält keine Befehle für BHOLD. Dies liegt daran, dass dieses Skript nicht direkt von BHOLD ausgeführt wird; anstelle dessen ist dies die Eingabe für eine vordefinierte Funktion. Diese vordefinierte Funktion übersetzt dieses Objekt in ein XML-Dokument mit BHOLD-Befehlen. Mit diesem Mechanismus wird verhindert, dass der Benutzer Skripts an das BHOLD-System sendet, das Funktionen enthält, die der Benutzer nicht ausführen darf, z. B. setUser und Funktionsverteilungen an eine ASI.
<?xml version="1.0" encoding="utf-8" ?>
- <functions xmlns="http://tempuri.org/BscriptFunctions.xsd">
<function name="roleadduser" roleid="" userid="" />
<function name="roledeleteuser" roleid="" userid="" />
</functions>