Pull SubAssembly from stock if in stock, else manufacture

Hello all,

We manufacture all our product right now. We have Finished Goods on top level of the manufactured goods. Under Finished Good, we have SubAssemblies which we use in operations(I don’t know if that’s the correct phrasing). And under SubAssemblies we have Raw Materials.

For example, I have a Product FPO150-Boxed which is made of 2 SubAssemblies, S001-002 and S006-001.

Is there a way I can setup our manufacturing so that if we have subassembly S001-002 in stock, inventory stock is used before attempting to build the subassembly from raw materials? In addition I will need the second sub(S006-001) to be built all the time.

I’ve tried adjusting S001-002 quantity but Mass issue to manufacturing does not use the subassembly in stock, instead it uses raw materials to build it anyway. Should I be setting my subassemblies up as Stock? Would that stop it from being manufactured?

Thank you all in advance!

This is how the part maintenance looks like:

This is what the Method looks like:

The Non-Stock flag is tricky to explain. Read the help for that field.

If a mfg’d part is ‘Non-Stock’, it means that you prefer not to stock it, that you’ll make it as needed. But it can be stocked. You probably want this cleared.

Also of importance in the BOM for top level is whether the two subs assemblies are marked as Pull as Assembly, or not.

And the answer to your first question is, yes. We have a subassembly that we stock and make separate jobs to fulfill stock. And the final assy only ever pulls the sub-assy from stock.

BTW- 12A at 12V is only 144 W :wink:

1 Like

Hello Calvin,

Thanks for helping me out once more, you are amazing!

I’ve been trying to understand everything you mentioned and I think I kind of understand what you mean, but not totally.
So I looked at the BOM top level and seen that the SubAssemblies are set as Pull as Subassembly and View as SubAssembly. Here is how it looks:

I also read application help explanation of what these mean but that kinda confused me further. What I understood was that our current setup, Pull As Assembly, means manufacture the subassembly without checking stock. Is that correct?

Would I also need to check this box in Part Maintenance for the subassembly?

P.S: We got great savings on power supplies, 150 Watt for the price of 144 Watt :slight_smile:

So I’ve tried our regular process but this time with Pull as assembly unchecked but it still issued raw materials from Mass Issue to mfg.

Would someone need to use pull from stock so that it gets pulled from stock? Is there a way that requires no human touch?(Employees here get discouraged if things require reading and clicking things :man_facepalming:):

That circled part in the second pict has to do with satisfying demand for the finished part.

When I get in the office tomorrow, I’ll post some screen shots of a top level BOM that uses stocked sub-assy’s. And what ever settings they have on the Part master.

1 Like

So I think you are looking for something that everyone thinks should be easy enough, but most erp doesn’t do. Basically, if you have parts that you for the most part want to make on the job with everything else, but sometimes(key word) you happen to have some extras laying around that you want to use up instead of making new ones. You want the system to automatically see that and call to use them instead of make new ones. It can’t/won’t do that out of the box. The way to manually do it , is the change the field on the job called “pull quantity” to what you want to pull from inventory. But you have to make something to look for those cases. When building a job, the system will not do it automatically. After you change the pull qty, it will change the lower lever requirements, and you use the issue assembly screen to issue them to the job.

Note: if I’m wrong and there is a way to do that automatically, someone please speak up. This would really help us out.

1 Like

I agree with Brandon. The system will not automatically pull the PartNo from where it is available. It will pull the PartNo based on how the job is setup to pull the PartNo. The Job will default to pull the PartNo based on the method, but can be changed when needed.

We also think it should be easy enough for Epicor to do automatically, but it doesn’t :frowning:



One way I have addressed this at a client was to put a BPM in place on the job being released. The BPM checked for those part listed as make direct, but there was a quantity on hand and presented the user with a popup message of the part available. Then the user/scheduler could determine if they wanted to change that job material over to pull from inventory.

Jim Rogers

1 Like

I took the OP to mean that they always wanted to make and stock the sub. And the sub was always to come from stock.

If that’s the case…

  1. Setup Sub Assy Part with
    a. Type = MFG
    b. Qty Bearing = TRUE
    c. Non-Stock = FALSE
  2. Parent Part
    a. Type = MFG
  3. Parent BOM
    a. Pull as Assy, Plan as Assy, and View as Assy all = FALSE

Thank you all for your replies!

@ckrusen Actually, I meant it in a way that we make it for the job as needed. So for high volume product we plan on out sourcing the subassembly production and bring the subassembly stock in inventory by PO purchase to inventory. So we won’t be pulling it from inventory everytime, just until the stock of that subassembly goes to zero, only then we want Epicor to issue the raw materials attached to that subassembly. I know it’s a bit confusing I’m sorry if I wasn’t clear.

@Banderson So if I make production qty zero and pull from stock qty the amount I need, would it still issue the raw materials attached to that subassembly(the one from stock) if I use Mass Issue to Mfg, which I would need to use for the other subs that we will use to finish the good(box, label etc.)?

@WildERP So this BPM would always do the check right? Even though this is the hardest way I would wanna avoid, it seems like it’s what needs to be done. So if pull from inventory is selected, does the part transaction happen as soon as the job is released? or would it still require Mass issue to mfg?

Can the sub Assy’s S001-002 and S006-001, be made “inline” when making part FPO150-Boxed ? Meaning if the person making the FPO part is given the materials for the sub assy’s can the just create them right there - as opposed to it being an assembly that would be done requiring different people/tools etc…?

It looks like the FPO part is “just” the assembled S001-002, tested and then put in a box.

If S001-002 is built using different resources than the FPO level, you would want to have the system generate a separate job to build the S001-002 assembly. Then the Job for the FPO part could pull from Stock (replenished from either other jobs, or purchased), or from the related job.

If the S001-002 can built using the resources that FPO uses, then you blow through the S001-002 level, and have its components flow right through to the job for the FPO part.

1 Like

So there are different methodologies on how to make parts, stocking them and whatnot. For all parts having their own jobs, put on the shelf between every operation is one way to do it. That’s kind of what MRP has you do. If you do things that way, then MRP will look at what’s on the shelf, compare that to what demand is in the system, and suggest jobs to supply the demand. This works well for shops that make lots of the same parts that get used in lots of places. The jobs end up being pretty much all “materials” which basically means they are purchased or pulled of the shelf. It’s a valid way to structure your system if you have the right business type. We don’t/can’t use this method, as it doesn’t fit our particular business model. If we did we would have thousands of jobs, making very small quantities, and the organization/cross reference to figure out where thing go would balloon our lead times horribly.

The other end of the spectrum is to make everything on the assembly in one job, from first fab operation all the way to shipping to the end product. This is usually done in engineer to order type businesses that don’t have regular patterns to forecast anything and don’t have enough regular use of parts to be able to stock parts for future use. This is where we fall. So pretty much all of out manufactured parts are “assemblies” in the Epicor term, not materials. The pull quantity comes in when you want to use assemblies from stock instead of making them on the job.

In the example screen shot below, I set one of the assemblies to have a pull quantity of 1 which equals the total quantity required. If I then look in the assembly below, you see that the operation show green check marks, not because anyone did anything, but because the quantity required is now 0.

If you look at the screen shot you can see the required quantity below is now 0 because an assembly above is is going to satisfy the requirement and these are no longer needed.

You can’t change the production quantity directly. That is derived from the demand links, BOM, and pull quantity settings. So you don’t need to change anything.

We don’t use mass issue, we backflush, but I would assume that the mass issue should look at required quantity and see that it’s 0 so it shouldn’t issue the materials below it. (but do some testing before you take that as gospel)

Where this really gets hairy is when you have parts that are in inventory that happen to fall within each other. (ex. I have an assembly A and 3 parts B, B goes into A, so If I set A as pull, then the 3 B parts aren’t required, but the order of which you set pull quantities could derp the BPM results) I think that a BPM like @WildERP may be challenging to catch all of the edge cases, which is probably why Epicor hasn’t tackled this themselves. But if you are aware of the types of rules you set in place so you can monitor them appropriately, it could work.

Wow, lots of :face_vomiting:. Hope it’s helpful to someone.

1 Like

Thank you @ckrusen and @Banderson for the replies. I’ve tested a lot of stuff following your ideas and I think Pull Qty is the closest thing to what I need. When I have my subassembly setup as Pull as Assembly, and put down a Pull Qty to cover some of the manufacturing of that subassembly, the remaining qty and the materials attached to it were deducted correctly at Mass issue to mfg. So far that was the easiest(probably the least work for one person who is going to be in charge of jobs) way to accomplish what I wanted to do.
Now I need a way to give the user a warning if there is available quantity for one of the subassemblies so that they will know when to go edit Pull Qty. Or what would be even better is to give them a prompt that would ask them if they want to use available qty from stock and put the Pull Qty via BPM, but I lack the coding knowledge to accomplish that. My main problem is that I don’t know how to check Partbin qtys when making a BPM for Job Entry. Available amount is not in temp databases so I will need to find a way to make that happen. Or, I’ll just indicate that subasssembly is in stock at the order dashboard they use to open Job Entry from(but thats not challenging enough for my taste). Thank you all again!

I wrote the part below yesterday but forgot to post it and felt bad deleting :no_mouth:
“Can the sub Assy’s S001-002 and S006-001 , be made “inline” when making part FPO150-Boxed ? Meaning if the person making the FPO part is given the materials for the sub assy’s can the just create them right there - as opposed to it being an assembly that would be done requiring different people/tools etc…?”

Actually, that’s what’s going on in reality. We have our inventory guy assigning resource groups(only used to label the job so we know which group is working on what. not for MES since we don’t us it yet). After inventory guy assigns the group and releases the job, he does Mass issue to mfg, then he gets up and grabs the parts and gives it to the group. From this point till the product is ship, we do not use Epicor. And at the line, guys just pick up the bucket full of parts and they each build one unit themselves. So to answer your question, yes they can create it right there

This is the hardest part, because there are so many what-ifs going on when using up stock like that. A dashboard to be able to see on hand when it’s in a job as an assembly is a place to start. But you also have to take into account if it’s called as a pull quantity somewhere else. It’s really easy to set pull quantities on two different jobs and not have enough because you didn’t realize that it’s being called out for another job.

A good table to look at/include when making a BAQ/Dashboard is the PartDtl table. This basically is the time phase and you can see the requirement for parts. Pull quantities should show up there.

What happens if the “Pull from” is not setup as “from inventory”, but an Issue Material to Job is performed?

Like if there was a job for 10 of FG part, and there were 5 of the SA in stock. And those 5 were issued to fulfill the 5 of the 10 required SA’s for the job.

Can you issue material from stock, to a job, this way? And if you did, and used the mass issue for the remainder, would it see that some of the required sub-assy’s were already issued, and subtract them from the components to be issued for the remainder?

1 Like

The screen is issue assembly, not material in this case, but yes it would work this way. It just depends on what you want to see for visibility in your inventory. Once you issue it, it moves over to WIP, which can be confusing if no one physically moves them. But the issue to assembly has to happen regardless as some point.

1 Like

I don’t think this would be an issue for us because I for every job released, I told my people to mass issue to mfg right away. So it would be deducted from the number in the partbin for that subassembly right? Even if it is pull qty in a job, since the parts would be issued, I’m hoping I will see the correct on hand number.

It seems like it’s working that way. I’ve checked the part transactions and they all show that only remainder qty of SAs had their raw materials subtracted.

1 Like

I was just thinking of a way to not have to update the job to match the current QOH of the sub-assy.

1 Like

If you issue the assemblies before you mass issue, you can probably skip setting the pull quantity altogether and just issue them. It is nice to have a record of why, but you can get that from part tran if you need to as well.

1 Like

I don’t know how to issue the assemblies before mass issue? I mean I don’t know what that means. We use job wizard to get all methods for the jobs from the sales order, is it similar to that?

If there is a way to skip Pull Qty, that would even be better.