Serving the Greater St. Louis Metropolitan Area
S & S Systems Consultants, Inc. - Services Detail
Return to Home Page Get to Know Us Learn about our Services and Skills View our Special Recognition Awards Contact Us Review our Privacy Policy

All Projects

February 2019 - December 2019

A manufacturer of medical equipment for the dental industry had a system to provide quotes for reps that had been developed in Microsoft Access. Manufacturer's reps sold the products and would log on to the company's server using remote desktop connection to enter quotes. A new line of cabinets was being developed and the quote system needed to be updated so the new cabinets could be quoted. I worked with the technical team to develop the logic to use to pick the parts to generate a quote for the cabinets being ordered. The new version of the quote program provided for images of the cabinets as well as removing and adding options to the quote process.

November 2017 - March 2018

A manufacturer of jewelry had a custom developed system in Microsoft Access for order processing and other business functions. It used manufacturer's reps to sell its product to customers. Each customer has a display of jewelry designed especially for him and the reps would visit the customers to replenish the display. The replenishment orders were called in or faxed in and customer service personnel would hand key the replenishment orders into the order entry system. The manufacturer wanted a web based application to be developed to permit the reps to enter replenishment orders online and then have a facility to upload the replenishment orders into the order entry system. I developed the web application in ASP.NET to permit the reps to enter replenishment orders based on the items in the customer display case. The replenishment orders were stored in a SQL server database. I wrote an application to export the replenishment orders each day into a file that could be imported into the order entry system. The order entry system was developed in Microsoft Access and I developed an Access macro to import the replenishment orders into the order entry system.


After this task was completed, the manufacturer wanted to be able to show its product catalog online. I developed a web application that would permit a rep to bring up pictures of all the styles in the product catalog. The rep could also request pictures of subsets of the styles such as ladies rings or men's rings.

November 2016 - August 2017

A manufacturer of surgical instruments had a system that tracked special and custom orders for its line of instruments. The tracking system was written in dBASE and ran in a DOS environment. I was contracted to review the system and to convert its functionality to an Access program application using the Access database system. Access reports were developed to provide management with visibility into the system.

September 2015 - December 2015

A reseller of Sage Accpac received a contract to upgrade a state agency to a new version of Sage Accpac. I contracted with the reseller to convert several .NET program customizations in the GL module to use the new controls in the upgraded Sage Accpac system. The database engine was Oracle.

September 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 re-sent. 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 Winshuttle.

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 SQL table.

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.


After the implementation of SAP, more trading partners were added. Over the next 3 years it grew from 6 trading partners to 56 trading partners. The new trading partners had requirements for additional transactions such as 846 inventory advice transactions, 753 request for routing transactions and 754 routing instruction transactions. These transactions required maintenance programs to be developed for supporting tables.


In early 2020, an acquisition was made that required the development of grocery transactions: 875 PO transaction and 880 invoice transaction. I developed the .NET programs to process these transactions.

September 2014 - May 2015

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 implemented.

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 PITTSCON. 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.

February 2012

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.

May 2011

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

A 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 interface tables.

April 2009 - May 2009

I 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

A 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.

January 2009

A 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.

January 2009

I 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

A 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.

November 2008

I 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

An 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.

October 2008

A 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.

July 2008

I 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

A 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 printing history.

January 2008 - June 2008

A 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.

In 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

A 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

A 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

A 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.

July 2007

An 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

A 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

I 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.

March 2006

I 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

A 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

A 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

A 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

I 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

I 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

A 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.

I 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.

Specifications 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.

March 2004

I was asked to serve on the Vatterott College Accounting with Data Processing (ADP) Advisory Committee.

February 2004 - June 2004

I 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 batches.

The 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

I 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.

I 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 for them.

A 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.

August 2003

Participated 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.

March 2003

I 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 - July 2006

Provided 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.

January 2001

Passed the examination to become a certified VBA developer for the Great Plains Dynamics software product.

June 2000 - December 2004

Worked 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.

After 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 printed certificates.

I wrote database triggers, fine grain security predicate statements, and developed procedures to send email 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 email using SMTP and to send email with attachments using the OLE package to interface to the local Outlook email 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.

In 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.

In 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.

The 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 reporting capabilities.

In 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.

In 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.

From 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

Provided 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.

December 1999

Taught 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 Panvalet.

November 1999 - December 1999

Worked 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

Worked 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

Worked 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.

December 1998

Provided 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 for management.

August 1998 - June 1999

Provided 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

Designed 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

Provided 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 labels.

March 1997 - December 1998

Provided 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

Provided 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.

A modification 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

Designed 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

Provided 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

Wrote COBOL programs on an IBM mainframe for an electrical equipment manufacturer in Muncie, IN, 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 EASYTRIEVE.

August 1992 - September 1993

Provided 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 backups.

August 1992 - September 1992

Wrote 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

Wrote 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

Wrote 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

Wrote 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.

Get to Know Us Contact Us Review our Privacy Policy