Erstellen, Verwalten und Veröffentlichen von modellgesteuerten Apps mithilfe von Code
Zusätzlich zur Erstellung einer modellbasierten App mit dem Power Apps App-Designer können Sie modellbasierte Apps programmatisch erstellen und verwalten.
Wichtig
Sie müssen keinen Code schreiben, um modellbasierte Apps zu erstellen, wenn Sie es nicht brauchen! Der App-Designer bietet eine viel einfachere und intuitive Erfahrung für die Erstellung modellbasierter Apps, ohne Code schreiben zu müssen, indem er eine kachelbasierte Informationsstruktur und eine vereinfachte Benutzeroberfläche bereitstellt. Sehen Sie sich das hier an: Modellbasierte Apps mit Hilfe des App-Designers entwerfen
Die Erstellung einer modellbasierten App umfasst die folgenden Schritte:
- Erstellen einer AppModule-Tabelle-Instanz, um die App und ihre Eigenschaften zu definieren.
- Hinzufügen oder Entfernen von Komponenten zur App, wie Tabelle, Siteübersicht und andere Komponenten für die benutzerdefinierte App mit AddAppComponents und RemoveAppComponents-Aktionen.
- Überprüfen Sie die App auf alle fehlenden erforderlichen Komponenten mithilfe der Funktion ValidateApp.
- Veröffentlichen der App.
- Ordnen Sie Ihrer modellbasierten App geeignete Sicherheitsrollen zu, um den Benutzern Zugriff zu gewähren.
Erstellen Sie die modellgesteuerte App und definieren Sie deren Eigenschaften
Sie müssen über die Sicherheitsrolle „Systemadministrator“ oder „Systemanpasser“ bzw. entsprechende Berechtigungen verfügen, um eine App zu erstellen.
Sie müssen mindestens die folgenden Eigenschaften angeben, um eine App zu erstellen:
- Name: Eindeutig für die App.
- uniquename: Dies kann anders als Name der App sein und darf nur englische Zeichen und nur Zahlen enthalten. Bei Erstellung dieser App wird automatisch der Name mit dem Lösungsherausgeberpräfix verwendet (beispielsweise 'new_').
- webresourceid: ID der Webressource, die als Bildsymbol für die App festgelegt werden soll. Das System bietet eine Standardwebressource (ID: 953b9fac-1e5e-e611-80d6-00155ded156f), die Sie als Symbol für die App verwenden können.
Die folgende Internet-API-Anforderung erstellt einen App-Typ einheitliche Schnittstelle:
POST [Organization URI]/api/data/v9.0/appmodules HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"name": "SDKTestApp",
"uniquename":"SDKTestApp",
"webresourceid":"953b9fac-1e5e-e611-80d6-00155ded156f"
}
Der OData-EntityId-Antwortheader enthält die URI der erstellten App.
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.0/appmodules(dd621d4a-d898-e711-80e7-00155db763be)
Hinzufügen oder Entfernen von Komponenten der modellgesteuerten App
Sie können Komponenten in einer App hinzufügen oder entfernen, wie Siteübersicht, Tabelle, Dashboard, Geschäftsprozessflüsse, Ansichten und Formulare, die in die modellgesteuerte App eingeschlossen werden sollen. Detaillierte Informationen über Komponenten, die zu einer modellbasierten App hinzugefügt werden können, finden Sie unter Anwendungskomponenten im App-Designer hinzufügen oder bearbeiten.
Verwenden Sie die AddAppComponents-Aktion oder die AddAppComponentsRequest-Meldung , um Komponenten zu Ihrer modellbasierten Apps hinzuzufügen. Für die Aktion müssen Sie Folgendes angeben:
- AppId: ID der App, der Sie Komponenten hinzufügen möchten.
- Komponenten Eine Sammlung von Komponenten, die hinzugefügt werden sollen. Sie müssen die ID sowie den Tabellentyp der Komponente angeben, die Sie hinzufügen möchten. Eine Liste der Tabellentypen in Microsoft Dataverse-Web-API finden Sie unter Web API Entity Type Reference.
Die folgende Internet-API-Anforderung fügt der App eine Ansicht (savedquery) und ein Formular (systemform) hinzu:
POST [Organization URI]/api/data/v9.0/AddAppComponents HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"AppId":"dd621d4a-d898-e711-80e7-00155db763be",
"Components":[
{
"savedqueryid":"00000000-0000-0000-00aa-000000666000",
"@odata.type":"Microsoft.Dynamics.CRM.savedquery"
},
{
"formid":"c9e7ec2d-efca-4e4c-b3e3-f63c4bba5e4b",
"@odata.type":"Microsoft.Dynamics.CRM.systemform"
}
]
}
Um eine Komponente einer App zu entfernen, können Sie die Aktion RemoveAppComponents oder die RemoveAppComponentsRequest-Nachricht verwenden. Diese Aktion verwendet denselben Satz von Parametern wie die Aktion AddAppComponents.
Die folgende Internet-API-Anforderung entfernt eine Ansicht (savedquery) von der App:
POST [Organization URI]/api/data/v9.0/RemoveAppComponents HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"AppId":"dd621d4a-d898-e711-80e7-00155db763be",
"Components":[
{
"savedqueryid":"00000000-0000-0000-00aa-000000666000",
"@odata.type":"Microsoft.Dynamics.CRM.savedquery"
}
]
}
Validieren Sie Ihre modellgesteuerte Anwendung
Die Validierung einer App umfasst die Prüfung auf etwaige Abhängigkeiten für die Komponenten, die Sie in Ihrer modellbasierten App hinzugefügt haben, um sicherzustellen, dass Ihre App einwandfrei funktioniert. Dies ist das Gleiche wie Überprüfen im App-Designer. Weitere Informationen: Überprüfen der App
Verwenden Sie die ValidateApp-Funktionen oder die ValidateAppRequest-Meldung, um die App zu überprüfen. Die folgende Web API-Anforderung zeigt, wie Sie Ihre modellbasierte Apps mit ID validieren können: dd621d4a-d898-e711-80e7-00155db763be:
GET [Organization URI]/api/data/v9.0/ValidateApp(AppModuleId=dd621d4a-d898-e711-80e7-00155db763be)
Wenn es keine Überprüfungsfehler gibt, ist die Antwort wie folgt:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.ValidateAppResponse",
"AppValidationResponse": {
"ValidationSuccess": true,
"ValidationIssueList": []
}
}
Falls es Überprüfungsprobleme in der App gibt, werden in der Antwort Fehler/Warnungen in der ValidationIssueList angezeigt:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.ValidateAppResponse",
"AppValidationResponse": {
"ValidationSuccess": false,
"ValidationIssueList": [
{
"ErrorType": "Error",
"Message": "App does not contain Site Map",
"DisplayName": null,
"ComponentId": "00000000-0000-0000-0000-000000000000",
"ComponentType": 0,
"ComponentSubType": 0,
"ParentEntityId": "00000000-0000-0000-0000-000000000000",
"ParentEntityName": null,
"CRMErrorCode": -2147155684,
"RequiredComponents": []
},
{
"ErrorType": "Warning",
"Message": "Account doesn't reference a form or view. App users will see all forms and views.",
"DisplayName": null,
"ComponentId": "00000000-0000-0000-0000-000000000000",
"ComponentType": 0,
"ComponentSubType": 0,
"ParentEntityId": "00000000-0000-0000-0000-000000000000",
"ParentEntityName": null,
"CRMErrorCode": -2147155691,
"RequiredComponents": []
}
]
}
}
Veröffentlichen Ihrer modellgesteuerten Anwendung
Nachdem Sie die erforderlichen Komponenten zu Ihrer modellbasierten App hinzugefügt und diese validiert haben, müssen Sie sie veröffentlichen, um sie den Benutzern zur Verfügung zu stellen.
Verwenden Sie die PublishXml Aktion oder die PublishXmlRequest Nachricht, um Ihre modellbasierte Apps zu veröffentlichen. Die folgende Anfrage zeigt, wie Sie Ihre modellbasierte Apps mit einer ID veröffentlichen können: dd621d4a-d898-e711-80e7-00155db763be:
POST [Organization URI]/api/data/v9.0/PublishXml HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"ParameterXml":"<importexportxml><appmodules><appmodule>dd621d4a-d898-e711-80e7-00155db763be</appmodule></appmodules></importexportxml>"
}
Verwalten des Zugriffs auf modellgetriebene Anwendungen mithilfe von Sicherheitsrollen
Um Benutzern Zugriff auf Ihre Apps bereitzustellen, damit diese darauf aus ihrem Bereich Einstellungen > Meine Apps oder der Startseite zugreifen können, können Sie den modellgesteuerten Apps Sicherheitsrollen hinzufügen. Benutzer, die den zugeordneten Sicherheitsrollen zugewiesen sind, können Ihre modellgesteuerten Apps in Dataverse anzeigen und verwenden.
Verwenden Sie die appmoduleroles_association-Navigationseigenschaft der AppModule-Tabelle-Entität, um eine modellgesteuerte App zu einer Sicherheitsrolle zuzuordnen. Die folgende Anfrage zeigt, wie eine modellbasierte App mit einer Sicherheitsrolle verknüpft werden kann:
POST [Organization URI]/api/data/v9.0/appmodules(dd621d4a-d898-e711-80e7-00155db763be)appmoduleroles_association/$ref HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"@odata.id":"[Organization URI]/api/data/v9.0/roles(<roleId>)"
}
Um eine Sicherheitsrolle von einer modellbasierten Apps zu trennen, verwenden Sie die Anforderung DELETE mit derselben Navigationseigenschaft. Beispiel:
DELETE [Organization URI]/api/data/v9.0/appmodules(dd621d4a-d898-e711-80e7-00155db763be)/appmoduleroles_association/$ref?$id=[Organization URI]/api/data/v9.0/roles(<roleId)
Verwalten Ihrer modellgesteuerten Apps und deren Komponenten
Dieser Abschnitt bietet Informationen zum Abrufen der Apps, Aktualisieren von App-Eigenschaften, das Abrufen von Apps-Komponenten und zum Löschvorgang von Apps.
Veröffentlichte Apps abrufen
Um veröffentlichte Apps abzurufen, können Sie die folgenden Anforderungen verwenden:
GET [Organization URI]/api/data/v9.0/appmodules?$select=name,clienttype
Unveröffentlichte Apps abrufen
Zum Abrufen unveröffentlichter Apps verwenden Sie die RetrieveUnpublishedMultiple-Funktion. Beispiel:
GET [Organization URI]/api/data/v9.0/appmodules/Microsoft.Dynamics.CRM.RetrieveUnpublishedMultiple()?$select=name,clienttype
Abrufen von Komponenten in einer veröffentlichten modellgesteuerten App
Um App-Komponenten für eine modellbasierte App abzurufen, verwenden Sie die RetrieveAppComponents Funktion oder die RetrieveAppComponentsRequest-Meldung. Beispiel:
GET [Organization URI]/api/data/v9.0/RetrieveAppComponents(AppModuleId=dd621d4a-d898-e711-80e7-00155db763be)
Rufen Sie Sicherheitsrollen ab, die einer veröffentlichten modellgesteuerten App zugeordnet sind
Um die mit Ihrer modellbasierten Apps verknüpften Sicherheitsrollen abzurufen, verwenden Sie die $expand
Systemabfrageoption mit der Navigationseigenschaft appmoduleroles_association. Hier ist z.B. die Anforderung, alle Sicherheitsrollen abzurufen, die mit einer modellbasierten App mit ID verbunden sind: dd621d4a-d898-e711-80e7-00155db763be:
GET [Organization URI]/api/data/v9.0/appmodules(dd621d4a-d898-e711-80e7-00155db763be)?$expand=appmoduleroles_association&$select=name,appmoduleroles_association
Löschen von modellgesteuerten Apps
Verwenden Sie die DELETE-Anforderung zum Löschen einer modellbasierten Apps. Beispiel:
DELETE [Organization URI]/api/data/v9.0/appmodules(dd621d4a-d898-e711-80e7-00155db763be)
Client-API-Unterstützung für modellgesteuerte Apps
Sie können die folgenden Client-APIs verwenden, um mit modellbasierten Apps zu arbeiten:
Siehe auch
Gestalten Sie modellgesteuerte Apps mit dem App Designer
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).