BannerJobsub is a Ruby gem that makes it easy to write Banner jobsub programs in Ruby instead of Pro*C. Increased readability, maintainability, and usefulness plus it gets you the power and flexibility of Ruby's standard library and available gems. By default, BannerJobsub will perform basic boilerplate operations for your job:
- Creates an oci8 database connection, including validating/applying Banner security.
- Creates output
.lis
file and swapsSTDOUT
to it, also provides#log
file handle to write to logfile. - Fetches submitted GJBPRUN parameter values into named hash.
- Provides default header / footer for formatr output.
Using gem
on your jobsub server:
gem install banner_jobsub
BannerJobsub expects standard/global configuration values to be stored in $BANNER_HOME/admin/banner_jobsub.yaml
. Basic, minimum required values are your SEED1 and SEED3 values:
seed_one: 111111111
seed_three: 22222222
Banner 9 / bannerjsproxy If you are using Banner Job Submission Proxy (bannerjsproxy) with either Banner 8 INB or Banner 9 Admin Pages, you can enable bannerjsproxy compatibility using the (optional) configuration setting. Defaults to disabled.
seed_one: 111111111
seed_three: 22222222
banjsproxy: enabled
More options and configuration values are covered below.
Setting up a Ruby program to run via jobsub / INB GJAPCTL is basically the same a compiled Pro*C:
- Create necessary job and security entries in Banner (GJBJOBS, GJBPDEF, etc) like a normal Pro*C job.
- Place Ruby program without an extension ("gyrruby" in this example) in
$BANNER_HOME/general/exe
(or symlink it there from the appropriate "mods" directory, up to you). - Set the executable bit on the program:
chmod +x $BANNER_HOME/general/exe/gyrruby
A few examples are provided in the examples/
directory. Basic usage is covered in examples/gyrruby.
BannerJobsub tries to make the development phase a little less painful by providing a a couple of convenience features when running a job from the command line.
Credentials: BannerJobsub will never prompt for username/password database credentials. Instead, it expects username and password to be provided in ~/.banner_jobsub
:
username: scott
password: tiger
Parameters: To make repeated debugging/testing runs easier, BannerJobsub will look for jobname.yaml
(ex: gyrruby.yaml
, syrblah.yaml
, etc) in the current directory and load matching parameter values from it.
So for this declaration in gyrruby
:
require 'banner_jobsub'
@env = BannerJobsub::Base.new(name: "GYRRUBY", params: [:start_date, :end_date])
BannerJobsub will look for gyrruby.yaml
in the current directory to load parameter values:
start_date: 01-JAN-2015
end_date: 31-DEC-2015
If not found, BannerJobsub will prompt for each parameter in turn. Multi-value parameters should be separated by a comma.
Output Formatting: BannerJobsub suggests using formatr for tabular/fixed output formatting, as it provides "visual" layouts (perlform, essentially). Much easier than using table(...)
based formatting. BannerJobsub::Base#print_header
and BannerJobsub::Base#print_footer
provide simple page header/footer outputs. More information can found at the formatr docs, the perlform docs, and in the provided simple output example.