Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
[Toto téma představuje předběžnou dokumentaci a může se změnit.]
Tento článek popisuje tipy a známé problémy při práci s moduly plug-in s nízkým kódem v Microsoft Dataverse.
Důležité
- Okamžité moduly plug-in s minimálním psaním kódu nemají prioritu a nejsou poskytovány jako funkce. Okamžité moduly plug-in s minimálním psaním kódu jsou nahrazeny funkcemi. Další informace: Funkce v Microsoft Dataverse (Preview)
- Toto je funkce ve verzi Preview.
- Funkce Preview nejsou určené pro normální používání a mohou mít omezené fungování. Tyto funkce jsou k dispozici před oficiální verzí, aby zákazníci mohli získat dřívější přístup a poskytnout zpětnou vazbu.
Zpracování obecných problémů s modulem runtime
Pokud se při práci s modulem plug-in s minimálním psaním kódu pro modul runtime potýkáte s problémy, znovu jej otevřete pro úpravy. Poté se problémy IntelliSense ve výrazu vzorce zobrazí v editoru modulů plug-in s minimálním psaním kódu. Postupujte podle pokynů a opravte problém, který se také zobrazí, a pak znovu uložte modul plug-in.
Při provádění oprav po operaci buďte opatrní.
Spuštění modulu plug-in s minimálním psaním kódu může narazit na tuto chybu při použití příkazu Patch po operaci: Execution failed for PowerPlexPlugin: System.ServiceModel.FaultException 1[Microsoft.Xrm.Sdk.OrganizationServiceFault] This low-code plugin's execution was cancelled because the plugin logic caused an infinite loop. Correct the plugin logic and try again.
Použití příkazu Patch po operaci musí být provedeno opatrně, aby nedošlo k nekonečným smyčkám. Operace Patch inicializuje novou transakci. Například pokud MyTable spustí Patch(MyTable, ThisRecord, ...) jako aktivační událost aktualizace, může tato operace vést k rekurzivnímu cyklu aktualizací.
Tady je několik příkladů operací, které se můžou tomuto problému vyhnout:
Patch(CurrentTable, SomeOtherRecord, ... ) // For example, updating a manager's contact from a contact record.Patch(OtherTable, SomeOtherRecord, ... ) // Operations on a completely different table.
Řešení dvouminutového časového limitu
U operací, které budou pokračovat po dobu dvou minut nebo déle, se může zobrazit tato chyba:
Execution failed for PowerPlexPlugin: System.ServiceModel.FaultException1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: Operation not allowed as plugin execution exceeded maximum allowed time (Fault Detail is equal to Exception details: limit your callbacks .. Create, Update)
Při práci s moduly plug-in Dataverse s nízkým kódem je důležité efektivně spravovat dvouminutový časový limit:
- Omezte počet
PatchaCollectoperací uvnitř pluginů, zejména pokud už máte v této tabulce zaregistrované další plug-iny, které můžou ovlivnit výkon pluginů. - Monitorujte výkon. Sledujte výkon pluginů a zvažte použití možností trasování a protokolování v Dataverse ke sledování doby a selhání při provádění. Podle těchto pokynů můžete zajistit, aby moduly plug-in s nízkým kódem běžely hladce v prostředí Dataverse bez přerušení způsobené dvěmaminutovým vypršením časového limitu. Více informací: Trasování a protokolování
Neúspěšná odpověď přijatá z APIM
Pokud se zobrazí tato chybová zpráva, která se dá vrátit ze služby API Management (APIM), stačí modul plug-in upravit a pak znovu ukládat. Uložením se inicializuje ověřování APIM a modul plug-in se úspěšně spustí.
Execution failed for PowerPlexPlugin: Failed response received from APIM; StatusCode: NotFound; ResponseContent: { "statusCode": 404, "message": "Resource not found" } Method: POST; RequestUri: https://canada-001.azure-apim.net/invoke; StatusCode: NotFound; ResponseContent: { "statusCode": 404, "message": "Resource not found" }; HeadersString: Headers - 'Access-Control-Allow-Methods': 'System.String[]'; 'Access-Control-Allow-Origin': 'System.String[]'; 'Access-Control-Max-Age': 'System.String[]'; 'Access-Control-Expose-Headers': 'System.String[]'; 'Date': 'System.String[]'; Access to APIM expires..edit and save the plugin