Power Pages Client-API's (preview)

Dit artikel is documentatie voorafgaand aan de release en kan nog wijzigen.

Power Pages client-API's helpen ontwikkelaars bij het bewerken van UI-onderdelen, het beheren van formulieren en lijsten, het afhandelen van gebruikersverificatie en het programmatisch werken met Dataverse-records. De client-API wordt beschikbaar wanneer uw pagina wordt geladen en kan worden geopend via een globale variabele met een naam die u kiest.

In dit artikel wordt de naam $pages van de variabele in alle voorbeelden gebruikt en wordt u aangeraden deze naamconventie te volgen voor consistentie.

Met de client-API's kunt u het volgende doen:

Met de $pages client-API kunt u het volgende doen:

  • Formulieren en formulierbesturingselementen ophalen en wijzigen
  • UI-elementen weergeven of verbergen
  • Records maken en ophalen met behulp van de web-API
  • Gebruikersverificatie beheren
  • Werken met meertalige inhoud

Important

  • Dit is een preview-functie.
  • Preview-functies zijn niet bedoeld voor productiegebruik en bieden mogelijk beperkte functionaliteit. Voor deze functies gelden aanvullende gebruiksvoorwaarden. Bovendien zijn ze beschikbaar vóór een officiële release zodat klanten vroeg toegang kunnen krijgen en feedback kunnen geven.

Initialisatie van client-API

De $pages client-API wordt niet onmiddellijk geïnitialiseerd wanneer de pagina wordt geladen. Gebruik de Microsoft.Dynamic365.Portal.onPagesClientApiReady functie om het API-object toe te wijzen aan de $pages variabele. Er zijn twee manieren om de client-API te initialiseren:

Gereedheid voor callback-API

Gebruik een callback-functie waarmee het API-object wordt toegewezen aan een variabele die u definieert wanneer deze gereed is. In twee voorbeelden ziet u hoe:

Met behulp van een anonieme functie:

Microsoft.Dynamic365.Portal.onPagesClientApiReady(($pages) => {
    const forms = $pages.currentPage.forms.getAll();
    console.log(`Found ${forms.length} forms on the page.`);
});

Met behulp van een benoemde functie:

function start($pages){
    const forms = $pages.currentPage.forms.getAll();
    console.log(`Found ${forms.length} forms on the page.`);
}

Microsoft.Dynamic365.Portal.onPagesClientApiReady(start)

Gereedheid voor promise/await-gebaseerde API

Gebruikt wacht op het afhandelen van de belofte die door de Microsoft.Dynamic365.Portal.onPagesClientApiReady functie wordt geretourneerd voor een schonere asynchrone stroom.

let $pages = await Microsoft.Dynamic365.Portal.onPagesClientApiReady();
const forms = $pages.currentPage.forms.getAll();
console.log(`Found ${forms.length} forms on the page.`);

Wanneer moet u elke benadering gebruiken

In de volgende tabel wordt beschreven wanneer u elke benadering gebruikt.

Methode Wanneer gebruiken
Gereedheid voor callback-API Gebruik deze functie wanneer u oudere browsers of oudere scripts wilt ondersteunen die geen ondersteuning bieden async/awaitof als u meerdere handlers wilt registreren die worden uitgevoerd wanneer de API gereed is. Ideaal voor gebeurtenisgestuurde patronen.
Gereedheid voor promise/await-gebaseerde API Gebruik in moderne JavaScript-omgevingen die ondersteuning bieden async/await voor schonere, sequentiële code. Het beste wanneer uw logica afhankelijk is van de API die gereed is voordat u doorgaat met de uitvoering.

Tip

Als uw codebase al gebruikmaakt async/await, geeft u de voorkeur aan de Promise-benadering voor consistentie.

$pages.currentPage.forms-verzameling

De $pages.currentPage.forms verzameling bevat methoden voor het werken met formulierelementen op de pagina.

methoden $pages.currentPage.forms

Gebruik deze methoden om formulieren weer te geven en specifieke formulierexemplaren op te halen.

Methode Returns Beschrijving
getAll IForm[] Hiermee worden alle formulieren geretourneerd die zijn toegevoegd aan de huidige pagina.
getFormById(id: string) IForm Hiermee wordt een formulier opgehaald op basis van de HTML-element-id.
getFormByName(name: string) IForm Hiermee wordt een formulier opgehaald op basis van de naam.

$pages.currentPage.forms-methodevoorbeelden

Deze voorbeelden laten zien hoe u alle formulieren ophaalt en specifieke formulieren op id of naam ophaalt.

let forms = $pages.currentPage.forms.getAll();
let form1 = $pages.currentPage.forms.getFormById('form_#1');
let form2 = $pages.currentPage.forms.getFormByName('form_name')

IForm-interface

De IForm interface vertegenwoordigt een container voor besturingselementen en tabbladen.

IForm-eigenschappen

In de volgende eigenschappen worden het formulier en de bijbehorende besturingselementen en tabbladen beschreven.

Vastgoed Typ Beschrijving
id touw De id van het formulier.
name touw De naam van het formulier.
controls Beheersen[] Alle besturingselementen in het formulier.
tabs Tabblad[] Alle tabbladen in het formulier.
isMultiStep boolean Waar als het formulier multistep is; anders, onwaar. Zie multistep-formulier.

IForm-methoden

Gebruik deze methoden om een query uit te voeren op de zichtbaarheid van een formulier en om te schakelen of het zichtbaar is.

Methode Returns Beschrijving
getVisible boolean Retourneert waar als het formulier zichtbaar is; anders, onwaar.
setVisible(isVisible: boolean) void Hiermee stelt u de zichtbaarheid van het formulier in.

Voorbeeld van IForm

In het volgende voorbeeld wordt een formulier opgehaald op basis van id en worden de zichtbaarheid, het aantal besturingselementen en tabbladen geregistreerd.

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.`);

Formulier voor meerdere stappen

Een formulier met meerdere taken is een container met meerdere basisformulieren.

Eigenschappen van formulier met meerdere taken

De volgende eigenschappen zijn van toepassing op de formuliercontainer met meerdere stappen en beschrijven wat er beschikbaar is in de huidige actieve stap.

Vastgoed Typ Beschrijving
id touw De id van het multistep-formulier.
controls Beheersen[] Alle besturingselementen in de huidige stap.
tabs Tabblad[] Alle tabbladen in de huidige stap.
isMultiStep boolean Waar als het formulier multistep is; anders, onwaar.
nextButton JQuery-element Vertegenwoordigt de volgende knop (leeg object indien afwezig).
previousButton JQuery-element Vertegenwoordigt de vorige knop (leeg object indien afwezig).

Multistep-formuliermethoden

Gebruik deze methoden om de zichtbaarheid te controleren en te schakelen tussen stappen in een formulier met meerdere stappen.

Naam Returns Beschrijving
getVisible boolean Retourneert waar als het formulier zichtbaar is; anders, onwaar.
setVisible(isVisible: boolean) void Hiermee stelt u de zichtbaarheid van het formulier in.
isVisible boolean Eigenschap die aangeeft of het formulier moet worden weergegeven (waar) of verborgen (onwaar).
hasNextStep boolean Retourneert waar als er een volgende stap bestaat; anders, onwaar.
hasPreviousStep boolean Retourneert waar als er een vorige stap bestaat; anders, onwaar.
goToNextStep void Navigeert naar de volgende stap; verzendt het formulier als er geen volgende stap bestaat.
goToPreviousStep void Navigeert naar de vorige stap; genereert een uitzondering als er geen bestaat.

Voorbeeld van multistep-formulier

In dit voorbeeld ziet u hoe u een formulier met meerdere stappen ophaalt, inspecteert en verder gaat met de volgende stap.

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

Een Tab bevat een of meer secties in een formulier.

Tab-eigenschap Sections

Een matrix met secties op het tabblad.

Tabmethoden

Gebruik deze methoden om de zichtbaarheid van een tabblad te controleren, de naam op te halen en te schakelen of deze zichtbaar is.

Methode Returns Beschrijving
getVisible boolean Retourneert waar als het tabblad zichtbaar is; anders, onwaar.
getName string Retourneert de naam van het tabblad.
setVisible(isVisible: boolean) void Hiermee stelt u de zichtbaarheid van het tabblad in.

Tabbladvoorbeeld

In dit voorbeeld wordt een formulier opgehaald, de bijbehorende tabbladen opgesomd en de naam van het eerste tabblad geregistreerd.

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()}`);  

Afdeling

Secties groep besturingselementen binnen een tabblad.

Sectie-eigenschap Controls

Een matrix met besturingselementen in de sectie.

Sectiemethoden

Gebruik deze methoden om de naam van een sectie te lezen en de zichtbaarheid ervan te beheren.

Methode Returns Beschrijving
getVisible boolean Retourneert waar als de sectie zichtbaar is; anders, onwaar.
getName string Retourneert de sectienaam.
setVisible(isVisible: boolean) void Hiermee stelt u de zichtbaarheid van de sectie in.

Sectievoorbeeld

In dit voorbeeld worden secties opgehaald van het eerste tabblad van een formulier en logboeken met basisdetails.

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()}`);

Besturingselement

Besturingselementen vertegenwoordigen afzonderlijke formulierelementen.

Besturingsmethoden

Gebruik deze methoden om de waarde, zichtbaarheid en uitgeschakelde status van een besturingselement op te halen of bij te werken.

Methode Returns Beschrijving
getDisabled boolean Retourneert waar als het besturingselement is uitgeschakeld.
getVisible boolean Retourneert waar als het besturingselement zichtbaar is.
getName string Retourneert de naam van het besturingselement.
getValue string | undefined Haalt de huidige waarde op.
setDisabled(isDisabled: boolean) void Hiermee stelt u de uitgeschakelde status in.
setVisible(isVisible: boolean) void Hiermee stelt u de zichtbaarheid in.
setValue(value: string) void Hiermee stelt u een nieuwe waarde in voor het besturingselement.

Voorbeeld van besturingselement

In dit voorbeeld wordt een formulier opgehaald, de zichtbaarheid van het eerste besturingselement gecontroleerd en vervolgens verborgen.

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.  
}

Ondersteunde besturingselementen

Alle besturingselementen implementeren de standaardbesturingsmethoden. Sommige besturingselementen bieden meer methoden en hebben verschillende implementatiedetails van de standaardbeheermethoden. Meer informatie over andere methoden en implementatieverschillen voor verschillende typen besturingselementen.

$pages.currentPage.lists collection

De lijstenverzameling biedt methoden om te werken met traditionele en moderne lijstelementen op de pagina.

methoden $pages.currentPage.lists

Gebruik deze methoden om alle lijsten op de pagina op te sommen en een specifieke lijst op te halen op basis van de HTML-element-id.

Methode Returns Beschrijving
getAll IList[] Retourneert alle lijsten op de huidige pagina.
getListById(id: string) IList Hiermee haalt u een lijst op met de HTML-element-id.

voorbeelden van $pages.currentPage.lists

In deze voorbeelden ziet u hoe u alle lijsten op de pagina opsommen en een specifieke lijst op basis van de HTML-element-id opgeeft.

let lists = $pages.currentPage.lists.getAll();
let list = $pages.currentPage.lists.getListById('list_#1');

IList-interface

Een lijst vertegenwoordigt een gegevensonderdeel in tabelvorm of rasterachtig.

IList-eigenschappen

Deze eigenschappen identificeren de lijst en geven aan of het moderne renderingmodel wordt gebruikt.

Vastgoed Typ Beschrijving
id touw De unieke id van de lijst.
isModern boolean Een Booleaanse waarde die waar is voor moderne lijsten en anders onwaar.

IList-methoden

Gebruik deze methoden om de zichtbaarheid van lijsten te controleren, te schakelen of deze zichtbaar is en toegang te krijgen tot het onderliggende HTML-element.

Methode Returns Beschrijving
getVisible boolean Retourneert waar als de lijst zichtbaar is.
setVisible(isVisible: boolean) void Hiermee stelt u de zichtbaarheid van de lijst in.
getHtmlElement HTMLElement Retourneert het onderliggende HTML-element voor de lijst.

Voorbeeld van IList

In het volgende voorbeeld wordt een lijst opgehaald op basis van id en wordt de zichtbaarheidsstatus geregistreerd.

let list = $pages.currentPage.lists.getListById('list_#1');  
console.log(`List id: ${list.id}`);  
if (list.getVisible()) {  
console.log('List is currently visible.');  
}

$pages.user-object

Het $pages.user object biedt methoden voor het aanmelden van de gebruiker in of uit.

$pages.user-methoden

Deze methoden retourneren geen waarde.

Methode Beschrijving
signIn Hiermee wordt de gebruiker omgeleid naar de aanmeldingspagina.
signOut Hiermee wordt de momenteel aangemelde gebruiker afgemeld.

$pages.webAPI-object

Het $pages.webAPI object biedt methoden voor het maken en ophalen van records uit een gegevensbron.

methode createRecord

Hiermee maakt u een nieuwe record in de opgegeven tabel.

Syntaxis: $pages.webAPI.createRecord(entitySetName: string, data: object): Promise<object>
Retourneert: Een belofte die wordt omgezet in het gemaakte record- of bewerkingsresultaat.

parameter createRecord-methode

Geef de doeltabel en het gegevensobject op dat de record vertegenwoordigt die moet worden gemaakt.

Kenmerk Typ Beschrijving
entitySetName touw De naam van de entiteitsset. Meer informatie over de naam van de entiteitsset in De Web-API van Dataverse
data Voorwerp De recordgegevens die moeten worden gemaakt.

voorbeeld van createRecord-methode

In dit voorbeeld ziet u het aanroepen createRecord met een naam van een entiteitsset en een minimaal gegevensobject.

$pages.webAPI.createRecord('contacts', {  
firstName: 'User',
lastName: 'Test'  
});

methode retrieveRecord

Haalt een record op met de unieke id.

Syntaxis: $pages.webAPI.retrieveRecord(entitySetName: string, id: string, options?: string): Promise<object>
Retourneert: Een belofte die wordt omgezet in het recordobject.

methodeparameters retrieveRecord

Geef de tabel, record-id en optionele OData-queryopties $select op om het antwoord vorm te geven.

Kenmerk Typ Beschrijving
entitySetName touw De naam van de entiteitsset. Meer informatie over de naam van de entiteitsset in de Dataverse-web-API.
id touw De unieke id van de record.
options tekenreeks (optioneel) Een optionele OData-queryreeks $select om de geretourneerde gegevens te beperken.

Note

Hoewel de parameter optioneel is, beperken de options beste prestaties altijd het aantal kolomwaarden dat wordt geretourneerd met behulp van de $select optie.

voorbeeld van methode retrieveRecord

In dit voorbeeld wordt één record opgehaald op basis van id en worden de geretourneerde kolommen beperkt met behulp van een OData-queryoptie $select .

let record = await $pages.webAPI.retrieveRecord('accounts', 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',  '$select=name');

methode retrieveMultipleRecords

Hiermee worden meerdere records opgehaald op basis van de opgegeven queryopties.

Syntaxis: $pages.webAPI.retrieveMultipleRecords(entitySetName: string, options?: string): Promise<object>
Retourneert: Een belofte die wordt omgezet in een matrix met recordobjecten.

methodeparameters retrieveMultipleRecords

Geef de tabel en optionele OData-query op om resultaten te filteren en geretourneerde kolommen te beperken.

Kenmerk Typ Beschrijving
entitySetName touw De naam van de entiteitsset.
options tekenreeks (optioneel) Een tekenreeks voor OData-queryopties om de geretourneerde gegevens te beheren. Meer informatie over OData-queryopties die worden ondersteund door de Dataverse-web-API

Note

Hoewel de parameter optioneel is, beperken de options beste prestaties altijd het aantal kolomwaarden dat wordt geretourneerd met behulp van de $select optie.

voorbeeld van methode retrieveMultipleRecords

In dit voorbeeld worden meerdere records opgehaald en OData $select gebruikt en $top om het aantal geretourneerde kolommen en rijen te beperken.

let records = await $pages.webAPI.retrieveMultipleRecords('accounts','$select=name&$top=3');

$pages.languages

Het $pages.languages object biedt methoden voor het ophalen van de lijst met beschikbare talen voor de website, het ophalen van de huidige actieve taal en het instellen van een nieuwe actieve taal.

methoden voor $pages.talen

Gebruik deze methoden om de beschikbare talen te lezen, de huidige taal te controleren en deze voor de site te wijzigen.

Methode Beschrijving Returns
getAll Hiermee haalt u de lijst met talen op die zijn ingeschakeld voor de website. string[]
getActive Haalt de momenteel actieve taal op. string
setActive(language: string) Hiermee stelt u de opgegeven taal in als de actieve taal. void

Note

setActive de methode zorgt ervoor dat een pagina opnieuw wordt geladen.

$pages.languages-methodevoorbeelden

In deze voorbeelden ziet u hoe u alle talen weergeeft, de actieve taal leest en een nieuwe actieve taal instelt.

let allLanguages = $pages.languages.getAll();
let activeLanguage = $pages.languages.getActive();
$pages.languages.setActive('hi-IN');

$pages.agent

Het object $pages.agent biedt methoden voor het tot stand brengen van communicatie tussen de site en de Microsoft Copilot Studio-agent die beschikbaar is voor de huidige gebruiker.

$pages.agent.SendActivity(
    agentSchemaName: string,
    inputActivity: object,
    responseSubscriber: function,
    errorSubscriber: function
);
Parameternaam Typ Beschrijving
agentSchemaName Snaar / Touwtje Schemanaam van de bot waarnaar de activiteit wordt verzonden.
inputActivity Object Object met de tekst of gebeurtenis die naar de bot moet worden verzonden.
responseSubscriber function Callback-functie die wordt uitgevoerd wanneer de agent een antwoord verzendt.
errorSubscriber function Callback-functie die fouten afhandelt.

Retourtype: void - De functie retourneert niets.

Antwoordobject van agent ontvangen in de volgende indeling:

Naam Typ Beschrijving
type Snaar / Touwtje Type activiteit, zoals bericht.
text Snaar / Touwtje Optioneel, bericht van agent.
textFormat Snaar / Touwtje Optioneel, opmaak van de tekst van het bericht, zoals markdown, zonder opmaak of XML.
Id Snaar / Touwtje Id waarmee de activiteit uniek wordt geïdentificeerd.
From Object Hiermee geeft u de afzender van de activiteit (inclusief id, naam (optioneel) en rolgegevens.
Conversation Object Bevat de id van het gesprek waartoe de activiteit behoort.
InputHint Snaar / Touwtje Optioneel, geeft aan of de bot gebruikersinvoer accepteert, verwacht of negeert.
replyToId Snaar / Touwtje Id van het antwoordbericht.

Example

Callbackmethode

Definieer de functies en errorSubscriber callback voor het responseSubscriber afhandelen van agentreacties en -fouten.

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';  

Bericht verzenden naar agent

const inputActivity = {
    text: 'Hello!', // Message to the agent.
    };

$pages.agent.SendActivity(agentSchemaName, inputActivity, responseSubscriber, 
  ErrorSubscriber);

Client-gebeurtenis aanroepen

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);

Foutberichten

Hier volgen mogelijke foutberichten die gebruikers kunnen tegenkomen en hun mogelijke oorzaken.

Fouttype Oorzaak Foutbericht voor gebruiker
Validatie van agentschema Ongeldige botschemanaam opgegeven of gebruiker heeft geen toegangsmachtigingen voor de agent Invalid bot schema name or access denied. Please check the bot schema name and try again.
Tokenfout ophalen Er is een fout opgetreden bij het ophalen van het directe lijntoken Something went wrong while fetching the token. Please try again.
Fout bij boekingsactiviteit (opnieuw proberen) Er is een fout opgetreden bij het posten van de activiteit en er is een nieuwe poging nodig. Something went wrong while posting the activity: retry.
Fout bij boekingsactiviteit (time-out) Er is een time-out opgetreden tijdens het wachten op uitgaand bericht of postActiviteit Timed out while posting activity: Please retry.
Fout bij boekingsactiviteit (ongeldige activiteit) De invoeractiviteit heeft geen tekst of een naam om de gebeurtenis aan te roepen. Invalid activity: At least one of text, name, or attachments must be provided.
Fout bij het plaatsen van activiteit (gebruikers-id is niet gevonden of token niet gevonden) Token is niet gevonden in sessieopslag of gebruikers-id is niet gevonden in token Error retrieving user ID: {error message}
Fout bij boekingsactiviteit (algemeen) Er is een niet-opgegeven fout opgetreden tijdens het posten van de activiteit Something went wrong while posting the activity: Please try again.
Verbindingsfout voor directe lijn Er is een fout opgetreden bij het maken van een directe lijnverbinding met de bot. Something went wrong while creating direct line connection: Please try again.
Algemene fout Een onverwachte fout die niet in de bovenstaande categorieën valt An unexpected error occurred while sending activity: Please try again.