searchAndOpenRecords (JavaScript API-Referenz) für Dynamics 365-Kanalintegrationsframework 1.0
Das Verfahren sucht während des Nachrichteneingangs nach dem Datensatz aus dem Kommunikations-Widget und öffnet ihn.
Syntax
Microsoft.CIFramework.searchAndOpenRecords(entityLogicalName, queryParameters, searchOnly, searchType).then(successCallback, errorCallback);
Parameter
Name des Dataflows | Typ | Erforderlich | Beschreibung |
---|---|---|---|
entityLogicalName | Zeichenfolge | Ja | Name der zu suchenden und zu öffnenden Entität. |
Abfrageparameter | Zeichenfolge | Ja | OData-Systemabfrageoptionen $select und $expand-Abfragen, um die Daten abzurufen. - Verwenden Sie die $select-Systemabfrageoption, um die Eigenschaften zu begrenzen, die zurückgegeben werden, indem Sie eine durch Trennzeichen getrennte Liste von Eigenschaftsnamen einschließen. Dies ist eine wichtige Methode für die Leistungssteigerung. Wenn Eigenschaften nicht mithilfe von $selectangegeben wurden, werden alle Eigenschaften zurückgegeben. - Verwenden Sie die $expand-Systemabfrageoption, um zu steuern, welche Daten von den verbundenen Entitäten zurückgegeben werden. Wenn Sie nur den Namen der Navigationseigenschaft einschließen, rufen Sie alle Eigenschaften für in Verbindung stehende Datensätze ab. Sie können die Eigenschaften begrenzen, die für verknüpfte Datensätze mithilfe der $select-Systemabfrageoption in Klammern nach dem Namen der Navigationseigenschaft zurückgegeben werden. Verwenden Sie dieses für einzelwertige und sammlungswertige Navigationseigenschaften. Sie könnne die Abfrageoptionen beginnend mit ? definieren. Um mehrere Abfrageoptionen zu definieren, verwenden Sie & , um die Abfrageoptionen zu trennen.Beispiel: ?$select=name&$expand=primarycontactid($select=contactid,fullname) |
searchOnly | Boolesch | Ja | Setzen Sie searchOnly auf False, wenn die Suche einen einzelnen Datensatz auf der Grundlage des Suchkontextes anzeigen soll. Falls das Suchergebnis mehrere Datensätze enthält und Sie queryParameters für die Suchoption verwendet haben, dann legt searchOnly auf false fest und die Suchseite wird mit der Suchoption ausgefüllt. Notiz: Wenn das Suchergebnis mehrere Datensätze enthält, dann werden nur Datensätze für Konto, Kontakt und Aktivität geöffnet. Legen Sie true fest, um Ergebnisse der Suche als Versprechensobjekt zu erhalten und um den Datensatz nicht auf der Suchseite zu öffnen. |
searchType | Zahl | Nein | Typ der Suchseite, um 0 für Relevanzsuche und 1 für kategorisierte Suche zu öffnen. Wenn kein Parameter angegeben wird, werden die Datensätze nach Kategorie durchsucht. |
successCallback | Funktion | Nein | Eine Funktion, die bei erfolgreicher Anfrage aufgerufen wird. |
errorCallback | Funktion | Nein | Eine Funktion, die aufgerufen wird, wenn die Anforderung fehlschlägt. |
Wert zurückgeben
Gibt ein Promise-Objekt vom Typ Zeichenfolge zurück. Bei Erfolg gibt die Methode die Suchergebnisse gemäß Suchabfrage zurück.
Anmerkung
- Sie können maximal 5000 Datensätze gleichzeitig abrufen (wenn mehr als 5000 Datensätze vorhanden sind). Sie können die Ergebnisse eingrenzen, indem Sie Abfrageoptionen wie $filter, $select und $top in den Methodenparametern verwenden, wie im Bereich Beispiele gezeigt. Weitere Informationen: Überblick zu Abfrageoptionen
- Um auf Basis der Relevanz zu suchen, müssen Sie die Relevanzsuche konfigurieren. Wenn die Relevanzsuche nicht aktiviert ist, wird die Suche basierend auf der Kategorie durchgeführt.
Beispiele
Suchen und öffnen Sie den Kontaktdatensatz
Mit diesem Beispielcode werden Name und Telefonnummer eines Kontaktdatensatzes gesucht und angezeigt. Es wird eine leere Suchergebnisseite geöffnet.
// retrieve contact record
Microsoft.CIFramework.searchAndOpenRecords("contact", "?$select=fullname,telephone1", false).
then(
function success(result) {
res=JSON.parse(result);
console.log(`Record values: Full Name: ${res[0].fullname}, Telephone Number: ${res[0].telephone1}`);
// perform operations on record retrieval and opening
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
Suche und Anzeige in der Liste der Kontaktdatensätze
Dieser Beispielcode sucht und zeigt den Namen und die Telefonnummer von Entitätsdatensätzen von Kontakten an, deren Vorname Contoso ist. Wenn Sie $search
verwenden, können wir sicherstellen, dass die Suchergebnisseite mit dem Suchbegriff Contoso vorausgefüllt ist.
Anmerkung
Wenn Sie in der Abfrage $search
verwenden und der Parameter searchOnly
auf false
gesetzt ist, wird immer die Suchergebnisseite geöffnet und nicht der abgerufene Datensatz. Wenn Sie den abgerufenen Datensatz öffnen möchten, verwenden Sie den Parameter $search
nicht in der Abfrage.
// Retrieve Contact entity record
// Change searchOnly parameter to true, if you do not want to open the search results page
Microsoft.CIFramework.searchAndOpenRecords("contact", "?$select=fullname,telephone1&$filter=firstname eq 'Contoso'&$search=Contoso", false).
then(
function success(result) {
res=JSON.parse(result);
console.log(`The caller name is: ${res[0].fullname}, Telephone Number: ${res[0].telephone1}`);
// perform operations on record retrieval and opening
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
Suchen und zeigen Sie die 10 aktivsten Kontaktdatensätze an
Dieser Beispielcode sucht und zeigt die Top 10 der aktiven Kontaktdatensätze an.
Microsoft.CIFramework.searchAndOpenRecords("contact", "$filter=statecode eq 0&$select=description&$top=10", false).
then(
function success(result) {
res=JSON.parse(result);
// perform operations on record retrieval and opening
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
Suchen Sie nach Anzeigename und Telefonnummer, indem Sie den Typ Relevanzsuche angeben
Dieser Beispielcode sucht und zeigt den Namen und die Telefonnummer von Kontaktentitätsdatensätzen an, indem er den Typ Relevanzsuche angibt.
Microsoft.CIFramework.searchAndOpenRecords("contact", "?$select=fullname,telephone1", false, "b44d31ac-5fd1-e811-8158-000d3af97055", 0).
then(
function success(result) {
res=JSON.parse(result);
console.log(`Record values: Full Name: ${res[0].fullname}, Telephone Number: ${res[0].telephone1}`);
// perform operations on record retrieval and opening
},
function (error) {
console.log(error.message);
// handle error conditions
}
);