Industrie und Dienstleistungen
Der ideale Digitalisierungspartner kennt sich nicht nur mit Theorie und Technik, sondern auch mit der Branche seines Kundens aus. In acht Fokusbranchen stellen wir Ihnen ausgewiesene Experten zur Seite, die mit den Prozessen, Prioritäten und Herausforderungen Ihres Fachbereichs vertraut sind.
Kontakt
Fertigungsunternehmen
Seit Langem konzentriert sich proMX darauf, Unternehmen der produzierenden Industrie bei der digitalen Transformation Dynamics 365 zu unterstützen.
proMX Services
proMX analysiert Ihre Geschäftsprozesse und stattet Ihr Unternehmen mit maßgeschneiderten Lösungen aus, um Ihre Herausforderungen zu meistern. In unserem Discovery-Workshop finden wir die passenden Werkzeuge, damit Sie in Zukunft noch produktiver arbeiten können. Legen wir los!
Interessant für Sie
Partners
Indem Sie als Partner der proMX Group die proMX 365 Productivity Suite anbieten, haben Sie die einzigartige Gelegenheit, Ihr Geschäftsportfolio zu erweitern und signifikantes Wachstum zu erzielen.
Werden Sie Partner!
Wir helfen Firmen jeglicher Größe bei der Transformation zu digitalen Unternehmen.
Über uns
proMX ist Ihr Digitalisierungs-Partner. Wir helfen Ihnen, die Prozesse Ihres Unternehmens so zu transformieren, dass Sie agiler, effizienter und wettbewerbsfähiger arbeiten können. Als Microsoft-Partner haben wir jahrelange Erfahrung und herausragende Beziehungen.
Mehr über proMX
Unsere Mission
Wir helfen Firmen jeglicher Größe bei der Transformation zu digitalen Unternehmen.
Stephanie Schenk
26 März 2024
Expertenbeiträge | 2 Min. Lesezeit

In Dynamics 365 Sales habe ich eine benutzerdefinierte Schaltfläche in der Taskleiste hinzugefügt. Das Ziel dieser Schaltfläche war es, ausgehend von einem bestehenden Aufgabensatz einen neuen Datensatz für Folgeaktivitäten zu erstellen. Dieser neue Datensatz muss über ein benutzerdefiniertes Auswahlfeld in der Tabelle mit der ursprünglichen Aufgabe namens „Originating Task Id“ verknüpft sein.

Für die Erstellung des neuen Datensatzes über die Schaltfläche nutze ich die Java-Script-Bibliothek Xrm.WebApi.

Xrm.WebApi in Microsoft Dynamics 365 ist eine leistungsstarke Java-Script-Bibliothek, die eine nahtlose Kommunikation zwischen kundenseitigen Skripten und der Dynamics 365-Web-Schnittstelle ermöglicht. So können Entwickler CRUD-Operationen (Create, Read, Update, Delete) durchführen und mit Datenentitäten innerhalb der Dynamics 365-Umgebung interagieren.

Ich stand vor dem Problem, den korrekten Eigenschaftsnamen der Beziehung zwischen der ursprünglichen Aufgabe und der Folgeaufgabe zu finden. Dieser wird benötigt, um das Feld „Originating Task Id“ zu füllen, wenn der neue Aufgabendatensatz über JavaScript erstellt wird.

In der offiziellen Microsoft-Dokumentation heißt es: “Die Namen von einwertigen Navigationseigenschaften sind nicht immer identisch mit dem LogicalName für das Suchattribut. Sie sollten sicherstellen, dass Sie den Name-Attributwert des NavigationProperty-Elements im $metadata-Servicedokument der Web-API verwenden. Weitere Informationen: Web API-Navigationseigenschaften„.

Aber wie findet man diese Eigenschaften des benutzerdefinierten Auswahlfeldes „Originating Task Id“?

Ich musste die Metadaten für die OneToMany-Beziehung meiner benutzerdefinierten Suche mit dem Namen originatingtaskid durchsuchen.

Da es sich um eine Selbstreferenz von Aufgabe zu Aufgabe handelt, gibt es sowohl die OneToMany – als auch die ManyToOne-Beziehung in der Aufgabentabelle.

Ich habe das hilfreiche Tool „Metadata Browser“ aus der XrmToolbox verwendet, um die Metadaten einfach auslesen zu können.

Die Eigenschaft, die in der Funktion XrmWeb.Api Create zu verwenden ist, fand ich unter “ReferencingEntityNavigationPropertyName”, für mein benutzerdefiniertes Auswahlfeld war es new_originatingtaskid_Task. In der Erstellen-Funktion muss die Eigenschaft mit der @odata.bind-Annotation kombiniert werden.

ReferencingEntityNavigationPropertyName

Jetzt konnte ich mit der Funktion Xrm.WebApi.createRecord einen neuen Aufgabendatensatz mit Bezug auf die ursprüngliche Aufgabe erstellen:

var activityData = 
{
   "subject": "New Task Subject",
   "new_originatingtaskid_Task@odata.bind": "/tasks(465b158c-541c-e511-80d3-3863bb347ba8)"
};


Xrm.WebApi.createRecord("task", activityData.then(
   function success(result) {
     console.log("Task created with ID: ", + result.id);
   },
   function (error) {
      console.log(error.message);
   }

Sie haben noch weiterführende Fragen? Kontaktieren Sie uns!


Nützliche Links:

Microsoft Xrm.Web.Api reference
https://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/clientapi/reference/xrm-webapi

XrmToolbox Metadata Browser:
https://www.xrmtoolbox.com/plugins/MsCrmTools.MetadataBrowser/

Answering