Portal de Localización para Microsoft Dynamics AX

Sólo comentar que se ha creado un portal donde se recopilan todos los hotfixes y parches publicados referentes a la localización de todos los países, incluidos los cambios legales y de impuestos. Es muy interesante porque se pueden descargar desde un mismo sitio todos los parches que nos interesan. También se puede descargar una lista de hotfixes para poderla consultar en cualquier momento!

Microsoft Dynamics AX 2012, servicios web, .NET Interop, cliente-servidor y arquitectura de aplicación

¡Vaya título! ¿Qué tienen que ver todos estos conceptos y por qué debería tenerlos en cuenta? Es posible que no sea una situación que se nos presente todos los días, pero hay veces donde hay que tener todos esos conceptos en cuenta para hacer que un fragmento de X++ funcione correctamente. Este ha sido mi caso: Tengo que consumir un servicio web externo desde Microsoft Dynamics AX 2012. Parece fácil, ¿no?. El servicio web se va a consumir en un proceso por lotes (servidor), pero también debe poder llamarse manualmente desde formularios (cliente).

En Microsoft Dynamics AX 2009, para utilizar un servicio debíamos añadir una referencia de servicio al AOT. En la versión 2012 creamos un proyecto Visual Studio de tipo Librería de clases. En ese proyecto de Visual Studio agregamos una referencia de servicio y agregamos el proyecto al AOT. No voy a entrar en detalle sobre ésto porque esta bien explicado por ejemplo en este white paper.

Una de las cosas a tener en cuenta acerca de los conceptos del título de este post está en las propiedades del proyecto en Visual Studio:

Propiedades Proyecto Visual Studio

Lo relevante aquí es marcar Deploy to Client si queremos que la DLL se despliegue a los clientes y Deploy to Server si queremos que se despliegue al servidor. De esta manera, el sistema copiará la librería cuando sea necesario a la carpeta correspondiente, descargándola de la base de datos (de la Model Store) donde está almacenada. Dependiendo de cómo se ejecute el código X++ que utiliza esta librería podemos marcar uno u otro o los dos.

Continue Reading…

HOWTO: Información de Active Directory desde X++

Tenía este Job por aquí desde una vez que tuve que utilizarlo para activar/desactivar usuarios automáticamente en Microsoft Dynamics AX (probado en AX 2009) cuando éstos se desactivaban en el dominio. Lo publico para que no se me pierda y por si alguien pudiera sacarle partido :).

static void JAEE_IterateActiveDirectoryUsers(Args _args)
{
    str                 computer = new xSession().clientComputerName();
    xAxaptaUserManager  mgr = new xAxaptaUserManager();
    xAxaptaUserDetails  usr;
    container           doms;
    int                 d, u;
    str                 dom, login, name, sid, email;
    ;

    // iterate AD domains
    doms = mgr.enumerateDomains(computer);
    for (d = 1; d <= conlen(doms); d++)
    {
        dom = conpeek(doms, d);
        setprefix(dom);
       
        // iterate AD domain users
        usr = mgr.enumerateDomainUsers(dom);
        for (u = 0; u < usr.getUserCount(); u++)
        {
            if (usr.isUserEnabled(u) && !usr.isUserExternal(u))
            {
                // get information from AD
                login = usr.getUserLogin(u);
                name = usr.getUserName(u);
                sid = usr.getUserSid(u);
                email = usr.getUserMail(u);

                // stuff happens here, you can compare AD data with AX User info
               
                info(strfmt("%1 - %2 - %3 - %4 - %5", dom, login, name, email, sid));
            }
        }
    }
}

Descarga

Microsoft Dynamics AX Cambiar el color de los controles

Cambiar el color de algunos controles de manera dinámica es una buena opción para facilitar al usuario la detección de casos particulares que le son de utilidad: Artículos bloqueados para venta, clientes con el riesgo excedido, pedidos bloqueados, etc.

Dynamics AX 2012 - ClearDisplayOption

Para cambiar el color de los controles en un formulario se utiliza la función displayOption() de los orígenes de datos de los formularios pero a veces el funcionamiento de esta modificación no es el que se espera. Estos días me ha ocurrido en Dynamics AX 2009 que los colores se cambiaban correctamente al abrir un pedido pero no se iban actualizando durante la introducción de nuevas líneas de pedido, que es lo que se esperaba.

public void displayOption(Common _record, FormRowDisplayOption _options)
{
    SalesLine auxSalesLine = _record;
   
    super(_record, _options);
   
    if (auxSalesLine.Blocked)
        _options.backColor(WinAPI::RGBCon2int([255, 128, 128])); // Rojo
}

Continue Reading…

Microsoft Dynamics AX: IVA y Cambios en la Ley de Pronto Pago

Ley de Pronto pago

El mes pasado se publicó un hotfix para Microsoft Dynamics AX 2009 SP1 y 2012 para el cumplimiento de las modificaciones realizadas a la Ley de Pronto Pago para facturas de servicios en España. Los cambios se centran en validaciones en la fecha de entrega y la fecha de vencimiento de las facturas. Las versiones mínimas para la aplicación del hotfix son:

La actualización se puede descargar desde el siguiente enlace de PartnerSource (requiere login):

Subida de tipos del IVA

Referente a la reciente subida del IVA no se ha publicado ningún hotfix ya que no se requiere ningún cambio técnico para su aplicación. Nos refieren al White Paper publicado en la anterior subida de tipos de 2010 en España o el publicado para la subida de tipos de 2011 en Italia.

Windows 8 y Microsoft Dynamics AX Hyper-V Virtual Machine

Un problema conocido de todos los profesionales que trabajamos con Microsoft Dynamics AX, ya sean consultores o profesionales técnicos, es la necesidad de manejar muchas máquinas virtuales para diferentes entornos, versiones, clientes, etc… Si no fuera poco el problema del espacio que ocupan, también resulta confusa para muchos usuarios la elección del sistema de virtualización que utilizar sobre todo en portátiles utilizados para trabajo cotidiano y presentaciones sin acceso a un servidor.

Hace tiempo publiqué un artículo de cómo hacer funcionar las máquinas virtuales Hyper-V que nos entrega Microsoft en un equipo sin Windows Server. Este problema se ha solucionado con el nuevo Windows 8, que nos permite ejecutar directamente las máquinas Hyper-V que nos entrega Microsoft directamente, sin ninguna transformación.

Para ello tenemos que ir al Panel de Control y buscar la opción Turn Windows features on or off:

Windows 8 Hyper-V y Microsoft Dynamics AX

Continue Reading…