[AX 2012 R3 – How To] Crear dimensiones desde un container

En ocasiones no tenemos definidas las dimensiones en AX de manera directa, pero lo obtenemos de otras fuentes externas. Entonces, debemos crear un contenedor donde adicionamos los valores necesarios para convertirlos en una dimensión (generalmente hablamos de LedgerDimension).

Para lograr nuestro objetivo debemos escribir las siguientes líneas de código:


container offsetDim;
RecId recIdResult;

// Primero el valor a mostrar (Display Value).
// Luego la cuenta principal (Main account, generalmente el mismo que Display Value)
// Cantidad de dimensiones (número entero)
// Dimensiones separadas por comas: Nombre, Valor.
offsetDim = ["1.2.01.01.0.0.01.001", "1.2.01.01.0.0.01.001", 2, "AGENCIA", "SUCURSAL1", "CENTRO_DE_COSTO", "101"];

//Básicamente en AX se mostraría "1.2.01.01.0.0.01.001-SUCURSAL1-101".

recIdResult = AxdDimensionUtil::getLedgerAccountId(offsetDim);

info(int642str(recIdResult));

Con esto logramos crear u obtener las dimensiones a partir de un contenedor.