Referenční informace k dataApi pro generující stránky

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