Freigeben über


Verwendung von XRM-Tooling zum Erstellen von Daten

Es gibt sieben Möglichkeiten, um in der CrmServiceClient-Klasse oder der ServiceClient-Klasse neue Daten und Zuordnungen zu erstellen. Eine Erstellungsaktion mit der XRM-Tooling-API erfordert eine Datennutzlast. Die Datennutzlast hat die Gestalt eines Dictionary<string, CrmDataTypeWrapper>-Objekts. CrmDataTypeWrapper wird verwendet, um der Schnittstelle mitzuteilen, welche Verarbeitung auf den Datenpunkt angewendet werden soll, auf den verwiesen wird. Einige der Methoden zum Erstellen von Daten werden in diesem Thema aufgelistet.

CreateNewRecord

Diese Methode wird verwendet, um beliebige Arten von Tabellendaten in Microsoft Dataverse zu erstellen. Um es zu verwenden, müssen Sie den Schemanamen der Tabelle kennen, in der Sie einen Datensatz erstellen möchten, und eine Datennutzlast erstellen, die an ihn übergeben werden soll. In diesem Beispiel wird ein Kontodatensatz erstellt.

Bei Verwendung der ServiceClient-Klasse finden Sie die CreateNewRecord-Methode im CRUDExtentions-Namespace.

CrmServiceClient svc = new CrmServiceClient("connectionstring");
// ServiceClient svc = new ServiceClient("connectionstring");
 
// Verify that you are connected  
if (svc != null && svc.IsReady)  
{  
    // Create an account record  
    Dictionary<string, CrmDataTypeWrapper> inData = new Dictionary<string, CrmDataTypeWrapper>();  
    inData.Add("name", new CrmDataTypeWrapper("Sample Account Name", CrmFieldType.String));  
    inData.Add("address1_city", new CrmDataTypeWrapper("Redmond", CrmFieldType.String));  
    inData.Add("telephone1", new CrmDataTypeWrapper("555-0160", CrmFieldType.String));  
    accountId = ctrl.CrmConnectionMgr.svc.CreateNewRecord("account", inData);  
  
    // Verify if the account is created.  
    if (accountId != Guid.Empty)  
    {  
        Console.WriteLine(“Account created.”);  
    }  
}  
else  
{  
    // Display the last error.  
    Console.WriteLine("An error occurred: {0}", svc.LastCrmError);  
  
    // Display the last exception message if any.   
    Console.WriteLine(svc.LastCrmException.Message);  
    Console.WriteLine(svc.LastCrmException.Source);  
    Console.WriteLine(svc.LastCrmException.StackTrace);  
  
    return;  
}  

Lesen Sie die folgenden wichtigen Informationen zur Verwendung einer Verbindungszeichenfolge im Anwendungscode.

Wichtig

Microsoft empfiehlt, den sichersten verfügbaren Authentifizierungsflow zu verwenden. Der in diesem Artikel beschriebene Authentifizierungsablauf erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die in anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere, sicherere Flows, z. B. verwaltete Identitäten, nicht funktionsfähig sind.

In diesem Beispiel haben wir ein Datennutzlast-Objekt mit der Bezeichnung indata erstellt. Anschließend füllten wir es mit der allgemeinen Syntax: crmFieldName , new CrmDataTypeWrapper(data,CrmFieldType). Nach dem Einrichten des indata Objekts, um die zu erstellenden Werte zu erhalten, haben wir die CreateNewRecord Methode aufgerufen, die den logischen Tabellennamen für das Konto und die Datennutzlast bereitstellt (indata).

Anmerkung

Sie können einen Tabellendatensatz auch mit dem XRM-Tool erstellen, indem Sie die CreateRequest Nachricht mit der ExecuteCrmOrganizationRequest Methode ausführen. Weitere Informationen: Nachrichten mit der ExecuteCrmOrganizationRequest-Methode verwenden

CreateAnnotation

Diese Methode wird verwendet, um ein Notizobjekt zu erstellen und an einen beliebigen Tabellendatensatz anzuhängen. Während Sie alle Variablen für die Anmerkung im ersten Durchlauf eingeben können, müssen Sie nur die Felder für den Betreff und den Notizentext ausfüllen. In der Praxis wird dies im Allgemeinen verwendet, um vom System generierte Notizen an eine Tabelle anzuhängen oder um Dateien anzuhängen, die in einer Dataverse Tabelle gespeichert sind. Wenn Sie außerdem eine eigene Benutzeroberfläche zum Erstellen von Notizen für Ihren Benutzer bereitstellen, können Sie diese Anmerkung auf diese Weise an die Besitzertabelle in Dataverse anhängen. Dieses Beispiel setzt das vorherige Beispiel fort und erstellt eine Anmerkung zu dem neu erstellten Konto.

Bei Verwendung der ServiceClient-Klasse finden Sie die CreateAnnotation-Methode im CRUDExtentions-Namespace.

CrmServiceClient svc = new CrmServiceClient(connectionstring);  
// ServiceClient svc = new ServiceClient("connectionstring");

// Verify that you are connected.  
if (svc != null && svc.IsReady)  
{  
    // Create and attach a note.  
    inData.Clear();   
    inData.Add("subject", new CrmDataTypeWrapper("This is a NOTE from the API" , CrmFieldType.String));
    inData.Add("notetext", new CrmDataTypeWrapper("This is text that will go in the body of the note" , CrmFieldType.String));  
    Guid noteID = svc.CreateAnnotation("account", accountId, inData);  
}  
else  
{  
    // Display the last error.  
    Console.WriteLine("An error occurred: {0}", svc.LastCrmError);  
  
    // Display the last exception message if any.  
    Console.WriteLine(svc.LastCrmException.Message);  
    Console.WriteLine(svc.LastCrmException.Source);  
    Console.WriteLine(svc.LastCrmException.StackTrace);  
  
    return;  
}  

Siehe auch

XRM Tooling API zur Ausführung von Aktionen in Dataverse verwenden