Robin Karlsson, Technical Lead bei Teleopti, widmet sich im zweiten Teil seiner Serie ‚Wie Sie die API von Calabrio WFM am besten nutzen‘ wieder einmal technischen Fragen und konzentriert sich dabei auf Agenteninformationen.
Im ersten Blog dieser Serie haben wir Ihnen gezeigt, wie Sie die erste Verbindung mit der API herstellen und einige grundlegende Agenteninformationen extrahieren können. In diesem zweiten Blog stellen wir Ihnen das Konzept der Aktualisierung von Agenteninformationen in Calabrio WFM vor.
Um eine Aktualisierung durchzuführen, verwenden Sie meist InternalService.ExecuteCommand() und senden das entsprechende Befehlsobjekt. Die verfügbaren Befehle sind in der von Teleopti bereitgestellten CHM-Referenzdatei in einem eigenen Namensraum gruppiert. Jeder Befehl erfordert einen anderen Satz von Eingabeparametern, die auf dem Objekt selbst definiert sind.
Einige der älteren Änderungsbefehle sind immer noch als separate Funktionen direkt auf jedem Dienst verfügbar.
Sie benötigen die Berechtigung, das Personentool für den ausgewählten Agenten zu öffnen, wenn Sie die Details dieses Agenten aktualisieren möchten. Andernfalls erhalten Sie die Ausnahme ‚Genehmigung verweigert‘. Die Berechtigungen werden im Modul Berechtigungen im regulären Calabrio WFM-Client geändert und erteilt.
Um die E-Mail-Adresse eines Agenten zu aktualisieren, müssen wir zunächst die Details eingeben und dann die Aktualisierung vornehmen. Mit einer einfachen Abfrage können Sie den Agenten in das System eingeben und dabei die ID verwenden, die wir zuvor bei der Eingabe des gesamten Teams erhalten haben. Anschließend ändern Sie die E-Mail-Adresse und senden das Profil des Agenten zurück an die API.
var organisationService = new OrganisationService();var agent = organisationService.GetPersonsByQuery(new GetPersonByIdQuery { PersonId = „{892B0DB4-415B-45D8-A61A-3E4DB401AB20}“ }).First();agent.Email = „[email protected]“;organisationService.UpdatePerson(agent);
Wie Sie sehen können, gibt organisationService.GetPersonsByQuery() eine Liste von Personen zurück. Wenn wir jedoch die Abfrage GetPersonByIdQuery verwenden, wird sie entweder 1 oder 0 Agenten zurückgeben, da die PersonId eindeutig ist. Im obigen Beispielcode gehen wir davon aus, dass wir einen Agenten zurückbekommen, aber Sie können natürlich eine Prüfung hinzufügen, um festzustellen, ob wir einen Agenten in der Antwort erhalten haben.
Ein weiteres Beispiel ist die Festlegung von Werten in den anpassbaren, optionalen Spalten in Personen. Sie müssen mehr Dinge einstellen und die neuere InternalService.ExecuteCommand() verwenden, um die Werte zu ändern. Bitte beachten Sie, dass die Spalte vorhanden sein muss, bevor Sie den Wert anwenden können. Wenn die Spalte oder Person nicht existiert, erhalten Sie eine Ausnahme von der API zurück.
var internalService = new InternalService();var result = internalService.ExecuteCommand(new SetPersonOptionalValuesForPersonCommandDto {PersonId = „{892B0DB4-415B-45D8-A61A-3E4DB401AB20}“,OptionalValueCollection = new {new OptionalValueDto {Key = „ShoeSize“,Value = „42“} >;if (result.AffectedItems == 1){//Die Aktualisierung des Wertes der optionalen Spalte war erfolgreich}
Die meisten Details in People können auf ähnliche Weise geändert werden. Es stehen auch erweiterte Befehle zur Verfügung, z.B. „Zeitpläne ändern“ und „Änderungen der Beschäftigungsbedingungen berücksichtigen“.
Wie für jeden Teil dieser Serie finden Sie den Beispielcode im offiziellen GitHub-Repository von Teleopti unter https://github.com/Teleopti/sdk-sample.