Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Saate lubada virtuaalsetel olemitel osaleda asünkroonsetes Dataverse Event Frameworki konveieri sündmustes ja PowerAutomate Dataverse'i konnektoris Rea lisamisel, muutmisel või kustutamisel päästikul . See võimalus on lubatud Dataverse'i ärisündmuste osana. Lisateave: Microsoft Dataverse'i ärisündmused
Ilma selles artiklis kirjeldatud konfiguratsioonita ei osale enamik virtuaalseid olemeid Event Frameworki konveieris nagu teised olemid. Kuna virtuaalsed olemid ei osale sündmuste konveieris, ei saa te registreerida lisandmooduli samme toimuvate loomise, värskendamise ja kustutamise (CUD) sündmuste vastu ning kuigi CUD-sündmused kuvatakse nende olemite jaoks Power Automate Dataverse'i konnektoris, kuvatakse tõrge, kui inimesed proovivad salvestada voogu, mis neid kasutab.
Selle põhjuseks on asjaolu, et virtuaalsed üksused esindavad välises allikas salvestatud andmeid. Dataverse'il on kliendina juurdepääs sellele andmeallikale, kuid teised süsteemid saavad neid andmeid igal ajal värskendada ilma Dataverse'i sündmuste raamistikku läbimata.
Selle lubamiseks on kaks sammu.
Andmete konfigureerimine tabelis nimega Virtuaalse olemi metaandmed. Kui selles tabelis olevad andmed on konfigureeritud neid lubama, pakuvad uued API-d välisele süsteemile vahendeid Dataverse'i teavitamiseks CUD-sündmuste toimumisest.
Kui üksuse metaandmetega on seotud virtuaalse olemi metaandmete rida. Virtuaalse tabeli metadataid abil saavad järgmised kolm sätet määrata, kas väline allikas saab teie virtuaalset tabelit teavitada.
Kui see on virtuaalse olemi metaandmete
IsOnExternalCreatedEnabledjaIsOnExternalDeletedEnabledIsOnExternalUpdatedEnabledloogikaatribuutide abil eraldi lubatud, muutuvad väliste teenuste jaoks kättesaadavaks järgmised seotud toimingud.Tegevus/sõnum Kirjeldus OnExternalCreatedSisaldab andmeid kirje kohta, mis loodi välises süsteemis, mis on Dataverse'is virtuaalse tabelina avaldatud. OnExternalUpdatedSisaldab andmeid kirje kohta, mida värskendati välises süsteemis, mis on Dataverse'is virtuaalse tabelina avaldatud. OnExternalDeletedSisaldab andmeid kirje kohta, mis kustutati välises süsteemis, mis on Dataverse'is virtuaalse tabelina avaldatud. Andmeid kontrolliv väline süsteem peab saatma Dataverse'ile autenditud HTTP-päringu, kasutades API-sid, millel on andmed virtuaalse olemi metaandmetes. Selle kõne sooritab tavaliselt autenditud teenusesubjekti konto. Lisateave: Veebirakenduste koostamine serveritevahelise (S2S) autentimise kohta
Kuid iga rakendus või kasutaja, kes saab Dataverse'ile kõne teha, saab saata http-taotluse, mis on vajalik Dataverse'i teavitamiseks sündmuse toimumisest.
Märkus.
Virtuaalsed üksused, mis kasutavad OData pakkujat ja mitterelatsioonilisi kuupäevaallikaid, võivad lubada teatud lisandmooduli etappide registreerimisi, näiteks ainult tehinguväliste sündmuste puhul. Kuid need sündmused pole Power Automate Dataverse'i konnektoriga kasutamiseks saadaval. See käitumine ei muutu. Kuid usaldusväärsema sündmuse teavitamiseks on soovitatav selles teemas kirjeldatud lähenemisviis.
Kuidas lubada virtuaalsete tabelite jaoks teavitus-API-sid?
Teatiste API-d saate lubada, konfigureerides need käsitsi tegijate portaalis (make.powerapps.com/) või kasutades koodi.
Käsitsi lubamine tegijaportaali abil
Oletame, et meil on nende atribuutidega virtuaaltabel Person, atribuut Name on new_People.
Valige Power Appsis (make.powerapps.com) oma lahenduses +Uus ja seejärel valige Virtuaalse olemi metaandmed.
See avab järgmise vormi:
Täitke vorm, määrates väärtuseks Laienduse olemi ID oma virtuaalse tabeli nime. Te ei pea kõiki kolme sõnumit lubama. Saate määrata ühe või mitu neist ja tulla tagasi, et ülejäänud hiljem lubada.
Kui olete need sõnumid lubanud, saate vaadata, mida lisati, kasutades juhiseid teemas Virtuaalse tabeli toetamiseks loodud sõnumite vaatamine.
Hallatavate atribuutide määramine tegijaportaali abil
Kui te ei soovi, et teie hallatava lahenduse installijad muudaksid virtuaalse olemi metaandmete käitumist, peaksite määrama hallatava atribuudi seda takistama, kasutades järgmisi juhiseid.
Valige oma lahenduses virtuaalse olemi metaandmed ja valige kolmikpunkt (...) ja seejärel valige Hallatavad atribuudid.
Tühjendage paanil Hallatavad atribuudid ruut Luba kohandused ja vajutage nuppu Valmis.
See säte ei tee midagi enne, kui virtuaalse olemi metaandmete kirje on hallatavasse lahendusse kaasatud.
Luba koodiga
Võib-olla soovite automatiseerida virtuaalse olemi metaandmete loomise oma virtuaalsete olemite jaoks.
Tabelis VirtualEntityMetadata on järgmised veerud, mida saate määrata.
| Skeemi nimi Loogiline nimi |
Kuvatav nimetus | Liik | Kirjeldus |
|---|---|---|---|
ExtensionOfRecordIdextensionofrecordid |
Virtuaalne üksus | Otsing | Selle virtuaalse olemi nimi, mille jaoks need sätted on mõeldud. |
IsCustomizableiscustomiable |
On kohandatav | Hallatav omadus | Määrab, kas virtuaalse olemi metaandmeid saab hallatavasse lahendusse kaasamisel muuta või kustutada. |
IsOnExternalCreatedEnabledisonexternalcreatedenabled |
Välise sõnumi loomise lubamine | loogiline | Lubab sõnumil saata teavet välises andmeallikas loodud uute kirjete kohta. |
IsOnExternalDeletedEnabledisonexternaldeletedenabled |
Välise kustutamissõnumi lubamine | loogiline | Lubab sõnumil saata teavet välise andmeallika kustutatud kirjete kohta. |
IsOnExternalUpdatedEnabledisonexternalupdatedenabled |
Välise värskenduse sõnumi lubamine | loogiline | Lubab sõnumil saata teavet välise andmeallika värskendatud kirjete kohta. |
Namename |
Nimi | String | Seadete nimi. |
VirtualEntityMetadataIdvirtualentitymetadataid |
VirtualEntityMetadata | Ainuidentifikaator | Olemi eksemplaride kordumatu identifikaator |
Seda tüüpi lahendusekomponentide loomisel soovitame määrata hallatava atribuudi IsCustomizable väärtusele false , välja arvatud juhul, kui soovite lubada teie hallatava lahenduse installijatel neid sätteid muuta.
Samuti soovitame lisada kirje Virtuaalne olemi metaandmed** konkreetsele lahendusele, kui selle loote. Mõlemas allolevas näites näete, kuidas kirje loova taotlusega Solution.UniqueName edastatakse.
Veebi API kasutamine
Kui kasutate veebi API-d, on esimene ülesanne hankida MetadataId virtuaalne tabel. Järgmine näide tagastab MetadataId virtuaalse olemi nimega new_people.
Taotluse:
GET [Organization Uri]/api/data/v9.1/EntityDefinitions(LogicalName='new_people')?$select=MetadataId HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Authorization: Bearer [REDACTED]
Vastus:
HTTP/1.1 200 OK
{
"@odata.context": "[Organization Uri]/api/data/v9.1/$metadata#EntityDefinitions(MetadataId)/$entity",
"MetadataId": "b198e6f3-3dd6-4c0b-9570-702f0c10d577"
}
Seejärel looge virtuaalse olemi metaandmete kirje, seostades selle Entity olemitüübiga, kasutades esimeses etapis toodud kirjet MetadataId .
Pange tähele väärtusele seatud Solution.UniqueName päise kasutamistMSCRM.SolutionUniqueName. See lisab virtuaalse olemi metaandmete kirje lahendusele selle loomisel. Lisateave: HTTP-päised
Taotluse:
POST [Organization Uri]/api/data/v9.1/virtualentitymetadatas HTTP/1.1
MSCRM.SolutionUniqueName: YourSolutionUniqueName
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Authorization: Bearer [REDACTED]
Content-Type: application/json; charset=utf-8
{
"@odata.type": "Microsoft.Dynamics.CRM.virtualentitymetadata",
"name": "Person Virtual Metadata",
"iscustomizable": {
"@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty",
"Value": false,
"CanBeChanged": false
},
"isonexternalcreatedenabled": true,
"isonexternaldeletedenabled": true,
"isonexternalupdatedenabled": true,
"extensionofrecordid@odata.bind": "entities(b198e6f3-3dd6-4c0b-9570-702f0c10d577)"
}
Vastus:
HTTP/1.1 204 No Content
SDK kasutamine .NET jaoks
Olenemata sellest, kas kasutate varajase või hilise köite tüüpe, on esimene ülesanne tuua tabeli andmed MetadataId , mis tuuakse mõlemal juhul ühtemoodi. Antud juhul virtuaalse tabeli jaoks, mille nimi on new_peopleCrmServiceClienti abil. Teise võimalusena võib kasutada klassi.ServiceClient
var service = new CrmServiceClient(conn);
// var service = new ServiceClient(conn);
var retrieveEntityRequest = new RetrieveEntityRequest
{
LogicalName = "new_people",
EntityFilters = EntityFilters.Entity
};
var retrieveEntityResponse = (RetrieveEntityResponse)service.Execute(retrieveEntityRequest);
var entityId = retrieveEntityResponse.EntityMetadata.MetadataId;
Varajase köite tüüpide kasutamine
Varajase köitmise tüüpide puhul saate kasutada klassi, VirtualEntityMetadata mis on loodud Power Platform CLI pac modelbuilder build käsuga. Lisateave: Hilises ja varajases köites programmeerimine .NET SDK abil
var virtualEntityMetadata = new VirtualEntityMetadata
{
Name = "Person Virtual Metadata",
ExtensionOfRecordId = new EntityReference("entity", entityId.Value),
IsCustomizable = new BooleanManagedProperty(false),
IsOnExternalCreatedEnabled = true,
IsOnExternalDeletedEnabled = true,
IsOnExternalUpdatedEnabled = true,
};
Hilinenud köidetud tüüpide kasutamine
Virtuaalse olemi metaandmete eksemplari eksemplari loomiseks on kaks võimalust, kasutades hilinenud seotud tüüpe, kumbki on samaväärne.
var virtualEntityMetadata = new Entity("virtualentitymetadata");
virtualEntityMetadata["name"] = "Person Virtual Metadata";
virtualEntityMetadata["extensionofrecordid"] = new EntityReference("entity", entityId.Value);
virtualEntityMetadata["iscustomizable"] = new BooleanManagedProperty(false);
virtualEntityMetadata["isonexternalcreatedenabled"] = true;
virtualEntityMetadata["isonexternaldeletedenabled"] = true;
virtualEntityMetadata["isonexternalupdatedenabled"] = true;
Või:
var virtualEntityMetadata = new Entity("virtualentitymetadata") {
Attributes = new AttributeCollection {
{ "name","Person Virtual Metadata" },
{ "extensionofrecordid", new EntityReference("entity", entityId.Value)},
{ "iscustomizable",new BooleanManagedProperty(false)},
{ "isonexternalcreatedenabled",true },
{ "isonexternaldeletedenabled",true },
{ "isonexternalupdatedenabled",true}
}
};
Kirje loomine
Kirje loomisel kasutage meetodi IOrganizationService.Create asemel klassi CreateRequest, et saaksite lisada SolutionUniqueName valikulise parameetri, mis lisab kirje selle loomisel teie lahendusele. Lisateave: Valikuliste parameetrite edastamine päringuga
var createRequest = new CreateRequest
{
Target = virtualEntityMetadata
};
createRequest["SolutionUniqueName"] = "YourSolutionUniqueName";
service.Execute(createRequest);
Virtuaalse tabeli toetamiseks loodud sõnumite vaatamine
Lihtne viis lubatud sõnumite olemasolu kontrollimiseks on uurida veebi API $metadata teenusedokumenti.
Seda saate teha oma brauseris. Tippige oma organisatsiooni URL-i abil brauserisse järgmine teave:
[Organization Uri]/api/data/v9.2/$metadata
See on suur XML-dokument, kuid võite otsida 'OnExternalCreated' ja leida toimingu määratluse, antud juhul virtuaalse tabeli jaoks new_people .
<Action Name="OnExternalCreated" IsBound="true">
<Parameter Name="entityset" Type="Collection(mscrm.new_people)" Nullable="false"/>
<Parameter Name="Target" Type="mscrm.crmbaseentity" Nullable="false"/>
</Action>
Näete, et see on olemikomplektiga seotud new_people OData toiming.
Sarnaseid toiminguid leiate ja OnExternalDeleted:OnExternalUpdated
<Action Name="OnExternalDeleted" IsBound="true">
<Parameter Name="entityset" Type="Collection(mscrm.new_people)" Nullable="false"/>
<Parameter Name="Target" Type="mscrm.crmbaseentity" Nullable="false"/>
</Action>
<Action Name="OnExternalUpdated" IsBound="true">
<Parameter Name="entityset" Type="Collection(mscrm.new_people)" Nullable="false"/>
<Parameter Name="Target" Type="mscrm.crmbaseentity" Nullable="false"/>
</Action>
Sõnumite vaatamine pistikprogrammi registreerimistööriista abil
Kui registreerite lisandmooduli registreerimistööriista abil lisandmooduli etapi, näete järgmisi teateid.
Sõnumite kasutamine Dataverse'i muudatustest teavitamiseks
Dataverse'i muudatustest teavitamiseks peate kutsuma sobiva API. Saate kasutada kas Dataverse'i veebi API-d või SDK-d .NET-i jaoks.
Enne nende sõnumite kasutamist võiksite nende olemasolu kinnitamiseks kasutada artiklis Virtuaalse tabeli toetamiseks loodud sõnumite vaatamine kirjeldatud protseduuri.
Veebi API kasutamine
Kuna need API-d on tabelikogumiga seotud OData toimingud, saate järgida siin dokumenteeritud mustrit: Veebi API toimingute> kasutamine Seotud toimingud> Tabelikogumiga seotud toimingud. Järgnevalt on toodud mõned näited, mis näitavad virtuaalse tabeli kasutamist new_people .
Kui ID väärtus on helistavale süsteemile teada, tuleks see alati lisada.
Sihtparameetri abil edastatud olemi eksemplaril peab olemi tüübi määratlemiseks olema määratud sobiv @odata.type marginaali atribuud. Kui seda pole kaasatud, tagastatakse tõrge.
Need kõned peaksid alati tagasi pöörduma 204: No Content.
OnExternalCreated
Selle toimingu puhul peaksid väärtused sisaldama kõiki kirje loomisel määratud atribuute.
POST [Organization Uri]/api/data/v9.1/new_peoples/Microsoft.Dynamics.CRM.OnExternalCreated HTTP/1.1
Authorization: Bearer [REDACTED]
Content-Type: application/json
{
"Target": {
"@odata.type": "Microsoft.Dynamics.CRM.new_people",
"new_name": "John",
"new_age": 23,
"new_lastname": "Doe",
"new_peopleid": "f6f5896b-bf08-455c-9bd3-526760cb3685"
}
}
OnExternalUuendatud
Selle toimingu puhul tuleks kaasata ainult need atribuudid, mis on muutunud.
POST [Organization Uri]/api/data/v9.1/new_peoples/Microsoft.Dynamics.CRM.OnExternalUpdated HTTP/1.1
Authorization: Bearer [REDACTED]
Content-Type: application/json
{
"Target": {
"@odata.type": "Microsoft.Dynamics.CRM.new_people",
"new_age": 24,
"new_peopleid": "f6f5896b-bf08-455c-9bd3-526760cb3685"
}
}
OnExternalDeleted
Selle toimingu jaoks on vaja ainult kirje ainuidentifikaatorit.
POST [Organization Uri]/api/data/v9.1/new_peoples/Microsoft.Dynamics.CRM.OnExternalDeleted HTTP/1.1
Authorization: Bearer [REDACTED]
Content-Type: application/json
{
"Target": {
"@odata.type": "Microsoft.Dynamics.CRM.new_people",
"new_peopleid": "f6f5896b-bf08-455c-9bd3-526760cb3685"
}
}
NET-i SDK kasutamine
Kui kasutate SDK for .NET, saate kasutada kas varajasi või hilisi sidumistüüpe. Lisateave: Hilises ja varajases köites programmeerimine .NET SDK abil
Varajases köites tüübid
Selles näites kasutatakse CrmServiceClienti varajase köitmise tüüpidega, kuigi ServiceClient seda saab ka kasutada.
var service = new CrmServiceClient(conn);
// var service = new ServiceClient(conn);
//OnExternalCreated
var createPerson = new new_people
{
new_peopleId = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685"),
new_name = "John",
new_Age = 23,
new_LastName = "Doe"
};
var createRequest = new OnExternalCreatedRequest
{
Target = createPerson
};
service.Execute(createRequest);
//OnExternalUpdated
var updatePerson = new new_people
{
new_peopleId = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685"),
new_Age = 24
};
var updateRequest = new OnExternalUpdatedRequest
{
Target = updatePerson
};
service.Execute(updateRequest);
//OnExternalDeleted
var deletePerson = new new_people
{
new_peopleId = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685")
};
var deleteRequest = new OnExternalDeletedRequest
{
Target = deletePerson
};
Hilises köites tüübid
Selles näites kasutatakse hilise köitmisega tüüpi CrmServiceClienti , kuigi ServiceClient seda saab ka kasutada.
var service = new CrmServiceClient(conn);
// var service = new ServiceClient(conn);
//OnExternalCreated
Entity createPerson = new Entity("new_people");
createPerson["new_peopleid"] = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685");
createPerson["new_name"] = "John";
createPerson["new_age"] = 23;
createPerson["new_lastname"] = "Doe";
var orgCreateRequest = new OrganizationRequest("OnExternalCreated");
orgCreateRequest["Target"] = createPerson;
service.Execute(orgCreateRequest);
//OnExternalUpdated
Entity updatePerson = new Entity("new_people");
updatePerson["new_peopleid"] = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685");
updatePerson["new_age"] = 24;
var orgUpdateRequest = new OrganizationRequest("OnExternalUpdated");
orgUpdateRequest["Target"] = updatePerson;
service.Execute(orgUpdateRequest);
//OnExternalDeleted
Entity deletePerson = new Entity("new_people");
deletePerson["new_peopleid"] = new Guid("f6f5896b-bf08-455c-9bd3-526760cb3685");
var orgDeleteRequest = new OrganizationRequest("OnExternalDeleted");
orgDeleteRequest["Target"] = deletePerson;
service.Execute(orgDeleteRequest);
Vt ka
Ürituse raamistik
Microsoft Dataverse'i ärisündmused
Virtuaalsete tabelite (olemite) kasutamise alustamine