Hi all,
Based on my client’s own needs for enhancement from the manufacturing module and each of your inputs, I am cautiously optimistic I have capture most of the community’s requirements of the manufacturing module. Where I have not, please do let me know and I will add it in.
Here’s the first cut:
Track Manufacturing Workflows
Prioritization Engine, Prioritizes Production Orders based on:
Sales Orders
Payment Terms
Profitability
Different Production Orders may have different prioritization parameters
Manual Overides of Production Plans
Bill of Material captures the Manufacturing Work Flow from the first Raw Material that is used to the finished goods.
The BoM captures the production work flows and should be suitable for all types of manufacturing:
Repetitive
Discrete
Job Shop
Process (Continuous)
Process (Batch)
Within Job Shop, the Manufacturing Module should cater to both scenarios where the Manufactured Material moves through immovable machines or where the machines are brought to a workstation (for instance grinding machines, Welding machines, etc.) to work on the material being manufactured.
The Bill of Materials captures clearly:
The Operations that need to be performed, the workstation at which they need to be performed, the raw material required (as against the current BoM where all raw material is listed together and without context to the workstation where that raw material is “consumed”), this proposal suggests modification of the BoM to list down the raw material that is necessary at each Workstation.
A Workstation could be a workstation operated by the company in the same location, or it could be a workstation operated by the company in another (branch/factory) location or it could be a workstation operated by a sub contractor. The move times between workstations will be captured in a workstation matrix. Where a subcontracting operation is used, the minimum batch quantity needs to be specified. The UoM could change at this stage. For instance a factory producing automobile components generally uses Units or Nos for inhouse manufacturing. However for,say Heat Treatment, multiple components get aggregated and sent in KGs. The Unit Net Weight feature on ERPNext should come in handy in these types of situations.
Machine Class:
A machine class needs to be picked at each workstation. A machine class is like a Lathe, or a Drilling Machine, Or a Grinding Machine. All machines that require similar operator skills are grouped under a single machine class. In other words, if an operator is able to work on one machine in a machine class, s/he should be able to work on any machine in that class.
The Machine Class gets mapped with the Operator Skills that are required.
Machine:
Each Machine Class comprises of individual machines. Here the machines are grouped by Manufacturer and Model, so that the maintenance, the tools required, the set up and the set down procedures are the same.
The Electricity, Consumables, Rent and AMC costs for each machine is captured.
As a Machine Class is selected in the BoM, all Machine possibilities are listed and the Set Up Time, the Manufacturing Time, the Set Down Time, Special Tools and Fixtures that are required needs to be captured in the Bill of Materials
Operator Skills Mapping captures the skills of the Operators against each machine class. The Labor Cost of each Operator is also captured and the extra cost of overtime is captured either as per regulatory requirements or for each operator.
All machines and operators are mapped on the calendar. The calendar receives inputs from the Holiday List and the Active Shift Documents to flag off active and inactive time slots on the calendar.
Labor law requirements of Operators being on shift is taken into account through the Work Hours restrictions document.
PPC is done at two stages:
Central PPC decides on the priorities of the Production Orders that need to be worked upon for a given week (or planning horizon).
The Production Supervisors decide on the loading of individual jobs and operators on the machines.
The Manufacturing Module consists of a Scheduling Engine that schedules the various jobs for manufacture on the various Machines and uses the appropriate operators. The module is capable of generating the Weekly production plan and the weekly operator requirements.
Each day, based on dynamics of Operator Availability and Machine availability, the module is able to suggest the optimal manufacturing schedule for that day, keeping alignment with the Weekly Priorities set by the Central PPC department.
The actual production is captured as production progresses depending upon the organization’s requirements (every hour, two hours, four hours, end of shift)
Once a day a material movement list is published by the module, which lists the raw materials and the special tools and fixtures that need to be delivered to different workstations so that production can proceed unhindered the next day. ‘
The Module should generate a Job Route card for the material that is being produced. This Job Route Card tags along with the material being produced and captures various information. The Job Route Card also clearly indicates whether ERPNext needs to be updated after the completion of
a particular operation (this information is captured in the BoM)
As the Material is manufactured, the Job Route card captures all the necessary information that is required and the Job Route Card indicates when ERPNext needs to be updated. All necessary information from the Job Route card will be keyed into ERPNext.
Configuration Settings can set globally:
- The Frequency of the Material Movement List
- The Frequency with which finished components at a workstation as sent to the next
process - The Move Times and the Wait Before Move Times
As the material is manufactured, the cost of manufacturing is captured that includes the cost of raw material, labor cost (based on either actual cost of the operator that has worked on the operation or the weighted average cost of labor for that operation.
For each machine the Set Up Time, Run Time, Idle Time (During active days and shifts) and the inactive times is captured based on the entries that are made into ERPNext. Breakdowns and Preventive Maintenance schedules are also captured for analysis.
Similarly for each operator the idle and productive time is captured. These entries compute the amount due to each operator (where operators are paid per hour)
Each Immovable Machine and a Work Station (Job Shop) should be treated as a warehouse
and it should be possible to view whether a particular operation can be carried out based on availability of raw material, components; operator; special tools and fixtures
In a Job Shop type scenario, it should be possible:
- Where a Bom Exists, to just make a finished goods entry that will use the BoM to “consume” the raw material and components.
- Where no BoM exists, and as a manufacturing entry is passed, the operator should
be given the option to create a BoM for the manufactured item with the raw materials that has been dropped into this workstation
Finished Product needs different UoM to be supported.
I have attempted to illustrate this through this complex worksheet I am attaching. This worksheet is still work in progress and I am hoping the community will pick individual components of this worksheet and make it more comprehensive and complete for the system analysts to be able to base their development plans on.
https://drive.google.com/open?id=0B2gwz5r3hcRIWlVKRkNiR0pUSDg
In addition there is the offline Manufacturing/Retail Module, that ensures that a Manufacturing Plant or a Retail Location can continue its operations even if there are disruptions to the Internet Access in that location. This is important for emerging markets that do not have good internet access in remote locations. Here’s the requirement:
Primary Install of ERPNext - ERPNext Hosted or AWS or whatever - Primary Server
Secondary Server at the factory/retail location - Company etc. is the same as the primary server;
The users, Warehouses and stocks at the Factory Location also get reflected on the Primary server
A user at the Primary server will try to complete a transaction. If the transaction is related to the Factory/retail location .AND. the connection is up, the transaction can be completed by the user. If the transaction is related to the Factory/retail location .AND, the connection is down, user gets an error saying link is down and s/he cannot complete the transaction
A user at the factory/retail location will try to complete a transaction. If the transaction is not related to the factory .AND. the connection is up, the transaction can be completed by the user. If the transaction is related to the Factory/retail location .AND, the connection is down, user can still complete the transaction
A Primary Server can have multiple secondary servers and if the access rights are permitted, one user related to a secondary server should be able to carry out a transaction at another secondary server or at any of the servers.