referencia de dataApi para páginas generativas

Al generar una página mediante lenguaje natural, la inteligencia artificial crea una página react en TypeScript. La página generada cubre la experiencia del usuario front-end seleccionando los componentes adecuados y determinando el mejor diseño y la lógica de negocios correspondiente.

Puede ver y editar el código generado para refinar la salida. Las operaciones de datos usan un dataApi objeto que expone los métodos públicos siguientes:

Método Description
createRow Crea una nueva fila en la tabla especificada.
deleteRow Elimina una fila de la tabla especificada.
getChoices Recupera las opciones para el nombre de columna de elección especificado.
queryTable Consulta una tabla con las opciones especificadas.
retrieveRow Recupera una fila de la tabla especificada con las opciones especificadas.
setPageOutput Establece el valor devuelto al script de llamada cuando se cierra un cuadro de diálogo de página generativa.
updateRow Actualiza una fila existente en la tabla especificada.

método createRow

Crea una nueva fila en la tabla especificada.

Parámetros

Establezca valores para estos parámetros necesarios.

Nombre Tipo Description
tableName cuerda / cadena Nombre lógico de la tabla en la que se va a crear la fila.
row objeto Datos de fila que se van a crear.

Devoluciones

Promesa que contiene el resultado de la operación. Cuando la operación se realiza correctamente, el resultado es el valor id. (GUID) de la fila creada.

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

método deleteRow

Elimina una fila de la tabla especificada.

Parámetros

Establezca valores para estos parámetros necesarios.

Nombre Tipo Description
tableName cuerda / cadena Nombre lógico de la tabla en la que se va a eliminar la fila.
rowId cuerda / cadena Identificador de la fila que se va a eliminar.

Devoluciones

Promesa que contiene el resultado de la operación. Cuando la operación se realiza correctamente, no devuelve ningún valor.

Example

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

método getChoices

Recupera las opciones para el nombre de columna de elección especificado.

Parámetros

Este parámetro es obligatorio.

Nombre Tipo Description
enumName string Nombre de la columna de elección en el formato tablename-columnname

Devoluciones

Promesa que contiene el resultado de la operación. Cuando la operación se realiza correctamente, devuelve una matriz de las opciones de elección. Cada opción tiene estas propiedades:

Nombre Tipo Description
label cuerda / cadena Valor de etiqueta localizado de la opción.
value number Valor numérico de la opción.

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

método queryTable

Consulta una tabla mediante las opciones especificadas.

Parámetros

Establezca valores para estos parámetros necesarios.

Nombre Tipo Description
tableName string Nombre lógico de la tabla que se va a consultar
query QueryTableOptions Opciones para consultar la tabla

QueryTableOptions

Nombre Tipo Description
select string[] (Recomendado) Matriz de nombres de columna que se van a recuperar.
filter string (Opcional) Expresión de filtro de OData (por ejemplo, statecode eq 0).
orderBy string (Opcional) Expresión orderby de OData (por ejemplo, name asc, createdon desc).
pageSize number (Opcional) Número máximo de filas que se van a devolver por página.

Devoluciones

Promesa que contiene el resultado de la operación. Cuando la operación se realiza correctamente, la promesa devuelve un objeto que contiene una tabla de datos con los resultados con estas propiedades:

Nombre Tipo Description
rows Object[] Matriz de datos de fila
hasMoreRows boolean Indica si hay más filas disponibles.
loadMoreRows function Función para cargar la siguiente página de resultados. (Opcional)

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

Observaciones

Nota:

Para obtener el mejor rendimiento, limite siempre el número de columnas devueltas mediante la propiedad QueryTableOptionsselect .

método retrieveRow

Recupera una fila de la tabla especificada mediante las opciones especificadas.

Parámetros

Establezca valores para estos parámetros necesarios.

Nombre Tipo Description
tableName string Nombre lógico de la tabla de la que se va a recuperar
options RetrieveRowOptions Opciones para recuperar la fila

RetrieveRowOptions

Nombre Tipo Description
id string Identificador (GUID) de la fila que se va a recuperar
select string[] (Recomendado) Matriz de nombres de columna que se van a recuperar. Si se omite, se devuelven todas las columnas.

Devoluciones

Promesa que contiene el resultado de la operación. Cuando la operación se realiza correctamente, se devuelve un objeto que contiene los datos del registro, incluidas todas las columnas seleccionadas.

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

método setPageOutput

Establece el valor devuelto al script de llamada cuando se cierra una página generativa abierta como un cuadro de diálogo.

Parámetros

Nombre Tipo Description
value unknown Valor que se va a devolver al script que abrió el cuadro de diálogo. El valor puede ser un primitivo, un objeto o una matriz.

Devoluciones

No hay ningún valor.

Example

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

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

La llamada setPageOutput no cierra el cuadro de diálogo ni actualiza la página de llamada. Cierre el cuadro de diálogo con Xrm.Navigation.navigateBack(). A continuación, la promesa devuelta Xrm.Navigation.navigateTo se resuelve con un objeto cuya returnValue propiedad contiene el valor almacenado más recientemente. El script de llamada debe aplicar explícitamente el valor devuelto a su formulario, cuadrícula u otro estado.

Este método se aplica a las páginas generativas abiertas como diálogos. Las páginas generativas abiertas insertadas o en un panel lateral de la aplicación no devuelven un valor al script de llamada.

método updateRow

Actualiza una fila existente en la tabla especificada.

Parámetros

Establezca valores para estos parámetros necesarios.

Nombre Tipo Description
tableName cuerda / cadena Nombre lógico de la tabla en la que se va a actualizar la fila.
rowId cuerda / cadena Identificador de la fila que se va a actualizar.
row Objeto Datos de fila que se van a actualizar.

Devoluciones

Promesa que contiene el resultado de la operación. Cuando la operación se realiza correctamente, no devuelve ningún valor.

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