Written by Richard on July 30, 2012

Setting your preferred order entry program

VISUAL offers 2 modules to manage you customer sales orders - Customer Order Entry and Order Management Window.  You can use either one of them to add and modify your sales orders.  If you don't know the difference between the two - just know that the Order Management Window is a pimped up version of the Customer Order Entry window.  VISUAL also offers 2 modules to manage your purchasing - Purchase Order Entry and Purchase Management Window.  Again the Purchase Management Window is the suped up version of the two

So what am I getting at?  Well, I'm sure you've probably decided, based on your operation and your business requirements, which modules are your company's preferred order entry windows.  But did you let VISUAL know?

If you're using the standard customer order entry and purchase order entry windows then you have nothing to worry about as VISUAL assumes that you will be using these out of the box.

But...if you're using either the Order Management Window or Purchasing Management Windows  - then you definitely need to let VISUAL know because it affects what module will open when you drill down on records.  For example, if you're in Customer Inquiry and view a customer's order history, you can drill down on the ORDER ID column - the system will either open the order in Customer Order Entry or Order Management Window depending on the preferred setting.

So where can set your preferred order entry module?  Go to the APPLICATION GLOBAL MAINTENANCE window and select "Preferences" under the OPTIONS menu.

Infor ERP VISUAL - Application Global Maintenance - Order Entry Preferences

Written by Richard 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

Written by Richard on September 20, 2011

You should never change the part's Product Code except...

I'm sure you are well aware that you shouldn't haphazardly change the product code of a part as it can have a significant accounting impact ---> VISUAL will reclassify all past transactions.  But there is one area where you can change the product code without issue - and that's in the Customer Order Entry.

Infor ERP Visual Enterprise - Customer Order Entry - Product Code
VISUAL allows you to change the specified Product Code of a line item in the customer order.  But why would you want to change the product code in a customer order? 

Well, one reason could be that you want the line item to hit a different set of Revenue and COGS accounts.  --> One set of accounts for when the item is sold by the SALES dept and another set of accounts when the item is sold by the SERVICE Dept.

Rest assured VISUAL will refer to the Inventory GL accounts of product code specified in PART MAINTENANCE for the line item when preparing the journals.


Written by Richard on September 13, 2011

Usings the RMA module to manage your Service Repair business

Infor ERP VISUAL - RMAThe Return Material Authorization (RMA) module in VISUAL isn't only reserved for returning items originally shipped/sold by you.  It can be a viable solution to manage you service business where items are sent to you for servicing (repairs).

The RMA process allows you to track the customer's property when it arrives on site.  It will create a work order for the service (repair).  This allows you to capture labour and material used.  And when the job is complete, VISUAL will calculate the associated costs so that you can charge the customer accordingly.

A customer calls in and asks whether you service Widgets.  Of course you do - you don't sell them but you'll provide services on anything and everything.  He mentions that he has a problem with the doohickey and that it appears to be an electrical issue.

You ask the customer to hold on a second while you obtain an RMA # for them to reference so that your Service Dept knows what to do with it when it comes in.

Here's what you do.

1. From the RMA window, enter the following:

  • Customer ID
  • Type - Select REPAIR from the drop down list.
  • Reason - Select the the reason for the repair.  In this case, "Electrical" is selected.  You can maintain the REASON list through APPLICATION GLOBAL MAINTENANCE under the MAINTAIN menu

Infor VISUAL ERP - Return Material Authorization

2. Then hit the SAVE icon.


You'll now have an RMA ID (RMA-00002) that you can give to your Customer to reference when they ship the Widget.  You should also see a NEW ORDER (02020) which will be used to Invoice the service/repair work.

3. Click on the "Show New Order" icon in the toolbar

Infor VISUAL ERP - RMA Show New Order
4. The Customer Order Entry window should appear displaying the new order 02020.  Notice that the order status is ON HOLD.  This is OK.  It will stay ON HOLD until the customer's Widget is received by your Service Dept.  You now have to enter a line on the order to indicate the service work you will be doing.  At a minimum, enter the following line information:

  • Quantity - 1
  • Misc Ref/Descr - enter description of the service (ie: Doohickey repair)
  • New W/O- Place a checkmark.  This creates a new workorder and links it to this order.  With this, we can capture all labour and material used to service the Widget.

Infor ERP VISUAL - RMA New Order Line Item

5. Hit the SAVE icon.

6. Be sure to set the new workorder to UNRELEASED.

Infor ERP VISUAL - Unreleased work order
7. Close the customer order window and go back to the RMA window and refresh the screen.  You should see that the RMA now has the line item you created on the customer order (02020).  Enter "1" in the Rtn Qty Authorized column (as shown).

Infor VISUAL ENTERPRISE - RMA - Line item 

8. Widget arrives.  What do you do? .... You need to let VISUAL know that it's here to be serviced.  To do this, go to the Shipping Entry window and select SHIPMENT RETURN.

Infor ERP VISUAL - RMA - Shipment Return 

9. Pull up the RMA ID from the dropdown list and enter "1" in the Qty Return column

 Infor VISUAL Enterprise - RMA- Shipment Return

You'll be asked whether to release the work order - Click YES.

In this example, the work order relating to this service is 40025/1.  You can now build the work order accordingly -- charging all LABOUR and MATERIAL used.

If you go back to the RMA window and pull up the RMA (RMA-00002) - you will see that it's been updated.  The RMA's status is now RECEIVED and the respective Widget (line item) has been received (Qty Returned column).


10. You got the Widget working using a thingamajig -- it's ready to be sent back to the customer.  Go to the Shipping Entry window and bring up the customer order (02020).  Be sure to enter the RMA ID (RMA-00002) in the header area (as shown) and ship the respective line item.

Infor ERP VISUAL Enterprise - RMA Shipping Entry 
You'll notice that the Ship Status field remains at SHIPPED.  That's because we're not finished yet.  It's not ready to be invoiced because we still have to specify what we'll be charging the customer. 

11. From the RMA window, select "Price Repair Orders..." from the EDIT menu.

Infor ERP VISUAL Enterprise - RMA Price Repair Orders

12. In the PRICE REPAIR CUSTOMER ORDER window, enter the RMA ID (RMA-00002) to set the price you want to charge the customer, which will be based on the costs of the workorder (40025/1). 

In this case, only 1 hour of labour was changed to the workorder ($15) - The customer will be billed $150.  I manually entered this price into the New Unit Price column - BUT you could also use the Hourly Rate and Markup functions (top right area) that will calculate the unit price to bill the customer.  Click on the SAVE button to commit changes.

Infor ERP Visual Enterprise - RMA Price Repair Orders 
13. Finally, click on the APPROVE SHIPMENTS button to send it for invoicing (in Invoice Forms).


Written by Richard on June 8, 2011

How to handle that down payment in VISUAL

There's a number of ways that you can tackle this in VISUAL.  And one way is through Progress Billings.  

Progress billing allows you to invoice a customer in one or more increments for good/services before you actually make good on them.  It was designed to meet almost any billing scheme --- such as down payments!

 Let's say we have a sales order for $10K and you require a down payment of 25%.

Infor VISUAL ERP - Sales Order

  1. Select Progress Billing Entry from the SALES menu.  Then enter the Order ID of the sales order you want to invoice for the down payment.  You'll notice that this window is similar to the Customer Order Entry window.

    Infor ERP VISUAL - Progress Billing 
  2. Highlight the line item and click on the Edit Billing Events icon from the toolbar (as shown).  You could also access this area under the EDIT menu

    Infor ERP VISUAL - Progress Billings
  3. In the Edit Billing Events window, click on the INSERT button to enter the following:

    Seq #  =  Keep the default (should be 10)

    Description  =  Enter description of down payment

    Billing  =  Enter $ value of down payment (you could indicate a % if you prefer - be sure to select appropriate option to the right)

    Event Date = Today's date (or a date you would like the invoice for down payment to be issued) 

    Infor ERP VISUAL - Progress Billings 
  4. Save and Close the window.
  5. Now we need the system to generate the invoice for the down payment.  To do this, select Print Invoices from the FILE menu of the Progress Billing Entry window.

    Infor ERP VISUAL - Progress Billings 
  6. You should accept the defaults and PRINT.  

    Infor ERP VISUAL - Progress Billings
  7. An invoice for the down payment will be generated and will look similar to the following:

    Infor ERP VISUAL - Progress Billings Down payment  
    This down payment invoice has now been processed in VISUAL and can be accessed from the AR Invoice Entry window.  I should mention that since I kept the defaults in Progress Billings - the down payment amount will be posted as Deferred Revenue.
  8. So time goes by and you eventually get around to shipping this order.  There is no change in how you process this shipment in VISUAL.  So go ahead and enter the shipment and generate the packlist.  The invoice when generated through INVOICE FORM should look similar to the following:

    Infor ERP VISUAL - Progress Billings Down payment 
    Notice the DOWN PAYMENT line just after the SUB TOTAL?  The down payment has been applied to the invoice and only the balance is remaining to be paid. 

Not bad. 

Written by Richard on April 5, 2011

Sales Document Lifecycle for VISUAL 6.x and earlier

Infor ERP VISUAL - Macro Document LifecycleIf you're not quite ready to upgrade to VISUAL 7 to experience the new Document Lifecycle feature - you can "sort of" replicate it using a macro that queries the database, displays the results on a web page which you can then drill down into VISUAL with the help of VMX files.

Before you can use the macro you need to configure a couple things on the workstation that will be using it. 

This macro can be used in either the Customer Order Entry window or the Order Management window.

  1. Associate VMX files to VISUAL application
    In order for VISUAL VMX files to work, windows needs to know that they are to be opened using the main VISUAL application (VM.exe). 

    To do this, simply right click on a VMX file and select "Open with..." from the popup menu.  Browse to the VM.exe and select it.  Be sure to also check the Always use this program to open these files check box.

    Infor ERP VISUAL - Open with
    If you don't have a VMX file to select, create one.  You can do this by creating a text file from NOTEPAD and renaming the extension to VMX (instead of txt).

    Note: You will also need to associate VFX files to the VISUAL application.  Follow the same instructions as above.
  2. Create a VMX folder
    The macro will be creating VMX files that will be used to drill down from the web page.  VISUAL users will need read/write permissions to this folder.  And each user should have the own VMX folder
  3. Download the macro
    After you download and unzip the file, you will need to modify the macro and provide the following parameters (which can be found near the beginning or the script):

       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"

       strPathVMX = "P A T H    T O    V M X    F O L D E R"     ' ie "C:\Visual\VMX"

Go ahead and give it a shot.

Once you get this working - it shouldn't take much effort to modify the script and have it working from the other sales modules:

  • Estimating Window
  • Return Material Authorization
  • Shipment Entry
  • AR Invoices
  • AR Payments 


Written by Richard on March 28, 2011

Macro Mondays: Letting the user know of order notations

MM This is a perfect example on how a simple macro can improve your VISUAL experience.  I came across this requirement in the VISUAL user group forum.

As most VISUAL users know, there is no flag or indicator to let you know that there are notations attached to an order you happen to be in.  You would have to manually hit the Notation icon or menu item to see whether there's important notes relating to the order.  This obviously leaves room for human error - forgetting to check if the order has notes.

Infor ERP VISUAL - Order Notation

The following OnLoad macro does a quick database lookup to check if the order has notes.  If notes do exist, the macro will then open the Order Notation window using SendKeys method.  This way, you can be sure that the user see any important notes.  This assumes that their eyes are open and directed towards the monitor!

'Insert this macro in Customer Order Entry module
'Save the macro as OnLoad

Dim wshShell

Dim x
Dim strCnn
Dim rs

Dim OrderHasNotations

Dim strServerName
Dim strDatabase
Dim strUserName
Dim strPassword

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")



if not rs.eof then
    if rs(0)>0 then
    end if
end if

set rs=nothing

if OrderHasNotations=1 then
    Set wshShell = CreateObject("WScript.Shell")
    wshShell.AppActivate("Customer Order Entry")

    wshShell.Sendkeys "+{F7}"
end if

'End of Macro

Macro Mondays is a series highlighting macros that I use to validate, automate and enforce business processes within the VISUAL application.  If you have any macros that you wish to share, please feel free to send them to me at  I'll be sure to post them on your behalf. 

The Visual Manufacturing International User Group (VMIUG) is a great resource for VISUAL-related topics 

Written by Richard on September 30, 2010

Macro: Did we make any money on that?

Now that's a question you don't hear too often...yeah right!

Here's a macro that you can easily execute from within a customer order to determine whether you made money on it or not.  You can then save the results with the order for future reference.

Download VMORDENT_ Did We Make Any Money On This macro

Be sure to modify the macro to include your database connection information.  Look for the following variables to change:

strServerName="E N T E R   N A M E   O F   S Q L   S E R V E R"
strDatabase="E N T E R   D A T A B A S E   N A M 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"

 you need to first create 5 Customizable UDFs under a new TAB of the Customer Order Entry window.


1. Start by selecting "Customizable UDF's..." from the EDIT menu of Customer Order Entry window

2. Click on the "Insert Tab" icon (as shown below), and enter the following fields:

Field LABEL value:            Revenue
Field TAB value:               Gross Profit Analysis
Field SQL NO value:          10 
Field DATA TYPE value:    Number


3. Repeat step 2 for the following 4 custom fields

Field LABEL value:            Costs
Field TAB value:               Gross Profit Analysis
Field SQL NO value:          20  
Field DATA TYPE value:    Number

Field LABEL value:            Gross Profit
Field TAB value:               Gross Profit Analysis
Field SQL NO value:          30  
Field DATA TYPE value:    Number

Field LABEL value:            Gross Profit (%)
Field TAB value:               Gross Profit Analysis
Field SQL NO value:          40  
Field DATA TYPE value:    String

Field LABEL value:            Last Update
Field TAB value:               Gross Profit Analysis
Field SQL NO value:          50  
Field DATA TYPE value:    String

You should now have something similar to the follow screenshot:

Infor ERP VISUAL - Custimizable UDFs 
4. Hit the SAVE button and close the screen

5. Your Customer Order Entry window should now be displaying in the header area an extra TAB called Gross Profit Analysis.

Infor ERP VISUAL - Customizable UDFs 

Now the macro, when executed, will populate the fields you just created.  You will then either giggle at the huge margins you made or weep at the disappointing loss.

 Infor ERP VISUAL - Customer Order Entry Macro Gross Profit



Written by Richard on July 6, 2010

How to add a NEW line item to the customer order using a macro

I'm sure I'm not alone with this one...

You succumb to the challenge and admit defeat in finding a solution or workaround within the Visual framework.  One of these challenges I believed couldn't be done was adding new lines to an order using a macro

Until now....thanks to Dave Giusto

This neat trick involves 2 macros. 

The first macro will insert a new line item to the order using sendkeys of INSERT


Then this macro will call onto another macro to enter the details of this new line item.  How will this call be done?  With a little magic...

Create the second macro but name it something like "&WoW_it_Works".  Notice the & (ampersand) before the W (this causes the W to be the hot-key for that menu pick).  Now that you have a hot key, you can use an Alt sequence to activate the menu. You will notice that in the Macro Menu the W will be underlined indicating that it is a hot key.

So what this allows us to do is use "sendkeys" in the first macro to launch the second macro, in this case, the "WoW_it_Works" macro


% = Alt
M = The main menu bar item with the M hot key (for order entry this is the Macro menu but not every window has M as Macros - look at Part Maintenance, M is for Maintain and 'a' is for Macros.
W = the menu item with the W hot Key -> WoW_it_Works

So now you have the first macro just sending keystrokes to insert a new line (or lines if you want more) and the ALT sequence to kick off another macro.

The reason why the 2 macro-combo (say that 3 times!) works is because after the 1st macro runs the control is handed back to the application and it consumes the keystroke information, this allows for the creation of new line object so that by the time the second macro runs the new line exists for processing.

Main Macro (call it what ever name you want)

Set ObjShell = CreateObject ("")
objShell.AppActivate("Customer Order Entry")

' Send an INSERT to add a Line Item

'Send the Alt-M-W sequence to launch the "Wow_it_Works" Macro

In the second macro you can load the lines with what ever data you want using the standard LINES object.

Second Macro (named "&Wow_it_Works")
'Go to last line in the LINES object



'Test to make sure that the line IS EMPTY (This macro can be manually run on its own so you need to 'do this so you don't overwrite a line of real data)


'Line is not empty


'Line is empty
'Enter new line details


End if

And there you have it!!

Dave currently works out of the New York office of Synergy Resources and can be reached there or via the Visual Manufacturing International User Group (VMIUG) under the handle dave_giusto.


Written by Richard on June 25, 2010

Visual's HST Doomsday: Y2K all over again

ChickenLittle With all this talk about the new sales tax changes in Ontario and British Columbia and what's involved in ensuring that Visual is properly configured to handle it - you'd think that the sky was falling!!

Don't get me wrong - Visual needs to be properly setup to handle the new Harmonized Sales Tax (HST) that goes into effect on July 1st, 2010 for both Ontario and BC.

Configuring Visual to the HSTs requirement is's the timing that poses the challenge. 

Because HST is new to Ontario and BC in the way that taxes are collected - it's not just a quick entry in the tax group for the new tax percentage with an "effective date".  You need to create a whole new set of Sales Tax Groups and Sales Tax IDs.

Setting up these Tax Groups & IDs is relatively easy and can be done anytime before July 1st, 2010.

(To setup Ontario HST)

  1. From the Accounting Window, create a new (or modify an existing) GL Account to capture for HST collected
  2. From the Sales Tax Maintenance, create a new Tax Group ID (ie: HST-ON)
  3. Then add a new line item and enter a new Sales Tax ID (ie: HST-ON). Be sure to assign this sales tax id to the GL Account used in step 1.
  4. Then set the tax percentage (13%) and the July 1st effective date.


The next thing to do is associate the new sales tax groups to customers - BUT you shouldn't do this before July 1, 2010 because sales taxes on shipments (up until June 30) are still to be calculated based on your current tax setups (pre-HST).  This is where the challenge comes in - when and how to apply the new HST tax group to your customers?

Areas that need to be reviewed (where Sales Tax Groups are associated)

  • Customer Master Mile
  • Customer Shipping Addresses
  • Open Sales Orders

Couple of suggestions:
1. You can associate the tax group as you go - modifying the master records when you enter new sales order or processing shipments - I would suggest deploying a macro to ensure that this done
2. Mass update via query (but can only be done on or after July 1st - and this is assuming that you have a hard close on June 30th)