1.9 Los métodos pack y unpack
Ya tenemos un campo en el diálogo. ¿Cómo haremos para que en la siguiente ejecución nos muestre el último valor seleccionado?
- Bien, pues empaquetando las variables mediante los métodos pack y unpack.
Vamos a realizarle algunas modificaciones a nuestra clase Contract, entre ellas, extenderla de la SysOperationInitializable y SysPackable, para que nos permita empaquetar las variables.
En el class declaration nos declararemos una lista con las variables que queremos empaquetar.
[DataContractAttribute]
class TestSysOperationDataContract implements SysOperationInitializable, SysPackable
{
CustAccount custAccount;
#define.CurrentVersion(1)
#LocalMacro.ParmList
custAccount
#EndMacro
}
public void initialize()
{
}
Nos crearemos los métodos pack y unpack.
Como podemos comprobar en el pack le indicamos la versión y la lista.
public container pack()
{
return [#CurrentVersion,#ParmList];
}
y en el unpack verificamos que versión nos llegar y asignamos las variables a la lista.
public boolean unpack(container _packedClass)
{
Integer version = conPeek(_packedClass,1);
switch (version)
{
case #CurrentVersion:
[version, #ParmList] = _packedClass;
break;
default :
return false;
}
return true;
}
Podéis comprobar que si ahora ejecutamos la clase, siempre nos recuperará el cliente que asignamos en la última ejecución.
Este post es el equivalente al siguiente para la RunBaseBatch:
1.3. Los métodos pack y unpack
Para descargar el fichero xpo sólo tenéis que presionar en el siguiente enlace:
Descargar fichero xpo
- Bien, pues empaquetando las variables mediante los métodos pack y unpack.
Vamos a realizarle algunas modificaciones a nuestra clase Contract, entre ellas, extenderla de la SysOperationInitializable y SysPackable, para que nos permita empaquetar las variables.
En el class declaration nos declararemos una lista con las variables que queremos empaquetar.
[DataContractAttribute]
class TestSysOperationDataContract implements SysOperationInitializable, SysPackable
{
CustAccount custAccount;
#define.CurrentVersion(1)
#LocalMacro.ParmList
custAccount
#EndMacro
}
public void initialize()
{
}
Nos crearemos los métodos pack y unpack.
Como podemos comprobar en el pack le indicamos la versión y la lista.
public container pack()
{
return [#CurrentVersion,#ParmList];
}
y en el unpack verificamos que versión nos llegar y asignamos las variables a la lista.
public boolean unpack(container _packedClass)
{
Integer version = conPeek(_packedClass,1);
switch (version)
{
case #CurrentVersion:
[version, #ParmList] = _packedClass;
break;
default :
return false;
}
return true;
}
Podéis comprobar que si ahora ejecutamos la clase, siempre nos recuperará el cliente que asignamos en la última ejecución.
Este post es el equivalente al siguiente para la RunBaseBatch:
1.3. Los métodos pack y unpack
Para descargar el fichero xpo sólo tenéis que presionar en el siguiente enlace:
Descargar fichero xpo
Comentarios
Publicar un comentario