Streamlining the MRO Procurement Process in Mfg/Pro
Joe Drouillard 
Principal/Consultant
Avenue Systems
(248) 894-7093
www.avenue-systems.com

A typical manufacturer will spend more time and more money procuring  MRO (Maintenance, Repair, and Operations) items than on component parts and raw materials.  Examples of these parts include tooling, machine repair, maintenance, office, and packaging materials. 
It is possible to greatly reduce the time and energy spent in this endeavor, even without modifying QAD source code. 

MRO  items are usually purchased with much hands-on tending in Mfg/Pro, even when using the blanket order and purchase request functionality.  But, it is possible to introduce task-reduction and automation  improvements throughout  the procurement process.    

First, lets reduce this process to its component steps, which are not limited strictly to Purchasing.  Each of these operations is prone to bottlenecks and errors.  And, all require incessant attention to avoid shortages, excess, shrinkage, and obsolescence. 


MRO Procurement Steps:  

Each of these can be automated with measurable benefits in Mfg/Pro.  I will propose a project to super-charge the above activities using several different system automation tools.  This project list, given below in more detail, will include:   

Why implement computerized Purchase Requests?  

A project list follows of programming and implementation milestones necessary to achieve the goal of MRO procurement automation.  These items are listed in the recommended order of implementation. 

Project List:  Streamlining MRO Purchases:  

  1. Many Mfg/Pro installations would benefit from a project to part number substantially more MRO items.  
    The purchase of non-part numbered "memo" items can be streamlined, but not totally automated.  You can only store a default supplier, price, location, and target inventory level for an item  if it has been part-numbered.

    Any items that are stored after purchase for later use, or are purchased on at least a semi-regular basis with the same manufacturer part-number, or are usually purchased from a predictable vendor at a constant price, should probably be part-numbered in Mfg/Pro.  

    Parts that are not stored in inventory,  are not purchased regularly, and are purchased from different vendors at varying prices, should probably not be item numbered.  See Note IV, below, for some tips on automating the addition of MRO items to the part master file.


  2. Implement a custom Purchase Request (P/R) entry screen using Mfg/Pro's P/R file structure. It should have the appearance of your printed P/R form, with lookup tools and editing to help the user find the correct supplier and part.  One important feature of this screen will be to encourage/enforce the use of the default supplier and price for part-numbered items. 

    Integrate into this screen a custom P/R approval process to meet the specific requirements of your company.  Perhaps, assign each requestor a main approver with one P/R limit, then backup approvers at higher limits.  Enforce daily and monthly limits for G/L accounts (or account groupings).  Limits can be further placed on projects with multiple purchases from many suppliers over an extended time span (E.g.: a marketing program, a new product launch, or a computer room upgrade). 

    The Mfg/Pro P/R data layout is single-line.  You can still develop a multi line form, however.  Just keep in mind that you are really generating multiple P/R records.  This is a limitation of Mfg/Pro.  

    Other features to consider:  a) Warn the user if there is already an open P/O or P/R line for the same item.  b)  For memo items, allow the user to select a supplier, and raise an error condition if the supplier is inactive (see Note II, below).   c)  Develop a text-based part lookup to help users search the item master for part-numbers, so users can easily find the correct item.  Also, a text-based memo-item lookup, searching through recent P/Os to find the most recent supplier and price.


  3. Write a load utility to automate the transfer of P/Rs to P/O lines. This will be run daily in Purchasing.  In standard Mfg/Pro, you must add P/R lines one at a time to a P/O.  But, it is a relatively simple programming task to batch load all approved P/R lines to P/Os, one P/O per supplier.  This can be done using Progress input redirection in a shell program. See Note I, below.  I highly recommended that you not use custom programs to directly create P/O lines or headers.    Benefits:  tremendous time savings in Purchasing, and a reduction in the total procurement time.

    In this way P/Rs from different requestors will be combined into a single P/O for each supplier on a daily basis.  However, each P/O line will retain information from the original P/R, such as the requestor and approver IDs, remarks, taxable status, etc.    If the user enters a zero price on a memo item, this program should send it to the P/O with a comment asking the supplier for a price quote and returned approval before shipping.   


  4. Write a load utility for Purchasing to run daily to automatically create P/R lines for frequent suppliers, based on qty-available and min and max inventory targets.  See Note II, below for ideas on how to designate which suppliers are in this category, and how to specify what day or days of the week to generate P/Rs for each supplier.  All parts with a frequent supplier listed as the default supplier on the part master will be candidates for automatic P/R generation. Use the item master inventory min and max fields to replenish up to the maximum level once the inventory on-hand has been reduced to below the minimum level.  So, if there is more than the minimum currently on-hand, a new P/R will not be generated.

    This will make replenishing these items a hands-off task, with great time savings in the requesting departments, and in Purchasing.   No manual P/R or P/O will be required for these items!

    As a further improvement, consider creating a custom P/O printout for these items, in order to give more background information to your frequent suppliers, perhaps showing them the current quantity on-hand and recent usage.  

  5. Longer term objectives for Purchasing:  Reduce inventory "max" levels, to allow for the reduction of inventory.  Raise the "min" levels, to trigger more frequent supplier shipments. Work with suppliers who are willing to always make "ship complete" shipments (see 9, below).  Also, request that shipping charges be included in pricing, to speed A/P processing of invoices.  Eventually, you may wish to implement payment on receipt, eliminating the processing of invoices for these suppliers altogether.  Increasingly, you will add more items to these high-volume, high-quality suppliers.  You should be rewarded by better service and pricing.


  6. Enable your Purchase Order print program to send the P/Os via e-mail or fax, based on each supplier's preference.  This will result in a time savings because Purchasing will no longer need to dedicate so much time to feeding the fax machine.  See Note III, below, for a few thoughts on enabling e-mails and faxes out of Mfg/Pro, even without any specialized hardware or software.


  7. When a P/R is generated, create an automated e-mail to notify the approver.  This will speed up approvals, and shorten total purchase time.
     

  8. Create a function which automatically E-mails P/R requestors when parts are received.   Receiving will run this function throughout the day as receipts are completed to notify users that their purchased parts are available.  This will speed up the delivery of parts, and help eliminate parts delivered to the wrong individual or department.


  9. "Ship Complete" suppliers' receipts can be fully automated.   Receiving will process the receipt using the existing Mfg/Pro "receive entire P/O" option in the receiving function.  Benefit:  Faster receipts -  with no need to enter all items on the packing list into the system.  


  10. Bar code label incoming items as part of the receiving function.  Implement bar code scanning for inventory issues of MRO items out of the tool crib and office supplies cabinet, etc.  

    Create a custom program to print bar code labels for inventoried items on a receipt.  Attaching a label to each item or carton will verify the correctness of the receipt, and will enable the benefits of bar code scanning of inventory issues. 

    Create a custom shell program to scan bar-codes through Unplanned Issues screen (see Note I, below) to reduce inventory as parts are issued from the tool crib or office supplies area. Then, develop a manual procedure where bar codes are removed and placed in a box as parts are taken.  On a daily basis, the labels can be retrieved from the box, then scanned into this custom function using an inexpensive "wedge" scanner at an Mfg/Pro terminal/PC.  

    In my opinion, it is much easier (and more likely) for a user to remove a label and toss it into a box than any alternative, such as filling out a form, or scanning or entering the data directly into the computer.   The bottom line is that a simple bar coding solution can help you achieve very accurate inventories, at a low cost. 

By working through this project plan, you should be able to reduce manual P/O preparation hours dramatically, while improving many other processes important for the smooth operation of your business.  Employees requesting purchases will spend less time fussing with paperwork, and guessing when parts are received.  An ever-increasing number of items will not even require direct user involvement in the procurement process!

Please feel free to contact me if you have any questions or additional ideas for me to consider posting here. My e-mail address is jad@avenue-systems.com, and my web page is www.avenue-systems.com.


Notes: 

  1. Input Redirection Using a Shell Program.  This is a commonly used mechanism of giving an Mfg/Pro module a custom front end, without modification or access to source code.  A custom program, often with fewer than 200 lines, obtains input from a file or process, and feeds the information "through" the standard Mfg/Pro screen.   Therefore, the data gets all of the same data editing and multi-file updates as if it had all been keyed by a user into the Mfg/Pro screen.  This is similar to using the CIM interface utility provided by QAD, but offers the flexibility of user submission with immediate error reporting, and the update of user fields in the target file.   

  2. Inactivating Suppliers/Supplemental Supplier Information.   Mfg/Pro does not offer a mechanism of inactivating suppliers. Storing supplier active/inactive status and other supplemental data about each supplier can be done in a custom screen/table.  Supplemental data might also include e-mail/fax information, frequent  supplier status, and "ship complete" status, and for frequent suppliers, which days of the week to automate the creation of P/Rs, and transfer of P/Rs to P/Os.  

    This information can then be used in the P/R process.  For instance, a "lookup" function in the supplier-id field of the P/R screen could display a warning that an inactive supplier had been chosen, and approval of the P/R would not be allowed until the supplier was activated by Purchasing.

    This data can also be loaded to P/O user fields as part of the P/R to P/O load (see project item 3, and Note I, above) after which it can be included in custom reports.

  3. E-mail and Fax-Enabling Mfg/Pro.  

    It is fairly easy to e-mail and fax from Mfg/Pro.  And, it can often be done without any additional software or hardware.  E.g.: in one run you could e-mail and fax all P/Os for suppliers who desire e-mail or fax transmission.    Here is a fast tip to get you started.   It all begins with using  the existing e-mail services already available (although, perhaps dormant) on your Mfg/Pro platform.  If you are running Mfg/Pro on a UNIX box, you might not even be aware that it has e-mail capabilities, but it almost certainly does.  If you are running Mfg/Pro in a Windows environment, you may be able to use your normal e-mail program.

    First, experiment with whatever e-mail facility is available on the same platform as Mfg/Pro, to send an e-mail from the command line.  In UNIX, this would often be the "mailx" command, from the system prompt.  It may take some UNIX system management to enable this command.  In Windows, see if your e-mail facility will let you send a simple e-mail from the DOS prompt.  This may take a little digging, or you may need to find some low-budget or free software to enable this simple operation.   Your goal is to be able to send a simple e-mail to yourself from the command line with the message body from a simple text file.  Once this is working, you are half-way (or more) there.

    Next, develop a simple maintenance screen to store e-mail addresses in a file accessible by Mfg/Pro.  Normally, I use the usrw_wkfl, using one field for the supplier, customer, or employee-id, another field for type (customer, supplier, etc.), and a third for the actual e-mail address.  (This will work for faxes, too, but first get it working for e-mail alone.).  

    Then, when in a program where e-mail is to be sent, the text message or report (perhaps a single or multi-page P/O) is stored in a text file, using the " output to" command.   Then, the appropriate system command (often "mailx" in UNIX environments) is called using the required syntax with the text/report file name and recipient's e-mail address.   This is done iteratively in the program until all messages (say, a P/O to every supplier receiving one that day) have been sent.  Naturally, if the supplier has no e-mail address, then it is assumed that the supplier is not set up for e-mail, and that P/O is bypassed.  Source code for most Mfg/Pro report programs (including the P/O print), are available even if you haven't purchased source code.  Make an internal "xx" prefixed program copy.  Include the alterations above, then place it in the menu. 

    Faxing:
    Once e-mails are working, faxing can be implemented using an e-mail fax server.  This is done by e-mailing the fax server the text message, with the fax number sent as part of the e-mail address.  The format of the e-mail address will be specified by the particular fax server you have chosen.  But, it will always contain the destination fax number.   

    Fax servers can be installed internally on your company network.  But, it is often more economical to use an external fax service company.  These typically have low setup charges, fast implementation, and low pre-minute phone charges.  There is often no need for additional hardware and software, since you simply e-mail  the fax data to the external fax service.  Here is a sample e-mail destination, when using a fax service:  
      
                        fax:248-669-1234@faxservice.com

    In the above example, "248-669-1234" is the ultimate recipient's fax phone number, and "faxservice.com" is the e-mail server of the fax service (internal or external) that you are using. This is e-mailed to the fax service, which then faxes the document to the ultimate recipient. The P/O  or other text message is put in the body of the fax.  The fax topic is put into the e-mail topic field.  There is also normally a way to receive an e-mail notification of faxes sent with status and time received.

    Here is a good Yahoo link to help you find and compare fax service companies:   Business and Economy > Business to Business > Corporate Services > Administrative Support > , then select Fax Services.   Most also offer the ability to receive faxes through e-mail, and fax broadcasting.

  4. Automating the Creation of MRO Parts:  Many Mfg/Pro installations would benefit from a project to item number substantially more MRO parts.  To accomplish this with less manual effort, create a simplified entry screen for Purchasing/Materials to enter new part number candidates, with the minimal information usually supplied for non-production supplies (part-number, product-line, description, price, min, max, etc.).  These new parts should not be loaded directly to the Mfg/Pro part master, but instead should be loaded to a work file.  Create a report to display open candidates.  Finally, create an automated function to load candidates through the part-master maintenance program. Use redirected input processing in a "shell" program (see Note I, above) to be assured of the same editing and file updates, as if these parts had been entered manually into the Mfg/Pro part maintenance screens.  This function will be run by Accounting or Engineering (whoever is responsible for part additions to the database), after review and approval of the MRO part candidates. 



e-mail:  jad@avenue-systems.com
web-site:  avenue-systems.com

 

    "QAD Inc.", "QAD", and "MFG/PRO" are trademarks and/or service marks of QAD. Unless otherwise noted on the Site, all other trademarks, service marks, and logos used in this Site are the trademarks, service marks or logos of their respective owners.
Copyright Joseph A. Drouillard, 2002.  All rights reserved.