He publicado un artículo interesante en mi Blog en la Comunidad de Microsoft.
Axapta 2012 Roles de seguridad
Este Blog esta dedicado a: Programación X++, Java, C#, tecnología móvil, noticias, trucos, paseos, viajes, etc. A construir un mejor mundo
miércoles, octubre 15, 2014
jueves, mayo 29, 2014
Libro Software Development
El Desarrollo de Software es una actividad compleja, el Desarrollador debe tener ciertas destrezas que deben ser pulidos y mejorados, de esta manera lograremos un avance significativo en nuestra profesión, este libro nos permite conocer aquellos aspectos del Desarrollo de Software que son desconocidos por muchos de nosotros, recomiendo leerlo, una vez adquirido el conocimiento aplicarlo.
Preview
Preview
lunes, mayo 12, 2014
AX2009: Importar Proyectos AX 2012 a AX 2009
En ciertos momentos se requiere reutilizar componentes desarrollados en Axapta 2012 a versiones inferiores de AX, como por ejemplo AX 2009. La tarea no termina en importar el archivo XPO a la versión AX 2009 directamente; debido a ciertos requerimientos del nuevo formato xpo de AX 2012 tendremos el siguiente mensaje de error:
Para solucionar este inconveniente se requiere realizar la siguiente modificación en cada uno de los componentes de software que se encuentran en el Proyecto (Archivo XPO).
Abrir el archivo XPO con un editor de texto (NotePad esta bien) y realizar la modificación siguiente:
- Borramos la línea Origin.
- Añadimos la línea Versión: 3
Posterior a esto, volvemos a importar y podemos verificar que ya no tenemos el error presentado al inicio.
martes, marzo 18, 2014
AX 2012: Utilizando clase estándar UserConnection
Algunas veces es necesario establecer un nuevo contexto en la transacción de la base de datos independiente al que se está utilizando dentro de Axapta.
Dependiendo de las necesidades o problemas a resolver, en mi caso, necesito establecer un Log de errores de la información procesada, como buenas prácticas es recomendable establecer un ámbito de transacción cuando trabajos con datos de la base de datos. ¿Que quiere decir esto? simplemente asegurar la consistencia de la información cuando manipulamos los datos para ingreso, eliminación y actualización de la información, para que cuando existe algún error dentro de nuestro ámbito de la transacción el motor de base de datos pueda realizar el rollback y de esta forma la consistencia de la información es manejada adecuadamente.
¿Que sucede cuando dentro de nuestro ámbito de la transacción tenemos el proceso para registrar el log de errores de nuestras transacciones?
Obviamente, cuando exista un rollback, toda la información ingresada, actualizada o eliminada también es desecha.
Aquí es donde la clase UserConnection ayuda. Esta clase va permitir establecer un nuevo ámbito de transacción de base de datos, independiente al que maneja el Axapta, permitiendo mantener la información de la tabla con la información que se desea, sin importar si existe un rollback
La forma de utilizar la clase UserConnection para ingresar y actualizar información difiere.
- Para ingresar información:
UserConnection userConnection;
TestTable testTable; //buffer Tabla
;
ttsbegin;
//instancia de la clase
userConnection = new UserConnection();
testTable.NoYesError = NoYesError::Error;
testTable.LogText = strFmt("Error de parametrización");
testTable.setConnection(userConnection); //establecer el nuevo ámbito de conexión base datos
testTable.insert();
ttscommit;
- Para actualizar información:
UserConnection userConnection;
TestTable testTable; //buffer Tabla
;
//instancia de la clase
userConnection = new UserConnection();
userConnection.ttsbegin(); //comienzo transacción
testTable.setConnection(userConnection); //establecer el nuevo ámbito de conexión base datos
select forUpdate testTable; //consulta del registro a actualizar
testTable.NoYesError = NoYesError::Error;
testTable.LogText = strFmt("Error de parametrización");
testTable.update();
userConnection.ttscommit(); //transacción finaliza ok
Suscribirse a:
Entradas (Atom)