Written by Rich on February 1, 2015

Auto-Issuing from multiple locations for a single Part

Yes it is possible.

VISUAL allows you the capability to setup a part to be automatically issued to a work order as labor is reported against an operation.  To do this there are a couple of settings that you need to have in place for this to happen.  At a minimum, you need to flag the part as being AUTO ISSUE and specify the Warehouse and Location to issue from.  These settings can be found in the PART MAINTENANCE module

Infor VISUAL ERP - Part Maintenance
Part Maintenance in VISUAL 7.1.2

Now you may have situations where you need the ability to auto issue a part from multiple locations.  From the onset it may appear that you are limited to only having one - but it is possible to configure VISUAL to have more. 

Here's how...

  1. Call up the part in PART MAINTENANCE.
  2. Go into "Warehouse Locations..." from the MAINTAIN menu to bring up all the warehouse locations assigned to the part
  3. Now your first instinct would be to check the checkbox in the Auto Issue column.  DON'T because you may find yourself in a frustrating game of "Whack-A-Mole"!  Go ahead and try - you'll see what I mean.

    Whack a mole
    A Classic!
    Instead, simply select the checkbox under the Default Part Auto Issue column (the AUTO ISSUE checkbox will check automatically).  Once you have all your auto issue locations set - save and close the window

    Infor VISUAL ERP - Part Maintenance Warehouse Locations 
  4. Now you have configured the part to have multiple auto issue locations.  The only step left is indicating which location VISUAL should auto issue from on your work orders and/or engineering masters.  You can do this in the MATERIAL (REQUIREMENT) card of the auto issued part in the WO/EM under the PLANNING tab.

    Infor VISUAL ERP - Work Order Requirement Material Card Location ID 
    Note: The locations available will only be those that belong to the WAREHOUSE specified on the Work Order Header.  Also, if you choose not to override the location - then VISUAL will auto issue from the Default Auto Issue Warehouse and Location in PART MAINTENANCE.

Now you're all set.


Written by John on December 20, 2012

What is the Inventory Balance Report used for?

Infor VISUAL ERP - Inventory Balance ReportThe purpose of the Inventory Balance Report (IBR) is to show the value of inventory on hand at each month end period. You can print it in summary or by FIFO layer.

The report is driven solely by the INVENTORY_BALANCE table which is updated by the cost utilities.

If you're in a STANDARD COSTING environment then the IBR really does not serve a purpose.  Basically, the inventory balance for any given month is the quantity on hand  x  the total unit standard cost in effect at that time.

Unfortunately the INVENTORY_BALANCE table in a FIFO database eventually closes FIFO layers off and they are removed from the table for the next period.  In a standard cost database this never occurs and the table continues to grow.  At one of our client more than 50GB (yes GB with a G!) of the database was in the inventory balance table and it was providing no benefit what so ever. The table was truncated and guess what…costing performance improved dramatically, especially for the first run of the month when this table is updated for the new period.

If you are standard cost consider truncating the data from the INVENTORY_BALANCE table.

Written by Rich on October 17, 2012

Physical inventory count and "found" inventory with trace profile

Infor VISUAL ERP - Physical Count
You just know that this guy plays keyboard in some 80s Rock Band
Whenever you go through a physical count, you're likely to hear a variation of one of the following:

  • Where did that come from?
  • That's where it is!
  • I didn't know we had that?!
  • What the heck is this?

In each case, you make the decision as to whether to include the item or not in your physical count (or cycle count). 

If you do decide to include the "found" inventory, you can do so in VISUAL using a blank inventory ticket or adding to an existing ticket.   No problem.

But what if this inventory has a trace profile?  When it comes to traced parts during physical counts, VISUAL requires you to match the trace id to the trace record in VISUAL.  So chances are, the trace on the "found" inventory does not exist in VISUAL.  And if you try to enter a ticket for it you'll be faced with the following message:

Infor VISUAL ERP - Trace record error in physical count

Yeah, sure you do as you're told and enter the "found" inventory using the Inventory Transaction Entry window as an ADJUST IN after the Physical Count - But I want this inventory transaction to be part of the Physical Count process.

Here's what you can do.

  1. Ignore the message
  2. From the INVENTORY menu, select Part Trace Maintenance
  3. Enter the PART ID in the appropriate field

    Infor VISUAL ERP - Part Trace Maintenance
  4. From the MAINTAIN menu, select "Pre-assigned numbers..."

    Infor VISUAL ERP - Part Trace Maintenance
  5. Enter the quantity of your found inventory in the "pre-assign quantity" field.

    Infor VISUAL ERP - Pre Assign Quantity
  6. You can then enter the TRACE ID(s) in the Traceability window.

    Infor VISUAL ERP - Traceability
  7. Hit the SAVE button.

Now go ahead and enter that physical count inventory ticket for your "found" items.

Written by Erik on October 9, 2012

Macro-level Adjust-In control for Inventory Transaction Entry

VISUAL installations that run in Actual Costing live and die with the control of transactional costs and inventory layers in the system, and under normal conditions this is mostly a no-brainer with a little training and running some semi-automatic periodic processes. 

Sooner or later, you’ll have to manually Adjust In parts because of inventory, material moves, or some other reason.

And then there’s the human element.   Sigh.

infor ERP VISUAL - Inventory Adjustments
"Not a problem"

When you have non-consumable parts that you carry in your own inventory, these should generally be assigned a cost (if they don’t already have one) if you adjust them in through Inventory Transaction Entry, in order to make sure your inventory layers show the correct value.  If you have Customer-Supplied parts (or other materials you technically aren’t carrying inventory cost on), these typically SHOULD NOT have a cost entered in at transaction time.

Sounds easy, right? 

But since Inventory Transaction Entry has no controls to differentiate these parts by default, someone can accidentally enter in values for Customer-Supplied parts and zero value for regular inventoried goods.  If you don’t find these kinds of mistakes early, your part costing, and eventually your estimating / Engineering Masters will not reflect reality, inventory costs can get pretty screwy, and Accounting may show up at Receiving’s door with torches and pitchforks.

What to do?

We ran into this issue early on after migrating to VISUAL from our legacy ERP.  Since we were already coding our Customer-Supplied parts with a prefix of ‘CS’ to make them easy to spot, we came up with an easy way to help prevent the issues altogether with a simple macro:

' Inventory Transaction Entry - OnSave Macro
' Prevent saving of a transaction entry with zero cost
' Erik Kjellquist

if (ADJUSTMENT_IN = True) then

    dim text
    dim prefix

    prefix = Left(PART_ID,2)   ' Determine if part has a ‘CS’ prefix

    ' Flag non-CS parts that have a zero cost
    if ((MATERIAL_UNIT_COST + FIXED_COST) = 0) AND (NOT (prefix = "CS")) then

        MACRO_MESSAGE="Total cost for an Adjust In cannot be zero for " & PART_ID & _
        " because it is NOT a customer-supplied part."

    ' Flag CS parts that have a greater than zero cost
    elseif ((MATERIAL_UNIT_COST + FIXED_COST) > 0) AND (prefix = "CS") then

        MACRO_MESSAGE="Total cost for an Adjust In MUST be zero for " & PART_ID & _
        " because it is a customer-supplied part."

    end if

end if

This macro uses the OnSave function to allow or prevent a user from saving a transaction based on the details.  We’re looking only at Adjust Ins, in this case the ADJUSTMENT_IN variable, and evaluating whether a CS part is being adjusted in with a zero cost or a non-CS part with a non-zero cost, respectively.  If either is false, MACRO_MESSAGE is given an appropriate string, and MACRO_SUCCESS is set to false, which prevents the transaction from saving.

The macro assumes that parts with a ‘CS’ prefix are customer-supplied in our case, but many companies may not be able to label their parts as such.  You could also label parts as Customer-Supplied using User-Defined fields, Commodity codes, store them in a specific warehouse/location, etc in Part Maintenance or another linked table.

However you define CS parts, this will help anyone adjusting in inventory from making mistakes relative to costing, should help relieve a few headaches down the road, and will prevent those square pegs from going into round holes!

Erik Kjellquist is our special guest author at and is the IT Manager at Audiosears Corporation. You'll find Erik contributing and assisting fellow VISUAL users on LinkedIn and Yahoo forums.

Connect with him online at LinkedIn 


Written by Rich on October 5, 2012

Setting the default expense account for consumables

You and I both know that, out of the box, VISUAL does not allow you to specify a default GL expense account on a consumable part.  And that you have to manually specify the expense GL account every time you purchase it.   AUGH!

Yes, there is a work around where you can set the default GL expense account at the VENDOR level.  This may be okay if you expense all consumables to the one GL account.

Infor VISUAL ERP - Vendor Maintenance
Setting the "Default Expense Account ID" in Vendor Maintenance (under the ACCOUNTING tab)

However, this workaround doesn't work if you buy more than one type of consumable from the same vendor and each type of consumable needs to be expensed differently.  It would be great if VISUAL allowed us to define the GL expense account at the PART level - this wouldn't be an issue.

Here's one way to get around this. 

It involves using a user defined field (UDF) in PART MAINTENANCE and a OnSave macro in the PURCHASE ORDER ENTRY window.  The UDF can be used to enter the expense account and we can have the macro look this up when entering a purchase order for a consumable part. 

  1. In PART MAINTENANCE, designate one of the standard UDFs to be used to enter the expense GL account for a consumable part.  You could also use a custom user defined field and create a drop down list linked to your GL accounts table.

    Infor VISUAL ERP - Part Maintenance

  2. Create an OnSave macro in the PURCHASE ORDER ENTRY window that will look up and use the GL account entered in the UDF (created in step 1) to populate the GL Expense Account ID column of the purchase order.

An OnSave macro like the following would work: (mind the line wraps!)

strServerName="E N T E R    N A M E    O F    D A T A B A S E    S E R V E R"
strDatabase="E N T E R    N A M E    O F    D A T A B A S E"
strUserName="E N T E R    U S E R N A M E"
strPassword="E N T E R    P A S S W O R D"

strcnn="Driver={SQL Server};Server=" & strServerName & ";Database=" & strDatabase & ";Uid=" & strUsername & ";Pwd=" & strPassword & ";"

set rs = CreateObject("ADODB.Recordset")

Set ORDERLINES = Lines.Value

If LCnt>0 then
    For i = 0 To (LCnt - 1)

        if len(Orderline("PART_INFO") & "")>0 then

            PartID=Split(Orderline("PART_INFO")," - ")

            SQL="SELECT USER_1, CONSUMABLE FROM PART WHERE ID='" & PartID(0) & "';"
   sql, strcnn


            if not rs.eof then

                if rs("CONSUMABLE")="Y" then
                end if

            end if

            if len(ExpAcctID & "")>0 then
            end if


        end if


end if

This macro assumes that we're using the standard user defined field 1 for the expense GL account.  You may want to beef up this script to include validation checks - ie ensure that the expense GL account id exists, prevent the changing of the GL accounts on PO lines that have already been received, etc.  This should get you going in the right direction.

Now you're able to set your default expense account on each consumable part.

Written by Jason on August 28, 2012

What’s in a part number?

Infor VISUAL ERP - Part NumberMoving forward with the re-implementation we faced some key decisions.  One of them was to decide how to handle our part numbers.  Our existing part numbers were a mess.  They ranged anywhere from 1 to 30 characters and had variations of numbers, letters, and characters.  Some had some logic built into them, some were random, some were brought in as the vendor/customer part numbers, and some parts were represented by multiple part IDs of different numbering schemes.  Everyone seemed to have a different method for creating part numbers and, needless to say, it had become a mess.  We were all in agreement, this had to be cleaned up and standardized. 

The numbering system we decided to go with is a 7-digit numeric ID where the first 2 digits designate the product type (product line, hardware, etc.).  The other 5 digits are random numbers.  We plan to use the settings in part maintenance to define the rest of the part qualities. 

I’ve been with other companies where a larger smart-part-numbering system was the way to go.  In those situations the parts “are what they are” with very little (if any) changes that take place and can be easily defined within the part ID itself.

Convincing everyone to adapt to the all 7-digit, numeric part IDs wasn’t easy.  We set up a sandbox database and took a few part samples that we re-numbered and the corresponding components that went into making them.  We created Customer Acknowledgements, work orders, and dispatch reports to show the team how much ‘cleaner’ these reports looked.  We also demonstrated that we can display all the important info on these reports using the part description.  Should any changes be necessary to the part, we can just tweak the description instead of creating a whole new part number.  We had to transition everyone off their dependency of just knowing the part numbers and needing that knowledge of the history behind each part number.

Jason Snoeyink is a special guest author at and is an active participant in the VISUAL community.

Connect with Jason online at LinkedIn 

Written by Peter on June 21, 2012

Zero cost layers. Got ‘em? Know why? Me either....

We’re running on Visual 7.0, actual cost, FIFO by part location.  We changed from FIFO by part to FIFO by part location with our Infor Channel Partner over a year ago. 

Since that time, we’ve had some unexplained $0 cost layers with some of our parts.  When we find them, we verify that part maintenance has a cost, and that the end-user didn’t blank out the cost field on an adjust in to inventory.  Upon further research with Infor’s technical support, Infor believes some of these cost layers are related to driving locations negative with auto-issue, and then doing issue/returns of work orders to put the quantity on the location back to zero.  Since the adjust out drove the location negative, there is no cost with that transaction.  The issue/return makes the quantity in the location 0, but there is no cost with this transaction either, as there is no transactions in the location to use as a cost basis. 

Infor10 Visual ERP Express - Confused

Sound confusing?  (You may need to re-read that last paragraph more than once!!)

Infor recommends backdating an adjust in to the location, before the date of the first transaction that drove the location negative, and then an adjust out of the location after the issue/return date.  The adjust in and adjust out quantity have to be larger than the initial transaction that drove the location negative, but must match each other to keep our inventory count the same. 

Is this how you have handled similar situations?  If not, how would you fix them?

Peter Boers is our special guest author at and is an active participant in the VISUAL community.  Peter has recently taken on the responsibility for maintaining the web site for the newly formed Visual Enterprise Global User Group (VEGUG).

Connect with him online at LinkedIn 


Written by Rich on May 1, 2012

Keeping tabs on your off-site inventory

VISUAL has this great little report called the Inventory Out Report - and it details all your inventory that you own that's currently off-site.  This could be material that you have with a supplier that's providing an OUTSIDE SERVICE or it could be inventory that's IN TRANSIT to one of your warehouses across the country.

InvOutDialogThe report allows you the flexibility to focus only on inventory transfers (IBTs) or only on inventory dispatched to your suppliers for a service.

The Inventory Out Report is fast and simple - providing you with a quick reference to all that you have "out there" beyond your 4 walls.

You can find this report under the INVENTORY menu near the bottom of the list.

If you happen to find yourself without this report in the menu - it's only because Infor buried it for you to uncover.  You'll need to free the report through Application Global Maintenance (under the ADMIN menu).  Go to the Shipment Trk tab and check the Shipment Tracking Enabled option.  Then save the changes.  You may have to log out and log back into VISUAL for the report option to appear.

Now go and print the report and see how much $ in inventory you got "out there".

Written by Rich on April 22, 2012

One Fish, Two Fish, Red Fish, Blue Fish - Dealing with Interchangeable fish...I mean parts

So have I lost my mind?  ... most likely.

Tonight, my 2 year old pulled out the Dr Seuss classic to read as part of our bedtime routine.  So as usual, I opened the book and started reading in my "Dr Seuss" voice and pointing at all the funny looking fish all the while trying to maintain the rhythm and rhyme.

"One Fish."

"Two Fish."

"Red Fish."

"Blue Fish."

We finish the book with a laugh...and now we're ready for dodo.

So I've been sitting here with the intention of posting to the blog on how to manage interchangeable parts in VISUAL.  Which wouldn't be a difficult task do if it weren't for these fish that I can't get out of my head.  I figure I'll start with them as it does relate to what I want to write about.  ....  ok work with me here

So what can you do with parts that are interchangeable?  Let's say the only difference between them is color - everything else is the same.  You want to manage these parts so that they are interchangeable but you also want to keep tabs on their color.

How can we do it in VISUAL?

Should each part have it's own Part ID?  Perhaps.  Having their own part id would mean having to look up demand and supply for each part.  Would that be an inconvenience?  Maybe. 

What if your RED part is out of stock and there is demand for it?  With separate part ids, MRP will likely generate a planned supply order instead of using your BLUE stock which you have ample supply of.  Would you be ok with that?


If the parts are truly interchangeable then I would consider having ONE part id and using one of the following techniques: 

Option 1: Use Location IDs
You can create LOCATION IDs for each TYPE of the part. You don't necessarily have to have an actual bin location for each type (just in VISUAL).  Keep interchangeable parts physically together. When you receive or issue these parts you'll need to specify the Location ID (TYPE) that they're associated to. With this setup, you'll be able to look up quantities per type (using location ids).

One of the drawbacks here is that you're tying your warehouse and location structure (and naming convention) to a specific part attribute.  Depending on the how many "types" of a part you have  - but you can end up with a lot of locations ids in your system that are part specific.

Option 2: Use Trace

Trace will allow you assign part type as an attribute of the trace record. You can then track parts by color.  With this, you only have one part number to manage, but you have visibility based on their attribute.  This is likely the better solution of the two.

"So what color is that?" asked the cat in the hat.


Written by Rich on April 4, 2012

Including purchase burden in your cost estimates

Are your purchase burdens being applied when calculating your cost estimates on quotes masters, engineering masters and work orders?

Not sure?

First things accounting hat please.

Infor ERP VISUAL - Issue Burden
In PART MAINTENANCE under the "Costing" tab, you'll find the option to apply a Purchase Burden for a part.  This particular burden allows you to account for outside costs relating to handling the part.  It can be entered as a percentage of the material cost OR as dollar amount per unit.


 Infor ERP VISUAL - Part Maintenance

If you're not using purchase burdens, then you can move on to more pressing things

But if you are using purchase burden, then you may want to verify whether it should be used when calculating your cost estimates in your quote masters, eng masters and work orders. 

You can have VISUAL use this burden (or not) by flicking the switch in the PREFERENCES under the OPTIONS menu of the MATERIAL CARD.

Infor ERP VISUAL - work order material card

This setting is USER SPECIFIC, so if you decide as a company that purchase burden should be applied (or vice versa) - you need to ensure that every user has the proper setting in place.

In the VISUAL.ini file:

[Visual Mfg]
IncludePurcBur={Y or N}

Or, if using the Preferences Maintenance module:

Infor ERP VISUAL - Preferences Maintenance

If you do decide to change this setting, be sure to "Reset Material Requirement Costs..." (Part Maintenance) to update your existing Quote Masters, Engineering Master, and Work Orders (where needed) so that they reflect this new cost setting.

Infor ERP VISUAL - Reset Material Requirements Cost


Rich Ferlatte
Results Driven VISUAL Specialist


Of course, I am available for hire!

ERP Implementations & Upgrades
Analytics & Reporting
Integrations & Macros
General VISUAL Support


Taking it to the next level and designing a program around "Hands On VISUAL Training".

Check them out - there's sure to be one to interest you!

Operational Workshops
Reporting Workshops
Financial Workshops
Inventory Workshops
Quality Workshops


BOM Xploder
Drastically improve your BOM visibility and discover shortages at ANY level of your bill of material no matter how deep.
See, analyze, and track information that helps you better support individual, departmental, and your company’s performance metrics and goals.
Credit Card Integration
Easily accept and process credit card payments right from within VISUAL.
CAD Integration with CADLink
Reduce rework, minimize scrap, and work more efficiently with CADLink - a fully automated, two-way connection between VISUAL and your CAD system.
Sales Tax Automation with AvaTax
Easily automate sales and use tax in VISUAL with AvaTax. No more manually entering data or uploading rate tables and tax information.
Workforce Management with Kebrite Solutions
Streamlines the collection of Job, Labor, Payroll, Time & Attendance, and a vast array of HR related data-- with live VISUAL integration.
ACH Document Processing
Leveraging VISUAL's payment scheduling and batch payment functions, with the added convenience, performance, and security of Electronic Funds Transfer payment processing.