Version $Revision: 1.3 $

RoAccess Training Syllabus

Documentation Overview

  • Perl - On-Line HTML pages, books, WEB tutorials
  • HTTP/HTML - books
  • RoAccess
  • This is divided into several sections:
  • End User Training
  • RoLoader Training (Optional RoAccess PlugIn)
  • RoPages Training (Optional RoAccess PlugIn)
  • Program Development Training



  • RoAccess End User Training


    RoAccess Initial Page

  • Frames VS Non-Frames
  • Using Radio Buttons vs. Hyperlinks
  • Selecting Language to USE
  • Utilizing Non-RoAccess graphics for custom look
  • Login Page

  • Selecting from Multiple Real or Virtual Servers
  • Selecting a Database from that Server
  • the Username
  • the Password
  • Repository Selection Page

  • Selecting a Subject Area or Repository
  • Selecting the starting MODE (Edit/Display)
  • ItemType Filter option
  • Long Form option
  • TypeList Page

  • The Ubiquitous HELP button
  • Switching between Display and Edit mode
  • The Button Tray at the top
  • Subject Areas
  • History Audit
  • DBA Utils
  • The Item Class Selector
  • The Long Form Option
  • ItemType Info Button
  • Selecting a ItemType
  • Selecting a System ItemType
  • Up and Down arrows
  • The Hidden Dot
  • Doing a simple name wildcard filter
  • Doing an Extended filter
  • ItemList Page

  • Button Tray at the top
  • Subject Areas
  • Types
  • SpreadSheet
  • Path Reports
  • Stored Reports
  • Edit Mode Buttons
  • New Item
  • Delete Item
  • Rename Item
  • Information Area
  • Up/Down Arrows function
  • List of Items
  • Bottom: count
     
  • ItemGet Page

  • Button Tray at top
  • Environment
  • Version Info
  • Path Reports
  • AttList
  • Edit Mode Buttons
  • Copy Item
  • Information Area
  • Right, Left, Up and Down arrow buttons
  • Display Mode
  • Only Attributes with data are displayed
  • What determines display order -extended metadata
  • Attribute Info button
  • Text and Value Attributes, differences
  • Link Attributes: how to interpret display and hyperlinks
  • Binary/Blob/Document Attributes - mime types
  • Edit Mode
  • Value Attributes: text, range, lookup from LIST
  • Text Attributes: text, range, long lines
  • Link Attributes: adding, deleting, link qualifiers, link order
  • Binary Attributes: uploading, descriptions, mime-types
  • Extended Metadata:
  • PICs like I4, F10.6, C20
  • Number of columns and rows to display, min and max
  • The next mode to be in
  • When to Update Database, when not. Form changed and not.
  • Spreadsheet Subsystem

  • Selecting type of spreadsheet and delivery format
  • Selecting which Items to be used
  • Selecting which attributes to be displayed
  • Extended Filtering Option
  • Changing the Selected List
  • Interpreting various Spreadsheet Output Formats
  • Hyperlinks to each Item
  • Link Attributes
  • Path Reports Subsystem

  • What is a path report
  • How to create a path report
  • Selecting Reporting Style
  • Lists
  • Simple Graphic
  • Advanced Graphics
  • Unique Names
  • Add Definition Option
  • Depth
  • Selecting Which Path Report
  • Interpreting Report Outputs
  • Various runs for List, and graphics to display differences
  • Stored Reports Subsystem

  • Select Which Stored Report
  • Selecting a Seed Item
  • DBA Utilities

  • Gather ItemType Statistics: shows many hard to find problems.
  • Show All Hidden Items / Instances.  Quick problem resolutions.
  • Procedure Versions.  Handling Production, Test and Development

  •  



    RoAccess Application Development



     

    HTTP Protocol

    We use a subset
  • text/html
  • upload a file:  see UpLd.pl
  • download a file mime type: see DownLoad.pl
  • display an image: see ItemGet.pl
  • set up a FRAMESET:  see Login.pl


  • WEB Server

  • Can telnet and command WEB server.  Listens on an I/P address and port (socket)
  • Examples:
  • IIS (Microsoft Internet Information Server) NT only
  • PWS (personal/peer WEB server)
  • Apache (Windows and Unix)
  • Netscape Enterprise (Windows and Unix)
  • Java WEB Server (Sun, Unix)
  • Others.
  • RoAccess runs on them all

  •  
  • Steps in a query
  • HTML handling
  • Stateless (no "sessions")
  • Can just send a HTML text file
  • Can start a program, pass data to and from it
  • HTML can have JavaScript or Java
  • Notes:
  • Killing a long running cgi-bin does not kill the program.  Use the kill command from NTRESKIT
  • Displaying long Item lists can take LONG time: the browser usually
  • MSIE and Netscape and each version of each are different.  Make no assumptions of similarity or sameness of actions
  • Typical RoAccess (cgi program) activation
  • URL is http://server/roaccess/cgi-bin/program.pl
  • the WEB server knows to run a .pl file using Perl
  • Perl loads the text, compiles and executes it
  • print statements from the perl program are read by the WEB server and then echoed (mostly) back to the browser
  • Rochade accesses are done by passing a file or pipe of data to the BATCH CLIENT (Autopilot executable for Windows)
  • Results come back in a file or pipe (pipes are not reliable in Windows, even NT)
  • Program processes results of Rochade query
  • Program uses print statements to send HTML back to browser
  • Program exits (and so does perl)
  • Menu programs to not need to query Rochade
  • Programs can also do other things, like open ODBC connections, run other programs, etc.

  • Perl

  • Interpreter
  • Performance options
  • Modules
  • Platform independent
  • General Syntax
  • every statement ends with ";"
  • a line from a # to end of line is a comment
  • # inside a string are not a comment "Hello # there" is not a comment
  • perl is mostly lower case.  Don't use upper case as a rule
  • supplied subroutines do not need () for arguments:
  • @array = split / /,$line;
  • @array = split(/ /,$line);
  • Do NOT use the () unless forced to.  Just clutter up screen needlessly
  • Variables
  • Simple: $value=123 ;
  • Array: $value[0] = "Hello";
  • Associative array $value{"Description"} = "This is text";
  • note: no space before the "{" or the "["
  • Subroutines
  • sub doit { ... }
  • invoked by &doit, doit(), doit(args,...)
  • can return values, set globals
  • The "require" statement
  • separate file
  • can contain inline code, subroutines, ends in a "1"
  • search path in @INC
  • Special Syntaxes
  • Block is { }
  • Most used perl subroutines
  • print "string";
  • @array = split / /, $line;
  • ($var1,$var2,$var3) = split / /,$line,3;

  • RoAccess

  • Not a WEB server - a WEB application using cgi programs
  • Written in Perl
  • Provided in source format, available in executable
  • Can integrate Visual Basic, C, C++ or other WEB applications and plugins
  • Can have multipls RoAccess "servers" for Development, Test, Production, custom versions, testing new releases.  Many uses.  Each runs under same WEB server, with just a different name, like http://server/roaccess,  http://server/production, http://server/custom but usually have names more meaningful.  They can run on different machines or different WEB servers on the same machine listening on different I/P addresses and ports

  •  
  • Language Independent Coding
  • AConfig.pro & AConfig.pl
  • cgi-lib.pl - industry "standard"
  • puts parameters into variables, modified a small bit
  • handles upload of files
  • %in associative array
  • $in{"iT"}  is the ItemType
  • Trace/Debug - runtime selectable
  • Error Processing:
  • Fatal: processing can't continue: missing parameter, illegal conditions. RoAccess does a great deal of validity and reasonableness checking
  • RoAccess Standard Processing
  • parameters starting with lower case are considered program variables:
  • $in{'iT'} = "SCN/PROGRAM" by cgi-lib
  • $iT="SCN/PROGRAM" ;
  • Upper case parameters are special use on case by case
  • A number of "standard variables
  • $d (database) "AP-DATA"
  • $u (user) "ROADM"
  • $sa (Subject Area) MANAGEMENT INITIAL
  • $sa_short (Subject Area) MANAGEMENT
  • $iT (ItemType) "SCN/PROGRAM"
  • $iN (ItemName) "MORTGAGE RECALC"
  • $aN (Attribute Name)
  • @aNs (attribute names) an array list
  • $rT (run time Tag) ROA_FIRST_SERVER (see RoAccess.ini)
  • @cli_lines (RPL to go to Rochade)
  • @results (results of RPL)
  • Location of temp files, other standard variables used later
  • Documentation
  • Each screen has a "automatic help" button
  • Attributes have blue "info ball" for in depth Attribute info
  • Basic Application Flow
  • cgi-lib invoked "automatically"
  • set standard variables
  • write HTTP header
  • write preliminary boilerplate to screen
  • create @cli_lines array of RPL
  • pass to Rochade
  • get results in @ro_results
  • analyze results
  • print to screen in HTML
  • if a FORM
  • display inputs, outputs
  • declare target program

  • call hidden_variables() to pass parameters
    end HTML
    Graphics:
  • Creates files
  • starts a program
  • uses outputs
  • Passing Parameters Between Screens
  • Parameter passing is automatic
  • Any screen can be invoked by GET or PUT.  RoAccess makes them seem the same.
  • gen_query_string(overrides) is for hyperlinks
  • hidden_variables() is for FORMS
  • @user_variables (see AConfig.pro) declares additional user variables to be automatically passed between screens
  • Extended Metadata: To save what Rochade cannot
  • Data TYPE and display PIC
  • Attribute Display Order
  • Modified RoAccess Applications
  • Good for minor needed changes: to implement a business rule, such as by default all users are read only.
  • Fastest way to change (just tweaking)
  • Changes will be overwritten on next RoAccess upgrade or new version
  • User Written Applications
  • user_html directory: user images and HTML pages
  • user_cgi-bin directory: user perl programs
  • these directories will not be overwritten by RoAccess new versions
  • AConfig.pl integrates application using configuration parameters
  • User Written Programs

  • Everyone must have their own copy of Roaccess subdirectory:
  • all under c:\inetpub\wwwroot
  • user1
  • user2
  • each with own copies of AConfig.pl and RoAccess.ini
  • Strings:
  • 'aaa/a\b'
  • "value is $value"
  • '#$PUTLN HELLO^ THERE
  • "#\$GET $iT \@iN DEFINITION"
  • $ says a variable follows
  • @ says a variables follows (sort of)
  • From ItemGet screen
  • Add MINE button to user_html and AConfig.pl
  • Create my_item_get.pl in user_cgi-bin
  • Display parameters
  • Select a particular ITEM/ITEMTYPE with a link attribute with multiple links
  • Display both DEFINITION and Link Attribute with hyperlinks
  • Create a FORM below it with every type of input/button to submit to ../cgi-bin/ItemGet.pl
  • <INPUT TYPE="TEXT"
  • <INPUT TYPE="HIDDEN"
  • <INPUT TYPE="RADIO"
  • <INPUT TYPE="CHECKBOX"
  • <INPUT TYPE="SUBMIT"
  • <TEXTAREA> .. </TEXTAREA>
  • <SELECT> <OPTION>...</SELECT>
  • Tips

  • If a table is created, be sure to close it before writing an error message
  • Tables should not be over 100 or so lines.  Break into multiple tables
  • When using TRACE, look at VIEW SOURCE because the displayed WEB page with trace may have missing items because of special characters like "<" or spaces in data are compressed to one space on the WEB page output
  • URL's must escape certain characters
  • Output to screen must call escape_line() to display special characters, like "<"
  • All tag parameters <TAG PARAMETER="value"> should always have value in double quotes (")
  • When starting TRACE on/off separate window, do "FILE/NEW WINDOW".  Do not double click browser ICON or use the START window.  The new window won't share the cookies between themselves.


  • RoLoader Training

  • ROA_RO_LOADER ItemType
  • Purpose
  • How it fits in
  • Usage
  • Extended Metadata
  • LIST : allowable lists of values
  • LIST of LINK QUALIFIERS: which are allowed
  • Display PICs
  • Numeric RANGE
  • Where can data come from
  • Existing files
  • Word processing documents
  • Spreadsheets
  • Export from programs
  • Output from custom programs that read custom or proprietary databases.
  • A number of other sources
  • Validation Types
  • Why so many possible validations?
  • Range, LIST, LIST of Link Qualifiers, PICs
  • Items Linked to Exist
  • This Items must not exist
  • Just Delete These Items
  • No 2 lines in data file refer to same Item /Instance
  • File Spreadsheet Cell Formats
  • Simple Text
  • Wrapped Text
  • Embedded Hard Returns (non-wrapped)
  • Binary Blob/Document/File loading format
  • Link Attribute formats (several)
  • Starting RoLoader
  • Understanding the many options
  • Overview of what will be happening
  • What if your browser times out? No problem.
  • Load now or later?
  • Validations
  • Internal Display Options (for the curious minded)
  • Types of Error and validation Messages
  • Loading only part of the data file
  • Loading only a range of input data lines (e.g., 100-200)
  • Loading certain attributes, ignoring others
  • What if I later find my data was bad, or I want to reload.  What are my options?

  •  
     


    RoPages Training

    RoPages is an optional RoAccess PlugIn that allows a significantly larger  number of users to access data from the Rochade Repository using a very intelligent caching system.  This system remains even if the power if removed, which is quite advanced.  Cached pages do not hit the Repository at all!  This frees the Rochade Repository for other uses.
  • Why RoPages
  • Rochade consumes resources (CPU and disk)
  • This limits number of concurrent accesses
  • What can be cached, and what not?
  • What order of magnitude improvement expected? Between 10 and 100 times improvement.  The more heavily loaded your Rochade Repository, the higher the improvement factor.
  • How to specify what Databases, Subject Areas/Projects and ItemTypes to be cached
  • How to identify a cached page.  How to refresh a cached page.
  • Where is the cache?
  • How is cache created?
  • How is cache maintained?
  • Initially - none or all
  • As you go - automatically keeps in sync with Repository
  • Refresh on Demand - One Item
  • Refresh on Demand - All Items
  • Autopilot and Scanners?



  • Version 2.03 (PC)