Algoritmia - We are geeks, after all ;)
  Crear una cuenta
Inicio Buscar Foros Chat Downloads Login
 [Login]
Foros
Ir a los foros 

Menú Trucos Ax
 Inicio(Noticias) :
 Inicio
 Enviar Noticias
 Archivo de noticias
 Buscar
 Temas

 Miembros :
 Lista de miembros
 Tu Cuenta(Regístrate)

 Comunidad :
 Chat

 Foros

 Links

 Downloads

 Estadísticas :
 Estadísticas
 Top 10
 Encuestas

 Otros Servicios :
 Publicidad


 Miscelanea :
Añadir a favoritos
Contactar


Hemos recibido

impresiones desde Diciembre 2005


 Enlázanos :
Copia el código siguiente en tu web para enlazarnos :


Trucos Ax


Mensajes rápidos

Sólo los usuarios registrados pueden escribir login o crear una cuenta.

Trucos
Ir a trucos programación
Ir a trucos consultoría

AxSearch

AxSearch
Es un motor de búsqueda
específico sobre temas
de Axapta (Dynamics Ax)

Anuncios



Mapa

¿De donde venimos?
Ubicación de visitantes de esta página

Webs Amigas
[axapta-links.com] - The startpage for Axapta
DaxGuy


Fred Shen

Comunidad Ax
Conunidad AX

Anuncios



Trucos Ax: Foros

Trucos Ax :: View topic - Commerce Gateway : Entradas (II)
 Forum FAQForum FAQ   SearchSearch   UsergroupsUsergroups   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Commerce Gateway : Entradas (II)

 
Post new topic   Reply to topic    Trucos Ax Forum Index -> Trucos desarrollo
View previous topic :: View next topic  

¿Cómo valoras este truco (1/5)?
5
100%
 100%  [ 1 ]
4
0%
 0%  [ 0 ]
3
0%
 0%  [ 0 ]
2
0%
 0%  [ 0 ]
1
0%
 0%  [ 0 ]
Total Votes : 1

Author Message
Manekaze
Site Admin
Site Admin


Joined: Dec 02, 2005
Posts: 384

PostPosted: Sun Sep 17, 2006 12:27 pm    Post subject: Commerce Gateway : Entradas (II) Reply with quote

//**********************************************************
// Tipo : Desarrollo
// Titulo : Commerce Gateway : Entradas (II)
// Codigo : TD0012
// Keywords : Programacion, Axapta 3.0
// Sub-keywords : Commerce Gateway, XML, importación,
// GateWayMapable2Ax
//**********************************************************

Este truco es la segunda parte de Commerce Gateway : Entradas (I).

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).

x++:

public class    Ex1Order2SalesTable
extends         GatewayMapable2Ax
{
    Ex1Order           Ex1Order;
   #XCBL
}


Como podéis observar, heredamos de la clase GatewayMapable2Ax, que es la clase madre de todas las que se usan para este tipo de importaciones.

Hemos definido una variable de tipo Ex1Order, para albergar nuestro árbol de clases.

Para que esto sea posible, debemos escribir el método ParmMapableTop :

x++:

GatewayMapableTop parmMapableTop(EX1Order _EX1Order)
{
;
    EX1Order = _EX1Order;

    return super(_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.

Ahora la función más importante, convert :

x++:

void convert()
{
  ;
    Ex1Order.info(GatewayDocSetup);


}


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:

x++:

static GatewayMapable2Ax construct(gatewayMapableTop    MapableTop)
{
    switch (classidget(MapableTop))
    {
        case classnum(XCBLOrder):
            return new SalesXCBL2Order();

        case classnum(EX1Order)// TrucosAx - Nuestro caso Smile
            return new EX1Order2SalesTable();
    }

    return null;
}


Vamos a probarlo

Nos dirigimos a la cola del Gateway y vamos a procesar nuestro documento :


Le damos a procesamiento / En espera y …


Parece que hemos recibido bien los datos Smile
Ahora solo debemos retocar el método convert para que en lugar de mostrar los datos los incorpore a Axapta.

Saludos,

Mkz.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Trucos Ax Forum Index -> Trucos desarrollo All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©

 
Trucos Axapta 
Comunidad aprobada por :
Microsoft corp. MVP LogoVisit community


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.