API für einheitliche WSD-Suche
Die Einheitliche WSD-Suche Die API stellt einen Endpunkt zur Suche über Arbeitsplatzanwender und Standorte hinweg bereit.
Die Einheitliche WSD-Suche API wird im Namespace sn_wsd_Core ausgeführt und steuert die Such-/Typeahead-Experience in Workplace Service Delivery(WSD)-Portal, das übereinstimmende Anwender, Flächen, Stockwerke, Gebäude zurückgibt Campus und Arbeitsbereiche in einer einzigen Antwort.
Anforderungen
- Der aufrufende Anwender hat die sn_wsd_core.workplace_user-Rolle.
- Die Workplace Service Delivery Plugin „Core“ (com.sn_wsd_Core) ist aktiv.
- In der Arbeitsplatzstandorthierarchie müssen mindestens ein Gebäude und ein Stockwerk konfiguriert werden.
Einheitliche WSD-Suche – POST /api/sn_wsd_Core/wsd_Unified_search/users_and_locations
Sucht nach Anwendern und Arbeitsplatzstandorten (ohne Berücksichtigung der Groß-/Kleinschreibung), die dem angegebenen Suchbegriff entsprechen. Gibt eine kombinierte Liste übereinstimmender Ergebnisse mit Paginierungsunterstützung zurück.
URL-Format
Versionierte URL: /api/sn_wsd_Core/{api_Version}/wsd_Unified_search/users_and_locations
Standard-URL: /api/sn_wsd_Core/wsd_Unified_search/users_and_locations
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. Beispiel: v1 Oder v2 . Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden. Datentyp: Zeichenfolge |
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| search_term | Suchabfrage, die verwendet wird, um übereinstimmende Anwender und Arbeitsplatzstandorte zu finden. Akzeptiert eine kommagetrennte Werteliste, um gleichzeitig nach mehreren Begriffen zu suchen. Beispiel: „Konferenz, Schreibtisch“ Gibt Ergebnisse zurück, die einer der beiden Begriffe entsprechen. Leere Segmente werden ignoriert. Datentyp: Zeichenfolge Standardwert: Leere Zeichenfolge (gibt alle Ergebnisse zurück) |
| Show_location | Kennzeichnung, die angibt, ob der aktuelle Standort des Anwenders in die Ergebnisbezeichnung aufgenommen werden soll. Mögliche Werte:
Datentyp: Boolesch Standardwert: wahr |
| Show_loggedin_user | Kennzeichnung, die angibt, ob der authentifizierte Anwender als erstes Ergebnis angezeigt werden soll, wenn kein Suchbegriff angegeben ist. Gilt nur für Desktop-Clients bei Offset 0. Mögliche Werte:
Datentyp: Boolesch Standardwert: wahr |
| Include_user_email | Kennzeichnung, die angibt, ob Anwender-E-Mail-Adressen in Ergebnisbezeichnungen eingeschlossen und die Suche nach E-Mail-Adressen zugelassen werden sollen. Mögliche Werte:
Datentyp: Boolesch Standardwert: false |
| filterConfig | Tabellenspezifische codierte Abfragen. Schlüssel sind Tabellennamen. Werte sind codierte Abfragezeichenfolgen. Gültige Felder (Tabellennamen):
Datentyp: Objekt Standard: {} (kein Filter angewendet, durchsucht alle Tabellen) |
| FilterConfig.<table_name> | Kennzeichnung, die angibt, ob Ergebnisse aus der angegebenen Tabelle einbezogen werden sollen. Legen Sie diese Option auf „wahr“ fest, um Ergebnisse aus diesem Entitätstyp einzubeziehen. Gültige Werte:
Datentyp: Boolesch |
| Optionen | Objekt mit zusätzlicher Konfiguration für das Suchverhalten. Datentyp: Objekt |
| options.search_in_parent | Kennzeichnung, die angibt, ob Ergebnisse aus übergeordneten Standortdatensätzen beim Filtern nach einer untergeordneten Entität einbezogen werden sollen. Mögliche Werte:
Datentyp: Boolesch |
| options.cache | Kennzeichnung, die angibt, ob zwischengespeicherte Suchergebnisse verwendet werden sollen. Mögliche Werte:
Datentyp: Boolesch |
| Options.rsvModul | Objekt mit der Reservierungsmodulkonfiguration zum Filtern von Ergebnissen nach reservierbarem Modulkontext. Datentyp: Objekt |
| Options.rsvModul.Wert | SYS_ID des reservierbaren Moduls, das zum Filtern verfügbarer Plätze verwendet werden soll. Tabelle: Reservierbares Modul [sn_wsd_rsv_reservable_module] Datentyp: Zeichenfolge |
| options.rsvModule.enable_restricted_neighborhood_rules | Kennzeichnung, die angibt, ob beim Filtern von Ergebnissen nach Reservierungsmodul Regeln für eingeschränkte Arbeitsbereiche angewendet werden sollen. Mögliche Werte:
Datentyp: Boolesch |
| Sysparam_Offset | Paginierungs-Offset. Anzahl der Datensätze, die übersprungen werden sollen, bevor Ergebnisse zurückgegeben werden. Verwenden Sie mit sysparam_limitFür Paginierung. Mindestwert : 0 Datentyp: Zahl Standardwert: 0 |
| Sysparam_limit | Maximale Anzahl von Datensätzen, die pro Anforderung zurückgegeben werden sollen. Verwenden Sie mit sysparam_offsetFür Paginierung. Mindestwert: 1 Datentyp: Zahl Standardwert: 10 |
Header
Die folgenden Anforderungs- und Antwort-Header gelten nur für diese HTTP-Aktion oder werden auf diese Aktion in einer bestimmten Weise angewendet. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header .
| Header | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützte Typen: Application/JSON, Application/xml, Text/xml. |
| Inhaltstyp | Datenformat des Anforderungstexts: Application/JSON. |
| Autorisierung | Anmeldeinformationen für Authentifizierung. Unterstützt Standardauthentifizierung oder sitzungsbasierte Authentifizierung. |
| Header | Beschreibung |
|---|---|
| Inhaltstyp | Datenformat des Antworttexts: Application/JSON. |
Statuscodes
Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter REST-API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet. |
| 400 | Ungültige Anforderung. Ungültiges Format des Anforderungstexts. |
| 401 | Authentifizierung fehlgeschlagen. |
| 403 | Dem Anwender fehlen die erforderlichen ACL-Berechtigungen. |
| 500 | Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. |
Antworttext-Parameter (JSON oder XML)
| Name | Beschreibung |
|---|---|
| Ergebnis | Objekt, das die Ergebnisse der Anforderung enthält. Datentyp: Objekt |
| Ergebnis.isMobil | Kennzeichnung, die angibt, ob die Anforderung als von einem mobilen Client stammt. Mögliche Werte:
Datentyp: Boolesch |
| Ergebnis.mehr | Kennzeichnung, die angibt, ob zusätzliche Ergebnisse über die aktuelle Seite hinaus verfügbar sind. Mögliche Werte:
Datentyp: Boolesch |
| Ergebnis.Ergebnis | Array übereinstimmender Anwender- und Standortobjekte. Jedes Objekt enthält allgemeine Felder, die für alle Ergebnistypen freigegeben sind, sowie typspezifische Felder, die nur für Anwenderergebnisse vorhanden sind. Datentyp: Array von Objekten |
| Ergebnis.Ergebnis.Anzeigewert | Anzeigename des Ergebnisses. Beispiel: Konferenzraum A: Stockwerk 1 Für einen Bereich oder Jane Doe Für einen Anwender. Datentyp: Zeichenfolge |
| Ergebnis.Ergebnis.externalId | Bezeichner des Ergebnisdatensatzes in einem externen Quellsystem, falls zutreffend. Datentyp: Zeichenfolge |
| Ergebnis.Ergebnis.FloorId | SYS_ID des Stockwerks, in dem sich der Ergebnisstandort befindet. Nur für Standortergebnisse vorhanden. Tabelle: Arbeitsplatzgeschoss [sn_wsd_core_floor] Datentyp: Zeichenfolge |
| Ergebnis.Ergebnis.isReservierbar | Kennzeichnung, die angibt, ob der Ergebnisstandort reserviert werden kann. Mögliche Werte:
Datentyp: Boolesch |
| Ergebnis.Ergebnis.Bezeichnung | Sekundäre Anzeigezeichenfolge, die zusätzlichen Kontext für das Ergebnis bereitstellt. Beispiel: Die Standorthierarchie für einen Bereich oder die Abteilung und der Titel für einen Anwender. Datentyp: Zeichenfolge |
| result.result.selectedTreeBranch | SYS_ID des übergeordneten Standortdatensatzes in der Arbeitsplatzhierarchie, die diesem Ergebnis zugeordnet ist. Wird verwendet, um die Standortstruktur in der Anwenderoberfläche vorauszuwählen. Datentyp: Zeichenfolge |
| Ergebnis.Ergebnis.Tabelle | Tabellenname, aus dem das Ergebnis stammt. Beispiel: sn_wsd_core_space Oder sys_user . Datentyp: Zeichenfolge |
| Ergebnis.Ergebnis.Zeitzone | Zeitzone, die dem Ergebnisstandort zugeordnet ist. Für Standortergebnisse vorhanden. Datentyp: Objekt |
| Ergebnis.Ergebnis.Zeitzone.Anzeigewert | Visuell lesbarer Zeitzonenname. Beispiel: Östliche Normalzeit .Datentyp: Zeichenfolge |
| Ergebnis.Ergebnis.Zeitzone.Wert | IANA-Zeitzonenbezeichner für den Ergebnisstandort. Beispiel: Amerika/New_York. Datentyp: Zeichenfolge |
| result.result.userDetails | Objekt mit zusätzlichen Details zu einem Anwenderergebnis. Nur für Anwenderergebnisse vorhanden (Anwendertabelle [sys_user]). Datentyp: Objekt |
| result.result.userDetails.avatar | Relativer URL-Pfad zum Profil-Avatar-Bild des Anwenders. Datentyp: Zeichenfolge |
| result.result.userDetails.department | Name der Abteilung, zu der der Anwender gehört. Datentyp: Zeichenfolge |
| result.result.userDetails.initials | Vom Anzeigenamen des Anwenders abgeleitete Initialen, die als Fallback verwendet werden, wenn kein Avatar verfügbar ist. Beispiel: JD Für Jane Doe .Datentyp: Zeichenfolge |
| result.result.userDetails.name | Vollständiger Anzeigename des Anwenders. Beispiel: Jane Doe .Datentyp: Zeichenfolge |
| result.result.userDetails.userID | SYS_ID des Anwenderdatensatzes. Tabelle: Benutzer [sys_user] Datentyp: Zeichenfolge. |
| Ergebnis.Ergebnis.Wert | SYS_ID des Ergebnisdatensatzes. Datentyp: Zeichenfolge |
| Ergebnis.Ergebnis.wsdQuelle | Quellsystembezeichner für das Ergebnis. Wird verwendet, wenn der Standort aus einer externen Integration stammt. Datentyp: Zeichenfolge |
cURL-Anforderung
Das folgende Beispiel sucht nach Räumen, die mit „Konferenz“ oder „Schreibtisch“ in einem bestimmten Gebäude übereinstimmen, und gibt bis zu 10 Ergebnisse zurück.
curl "https://<instance>.service-now.com/api/sn_wsd_core/wsd_unified_search/users_and_locations" \
--request POST \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--user "username:password" \
--data '{
"search_term": "Conference, Desk",
"show_location": true,
"show_loggedin_user": true,
"include_user_email": false,
"filterConfig": {},
"options": {
"search_in_parent": false,
"cache": true
},
"sysparam_offset": 0,
"sysparam_limit": 10
}
}'
Antworttext.
{
"result": {
"result": [
{
"displayValue": "Conference Room A - Floor 1",
"value": "space_123",
"table": "sn_wsd_core_space",
"label": "Floor 1, Building A, Main Campus",
"selectedTreeBranch": "building_456",
"timezone": {
"value": "America/New_York",
"displayValue": "Eastern Standard Time"
},
"wsdSource": "",
"externalId": "",
"floorId": "floor_789",
"isReservable": true
},
{
"displayValue": "Jane Doe",
"value": "user_789",
"table": "sys_user",
"label": "Senior Engineer, Engineering",
"selectedTreeBranch": "building_456",
"userDetails": {
"userID": "user_789",
"name": "Jane Doe",
"department": "Engineering",
"avatar": "/avatar/user_789",
"initials": "JD"
}
}
],
"more": true,
"isMobile": false
}
}
cURL-Anforderung
Im Folgenden finden Sie Beispiele für verschiedene Suchkriterien.
Alle Standorte und Anwender durchsuchen:
{
"search_term": "engineering",
"filterConfig": {},
"sysparm_offset": 0,
"sysparm_limit": 20
}
Nur reservierbare Bereiche durchsuchen:
{
"search_term": "workspace",
"filterConfig": {
"sn_wsd_core_workplace_location": "is_reservable=true^sys_class_name=sn_wsd_core_space"
},
"sysparm_offset": 0,
"sysparm_limit": 10
}
Nur aktive Anwender in DER IT-Abteilung durchsuchen:
{
"search_term": "smith",
"include_user_email": true,
"filterConfig": {
"sys_user": "department.name=IT Department"
},
"sysparm_offset": 0,
"sysparm_limit": 10
}
Arbeitsbereiche mit Validierung des eingeschränkten Zugriffs durchsuchen:
{
"search_term": "team",
"filterConfig": {
"sn_wsd_core_neighborhood": ""
},
"options": {
"sn_wsd_core_neighborhood": {
"validateAccess": true
},
"rsvModule": {
"value": "module_sys_id_here"
}
},
"sysparm_offset": 0,
"sysparm_limit": 10
}
Einheitliche WSD-Suche: RUFT /api/sn_wsd_Core/wsd_Unified_search/current_location ab
Ruft den aktuellen Standort eines bestimmten Anwenders basierend auf seinen aktiven Reservierungen, seinem Arbeitsplatzprofil oder seiner Arbeitsbereichszuweisung ab. Gibt zuerst den relevantesten öffentlichen Standort zurück, wobei auf private Standorte zurückgegriffen wird, wenn kein öffentlicher Standort gefunden wird.
URL-Format
Versionierte URL: /api/sn_wsd_Core/{api_Version}/wsd_Unified_search/current_location
Standard-URL: /api/sn_wsd_Core/wsd_Unified_search/current_location
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. Beispiel: v1 Oder v2 . Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden. Datentyp: Zeichenfolge |
| Name | Beschreibung |
|---|---|
| userSysId | Erforderlich. SYS_ID des Anwenders, dessen aktueller Standort abgerufen werden soll. Tabelle: Benutzer [sys_user] Datentyp: Zeichenfolge |
| UseNeighborhoods | Kennzeichnung, die angibt, ob ein arbeitsbereichsbasierter Standort aus dem Arbeitsplatzprofil des Anwenders aufgenommen werden soll, wenn keine Reservierung oder kein direkter Profilstandort gefunden wird. Gültige Werte:
Datentyp: Boolesch Standardwert: false |
| Name | Beschreibung |
|---|---|
| Keine |
Header
Die folgenden Anforderungs- und Antwort-Header gelten nur für diese HTTP-Aktion oder werden auf diese Aktion in einer bestimmten Weise angewendet. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header .
| Header | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützte Typen: application/json oder application/xml. Standard: application/json |
| Autorisierung | Anmeldeinformationen für Authentifizierung. Unterstützt Standardauthentifizierung oder sitzungsbasierte Authentifizierung. |
| Header | Beschreibung |
|---|---|
| Inhaltstyp | Datenformat des Antworttexts: Application/JSON. |
Statuscodes
Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter REST-API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet. |
| 400 | Ungültige Anforderung. Der Parameter „userSysId“ fehlt oder ist ungültig. |
| 500 | Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. |
Antworttext-Parameter (JSON oder XML)
Gibt ein einzelnes Standortobjekt zurück, wenn ein aktueller Standort gefunden wird, oder ein leeres Objekt {}, wenn kein Standort gefunden wird.| Name | Beschreibung |
|---|---|
| IsPrivate | Kennzeichnung, die angibt, ob der zurückgegebene Standort privat ist. Ein Standort wird als privat betrachtet, wenn er im Arbeitsplatzprofil als privat markiert ist oder wenn er einer Reservierung zugeordnet ist, die einen privaten oder vertraulichen Status hat. Gültige Werte:
Datentyp: Boolesch |
| displayValue | Anzeigename des Ergebnisstandorts. Beispiel: Gebäude A – Stockwerk 2 – Arbeitsbereich 201 .Datentyp: Zeichenfolge |
| Wert | SYS_ID des Ergebnisstandortdatensatzes. Datentyp: Zeichenfolge. Maximale Länge: 32 |
| Tabelle | Name der ServiceNow-Tabelle, aus der der Standort stammt, z. B. sn_wsd_core_space .Datentyp: Zeichenfolge |
| label | Sekundäre Anzeigezeichenfolge, die den Kontext der Standorthierarchie bereitstellt. Beispiel: Stockwerk 2, Gebäude A .Datentyp: Zeichenfolge |
| Ausgewählte TreeBranch | SYS_ID des übergeordneten Standortdatensatzes in der Arbeitsplatzhierarchie. Wird verwendet, um die Standortstruktur in der Anwenderoberfläche vorauszuwählen. Datentyp: Zeichenfolge |
| Feld | Zeitzone, die dem Ergebnisstandort zugeordnet ist. Datentyp: Objekt |
| Zeitzone.Wert | IANA-Zeitzonenbezeichner für den Ergebnisstandort. Beispiel: Amerika/New_York .Datentyp: Zeichenfolge |
| Zeitzone.Anzeigewert | Visuell lesbarer Zeitzonenname. Beispiel: USA/Osten .Datentyp: Zeichenfolge |
| WsdSource | Quellsystembezeichner für den Standort. Wird verwendet, wenn der Standort aus einer externen Integration stammt. Datentyp: Zeichenfolge |
| externalId | Bezeichner des Standortdatensatzes in einem externen Quellsystem, falls zutreffend. Datentyp: Zeichenfolge |
| floorId | SYS_ID des Stockwerks, in dem sich der Standort befindet. Tabelle: Arbeitsplatzetage [sn_wsd_core_floor]-Tabelle Datentyp: Zeichenfolge |
| Ist reservierbar | Kennzeichnung, die angibt, ob der Standort reserviert werden kann. Mögliche Werte:
Datentyp: Boolesch |
| IsPrivate | Kennzeichnung, die angibt, ob der zurückgegebene Standort privat ist. Ein Standort wird als privat betrachtet, wenn er im Arbeitsplatzprofil als privat markiert ist oder wenn er einer Reservierung zugeordnet ist, die einen privaten oder vertraulichen Status hat. Mögliche Werte:
Datentyp: Boolesch |
cURL-Anforderung
Das folgende Beispiel ruft den aktuellen Standort eines bestimmten Anwenders ab, einschließlich des Arbeitsbereichsbasierten Standorts als Fallback.
curl "https://<instance>.service-now.com/api/sn_wsd_core/wsd_unified_search/current_location
?userSysId=abc123def456&useNeighborhoods=true" \
--request GET \
--header "Accept: application/json" \
--user "username:password"
Antworttext, wenn Standort gefunden wird.
{
"result": {
"displayValue": "Building A - Floor 2 - Workspace 201",
"value": "abc123def456",
"table": "sn_wsd_core_space",
"label": "Floor 2, Building A",
"selectedTreeBranch": "building789xyz",
"timezone": {
"value": "America/New_York",
"displayValue": "US/Eastern"
},
"wsdSource": "manual",
"externalId": "EXT-WS-201",
"floorId": "floor123",
"isReservable": true,
"isPrivate": false
}
}
Antworttext, wenn Standort nicht gefunden wird (leeres Objekt {}).
{
"result": {}
}