April 2014 - Present
A manufacturer of animal
feed and related products had a custom developed EDI system that was very
manual to operate. Each step in
the process necessitated a review of the EDI file being processed or a review of
a report in order to determine that the procedure ran properly or that the
information in the EDI transaction was correct in terms of manufacturing
location, unit of measure, pricing, and part validation. The company wanted to streamline the
process so EDI purchase orders downloaded from the VAN could be processed
directly through to its business system without manual intervention. I developed a .NET program that would
accept an EDI purchase order file and use data in SQL tables to validate the
EDI transaction. A valid EDI file
would be processed directly into the business system while an EDI file with
errors would be moved to a directory for review. An EDI file with errors was not modified, rather the SQL
tables that supported the system were changed if the information was not
correct, such as a price increase or a different unit of measure. If the SQL tables were correct, the
trading partner was notified that the EDI transaction needed to be corrected
and resent. Excel workbooks were
maintained by users to populate the SQL tables that supported the .NET
program. I developed an Access
application to load data from the Excel workbooks into the SQL tables. The Access application would permit the
user to select a table to load from a drop down box, select the trading partner
from a drop down box, and press a button to load the appropriate Excel workbook
range into the SQL table. A macro
was also developed that could be run from a command line to load all tables
using the Access application.
This project was expanded to
develop .NET programs to process incoming EDI purchase orders (PO 850
transaction) and outbound Advance Shipping Notices (ASN 856 transaction) and
invoices (810 transaction). The
inbound transactions would populate SQL data tables that would interface into a
DataFlex processing system. Outbound transactions would be pushed into SQL tables from a DataFlex
system and the .NET program would generate outbound EDI transactions.
This project was again
expanded to implement EDI transactions for an additional 13 trading partners
taking the number of trading partners from 6 to 19. Additional programming was required based on requirements of
the new trading partners. About 50
Crystal Reports were written to provide visibility into EDI orders, invoices,
and ASNs. These reports were run
on a scheduled basis and emailed to the end users using Crystal Reports
Server. Several exception reports
were developed that were run interactively.
During this time the company
embarked on a project to implement SAP.
I worked on the SAP implementation in several areas. I loaded the legacy customer file into
an Access table and wrote VB functions to cleanse the data and wrote queries to
export the customers to Excel to be loaded into SAP using Winshuttle. I loaded the SAP materials into Access
tables and then created Excel spreadsheets to load CMIR records into SAP using
EDI transactions were stored
in SQL tables. The legacy system
had programs to read the SQL tables to enter POs into it and had programs that
created ASNs and invoices in the SQL tables from legacy data. Interfaces from the SQL tables to SAP
would need to be developed using SAP IDOCS. I developed mapping documents and program specifications to
map data fields from the PO SQL tables to SAP IDOCS and from invoice and ASN IDOCs
to the invoice and ASN SQL tables. I wrote .NET programs to create PO IDOCs from the PO SQL tables and to
parse ASN and invoice IDOCs to load data into the ASN and invoice SQL tables. Several custom segments were developed
to pass data between the EDI system and SAP. There were some third party shippers that were sent orders
for fulfillment and they sent back a file that was imported into SAP as an
invoice. The creation of an EDI
invoice for these direct ship orders also resulted in the generation of an ASN
by the EDI middleware. SAP sent
back a status message after POs were processed, and this status message was
used to update the total order weight and the SAP order number in the EDI PO
Walmart entered a special department order that needed to be realigned
to a certain plant based on the GLN of the inbound PO. These orders were placed on hold by the
EDI middleware. An Excel
spreadsheet was developed to read the Walmart orders that were on hold and
place the desired plant in a column that was determined by cross-referencing
the GLN to a plant from a table within the spreadsheet. The scheduled date was suggested by a
formula in the spreadsheet and the user could override this date and cancel
line items in the spreadsheet. A
macro would be run to update the POs with this information and to remove the
hold status. After the update was
run and the POs were processed into SAP, the SAP order number would be placed
in the spreadsheet by executing an Excel macro to read the SQL tables for the
order to retrieve the SAP order number sent by the SAP status message.
February 2014 - Present
A manufacturer of medical
equipment for the dental industry had a system to provide quotes for reps that
had been developed in Microsoft Access. The programmer who developed it left the company and they asked me to
take over support. The first task
was to upgrade the system to Access 2010 so it could be executed on PCs with
Windows 7 and Windows 8 operating systems. A new government price list was negotiated and I updated the
system with these prices. I added
new reps to the system and provided them an executable that could be downloaded
from an FTP site. A new light source
was being implemented on one product line and I modified the part selection
process to pick the new light source from the list of available parts. The quote system included a
configuration tool and I modified it to add an additional product line and
enhanced the configuration process by filtering subsequent option selections
based on option selections that had already been made.
A second phase of this project was to implement a new configuration
system for a new line of microscopes. I worked with engineers and tech support personnel to generate the logic
needed to pick the parts for the new microscope. As in earlier versions, as high level systems were chosen,
the parts to configure the various options were chosen and selections were
enabled or disabled based on options chosen in previous selections. The new version of the system was deployed
using a terminal server, and the software was deployed to a directory for each
rep. I developed software to
update the database and programs as modifications to the system were
December 2012 - September 2014
I worked for a manufacturing company that was in the process of outsourcing its EDI functions. The primary need was to support EDI on the IBM mainframe using COBOL interface programs and the Websphere Data Interchange mapping software. I developed inbound and outbound maps for trading partners, as well as modifying maps and interface programs to satisfy mapping needs. I set up trading partners in WDI as well as setting up their communication profiles in AS2. I also developed several VB programs that sent and received files from servers using FTP. I was promoted to a project team that was developing test files as well as performing comparison of the existing map output to the outsourced map output for the same EDI transaction files. I developed map specifications using logic from the existing bridge programs and the current version of the customer map.
August 2012 - December 2012
I was a subcontractor to a company that performed conversions of Oracle forms and reports from any version to any other version. The company used a software package named PITSSCON. This software permits a user to create a database of all his forms, reports, PL/SQL code, tables, and libraries. Scripts may be run on the PL/SQL code to determine unused code, non-supported functions, and other inconsistencies between the prior form version and the current form version. Templates of changes can be created to perform mass replaces of the outdated code with new code, or to replace functions with different syntax with the new syntax, or to replace non-supported functions with functions developed and supported by the PITTSCON software package. I worked on conversions of Oracle forms for several companies.
June 2012 - July 2012
A fastener manufacturer used Gentran to perform EDI transactions with its trading partners. They had a contractor who performed mapping functions who had left them several years earlier. They were able to run the system to send and receive EDI transactions, but did not have the expertise to develop additional EDI transactions. They contracted with me to develop 810 outbound invoice maps for new trading partners. I set up the trading partners and developed maps based on the trading partner specifications. The EDI system interfaced to the Glovia business system that used Oracle as its database repository.
March 2012 - May 2012
A non-profit had outsourced its order entry function to a web company. I had written interfaces to the web order entry system to accept orders from it, load them into local Oracle tables, and forward the orders to the distribution system. Some of the orders were pre-paid by credit card before they were shipped and batches were created to generate unearned revenue GL transactions. ASP web reports were developed to reconcile the GL batches to the credit card processor settlement. PayPal began to be accepted for pre-paid orders. A new metatag was created to identify credit card orders from PayPal orders. I modified the PL/SQL package that loaded the orders to segregate the PayPal orders from the credit card orders and generate the appropriate GL batches. The ASP web reports were also modified to handle credit card and PayPal reconciliation.
A manufacturer used Dynamics to control its business processes and saved printed documents such as invoices and checks using a web based document management system called Docuware. Docuware saved the documents in various directories on a web site based on document type and permitted a user to request its image by entering the web address URL in a browser window and passing the document number as a parameter. The document number passed was in the form of a SQL query WHERE filter in base 64 notation. The company wanted to be able to access the printed image from various Dynamics screens. I customized four Dynamics screens to place a button on the screen next to the document number to be retrieved. When the user pressed the Docuware button, the WHERE filter was set up, converted to base 64 notation, and a call to the web site URL was made to retrieve the document.
December 2011 - January 2012
A non-profit organization was going to update its PledgeMaker software package to a newer version. The PledgeMaker software company, Softrek, was contacted to assist with the update effort. The non-profit had developed about 200 custom forms using Oracle Forms 6i and 10g, and had about 150 reports developed using Oracle Reports 6i and 10g. Several hundred stored procedures and triggers encompassing about 150,000 lines of code had also been developed. Softrek wanted to know which objects these customizations used so they could determine the scope of work to modify them. I documented the tables and functions used in these forms and reports so Softrek could determine the extent of the customizations.
August 2011 - November 2011
An electrical component manufacturer was adding many EDI trading partners and needed assistance in developing maps in ANSI and EDIFACT format to exchange invoices, orders, shipping information, and forecasts with them. EDI transactions could be entered using EXTOL in a batch mode, EXTOL in an interactive mode (AS/2) or could be entered using BIZTALK. EXTOL ran on the AS/400 using interface programs developed in COBOL, while BIZTALK ran on servers and was programmed in VB. I developed maps to send and receive EDI transactions to various trading partners using EXTOL. I developed several custom programs in COBOL to handle special situations. LOTUS NOTES was used as the transmission medium for the BIZTALK transactions while FTP was used for the transmission of EXTOL EDI transactions.
June 2011 - July 2011
A medical device manufacturer was upgrading its packaging of packs trays and needed a program developed that would print labels for packs trays. A Domino C600 printer was installed and the Connect software package was bundled with the printer to generate label formats for printing. An Access database was used by the Connect software to retrieve information to print on the labels. Labels were printed interactively by the software, that is, a user would manually call for a label to be printed rather than having a command file or some other batch process to print it. I developed an Access program to retrieve label information from several tables in an AS/400 BPCS system to create a record in an Access table to be used by the Connect software to generate the label. Several steps needed to be performed by the user to select the label format, database table, and provide other parameters needed to print it. In order to streamline this process, macro software was installed and the Access program would generate the keystrokes to call themacro to print the label after the Access table was loaded with label information.
I taught two Crystal Report classes for an electric cooperative in Missouri for a training company. Each class was two days in duration. The first class was a fundamentals class using the basic tools of Crystal Reports. The second class was an advanced class using features such as graphing, sub-reports, and accessing data from different sources.
October 2010 - May 2011
A non-profit organization had a web based order entry system and was outsourcing it to an external provider. Orders were taken on three web based systems and stored in Oracle database tables. From there, the orders would be sent to a distribution center for processing. The orders would now be generated from the external order entry web site. Due to differences in accounting methods for credit card and charge to account product, all orders from the external order entry system would be sent to the non-profit for creating.GL transactions and then forwarded to the distribution center for fulfillment. Orders were sent in XML format using FTP and were processed by enhancing the PledgeMaker Lockbox PL/SQL user interface package. A second change that required another interface was that downloadable product such as CDs and books in pdf format were now being handled. These items were sold by the external order entry web site but did not need to be shipped by the distribution center but did require sales GL transactions to be recorded. I developed new Oracle tables for handling the orders for downloadable product and created PL/SQL stored procedures to process them using the PledgeMaker Lockbox user interface.
July 2010 - September 2010
A leasing company was upgrading from Sage Accpac version 5.4 to 5.6. I had developed several triggers and customizations in .NET that needed to be upgraded to use the new database tables. These customizations involved a Lockbox processing system for invoices, a charge back system for invoicing, and a system to accumulate accounts receivable transactions in working batches until they were ready to be processed. Modifications to the .NET programs were made to use the new database version and the configuration files were changed to support the new version.
April 2010 - June 2010
A manufacturing organization developed a system to determine shop capacity using VB and Access. The system would present a calendar to a user and permit him to select a product family for review. When the product family was selected, the number of units scheduled on a weekly basis was presented as a bar graph showing units scheduled versus the capacity of the units that could be built. The bar graphs were color coded so the user could easily see problem issues. The system used the MAS500 item table to determine products and product families and was loaded into static tables in an Access database. The organization was converting to a later version of MAS500. I modified this system to be able to access the new database tables and added forms to permit the user to more easily maintain products and product families to be displayed on the capacity chart. I also converted several Crystal Reports to use the new database and modified several others reports per user requirements.
February 2010 - March 2010
Several departmental changes occurred at a non-profit organization and products from one division were able to be sold by another division on a commission basis. I modified many of the order processing PL/SQL stored procedures to perform the appropriate revenue split for these items when creating the GL transactions. This also applied to splitting revenue on return sales.
August 2009 - January 2010
A non-profit organization traveled to various events around the country and sold its products. Products sold at events were sourced from the distribution center using a special order sales code. I modified the Oracle PL/SQL order entry interface to move the inventory for the event sales from the distribution bin location to an event sales bin location. The inventory for the event was entered into a point of sale system, and when the event was over, an export of the event sales was created. I developed a PledgeMaker LockBox interface to load the event sales into working tables. I developed a web form to permit the user to maintain the part number in the working tables since not all parts sold at the event were stocked. The web form also contained an option to permit the user to process the event sales to generate GL and inventory transactions. The order processing interface was also modified to account for the inventory that was returned to the distribution center after the event sale was complete.
July 2009 - August 2009
A medical device manufacturer was replacing several printers used to label its products. The printers being replaced were 15 years old and used a serial interface. The software that printed the labels was custom written in VB and wrote to the printers using the printer command set. Label definitions were stored in an Access database and label data was stored on an AS/400. The new system was developed in Microsoft Access using Label Matrix and the printers were network connected. When a label was to be printed, label information would be retrieved from the AS/400, an Access table would be populated with the label data, and the Label Matrix print utility would be called to print the appropriate label definition using data in the Access table.
April 2009 - June 2009
retailer was outsourcing the distribution of its products to a third
party. I developed interfaces between its Oracle and PledgeMaker
business systems to the outsourcing company. The retailer had a web
order entry system and I developed an Oracle stored procedure to send
these orders to the outsourcing company in an XML format using FTP.
The outsourcing company would send back these orders and orders taken
by their personnel and I would create Oracle GL entries for the sales
including commission entries, and Oracle inventory transactions. The
inventory transactions affected a certain bin location so the retailer
could monitor inventory levels at the outsourcing site by looking at
its own inventory records. The outsourcing company charged for its
services using a two tiered approach. I developed a system to enter
the GL transactions into Oracle for these charges. Receipts, purchase
orders, and adjustments were sent from the outsourcing company to the
retailer on a daily basis. These transactions were sent using FTP and
a PledgeMaker lockbox interface was developed to enter them into the
Oracle inventory system and to receive the purchase orders. Several
web forms were developed to review transactions and orders in the
April 2009 - May 2009
had developed an accounts payable interface for a railcar leasing
company from its SQL Server custom database into Sage Accpac. Some of
the charges in the payables invoice were actually the responsibility of
the customer and could be billed back to the customer. I modified the
application which created the AP invoices to create a database with
charges that were the responsibility of the customer. I created
another .NET application to generate AR invoices from the charge back
database. The user interface to this application permitted the user to
create invoices for railroad versus non-railroad customers and allowed
the user to select the invoices to create for railroad customers.
February 2009 - March 2009
windows and door retailer was upgrading from Sage Accpac 5.2 to Sage
Accpac 5.5. I had written several .NET interfaces to Sage Accpac and
needed to revise them to work with version 5.5. One of the biggest
changes was in the handling of optional fields. In version 5.2 the
optional fields were contained in the Sage Accpac master and detail
tables, while in version 5.5 the optional fields are in tables of their
own. I modified the databases and .NET programs to support the new
version of Sage Accpac.
plastic part molder was currently acknowledging orders by printing them
out and then faxing the printouts to its customers. Some of the
customers had asked about receiving acknowledgments as an Email. I
modified their SQL database to contain fields to support the Email
process and modified their VB order system to Email them. New fields
were added to the screen to permit the entry of the Email address and
then checkboxes were added to the order print screen to permit the user
to indicate whether the order acknowledgment should be emailed or not.
had previously developed an interface for a plastics manufacturer from
their custom order system to their QuickBooks accounting system. They
had made some changes to the GL accounts and wanted to change the
accounts associated with parts as they were imported into QuickBooks.
I made the appropriate database changes to handle the new accounts and
modified the import program to use the new account information.
November 2008 - January 2009
non-profit was partnering with an external firm and needed to share
customer information with them. I assisted in the conversion of four
DMAS customer files to send to an external organization. I created a
query on the AS/400 to convert all fields in the files to character
format and downloaded them to a PC. I developed the SQL loader control
files and shell scripts to load them into temporary tables. I moved
the data to working tables and in the process I converted the date
fields and set the precision on the numeric fields. I matched the DMAS
customer records to the existing records in PledgeMaker and loaded
those that were not already in PledgeMaker using the Lockbox facility.
I then used the PledgeMaker customer, telephone, and address tables in
conjunction with the DMAS tables and created customer and ship to
records in the format provided by the external organization.
had previously developed an AR invoice automation program for a railcar
leasing company. This program took information from a SQL server
database containing railcar charges and created AR invoices in a Sage
Accpac system using Sage Accpac APIs. Data fields which do not map
directly from one system to another may be contained in Sage Accpac
optional fields on the appropriate table. The leasing company wanted 3
additional fields added to the AR invoice detail table to facilitate
lookup between the two systems. I modified the .NET program which
creates the AR invoices to add the optional fields.
August 2008 - November 2008
audit firm that audits payables from customers to look for
inconsistencies such as duplicate payments and missed discounts was
looking to develop a system for demonstrating their software to
potential customers. I created a virtual machine with their software
and sample data that could be used to demonstrate the features of the
software. The virtual machine is saved on a CD and can be copied to a
PC for use whenever needed. Data can be manipulated during the
demonstration, and then can be refreshed by copying it again from the
CD. The concept was enhanced to use virtual machines to perform
audits. I set up the software to run on a virtual machine and
procedures to integrate next year's data with the present data.
legal firm was migrating from GroupWise and WordPerfect to Microsoft
Outlook 2007 and Word 2007. One week before implementation, the client
needed classes taught in Word 2007 and Outlook 2007. The one day
classes were customized for the client so they could be condensed to a
half day, and I taught 13 half-day sessions.
converted an Oracle system of about 15 forms and 10 reports from Forms
version 6 to Forms version 10g. I then documented the procedure for
converting from Oracle forms and reports version 6 to version 10g.
This included configuring the application server and using the report
object. In order to customize the reporting process, a custom table
was created to hold a record for each user. The table contained a
report server name, the report source path, and the report output
path. This permitted different versions of a report to be printed
based on the user ID and to place output files on the server in a
user's secure directory.
June 2008 - July 2008
manufacturer of medical instruments was modifying its packs labeling
system, which was written in VB and utilized data from both an Access
database and an AS/400. The proposed labeling system would permit the
user to enter a shop order number into a screen and then the system
would display labeling information for the part number associated with
the shop order. The user would be prompted to mount the proper pouch
size for the pack and then the system would download the label format
to the printer. The system tracked each time a label was printed by
date and user, and a report was developed to provide shop order label
January 2008 - June 2008
non-profit was streamlining its business processes and making changes
to some of its existing systems and procedures. In January 2008, I
wrote a .NET interface between the web order system in an Oracle
database and the shipping system in a MS SQL server database. The .NET
program read the Oracle web order table looking for records that had
not yet been processed. It would create a record in the MS SQL
shipping table using data from the web order table. When the order was
shipped, the shipping system would create a tracking record in a MS SQL
table. The .NET would read the tracking table and update the web order
with the tracking information.
In March 2008, I wrote an ASP.NET
application to permit members to electronically renew their memberships
from the web. The application would place a record in an Oracle
tracking table for the membership year including a randomly generated
PIN number. An Oracle report was developed to generate a renewal
letter to be sent to a member including his ID number, PIN number, and
a web site address. I wrote the web application to permit the member
to enter his ID number and PIN and renew the membership online and
update his record in the Oracle database.
In May, 2008, I
planned and implemented the PledgeMaker credit card encryption
feature. This included enabling the credit card encryption facility,
running a script to convert all credit cards from human readable to
encrypted format, and modifying all user procedures to use the
encrypted credit card field. The Lockbox import specifications and
procedures were also modified to use encrypted credit card information.
June, 2008, I moved the retirement fund records from the S/36 file to
an Access database and then sent the records to a third party
administrator. This included developing Access tables to hold the
data, moving the data to another Access table with decimal fields
properly set, and then exporting the table to an Excel spreadsheet for
transmission to the third party administrator. Several queries were
written to sum the dollar amounts by department to reconcile them with
totals from the S/36 file. The retirement funds withheld from the
payroll system needed to be forward to the third party administrator as
a spreadsheet. I wrote a .NET program to accept a text file from the
payroll system, entered it into an Oracle table, and then used OLE
automation to start Excel and create the spreadsheet from the Oracle
table. The program also created GL transactions for the Oracle GL
system and placed them in the GL interface table.
October 2007 - January 2008
manufacturer of medical instruments was modifying its labeling
process. The proposed labeling system would permit the user to enter a
shop order number and then print the labels for the shop order by
pressing a foot pedal to print each label. The label templates were
created using the Label Matrix software package. A barcoded shop order
number would be scanned into the system. The program I created using
VB (Visual Basic) would read shop order information from the AS/400
using an ODBC connection. The part number from the shop order would be
used to access other AS/400 tables to get description information,
language information, and other fields to be printed on the labels such
as temperature range and expiration date. The system would print a
sample label when the shop order was accessed and print a closing label
with label counts when the shop order was closed. An audit report was
available to print shop order statistics.
September 2007 - December 2007
floral wholesaler was upgrading its Sage Accpac system and was
implementing the EPOS cash register system to front end the order entry
and invoice process. The EPOS program that placed invoices into the
Sage Accpac did not insert the custom fields at the header level and
did not properly set the accounting information. I wrote a .NET
program to read all EPOS orders, credit orders, and layaway orders that
have not yet been processed through day-end and inserted the
appropriate fields at the header level, changed the GL accounts, and
set the sales rep based on fields in the EPOS order. The .NET program
was later to be executed using the Process Scheduler application. When
the Process Scheduler executed a program, 4 command line parameters
were passed to it. One of the parameters was a log file name. This
log file was written to at the completion of the program with a status
indicating if the process completed successfully or not. I modified
the .NET program to accept the 4 parameters and write to the log file.
The program was also modified to monitor the EPOS directory and would
not start unless the directory was empty.
August 2007 - September 2007
manufacturing company was implementing Quick Books as its accounting
system. They had a custom written system to process orders and
invoices. The system was written in VB and the data was stored in an
Access database. I modified the system to produce import files for
Quick Books when invoices were printed, finished goods were placed into
inventory, and items were shipped.
instrument manufacturer converted from a MAX ERP system to MAS500.
Some of the data from the MAX business system would not migrate to
MAS500 due to incompatibilities between the systems. Therefore, many
personnel had two computers at their desks; one for MAS500 and one for
MAX inquiries. The previous system used a BTRIEVE database on a Novell
server and the company was worried about what would happen to the data
in the event the Novell server went down. I downloaded the data from
the BTRIEVE database tables and loaded the data into a SQL server
database with the same structure as existed in BTRIEVE. The Crystal
Reports that had been written against the BTRIEVE database were
modified to use the SQL database and users now only needed on computer
at their desk.
January 2007 - April 2007
railcar leasing company had just split off from its parent company and
needed to provide accounting and other services for the new entity.
The Sage Accpac software was installed for accounting. Invoices needed
to be imported for mileage, railroad, and equalization transactions
from another system. I developed a .Net program to read tables in a
custom data base and create A/R invoice batches for these invoices.
Other invoices from a separate source needed to be imported into Sage
Accpac and I wrote a .Net program to create invoices for these
transactions. These invoices, however, were not complete when entered
into the invoice batch. As such, they were entered into a working
batch and updated in the working batch as information concerning the
invoice arrived. When the invoice information was complete, they would
update an optional field value to indicate the invoice was complete,
and run a .Net program I wrote to move the completed invoices from the
working batch to a new batch for processing.
December 2006 - March 2007
learned the Microsoft CRM 3.0 software package. I installed the system
and made several customizations to it. The customizations included
implementing an assembly into workflow rules and creating new
entities. Custom reports were developed using the new entity and
several Excel pivot table reports were also created. I also taught
8526 Microsoft CRM 3.0 Installation and Configuration course and 8525
Microsoft CRM 3.0 Customization course.
taught a one week course in RPG for a group of consultants. The course
included RPG III, RPG IV, PRG ILE, and RPG Free. The consultants used
a fourth generation language for most of its development work and the
development tool generated RPG code. The consultants could not
effectively debug their code since they did not know RPG so this course
provided them with the tools to debug their code.
December 2005 - October 2006
health care facility was implementing the Accpac accounting software
and needed to import invoices from three different sources. I wrote
several custom applications in .NET (VB) to automate this process. The
.NET programs read invoice transaction files and converted them into a
format that could be imported using the Accpac import facility. The
Accpac import API was called by the .NET program and the invoices were
moved to a success or failure directory depending on the results of the
import. Some of the transactions did not contain valid Accpac
information. As the conversion of the data occurred, the Accpac
database was accessed in order to determine if setup information was
available to process the transactions. If the data was present, the
transaction was created normally. If setup information was not
present, default information was used to import the transactions. The
user would complete the setup information and execute a .NET program to
reprocess the data in the Accpac transaction batches.
July 2005 - August 2005
state Department of Agriculture was implementing ACCPAC as its general
ledger package. The first department to be effected was the Bureau of
Weights and Measures. This department provided inspection and
certification of scales, pumps, and other measuring devices. As
customers were invoiced for their inspections, some did not pay
promptly. A collection procedure was followed in order to track the
customer invoice status as it moved through the collection process.
Status information for each invoice will be tracked using ACCPAC
optional fields at the invoice header level. I wrote an ACCPAC VBA
macro to permit a user to maintain the optional fields in order to
track the status of invoices. I also provided training for users on
Crystal Reports and writing VBA macros.
June 2005 - March 2006
college was installing a point of sale system and a software package
(CampusVue) to track students. I worked on a project to provide an
interface between CampusVue and the college's ACCPAC General Ledger.
This included writing triggers on the CampusVue MS SQL database as well
as writing triggers on the ACCPAC MS SQL database to keep the two
systems in sync. Transactions were also generated in XML format to
pass information to ACCPAC from CampusVue.
August 2004 - June 2005
worked on a project for a microscope manufacturer to convert from their
existing MAX business system to MAS500. I helped with the mapping of
data from the existing system to the new system and wrote conversion
programs, queries, and functions to take data from MAX and format it to
be loaded into MAS500. This conversion included migrating the existing
BTRIEVE database to several Access databases on the Novell server. The
Access databases were placed on a Windows 2003 server and queries were
performed to create tables with transaction data that could be exported
to text files and subsequently imported into MAS500 using MAS500 APIs.
I also downloaded data and placed it into a format that could be used
by a keystroke generator (macro) program in order to load data into
MAS500 that was not supported by an API. After the conversion I began
to write custom reports against the MAS500 MS SQL database.
June 2004 - December 2006
began to work on a project for a state department of transportation to
design and implement a system to replace the existing system used for
collecting licenses, fees, and taxes. The new system used the ACCPAC
General Ledger application on an Oracle database platform. I wrote
several Oracle triggers that enforced business rules, facilitated the
processing of credit cards, updated customer records and invoices when
a check was returned for insufficient funds, and provided a method for
performing modified cash accounting.
March 2004 - May 2004
corporate holding company was consolidating one of its divisions into
its corporate structure. I wrote programs to convert open purchase
orders from the division's JBA system to the corporate JD Edwards
system. This entailed using the JDE address book to cross-reference
division vendors, using the JDE item file, location file, and constant
file to pick up other necessary information. This conversion was
performed for several business units including a foreign business unit.
also converted a stand-alone system that inventoried artwork and
display samples used to exhibit and demonstrate products. This
entailed adding data elements to the JDE data dictionary, using
Software Versions Repository (SVR) to describe files, adding elements
to the JDE User Defined Code Types (UDC) table, and using JDE action
code authority to validate users. The TURNOVER software package was
used to track all objects associated with the system as they were
promoted from test to production.
for the conversion and validation of these systems were written in
Microsoft Word. These specifications included mapping documents,
program descriptions, file descriptions, and testing procedures.
Showcase queries and reports, SQL queries, and other AS/400 RPG reports
were developed to assist with system validation.
I was asked to serve on the Vatterott College Accounting with Data Processing (ADP) Advisory Committee.
February 2004 - June 2004
worked with a college on a project to consolidate individual ACCPAC
systems at remote campuses to a centralized ACCPAC system at corporate
headquarters. I customized several ACCPAC screens used in accounts
receivable, payables batch processing, and customer maintenance. The
customizations were written in VB and were used to limit the access of
data so only the campus to which the student was enrolled would be able
to see his information. A trigger was written in the ACCPAC SQL Server
database to place the account set in the description of adjustment
college purchased another school in Texas that used Excel to track
billing for each student. I wrote macros in VB to extract data from
these billing spreadsheets to create credit, debit, and cash
transactions to be entered into ACCPAC.
October 2003 - March 2004
worked on a project to automate the interfaces between the corporate
information system and an ACCPAC business system for a supplier of
windows and doors located in St. Louis, MO. This entailed developing a
system in VB.NET to read comma separated value files of proposal
information created by the Proposal Writer software package. The
proposals were loaded into a Microsoft SQL Server database for
subsequent acceptance and tracking. As proposals were accepted,
non-company parts would have ACCPAC purchase orders created for them.
Company parts would wait in the database to be acknowledged by the
corporate system. An interface was developed to read the corporate
acknowledgment file, match and accept the proposals, and send them to
the ACCPAC purchasing system.
also developed a system in VB.NET to handle accessory inventory. The
system would read a text file of advanced shipping notification (ASN)
information and create a database in SQL Server of accessory items.
These items would be received into the system and await subsequent
issue to a job site. A provision was also made to permit the items to
be sent to a third party for outside processing. Crystal Reports were
developed to track the items and to issue picking and packing tickets
third system was also developed in VB.NET to track sales for sales
people. It provided a means to set yearly sales goals for sales people
on a weekly basis, and then track the actual sales to the sales goal.
Profit margin dollars and percents were also tracked with the system.
in a four week program for the University of Phoenix and became
certified to teach in their Online program. I began to teach online
(WEB) classes for them.
developed a customer contact management system for a supply company
located in St. Louis, MO. The system provided the company the ability
to maintain customer information and follow-up information on its
customers. They have the ability to enter data on tabs that are used
to organize the information for the customer. There is a tab for call
logs that is used to track phone calls and visits to the customer
site. There is a customer profile tab that describes the customer's
business. There is a tab for comments about the customer, another one
that identifies the types of products the customer purchases, and
another that tracks competitive information.
March 5 - 7, 2003
Received training at Computer Associates in Plano, TX, to become a Visual Basic developer for the ACCPAC software product.
June 2001 - Present
consulting and programming services for a plastic molding company
located in St. Louis, MO. The company had converted its order system
from dBase to Visual Basic and Access and their programmer left. I
supported the system and provided enhancements to it. I developed
Crystal reports and automated several paper intensive functions such as
scheduling cards and standards review board forms. I also helped
during the relocation of the business with support for the network and
workstations. I migrated the software from VB 5 to VB 6 and the
database from Access 97 to Access 2000.
Passed the examination to become a certified VBA developer for the Great Plains Dynamics software product.
June 2000 - Present
on the implementation of Oracle and PledgeMaker for the World
Headquarters of a religious organization located in St. Louis, MO. I
was initially involved with converting data from several custom written
systems and DMAS running on an AS/400 computer and a S/36 computer. I
wrote programs to load data into batches for importing into Oracle
using SQL loader. I also loaded data directly into Oracle tables using
Microsoft Access queries with an ODBC connection.
the conversion effort was over I began to develop programs in PL/SQL,
SQL, Form Builder and Report builder to support, enhance, and interface
the two applications. I wrote programs to bring transactions into many
of the Oracle open interface tables such as GL, projects, inventory,
AP, and bank statements for reconciliation. I also wrote programs to
extract data from Oracle tables and place it into a format for
importing into other custom applications such as the Access system that
wrote database triggers, fine grain security predicate statements, and
developed procedures to send E-mail messages. I used a Gateway to gain
access to a SQL server database containing time clock information for
interfacing to Oracle. I also used database packages to send E-mail
using SMTP and to send E-mail with attachments using the OLE package to
interface to the local Outlook E-mail system. I wrote CL programs on
the AS/400 and shell scripts on the UNIX server to FTP files between
the two systems to keep inventory records reconciled.
October, 2002, I wrote a system that interfaces to the PrimeTime time
clock system. The system used an Oracle Gateway database to point to
the SQL server time clock database and the local Oracle database. The
system retrieved time clock punches from the SQL server and computed
the hours to be paid to the employee. It provided the ability to enter
holiday, vacation, sick, and extra pay into the system as well as to
maintain the amount of hours to be paid. Edit reports were written to
assist with data maintenance, and an export function was provided to
create transactions to be sent to Oracle payroll as well as the
existing payroll system running on the AS/400.
January, 2003, I began a project to automate the processing of monthly
allotment transactions for the Foreign Missions Department. This
allotment process is likened to a payroll for Foreign Missions. The
system needed to handle a monthly support amount (paycheck) as well as
provide the ability to handle other transactions such as housing
allowances, COLA adjustments, retirement payments, school allowances,
and deductions and additions to other projects or items such as Bible
Schools, libraries, car insurance, telephones, etc.
allotment process is performed on a monthly basis and there are about
1200 transactions that are created and sent each month. The
transactions are sent as invoices to Accounts Payables through the open
interface file and are imported into the Oracle system. They are then
processed and payments are made by check, by wire, and by electronics
funds transfers. Some of these transactions hit Oracle Projects, and
they are coded in such a way that W2 information may be generated from
them. The prior system took 3 people 5 days to perform the allotment
function, and the new system takes 3 people about a half day to perform
the allotment function. The new system also provides superior
October, 2003, I began a project to automate the Canadian Self
Employment tax payment calculation. Each month an estimated tax
payment needs to be made by the Canadian missionaries to the Canadian
government. Spreadsheets had been used to perform the function and
there was one spreadsheet for each missionary and spouse. Each year
all spreadsheets were modified to reflect changes in tax code
percentages and exemption amounts. The new system provided tables for
maintaining tax codes and forms for maintaining missionary tax
information. It provided a user interface to retrieve expenditures
from the projects tables that had tax implications, process them, and
create a PDF report file and an Excel spreadsheet that could be sent to
the Canadian representative to be used for filing the taxes and sending
the Self Employment tax payments to the Canadian government.
June 2004, I wrote an application to print registration badges. The
church was holding conferences throughout the United States and needed
a method to print registration badges at the remote locations.
Registration information was contained in an Oracle database located in
St. Louis, MO. A web application was developed to select records that
had not yet been printed and place them in a text file on the web
server. I wrote an application in Microsoft Access to print the
badges. The application provided the following features and
functions: accessed the web page to create the text file of
registrations to be printed; used FTP to transfer the text file from
the remote site to the local PC; imported the text file into an Access
table for printing; printed the badges in batches. The application
was parameter driven to support printing for various conferences, batch
sizes, file names, and file locations.
November, 2004, through December, 2004, I worked on a conversion of the
PledgeMaker software. This included modifying programs to use the new
batch tables, modifying triggers, modifying LockBox definitions and
procedures to use the new tables, and writing the user custom posting
routine for posting pledge transaction batches.
January 2000 - May 2000
consulting and programming services for a manufacturer of scales that
was located in Chicago, IL. I worked on a project to stabilize the
implementation of JD Edwards and its associated EDI transactions using
the Harbinger EDI translator. I provided mapping services and
programming services to enhance the functionality of JD Edwards and
satisfy customer requirements for orders, shipping transactions, and
invoices. I developed several SQL script utilities to move orders,
shipping notices, and invoices from one environment to another for
testing. I also documented the EDI order processing flow to facilitate
the testing process.
a two-week course in COBOL for a state government agency. The course
was aimed at new employees and was designed to give them a strong
foundation in the COBOL language as well as with sequential and indexed
files. They were also taught how to use Panvalet to submit JCL job
streams and to view and print their programs and output from within
November 1999 - December 1999
with the Foreign Missions Division of a religious organization located
in St. Louis, MO, to develop a system for printing certificates of
appreciation. Several certificate forms were developed containing
pictures, graphics, and text fields depending on the type of missionary
being supported. Each certificate was printed in its entirety on a
blank sheet of paper using a color laser printer. The system permitted
a user to select the group of certificates to be printed using various
selection criteria. During the print process, the certificates were
grouped by mailing address, the appropriate certificate type was
generated, and a mailing label was printed after the last certificate
for an address was processed. The certificates were stuffed into a
window envelop along with the label and were ready for mailing. The
new system greatly reduced the handling and costs associated with
printing 65,000 certificates.
September 1999 - October 1999
on the development of EDI 820 electronic funds transfers for a shipping
company located in Greenwich, CT. The funds transactions were
generated by JD Edwards in five operating environments. They were
placed in intermediate files and read by the Extol EDI package for
mapping to Citibank. There were four types of transaction sets that
were created based on the type of wire transfer that was being sent.
Data transmissions were all encrypted using a black box encryption
device. Passwords were required to validate all communications
sessions and were required to be changed every thirty days. I
developed maps, Extol custom conversion routines, and a system to
automate the changing of the password.
June 1999 - September 1999
on the implementation of Dynamics for a Chesterfield, MO, company that
refurbishes and repairs aircraft. I developed an interface from
Dynamics into their custom Work Order system that was written in
Microsoft Access. The interface added items to a work order as
purchase orders were entered into Dynamics. It also tracked parts that
were sent out to other vendors for repair (sublet parts) and updated
the Access Work Order system with the cost of these parts as they were
received. I also developed an interface from the Access Work Order
system to send invoices from Access to Dynamics by creating invoice
batches in Dynamics. The Dynamics interface and Access interface were
developed using Visual Basic and ODBC connectivity.
programming services for a window distribution company in St. Louis,
MO, to modify the processing of commissions by their Dynamics business
system. Dynamics supports Visual Basic for Applications (VBA) and I
enhanced the invoice creation process to generate commissions based on
customer requirements using VBA. I also wrote several Crystal Reports
August 1998 - June 1999
consulting and programming services for a Chicago, IL, manufacturer of
smoke detection devices. I performed mapping functions for EDI
transactions to upgrade trading partners to version 4010, a Y2K
compliant version of EDI. I modified JBA programs and custom written
programs to support release 3.5 of JBA. I also taught Visual Basic 6
courses for the Information Systems Department. I worked with a member
of the IT staff to develop an Excel function using VB commands to
generate a text file that would be used to generate an AS/400 Client
Access data entry macro to update a customer database. Monarch was
also used to format AS/400 print file data so it could be loaded into a
PC based system.
April 1998 - May 1999
and developed a Visual Basic 5 program for a grocery chain located in
St. Louis, MO, to interface a point of sale system into a General
Ledger system. The POS system created an ASCII text report file with
account totals that needed to be imported into the GL system. The VB
program used an Access database to hold configuration data for the
stores, data offsets into the report file for GL account names, and a
cross-reference table for converting POS account names to GL account
numbers. The POS system was replaced with a new version and the VB
program was updated to version 6 when modifications were made to it to
process the new text file report formats. The VB program used radio
buttons, command line parameters, and the printer object.
August 1997 - June 1998
consulting and programming services for a manufacturer of medical
devices located in St. Louis, MO, to develop a labeling system. The
system had to satisfy ISO 9000 and FDA requirements for labeling. The
system had to be able to access data in real-time from an AS/400 that
contained labeling information. The system read and maintained a
Microsoft Access label specification database residing on a Novell
network. It also provided drivers for three different printers: a
label printer only; a label printer that printed labels then applied
them to a box; and a label printer that printed on plastics bags that
were subsequently filled with product, heat sealed, and then cut. The
system was developed in Visual Basic 5. It used ODBC and RDA objects
to access data on the AS/400 and the Access database. Visual Basic
classes were developed to define label properties, field properties,
and printer drivers. Command line parameters were used to customize
each workstation at startup to select the appropriate printer type.
Collections were used to hold data internally that was needed to build
the printer commands. The MSCOMM control was used to write to the
serial printer devices. The system also had to download fonts and
bitmaps for each device type to properly print text and graphics on the
March 1997 - December 1998
consulting and programming services for the World Headquarters of a
religious organization located in St. Louis, MO. I served as a member
of a project team to evaluate hardware and software solutions for a
business system to run the ten diverse divisions of the church. I also
provided consulting and programming services for the Foreign Missions
Division to install a network and to develop a Microsoft Access
database that could be used to run its business. Data from the
church’s AS/400 would be uploaded daily to a PC in the Foreign Missions
department. I wrote a Visual Basic 5 program to upload the data. The
data would either be in an AS/400 report format or would be a fixed
width data file. An Access table was used to determine which
processing routine to execute based on the name of the AS/400 data
file. The Microsoft Jet Engine and its associated database objects
were used to connect the Access database to the VB application. SQL
statements were used to access the tables to insert, update, and delete
records. Visual Basic command line parameters were used to automate
the process and the user could click an icon on the desktop that
contained the appropriate configuration commands. A series of about 10
Crystal Reports were compiled and installed on user’s PCs to provide
the ability to access, sort, and filter the data. I also assisted
another programmer with Access macros and functions on this database
and several other Access databases that she had developed.
May 1995 - April 1997
design and programming services for an electrical equipment
manufacturer located in Fayetteville, NC, to develop an engineering
system for the Enclosed Control product line. The engineering portion
of the system was written on the PC in FoxPro for Windows and was used
to convert a smart catalog number consisting of over a million possible
combinations into a bill of material. This bill of material would be
printed for the shop and would be passed to the AS/400 for processing
as a MAPICS batch. Labels would also be created and passed to the
AS/400 for storage. When the labels for the order were requested, they
would be placed on an AS/400 shared folder. A Visual Basic 4 program
used a timer control to monitor the AS/400 shared folder for the
presence of labels, and would send them to the appropriate Weber
printer for printing. The Visual Basic program used INI files for
determining which forms were mounted in the four printers, and used
asynchronous processing to start a DOS batch file that was built by the
VB program to ultimately print the labels. This system won a corporate
award for its impact on the business process.
center had been built at the plant to handle quick turn-around
products. The mod center would assemble common generic products that
could easily be modified by the addition of lights, pushbuttons, or
meters. The Product Line Manager had developed an Excel spreadsheet
with a series of about 30 tables that could be used to determine which
catalog numbers fell into the mod category, which assembly would be
used as the base to modify, and what parts to use to create the end
product. I developed Excel macros using Visual Basic for Applications
to automate this process. The macros contained more than 2000 lines of
VB code. Each of the 1400 base assemblies had to be loaded into the
MAPICS product structure file on the AS/400. I developed another macro
using VBA to build a sequential file containing the transactions needed
to load the item master and product structure files.
August 1994 - April 1995
and developed AS/400 RPG programs to manage complaints for an
intraocular lens company located in Clearwater, FL. The system was
used to follow inquiries concerning products and to determine if the
inquiry was considered to be a complaint by FDA guidelines. If the
inquiry were considered to be a complaint, MDR reports would be
generated using information gathered from the inquiry. This system
also interfaced to a dBase system that tracked serial numbers and lots
to determine if a problem was an isolated case or may be related to an
entire lot. Monarch was used to extract data from the AS/400 to be
sent to the dBase system for review.
March 1994 - June 1999
consulting services for a microscope manufacturer to assist with
selecting hardware and software to run their business system. Also
assisted with the implementation of the business system, including
training, conversion program specification, and network support.
Continued to support the company by writing more than 150 Crystal
Reports to manage their business. Wrote several applications in Visual
Basic 3 to enhance their business system. These applications included
a system to cost their bills of material using data from the business
system, from an Excel worksheet, and from a FoxPro database; a system
to help them forecast using quantity projections contained in an Excel
spreadsheet that were massaged to match financial projections; a system
to help schedule manufacturing based on the availability of required
documents such as purchase orders, deposits, letters of credit, etc.
The Visual Basic programs used database objects to access BTRIEVE,
Microsoft Access, and FoxPro databases and used OLE automation to start
and access Excel applications and objects.
January 1994 - February 1995
Taught classes in Word, Excel, Visual Basic 3, and Visual Basic 4 at a community college.
August 1993 - April 1994
COBOL programs on an IBM mainframe for an electrical equipment
manufacturer in Muncie, Indiana, to receive EDI purchase orders (850
transactions). These transactions were used to build intermediate
files that loaded customer orders into a Dunn & Bradstreet business
system. Also wrote COBOL programs to build the intermediate invoice
files. Wrote reconciliation reports for the transaction sets using
August 1992 - September 1993
consulting services for an electrical equipment repair facility in
Pittsburgh, PA, to help them select hardware and software for
processing their business. Also wrote a disaster/recovery plan for
their network and arranged for off-site backup of their AS/400 system
August 1992 - September 1992
dBase programs for a company to track consignment inventory of
intraocular lenses. An issue of a lens from consignment inventory
would occur by wanding a bar-coded serial number. This would result in
an invoice being generated for the sale of the lens as well as a
replenishment order being issued for a replacement. These transactions
were transmitted to an AS/400 by modem for processing. Replenishment
order information was also transmitted to the dBase program by modem
and receipt processing occurred by reconciling the items received to
the electronic replenishment on a serial number basis.
November 1991 - September 1992
COBOL programs on a DEX VAX platform for an electrical equipment
manufacturer to accept EDI invoices (810 transactions). These
transactions were written to a VAX database for matching against
purchase orders and receivers and loaded into the accounts payable
system if they matched. Also wrote FoxPro programs on the DEC VAX to
interface the invoice information to the FoxPro shipping system.
February 1991 - October 1991
COBOL programs on a DEC VAX for a transformer manufacturer to accept
EDI purchase orders (850 transactions) and change orders (860
transactions). These transaction sets built data files that were input
to their order entry system for processing. Used SQL commands to
create views and procedures to produce reports and queries for users.
July 1990 - January 1991
course material and taught classes for a community College. Topics
included AS/400 command language (CL), Office/400, and RPG/400.
July 1990 - October 1991
Performed CAD drafting for an electrical manufacturer. Four drafters were employed to do electrical drawings.