Tuesday, November 25, 2014

Devolución multiple de objetos en un método

En algunas ocasiones nos enfrentaremos a situaciones en las que es necesario obtener varios valores  de devolución en un solo método, por ejemplo, obtener los valores alto y ancho de un control en una sola llamada a un método.

Hoy vamos a crear un método de una clase que permita devolver un registro de InventJournaTable e InventJournalTrans correspondientes a un JournalId usado como parámetro.

Primero, invocaremos a la creatividad para buscar el mejor nombre para esta clase... después de un par de tensos segundos tenemos la respuesta, la llamaremos TestMultiple, y bueno, el método se llamará getDiarioInventario.

01 Container getDiarioInventario(JournalId _journalId)
02 {
03    InventJournalTrans inventJournalTrans;
04    ;
05    select * from inventJournalTrans
06        where inventJournalTrans.JournalId == _journalId;
07
08    return [InventJournalTable::find(_journalId), inventJournalTrans];
09}


Lo interesante de éste método, es el tipo de devolución Container, y la intrucción return, que devuelve dos objetos, ahora vamos a ver como usarlo.

01 static void main(Args _args)
02{
03    InventJournalTable inventJournalTable;
04    InventJournalTrans inventJournalTrans;
05    ;
06
07    [inventJournalTable , inventJournalTrans] = new TestMultiple().getDiarioInventario("INVJ295691");
08   
09    info (inventJournalTable.JournalId + " - " + inventJournalTrans.JournalId );
10 }



Quedó coqueto... ¿No les parece?.


No comments:

Post a Comment