Para concluir el minicurso de funcionamiento de las entradas del Commerce Gateway en Axapta 3.0, vamos a poner un pequeño ejemplo que como debemos crear una clase que se encargue de transformar los datos incorporados desde un fichero XML a datos reales de nuestras tablas en Axapta.
Si recordamos en la primera parte del truco, nos quedamos en el punto en que ya habíamos conseguido incorporar los datos a la cola de proceso del Gateway.
Bien, ahora debemos crear una clase que, cuando procesemos la cola del Gateway, recibirá por parámetro nuestro árbol de clases asociadas al XML y el registro de configuración específico para esta importación (en el que definíamos de que manera debían tratarse los códigos externos/internos … etc).
Creamos nuestra clase
Vamos a crear una clase llamada Ex1Order2SalesTable (recordamos que estamos trabajando con el ejemplo de la primera parte del truco en la que usabamos las clases Ex1Order).
Axapta rellenará una instancia del tipo de nuestra clase Ex1Order con los datos que encuentre en el fichero XML. Luego nos llamará a esta función para pasarnos dicha información.
Cuando Axapta nos llame a esta función, deberemos realizar un recorrido por nuestro árbol de clases y sus nodos e ir creando los registros de datos correspondientes, usando la configuración definida en el registro GatewayDocSetup para la conversión de los códigos externos que estemos importando.
Para este truco simplemente hemos usado una función que dispone la clase Ex1Order en la que hace un “info” con todos los datos que ha recibido. De esta forma podemos comprobar si hemos recibido los datos correctamente.
Para ver un ejemplo completo de cómo hace Axapta para importar los datos (el recorrido por las clases y las conversiones de códigos) podemos echar un vistazo al método convert de la clase SalesXCBL2Order.
Pero …
¿ Cómo sabe Axapta que debe llamar a nuestra clase para realizar la conversión ?
Debemos modificar el método construct de la clase GatewayMapable2Ax de esta forma:
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
Axapta y Dynamics Ax son marcas registradas de Microsoft corporation. Todos los logos y marcas son propiedad de sus respectivos propietarios. Excepto trucosAx.com que este si que es mio :-). (c) 2005 by Manel Querol (Mkz) TrucosAx.com no pertenece ni está asociada a Microsoft corporation. Los fragmentos de código y proyectos importables que aquí se muestren están realizados sobre bancos de pruebas. No nos hacemos responsables de cualquier daño o pérdida de datos que se pudiera originar del hecho de instalar alguno de estos ejemplos en un sistema productivo. Es responsabilidad del usuario ser consciente del impacto que puede ocasionar en sus aplicaciones el uso del código que de aquí extraiga.