Tablas Temporales
En desarrollo en AXAPTA, me he encontrado con algunos problemas para guardar registros de tablas en variables y manipularlos sin alterar las tablas.
Una opción es utilizar los contenedores (tipo de datos container), pero si se quiere trabajar con datos que tienen la misma estructura que una tabla, mejor usar tablas temporales.
Puedo crear tablas temporales en el AOT de la misma manera que creo una tabla corriente, sólo que en la propiedad 'Temporary', le pongo 'Yes'. Así luego defino los campos con los que quiero trabajar.
Alimentar esta tabla se hace de la misma manera que se llena cualquier tabla, con insert(), igualmente podemos usar delete() o update(). Hay que recordar que las tablas temporales siempre están vacías en un comienzo, así que no importa cuantos datos pongamos dentro, ésta se va a vaciar una vez que dejemos de usarla. Las tablas temporales no se guardan en la base de datos, sino que en el sistema de archivos.
Si quiero crear una tabla temporal dinámicamente en código con la misma estructura que una tabla existente, puedo utilizar el método setTmp(), sólo tengo que crear una variable del tipo de la tabla y llamar a ese método, luego queda llenar la tabla temporal con los datos que me interesan puesto que la tabla temporal siempre se crea vacía.
Por ejemplo, si quiero una tabla temporal con los datos de la inventTable, filtrado sólo con los artículos del tipo Lista de Materiales, el código sería:
inventTable _inventTable; // La tabla de donde obtendremos los datos
inventTable TmpTable; // La tabla temporal
;
TmpTable.setTmp(); // La definimos como temporal
// Filtramos sólo las líneas que sean Listas de Materiales
while select _inventTable where _inventTable.itemType == itemType::BOM
{
// Llenamos la tabla temporal
TmpTable.data(_inventTable.data());
TmpTable.doInsert();
}
Con eso ya podemos trabajar directamente con TmpTable. Si hacems un 'select TmpTable' sólo obtendremos los datos que hayamos entrado en la tabla en lugar de la inventTable completa.


1 Comments:
Felicidades por tomar la determinación de formar un blog en español, ya que actualmente existe muy poca información al respecto. En particular, este tipo de tips son muy útiles sobre todo a novatos coo yo.
Saludos y muchas gracias por esta valiosa información.
7:11 p. m.
Publicar un comentario
<< Home