dataApi-reference til generative sider

Når du genererer en side ved hjælp af et naturligt sprog, opretter AI'en en React-side i TypeScript. Den genererede side dækker både frontendbrugeroplevelsen ved at vælge de rigtige komponenter og bestemme det bedste layout og den tilsvarende forretningslogik.

Du kan få vist og redigere den genererede kode for at afgrænse outputtet. Datahandlinger bruger et dataApi objekt, der viser følgende offentlige metoder:

Metode Beskrivelse
createRow Opretter en ny række i den angivne tabel.
deleteRow Sletter en række fra den angivne tabel.
getChoices Henter valgmulighederne for det angivne valgkolonnenavn.
queryTable Forespørger en tabel med de angivne indstillinger.
retrieveRow Henter en række fra den angivne tabel med de angivne indstillinger.
setPageOutput Angiver den værdi, der returneres til kaldescriptet, når en generativ sidedialogboks lukkes.
updateRow Opdaterer en eksisterende række i den angivne tabel.

createRow metode

Opretter en ny række i den angivne tabel.

Parametre

Angiv værdier for disse påkrævede parametre.

Navn Type Beskrivelse
tableName streng Det logiske navn på den tabel, rækken skal oprettes i.
row objekt De rækkedata, der skal oprettes.

Returnerer

Et løfte , der indeholder resultatet af handlingen. Når handlingen lykkes, er resultatet id-værdien (GUID) for den oprettede række.

Eksempel

// 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 metode

Sletter en række fra den angivne tabel.

Parametre

Angiv værdier for disse påkrævede parametre.

Navn Type Beskrivelse
tableName streng Det logiske navn på den tabel, rækken skal slettes i.
rowId streng Id'et for den række, der skal slettes.

Returnerer

Et løfte , der indeholder resultatet af handlingen. Når handlingen lykkes, returneres der ingen værdi.

Eksempel

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

getChoices metode

Henter valgmulighederne for det angivne valgkolonnenavn.

Parametre

Denne parameter er påkrævet.

Navn Type Beskrivelse
enumName string Navnet på valgkolonnen i formatet tablename-columnname

Returnerer

Et løfte , der indeholder resultatet af handlingen. Når handlingen lykkes, returneres en matrix af valgindstillingerne. Hver indstilling har følgende egenskaber:

Navn Type Beskrivelse
label streng Den oversatte mærkatværdi for indstillingen.
value Nummer Den numeriske værdi for indstillingen.

Eksempel

// 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 metode

Forespørger en tabel ved hjælp af de angivne indstillinger.

Parametre

Angiv værdier for disse påkrævede parametre.

Navn Type Beskrivelse
tableName string Det logiske navn på den tabel, der skal forespørge
query QueryTableOptions Indstillinger for forespørgsel om tabellen

QueryTableOptions

Navn Type Beskrivelse
select string[] (Anbefalet) Matrix med kolonnenavne, der skal hentes.
filter string (Valgfrit) OData-filterudtryk (f.eks. statecode eq 0).
orderBy string (Valgfrit) OData orderby udtryk (f.eks. name asc, createdon desc).
pageSize number (Valgfrit) Det maksimale antal rækker, der skal returneres pr. side.

Returnerer

Et løfte , der indeholder resultatet af handlingen. Når handlingen lykkes, returnerer løftet et objekt, der indeholder en datatabel med resultaterne med disse egenskaber:

Navn Type Beskrivelse
rows Object[] Matrix af rækkedata
hasMoreRows boolean Angiver, om der er flere tilgængelige rækker
loadMoreRows function Funktion til at indlæse den næste side med resultater. (Valgfrit)

Eksempel

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

Bemærkninger

Notat

For at opnå den bedste ydeevne skal du altid begrænse antallet af kolonner, der returneres ved hjælp af egenskaben QueryTableOptionsselect .

retrieveRow metode

Henter en række fra den angivne tabel ved hjælp af de angivne indstillinger.

Parametre

Angiv værdier for disse påkrævede parametre.

Navn Type Beskrivelse
tableName string Det logiske navn på den tabel, der skal hentes fra
options RetrieveRowOptions Indstillinger for hentning af rækken

RetrieveRowOptions

Navn Type Beskrivelse
id string Id'et (GUID) for den række, der skal hentes
select string[] (Anbefalet) Matrix med kolonnenavne, der skal hentes. Hvis den udelades, returneres alle kolonner.

Returnerer

Et løfte , der indeholder resultatet af handlingen. Når handlingen lykkes, returneres et objekt, der indeholder dataene for posten, herunder alle de markerede kolonner.

Eksempel

// 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 metode

Angiver den værdi, der returneres til kaldescriptet, når en generativ side, der åbnes som en dialogboks, lukkes.

Parametre

Navn Type Beskrivelse
value Ukendt Den værdi, der skal returneres til det script, der åbnede dialogboksen. Værdien kan være en primitiv værdi, et objekt eller en matrix.

Returnerer

Ingen værdi.

Eksempel

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

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

Opkaldet setPageOutput lukker ikke dialogboksen eller opdaterer opkaldssiden. Luk dialogboksen med Xrm.Navigation.navigateBack(). Det løfte, der returneres af Xrm.Navigation.navigateTo , løses derefter med et objekt, hvis returnValue egenskab indeholder den senest gemte værdi. Det kaldende script skal eksplicit anvende den returnerede værdi på formularen, gitteret eller en anden tilstand.

Denne metode gælder for generative sider, der åbnes som dialogbokse. Generative sider, der er åbnet indbygget eller i en appsiderude, returnerer ikke en værdi til opkaldsscriptet.

updateRow metode

Opdaterer en eksisterende række i den angivne tabel.

Parametre

Angiv værdier for disse påkrævede parametre.

Navn Type Beskrivelse
tableName streng Det logiske navn på den tabel, rækken skal opdateres i.
rowId streng Id'et for den række, der skal opdateres.
row Objekt De rækkedata, der skal opdateres.

Returnerer

Et løfte , der indeholder resultatet af handlingen. Når handlingen lykkes, returneres der ingen værdi.

Eksempel

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