Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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. |