Figure 6: RPG program IFS3XML, which generates XML from the data in the CUSTMAS file |
H DFTACTGRP(*NO)
H BNDDIR('QC2LE')
FCUSTMAS IF E DISK BLOCK(*YES)
/copy ifsio_h
D CRLF C x'0d25'
D fd s 10I 0
D data s 1000A varying
/free
fd = open('/home/klemscot/custmas.xml'
: O_CREAT + O_TRUNC + O_WRONLY + O_CCSID
+ O_TEXTDATA + O_TEXT_CREAT
: M_RDWR
: 819
: 0 );
if (fd < 0);
ReportError();
endif;
data = '<?xml version="1.0"?>' + CRLF;
callp write(fd: %addr(data)+2: %len(data));
data = '<CustomerList>' + CRLF;
callp write(fd: %addr(data)+2: %len(data));
read CUSTMAS;
dow not %eof(CUSTMAS);
|
data =
'<Customer>' + CRLF
+ ' <CustNum>' + %char(CustNo) + '</CustNum>' + CRLF
+ ' <Company>' + %trimr(Company) + '</Company>' + CRLF
+ ' <Contact>' + %trimr(Name) + '</Contact>' + CRLF
+ ' <Address>' + CRLF
+ ' <AddrLine1>' + %trimr(Address1) + '</AddrLine1>'
+ CRLF;
if (Address2 <> *blanks);
data += ' <AddrLine2>'
+ %trimr(Address2)
+ '</AddrLine2>'
+ CRLF;
endif;
data +=
' <City>' + %trimr(City) + '</City>' + CRLF
+ ' <State>' + %trimr(State) + '</State>' + CRLF
+ ' <PostalCode>' + Zip +'-'+ Zip4 + '</PostalCode>'
+ CRLF
+ ' </Address>' + CRLF
+ '</Customer>' + CRLF;
callp write(fd: %addr(data)+2: %len(data));
|
A |
read CUSTMAS;
enddo;
data = '</CustomerList>' + CRLF;
callp write(fd: %addr(data)+2: %len(data));
callp close(fd);
*inlr = *on;
/end-free
|