Planning contract questions

So we just upgraded to 10.1 and one of the features that we want to use is the planning contracts. The help files are a little lacking in this new feature, and since it touches so many different things, I can see the difficulty in making a comprehensive help file on this.

So I’ve been trying to learn some things by trial and error in out test system and have a couple of questions about what I am seeing so far.

  1. Has anyone done any automation for creating the planning contract and contract bin upon creation of a job?
    It looks like you have to set the order line and the job to the same contract (which makes sense) however if the order line and the job are already created (with a demand link), there is a circular logic flaw in the validation that you have to have the order line match the job, and the job match the order line. If they are both blank, then they can’t match for the minute from when I try to assign the contract ID to one of them, until I try to assign the other. To get around this, the contract needs to be created before the demand link is created (which happens for us when the job is created during the order writing process) or the demand link needs to be removed and re-added to get around the validation (a pain)

  2. It looks like the backflush from the contract bin only happens if the part has the link to contract checkbox checked. Is that a correct assumption? and does it always have to be like that? If our shop floor wants to kit some items ahead of time, it would work really well if they can move those parts into the contract bin and it looks like the time phase uses those parts in the contract bin to show requirements (if the planning contract info) box is checked. Then if it were to pull out of that contract bin first, then look to the regular warehouse. The problem that we would have with that link to planning contract is that they will never do it the same way twice so I won’t know which parts to check that box and which ones not to. I suppose some automation to look and check boxes if they are available in the contract bin could be done to make that work without too much work. It’s also a little problematic because the job might call for 10 of something but each one is in a different assembly, so someone would have to find all 10 and check the boxes. I guess that calls for an updateable dashboard.

I’m sure I’ll answer a lot of my own questions through trial and error, but if anyone has some insights or tips, that would be great.

Glad you’re wading into this. We want to use PlanCons to order long lead time materials for projects that we know we’re getting, so ahead of a sales order.

Mark W.

So after contacting service about the circular logic flaw, it’s “working as designed”. Why someone would want to design it so you can’t create a planning contract after the order/jobs are created is beyond me. I asked them to submit it as an enhancement request to allow the initial link to happen for a newly created planning contract.

Does anyone know how to interrupt the validation sequence that happens on when setting the contract ID? Here’s the trace, but I can’t even get a message to fire on the preprocessing for CheckJobHeadContractID, much less actually change something in the TT table (which apparently doesn’t exist for this method) to trick the validation.

<tracePacket>
  <businessObject>Ice.Proxy.BO.NamedSearchImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://epicor10-1/EpicorPilot10-1/</appServerUri>
  <returnType>Ice.Tablesets.NamedSearchTableset</returnType>
  <localTime>7/28/2017 15:54:04:3383610 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="11" roundTrip="11" channel="0" bpm="0" other="0" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseNamedSearch" type="System.String"><![CDATA[ProductID = 'EP' AND SearchForm = 'Planning Contract Search' AND CalledFrom = 'Erp.UI.JobEntry.dll' AND UserId = 'banderson']]></parameter>
    <parameter name="whereClauseControlSetting" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseWhereClause" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.QuickSearchImpl</businessObject>
  <methodName>GetBaseDefault</methodName>
  <appServerUri>net.tcp://epicor10-1/EpicorPilot10-1/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>7/28/2017 15:54:04:3539863 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="9" roundTrip="8" channel="0" bpm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="likeTableAndField" type="System.String"><![CDATA[PlanContractHdr.ContractID]]></parameter>
    <parameter name="callFrom" type="System.String"><![CDATA[Erp.UI.JobEntry]]></parameter>
    <parameter name="baseSearchId" type="System.String"><![CDATA[]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.PlanContractImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://epicor10-1/EpicorPilot10-1/</appServerUri>
  <returnType>Erp.Tablesets.PlanContractHdrListTableset</returnType>
  <localTime>7/28/2017 15:54:05:0557860 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="10" roundTrip="9" channel="0" bpm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[Active = true and Plant = 'MfgSys' BY ContractID]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[100]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.JobEntryImpl</businessObject>
  <methodName>CheckJobHeadContractID</methodName>
  <appServerUri>net.tcp://epicor10-1/EpicorPilot10-1/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>7/28/2017 15:54:05:9737250 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="76" roundTrip="73" channel="0" bpm="2" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="ipJobNum" type="System.String"><![CDATA[401592-1-1]]></parameter>
    <parameter name="ipContractID" type="System.String"><![CDATA[401592]]></parameter>
  </parameters>
</tracePacket>

So we are doing our first trial run of planning contracts on a real order. We had purchasing order the part on the planning contract, and then got details on the job.

Here’s what we’ve seen so far. If the parts on the job are checked link to contract, the demand doesn’t come from the contract, it comes from inventory or purchase direct. We are going to experiment with setting all non-stock part numbers to have the link to contract box in the part entry checked so that they will automatically are set when we get details on the job. I think I remember in my testing/reading that if there is no contract linked to the job, that the linked to contract checkbox should be ignored. But I am going to test that out.

The other option is to create a BPM or something that warns the purchaser that he is about to make a PO for something with a suggestion that has the same number already in the contact bin. Not as clean as I would hope, but I guess I could get it to work.

Does anyone out there know what this means? I have a PO out there for the two that are required linked to the contract. It shows in the supply. What’s with the line that says suggestion PO? I can’t find any more information about it. (I will admit, I am notoriously bad a finding help information without guidance though).

and while I asking about weird things in planning contracts, why does a cancel PO line show up in the demand for PO contacts? If the purpose of PO contracts is to hold supply until the demand shows up, how could it know to cancel a line?

So, it’s been a while and I figured I would update you all on how planning contracts are going for us and what we (I) think of planning contracts.

  1. It’s not as automatic as I would like it to be. It does a little bit better job of keeping things organized for pre-ordered stuff, but you pretty much have to the same steps in a slightly different format, just slightly less time dependant. I was expecting that a job on a planning contract would follow a hierarchy for parts to be issued (backflushed in our case) where the whole job would be on the contract and the backflush hierarchy would look at the contract bin to backflush from first, and then move on down the normal hierarchy that exists for backflushing. It doesn’t do that. You have to set each material that needs to come from the planning contract in the job to pull from the planning contract. If you have the job linked to planning contract, when you get details it will link anything that’s non-stock and set link to contract in the part master to the planning contract when the material is being added to the job. Then when it’s backflushed, it will only backflush from the contract bin, whether there is anything in there or not, so you would have to transfer in inventory to get rid of the negative.

  2. Bin locations are replaced by contract bin. This is a bit of a pain. To work around this, we unhid the bin description field in the part tracker and added it to the reciept labels. We have the receiving/kitting modify the description to show the physical bin locations of where that contract material is being stored once it starts coming in. Since the idea (in our business) is to keep job materials together when they come in to reduce the amount of work putting away and re-picking things, this will probably work ok since there shouldn’t be that many bin locations (probably a max of 4). So a short list of locations to look in is better than having no idea where the physical location is at all.

  3. PO suggestions. These are a bit buggy when you add in planning contracts. I haven’t had time to really sit down and trail and error everything out, but we seem to get a couple of weird things here and there. I think it might have to do with trying to combine contracts onto one PO, but I’m still not sure. We want to have each job have it’s own planning contract (we have large custom jobs) which helps for kitting and keeping things separated, but it’s not really feasible to have purchasing separate everything onto separate PO’s for different jobs. The help says not to combine different planning contracts to the same PO, but the system let’s you do it, and it seems to work. We’ll see after some more time. One of the benefits of the ways contracts are working, is the items that would be purchase direct, and would have their own line for each material sequence, now gets group together as one suggestion, so that help out. It’s basically ordering to inventory, but being able to keep the materials separated out by job.

  4. Order in inventory. The fact that we are now ordering to inventory, instead of direct to the job, really helps out in the costing aspect. Since ordering direct to the job keeps the costs separate from the averages and whatnot, the cost for things that we didn’t have in inventory were never in the system. This was a problem for any estimating. Now the costs make it into averages and last so that costing is accurate. (it would be nice if epicor had a configuration setting to control whether purchase direct costs were calculated in the part master cost or not)

So that’s what I’ve been seeing so far. We have a lot of materials ordered through planning contract so far, not so much here and issued yet, so we’ll see how that goes as we get more into it.

So another update and a question for anyone one there.

We have our first planning contract where everything that was linked to the contract is now closed, so it’s time to inactivate the planning contract. I went to go look and see what/if anything was still in there and to look at what flowed through. There is nothing on the screen whatsoever!! Does anyone know if if this is normal? or are we doing something wrong?

I am just starting to look at the Planning Contract, I want to use it to order parts for service jobs. Were there transactions listed here before? Shouldn’t this be a list of the issues to jobs? (I’m assuming that you issued the material to jobs, from the contract bin?).

I can’t say for sure on this specific order, but other planning contracts do.

I’m suspecting that it has to do with the linked objects being closed, since this is the first one that we have used that everything being purchased, and issued to is now closed.

I’m still waiting back to hear what service has to say about this.

So we have some new problems showing up. For some reason, we have new suggestions showing up for things that were already ordered on the planning contract. If we look at the planning contract, the demand clearly shows 1, and the supply side shows the PO linked to the contract. Does anyone have an idea why the extra suggestion is being generated? We’ve got a bunch of parts doing this. I’m going to copying production to pilot to see what I can do before I call support, but so far no one at support seems to understand anything about the planning contracts, so I don’t have a whole lot of hope there.

So we figured out what was happening with the duplicate purchase suggestions. Normally, a non-stock part is purchased directly to the job, and you have a release for each of those places where it’s used. The days of supply, max and min for non-stock parts are set at 0 and we’ve had no reason to change them. Now with planning contracts, the non-stock parts are being purchased to inventory. With stock parts purchased to inventory the max/min covers up the fact that we’ve left the days of supply at 0, but with non-stock parts the system is saying, you have it set up to have 0 left at the end of the day, and a new order needs to come in for the next day. That’s why it was trying to reduce/cancel part of the original PO and made a new purchase suggestion. We got a little confused because the change suggestions don’t seem to be very consistent, and generally we ignore them.

To fix this, we increased the days of supply and now the system groups the days together and allows the original PO to be able to fulfill what is needed.

To add more to the saga. There is “as designed feature” in that the inventory transfer screen shows 0 on hand in a contract bin. I thought it was a simple bug, it got submitted to dev, rejected, submitted to dev again, rejected again, then told that I’m not supposed to use the inventory transfer screen to move anything into or out of the bins, and that I should hire a consultant to tell me how to use planning contract.

So my question is, if I’m not supposed to use inventory transfer, how to do get parts into contract bins when I’m not purely buying to the contract, (or when stuff got incorrectly received)?

I am being kind of facetious because of the screen works fine to move inventory in and out, and I’m pretty sure when I took the training at insights that was a procedure that was explained. I’m just wondering if someone knows something I don’t

I want to make a small update on this specific issue because I know more about what’s going on now.

The reason that they don’t want you to be able to add a planning contract to the job after it’s created/built is because the individual materials in the job have to be set to pull from the contract. If you get the details with no contract attached, they are not going to pull from the contract. If you add the contract after details are already in place, the system does not go into the materials and change them to pull from the contract, only new details would do that.

So when we have had to add a contract after the job is built, we’ve cleared out the details and re-added them when we can so that the materials are attached to the contract. Otherwise, you have to go to each applicable material and do it yourself.

So the workaround to get the job on the correct contract is to remove the demand link, add it to the order and and job, then re-add the demand link. But if you don’t rebuild your details, it won’t work like it’s supposed to anyways. So that does make sense why they would not allow you to be able to add the contract after the fact. I just with I could find some documentation that would have explained that logic, or a more informative error message.

To help with this problem, I created a button in order entry to create the applicable contract and bins so that the order entry person can make them with a single click. If the jobs are created after the planning contract is applied to the order line, the job will automatically be linked to the contract.

2 Likes

Brandon;

We use manually created job bins right now in a couple areas of our business and Planning Contracts might be solution going forward. The one stumbling block for us might be that we want to use the cycle count process but exclude parts in these bins. Do you know if the contract bins are excluded from the tag generation for a cycle count?

We could create a new warehouse at each site that wants to use this create a contract bin there but it would be nice to have this function built in.

My other technique may be to use PCID’s for these types of bins because I can control if they will be included in a daily cycle count.

I don’t know if the cycle count would exclude these bins or not. We never used the cycle count system. I guess you would have to make up a test and see.

Thanks for the quick reply Brandon. Testing is my next step to research our options.

I assume the Planning Contracts feature is working for your company, aside from the issues you have identified.

Have a great new year.

In my “former company”. I’ve since taken another position (non-epicor :cry:). But yes, I had it set up where we use it for pretty much everything. For what we needed, it works well. The biggest downfall is not being able to use physical bin locations.

1 Like

We’re struggling with the Planning Contracts as well at our company. After reading this thread, it appears that some of our problems are the result of not having the min/max/days of supply filled out on the parts we want to link to the contract. The major sticking point, for me anyway, is why is it that when a PO Suggestion that comes from a planning contract demand is marked to buy and a PO is generated the planning contract information isn’t pulled in? Is this a setting we have wrong or is this working “as intended”?

TIA

So this is a necro post for sure, but since there has been a comment on this idea, I wanted to bring attention to it.

I think that a lot of companies probably would benefit from something like planning contracts, but the ability to track their inventory correctly in the warehouse makes this module a no go for them. If you even think you might like to use this, could you spare some votes for this idea?

https://epicor-manufacturing.ideas.aha.io/ideas/KNTC-I-1954

1 Like