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.
[Tento článek je předběžným vydáním dokumentace a může se změnit.]
Power Pages klientská rozhraní API pomáhají vývojářům manipulovat s komponentami uživatelského rozhraní, spravovat formuláře a seznamy, zpracovávat ověřování uživatelů a interagovat s záznamy Dataverse prostřednictvím kódu programu. Rozhraní API klienta bude k dispozici, když se stránka načte a bude k němu možné přistupovat prostřednictvím globální proměnné s názvem, který zvolíte.
Tento článek používá název $pages proměnné v různých příkladech a doporučuje postupovat podle této konvence vytváření názvů pro konzistenci.
Pomocí klientských rozhraní API můžete:
Pomocí klientského $pages rozhraní API můžete:
- Načtení a úprava formulářů a ovládacích prvků formulářů
- Zobrazení nebo skrytí prvků uživatelského rozhraní
- Vytvoření a načtení záznamů pomocí webového rozhraní API
- Správa ověřování uživatelů
- Práce s vícejazyčným obsahem
Important
- Toto je funkce ve verzi Preview.
- Funkce náhledu nejsou určeny pro produkční použití a mohou mít omezenou funkčnost. Tyto funkce podléhají dodatečným podmínkám použití a jsou k dispozici před oficiálním vydáním, aby zákazníci mohli získat včasný přístup a poskytnout zpětnou vazbu.
Inicializace rozhraní API klienta
Rozhraní $pages API klienta se při načtení stránky neinicializuje okamžitě.
Microsoft.Dynamic365.Portal.onPagesClientApiReady Pomocí funkce přiřaďte objekt rozhraní API proměnné$pages. Existují dva způsoby, jak inicializovat rozhraní API klienta:
Připravenost rozhraní API založené na zpětném volání
Použijte funkci zpětného volání, která přiřadí objekt rozhraní API proměnné, kterou definujete, když je připravená. Dva příklady ukazují, jak:
Pomocí anonymní funkce:
Microsoft.Dynamic365.Portal.onPagesClientApiReady(($pages) => {
const forms = $pages.currentPage.forms.getAll();
console.log(`Found ${forms.length} forms on the page.`);
});
Pomocí pojmenované funkce:
function start($pages){
const forms = $pages.currentPage.forms.getAll();
console.log(`Found ${forms.length} forms on the page.`);
}
Microsoft.Dynamic365.Portal.onPagesClientApiReady(start)
Připravenost rozhraní API na základě příslibu nebo očekávání
Pomocí operátoru await zpracuje příslib vrácený Microsoft.Dynamic365.Portal.onPagesClientApiReady funkcí pro čistější asynchronní tok.
let $pages = await Microsoft.Dynamic365.Portal.onPagesClientApiReady();
const forms = $pages.currentPage.forms.getAll();
console.log(`Found ${forms.length} forms on the page.`);
Kdy použít jednotlivé přístupy
Následující tabulka popisuje, kdy použít jednotlivé přístupy.
| Přístup | Kdy ho použít |
|---|---|
| Připravenost rozhraní API založené na zpětném volání | Použijte, když potřebujete podporovat starší prohlížeče nebo starší skripty, které nepodporují async/await, nebo pokud chcete zaregistrovat více obslužných rutin, které se spouští, když je rozhraní API připravené. Ideální pro vzory řízené událostmi. |
| Připravenost rozhraní API na základě příslibu nebo očekávání | Používá se v moderních javascriptových prostředích, která podporují async/await čistější sekvenční kód. Nejlepší, když logika závisí na připraveném rozhraní API před pokračováním v provádění. |
Tip
Pokud už základ kódu používáte async/await, upřednostňujte přístup založený na příslibu pro konzistenci.
kolekce $pages.currentPage.forms
Kolekce $pages.currentPage.forms obsahuje metody pro práci s prvky formuláře na stránce.
metody $pages.currentPage.forms
Pomocí těchto metod můžete vypsat formuláře a získat konkrétní instance formulářů.
| Metoda | Návraty | Description |
|---|---|---|
getAll |
IForm[] |
Vrátí všechny formuláře přidané na aktuální stránku. |
getFormById(id: string) |
IForm |
Načte formulář podle ID elementu HTML. |
getFormByName(name: string) |
IForm |
Načte formulář podle názvu. |
příklady metod $pages.currentPage.forms
Tyto příklady ukazují, jak získat všechny formuláře a načíst konkrétní formuláře podle ID nebo názvu.
let forms = $pages.currentPage.forms.getAll();
let form1 = $pages.currentPage.forms.getFormById('form_#1');
let form2 = $pages.currentPage.forms.getFormByName('form_name')
IForm – rozhraní
Rozhraní IForm představuje kontejner pro ovládací prvky a karty.
Vlastnosti IForm
Následující vlastnosti popisují formulář a jeho obsažené ovládací prvky a karty.
| Vlastnictví | Typ | Description |
|---|---|---|
id |
řetězec | ID formuláře. |
name |
řetězec | Název formuláře. |
controls |
Řízení[] |
Všechny ovládací prvky ve formuláři. |
tabs |
Tabulátor[] |
Všechny karty ve formuláři. |
isMultiStep |
Boolean | True pokud formulář je vícekrokový; jinak nepravda. Viz formulář Multistep. |
Metody IForm
Pomocí těchto metod můžete dotazovat viditelnost formuláře a přepínat, jestli je viditelný.
| Metoda | Návraty | Description |
|---|---|---|
getVisible |
boolean |
Vrátí hodnotu true, pokud je formulář viditelný; jinak nepravda. |
setVisible(isVisible: boolean) |
void |
Nastaví viditelnost formuláře. |
Příklad IForm
Následující příklad načte formulář podle ID a zaznamená jeho viditelnost, počet ovládacích prvků a karty.
let form = $pages.currentPage.forms.getFormById('form_#1');
console.log(`Form id: ${form.id} has ${form.controls.length} controls.`);
if (form.getVisible()) {
console.log('Form is currently visible.');
}
let tabs = form.tabs;
console.log(`Form has ${tabs.length} tabs.`);
Formulář s více kroky
Vícekrokový formulář je kontejner, který obsahuje více základních formulářů.
Vlastnosti formuláře s více kroky
Následující vlastnosti platí pro kontejner vícekrokového formuláře a popisují, co je k dispozici v aktuálně aktivním kroku.
| Vlastnictví | Typ | Description |
|---|---|---|
id |
řetězec | ID vícekrokového formuláře. |
controls |
Řízení[] |
Všechny ovládací prvky v aktuálním kroku. |
tabs |
Tabulátor[] |
Všechny karty v aktuálním kroku. |
isMultiStep |
Boolean | True pokud formulář je vícekrokový; jinak nepravda. |
nextButton |
JQuery Element | Představuje další tlačítko (prázdný objekt, pokud chybí). |
previousButton |
JQuery Element | Představuje předchozí tlačítko (prázdný objekt, pokud chybí). |
Vícekrokové metody formulářů
Pomocí těchto metod můžete zkontrolovat viditelnost a přecházet mezi kroky ve vícekrokovém formuláři.
| název | Návraty | Description |
|---|---|---|
getVisible |
boolean |
Vrátí hodnotu true, pokud je formulář viditelný; jinak nepravda. |
setVisible(isVisible: boolean) |
void |
Nastaví viditelnost formuláře. |
isVisible |
boolean |
Vlastnost označující, zda má být formulář zobrazen (true) nebo skrytý (false). |
hasNextStep |
boolean |
Vrátí hodnotu true, pokud existuje další krok; jinak nepravda. |
hasPreviousStep |
boolean |
Vrátí hodnotu true, pokud existuje předchozí krok. jinak nepravda. |
goToNextStep |
void |
Přejde k dalšímu kroku; odešle formulář, pokud neexistuje žádný další krok. |
goToPreviousStep |
void |
Přejde na předchozí krok; vyvolá výjimku, pokud neexistuje. |
Příklad formuláře s více kroky
Tento příklad ukazuje, jak načíst formulář s více kroky, zkontrolovat ho a přejít k dalšímu kroku.
let $pages = await Microsoft.Dynamic365.Portal.onPagesClientApiReady();
let form = $pages.currentPage.forms.getFormById('multiform_#1');
console.log(`Form id: ${form.id} has ${form.controls.length} controls.`);
if (form.getVisible()) {
console.log('Form is currently visible.');
}
let tabs = form.tabs;
console.log(`Form has ${tabs.length} tabs.`);
form.goToNextStep();
Tab
A Tab obsahuje jeden nebo více oddílů ve formuláři.
Vlastnost tabulátoru Sections
Pole oddílů na kartě
Metody tabulátoru
Pomocí těchto metod můžete zkontrolovat viditelnost karty, načíst jeho název a přepnout, jestli je viditelná.
| Metoda | Návraty | Description |
|---|---|---|
getVisible |
boolean |
Vrátí hodnotu true, pokud je karta viditelná; jinak nepravda. |
getName |
string |
Vrátí název karty. |
setVisible(isVisible: boolean) |
void |
Nastaví viditelnost karty. |
Příklad tabulátoru
Tento příklad načte formulář, vyčíslí jeho karty a zaznamená název první karty.
let form = $pages.currentPage.forms.getFormById('form_#1');
let tabs = form.tabs;
console.log(`Form has ${tabs.length} tabs.`);
console.log(`First tab is named: ${tabs[0].getName()}`);
Oddíl
Oddíly seskupují ovládací prvky na kartě.
Controls Section – vlastnost
Pole ovládacích prvků v rámci oddílu
Metody oddílů
Pomocí těchto metod můžete přečíst název oddílu a řídit jeho viditelnost.
| Metoda | Návraty | Description |
|---|---|---|
getVisible |
boolean |
Vrátí hodnotu true, pokud je oddíl viditelný; jinak nepravda. |
getName |
string |
Vrátí název oddílu. |
setVisible(isVisible: boolean) |
void |
Nastaví viditelnost oddílu. |
Příklad oddílu
Tento příklad načte oddíly z první karty formuláře a zaznamenává základní podrobnosti.
let form = $pages.currentPage.forms.getFormById('form_#1');
let sections = form.tabs[0].sections;
console.log(`Tab has ${sections.length} section(s).`);
console.log(`First section is named: ${sections[0].getName()}`);
Ovládací prvek
Ovládací prvky představují jednotlivé prvky formuláře.
Řídicí metody
Tyto metody slouží k načtení nebo aktualizaci hodnoty, viditelnosti a zakázaného stavu ovládacího prvku.
| Metoda | Návraty | Description |
|---|---|---|
getDisabled |
boolean |
Vrátí hodnotu true, pokud je ovládací prvek zakázán. |
getVisible |
boolean |
Vrátí hodnotu true, pokud je ovládací prvek viditelný. |
getName |
string |
Vrátí název ovládacího prvku. |
getValue |
string | undefined |
Načte aktuální hodnotu. |
setDisabled(isDisabled: boolean) |
void |
Nastaví zakázaný stav. |
setVisible(isVisible: boolean) |
void |
Nastaví viditelnost. |
setValue(value: string) |
void |
Nastaví novou hodnotu ovládacího prvku. |
Příklad ovládacího prvku
Tento příklad načte formulář, zkontroluje viditelnost prvního ovládacího prvku a pak ho skryje.
let form = $pages.currentPage.forms.getFormById('form_#1');
let controls = form.controls;
if (controls.length > 0) {
if (controls[0].getVisible()) {
console.log(`Control ${controls[0].getName()} is visible.`);
}
controls[0].setVisible(false); // Hide the first control.
}
Podporované ovládací prvky
Všechny ovládací prvky implementují standardní metody řízení. Některé ovládací prvky poskytují více metod a mají různé podrobnosti implementace od standardních kontrolních metod. Seznamte se s dalšími metodami a rozdíly v implementaci pro různé typy ovládacích prvků.
kolekce $pages.currentPage.lists
Kolekce seznamů poskytuje metody pro práci s tradičními a moderními prvky seznamu na stránce.
metody $pages.currentPage.lists
Tyto metody slouží k vytvoření výčtu všech seznamů na stránce a získání konkrétního seznamu podle ID elementu HTML.
| Metoda | Návraty | Description |
|---|---|---|
getAll |
Ilist[] |
Vrátí všechny seznamy na aktuální stránce. |
getListById(id: string) |
IList | Získá seznam podle ID elementu HTML. |
příklady $pages.currentPage.lists
Tyto příklady ukazují, jak vytvořit výčet všech seznamů na stránce a získat konkrétní seznam podle ID elementu HTML.
let lists = $pages.currentPage.lists.getAll();
let list = $pages.currentPage.lists.getListById('list_#1');
IList – rozhraní
Seznam představuje tabulkovou nebo mřížkovou datovou komponentu.
Vlastnosti IList
Tyto vlastnosti identifikují seznam a označují, jestli používá moderní model vykreslování.
| Vlastnictví | Typ | Description |
|---|---|---|
id |
řetězec | Jedinečný identifikátor seznamu. |
isModern |
Boolean | Logická hodnota, která je pravdivá pro moderní seznamy a nepravda jinak. |
Metody IList
Pomocí těchto metod můžete zkontrolovat viditelnost seznamu, přepnout, jestli je viditelný, a získat přístup k podkladovému elementu HTML.
| Metoda | Návraty | Description |
|---|---|---|
getVisible |
boolean |
Vrátí hodnotu true, pokud je seznam viditelný. |
setVisible(isVisible: boolean) |
void |
Nastaví viditelnost seznamu. |
getHtmlElement |
HTMLElement |
Vrátí základní element HTML pro seznam. |
Příklad IList
Následující příklad načte seznam podle ID a zaznamená jeho stav viditelnosti.
let list = $pages.currentPage.lists.getListById('list_#1');
console.log(`List id: ${list.id}`);
if (list.getVisible()) {
console.log('List is currently visible.');
}
objekt $pages.user
Objekt $pages.user poskytuje metody pro přihlášení nebo odhlášení uživatele.
metody $pages.user
Tyto metody nevrací žádnou hodnotu.
| Metoda | Description |
|---|---|
signIn |
Přesměruje uživatele na přihlašovací stránku. |
signOut |
Odhlásí se aktuálně přihlášený uživatel. |
objekt $pages.webAPI
Objekt $pages.webAPI poskytuje metody pro vytváření a načítání záznamů ze zdroje dat.
createRecord – metoda
Vytvoří nový záznam v zadané tabulce.
Syntaxe: $pages.webAPI.createRecord(entitySetName: string, data: object): Promise<object>
Vrátí: Příslib , který se přeloží na vytvořený záznam nebo výsledek operace.
createRecord – parametry metody
Zadejte cílovou tabulku a datový objekt představující záznam, který se má vytvořit.
| Parameter | Typ | Description |
|---|---|---|
entitySetName |
řetězec | Název sady entit. Informace o názvu sady entit ve webovém rozhraní API služby Dataverse |
data |
objekt | Data záznamu, která se mají vytvořit. |
createRecord – příklad metody
Tento příklad ukazuje volání createRecord s názvem sady entit a minimálním datovým objektem.
$pages.webAPI.createRecord('contacts', {
firstName: 'User',
lastName: 'Test'
});
metoda retrieveRecord
Načte záznam podle jeho jedinečného identifikátoru.
Syntaxe: $pages.webAPI.retrieveRecord(entitySetName: string, id: string, options?: string): Promise<object>
Vrátí: Příslib , který se přeloží na objekt záznamu.
retrieveRecord – parametry metody
Zadejte tabulku, ID záznamu a volitelné možnosti dotazu OData $select pro tvarování odpovědi.
| Parameter | Typ | Description |
|---|---|---|
entitySetName |
řetězec | Název sady entit. Seznamte se s názvem sady entit ve webovém rozhraní API služby Dataverse. |
id |
řetězec | Jedinečný identifikátor záznamu. |
options |
řetězec (volitelné) | Volitelný řetězec dotazu OData $select pro omezení vrácených dat. |
Note
options I když je parametr volitelný, pro zajištění nejlepšího výkonu vždy omezte počet vrácených hodnot sloupců pomocí $select této možnosti.
příklad metody retrieveRecord
Tento příklad načte jeden záznam podle ID a omezí vrácené sloupce pomocí možnosti dotazu OData $select .
let record = await $pages.webAPI.retrieveRecord('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', '$select=name');
metoda retrieveMultipleRecords
Načte více záznamů na základě zadaných možností dotazu.
Syntaxe: $pages.webAPI.retrieveMultipleRecords(entitySetName: string, options?: string): Promise<object>
Vrátí: Příslib , který se přeloží na pole objektů záznamů.
retrieveMultipleRecords – parametry metody
Zadejte tabulku a volitelný dotaz OData pro filtrování výsledků a omezení vrácených sloupců.
| Parameter | Typ | Description |
|---|---|---|
entitySetName |
řetězec | Název sady entit. |
options |
řetězec (volitelné) | Řetězec možností dotazu OData pro řízení vrácených dat. Další informace o možnostech dotazů OData podporovaných webovým rozhraním API služby Dataverse |
Note
options I když je parametr volitelný, pro zajištění nejlepšího výkonu vždy omezte počet vrácených hodnot sloupců pomocí $select této možnosti.
příklad metody retrieveMultipleRecords
Tento příklad načte více záznamů a používá OData $select a $top omezuje počet vrácených sloupců a řádků.
let records = await $pages.webAPI.retrieveMultipleRecords('accounts','$select=name&$top=3');
$pages.languages
Objekt $pages.languages poskytuje metody pro načtení seznamu dostupných jazyků pro web, získání aktuálně aktivního jazyka a nastavení nového aktivního jazyka.
metody $pages.languages
Tyto metody slouží ke čtení dostupných jazyků, kontrole aktuálního jazyka a změně webu.
| Metoda | Description | Návraty |
|---|---|---|
getAll |
Načte seznam jazyků povolených pro web. | string[] |
getActive |
Načte aktuálně aktivní jazyk. | string |
setActive(language: string) |
Nastaví daný jazyk jako aktivní jazyk. | void |
Note
setActive metoda způsobí opětovné načtení stránky.
Příklady metod $pages.languages
Tyto příklady ukazují, jak zobrazit seznam všech jazyků, číst aktivní jazyk a nastavit nový aktivní jazyk.
let allLanguages = $pages.languages.getAll();
let activeLanguage = $pages.languages.getActive();
$pages.languages.setActive('hi-IN');
$pages.agent
Objekt $pages.agent poskytuje metody pro navázání komunikace mezi lokalitou a agentem Microsoft Copilot Studio dostupným aktuálnímu uživateli.
$pages.agent.SendActivity(
agentSchemaName: string,
inputActivity: object,
responseSubscriber: function,
errorSubscriber: function
);
| Název parametru | Typ | Description |
|---|---|---|
agentSchemaName |
String | Název schématu robota, na kterého se aktivita odesílá. |
inputActivity |
Object | Objekt obsahující text nebo událost, které se mají odeslat robotovi. |
responseSubscriber |
funkce | Funkce zpětného volání, která se spustí, když agent odešle odpověď. |
errorSubscriber |
funkce | Funkce zpětného volání, která zpracovává chyby. |
Návratový typ: void – funkce nic nevrací.
Objekt odpovědi od agenta přijatý v následujícím formátu:
| název | Typ | Description |
|---|---|---|
type |
String | Typ aktivity, jako je zpráva. |
text |
String | Nepovinná zpráva od agenta. |
textFormat |
String | Volitelné, formát textu zprávy, jako je markdown, prostý nebo XML. |
Id |
String | ID, které jednoznačně identifikuje aktivitu. |
From |
Object | Určuje odesílatele aktivity (včetně ID, jména (volitelného) a informací o roli. |
Conversation |
Object | Obsahuje ID konverzace, do které aktivita patří. |
InputHint |
String | Volitelné, označuje, jestli robot přijímá, očekává nebo ignoruje uživatelský vstup. |
replyToId |
String | ID zprávy odpovědi. |
Příklad
Metoda zpětného volání
Definujte funkce zpětného responseSubscribererrorSubscriber volání pro zpracování odpovědí a chyb agenta.
const responseSubscriber = (response) => {
// Replace with your response handling.
console.log('Agent response:', response);
};
const errorSubscriber = (error) => {
// Replace with your error handling.
console.error('Error:', error);
};
// Replace with your agent schema name.
const agentSchemaName = 'agent SchemaName';
Odeslání zprávy agentu
const inputActivity = {
text: 'Hello!', // Message to the agent.
};
$pages.agent.SendActivity(agentSchemaName, inputActivity, responseSubscriber,
ErrorSubscriber);
Vyvolání události klienta
const inputActivity = {
name: 'AgentEvent', // The name of the event to be invoked
value: {key1:'value1', key2:'value2'} // Open-ended value used to carry additional data or payloads necessary for specific agent operations or responses
};
$pages.agent.SendActivity(agentSchemaName, inputActivity, responseSubscriber,
ErrorSubscriber);
Chybové zprávy
Tady jsou možné chybové zprávy, se kterými se můžou uživatelé setkat, a jejich potenciální příčiny.
| Typ chyby | Příčina | Chybová zpráva pro uživatele |
|---|---|---|
| Ověření schématu agenta | Zadaný neplatný název schématu robota nebo uživatel nemá přístupová oprávnění k agentovi | Invalid bot schema name or access denied. Please check the bot schema name and try again. |
| Chyba načtení tokenu | Při načítání tokenu přímého řádku došlo k chybě. | Something went wrong while fetching the token. Please try again. |
| Chyba účtování aktivity (opakování) | Při publikování aktivity došlo k chybě a vyžaduje se opakování. | Something went wrong while posting the activity: retry. |
| Chyba účtování aktivity (vypršení časového limitu) | Časový limit vypršel při čekání na odchozí zprávu nebo postActivity | Timed out while posting activity: Please retry. |
| Chyba účtování aktivity (neplatná aktivita) | Vstupní aktivita nemá text ani název pro vyvolání události. | Invalid activity: At least one of text, name, or attachments must be provided. |
| Chyba aktivity publikování (ID uživatele se nenašlo nebo token se nenašel) | Token se nenašel v úložišti relací nebo v tokenu se nenašlo ID uživatele. | Error retrieving user ID: {error message} |
| Chyba účtování aktivity (obecné) | Při publikování aktivity došlo k nezadané chybě. | Something went wrong while posting the activity: Please try again. |
| Chyba přímého připojení | Při vytváření přímého připojení k robotovi došlo k chybě. | Something went wrong while creating direct line connection: Please try again. |
| Obecná chyba | Neočekávaná chyba, která nepatří do výše uvedených kategorií | An unexpected error occurred while sending activity: Please try again. |