Information Systems:Gilead Sales Report - Old
Overview
Gilead requires daily sales and inventory reporting from uniPHARM, so a solution needed to be developed to generate and transmit such reports according to their specifications. This endeavor was a greenfield project of sorts, in that it was developed from scratch and comprises new techniques, all of which will be discussed here. This article represents the documentation for this solution.
Important notes:
- Gilead uses ValueCentric as their data/analytics provider, so reports are sent to their servers. There is no communication with Gilead servers in this process.
Components of the solution
The components are as follows:
- NC_GILREP.PGM: A non-CGI WebSmart-generated RPG program.
- GILSUMFTP: A CL program that calls all the other programs.
- GILEADREP: Job scheduler entry that calls GILSUMFTP.
- sFTP utility in PASE on IBM i.
- IFS on the IBM i to store report files for transmission and archiving.
NC_GILREP
In its essence, WebSmart is an RPG translator of sorts, so it is possible to create powerful RPG batch programs in WebSmart i.e. using WebSmart's PML (language) and IDE (graphical editor). In WebSmart, creating such a batch program is done by compiling the program as non-CGI (hence the prefix in NC_GILREP). When compiled as a non-CGI, the program is no different than any other RPG batch program - there is no interface (web or green screen); it simply gets called and does its input/output over files. NC_GILREP performs the following tasks:
1. Collects inventory statistics for Gilead items and generates a pipe-delimited IFS file. This is the 852 file. 2. Same as above, but collects sales statistics and generates a separate IFS file. This is the 867 file. 3. Cleans up old reports by moving them to the archive folder. 4. (Disabled) Emails admin upon successful run of program.
File format and layout
The report files are based on EDI standards, namely, the 852 and 867 document types. The file spec and file naming convention were provided by ValueCentric.
sFTP Transmission
To date, the i does do B2B communications with other servers, but a) it is all done via FTP and b) it is mostly in a pull configuration (mostly downloading files). sFTP transmission, as required by ValueCentric, cannot use the built-in FTP client on the i, because it involves a different protocol (SSH) altogether, while the FTP client on the i is for basic FTP transmission. IBM i does have sFTP functionality, but this is offered as a PASE utility ( read more about PASE here).