Freigeben über


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 Nr. 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 Nr. Eine Funktion, die bei erfolgreicher Anfrage aufgerufen wird.
errorCallback Funktion Nr. 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     
    } 
);