INFINITE BUCKET MRP MODULE

IB-MRP Infinite Bucket Menu

16.3.1 Overview

16.3.2 Activating pc/MRP's Infinite Bucket MRP Module

16.3.3 Generating MRP Action Items

IB-MRP Menu

16.3.4 Print/Display Action Item Reports

IB-MRP Menu

16.3.5 Automatically create purchase orders

IB-MRP Example Report
pc/MRP IB-MRP Create Purchase Order Options Screen

16.3.6 Trouble Shooting The Infinite Bucket Module

16.3.7 Infinite Bucket Pseudo Code

      Creates copys of partmast, sales, bom, and stockroom dbf files named
        mrpart, mrpso, mrpbom, and mrpstk respectively.
      If include sales quotes is checked (6.84A)
        Creates a copy of quote.dbf named mrpquo 
      Creates a blank ACTION.DBF file which will store action item records 
        such as: ONHAND, PO, BUY, ISSUE, and MAKE
      Creates a blank AVAIL.DBF file to store ONHAND and POs and the dates
        the parts will be available on.
      Removes deleted mrppart records and records with invalid part_assy fields
      Totals the total onhand qty of each part for every area selected
      Replaces ordqtys with maxqtys - minqtys for ordqtys = 0 (6.80a) 
      Replaces all ORDQTY with 0 for ORDQTY is less than 0
      Replaces all negative onhand qtys with 0
      Replaces all negative min qtys with 0
      Removes mrpbom records with invalid part numbers
      Changes A type partnumbers not found in mrpbom to P and creates error msg
      Removes all deleted, closed and invalid records from mrpso.dbf
      If sales orders were not to be included
        Removes sales orders from mrpso
      If work orders were not to be included
        Removes work orders from mrpso
      If include sales quotes checked (6.84A)
        Removes all deleted, closed, and invalid records from mrpquo.dbf
        Qtyreq = qtyreq x probability (stored in qtyassembled field)
        Appends valid sales quote records into mrpso.dbf
      Removes all deleted, closed and invalid records from mrppo.dbf
      Zeros out on order qtys in mrppart.dbf
      Replaces on order qtys in mrppart with totals from mrppo.dbf
      If Incl WIP not selected, removes all mrpstock transactions except shortages
      Enters ONHAND records into action.dbf and avail.dbf
        with an action starting and ending date of 00/00/0000
      Enters open PO records into action.dbf and avail.dbf with
        dlrydate being the ending date and the date avail (6.80R,6.82L or higher) 
      If Incl WIP not selected
        Allocates completed finished assys for sales orders from avail.dbf 
      Allocates minqtys from avail.dbf
      If there was not sufficient qty in avail 
        If it is an assy and you did not select work orders only  (6.80h)
          Reduce the qty required by the qty created by open work orders
          If qty required is still greater than 0
            Enter Make record into action.dbf with review = Y
        Else it is a part or you are running work orders only
          If it is not an assy
            Enter a BUY record into action.dbf and allocate that qty 
      Processes each open sales and work order (in date required order) as follows:
        MMAKEQTY = ORQTYREQ - QTYASSM
        MSALEQTY = ORQTYREQ - QTYSHIP
        If reqdate is less than todays date review = Y
        If MSALEQTY is greater than 0 and not a work order
          Enters SALE record into action.dbf
        If incl WIP selected MREQQTY = MSALEQTY, else  MREQQTY = MMAKEQTY
        If sales/work order has been issued to mfg and Incl WIP not selected
          If MPART_ASSY = 'A' AND MMAKEQTY is greater than 0
            Enter a MAKE record into action.dbf
            IF it is a consumable work order (6.90A)
              Enter a Avail record into the avail.dbf
          If were any shortages when issued
            use avail.dbf
            If parts or assys are available
              Allocate those parts in the avail.dbf
              Enter an ISSUE record in action.dbf 
              If availdate is less than reqdate review = 'Y' (6.80h)
            If there are none or not enough
              If the required date is less than todays date
                mreview = 'Y'
                Case it is a part
                   If it can not arrive in time for start of final assy
                      mreview = 'Y'
                   Else
                      mreview = 'S' (7.01AA,7.03T,7.06D,7.43E)
                   Enter a BUY record into action.dbf
                   Enter an ISSUE record into action.dbf
                Case it is an assembly (6.89A)
                   Enter a MAKE record into action.dbf
                   Call getassy prg with partnumber, required qty, required date
        Else (the sales/work order has not been issued to mfg)
          Use avail.dbf to see if the part or assy is avail
          If it is available (and it is not a work order, 6.90A)
            Allocate the parts in the avail.dbf
          If there were none or not enough
            If the required date is less than todays date
              mreview = 'Y'
            Case it is a part
              Enter a BUY record into the avail.dbf
              Enter an ISSUE record into the action.dbf
              If availdate is less than reqdate review = 'Y' (6.80h)
            Case it is an assy
              Enter a MAKE record into the action.dbf
              If it is a consumable work order (6.90A)
                 Enter a MAKE record into avail.dbf
              CALL GETASSY program with partnumber,reqqty,date
            Case it is a labor part record
                 Enter a labor record into action.dbf 
      Go to the next sales record and continue looping until finished.
      Total and Replace Quantity Available field in partmast.dbf by 
      calculating (ONHAND + PO - ISSUE - SALE - MINQTY) action item qtys for each part 
      
      PROCEDURE GETASSY
      Use mrpbom.dbf file to find the BOM
      Use avail.dbf to see if the part or subassy is available
      If it is available
        Allocate the parts in the avail.dbf
        Enter an ISSUE record into action.dbf
        If availdate is less than reqdate review = 'Y'  (6.80h)
      If there were none or not enough
        If the required date is less than todays date
          mreview = 'Y'
        Case it is a part
          Enter a BUY record into the avail.dbf
          Enter an ISSUE record into the action.dbf
        Case it is an assy
          Enter a MAKE record into the action.dbf
          CALL a program named GETASSY with the partnumber,reqqty,date
      Loop through the bom until done
    
      PROCEDURE ENTERACT
      Case it is a BUY record and ordqty greater than actqty  (6.80a)
        Enter a BUY record into avail.dbf for the excess with allocated = 0
      Case it is a BUY record and order multiple qty is greater than 0 (6.87B)
        Enter a BUY record into avail.dbf for the excess with allocated = 0
      Enter a record into action.dbf
        If it is a BUY record  (6.80a)
          IF ordqty > actqty
            use ordqty
          ELSE
            use actqty
        Else 
            use actqty
        
    

16.3.8 Automatically scheduling MRP runs with pc/MRP's plug in