UUX | Self Service Portal Empfänger
UUX | Self Service Portal Empfänger
Hallo zusammen,
gerade Frage ich mich, ob es eine Möglichkeit gibt, die auswählbaren Empfänger im Self-Service-Portal zu filtern, so wie es ja auch bei anderen Objektwählern, über den Filterausdruck, der Fall ist...
Use case wäre z.B., dass ein angemeldeter Benutzer nur Empfänger auswählen kann, bei denen dieser als Vorgesetzter eingetragen ist und natürlich für sich selbst.
Danke & Viele Grüße,
Jonas Kaiser
gerade Frage ich mich, ob es eine Möglichkeit gibt, die auswählbaren Empfänger im Self-Service-Portal zu filtern, so wie es ja auch bei anderen Objektwählern, über den Filterausdruck, der Fall ist...
Use case wäre z.B., dass ein angemeldeter Benutzer nur Empfänger auswählen kann, bei denen dieser als Vorgesetzter eingetragen ist und natürlich für sich selbst.
Danke & Viele Grüße,
Jonas Kaiser
Re: UUX | Self Service Portal Empfänger
Hallo,
im Standard geht das leider nicht, da es sich beim Empfänger-Feld um ein CustomControl (mx-shopping-context) handelt, welches kein Parameter für einen Filter annimmt. Es kann lediglich der Status in den Einstellungen gefiltert werden:
Die einzige Alternative wäre aktuell ein eigenes Control zu implementieren, welches die Filterung ermöglicht.
im Standard geht das leider nicht, da es sich beim Empfänger-Feld um ein CustomControl (mx-shopping-context) handelt, welches kein Parameter für einen Filter annimmt. Es kann lediglich der Status in den Einstellungen gefiltert werden:
Die einzige Alternative wäre aktuell ein eigenes Control zu implementieren, welches die Filterung ermöglicht.
- Attachments
-
- SCSettings.png
- (51.6 KiB) Downloaded 866 times
neo42 GmbH
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Re: UUX | Self Service Portal Empfänger
Über Umwege ist auch diese Anforderung umsetzbar. Ich habe es in unserem Testsystem implementiert und getestet.
Zunächst erstellt man einen neuen Object-Picker über dem Dialog mit dem statischen Ziel SPSUserClassBase. Für den Filter (String) und die Value (Guid) legt man jeweils neue Context-Properties an. Diese verknüpft man mit den entsprechenden Feldern im Object-Picker.
Nun kommt die Magie:
Value > Advanced Properties:
Related DataModel: userId > DataQuery.userId (Watchable: true)
Expression:
Erläuterung: Wenn der Wert vom ObjectPicker geändert wird, ruft dieser den WebService CatalogService\Context auf und setzt die RecipientID auf die Auswahl vom Picker. Anschließend wird die aktuelle Seite neue geladen (location.Reload), da ich nicht weiß wie ich sonst das eigentliche CustomControl aktualisieren kann - es ist nicht besonderd schön aber funktioniert
Filter > Advanced Properties:
Nun muss das ursprüngliche Auswahl-Feld noch versteckt werden. Leider darf das Custom Control nicht auf Visible: False setzt werden, weil sonst verfügbaren Services nicht richtig geladen werden. Als Workaround kann der Parent-Container mit dem Style: Display: None ausgeblendet werden.
Schlussendlich wirkt die Seite wie vorher, jedoch können nur noch der eigene User bzw. untergebene Mitarbeiter ausgewählt werden.
Gruß, Thomas
Zunächst erstellt man einen neuen Object-Picker über dem Dialog mit dem statischen Ziel SPSUserClassBase. Für den Filter (String) und die Value (Guid) legt man jeweils neue Context-Properties an. Diese verknüpft man mit den entsprechenden Feldern im Object-Picker.
Nun kommt die Magie:
Value > Advanced Properties:
Related DataModel: userId > DataQuery.userId (Watchable: true)
Expression:
Code: Select all
if (userId.$hasChanges && $value === undefined) {
$value = userId.$value;
}
if ($oldValue !== undefined && $value !== null && $value != $oldValue) {
if (localStorage.getItem('mx.auth.session.token')) {
var userInfo = JSON.parse(localStorage.getItem("mx.shell.userInfoCache"));
var token = localStorage.getItem("mx.auth.session.token");
var server = window.location.hostname;
if (userInfo && token){
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://" + server + "/m42Services/api/CatalogServices/Context?recipientId=" + $value + "&catalogId=00000000-0000-0000-0000-000000000000", true);
xhr.setRequestHeader("Authorization", "Bearer " + token);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onload = function (e) {
if (xhr.readyState === 4) {
var result;
if (xhr.status === 200) {
result = JSON.parse(xhr.responseText);
console.log("Success");
location.reload();
}
}
};
xhr.onerror = function (e) {
var result = xhr.status + ': ' + xhr.statusText + '. ' + xhr.responseText;
console.log(result);
};
xhr.send();
}
}
}
return $value;
Filter > Advanced Properties:
Code: Select all
return "ID IN SUBQUERY(SPSUserClassBase as ucb, ucb.ID, ucb.ID = CURRENTUSERID() OR ucb.Manager = CURRENTUSERID())";
Schlussendlich wirkt die Seite wie vorher, jedoch können nur noch der eigene User bzw. untergebene Mitarbeiter ausgewählt werden.
Gruß, Thomas
Re: UUX | Self Service Portal Empfänger
Bevor man diese Art von Customizings ansetzt, lohnt sich ein Blick in Settings der Service Catalog App. Dort kann man sowohl für die Benutzerauswahl als auch für die Auswahl der technischen Ziele ein ASQL Statement setzen, um die Auswahl zu filtern.
Re: UUX | Self Service Portal Empfänger
Danke an alle die geantwortet haben!
Herr Boenick: Das ist genau das was ich gesucht habe. Vielen Dank für den Hinweis!
Herr Boenick: Das ist genau das was ich gesucht habe. Vielen Dank für den Hinweis!
Re: UUX | Self Service Portal Empfänger
Hallo Zusammen,
wie müsste das ASQl lauten damit man in der suche nur sich selbst oder der Vorgsetzte seine Teamzugehörigen wählen kann?
Ist sowas umsetzbar?
wie müsste das ASQl lauten damit man in der suche nur sich selbst oder der Vorgsetzte seine Teamzugehörigen wählen kann?
Ist sowas umsetzbar?
Re: UUX | Self Service Portal Empfänger
Hallo zusammen,
die Antwort auf diese Frage würde mich auch sehr interessieren. Hat das schon jemand per entsprechendem ASQL-Statement gelöst?
Vielen Dank!
Gruß
Alex
Re: UUX | Self Service Portal Empfänger
Falls jemand eine Lösung sucht
Manager = CurrentUserID() OR ProxyPerson = CurrentUserID() OR ID = CurrentUserID()
Somit werden in der gefilterten Liste nur diejenigen angezeigt, die diesem Ausdruck genügen.
Teil 1: Manager = CurrentUserID()
Hier tauchen nur die Personen auf, deren Manager der eingeloggte User ist.
Teil 2: ProxyPerson = CurrentUserID()
Hier wird auch dem Vertreter des Managers ermöglicht, für ihn die Bestellung durchzuführen. Wenn das nicht gewollt ist, kann dieser Ausdruck auch entfernt werden. Das war nur eine optionale Bedingung.
Teil 3: ID = CurrentUserID()
Der eingeloggte User darf für sich selber bestellen.
Viel Spaß bei der Umsetzung.
G ROBudus
Manager = CurrentUserID() OR ProxyPerson = CurrentUserID() OR ID = CurrentUserID()
Somit werden in der gefilterten Liste nur diejenigen angezeigt, die diesem Ausdruck genügen.
Teil 1: Manager = CurrentUserID()
Hier tauchen nur die Personen auf, deren Manager der eingeloggte User ist.
Teil 2: ProxyPerson = CurrentUserID()
Hier wird auch dem Vertreter des Managers ermöglicht, für ihn die Bestellung durchzuführen. Wenn das nicht gewollt ist, kann dieser Ausdruck auch entfernt werden. Das war nur eine optionale Bedingung.
Teil 3: ID = CurrentUserID()
Der eingeloggte User darf für sich selber bestellen.
Viel Spaß bei der Umsetzung.
G ROBudus
Re: UUX | Self Service Portal Empfänger
Wird in den Global System Settings im Service Bereich eingetragen. Im Filterausdruck.
Who is online
Users browsing this forum: No registered users and 1 guest