dataApi-referens för generativa sidor

När du genererar en sida med naturligt språk skapar AI:n en React-sida i TypeScript. Den genererade sidan täcker både klientdelsanvändarupplevelsen genom att välja rätt komponenter och bestämma den bästa layouten och motsvarande affärslogik.

Du kan visa och redigera den genererade koden för att förfina utdata. Dataåtgärder använder ett dataApi objekt som exponerar följande offentliga metoder:

Metod Description
createRow Skapar en ny rad i den angivna tabellen.
deleteRow Tar bort en rad från den angivna tabellen.
getChoices Hämtar alternativen för det angivna valkolumnnamnet.
queryTable Frågar en tabell med de angivna alternativen.
retrieveRow Hämtar en rad från den angivna tabellen med de angivna alternativen.
setPageOutput Anger värdet som returneras till det anropande skriptet när en generativ siddialogruta stängs.
updateRow Uppdaterar en befintlig rad i den angivna tabellen.

createRow metod

Skapar en ny rad i den angivna tabellen.

Parameterar

Ange värden för dessa obligatoriska parametrar.

Namn Typ Description
tableName snöre Det logiska namnet på tabellen som raden ska skapas i.
row objekt Raddata som ska skapas.

Retur

Ett löfte som innehåller resultatet av åtgärden. När åtgärden lyckas blir resultatet ID-värdet (Guid) för den skapade raden.

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

deleteRow metod

Tar bort en rad från den angivna tabellen.

Parameterar

Ange värden för dessa obligatoriska parametrar.

Namn Typ Description
tableName snöre Det logiska namnet på tabellen som raden ska tas bort i.
rowId snöre ID:t för raden som ska tas bort.

Retur

Ett löfte som innehåller resultatet av åtgärden. När åtgärden lyckas returneras inget värde.

Example

let rowId = "5531d753-95af-e711-a94e-000d3a11e605";
try {
  await dataApi.deleteRow("account", rowId);
}
catch (error) {
  console.log(error.message);
}

getChoices metod

Hämtar alternativen för det angivna valkolumnnamnet.

Parameterar

Den här parametern krävs.

Namn Typ Description
enumName string Namnet på valfri kolumn i formatet tablename-columnname

Retur

Ett löfte som innehåller resultatet av åtgärden. När åtgärden lyckas returneras en matris med alternativ. Varje alternativ har följande egenskaper:

Namn Typ Description
label snöre Alternativets lokaliserade etikettvärde.
value nummer Alternativets numeriska värde.

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

queryTable metod

Frågar en tabell med hjälp av de angivna alternativen.

Parameterar

Ange värden för dessa obligatoriska parametrar.

Namn Typ Description
tableName string Det logiska namnet på tabellen som ska frågas
query QueryTableOptions Alternativ för att fråga tabellen

QueryTableOptions

Namn Typ Description
select string[] (Rekommenderas) Matris med kolumnnamn som ska hämtas.
filter string (Valfritt) OData-filteruttryck (till exempel statecode eq 0).
orderBy string (Valfritt) OData orderby-uttryck (till exempel name asc, createdon desc).
pageSize number (Valfritt) Maximalt antal rader som ska returneras per sida.

Retur

Ett löfte som innehåller resultatet av åtgärden. När åtgärden lyckas returnerar löftet ett objekt som innehåller en datatabell med resultatet med följande egenskaper:

Namn Typ Description
rows Object[] Matris med raddata
hasMoreRows boolean Anger om det finns fler rader tillgängliga
loadMoreRows function Funktion för att läsa in nästa sida med resultat. (Valfritt)

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

Anmärkningar

Anmärkning

För bästa prestanda begränsar du alltid antalet kolumner som returneras med egenskapen QueryTableOptionsselect .

retrieveRow metod

Hämtar en rad från den angivna tabellen med hjälp av de angivna alternativen.

Parameterar

Ange värden för dessa obligatoriska parametrar.

Namn Typ Description
tableName string Det logiska namnet på tabellen som ska hämtas från
options RetrieveRowOptions Alternativ för att hämta raden

RetrieveRowOptions

Namn Typ Description
id string ID:t (Guid) för raden som ska hämtas
select string[] (Rekommenderas) Matris med kolumnnamn som ska hämtas. Om det utelämnas returneras alla kolumner.

Retur

Ett löfte som innehåller resultatet av åtgärden. När åtgärden lyckas returneras ett objekt som innehåller data för posten, inklusive alla markerade kolumner.

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'],
});

setPageOutput metod

Anger värdet som returneras till det anropande skriptet när en generativ sida öppnas när en dialogruta stängs.

Parameterar

Namn Typ Description
value unknown Värdet som ska returneras till skriptet som öppnade dialogrutan. Värdet kan vara en primitiv, ett objekt eller en matris.

Retur

Inget värde.

Example

dataApi.setPageOutput({
    action: "selected",
    recordId: selectedRecordId
});

const xrm = (window as any).Xrm;
await xrm.Navigation.navigateBack();

Samtal setPageOutput stänger inte dialogrutan eller uppdaterar inte samtalssidan. Stäng dialogrutan med Xrm.Navigation.navigateBack(). Löftet som returneras av Xrm.Navigation.navigateTo matchar sedan med ett objekt vars returnValue egenskap innehåller det senast lagrade värdet. Det anropande skriptet måste uttryckligen tillämpa det returnerade värdet på dess formulär, rutnät eller annat tillstånd.

Den här metoden gäller för generativa sidor som öppnas som dialogrutor. Generativa sidor som öppnas infogade eller i en appsida returnerar inte något värde till det anropande skriptet.

updateRow metod

Uppdaterar en befintlig rad i den angivna tabellen.

Parameterar

Ange värden för dessa obligatoriska parametrar.

Namn Typ Description
tableName snöre Det logiska namnet på tabellen som raden ska uppdateras i.
rowId snöre ID:t för raden som ska uppdateras.
row Object Raddata som ska uppdateras.

Retur

Ett löfte som innehåller resultatet av åtgärden. När åtgärden lyckas returneras inget värde.

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