Roles de seguridad para integración con D365 Business Central

En esta entrada me gustaría compartir con todos los roles de seguridad que debemos habilitar para la correcta integración entre Dynamics 365 for Sales y Dynamics 365 Business Central. Para habilitar estos Roles de Seguridad debemos importar la solución correspondiente, como lo vimos en la entrada anterior.


Primero, debemos ingresar a la configuración de Dynamics 365 for Sales --> Seguridad

Debemos ingresar al área de Usuario:

Seleccionar el usuario:

Hacemos clic en los puntos suspensivos:

Hacemos clic en la opción para Administrar Roles:

En la ventana, debemos seleccionar las opciones necesarias para la integración:

En la misma ventana, seleccionamos los roles necesarios para la integración:


  1. Dynamics 365 Business Central Integration Administrator: Con este rol los sistemas puedan integrarse entre sí.

  2. Dynamics 365 Business Central Integration User: El usuario habilitado para realizar las operaciones de integración dentro ambos sistemas.

  3. Dynamics 365 Business Central Integration Product Availability User: Con este rol el usuario puede realizar verificaciones dentro de ambos sistemas.


Con estos sencillos pasos estaremos integrando Dynamics 365 for Sales con Dynamics 365 Business Central.

NAVDEV Tips: Validación de controles en Dynamics NAV 2018

Las validaciones siempre son importantes dentro del mundo de las aplicaciones, es por eso que no puede faltar dentro de Microsoft Dynamics NAV.


Existen varias formas de realizar validaciones. Aquí menciono dos:



  • Tablas: Las validaciones se realizan en los campos de las tablas, afectando a todos los demás objetos. Estas validaciones son generales y afectan a tablas y páginas.

  • Páginas: Las validaciones se realizan en los campos de la página. Por ejemplo, cuando sólo queremos realizar las validaciones en la página sin afectar a otras páginas.


Hoy, demostraré cómo validar un campo de tabla:



  • Afectaremos al campo RUC ("VAT Registation No." en NAV):


  • En las tablas, seleccionamos la 79 (Company Information):


  • Nos dirigimos al campo 19 (VAT Registration Number):


  • Seleccionamos el botón que nos lleva al código C/AL:


  • Escribimos el código que valida nuestro campo:


  • VAT Registration No. - OnValidate()
    // "VAT Registration No." := UPPERCASE("VAT Registration No.");
    // IF "VAT Registration No." = xRec."VAT Registration No." THEN
    // EXIT;
    // IF NOT VATRegNoFormat.Test("VAT Registration No.","Country/Region Code",'',DATABASE::"Company Information") THEN
    // EXIT;
    // IF "Country/Region Code" = '' THEN
    // EXIT;
    // IF VATRegNoSrvConfig.VATRegNoSrvIsEnabled THEN BEGIN
    // VATRegistrationLogMgt.ValidateVATRegNoWithVIES(ResultRecordRef,Rec,"Primary Key",
    // VATRegistrationLog."Account Type"::"Company Information","Country/Region Code");
    // ResultRecordRef.SETTABLE(Rec);
    // END;

    ////CAMADO
    //Con esto verificamos que el RUC debe contener 8 caracteres como mínimo
    IF STRLEN("VAT Registration No.") < 8 THEN
    FIELDERROR("VAT Registration No.", 'El RUC debe contener como mínimo 8 caracteres');

    //Con esto verificamos que tenga el dígito verificador. En Paraguay, el RUC sería 1234567-8
    IF STRPOS("VAT Registration No.", '-') < 1 THEN
    FIELDERROR("VAT Registration No.", 'El RUC debe contener el DV (dígito verificador)');
    ////CAMADO

  • Probamos la validación con los datos de España:


  • Al colocar los datos del RUC de Paraguay...


  • La validación siempre se produce al salir del campo a validar.



De esta manera, hemos validado que se cumplan los requisitos para el RUC, en territorio paraguayo :)

Importar solución para integración con Business Central

En esta entrada me gustaría compartir con ustedes la importación de la solución de CRM (de cariño) desde Dynamics 365 Business Central al entorno Dynamics 365 for Sales. Con esto logramos que ambos sistemas se integren entre si, según las políticas marcadas de manera nativa por Microsoft para ambos sistemas.


En este sentido, no hay demasiado problema para realizar las acciones que se exponen y donde logramos el primer paso de la integración.


A continuación vemos los pasos para realizar la importación:



  1. Ubicamos el instalador de Dynamics 365 Business Central y buscamos la carpeta que se nombra como "CrmCustomization". Encontraremos dos archivos con extensión .zip y seleccionamos la versión correspondiente para nuestro CRM:


  2. En las soluciones, hacemos clic en el botón "Importar":


  3. Seleccionamos el archivo .zip (del paso 1):


  4. Si la importación se realiza por primera vez se mostrará una ventana como esta:


  5. Si la solución ya existe, intentará actualizar la solución:


  6. En caso que estemos actualizamos, debemos realizar el siguiente paso:


  7. Si no estamos actualizando, del paso 4, procedemos a importar la solución


  8. Una vez terminada la importación, veremos el detalle de los archivos importados (generalmente salen advertencias relacionadas a una librería de .NET):


  9. Por último, veremos la solución agregada al Dynamics 365 for Sales:



De esta forma, hemos agregado la solución de Dynamics 365 Business Central (ERP) dentro de Dynamics 365 for Sales (CRM)

Crear flujos de trabajo en D365 for Sales

En esta entrada, veremos cómo crear flujos de trabajo dentro de Dynamics 365 for Sales. El proceso es muy directo y no necesitamos dar tantas vueltas.


Aquí mostramos los pasos para la creación de los flujos.



  1. Seleccionamos "Procesos" en el menú de configuración:


  2. Vemos los flujos de trabajos ya creados o bien creamos uno nuevo:


  3. En este ejemplo muestro uno ya creado:



De esta manera se crean y se modifican los flujos de trabajo dentro de Dynamics 365 for Sales.

Aplicar descuentos porcentuales en D365

Esta semana, un cliente, solicitó a la empresa donde trabajo que pueda aplicar descuentos a los montos establecidos de manera personalizada.


A continuación, los pasos para la aplicación de descuentos en Dynamics 365 for Sales:



  1. Dentro de Configuración > Personalizaciones, buscamos la entidad "Línea de oferta":


  2. Seleccionamos el formulario donde aplicaremos la lógica:


  3. Aparece el editor del formulario:


  4. Si no existe, lo creamos:


  5. Agregamos el nombre, el tipo de dato, el valor mínimo y máximo. Guardamos y cerramos:


  6. Arrastramos el campo "Porcentaje de descuento" y hacemos clic en "Cambiar propiedades":


  7. En la pestaña Eventos, seleccionamos y/o agregamos nuestra Biblioteca. En el evento "AlCambiar" Agregamos nuestra función:


  8. Seleccionamos la Biblioteca y colocamos el nombre de la función:


  9. Editamos la Biblioteca:


  10. Colocamos el código necesario, Guardamos todo y publicamos:



  11. function CalculatePrice()
    {
    var discPer = Xrm.Page.getAttribute("new_porcentajedescuento").getValue();
    var manDisc = Xrm.Page.getAttribute("manualdiscountamount").getValue();
    var quan = Xrm.Page.getAttribute("quantity").getValue();
    var pricePU = Xrm.Page.getAttribute("priceperunit").getValue();

    var manDisc = 0;
    if (discPer > 0)
    {
    manDisc = pricePU * (discPer / 100);
    Xrm.Page.getAttribute("manualdiscountamount").setValue(manDisc * quan);

    Xrm.Page.getAttribute("manualdiscountamount").setSubmitMode("always");
    }
    }

  12. Vamos al formulario de "Ofertas", cargamos los datos y en "Lineas de Oferta" colocamos el porcentaje deseado. La aplicación ejecuta el código que hemos colocado:



Con estos pasos podemos aplicar descuentos porcentuales según la necesidad dentro de Microsoft Dynamics 365 for Sales.

Obtener NAV 2018 desde otro servidor

Hoy veremos como traer una base de datos (de un cliente, por ejemplo) y montarla en nuestro equipo y/o servidor.


El proceso es muy sencillo y aquí lo explico paso a paso.


Los pasos a seguir para esto serían:



  1. Restauramos la base de datos (En este caso TEST):


  2. En el entorno de desarrollo de NAV, seleccionamos la base de datos:


  3. Abrimos la base de datos necesaria:



  4. Abrimos la tabla "Server Instance":


  5. Allí modificamos o agregamos los datos necesarios:


  6. Construimos los objetos de la aplicación:


  7. Aceptamos el mensaje:


  8. Deberíamos ver el mensaje siguiente:


  9. Por último, debemos Ir al menú Tools > "Sync. Schema Fol All Tables" y recomiendo seleccionar "With Validation..." (para que verifique posible errores):


  10. Respondemos a la pregunta (si queremos que funcione debemos elegir "Sí"):


  11. Veremos el mensaje que indica que la BD es Operativa (Si en el paso 10 seleccionamos "Force" se ejecuta directamente hasta este paso):



De esta manera logramos traer una base de datos existente y montarla localmente. Tener en cuenta que en esta entrada no hemos vista conversiones de base de datos de NAV.

Mi primera aplicación con PowerApps

Siguiendo con la entrada anterior referente al tema, veremos como crear una aplicación en Microsoft PowerApps. En este caso crearemos una aplicación para la lectura de PDF (que ya se encuentra disponible en las plantillas).


Los pasos a seguir para la creación de una aplicación son:



  1. Dentro del portal, debemos hacer clic en "PDF Reader" dentro de la sección "Crear":


  2. Colocamos el nombre de la aplicación y procedemos a "Crear":


  3. Saldrá el mensaje correspondiente a la creación:


  4. Saldrá el mnesaje que pre visualización de la aplicación (pues la app es una plantilla):


  5. Procedemos a modificar/agregar lo necesario para la aplicación en cuestión:


  6. Ejecutamos la aplicación de prueba y listo:



De esta manera, hemos creado nuestra aplicación en Microsoft PowerApps. Se pueden crear aplicaciones simples como complejas.