Tipp: Benutzerdaten in EmptyJob (VBScript, ADODB) von enaio laden

Es kommt vor, dass wir Informationen über einen oder mehrere Benutzer in einem enaio® benötigen. Da es hierfür nur den Weg über die ADODB direkt gibt, hier ein kleines Tutorial, wie Benutzerinformationen geladen und verarbeitet werden können.

Code, um die Anfrage zu definieren und das Ergebnis zu verwerten:

' Datenbankabfrage in MSSQL
Dim query: query = "SELECT * FROM benutzer WHERE flags=1 AND osemail <> ''"
' ADODB Anfrage stellen (siehe unten)
Dim result: Set result = AdoSelect(query)

'  Ergebnis durchlaufen
If Not result.BOF Then
	' Array-Zeiger auf Anfang stellen
	result.MoveFirst

	Do While Not result.EOF
		Set User = CreateObject("Scripting.Dictionary")

		' Datenbankspaltennamen (z.B. "name") verwenden
		' um auf die entsprechende Information zuzugreifen.
		User.Add "benutzername" , result.Fields.Item("name").Value

		' Array-Zeiger auf nächstes Element verschieben
		result.MoveNext
	Loop
End If

Vorsicht: Ist ein Datenbankfeld leer, hat es keinen Value und es kommt zu einem Fehler.


Exkurs: Funktion, um eine Anfrage an die ADO-Datenbank zu stellen:

Function AdoSelect(ByVal Command)
	Dim JobInputParameter: Set JobInputParameter = RC.NewJobsParams
	Dim JobOutputParameter: Set JobOutputParameter = RC.NewJobsParams
	
	With JobInputParameter
		.Value("Flags") = 1
		.Value("Command") = Command 
	End With

	RC.Jobs.ado.ExecuteSQL jobInputParameter, jobOutputParameter

	Dim RS: Set RS=CreateObject("ADODB.Recordset") 
	
	RS.Open(JobOutputParameter.Value("ResultSet"))
	
	Set AdoSelect = RS
End Function
1 Like