PICS Report Generator

If you are interested in the geneisis of this application, please look over its history.

A Preliminary Administrator's Guide

This guide is intended to cover both the care and feeding of the PicsRPG application itself, but also the special types of web pages that may be created for PicsRPG to serve.

Installation

PicsRPG is a standard PICS application, as far as software installation goes, at least. In order for PicsRPG to be managed by a TaskMon, it must be defined in the TaskList.INI file and referenced in the Systems.INI file to be loaded on a particular node.

Directory Structure

By default, PicsRPG expects the following directory tree to exist:

  %PICS Root%Groups\
      *.pgf
  %PICS Root%html\
      *.html
      *.gif
      *.jpg
      *.class
      *.jar
      etc.
  %PICS Root%html\images
      depend.gif  (dependent image, right arrow by default)
      input.gif   (inputs image, left arrow by default)
      invalid.jpg (invalid data background)
      normal.jpg  (normal background)

The actual path to the document root (%PICS Root%html by default) may be changed using the program's configuration dialog.

The groups directory is currently scanned when the program first loads and on demand (when a program menu item is selected). Any changes to the contents of the groups directory will not be reflected in the group selection page until the administrator demands (via menu) or the program is restarted. However, the content of a group isn't scanned until needed for a report, so you can edit existing groups without restarting the server.

All basic file requests to PicsRPG are hung off a directory tree beginning in an HTML subdirectory located in the PicsRPG startup directory. Temporary files (generated by report services) may be located anywhere on the system and should be automatically deleted by PicsRPG immediately after being sent to a user.

PicsRPG should be able to send any type of file to the client. In fact, PicsRPG doesn't respect the list of acceptable file types sent by the browser (part of the HTTP protocol) at this time. If necessary, this will be added later.

Security

At present, PicsRPG is an open system, allowing all clients access to its data. There are (at least) two ways that this may be restricted: by incoming address and by implementing secure sockets with logins.

Incoming Address Restrictions

PicsRPG could have a table of acceptable and unacceptable IP addresses (and/or address ranges). This would allow the server to reject any requests that did not originate at an acceptable IP address. This is relatively easy to implement, but it doesn't give close control over who is accessing the server from a particular address. PicsRPG could also check with the PICS Access Control system to see if a security token is available for an otherwise unacceptable address (this is the intended method for "standard" PICS server applications).

Secure Sockets w/Logins

If I have time to learn how to use them, I may add the secure socket layer (SSL) to PicsRPG. The SSL would (or at least should) allow the server to present a login form, and then use the user's validated security information for all pages served over the link. We could implement this feature using open sockets, but the passwords would be transmitted in plain text, and we'd need some method of timing out a "connection" since my open socket implementation always closes the socket to terminate transmission of an object. This area is open for discussion and design ideas.

Screen Shots

Main Program Window

Configuration Panel (updated)

Date/Time Format Editor

Quality Format Editor

The Long Quality Format options are described on their own page, click here to view them.

Built-In HTML Pages

The following list of page names is used by PicsRPG internally. You may create pages with these names if you wish to replace the built-ins, but you MUST keep the names of the form controls and the values they return the same (or PicsRPG will not be able to understand your replacement form). The suggested method for generating custom replacements is to capture the source of the internal page and then edit to suit and save to the document root. Then your replacement page will be loaded, superceding the internal default page. This ability can allow you to match the look and feel of PicsRPG to your corporate web servers.

When no page is specified in the URL, then the file "index.thtml" will be sent (by default, this may be overridden in the configuration panel). This page should typically be a cover page for the entire report generation system, offering links to various report selection/definition forms as well as links to help, information about PICS, externally generated reports, any template reports that have been created, and anything else that might be of use to the users. If the configured (or default) index page is not found, then picsrpg.html will be sent instead.

Templates (enhanced/extended)

The PicsRPG Template System now has a separate page, click here to read it.

META Tags

HTML header sections may contain "meta" tags to indicate special information and/or instructions. One particularly useful tag is the refresh tag. For example:

<META HTTP-EQUIV="Refresh" CONTENT="30">

Embedding this tag in your template's header section will cause the browser to automatically refresh the page every 30 seconds. Since PicsRPG doesn't cache outgoing template results, this will require PicsRPG to re-render the page with current values. This provides an effective way to generate "live" data display screens.

NOTE: Due to server load conditions, heavy use of this feature is STRONGLY DISCOURAGED because it may have adverse effects on the server (PicsRPG). The meta refresh tag itself is also slightly problematic as it is not uniformly implemented by browsers and of those that implement it, some have bugs (like memory leaks and refresh stalls).