Tareas comunes de scripting del cliente

Completado

El modelo de objetos de la API del cliente es extenso y de gran riqueza. Cuando empiece a familiarizarse con el scripting del cliente, se dará cuenta de que puede usar muchos objetos y métodos de API para implementar la lógica. En esta unidad vamos a echar un vistazo a algunas de las tareas comunes que realizará y a las técnicas que usará para ello.

Acceder a los datos de columna de Dataverse

En el modelo de objetos hay una columna de Dataverse como un objeto de atributo. Puede usar el método getAttribute() del objeto formContext para localizar rápidamente un atributo específico o todos los atributos presentes en el formulario. Cada objeto de atributo incluye algunos métodos comunes y otros métodos en función del tipo de datos de atributo.

Nota

Este código de muestra asume que los atributos y controles usados están presentes. La mayoría de los métodos devolverán null si los objetos no están disponibles y los controles defensivos habituales deben usarse en la práctica.

Sugerencia

Las colecciones devueltas por los métodos de la API del cliente tienen algunos métodos útiles que puede usar para recorrer en iteración los elementos. Para obtener más información, consulte Colecciones (referencia de la API del cliente) en aplicaciones basadas en modelos - Power Apps.

Tarea Ejemplo
Acceso por nombre javascript var nameAttribute = formContext.getAttribute("name"); Asigna el atributo para la columna Nombre de cuenta a la variable nameAttribute. Si el atributo no está presente en el formulario, el método getAttribute devuelve el valor null.
Acceso a todos los atributos javascript var allAttributes = formContext.getAttribute(); Asigna una matriz de todos los atributos de la colección formContext.data.entity.attributes a la variable allAttributes.

Usar atributos

Tarea Ejemplo
Obtener el valor de un atributo javascript var nameValue = formContext.getAttribute("name").getValue(); Asigna el valor para la columna Nombre de cuenta a la variable nameValue.
Establecer el valor de un atributo javascript formContext.getAttribute("name").setValue("new name"); Establece el valor de la columna Nombre de cuenta en "nuevo nombre".
Obtener el objeto de opción seleccionado actualmente en un atributo OptionSet (el atributo OptionSet describe la columna Opción de Dataverse) javascript var addressTypeOption = formContext.getAttribute("address1_addresstypecode").getSelectedOption(); Asigna la opción seleccionada en la columna Tipo de dirección a la variable addressTypeOption.
Determinar si el valor de un atributo ha cambiado en la interfaz de usuario desde que se abrió el formulario javascript var isNameChanged = formContext.getAttribute("name").getIsDirty(); Asigna un valor booleano que indica si el valor de la columna Nombre de cuenta ha cambiado a la variable isNameChanged.
Cambiar si se necesitan datos en una columna para guardar un registro javascript formContext.getAttribute("creditlimit").setRequiredLevel("required"); Hace que la columna Límite de crédito sea obligatoria. javascript formContext.getAttribute("creditlimit").setRequiredLevel("none"); Hace que la columna Límite de crédito sea opcional.
Determinar si los datos de un atributo se enviarán cuando se guarde el registro javascript var nameSubmitMode = formContext.getAttribute("name").getSubmitMode(); El valor de la variable nameSubmitMode es el texto siempre, nunca o sucio para representar submitMode en la columna Nombre de cuenta.
Controlar si los datos de un atributo se guardarán cuando se guarde el registro javascript formContext.getAttribute("name").setSubmitMode("always"); El ejemplo forzará el valor de la columna Nombre de cuenta para que se guarde siempre incluso cuando no haya cambiado.
Cuando se ha aplicado seguridad de nivel de columna a un atributo, determine si un usuario tiene privilegios para realizar operaciones de creación, lectura o actualización en el atributo. javascript var canUpdateNameAttribute = formContext.getAttribute("name").getUserPrivilege().canUpdate; Asigna un valor booleano que representa el privilegio del usuario para actualizar la columna Nombre de cuenta a la variable canUpdateNameAttribute.

Acceder a controles de formulario

Tarea Ejemplo
Acceder a todos los controles de un atributo específico javascript var nameControls = formContext.getAttribute("name").controls.get(); Asigna una matriz de todos los controles para el atributo name a la variable nameControls. La mayoría de los atributos se representan mediante un control, pero puede haber más de uno si se ha agregado una columna al formulario más de una vez.
Acceder a un control por nombre javascript var nameControl = formContext.getControl("name"); El primer control agregado a un formulario para una columna tendrá el mismo nombre que la columna. Cada uno de los otros nombres de control tendrá un número de índice adjunto al nombre. Por ejemplo, tres controles para la columna de nombre tendrán los nombres: name, name1 y name2, respectivamente.
Acceder a todos los controles javascript var allControls = formContext.getControl(); Asigna una matriz de todos los controles de la colección formContext.ui.controls a la variable allControls.

Usar controles de formularios

Los objetos de control, como los objetos de atributo, tienen un conjunto común de métodos independientemente del tipo. También tienen métodos especializados basados en el tipo de control.

Tarea Ejemplo
Determinar si un control es visible javascript var isNameVisible = formContext.getControl("name").getVisible(); Asigna un valor booleano a la variable isNameVisible que representa si la columna Nombre de cuenta es visible.
Ocultar o mostrar un control javascript formContext.getControl("name").setVisible(false); Oculta la columna Nombre de cuenta.
Obtener una referencia al atributo para el control javascript var nameAttribute = formContext.getControl("name").getAttribute(); Asigna el atributo para el control Nombre de cuenta a la variable nameAttribute.
Deshabilitar o habilitar todos los controles de un atributo javascript formContext.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); }); Recuerde que cualquier atributo puede tener múltiples controles.
Cambiar la etiqueta de un control javascript formContext.getControl("name").setLabel("Company Name"); Establece la etiqueta de la columna Nombre de cuenta en el texto Nombre de empresa.
Obtener el elemento primario de un control javascript var parentSection = formContext.getControl("name").getParent(); Asigna el control primario de la columna Nombre de cuenta a la variable parentSection.
Poner el foco en un control javascript formContext.getControl("name").setFocus(); Establece el foco de entrada actual en la columna Nombre de cuenta.

Usar pestañas y secciones

Cada formulario tiene una colección de pestañas. Cada pestaña tiene una colección de secciones. Cada sección tiene una colección de controles. Puede acceder mediante programación a estos elementos y usar sus métodos.

Tarea Ejemplo
Mostrar u ocultar una pestaña javascript formContext.ui.tabs.get("general").setVisible(false); Oculta la pestaña General.
Cambiar la etiqueta de una pestaña javascript formContext.ui.tabs.get("general").setLabel("Major"); Establece la etiqueta de la pestaña General en el texto Principal.
Mostrar u ocultar una sección javascript formContext.getControl("industrycode").getParent().setVisible(false); Oculta una sección que contiene la columna Código de sector.

Usar datos de entidad

La siguiente tabla contiene métodos que puede usar para obtener información sobre el registro actual.

Tarea Ejemplo
Obtener el Id. del récord actual javascript var recordId = formContext.data.entity.getId(); Asigna un identificador único del registro actual a la variable recordId. Si se abre el formulario para crear un nuevo registro, se devuelve el valor null.
Guardar el registro actual javascript formContext.data.entity.save(); Use saveandclose o saveandnew para realizar las acciones equivalentes mediante Guardar y cerrar o Guardar y nuevo.
Determine si se modifica algún dato del registro actual. javascript var isDirty = formContext.data.entity.getIsDirty(); Asigna un valor booleano que indica si el valor de cualquier columna en el formulario ha cambiado a la variable isDirty.