Mostrando entradas con la etiqueta ax 2012 r3 cu8. Mostrar todas las entradas
Mostrando entradas con la etiqueta ax 2012 r3 cu8. Mostrar todas las entradas

miércoles, 7 de febrero de 2018

Codigo X++ para simular depreciación de un activo fijo [AX2012]

Con el siguiente código X++ podemos simular la depreciación de un activo fijo hasta el final de su vida, que guardaremos en una tabla para su posterior análisis.
static void DIPSimularDepreciacionActivo()
{
    TmpDateSum      tmpDateSum;
    AssetTable      assetTable;
    AssetBook       assetBook;
    AssetLedgerAccounts  assetLedgerAccounts;
    MainAccountNum       mainAccountNum;
    DIPSimulacionDepreciacion    simulacion;

    delete_from simulacion;

    while select assetTable join assetBook where
        assetTable.AssetId                      == assetBook.AssetId
    &&  assetBook.Depreciation                  == NoYes::Yes
    &&  assetBook.Status                        == AssetStatus::Open
    &&  assetTable.AssetId                      == "218-000063"
    {
        simulacion.clear();
        assetLedgerAccounts = AssetLedgerAccounts::find(assetBook.BookId,AssetParameters::find().PostingProfile,enum2int(AssetTransType::Depreciation),TableGroupAll::GroupId,assetTable.AssetGroup);
        mainAccountNum =  MainAccount::find(DimensionAttributeValueCombination::find(assetLedgerAccounts.OffsetLedgerDimension).MainAccount).MainAccountId;

        //Metodo de calculo utilizado por AX
        tmpDateSum.setTmpData(assetBook.initDepreciationProfile());

        //Datos comunes de linea
        simulacion.AssetGroupId       = assetTable.AssetGroup;
        simulacion.AssetId            = assetTable.AssetId;
        simulacion.MainAccountId      = mainAccountNum;
        simulacion.ImporteAdquisicion = assetBook.AcquisitionPrice;

        //Recorrer dataset depreciacion
        while select tmpDateSum where tmpDateSum.TmpNumerals01 != 0
        {
            simulacion.Periodo               = tmpDateSum.TransDate;        // Fecha depreciacion
            simulacion.Depreciacion          = tmpDateSum.TmpNumerals01;    // Importe depreciacion del periodo
            simulacion.DepreciacionAcumulada = tmpDateSum.Total;            // Importe depreciacion acumulada
            simulacion.NetBookValue          = tmpDateSum.TmpNumerals02;    // Valor neto en libros
            simulacion.insert();
        }
    }
    info("Simulacion terminada");
}
Resultado:









Espero que os sirva de ayuda

jueves, 31 de agosto de 2017

Depurar un informe Report Data Provider en AX2012 R3

En una entrada antigua del blog, hablábamos sobre como depurar código desde Visual Studio en AX2012 (que podéis ver aquí). Este proceso es válido para cualquier código que se ejecute en CIL (Common Intermediate Language), pero debemos tener en cuenta algunas consideraciones para depurar las clases RDP (usadas para desarrollar informes).
El principal inconveniente radica en que los informes RDP se basan en tablas temporales o en memoria, haciendo que no se puedan depurar directamente.
Vamos a ver cómo podemos solucionar este inconveniente y depurar nuestro informe RDP.
Primero debemos asegurarnos de tener permisos para depurar en el servidor actual, por lo que nuestro usuario debe ser miembro del grupo Microsoft Dynamics AX Debugging Users. Y revisar todo lo explicado en mi anterior post.
En la clase que ejecuta el RDP debemos cambiar:
//class TestReportDP extends SRSReportDataProviderBase
class TestReportDP extends SrsReportDataProviderPreProcess
Con esto conseguimos que el informe procese primero los datos, y por último muestre el informe por pantalla. Así podremos acceder a los datos con el depurador.
Debemos asegurarnos también que el método processReport() contenga la siguiente llamada:
Tabla_Temporal.setConnection(this.parmUserConnection());
Por último, tenemos modificar las propiedades de la tabla temporal:
  • CreatedBy = Yes
  • CreatedTransactionId = Yes
  • TableType = Regular
Con estos cambios, ya podemos depurar el código de la clase que procesa los datos del informe.

jueves, 23 de junio de 2016

Crear documentos de MS Word desde AX 2012 R3

Buenas tardes a todos, hace tiempo que no publico nada en el blog por motivos de falta de tiempo, los que hayan realizado una migración de algún ERP me entenderán....

Nuestro objetivo de hoy es crear documentos de Word directamente desde AX 2012. Para ello utilizaremos una plantilla de Word previamente diseñada, que después utilizaremos en nuestro código x++.

Crearemos nuestra plantilla, para ello insertaremos los marcadores de posición en el lugar deseado, según veis en la imagen:


viernes, 12 de junio de 2015

Actualización Acumulativa 9 (CU9) para AX 2012 R3

Ayer (10 de junio) fue liberada la nueva actualización acumulativa 9 para Dynamics AX 2012 R3, conocida popularmente como CU9. Esta actualización ya puede ser descargada desde Lifecycle ServicesCustomerSource y PartnerSource. El Build number para este CU9 es 6.3.2000.326. Para los que necesitéis instrucciones para la instalación, pueden descargar la guía oficial de instalación de CU9 para AX 2012R3.
Esta CU9 presenta cambios en los siguientes módulos:
– Recursos Humanos
– Retail
– TMS
– WMS
También presenta cambios en las siguientes funcionalidades específicas de país:
Australia, Bélgica, Brasil, Europa, Alemania, India, Italia, Lituania, México, Holanda, Polonia, Rusia, España, Reino Unido, Estados Unidos.
A nivel de Desarrollo, también se introdujo un cambio en la funcionalidad de Extensibilidad MPOS en Retail.
Para ver el detalle de estos cambios, pueden consultar la página oficial aquí (What’s new). Para el caso de WMS y TMS, pueden encontrar información aún más detallada sobre los cambios aquí (Blog oficial de SCM).
Como sucedió con la CU8 de AX 2012 R3, el número de versión de la aplicación mostrará un número distinto de 6.3.2000.323 si se le aplica la CU9 a una instalación existente de AX2012R3. Esto es debido a todos los modelos granulares que han sido aplicados al sistema a través del instalador de CU9. El modelo (ax-model) que indica que todo los modelos de la CU9 han sido aplicados es el que tiene el número de versión 6.3.2000.323. Usando el método de  slipstream como se detalla en la guía de instalación, resultará en una instalación con un único modelo aplicado para la CU9, con el build number 6.3.2000.326.

jueves, 15 de enero de 2015

Depurar código desde Visual Studio en AX2012

A partir de la versión 6 de AX (AX2012) la mayor parte del código se ejecuta en el entorno de CIL y no puede depurarse desde el depurador de Microsoft Dynamics AX en X++. Igual os habréis sorprendido al introducir un punto de interrupción en x++ y después ver que no se ejecuta el depurador aun estando seguros de que la ejecución pasa por ese punto. Esto significa que el código se está ejecutando en CIL y necesitamos depurarlo con Visual Studio.

Vamos a ver el proceso que debemos realizar (siempre en un entorno de tes/desarrollo):

lunes, 22 de diciembre de 2014

Microsoft Dynamics AX 2012 R3 CU8 - FAQ


Con el lanzamiento anunciado recientemente de la actualización acumulativa CU8 para Microsoft Dynamics AX 2012 R3 (6.3.1000.309) con KB2998197, hay varios cambios fundamentales en cómo se distribuye y se instala en entornos locales el paquete CU. La diferencia más notable es que la instalación de la actualización se descarga primero y no contiene realmente ningún fichero de actualización de productos. Las correcciones y mejoras se descargan como parte de la ejecución del instalador de actualizaciones. Aquí se resuelven algunas de las preguntas o dudas mas comunes que pueden surgir:
  1. Mi entorno no me permite descargar el paquete desde el sitio web de Lifecycle Services (LCS). ¿Dónde está el "paquete sin conexión?
    • El paquete completo se puede aplicar con una nueva instalación de  AX2012R3 cuando se utiliza el proceso inserción de la update en el disco de instalación. Usted tendrá que acceder a LCS y descargar el paquete CU8 y guardarlo como un paquete de actualización personalizada localmente. Este paquete de actualización se puede copiar a cualquier ubicación para su uso en modo "offline". Esto aparece en la Guía de instalación (paso 7 en la página 7):
      "Opcional: En la página Guardar cambios, haga clic en Guardar paquete de actualización personalizada. A continuación, puede volver a utilizar el paquete de instalación que ha creado en otro equipo en su entorno.
      Después de que el paquete de actualización personalizada se ha creado, puede abrir la ubicación donde queda almacenado."
  2. ¿Por qué hay dos números de versión de CU8?
    • Al instalar CU8 en una instalación existente, los modelos granulares se instalan de forma individual. El paquete específico que indica todas las correcciones de aplicaciones incluidas en CU8 es la build específica: 6.3.1000.473.
      En mi caso 
      aquí podéis ver como queda al realizar la actualización sobre una instalación existente de AX2012R3:
      Versión del kernel: 6.3.1000.309
      Versión de aplicación: 6.3.1000.473



  3. ¿Por qué hay más de 1500 modelos nuevos instalados en mi sistema cuando veo los modelos instalados en pantalla Ayuda> Acerca?
    • CU8 es una colección de todas las revisiones publicadas anteriormente, actualizaciones legales, y mejoras de características. Cada uno de estos cambios es capturado en su propio modelo individual con el objetivo de lograr menos dependencias entre parches, en comparación con el desarrollo actual de AX2012 R2.
  4. ¿Qué es "Spliptreaming" y por qué debo utilizarlo?
    • Slipstreaming está bien definido en la pagina 4 de la Guía de instalación:

      "Si va a instalar Microsoft Dynamics AX 2012 R3, por primera vez, puede utilizar el asistente de configuración y el proceso slipstreaming para instalar CU 8 junto con el resto del producto. Cuando se usa este proceso, el programa de instalación detecta automáticamente las actualizaciones y las aplica."
      Básicamente consiste en descargar el paquete de actualizaciones y meterlo en la carpeta "Updates" como veis en la imagen (descarga desde LCS):


  5. ¿CU8 requiere Visual Studio 2013?
    • Sí. Si necesita abrir un proyecto de Visual Studio como por ejemplo un diseño de informes u otro proyecto de C #, Visual Studio 2013 es obligatorio.