Saturday, February 23, 2019

Introduction: Coding - Innovation, Precision & Efficiency

I'm very passionate about all aspects of coding - technique, program structure, clarity, streamlining, creativity, modular design/reuseability, optimization, effectiveness, integration, automation, prototyping, neatness, etc. That's a lot of cliche' buzzwords to digest but they are all part of the coding methodology (mine anyways). It makes no difference whether I'm developing in 370 Assembler Code, PeopleSoft SQR, Java or PL/SQL - all of these buzzwords are adhered to naturally. Another word I can include is "fun"... I find developing to be a combination of solving puzzles & assembling Lego blocks - especially with 370 "Assembler". The intention of this blog is to highlight some of my interesting projects, techniques & of course, fun... so here's a small sample of what you may find here:

370 Assembler Object Code Translator:

Starting with the fun! For no apparent reason I decided to build a self-evaluating "Object Code Translator". Originally written in 370 Assembler/CICS on the mainframe (Aug'1991) then converted to PC/370 Emulation on Windows 95 (Oct'1996). I ran this on Windows 10 using DOSBox to produce the screenshot below - still works like a charm! Starting at offset zero (x'0000') it evaluates the object code in memory & deciphers the instructions (format, mnemonic & operands). Pressing the function keys allow you to traverse through the load module  - one instruction at a time, line by line or stepping through 50 instructions. The actual code to produce this is very tight, yet organized so it's easy to understand & modify if additional features are needed. More on this later.


Configuring WinBatch as an Executable PeopleSoft Process Type:

More fun. PeopleSoft is configured to run process types like SQR, Application Engine, COBOL, Crystal Reports, BI Publisher, etc... but I decided to add a new one to fulfill a business requirement (integrated with MS Excel). WinBatch is a robust windows based scripting language that can be compiled & executed. Perfect for this situation & many more. I created a WinBatch PeopleSoft adapter that connects & executes just as smoothly as the delivered process types. My custom package contains the primary Adapter Module (FTPSWBT) along with functions for Command Line Argument Parsing (FTPSARG), Oracle Connectivity/SQL (FTPSORA), Process Scheduler Integration (FTPSAPI) & Log File Support (FTPSLOG). Below is a random snippet from the FTPSAPI.WBC Process Scheduler Update.



Through the Adapter API, WinBatch was utilized as an effective Windows/NT PeopleSoft Tool. Below is the Log File for a WinBatch Process FTAPLOAD which reads Excel Spreadsheets & Loads them into the PeopleSoft Database for processing. Complete seamless integration with PeopleSoft.




PeopleSoft EPM Custom Data Mart Builder Innovation:

PeopleSoft EPM (Enterprise Performance Management) is an application that manages your Data Warehouse & reporting Datamarts. To be brief, the delivered Datamart Builder component (circa 2004) consists of numerous layers of extraneous Application Engine programs that align with a static Source Map of SQL Objects that aren't utilized properly - they are redundant placeholders. When faced with a complex datamart implementation for a client I decided to scrap the "conventional methodology" & take a more innovative & effective approach. I expanded the Source Type Meta-Data set to include a more robust set of functions & controls. I built a primary Datamart A/E Module (completely integrated with EPM security, run controls, activation, etc) to build all Dimensions/Facts using the new Source Mapping which includes conditional logic & Incremental/Destructive Load options among many other useful amenities. A web of A/E programs was avoided with more flexibility attained. Below is a screenshot of a portion of the Account Dimension:



Below is the custom Application Engine Module (ZDM_SRC) I wrote to handle the various Source Types. Of course, this is only a high-level view...


This concludes my Introductory Post... more to follow.