martes, 12 de enero de 2016

X++ | Dimensiones financieras Dynamics AX 2012 [DefaultDimension - LedgerDimension]

Hola a todos,

Para crear dimensiones financieras en AX 2012, hemos encontrado una manera sencilla de hacerlo con estructura de datos, para la cuál solo es necesario poner el nombre de la dimensión y el valor de la misma en la estructura antes mencionada y llamar a una clase estándar. De la siguiente manera:


   Struct             struct = new Struct();
   container            defDimensionCon;
   int               i;
   DimensionDefault        newDimensionDefault;
 
   struct.add('NOMBRE_DIMENSION1',"valor_dimension1");
   struct.add('NOMBRE_DIMENSION2',"valor_dimension2");
 
   defDimension += struct.fields();
   for (i = 1; i <= struct.fields(); i++)
   {
     defDimension += struct.fieldName(i);
     defDimension += struct.valueIndex(i);
   }
 
   if (struct.fields())
   {
     newDimensionDefault =   AxdDimensionUtil::getDimensionAttributeValueSetId(defDimensionCon);
   }
 

Como podemos ver, simplemente agregamos la estructura a un contenedor y llamamos a la clase estándar. En el caso de que quieran agregan una cuenta y crear un LedgerDimension podemos hacer lo siguiente:

   mainAccDimension = DimensionStorage::getDefaultAccountForMainAccountNum(strLRTrim(Cuenta));
 
   LedgerDimension = DimensionDefaultingService::serviceCreateLedgerDimension(mainAccDimension, newDimensionDefault);

No hay comentarios:

Publicar un comentario