viernes, octubre 05, 2012

Dynamics AX 2012: Problema al actualizar tabla derivaba.


La nueva característica de tabla Derivada y tabla Base que se implementó AX 2012 puede ocasionar en ciertos casos problemas si no se entiende correctamente el concepto y su ventaja para utilizarlo.




Ejemplo:
CompanyInfo  companyInfo;

Select forupdate organizationType from  companyInfo;
companyInfo. organizationType = “Financiero”;
companyInfo.doUpdate();

Error al actualizar Tabla derivada

Error: Seguimiento de pila

Causa: Al no seleccionar explícitamente un campo específico de una tabla derivada que va ser posteriormente actualizado automáticamente por la tabla Base se produce el siguiente error.




Detalle del problema: El problema se presenta debido a que no se realiza la declaración explícita de un campo que está siendo a actualizarse en un proceso de la tabla Base DirPatyTable. Debido a que CompanyInfo es una tabla derivada de la tabla Base DirPartyTable, al momento de realizar la selección de los campos a actualizar se debe tomar en cuenta cuales son los campos que necesita la tabla Base o bien hacer una selección abierta de todos los campos de la tabla Derivada.

Solución: Para solucionar el problema podemos utilizar dos formas, tomando en cuenta cual es la que se adapta de mejor manera a la solución del negocio.

CompanyInfo  companyInfo;
Select forupdate  companyInfo;
companyInfo. organizationType = “Financiero”;
companyInfo.doUpdate();
o bien
CompanyInfo  companyInfo;
Select forupdate organizationType, Name from  companyInfo;
companyInfo. organizationType = “Financiero”;
companyInfo.doUpdate();

No hay comentarios: