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.
Když vygenerujete stránku pomocí přirozeného jazyka, AI vytvoří stránku React v TypeScriptu. Vygenerovaná stránka popisuje uživatelské prostředí front-endu výběrem správných komponent a určením nejlepšího rozložení a odpovídající obchodní logiky.
Vygenerovaný kód můžete zobrazit a upravit a upřesnit tak výstup. Operace s daty používají dataApi objekt, který zveřejňuje následující veřejné metody:
| Metoda | Description |
|---|---|
createRow |
Vytvoří nový řádek v zadané tabulce. |
deleteRow |
Odstraní řádek ze zadané tabulky. |
getChoices |
Načte volby pro zadaný název sloupce voleb. |
queryTable |
Dotazuje tabulku se zadanými možnostmi. |
retrieveRow |
Načte řádek ze zadané tabulky se zadanými možnostmi. |
setPageOutput |
Nastaví hodnotu vrácenou volajícímu skriptu, když se dialogové okno generující stránky zavře. |
updateRow |
Aktualizuje existující řádek v zadané tabulce. |
metoda createRow
Vytvoří nový řádek v zadané tabulce.
Parametry
Nastavte hodnoty pro tyto požadované parametry.
| Název | Typ | Description |
|---|---|---|
tableName |
řetězec | Logický název tabulky pro vytvoření řádku. |
row |
objekt | Data řádku, která chcete vytvořit. |
Návraty
Příslib obsahující výsledek operace. Pokud operace proběhne úspěšně, výsledkem je hodnota ID (Guid) vytvořeného řádku.
Example
// Define the row data to create new account
var row =
{
"name": "Sample Account",
"creditonhold": false,
"address1_latitude": 47.639583,
"description": "This is the description of the sample account",
"revenue": 5000000,
"accountcategorycode": 1,
}
try {
// Create a new account record
const newAccountId = await dataApi.createRow("account", row);
console.log("Account created with ID: " + newAccountId);
// Create a contact with a lookup to an account
const newContactId = await dataApi.createRow('contact', {
firstname: 'John',
lastname: 'Doe',
emailaddress1: 'john.doe@contoso.com',
"parentcustomerid@odata.bind": `/account(${newAccountId})`, // Lookup format
});
}
catch (error) {
console.log(error.message);
}
metoda deleteRow
Odstraní řádek ze zadané tabulky.
Parametry
Nastavte hodnoty pro tyto požadované parametry.
| Název | Typ | Description |
|---|---|---|
tableName |
řetězec | Logický název tabulky, ve které chcete řádek odstranit. |
rowId |
řetězec | ID řádku, který chcete odstranit. |
Návraty
Příslib obsahující výsledek operace. Pokud operace proběhne úspěšně, nevrátí žádnou hodnotu.
Example
let rowId = "5531d753-95af-e711-a94e-000d3a11e605";
try {
await dataApi.deleteRow("account", rowId);
}
catch (error) {
console.log(error.message);
}
metoda getChoices
Načte volby pro zadaný název sloupce voleb.
Parametry
Tento parametr je povinný.
| Název | Typ | Description |
|---|---|---|
enumName |
string |
Název sloupce výběru ve formátu tablename-columnname |
Návraty
Příslib obsahující výsledek operace. Pokud je operace úspěšná, vrátí pole možností výběru. Každá možnost má tyto vlastnosti:
| Název | Typ | Description |
|---|---|---|
label |
řetězec | Lokalizovaná hodnota popisku možnosti. |
value |
číslo | Číselná hodnota možnosti. |
Example
// Returns the accountcategorycode column options from the account table
const categoryChoices = await dataApi.getChoices("account-accountcategorycode");
// Returns the statecode column options from the contact table
const stateChoices = await dataApi.getChoices('contact-statecode');
// Returns the statuscode column options from the account table
const statusChoices = await dataApi.getChoices('account-statuscode');
metoda queryTable
Dotazuje tabulku pomocí zadaných možností.
Parametry
Nastavte hodnoty pro tyto požadované parametry.
| Název | Typ | Description |
|---|---|---|
tableName |
string |
Logický název tabulky, která se má dotazovat |
query |
QueryTableOptions | Možnosti pro dotazování tabulky |
QueryTableOptions
| Název | Typ | Description |
|---|---|---|
select |
string[] |
(Doporučeno) Pole názvů sloupců, které se mají načíst. |
filter |
string |
(Volitelné) Výraz filtru OData (například statecode eq 0). |
orderBy |
string |
(Volitelné) Výraz orderby OData (například name asc, createdon desc). |
pageSize |
number |
(Volitelné) Maximální počet řádků, které se mají vrátit na stránku. |
Návraty
Příslib obsahující výsledek operace. Pokud operace proběhne úspěšně, vrátí příslib objekt obsahující tabulku dat s výsledky s těmito vlastnostmi:
| Název | Typ | Description |
|---|---|---|
rows |
Object[] |
Pole dat řádků |
hasMoreRows |
boolean |
Označuje, jestli je k dispozici více řádků. |
loadMoreRows |
function |
Funkce pro načtení další stránky výsledků (Nepovinné) |
Example
// Query tasks with options
const result = await dataApi.queryTable("task", {
select: ["activityid", "subject", "scheduledend", "prioritycode", "statecode"],
orderBy: "scheduledend asc",
pageSize: 50,
filter: "statecode eq 0"
});
// Query accounts with pagination
const pagedAccounts = await dataApi.queryTable('account', {
select: ['name'],
pageSize: 50,
});
console.log(`Page 1: ${pagedAccounts.rows.length} accounts`);
if (pagedAccounts.hasMoreRows && pagedAccounts.loadMoreRows) {
const nextPage = await pagedAccounts.loadMoreRows();
console.log(`Page 2: ${nextPage.rows.length} accounts`);
}
Poznámky
Poznámka:
Nejlepšího výkonu dosáhnete tak, že vždy omezíte počet vrácených sloupců pomocí vlastnosti QueryTableOptionsselect .
metoda retrieveRow
Načte řádek ze zadané tabulky pomocí zadaných možností.
Parametry
Nastavte hodnoty pro tyto požadované parametry.
| Název | Typ | Description |
|---|---|---|
tableName |
string |
Logický název tabulky, ze které se má načíst |
options |
RetrieveRowOptions | Možnosti načtení řádku |
RetrieveRowOptions
| Název | Typ | Description |
|---|---|---|
id |
string |
ID (Guid) řádku, které se má načíst |
select |
string[] |
(Doporučeno) Pole názvů sloupců, které se mají načíst. Pokud tento parametr vynecháte, vrátí se všechny sloupce. |
Návraty
Příslib obsahující výsledek operace. Pokud operace proběhne úspěšně, vrátí se objekt obsahující data záznamu, včetně všech vybraných sloupců.
Example
// Retrieve an account with all columns
const account = await dataApi.retrieveRow('account', {
id: '30dc51e9-947d-47d8-ad48-4fc48fba4a95',
});
// Retrieve specific columns only
const contact = await dataApi.retrieveRow('contact', {
id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
select: ['firstname', 'lastname', '_parentcustomerid_value'],
});
metoda setPageOutput
Nastaví hodnotu vrácenou volajícímu skriptu, když se při zavření dialogového okna otevře generující stránka.
Parametry
| Název | Typ | Description |
|---|---|---|
value |
neznámý | Hodnota, která se má vrátit do skriptu, který dialog otevřel. Hodnota může být primitivní, objekt nebo pole. |
Návraty
Žádná hodnota.
Example
dataApi.setPageOutput({
action: "selected",
recordId: selectedRecordId
});
const xrm = (window as any).Xrm;
await xrm.Navigation.navigateBack();
Volání setPageOutput nezavře dialogové okno ani neaktualizuje volající stránku. Zavřete dialogové okno pomocí Xrm.Navigation.navigateBack(). Příslib vrácený Xrm.Navigation.navigateTo pak vyřeší s objektem, jehož returnValue vlastnost obsahuje naposledy uloženou hodnotu. Volající skript musí explicitně použít vrácenou hodnotu ve svém formuláři, mřížce nebo jiném stavu.
Tato metoda se vztahuje na generivní stránky otevřené jako dialogy. Generování stránek otevřených v řádku nebo v bočním podokně aplikace nevrací hodnotu volajícímu skriptu.
metoda updateRow
Aktualizuje existující řádek v zadané tabulce.
Parametry
Nastavte hodnoty pro tyto požadované parametry.
| Název | Typ | Description |
|---|---|---|
tableName |
řetězec | Logický název tabulky, ve které se má řádek aktualizovat. |
rowId |
řetězec | ID řádku, který chcete aktualizovat. |
row |
Object | Data řádků, která se mají aktualizovat. |
Návraty
Příslib obsahující výsledek operace. Pokud operace proběhne úspěšně, nevrátí žádnou hodnotu.
Example
let rowId = "5531d753-95af-e711-a94e-000d3a11e605"
// Define the row to update a record
var row =
{
"name": "Updated Sample Account ",
"creditonhold": true,
"address1_latitude": 47.639583,
"description": "This is the updated description of the sample account",
"revenue": 6000000,
"accountcategorycode": 2
}
// update the record
try {
await dataApi.updateRow("account", rowId, row);
}
catch (error){
console.log(error.message);
}