Physical File: NAMVAL
*-------------------------------------------------------------------------
* @Name - NAMVAL
* @Author - Aaron Bartell
* @Desc - Holds name value pairs for composing Adobe Flex charts. In a
* more normal scenario you would be using your own DB2 tables
* that currently hold your customer data.
*-------------------------------------------------------------------------
A R NAMVALR TEXT('Name Value')
A TYP 15A COLHDG('Type of pair')
A NAM 50A COLHDG('Name')
A VAL 50A COLHDG('Value')
A VAL2 50A COLHDG('Value 2')
A K TYP
Program: MYRXS/FLEXDASH
//*******************************************************************************************
// @Author: Aaron Bartell
// @Created: 2008-02-18
// @Descr: Integrate RPG and Adobe Flex to create a graphical dashboard
//*******************************************************************************************
H dftactgrp(*no) bnddir('RXSBND')
FNAMVAL if e k disk prefix('NV.') usropn
D NV e ds qualified extname(NAMVAL)
/copy rxs,RXSCp
D input s like(NV.TYP)
D gSndHdr s n
/free
monitor;
gSndHdr = *on;
// Add the library holding our data files to the library list and
// open necessary files.
if RXS_libLEExists('RXSDATA') <= 0;
RXS_addLibLE('RXSDATA');
endif;
if not %open(NAMVAL);
open NAMVAL;
endif;
input = RXS_getUrlVar('input');
exsr compose;
on-error;
RXS_stdOutError('error': RXS_catchError(): *on);
endmon;
*inlr = *on;
//--------------------------------------------------------------------------------------------
// @Author: Aaron Bartell
// @Created: 2008-02-18
// @Desc: Determine which service is being requested and compose an appropriate XML response.
//--------------------------------------------------------------------------------------------
begsr compose;
RXS_initTplEng(RXS_STDOUT: *omit: *omit: *omit: *omit: *off);
RXS_loadTpl('flexdash.tpl');
RXS_writeXMLHdr();
gSndHdr = *off;
RXS_wrtSection('SOAP_beg');
// Determine which column headers to write out.
select;
when input = 'Territory';
RXS_updVar('COLUMN-HDR-ITEM_value1': 'TERRITORY');
RXS_updVar('COLUMN-HDR-ITEM_value2': 'SOLD_PRICE');
RXS_wrtSection('COLUMN-HDR-ROW2');
when input = 'Productline';
RXS_updVar('COLUMN-HDR-ITEM_value1': 'PRODUCTLINE');
RXS_updVar('COLUMN-HDR-ITEM_value2': 'REVENUE');
RXS_wrtSection('COLUMN-HDR-ROW2');
when input = 'TopTen';
RXS_updVar('COLUMN-HDR-ITEM_value1': 'Sales');
RXS_updVar('COLUMN-HDR-ITEM_value2': 'Measures');
RXS_wrtSection('COLUMN-HDR-ROW1');
other;
RXS_updVar('COLUMN-HDR-ITEM_value1': '');
RXS_updVar('COLUMN-HDR-ITEM_value2': '');
endsl;
RXS_wrtSection('COLUMN-HDR-ROW');
// Read through the name value pair table based on the type that was sent
// in.
setll input NAMVAL;
reade input NAMVAL;
dow not %eof(NAMVAL);
select;
when input = 'Territory' or input = 'Productline';
RXS_updVar('DATA-ITEM_value1': NV.NAM);
RXS_updVar('DATA-ITEM_value2': NV.VAL);
RXS_wrtSection('DATA-ROW');
when input = 'TopTen';
RXS_updVar('ROW-HDR-ITEM_value1': NV.NAM);
RXS_updVar('ROW-HDR-ITEM_value2': NV.VAL);
RXS_wrtSection('ROW-HDR-ROW');
RXS_updVar('TopTen_DATA-ITEM': NV.VAL2);
RXS_wrtSection('TopTen_DATA-ROW');
endsl;
reade input NAMVAL;
enddo;
RXS_wrtSection('SOAP_end': *on);
endsr;
/end-free
IFS Template: /www/myrxs/templates/flexdash.tpl
::SOAP_beg
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ExecuteActivityResponse xmlns:m="http://rpg-xml.com/flexdash">
<swresult>
::COLUMN-HDR-ROW1
<COLUMN-HDR-ROW>
<COLUMN-HDR-ITEM><![CDATA[.:COLUMN-HDR-ITEM_value1:.]]></COLUMN-HDR-ITEM>
</COLUMN-HDR-ROW>
<COLUMN-HDR-ROW>
<COLUMN-HDR-ITEM><![CDATA[.:COLUMN-HDR-ITEM_value2:.]]></COLUMN-HDR-ITEM>
</COLUMN-HDR-ROW>
::COLUMN-HDR-ROW2
<COLUMN-HDR-ROW>
<COLUMN-HDR-ITEM><![CDATA[.:COLUMN-HDR-ITEM_value1:.]]></COLUMN-HDR-ITEM>
<COLUMN-HDR-ITEM><![CDATA[.:COLUMN-HDR-ITEM_value2:.]]></COLUMN-HDR-ITEM>
</COLUMN-HDR-ROW>
::ROW-HDR-ROW
<ROW-HDR-ROW>
<ROW-HDR-ITEM><![CDATA[.:ROW-HDR-ITEM_value1:.]]></ROW-HDR-ITEM>
<ROW-HDR-ITEM><![CDATA[.:ROW-HDR-ITEM_value2:.]]></ROW-HDR-ITEM>
</ROW-HDR-ROW>
::DATA-ROW
<DATA-ROW>
<DATA-ITEM><![CDATA[.:DATA-ITEM_value1:.]]></DATA-ITEM>
<DATA-ITEM><![CDATA[.:DATA-ITEM_value2:.]]></DATA-ITEM>
</DATA-ROW>
::TopTen_DATA-ROW
<DATA-ROW>
<DATA-ITEM>
<![CDATA[.:TopTen_DATA-ITEM:.]]>
</DATA-ITEM>
</DATA-ROW>
::SOAP_end
</swresult>
</ExecuteActivityResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>