Definir las reglas de habilitación de la cinta de opciones
Nota
Este tema trata sobre comandos clásicos.
Hay una nueva forma de definir comandos. Consulte Información general de los comandos modernos (versión preliminar)
Al configurar los elementos de la cinta de opciones, se pueden definir las reglas para supervisar cuando se habilitan los elementos de la cinta de opciones. El elemento <EnableRule>
se usa de la siguiente manera:
Use el elemento
/RuleDefinitions/EnableRules/EnableRule
para definir las reglas que controlan cuándo debe habilitarse el elemento de la cinta de opciones.Use el elemento
/CommandDefinitions/CommandDefinition/EnableRules/EnableRule
para asociar reglas de habilitación específicas a una definición de comando.
¿Qué significa estar habilitado?
En la barra de comandos, los comandos deshabilitados están ocultos. En la cinta de opciones, los comandos deshabilitados están visibles pero no responden a eventos.
Controlar cuando los elementos de la cinta de opciones están habilitados
Las reglas de habilitación están pensadas para que puedan reutilizarse. Al definirlas con definiciones de reglas, se puede usar la misma regla de habilitación para muchas definiciones de comando. Cuando más de una regla de habilitación está definida para una definición de comando, todas las reglas de habilitación deben evaluarse como true para que el elemento de la cinta de opciones esté habilitado.
Todas las reglas Enable proporcionan un parámetro opcional para especificar si el valor predeterminado de la regla es true o false, y un parámetro InvertResult
opcional para habilitar la devolución de un resultado negativo cuando el elemento que se está probando devuelve true.
El elemento /RuleDefinitions/EnableRules/EnableRule
admite los siguientes tipos de reglas:
Regla de tipo de cliente de comando
Usa el elemento <CommandClientTypeRule>
. Especifica una regla que detecta el tipo de presentación que se usa.
Los valores Type
corresponden a lo siguiente:
Value | Presentación |
---|---|
Modern |
La barra de comandos se muestra mediante Dynamics 365 para tabletas. |
Refresh |
La barra de comandos se muestra mediante la interfaz de usuario actualizada. |
Legacy |
La cinta de opciones se muestra en los formularios de tablas que no se actualizaron o en una vista de lista en Dynamics 365 for Outlook. |
Regla de tipo de cliente CRM
Usa el elemento <CrmClientTypeRule>
para permitir la definición de reglas en función del tipo de cliente utilizado. Las opciones de tipo son las siguientes:
Web
Outlook
Regla de estado de acceso sin conexión de CRM
Usa el elemento <CrmOfflineAccessStateRule>
. Use este criterio para habilitar un elemento de la cinta de opciones en función de si Dynamics 365 para Microsoft Office Outlook con Offline Access está actualmente sin conexión.
Regla de tipo de cliente Outlook de CRM
Usa el elemento <CrmOutlookClientTypeRule>
. Use esta regla si desea mostrar solo un botón para un tipo específico de Dynamics 365 for Outlook. Las opciones de tipo son las siguientes:
CrmForOutlook
CrmForOutlookOfflineAccess
Regla personalizada
Usa el elemento <CustomRule>
. Use este tipo de regla para llamar a una función en un recurso web JavaScript que devuelva una promesa (interfaz unificada) o un valor booleano (interfaz unificada y cliente web).
function EnableRule()
{
const value = Xrm.Page.getAttribute("column1").getValue();
return value === "Active";
}
Nota
Las reglas personalizadas que no devuelven un valor rápidamente pueden afectar al rendimiento de la cinta de opciones. Si tiene que realizar lógica que puede tardar algún tiempo en completarse (por ejemplo, una solicitud de red), use la siguiente estrategia para crear su regla personalizada asincrónica.
La reglas de la interfaz unificada admiten que se devuelva una promesa más que un valor booleano para la evaluación de reglas asincrónica. Si la promesa no se resuelve en 10 segundos, la regla se resolverá con un valor false.
Nota
Las reglas basadas en promesas solo funcionarán en la interfaz unificada, por lo que no se pueden usar si se sigue utilizando el típico cliente web.
// Old synchronous style
/*
function EnableRule() {
const request = new XMLHttpRequest();
request.open('GET', '/bar/foo', false);
request.send(null);
return request.status === 200 && request.responseText === "true";
}
*/
// New asynchronous style
function EnableRule() {
const request = new XMLHttpRequest();
request.open('GET', '/bar/foo');
return new Promise(function(resolve, reject) {
request.onload = function (e) {
if (request.readyState === 4) {
if (request.status === 200) {
resolve(request.responseText === "true");
} else {
reject(request.statusText);
}
}
};
request.onerror = function (e) {
reject(request.statusText);
};
request.send(null);
});
}
Regla de entidad
Usa el elemento <EntityRule>
. EntityRule
permite la evaluación de la tabla actual. Esto resulta útil al definir acciones personalizadas que se aplican a la plantilla de la tabla en lugar de a las tablas específicas. Por ejemplo, es posible que desee agregar un elemento de la cinta de opciones en todas las tablas excepto en algunas tablas específicas. Es más fácil definir la acción personalizada de la plantilla de la tabla que se aplica a todas las tablas y después usar una regla EntityRule
para filtrar aquellas que se deben excluir.
Las reglas EntityRule
también incluyen un parámetro de contexto opcional para especificar si se muestra la tabla en el formulario o en una lista (HomePageGrid). El parámetro opcional AppliesTo
se puede establecer en PrimaryEntity
o en SelectedEntity
para distinguir si se muestra la tabla en una subcuadrícula.
Regla de estado del formulario
Usa el elemento <FormStateRule>
. Use la regla FormState
para determinar el tipo actual de formulario que se muestra en un registro. Las opciones de estado son las siguientes:
Create
Existing
ReadOnly
Disabled
BulkEdit
Regla O
Usa el elemento <OrRule>
. OrRule
permite reemplazar el valor de comparación predeterminado AND para varios tipos de reglas de habilitación. Use el elemento OrRule
para definir varias combinaciones posibles válidas para comprobar.
Regla de seguimiento de elementos de Outlook
Usa el elemento <OutlookItemTrackingRule>
. Use el parámetro TrackedInCrm
de este elemento para determinar si se realiza el seguimiento del registro en Power Apps.
Regla de la versión de Outlook
Usa el elemento <OutlookVersionRule>
. Use esto para habilitar un elemento de la cinta de opciones de una versión determinada de Office Outlook, de la siguiente manera:
2003
2007
2010
Regla de página
Usa el elemento <PageRule>
. Este tipo de regla compruebe la dirección URL de la página que se muestra. Devuelve true si coincide con Address
.
Regla de privilegios de registro
Usa el elemento <RecordPrivilegeRule>
. Use esta regla para determinar si el usuario actual tiene privilegios en un registro específico. Estos privilegios difieren del privilegio de la tabla porque pueden incluir los privilegios obtenidos por otro usuario que comparte el registro con el usuario actual.
Regla de recuento de selección
Usa el elemento <SelectionCountRule>
. Use este tipo de regla con una cinta de opciones para que aparezca una lista para habilitar un botón cuando se seleccionan los números de registros máximos y mínimos específicos en la cuadrícula. Por ejemplo, si el botón combina los registros, debe asegurarse de que al menos dos registros están seleccionados antes de habilitar el control de la cinta de opciones.
Regla de valor
Usa el elemento <ValueRule>
. Use esta regla para comprobar el valor de una columna específica en el registro que se muestra en el formulario. Debe especificar Field
y Value
para comprobar.
Nota
En un formulario, un ValueRule
requiere que la columna especificada sea parte del formulario para que funcione. En una cuadrícula o subcuadrícula, la columna debe ser una de las columnas de la cuadrícula.
Mostrar en la regla de acción rápida
Usa el elemento <EnableRule>
. Utilice esta regla para que el comando aparezca solo como una acción rápida.
<CommandDefinition Id="new.contact.Command.Call">
<EnableRules>
<EnableRule Id="Mscrm.SelectionCountExactlyOne" />
<EnableRule Id="Mscrm.ShowOnQuickAction" />
</EnableRules>
<DisplayRules />
<Actions>
<JavaScriptFunction FunctionName=" simplealert" />
</Actions>
</CommandDefinition>
Mostrar en la cuadrícula de la regla de acción rápida
Usa el elemento <EnableRule>
. Utilice esta regla para que el comando aparezca en la cuadrícula de la página de inicio y como acción rápida.
<CommandDefinition Id="new.contact.Command.Call">
<EnableRules>
<EnableRule Id="Mscrm.SelectionCountExactlyOne" />
<EnableRule Id="Mscrm.ShowOnGridAndQuickAction" />
</EnableRules>
<DisplayRules />
<Actions>
<JavaScriptFunction FunctionName=" simplealert" />
</Actions>
</CommandDefinition>
Mostrar en la regla de cuadrícula
Usa el elemento <EnableRule>
. Utilice esta regla para que el comando de acción rápida aparezca solo en la cuadrícula de la página de inicio. En otras palabras, puede utilizar este comando para ocultar una acción rápida existente.
<CommandDefinition Id="new.contact.Command.Call">
<EnableRules>
<EnableRule Id="Mscrm.SelectionCountExactlyOne" />
<EnableRule Id="Mscrm.ShowOnGrid" />
</EnableRules>
<DisplayRules />
<Actions>
<JavaScriptFunction FunctionName=" simplealert" />
</Actions>
</CommandDefinition>
Consultar también
Personalizar comandos y la cinta de opciones
Definir comandos de la cinta de opciones
Defina las reglas de la visualización de la cinta de opciones
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).