イメージごとにダウンロード要求を送信する代わりに、Visual LANSA では BLOB をフィールドとして作業リストに入れることができます。
このように管理すると、BLOB データは Base 64 エンコーディングに変換され、JSON の一部として引き渡されます。これがクライアントに到着した時に、元のイメージに変換されます。
Visual LANSA では、このようなイメージは JavaScript のデータ・オブジェクトとして管理されます。このため LANSA での操作は簡素化されますが、大きなイメージを大量に扱う場合、メモリ使用の観点から比較的コストが高くなるため、この方法は推奨されません。ですが、この技法はサムネイルやその他小さいサイズのイメージにおいては、優れたソリューションです。
次のルーチンでは、1 度の要求で多くの BLOB イメージをクライアントに返すことができることが示されています。
Def_List Name(#employees) Fields(#xEmployeeIdentification #xEmployeeSurname #xEmployeeGivenNames #xEmployeeStreet #xEmployeeCity #xEmployeeState #xEmployeePostalCode #xEmployeeHomeTelephone #xEmployeeBusinessTelephone #XDepartmentCode #xEmployeeSalary #xEmployeeStartDate #xEmployeeTerminationDate #xEmployeeImageThumbnail) Type(*working) Entrys(*Max)
SrvRoutine Name(GetEmployees) Response(*JSON)
List_Map For(*Output) List(#Employees)
* 全社員データ取得
Select Fields(#employees) From_File(xEmployee)
* BLOB として格納された社員のサムネイル画像取得。
Fetch Fields(#xEmployeeImageThumbnail) From_File(xEmployeeImages) With_Key(#xEmployeeIdentification)
Add_Entry To_List(#Employees)
Endselect
Endroutine