Referencia de scripting de formularios
Publicado: enero de 2017
Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Este tema muestra una referencia rápida de los métodos de scripting de formularios utilizados con frecuencia en función de las tareas que realiza con ellos. Para obtener la referencia completa, consulte Referencia de programación del lado del cliente. Todos los ejemplos de esta página usan el formulario principal predeterminado de la entidad de cuenta a menos que se especifique lo contrario.
En este tema
Atributos
Obtener acceso a los atributos
Obtener o establecer datos de atributo de entidad
Obtener metadatos del atributo
Guardar argumentos de evento
Mostrar notificaciones
Controles
Acceder a controles del formulario
Acceder a los controles de encabezado
Acceder a controles del flujo de proceso de negocio
Métodos de control de formulario
Métodos de control de OptionSet
Métodos de control de IFRAME y recursos web
Consultar métodos de control
Métodos de control de subcuadrícula
Métodos de control de fecha
Navegación del formulario
Pestañas y secciones
Agregar o quitar controladores de eventos en tiempo de ejecución
Métodos de información contextual
Obtener, actualizar, o guardar datos de entidad
Atributos
Los atributos almacenan los datos disponibles en el registro.
Obtener acceso a los atributos
Los atributos están disponibles en la colección Xrm.Page.data.entity.attributes. Para tener acceso a un atributo, puede usar el método **Xrm.Page.data.entity.attributes.**9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get o la versión de acceso directo Xrm.Page.getAttribute. El método get acepta cuatro tipos de argumentos:
Cadena: devuelve un objeto de atributo en el que el nombre del atributo coincide con la cadena.
Número: devuelve el objeto del atributo en el que el índice de la colección Xrm.Page.data.entity.attributes coincide con el número.
Ninguno: devuelve una matriz de todos los atributos.
Delegate function(attribute,index): devuelve una matriz de cualquier atributo de la colección Xrm.Page.data.entity.attributes que hace que la función delegar devuelva true.
Tarea |
Ejemplo |
---|---|
Obtener acceso a un atributo por nombre |
var nameAttribute = Xrm.Page.getAttribute("name"); Asigna el atributo del campo Nombre de cuenta a la variable nameAttribute. |
Obtener acceso a un atributo por índice |
var firstAttribute = Xrm.Page.getAttribute(0); Asigna el primer atributo de la colección Xrm.Page.data.entity.attributes a la variable firstAttribute. |
Obtener acceso a todos los atributos |
var allAttributes = Xrm.Page.getAttribute(); Asigna una matriz de todos los atributos de la colección Xrm.Page.data.entity.attributes a la variable allAttributes. |
Obtener acceso a todos los atributos que cumplen criterios específicos |
var optionsetAttributes = Xrm.Page.getAttribute(function (attribute, index) { Asigna una matriz de todos los atributos de la colección Xrm.Page.data.entity.attributes que cumplen los criterios establecidos en la función anónima, que devuelve true cuando el tipo de atributo es "optionset" a la variable optionsetAttributes. |
La colección Xrm.Page.data.entity.attributes también incluye un método 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEach que puede usar para obtener acceso a atributos dentro de una función. La siguiente función writeRequiredAttributesToConsole escribirá los nombres de los atributos que requieren datos en la consola de depuración:
function writeRequiredAttributesToConsole() {
var requiredAttributeNames = [];
Xrm.Page.data.entity.attributes.forEach(
function (attribute, index) {
if (attribute.getRequiredLevel() == "required")
{ requiredAttributeNames.push(attribute.getName()); }
});
if (requiredAttributeNames.length > 0) {
if (typeof console != "undefined") {
console.log(requiredAttributeNames.join());
}
}
else {
if (typeof console != "undefined") {
console.log("No required attributes detected");
}
}
}
En este tema
Obtener o establecer datos de atributo de entidad
Los ejemplos de la siguiente tabla muestran cómo puede recuperar o cambiar los datos almacenados en los atributos.
Tarea |
Método |
Ejemplo |
---|---|---|
Obtener el valor de un atributo |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getValue |
var nameValue = Xrm.Page.getAttribute("name").getValue(); Asigna el valor del campo Nombre de cuenta a la variable nameValue. |
Establecer el valor de un atributo |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setValue |
Xrm.Page.getAttribute("name").setValue("new name"); Establece el valor del campo Nombre de cuenta en "nuevo nombre". |
Obtener el valor de texto de la opción actualmente seleccionada de un atributo optionset |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getText |
var addressType = Xrm.Page.getAttribute("address1_addresstypecode").getText(); Asigna el texto de la opción seleccionada en el campo Tipo de dirección a la variable addressType. |
Obtener el objeto de la opción actualmente seleccionada en un atributo optionset. |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getSelectedOption |
var addressTypeOption = Xrm.Page.getAttribute("address1_addresstypecode").getSelectedOption(); Asigna la opción seleccionada en el campo Tipo de dirección a la variable addressTypeOption. |
En este tema
Obtener metadatos del atributo
En los ejemplos de la siguiente tabla se muestra cómo puede consultar las propiedades del atributo para entender de qué tipo de atributo se trata o cambiar el comportamiento del atributo.
Tarea |
Método |
Ejemplo |
---|---|---|
Obtener el tipo de atributo |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getAttributeType |
var attributeType = Xrm.Page.getAttribute(0).getAttributeType(); Asigna el valor de cadena que representa el tipo de atributo para el primer atributo a la variable attributeType. |
Obtener el formato del atributo |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getFormat |
var attributeFormat = Xrm.Page.getAttribute(0).getFormat(); Asigna el valor de cadena que representa el formato del primer atributo a la variable attributeFormat. |
Obtener el valor inicial de un atributo Boolean o optionset. |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getInitialValue |
var attributeInitialValue = Xrm.Page.getAttribute("address1_addresstypecode").getInitialValue(); Asigna el valor del número inicial del campo Tipo de dirección a la variable attributeInitialValue. |
Determinar si el valor de un atributo ha cambiado |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getIsDirty |
var isNameChanged = Xrm.Page.getAttribute("name").getIsDirty(); Asigna un valor Boolean que indica si el valor del campo Nombre de cuenta ha cambiado a la variable isNameChanged. |
Determina si un atributo de búsqueda representa una búsqueda de tipo partylist. |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getIsPartyList |
var isPartyList = Xrm.Page.getAttribute("to").getIsPartyList(); Asigna un valor Boolean que indica si el campo para de la entidad Correo electrónico representa una búsqueda de lista de partes. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Obtener el valor máximo permitido de un atributo que contiene un número |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMax |
var newValue = 100000000000001; Asigna un valor Boolean que indica si el valor de la variable newValue supera el valor máximo permitido para el campo Límite del crédito a la variable newValueBelowMax. |
Obtener la longitud máxima permitida de un atributo que contiene una cadena |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMaxLength |
var newAccountName = "A Store"; Asigna un valor Boolean que indica si el valor de la variable newAccountName supera la longitud máxima permitida para el campo Nombre de cuenta a la variable nameTooLong. |
Obtener el valor mínimo permitido de un atributo que contiene un número |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMin |
var newValue = -1; Asigna un valor Boolean que indica si el valor de la variable newValue es inferior al valor mínimo permitido para el campo Límite del crédito a la variable newValueBelowMin. |
Obtener el nombre lógico de un atributo |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getName |
var attributeName = Xrm.Page.getAttribute(0).getName(); Asigna el valor del nombre lógico del primer atributo de la página a la variable attributeName. |
Obtener el objeto de opción que representa un valor |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getOption |
var addressTypeOption = Xrm.Page.getAttribute("address1_addresstypecode").getOption(1); Abre una alerta que muestra el texto de la opción del campo Tipo de dirección con un valor de 1. |
Obtener un valor numérico que representa el nivel de precisión del atributo de número |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getPrecision |
var creditLimitPrecision = Xrm.Page.getAttribute("creditlimit").getPrecision(); Asigna el valor de precisión del campo Límite del crédito a la variable creditLimitPrecision. |
Obtener un valor de cadena que representa si un atributo debe tener un valor |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getRequiredLevel |
var creditLimitRequired = Xrm.Page.getAttribute("creditlimit").getRequiredLevel(); El valor de la variable creditLimitRequired puede ser none, required o recommended. |
Cambiar si los datos son obligatorios en un campo para poder guardar un registro |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setRequiredLevel |
Xrm.Page.getAttribute("creditlimit").setRequiredLevel("required"); Convierte el campo Límite del crédito en un campo obligatorio. |
Determinar si los datos de un atributo se enviarán cuando se guarda el registro |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getSubmitMode |
var nameSubmitMode = Xrm.Page.getAttribute("name").getSubmitMode(); El valor de la variable nameSubmitMode será always, never o dirty para representar el submitMode para el campo Nombre de cuenta. |
Controlar si los datos de un atributo se guardarán cuando se guarda el registro |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setSubmitMode |
Xrm.Page.getAttribute("name").setSubmitMode("always"); El ejemplo obligará a guardar siempre el valor del campo Nombre de cuenta aunque no se haya modificado. |
Cuando se aplicó la seguridad de nivel de campo a un atributo, |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getUserPrivilege |
var canUpdateNameAttribute = Xrm.Page.getAttribute("name").getUserPrivilege().canUpdate; Asigna un valor Boolean que representa el privilegio del usuario para actualizar el campo Nombre de cuenta a la variable de canUpdateNameAttribute. |
En este tema
Guardar argumentos de evento
Cuando se aplica la lógica de negocios, con frecuencia es necesario impedir que un registro se guarde para que el usuario pueda incluir la información necesaria. Para ello, debe configurar el controlador de eventos para que pase en el contexto de ejecución. El contexto de ejecución contiene el método getEventArgs para recuperar los argumentos del evento. Estos argumentos incluyen métodos que puede usar para controlar si se guardará un registro o consultar las propiedades que le brindan información sobre el evento save.
Tarea |
Ejemplo |
---|---|
Impedir que un registro se guarde. |
function My_PreventSaveFunction(eContext) { Use el parámetro eContext para capturar el contexto de ejecución y use el método preventDefault incluido con los argumentos del evento. |
Determinar qué acción inició la operación de guardar. |
function My_GetSaveModeTextFunction(eContext) { Use el parámetro eContext para capturar el contexto de ejecución y use el método getSaveMode incluido con los argumentos del evento para convertir el valor de código entero en texto. |
En este tema
Mostrar notificaciones
Las notificaciones ofrecen un modo de mostrar un mensaje al usuario.
Tarea |
Método |
Ejemplo |
---|---|---|
Mostrar un mensaje cerca del control para indicar que los datos no son válidos. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setnotification |
Xrm.Page.getAttribute("name").controls.forEach( Establece un mensaje de error de validación en cada control del formulario para el atributo Nombre de cuenta. Mientras se muestra este mensaje, el registro no se puede guardar. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Eliminar un mensaje que ya se muestra para un control. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearnotification |
Xrm.Page.getAttribute("name").controls.forEach( Borra todos los mensajes de error de validación en cada control del formulario para el atributo Nombre de cuenta. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Mostrar notificaciones en el nivel del formulario. |
0375b206-d2bf-4034-a41d-fb476ecb4438#BKMK_setFormNotification |
Xrm.Page.ui.setFormNotification( Muestra el mensaje "Hola" en la parte superior del formulario con un icono de información del sistema. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Quitar notificaciones en el nivel del formulario. |
0375b206-d2bf-4034-a41d-fb476ecb4438#BKMK_clearFormNotification |
Xrm.Page.ui.clearFormNotification("helloMsg"); Borra el mensaje establecido anteriormente con "helloMsg" como el parámetro uniqueid. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Mostrar un diálogo de alerta sin bloqueo con una función de devolución de llamada. |
72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_alertDialog |
var alertDisplayed = false; Mostrar una alerta y establecer el valor de la variable alertDisplayed cuando se cierra. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Mostrar un diálogo de confirmación sin bloqueo con distintas devoluciones de llamada en función del botón que ha pulsado el usuario. |
72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_confirmDialog |
var agree = false; Mostrar un mensaje de confirmación y establecer el valor de la variable agree según la respuesta. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
En este tema
Controles
Los controles representan los elementos de la interfaz de usuario del formulario. Cada atributo del formulario tendrá al menos un control asociado con él. No todos los controles están asociado con un atributo.IFRAME, los recursos web y las subcuadrículas son controles que no tienen atributos.
Acceder a controles del formulario
Los controles están disponibles desde la colección Xrm.Page.ui.controls. Para tener acceso a un control, puede usar el método **Xrm.Page.ui.controls.**9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get o la versión de acceso directo Xrm.Page.getControl.
El método get acepta cuatro tipos de argumentos:
Cadena: devuelve un control en el que el nombre lógico coincide con la cadena.
Número: devuelve el control en el que el índice de la colección Xrm.Page.ui.controls coincide con el número.
Ninguno: devuelve una matriz de todos los controles.
Delegate function(control,index): devuelve una matriz de cualquier control de la colección Xrm.Page.ui.controls que hace que la función delegar devuelva el valor True.
Tarea |
Ejemplo |
---|---|
Obtener acceso a todos los controles de un atributo específico |
var nameControls = Xrm.Page.getAttribute("name").controls.get(); Asigna una matriz de todos los controles del atributo name a la variable nameControls. |
Obtener acceso a un control por nombre |
var nameControl = Xrm.Page.getControl("name"); Asigna el primer control que representa al campo Nombre de cuenta a la variable nameControl. El primer control que se agrega a un formulario de un atributo tendrá el mismo nombre que el atributo. Cada nombre de control adicional tendrá un número de índice anexado al nombre. Por ejemplo, tres controles del atributo nombre se llamarán: name, name1 y name2 respectivamente. |
Obtener acceso a un control por índice |
var firstControl = Xrm.Page.getControl(0); Asigna el primer control de la colección Xrm.Page.ui.controls a la variable firstControl. |
Obtener acceso a todos los controles |
var allControls = Xrm.Page.getControl(); Asigna una matriz de todos los controles de la colección Xrm.Page.ui.controls a la variable allControls. |
Obtener acceso a todos los controles que cumplen criterios específicos |
var optionsetControls = Xrm.Page.getControl(function (control, index) { Asigna una matriz de todos los atributos de la colección Xrm.Page.ui.controls que cumplen los criterios establecidos en la función anónima, que devuelve true cuando el tipo de control es "optionset", a la variable optionsetControls. |
Cada sección también contiene una colección de controles que contiene únicamente los controles de esa sección. El siguiente ejemplo de código asigna la variable generalTabAccountInfoSectionControls a una matriz de controles que se encuentra en la sección Dirección de la pestaña General.
var generalTabAccountInfoSectionControls = Xrm.Page.ui.tabs.get("general").sections.get("address").controls.get();
Nota
Cada atributo existe solo una vez en el formulario, pero se puede agregar un campo al formulario de ese atributo varias veces. Cada campo que se agrega crea otro control. Los formularios se pueden seguir personalizando después de escribir los scripts. Los scripts que escribe para los controles del atributo deben asumir que se han incluido en el formulario varias veces. Cualquier acción que desee realizar en un control de un atributo se debería aplicar normalmente a todos los controles de ese atributo. Por ejemplo, si desea deshabilitar un control, pero solo deshabilita uno de ellos, el usuario aún puede especificar datos con un control diferente. Por esta razón, se recomienda usar el siguiente patrón con la colección del método 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEach para aplicar la misma lógica a todos los controles de un atributo, incluso si hay un solo control en el momento que escribe el script.
Xrm.Page.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); });
En este tema
Acceder a los controles de encabezado
Los controles del encabezado siguen la convención de nomenclatura donde se anexa el prefijo "header_" al nombre del control. Por ejemplo, si el atributo name está el encabezado puede tener acceso a él mediante:
var nameControlInHeader = Xrm.Page.getControl("header_name");
Acceder a controles del flujo de proceso de negocio
Los controles del control del flujo de proceso de negocio siguen la convención de nomenclatura donde se anexa el prefijo "header_process_" al nombre del control. Por ejemplo, si el atributo name está el encabezado puede tener acceso a él mediante:
var nameControlInBPF = Xrm.Page.getControl("header_process_name");
Nota
Sólo los controles de la fase activa aparecen en la colección de Xrm.Page.ui.controls cuando el formulario se carga. Se agregan otros controles del flujo de proceso de negocio cuando se selecciona una fase para la entidad actual.
Métodos de control de formulario
Una vez que tenga acceso a un control, puede llamar a los siguientes métodos.
Tarea |
Método |
Ejemplo |
---|---|---|
Determinar si un control está visible |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getVisible |
var isNameVisible = Xrm.Page.getControl("name").getVisible(); Asigna un valor Boolean a la variable isNameVisible que representa si el campo Nombre de cuenta está visible. |
Ocultar o mostrar un control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setVisible |
Xrm.Page.getControl("name").setVisible(false); Oculta el campo Nombre de cuenta. |
Obtener una referencia al atributo para el control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getAttribute |
var nameAttribute = Xrm.Page.getControl("name").getAttribute(); Asigna el atributo para el control del campo Nombre de cuenta a la variable nameAttribute. Nota No todos los controles tienen atributos. |
Determinar el tipo del control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getControlType |
var optionSetControls = Xrm.Page.getControl(function (control, index) { return control.getControlType() == "optionset"; }); Asigna una matriz de controles optionset a la variable optionSetControls. |
Determinar si un control está habilitado |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getDisabled |
var disabledControls = Xrm.Page.getControl(function(control, index) { return control.getDisabled(); }); Asigna una matriz de controles deshabilitados a la variable disabledControls. Nota Los controles de recursos web y subcuadrículas no admiten este método. |
Deshabilitar o habilitar un control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setDisabled |
Xrm.Page.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); }); Deshabilita cada control para el atributo name. Sugerencia Recuerde que cualquier atributo puede tener varios controles. |
Obtener la etiqueta de un control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getLabel |
var nameControlLabel = Xrm.Page.getControl("name").getLabel(); Asigna el valor del control del campo Nombre de cuenta a la variable nameControlLabel. |
Cambiar la etiqueta de un control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setLabel |
Xrm.Page.getControl("name").setLabel("Company Name"); Cambia la etiqueta del campo Nombre de cuenta a Nombre de la compañía. |
Obtener el nombre de un control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getName |
var firstControlName = Xrm.Page.getControl(0).getName(); Asigna el nombre del primer control en la colección Xrm.Page.ui.controls a la variable firstControlName. |
Obtener el elemento principal de un control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getParent |
var parentSection = Xrm.Page.getControl("name").getParent(); Asigna la sección principal del control del campo Nombre de cuenta a la variable parentSection. |
Establecer el enfoque en un control |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setFocus |
Xrm.Page.getControl("name").setFocus(); Establece el enfoque en el campo Nombre de cuenta. |
En este tema
Métodos de control de OptionSet
Los conjuntos de opciones (Optionsets) tienen algunos métodos especiales. Es importante recordar que el atributo define las opciones válidas para un optionset. Cuando trabaja con un control optionset, puede manipular las opciones disponibles pero no puede crear opciones nuevas.
Tarea |
Método |
Ejemplo |
---|---|---|
Agregar una opción a un control optionset |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addOption |
var addressTypeCodeControl = Xrm.Page.getControl("address1_addresstypecode"); Con una referencia al control del campo Tipo de dirección, obtenga acceso al atributo del control y use el método 6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getOption para establecer la variable billToAddressOption en la opción que representa la opción Facturación. Use 51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearOptions para quitar cualquier opción existente y use addOption para establecer billToAddressOption como la única opción disponible para este control. |
Quitar todas las opciones de un control optionset |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearOptions |
Xrm.Page.getControl("address1_addresstypecode").clearOptions(); Quite todas las opciones del control del campo Tipo de dirección. |
Quitar una sola opción de un control optionset. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_removeOption |
Xrm.Page.getControl("address1_addresstypecode").removeOption(1); Quite la opción Facturación del control del campo Tipo de dirección. |
En este tema
Métodos de control de IFRAME y recursos web
Un control IFRAME le permite incluir una página dentro de un formulario al proporcionar una URL. Un recurso web HTML agregado a un formulario se presenta mediante un elemento IFRAME.Silverlight y los recursos web de imagen se incrustan directamente en la página.
Tarea |
Método |
Ejemplo |
---|---|---|
Obtener el valor del parámetro de la cadena de consulta de datos pasado un recurso web de Silverlight. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getData |
var dataValue = Xrm.Page.getControl("WebResource_SilverLightControl").getData(); Asigna el valor pasado con el parámetro de la cadena de consulta de datos a la variable dataValue. |
Obtener la URL del contenido que se muestra actualmente en el IFRAME. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getSrc |
var iframeSource = Xrm.Page.getControl("IFRAME_targetPage").getSrc(); Asigna la cadena que representa el valor del atributo IFRAME.src actual a la variable iframeSource. |
Establecer la URL del contenido que se va a mostrar en un IFRAME. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setSrc |
Xrm.Page.getControl("IFRAME_targetPage").setSrc("http://www.bing.com"); Establece una URL para ser el IFRAME.src del control. |
Obtener la URL que representa a la URL configurada de manera predeterminada para un IFRAME. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getUrl |
var initialUrl = Xrm.Page.getControl("IFRAME_bing").getInitialUrl(); Asigna la URL inicial configurada para mostrarse en el IFRAME a la variable initialUrl. |
Obtener el objeto del formulario que representa el recurso web o IFRAME. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getObject |
var obj = Xrm.Page.getControl("IFRAME_bing").getObject(); Asigna una referencia de objeto a la variable obj. Para un IFRAME, será el elemento de Document Object Model (DOM) IFRAME. Para un recurso web de Silverlight, será el elemento Objeto Objeto que representa el complemento incrustado de Silverlight. |
En este tema
Consultar métodos de control
Un requisito común para los controles de búsqueda consiste en especificar la vista predeterminada que se muestra cuando un usuario actualiza el campo.
Tarea |
Método |
Ejemplo |
---|---|---|
Agregar una vista personalizada para una búsqueda. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addCustomView |
var viewId = "{C7034F4F-6F92-4DD7-BD9D-9B9C1E996380}"; Establece las variables viewId, viewDisplayName, fetchXml y layoutXml para pasar como argumentos a fin de que se agregue una vista personalizada como la vista predeterminada al control del campo de búsqueda Cuenta primaria. |
Obtener la vista predeterminada para una búsqueda. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getDefaultView |
var defaultViewId = Xrm.Page.getControl("parentaccountid").getDefaultView(); Asigna el valor id de la vista predeterminada a la variable defaultViewId. |
Establecer la vista predeterminada para una búsqueda. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setDefaultView |
var viewId = "{C7034F4F-6F92-4DD7-BD9D-9B9C1E996380}"; Establece la vista predeterminada para el control del campo Cuenta primaria al valor id en la variable viewId. |
Filtrar los registros devueltos para un control de búsqueda |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addCustomFilter |
El siguiente ejemplo de código es para la búsqueda de Cuenta del formulario de oportunidad (parentaccountid). Cuando la función Sdk.setParentAccountIdFilter se establece en el controlador de eventos de Onload del formulario, la función Sdk.filterCustomAccounts se agrega al evento PreSearch para esa búsqueda. El resultado es que solo se devuelven las cuentas con el valor Categoría (accountcategorycode) de Cliente preferido (1).
|
En este tema
Métodos de control de subcuadrícula
El control SubGrid es una cuadrícula dentro de un formulario. Tiene un método único.
Tarea |
Método |
Ejemplo |
---|---|---|
Actualizar los datos que se muestran en la subcuadrícula |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_refresh |
Xrm.Page.getControl("accountcontactsgrid").refresh(); Actualizar los Contactossubgrid. |
En este tema
Métodos de control de fecha
El control Fecha tiene un método único.
Tarea |
Método |
Ejemplo |
---|---|---|
Especificar si un control de fecha debe mostrar la parte de hora de la fecha. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setShowTime |
Xrm.Page.getControl("createdon").setShowTime(false); Establecer el campo Fecha de creación de modo que no se muestre la hora. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
En este tema
Navegación del formulario
Puede usar y manipular los elementos de navegación en el lado izquierdo del formulario. Por lo general, estos elementos de navegación muestran registros relacionados con el registro que se muestra en el formulario.
Puede obtener acceso a los elementos de navegación mediante la colección Xrm.Page.ui.navigation.items. Al igual que en todas las colecciones del formulario, hay un método 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get y 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEach.
Tarea |
Método |
Ejemplo |
---|---|---|
Obtener el nombre de un elemento de navegación |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getId |
var navItemIds = []; Crea una matriz navItemIds que contiene los valores id de cada elemento de navegación en la colección Xrm.Page.ui.navigation.items. |
Obtener la etiqueta de un elemento de navegación. |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getLabel |
var navAddressesLabel = Xrm.Page.ui.navigation.items.get("navAddresses").getLabel(); Asigna la etiqueta del elemento de navegación Más direcciones a la variable navAddressesLabel. |
Establecer la etiqueta de un elemento de navegación |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setLabel |
Xrm.Page.ui.navigation.items.get("navAddresses").setLabel("Other Addresses"); Cambia la etiqueta del elemento de navegación Más direcciones a Otras direcciones. |
Ocultar o mostrar un elemento de navegación |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setVisible |
Xrm.Page.ui.navigation.items.get("navAddresses").setVisible(false); Oculta el elemento de navegación More Addresses. |
Determinar si un elemento de navegación está visible |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getVisible |
var moreAddressesVisible = Xrm.Page.ui.navigation.items.get("navAddresses").getVisible() Asigna un valor Boolean a la variable moreAddressesVisible para representar si el elemento de navegación Más direcciones está visible. |
Establecer el enfoque en un elemento de navegación. |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setFocus |
Xrm.Page.ui.navigation.items.get("navAddresses").setFocus(); Establece el enfoque en el elemento de navegación Más direcciones. |
En este tema
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 obtener acceso a estos elementos mediante programación y usar sus métodos.
Tarea |
Método |
Ejemplo |
---|---|---|
Determinar si una pestaña se expande o contrae |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_getDisplayState |
var isGeneralTabExpanded = (Xrm.Page.ui.tabs.get("general").getDisplayState() == "expanded") Asigna un valor Boolean a la variable isGeneralTabExpanded que indica si la pestaña General se expande. |
Expandir o contraer una pestaña |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetDisplayState |
Xrm.Page.ui.tabs.get("general").setDisplayState("collapsed"); Contrae la pestaña General. |
Determinar si una pestaña está visible |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetVisible |
var isGeneralTabVisible = Xrm.Page.ui.tabs.get("general").getVisible(); Asigna un valor Boolean a la variable isGeneralTabVisible que indica si la pestaña General está visible. |
Ocultar o mostrar una pestaña |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetVisible |
Xrm.Page.ui.tabs.get("general").setVisible(false); Oculta la pestaña General. |
Obtener la etiqueta de una pestaña |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetLabel |
var generalTabLabel = Xrm.Page.ui.tabs.get("general").getLabel(); Asigna la etiqueta de la pestaña General a la variable generalTabLabel. |
Cambiar la etiqueta de una pestaña |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetLabel |
Xrm.Page.ui.tabs.get("general").setLabel("Major"); Cambia la etiqueta de la pestaña General a Principal. |
Establecer el enfoque en una pestaña |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetFocus |
Xrm.Page.ui.tabs.get("general").setFocus(); Establece el enfoque en la pestaña General. |
Obtener el nombre de una pestaña |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetName |
var firstTabName = Xrm.Page.ui.tabs.get(0).getName(); Asigna el nombre de la primera pestaña a la variable firstTabName. |
Obtener la pestaña principal de una sección |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionGetParent |
Xrm.Page.getControl("industrycode").getParent().getParent().setFocus(); Establece el enfoque en la pestaña que contiene el campo Sector. |
Determinar si una sección está visible |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionGetVisible |
var industrySectionVisible = Xrm.Page.getControl("industrycode").getParent().getVisible(); Asigna un valor Boolean a la variable industrySectionVisible que indica si la sección que contiene el campo Sector está visible. |
Ocultar o mostrar una sección |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionSetVisible |
Xrm.Page.getControl("industrycode").getParent().setVisible(false); Oculta la sección que contiene el campo Sector. |
Obtener la etiqueta de una sección |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_getLabel |
var industryFieldSectionLabel = Xrm.Page.getControl("industrycode").getParent().getLabel(); Asigna la etiqueta de la sección que contiene el campo Sector a la variable industryFieldSectionLabel. |
Cambiar la etiqueta de una sección |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionSetLabel |
Xrm.Page.getControl("industrycode").getParent().setLabel("Detailed Information"); Cambia la etiqueta de la sección que contiene el campo Sector a Información detallada. |
En este tema
Agregar o quitar controladores de eventos en tiempo de ejecución
Normalmente, los controladores de eventos se configuran con el editor de formularios de la aplicación, pero también puede agregarlos al evento OnSave del formulario y los eventos OnChange del atributo en tiempo de ejecución mediante estas APIs. Los ejemplos de esta sección harán referencia a la siguiente definición de función:
function myFunction() {
//perform action here
}
Aunque puede agregar una función anónima, la función debe tener un nombre para hacer referencia a fin de quitarla.
Tarea |
Método |
Ejemplo |
---|---|---|
Agregar una función al evento OnSave. |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_addOnSave |
Xrm.Page.data.entity.addOnSave(myFunction); Agregar la función myFunction al evento OnSave. |
Quitar una función del evento OnSave. |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_removeOnSave |
Xrm.Page.data.entity.removeOnSave(myFunction); Quitar la función myFunction del evento OnSave. |
Agregar una función al evento OnChange de un atributo. |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_addOnChange |
Xrm.Page.getAttribute("name").addOnChange(myFunction); Agregar la función myFunction al evento OnChange del campo Nombre de cuenta. |
Quitar una función del evento OnChange de un atributo. |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_removeOnChange |
Xrm.Page.getAttribute("name").removeOnChange(myFunction); Quitar la función myFunction del evento OnChange del campo Nombre de cuenta. |
Agregar una función al evento PreSearch de un control de búsqueda. |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addPreSearch |
El siguiente ejemplo de código es para la búsqueda de Cuenta del formulario de oportunidad (parentaccountid). Cuando la función Sdk.setParentAccountIdFilter se establece en el controlador de eventos de Onload del formulario, la función Sdk.filterCustomAccounts se agrega al evento PreSearch para esa búsqueda. El resultado es que solo se devuelven las cuentas con el valor Categoría (accountcategorycode) de Cliente preferido (1).
|
Use d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange y d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected para eventos que aparecen en el control de flujo de proceso de negocio. Estos eventos solo tienen métodos para agregar o quitar controladores de eventos mediante programación.Más información:Métodos para administrar controladores de eventos.
En este tema
Métodos de información contextual
Use estos métodos para obtener información del usuario, la organización y el cliente. La siguiente tabla proporciona algunos de los métodos de contexto más útiles. Para todos los métodos de contexto, consulte Contexto del lado del cliente (referencia del lado del cliente).
Tarea |
Método |
Ejemplo |
---|---|---|
Obtener la URL para conectarse con la organización. |
var serverUrl = Xrm.Page.context.getClientUrl(); Asignar una cadena que represente la URL a la variable serverUrl. |
|
Obtener el identificador único del usuario actual. |
var userId = Xrm.Page.context.getUserId(); Asignar una cadena que represente el identificador del usuario a la variable userId. |
|
Obtener el nombre del usuario actual. |
var userName = Xrm.Page.context.getUserName(); Asignar una cadena que represente el nombre del usuario a la variable userName. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
|
Obtener el código de idioma que representa el idioma de interfaz de usuario preferido del usuario. |
var userLCID = Xrm.Page.context.getUserLcid(); Asignar un número que indique el idioma preferido del usuario a la variable userLCID. |
|
Obtener una matriz de cadenas que represente los valores de GUID de cada rol de seguridad asignado al usuario actual y a cualquier equipo al que está asociado el usuario. |
var userRoles = Xrm.Page.context.getUserRoles(); Asignar una matriz de cadenas que represente los roles de seguridad del usuario a la variable userRoles. |
|
Determinar si el script se ejecuta en el cliente de Microsoft Dynamics 365 para Outlook. |
var isOutlookClient = (Xrm.Page.context.client.getClient() == "Outlook"); Asignar un valor Boolean que represente si el código se ejecuta en el cliente de Dynamics 365 para Outlook a la variable isOutlookClient. |
|
Determinar si el usuario trabaja sin conexión con el cliente de Microsoft Dynamics 365 para Microsoft Office Outlook con acceso sin conexión. |
var IsOffline = (Xrm.Page.context.client.getClientState() == "Offline"); Asignar un valor Boolean que represente si el usuario trabaja actualmente sin conexión a la variable IsOffline. |
En este tema
Obtener, actualizar, o guardar datos de entidad
La siguiente tabla contiene los métodos que puede usar para obtener información sobre el registro actual o guardar cambios. Para obtener más información, vea Xrm.Page.data.entity (referencia del lado del cliente) y Xrm.Page.data (referencia del lado del cliente).
Tarea |
Método |
Ejemplo |
---|---|---|
Obtener el nombre lógico de la entidad actual |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getEntityName |
var entityName = Xrm.Page.data.entity.getEntityName(); Asignar el nombre lógico de la entidad a la variable entityName. |
Obtener el valor del atributo principal de la entidad actual. |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getPrimaryAttributeValue |
var primaryAttributeValue = Xrm.Page.data.entity.getPrimaryAttributeValue(); Asignar el valor del atributo principal a la variable primaryAttributeValue . Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Obtener el Id del registro actual |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getId |
var recordId = Xrm.Page.data.entity.getId(); Asignar el id del registro a la variable recordId. |
Actualizar asincrónicamente los datos del formulario sin volver a cargar la página. |
ab100e06-a3ba-47f8-a8f8-7b5fab2ab66d#BKMK_refresh |
Xrm.Page.data.refresh(); Actualiza los datos en el formulario. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Guardar el registro actual |
Xrm.Page.data.entity.fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_save |
Xrm.Page.data.entity.save(); Guarda el registro. Existen argumentos opcionales. Use saveandclose o saveandnew para realizar acciones equivalentes. |
Guardar el registro actual asincrónicamente con la opción para configurar |
Xrm.Page.data.ab100e06-a3ba-47f8-a8f8-7b5fab2ab66d#BKMK_dataSave |
Xrm.Page.data.save().then( Guarda el registro y muestra un mensaje que indica el estado de la operación de guardar. Este método solo está disponible para 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties. |
Determinar si algún dato del registro actual ha cambiado. |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getIsDirty |
var isDirty = Xrm.Page.data.entity.getIsDirty(); Asignar un valor Boolean que represente si los datos del registro han cambiado a la variable isDirty. |
Obtener una cadena que represente los datos que se enviarán al servidor cuando se guarda el registro. |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getDataXml |
var dataXml = Xrm.Page.data.entity.getDataXml(); Asignar una cadena que represente los datos que se van a guardar a la variable dataXml. |
En este tema
Ver también
Use el modelo de objeto Xrm.Page
Escriba código para formularios de Microsoft Dynamics 365
Referencia de programación del lado del cliente
Microsoft Dynamics 365
© 2017 Microsoft. Todos los derechos reservados. Copyright