You can always, of course, key in the cost code for a P/O line while you are entering the line. In some instances, Apex may be able to help streamline things by suggesting a cost code automatically. There are a couple ways to do this.
Using multiple cost code schedulesFirst, let’s review how cost codes work. Apex is designed to allow you to have multiple cost code schedules and specify for each job which schedule is appropriate.
For example, you may have a standard cost code schedule for your commercial work. In Apex, this schedule is named “STD”. Then, if you build a nuclear power plant you may decide that this cost code schedule is inadequate, so you could build another cost code schedule named “NP”. The nuclear power plant job would be assigned the “NP” cost code schedule.
Apex can automatically suggest a cost code for you in this scenario if there is a correspondence between your cost code and one or more Trade Service commodity codes. For example, you may have a cost code for EMT. Trade Service has assigned commodity code 1200 to EMT. In Cost Code Maintenance you could then select your EMT cost code and in the bottom table enter “1200” as a commodity code for this cost code. Then, whenever you put a db Item onto your P/O that has been classified in commodity code 1200, Apex will automatically put your EMT cost code on the line.
I say that Apex “suggests” this cost code because you can always change the cost code during P/O maintenance if needed.
Some material, like wire, may require you to associate multiple commodity codes with your cost code. For example, if you have a cost code for building wire you should enter the corresponding cost codes 0100, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, and 0119, since all of these commodity codes are used by Trade Service to classify wire.
Using a single cost code scheduleIf possible, you should use the method described above for multiple cost code schedules. This gives you the freedom to change your mind in the future without creating a lot of work for yourself. But, if you are sure that you are always going to use a single cost code schedule (or don’t mind the work involved in cleaning things up when you change your mind) then you have another option. You can assign a cost code directly to a db Item.
The easiest way to do this is to right click on a P/O line and select “Show db Item” on the popup menu. You can then enter a cost code in db Item Maintenance that will be associated with that item. (This entry won’t change the P/O line that you were working on but it will affect the next time you use this item on a P/O line.)
Note that you probably have in the neighborhood of 1.2 million db Items, so while this method works the above method is also somewhat more efficient since you have a lot less data entry to do.
How Apex suggests a cost codeWhen you enter a P/O line Apex first checks if you are entering an item from the db Item table. If you are just writing in a line then there is no way for Apex to suggest a cost code.
First, the db Item is checked to see if it indicates a cost code. If it does and the cost code is valid for the current cost code schedule then it is put on the P/O line. (If no job is specified on a P/O then Apex uses the “STD” cost code schedule, so you should always be sure to indicate the appropriate job before starting to enter P/O lines.)
If no cost code was specified on the db Item then Apex checks to see if the commodity code that the item belongs to has been associated with a cost code, using the specified job’s cost code schedule. If so then that cost code is suggested.
Otherwise, you can always key in the cost code yourself.
Things to think aboutThe cost code suggestion may not always work. There are two scenarios I can think of off the top of my head that will require you to intervene.
- Sometimes your cost code may be based not only the type of material, but also based on size. For example, if you have separate cost codes for branch wire and feeder cable then associating the cost codes with the wire items as shown above will not be enough. The commodity codes do not distinguish between branch and feeder wire. In this case I suggest just picking one of the cost codes for Apex to suggest, say branch wire. Then when you are entering P/O lines Apex will suggest the correct cost code about half of the time. The other half of the time, when you are buying feeder cable, you will need to enter the other cost code.
- Sometimes your cost codes may be assigned based on context. For example, you may have a cost code that you use for fire alarm systems. Since Apex cannot tell if a device is being used in a fire alarm system or not, you will have to change the cost code manually. The same situation would apply if you are using separate cost codes for EWR purchases.
Don’t forget that the whole point is to try to save yourself some time. A little time up front getting Apex to suggest cost codes for you can save a lot of data entry down the road.