Fecha de publicación: Enero 1, 2008
Cuando proporcione campos que ya incluyan valores, reducirá el tiempo que pasa todo el mundo escribiendo y mejorará su precisión. Los usuarios pueden reemplazar los valores predeterminados si fuera necesario.
Puede establecer los valores predeterminados para los campos de Microsoft Dynamics CRM escribiendo código JScript que se activa cuando se carga un formulario o cuando cambia un valor. Los ejemplos de este artículo presentan la programación de cliente mediante JScript. Las muestras de código son fáciles de entender, copiar y modificar, incluso aunque nunca haya escrito código antes.
En el primer ejemplo, "Establecer la duración predeterminada de una cita", se muestra cómo cambiar la duración predeterminada de una cita. Es una forma sencilla de evitar errores que se producen cuando los empleados realizan cambios al escribir citas.
En el segundo ejemplo, "Establecer la fecha de vencimiento basándose en la prioridad", se muestra cómo cambiar el valor en el campo Fecha de vencimiento para una tarea basada en un valor que el usuario selecciona en la lista Prioridad del formulario Tarea. Al usar el valor de un campo para establecer el valor predeterminado de otro campo se garantiza que los empleados siguen un proceso estándar. También se reduce el número de clics y la escritura de cada usuario.
Para realizar los cambios sugeridos en este artículo, debe tener el rol de seguridad Administrador del sistema o Personalizador del sistema, o privilegios equivalentes.
|
|
Establecer la duración predeterminada de una cita |
|
|
Ajustar la fecha de vencimiento basándose en la prioridad |
|
|
Sugerencias para modificar el código JScript |
En el siguiente ejemplo se muestra cómo usar el evento OnLoad para cambiar el valor predeterminado de un atributo cuando Microsoft Dynamics CRM carga un formulario. Cuando se abre el formulario, Microsoft Dynamics CRM ejecuta código que se ha especificado en el evento OnLoad antes de que aparezca el formulario. Esto garantiza que los empleados siempre vean el valor personalizado.
En el Panel de navegación, haga clic en Configuración, en Personalización y, a continuación, en Personalizar entidades.
Haga doble clic en Cita.
En Detalles, haga clic en Formularios y vistas y, a continuación, haga doble clic en Formulario.
En el área Tareas comunes, haga clic en Propiedades del formulario.
Seleccione OnLoad y, a continuación, haga clic en Editar. Se abre el cuadro de diálogo Propiedades de detalle del evento.
Pegue el siguiente código en el cuadro del cuadro de diálogo Propiedades de detalle del evento.
// Set the default duration to 60 minutes when the form is opened.
var CRM_FORM_TYPE_CREATE = "1";
var iMinutes = 60;
if (crmForm.FormType==CRM_FORM_TYPE_CREATE)
{
crmForm.all.scheduleddurationminutes.DataValue = iMinutes;
}
Active la casilla El evento está habilitado.
Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de detalle del evento y, a continuación, haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades del formulario.
En el formulario Formulario: Cita, en el menú Vista previa, haga clic en Formulario de creación.
En el formulario Formulario de creación, compruebe si Duración se ha establecido en una hora y, a continuación, cierre esta ventana.
En el menú Vista previa, haga clic en Formulario de actualización. Como el código sólo se ejecuta cuando se abre el formulario para crear un nuevo registro, el valor de Duración no cambia cuando se abre el formulario para actualizar un registro. Cierre esta ventana.
En el formulario Formulario: Cita, haga clic en Guardar y cerrar.
Si ha terminado de realizar los cambios, haga clic en Guardar y cerrar en el formulario Entidad: Cita, seleccione Cita en la lista Personalizar entidades y, a continuación, en el menú Acciones haga clic en Publicar.
Como las páginas web se almacenan en caché, es posible que las personalizaciones publicadas no se vean inmediatamente. Si ocurre esto, puede cerrar y volver a abrir Microsoft Dynamics CRM o actualizar la página presionando F5.
En este ejemplo se muestra cómo usar la prioridad de la tarea para determinar cuándo vence. Puede ver cómo configurar un valor predeterminado de un campo cuando cambia otro valor.
El campo Prioridad de la entidad Tarea es una lista desplegable y las listas desplegables tienen valores predeterminados. Cuando se abre una nueva tarea, la prioridad se establece en Normal. En el ejemplo se usa el evento OnLoad para establecer la fecha de vencimiento cuando se abre el formulario. Después se usa el evento OnChange del campo Prioridad para establecer la fecha de vencimiento cuando se cambia el valor en el campo Prioridad.
En el Panel de navegación, haga clic en Configuración, en Personalización y, a continuación, en Personalizar entidades.
Haga doble clic en Tarea.
En Detalles, haga clic en Formularios y vistas y, a continuación, haga doble clic en Formulario.
En el área Tareas comunes, haga clic en Propiedades del formulario.
Seleccione OnLoad y, a continuación, haga clic en Editar.
Pegue el siguiente código en el cuadro del cuadro de diálogo Propiedades de detalle del evento:
var CRM_FORM_TYPE_CREATE = "1";
var DUE;
var TODAY;
// Only make these changes when the form is opened in Create mode.
if (crmForm.FormType==CRM_FORM_TYPE_CREATE)
{
// Get today's date.
TODAY = new Date();
// Set the due today date to today + 3 days at 5:00 P.M.
DUE = TODAY.setDate( TODAY.getDate() + 3);
DUE=TODAY.setHours(17,0,0);
crmForm.all.scheduledend.DataValue = DUE;
}
Active la casilla El evento está habilitado.
Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de detalle del evento y, a continuación, haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades del formulario.
En el formulario Formulario: Tarea, en el menú Vista previa, haga clic en Formulario de creación.
Compruebe que el valor del campo Vencimiento esté establecido en tres días desde hoy a las 5:00 p.m. y, a continuación, cierre la ventana Formulario de creación.
Haga clic en Guardar y continúe con el siguiente procedimiento.
Con el formulario Formulario: Tarea abierto en el procedimiento anterior, haga clic en Prioridad y, a continuación, en el área Tareas comunes haga clic en Cambiar propiedades.
En la ficha Eventos, seleccione onChange y, a continuación, haga clic en Editar. El cuadro de diálogo Propiedades de detalle del evento se abre.
Pegue el siguiente código en el cuadro del cuadro de diálogo Propiedades de detalle del evento:
var CRM_FORM_TYPE_CREATE = "1";
var PRIORITY_HIGH="High";
var PRIORITY_NORMAL="Normal";
var PRIORITY_LOW="Low";
var DUE;
var TODAY;
// Only make these changes when the form is opened in Create mode.
if (crmForm.FormType==CRM_FORM_TYPE_CREATE)
{
TODAY = new Date();
// If Due Date is null, set it to today's date.
DUE = crmForm.all.scheduledend.DataValue;
if (DUE == null)
{
DUE = new Date();
}
// Set the due date based on the value of the Priority field.
// Set the time to 5:00 P.M. in each case.
switch (crmForm.prioritycode.SelectedText) {
case PRIORITY_HIGH:
DUE = TODAY;
DUE = DUE.setHours(17,0,0);
break;
case PRIORITY_LOW:
DUE = TODAY.setDate( TODAY.getDate() + 7);
DUE = TODAY.setHours(17,0,0);
break;
case PRIORITY_NORMAL:
DUE = TODAY.setDate( TODAY.getDate() + 3);
DUE = TODAY.setHours(17,0,0);
break;
}
crmForm.all.scheduledend.DataValue = DUE;
}
Active la casilla El evento está habilitado.
Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de detalle del evento y, a continuación, haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de campo.
En el formulario Formulario: Tarea, en el menú Vista previa, haga clic en Formulario de creación.
En el cuadro Prioridad, seleccione cada valor y, a continuación, compruebe que el valor del campo Vencimiento haya cambiado correctamente.
Cierre el formulario Formulario de creación.
En el menú Vista previa, haga clic en Formulario de actualización y, a continuación, compruebe que al cambiar el valor del cuadro Prioridad no cambia el valor en el campo Vencimiento.
Cierre el formulario Formulario de actualización.
En el formulario Formulario: Tarea, haga clic en Guardar y cerrar.
Si ha terminado de realizar los cambios, haga clic en Guardar y cerrar en el formulario Entidad: Tarea.
En la lista Personalizar entidades seleccione Tarea y en la barra de tareas Acciones haga clic en Publicar.
Como las páginas web se almacenan en caché, es posible que las personalizaciones publicadas no se vean inmediatamente. Si ocurre esto, puede cerrar y volver a abrir Microsoft Dynamics CRM o actualizar la página presionando F5.
Cuando cree valores predeterminados en Microsoft Dynamics CRM, tenga en cuenta estas cuestiones:
JScript diferencia entre mayúsculas y minúsculas.
Los comentarios empiezan con //.
Como el cuadro del cuadro de diálogo Propiedades de detalle del evento donde escribe el código sólo acepta texto sin formato, no tiene una función Deshacer y no comprueba la sintaxis de JScript. Si hay errores de sintaxis en el código cuando se obtiene una vista previa del cambio, el único mensaje que verá estará en la barra de estado: "Error en esta página".
Como mínimo, guarde una copia del código en el Bloc de notas para poder agregarlo y probarlo una o dos líneas cada vez. Si ha instalado el sistema de desarrollo Microsoft Visual Studio, abra un archivo .js y escriba el código ahí. Microsoft Visual Studio comprobará la sintaxis JScript.
En el código deberá usar los nombres de campo, no los nombres para mostrar. Para buscar el nombre de un campo del formulario, seleccione el campo, seleccione Cambiar propiedades y haga clic en la ficha Esquema. Para buscar el nombre de esquema de los campos bloqueados, haga clic en la ficha Atributos, que incluye una columna para el nombre de esquema y el nombre para mostrar.
Los formularios de Microsoft Dynamics CRM tienen propiedades y métodos que se pueden invocar desde el código JScript para determinar si el formulario se abre para crear o actualizar un registro. Los campos también tienen propiedades y métodos. Los diferentes tipos de campos tienen propiedades diferentes. Todos los tipos de campo tienen una propiedad DataValue que puede usar para devolver el valor de un campo o para establecer el valor del campo. Para obtener más información sobre las propiedades y los métodos de los formularios y campos de Microsoft Dynamics CRM, lea la sección acerca del modelo de objetos del formulario (puede estar en inglés) del SDK de Microsoft Dynamics CRM.
El Manual del usuario de JScript y la Referencia del lenguaje JScript (pueden estar en inglés) son útiles para buscar sintaxis JScript.
© 2009 Microsoft Corporation. Reservados todos los derechos.