Buscar en este blog

lunes, 29 de diciembre de 2014

Teclas rápidas en Microsoft Dynamics Ax 2012


Esta vez les quiero compartir las teclas rápidas mas comunes que se manejan con Ax 2012, esta imagen no esta completa, solo es demostrativa, pero pueden descargar el pdf tanto de ax 3.0, 4.0, 2009 y 2012 desde el link:

http://greenlightbts.com/resources/dynamics-ax-keyboard-shortcuts.asp



Y por cierto, acuerdate de darle click a algún anuncio si el post te sirvio de algo.


No olvides que te puedes unir a la página en Facebook Aprendiendo Dynamics Ax donde únicamente se tratan temas de desarrollo y se busca crear una comunidad de desarrollador@s de Ax en nuestro idioma. 


miércoles, 24 de diciembre de 2014

Repetir encabezado de tabla en todas las hojas - Reportes SSRS AX 2012


Muchas veces nos encontramos con el detalle que en los reportes de Ax necesitamos repetir el encabezado de las tablas en todas las hojas donde se impriman los resultados.

Por ejemplo, una factura de una orden de venta que tiene muchos artículo y que abarca mas de una hoja, en este caso Ax lo que hace es seguir imprimiendo el detalle de los artículos pero ya no imprime el encabezado de la tabla y aunque exista la opción en las propiedades del tablix de RepetColumnHeaders generalmente esto no funciona.


La solución es ir a la opción de "Grupos de columnas" y seleccionar "Modo avanzado"


Con esto nos aparece la sección "Estático" en los grupos de filas y es a ese elemento al que le decimos en sus propiedades que queremos que se repita en todas las hojas. Las propiedades que debemos cambiar son:

RepeatOnNewPage = True
KeepWithGroup = After



Listo, cambiado esto, salvamos e implementamos el reporte y ya podremos ver los cambios.


Y por cierto, acuerdate de darle click a algún anuncio si el post te sirvio de algo.


No olvides que te puedes unir a la página en Facebook Aprendiendo Dynamics Ax donde únicamente se tratan temas de desarrollo y se busca crear una comunidad de desarrollador@s de Ax en nuestro idioma. 




<<    Anterior - Visualizar reportes por código....



<<<<<     Indice de tutorial de Reportes SSRS....



viernes, 19 de diciembre de 2014

Cumulative Update 8 para Microsoft Dynamics AX 2012 R3

Aquí les comparto un post de otro blog donde reúnen las nuevas características de Dynamics AX R3 CU8.



Cumulative Update 8 (CU8) para Dynamics AX 2012 R3 está disponible para descargar en CustomerSource y PartnerSource. CU8 incluye algunas nuevas características ademas de varias actualizaciones y hotfix.

Novedades y hotfix en CU8
  • Nuevas funciones: CU8 incluye varias actualizaciones y mejoras en varios modulos de AX2012R3. La lista completa de características las podéis encontrar aquí, What's new in Microsoft Dynamics AX 2012 R3 cumulative update 8. Como desarrollador destacaría que ya podemos utilizar Visual Studio 2013, gracias a "Microsoft Dynamics AX developer tools for Visual Studio 2013".
  • Application hotfixex: CU8 incluye mas de mil revisiones. Para ver la lista completa de hotfix, ver CU8 download page.
  • Binary hotfixes: CU8 incluye mas de cien Binary hotfixes. Para ver la lista completa, CU8 download page.
  • Actualizaciones especificas para países: CU8 incluye varias actualizaciones especificas para paises y regiones. Para ver la lista completa, ver CU8 download page. Destacar aquí varias mejoras referentes a la normativa SEPA (reports, batch process...)
Como instalar CU8
  1. Revisar los requisitos del sistema aquí System Requirements para comprobar que soportamos la CU8.
  2. Descargar el CU8 desde la sección Hotfix Download Available en CU8 download page.
  3. Instalar la actualización siguiendo la siguiente guía: Installation Guide for Microsoft Dynamics AX 2012 R3 Cumulative Update
Para ayudar mejor a entender la instalacion CU8 podemos ver estos vídeos:

Otros recursos de ayuda
La documentación de producto para AX 2012 (incluyendo todas las versiones y CU) está disponible en el TechNet.
Para mas información sobre todas las versiones de AX2012::

Problemas conocidos
Los problemas conocidos o "Known issues" en CU8 podemos buscarlos usando la herramienta Issue search en Lifecycle Services. Nos logueamos en Lifecycle Services usando nuestra cuenta CustomerSource o PartnerSource, y después en el campo de búsqueda Issue search, introducimos CU8 Known issues.


Aquí el link del post original.



No olvides que te puedes unir a la página en Facebook Aprendiendo Dynamics Ax donde únicamente se tratan temas de desarrollo y se busca crear una comunidad de desarrollador@s de Ax en nuestro idioma. 




miércoles, 17 de diciembre de 2014

Crear secuencia personalizada en Microsoft Dynamics Ax 2012 R2

Hola a todos, el siguiente post es para explicar cómo se crea una secuencia personalizada en Dynamics AX 2012 y que ésta se asigne a un campo de una de nuestras tablas.

Pasos
1. Crear EDT. Lo primero es decirle a Ax cuál tipo de dato va a estar definido por una secuencia. Por ejemplo, existe en Ax los PurchId que son los identificadores de ordenes de compra y que estos pueden ocuparse en una secuencia, un tipo así necesitamos pero creado por nosotros.
En este caso, voy a crear un campo que se va a llamar PlanProduccionId.


2. Después necesitamos identificar el módulo al que va a pertenecer nuestra secuencia, en este caso, el módulo donde quiero esta secuencia es en Planeación Maestra, así que en la clase de NumberSequenceModuleMasterPlanning, en el método loadmodule() hasta abajo, insertamos las líneas que van a identificar nuestra secuencia:

     datatype.parmDatatypeId(extendedTypeNum(GRWPlanProduccionId));
     datatype.parmReferenceLabel(literalStr("Clave única del Id de Plan"));
     datatype.parmReferenceHelp(literalStr("Número para los planes de producción."));
     datatype.parmWizardIsManual(NoYes::No);
     datatype.parmWizardIsChangeDownAllowed(NoYes::No);
     datatype.parmWizardIsChangeUpAllowed(NoYes::No);
     datatype.parmWizardHighest(999999);
     datatype.parmSortField(20);
     datatype.addParameterType(NumberSeqParameterType::DataArea, truefalse);
     this.create(datatype);

3. Escribimos un nuevo método en la tabla de los parámetros de la planeación maestra que es ReqParameters, de dónde sacamos el nombre de esta tabla? pues vamos al módulo de planeación maestra > Configuración > Parámetros de la planeación, en cualquier módulo va a existir una opción similar.

client server static NumberSequenceReference numRefPlanProduccionId()
{
     return NumberSeqReference::findReference(extendedTypeNum(GRWPlanProduccionId));
}

4. Escribimos el siguiente job y lo corremos, esto va a mandar a llamar nuestro loadmodule que modificamos en el paso 2

static void Carid(Args _args)
{
    NumberSeqMasterPlanning numberSeqModuleMasterPlanning = new NumberSeqMasterPlanning();
    ;
    numberSeqModuleMasterPlanning.load();
}

Con esto ya podemos ver en los parámetros de la planeación maestra nuestra secuencia incluida con el parmReferenceHelp que le asignamos en el paso 2.


5. Después vamos a correr el wizard desde la ruta: Administración de la organización > Comun > NumberSequence >
  

Se corre el asistente, ahi no hay ciencia, es siguiente - siguiente - siguiente.

6. Ahora tenemos que verificar que esta correctamente creada y funciona bien, para eso usamos el siguiente job, para que nos genere una secuencia y podamos
static void number(Args _args)
{
    NumberSeq  numberSeq;
    CarId num;
    ;
    numberSeq = NumberSeq::newGetNum(ProjParameters::numRefcarId());
    num = numberSeq.num();
    info(num);
}










Listo!!!!

Con esto ya tenemos generada nuestra secuencia, ahora, como generalmente estas secuencias no se usan solo desde código sino generalmente desde una pantalla de usuario, vamos a integrarlo a un form nuevo.... pero eso será en el siguiente post.



Y por cierto, acuerdate de darle click a algún anuncio si el post te sirvio de algo.


No olvides que te puedes unir a la página en Facebook Aprendiendo Dynamics Ax donde únicamente se tratan temas de desarrollo y se busca crear una comunidad de desarrollador@s de Ax en nuestro idioma. 





lunes, 15 de diciembre de 2014

Lookup para dimensiones financieras personalizadas - Microsoft Dynamics Ax 2012 R2

Aquí se expone el código para cuando necesitemos exponer en un combo (lookup) los valores de las dimensiones financieras separadas por nombre. Esto aplica para cualquier escenario en cualquier formulario que maneje dimensiones financieras personalizadas distintas a las de organización.


Lo primero es identificar el campo que queremos que sea lookup y sobreescribir el método lookup con las siguientes líneas:



public void lookup()
{
    super();

    TablaEjemploDimensiones::lookupCentroCosto(this);
}

Donde lookupCentroCosto es el método que vamos a crear en la tabla donde se va a guardar el valor que el usuario seleccione.

public client static void lookupCentroCosto(FormStringControl _ctrl)
{
    DimensionAttribute                  dimensionAttribute;
    DimensionAttributeDirCategory       dimAttributeDirCategory;
    SysTableLookup                      sysTableLookup;
    Query                               query = new Query();

    // Nombre de la dimensión de la que se van a mostrar los valores
    dimensionAttribute = DimensionAttribute::findByName( "CentroDeCosto");

    if (dimensionAttribute.Type == DimensionAttributeType::CustomList)
    {
        select firstonly DirCategory from dimAttributeDirCategory where dimAttributeDirCategory.DimensionAttribute == dimensionAttribute.RecId;

        sysTableLookup = SysTableLookup::newParameters( tableNum(DimensionFinancialTag), _ctrl);

        // En el lookup se va a presentar el valor y la descripción
        sysTableLookup.addLookupfield( fieldNum(DimensionFinancialTag, Value));
        sysTableLookup.addLookupfield( fieldNum(DimensionFinancialTag, Description));

        query = new Query();
        query.addDataSource( tableNum(DimensionFinancialTag)).

        addRange( fieldNum(DimensionFinancialTag, FinancialTagCategory)).
        value(queryValue(dimAttributeDirCategory.DirCategory));

        sysTableLookup.parmQuery(query);
       
        sysTableLookup.performFormLookup();
    }
}


Post relacionados:
Lookup para dimensiones financieras de organización
Consultas en tablas con ValidTimeState
Crear lookup en clase dialog



Y por cierto, acuerdate de darle click a algún anuncio si el post te sirvio de algo.


No olvides que te puedes unir a la página en Facebook Aprendiendo Dynamics Ax donde únicamente se tratan temas de desarrollo y se busca crear una comunidad de desarrollador@s de Ax en nuestro idioma.