Sage 100

 View Only
  • 1.  Is anyone using any type of product that will veri

    Posted 12-19-2014 12:30
    Is anyone using any type of product that will verify an address at time of entry linked with Sage or a button in Sage to go out and verify the address? Customer is entering ship to addresses and would like to have them verified against USPS or whatever database holds all valid addresses to get correct Street/Drive/Lane and direction E/W, etc.


  • 2.  RE: Is anyone using any type of product that will veri

    Posted 12-19-2014 12:35
    A gift from @MyronStevenson from 7 years ago. Not sure if it still works in its present form. A question for the CRM gurus in the crowd, could this this used for address validation in CRM?:???? Myron - Over the past year, I have received more assistance from this forum thatI have given back. Here are a couple ""enhancements"" I've recently done that add ""WOW"" to MAS 90/200. The attached file shows two buttons that have been added to Customer Maintenance. They are as follows for 4.10: 1. USPS Verify (I can't take credit for this as it is from Slade, though updated for 4.10). Here is the VB script attached to the button. ----- Start Verify Customer Maintenance Address ------- ' language VBScript ' ' form variables ' AR_Customer_ bus_AddressLine1 ' AR_Customer_ bus_AddressLine2 ' AR_Customer_ bus_AddressLine3 ' AR_Customer_ bus_City ' AR_Customer_ bus_State ' AR_Customer_ bus_ZipCode ' '*********** ********* ********* ********* ' ' Create the IE Object Set ie=CreateObject( ""InternetExplore r.Application"" ) ' ' Set IE Properties ie.Top=0 ie.Left=0 ie.Height=700 ie.Width=800 ie.AddressBar= false ie.MenuBar=false ie.ToolBar=false ' ' Build Form Data data=""/zip4/ welcome.jsp? selection= 1"" &_ ""&address1="" +AR_Customer_ bus_AddressLine1 &_ ""&address2="" +AR_Customer_ bus_AddressLine2 &_ ""&city=""+AR_ Customer_ bus_City &_ ""&state=""+AR_ Customer_ bus_State &_ ""&zip5=""+AR_ Customer_ bus_ZipCode ' Set the Navigation ie.Navigate ""http://zip4. usps.com""+data ' ' Unhide the browser ie.visible=True ----- End ------- Not only has this button been added to the Customer Maintenance window, but also to Contact and Ship to windows as well. Here are those scripts: ----- Contact Verify Start ------ ' ' language VBScript ' ' form variables ' AR_CustomerContact_ bus_AddressLine1 ' AR_CustomerContact_ bus_AddressLine2 ' AR_CustomerContact_ bus_AddressLine3 ' AR_CustomerContact_ bus_City ' AR_CustomerContact_ bus_State ' AR_CustomerContact_ bus_ZipCode ' '*********** ********* ********* ********* ' ' Create the IE Object Set ie=CreateObject( ""InternetExplore r.Application"" ) ' ' Set IE Properties ie.Top=0 ie.Left=0 ie.Height=700 ie.Width=800 ie.AddressBar= false ie.MenuBar=false ie.ToolBar=false ' ' Build Form Data data=""/zip4/ welcome.jsp? selection= 1"" &_ ""&address1="" +AR_CustomerCont act_bus_AddressL ine2 &_ ""&address2="" +AR_CustomerCont act_bus_AddressL ine1 &_ ""&city=""+AR_ CustomerContact_ bus_City &_ ""&state=""+AR_ CustomerContact_ bus_State &_ ""&zip5=""+AR_ CustomerContact_ bus_ZipCode ' Set the Navigation ie.Navigate ""http://zip4. usps.com""+data ' ' Unhide the browser ie.visible=True ----- Contact Verify End ------ ----- Ship To Start ------ ' form variables ' SO_ShipToAddress_ bus_ShipToAddres s1 ' SO_ShipToAddress_ bus_ShipToAddres s2 ' SO_ShipToAddress_ bus_ShipToAddres s3 ' SO_ShipToAddress_ bus_ShipToCity ' SO_ShipToAddress_ bus_ShipToState ' SO_ShipToAddress_ bus_ShipToZipCod e ' '*********** ********* ********* ********* ' ' Create the IE Object Set ie=CreateObject( ""InternetExplore r.Application"" ) ' ' Set IE Properties ie.Top=0 ie.Left=0 ie.Height=700 ie.Width=800 ie.AddressBar= false ie.MenuBar=false ie.ToolBar=false ' ' Build Form Data data=""/zip4/ welcome.jsp? selection= 1"" &_ ""&address1="" +SO_ShipToAddres s_bus_ShipToAddr ess1 &_ ""&address2="" +SO_ShipToAddres s_bus_ShipToAddr ess2 &_ ""&city=""+SO_ ShipToAddress_ bus_ShipToCity &_ ""&state=""+SO_ ShipToAddress_ bus_ShipToState &_ ""&zip5=""+SO_ ShipToAddress_ bus_ShipToZipCod e ' Set the Navigation ie.Navigate ""http://zip4. usps.com""+data ' ' Unhide the browser ie.visible=True ----- Ship To End ------ BUT WAIT THERE'S MORE.... In order to make label printing faster and easier, we installed a couple of Dymo (Turbo 400) label printers. After installing the software for these printers, you can use VB Script to print labels. These printers also can be shared as network printers. The Mail Label button prints a label for the address shown on the screen. It is quick and easy for Customer Service to print labels. Here are the instructions and script. 1. Create the folder Dymo in ...\MAS90\CM\ Script. 2. Copy the attached Dymo label layout file (LWL) to the Dymo folder created above. 3. Add the following script to a button in Customer Maintenance and added the required fields to pass to the script. 4. Change the path in the script to the actual path to the label file. ---- Start script ------ ' language VBScript ' ' form variables ' AR_Customer_ bus_CustomerName ' AR_Customer_ bus_AddressLine1 ' AR_Customer_ bus_AddressLine2 ' AR_Customer_ bus_City ' AR_Customer_ bus_State ' AR_Customer_ bus_ZipCode ' Declaring variables not required to VB script, but provided for clarity Dim strName, strAddress1, strAddress2, strAddress3, strCity, strState, strZip, strLabel Set DymoAddIn = CreateObject( ""DYMO.DymoAddIn"" ) Set DymoLabel = CreateObject( ""DYMO.DymoLabels "") strMessage = ""Please Number of Labels:"" strTitle = ""Customer Maintenance - Dymo Label Printing"" strQty = Trim(UCase(InputBox (strMessage, strTitle, , 250, 250))) '---- Check for null values and replace as necessary ----- If IsNull(AR_Customer_ bus_CustomerName ) Then strName = """" Else strName = AR_Customer_ bus_CustomerName If IsNull(AR_Customer_ bus_AddressLine1 ) Then strAddress1 = """" Else strAddress1 = AR_Customer_ bus_AddressLine1 If IsNull(AR_Customer_ bus_AddressLine2 ) Then strAddress2 = """" Else strAddress2 = AR_Customer_ bus_AddressLine2 If IsNull(AR_Customer_ bus_CIty) Then strCity = """" Else strCity = AR_Customer_ bus_City If IsNull(AR_Customer_ bus_State) Then strState = """" Else strState = AR_Customer_ bus_State If IsNull(AR_Customer_ bus_ZipCode) Then strZip = """" Else strZip = AR_Customer_ bus_ZipCode strLabel = strName + chr(10) + strAddress1 + chr(10) + strAddress2 + chr(10) + chr(10) + strCity + "", "" + strState + "" "" + strZip DymoAddIn.Open ""N:\Server\Version4 \MAS90\CM\ SCRIPT\Dymo\ Address (30252, 30320, 30572).LWL"" DymoLabel.SetAddres s 1,strLabel DymoAddIn.Print strQty, False ---- End script ------ Well there you go. Three buttons to verify address with USPS and a script to ""quick print"" a label on a Dymo printer. The label script has also been added to the Contact and Ship To windows as well, so if you want them just ask and I'll post. If there is a request, I will post this scripts up on the group at Yahoo!. Enjoy. Myron Stevenson, CPA Clearis Consulting, Inc. Voice: 218-525-6720 Fax: 218-525-5880 Cell: 218-391-5888 email: myron@clearisconsul ting.com


  • 3.  RE: Is anyone using any type of product that will veri

    Posted 12-19-2014 12:39
    Wow! That's all I have to say! Thank you so much, love this group. Happy Holidays to you!


  • 4.  RE: Is anyone using any type of product that will veri

    Posted 12-19-2014 13:06
    Another Christmas Gift. If you are using UPS, here is a button script to put on the Address tab of Sales Order Entry. It verifies the address with UPS and helps avoid those address change chargebacks. Data is sent and returned as XML data. UPS is not 100% accurate. Three items are needed to make this work. A UPS license code, UPS login name and the password. These are available at www.ups.com. ' ' language VBScript ' ' panel variables ' SO_SalesOrder_bus_ShipToName ' SO_SalesOrder_bus_ShipToAddress1 ' SO_SalesOrder_bus_ShipToAddress2 ' SO_SalesOrder_bus_ShipToAddress3 ' SO_SalesOrder_bus_ShipToCity ' SO_SalesOrder_bus_ShipToState ' SO_SalesOrder_bus_ShipToZipCode ' SO_SalesOrder_bus_ShipToCountryCode ' ' system variables ' MAS_SCR_CMP : company code ' MAS_SCR_USR : user code ' MAS_SCR_MOD : module code ' MAS_SCR_DTE : current app date ' MAS_SCR_LIB : library ' MAS_SCR_PNL : panel ' MAS_SCR_OBJ : control [BT_LINK_x] ' MAS_SCR_CS : 1 if running Sage MAS 200 on client ' MAS_SCR_DBG : 1 to show script before and following execution ' '--------------------- DEFINE CONSTANTS ------------------------ Const myDebug = True Const SingleQuote = 39 Const DoubleQuote = 34 Const License = ""put the UPS License code here. Get from UPS"" Const username = ""your UPS user name. Same as used for logging UPS.com"" Const password = ""the password"" Const UPS_URL = ""https://onlinetools.ups.com/ups.app/xml/XAV"" '/////// Define Variables Dim objHTTP, strBody, strReply, xmlDoc, Root Dim strName, strAddress1, strAddress2, strAddress3, strCity, strState, strZip, strCountry '////// MAIN PROGRAM ///////// Set objHTTP = CreateObject(""Microsoft.XMLHTTP"") strName = Trim(SO_SalesOrder_bus_ShipToName) strAddress1 = Trim(SO_SalesOrder_bus_ShipToAddress1) strAddress2 = Trim(SO_SalesOrder_bus_ShipToAddress2) strAddress3 = Trim(SO_SalesOrder_bus_ShipToAddress3) strCity = Trim(SO_SalesOrder_bus_ShipToCity) strState = Trim(SO_SalesOrder_bus_ShipToState) strZip = Trim(SO_SalesOrder_bus_ShipToZipCode) strCountry = Trim(Left(SO_SalesOrder_bus_ShipToCountryCode,2)) If strCounty = """" Then strCountry = ""US"" strReply = """" objHTTP.open ""POST"", UPS_URL, False objHTTP.setRequestHeader ""Content-Type"", ""text/xml"" strBody = """" & vbCRLF & _ ""<AccessRequest xml:lang="" & Chr(SingleQuote) & ""en-US"" & Chr(SingleQuote) & "">"" & vbCrLf & _ ""<AccessLicenseNumber>"" & License & ""</AccessLicenseNumber>"" & vbCrLf & _ ""<UserId>"" & username & ""</UserId>"" & vbCrLf & _ ""<Password>"" & password & ""</Password>"" & vbCrLf & _ ""</AccessRequest>"" & vbCrLf & _ """" & vbCrLf & _ ""<AddressValidationRequest xml:lang="" & Chr(SingleQuote) & ""en-US"" & Chr(SingleQuote) & "">"" & vbCrLf & _ ""<Request>"" & vbCrLf & _ ""<TransactionReference>"" & vbCrLf & _ ""<CustomerContext /><XpciVersion>1.0001</XpciVersion>"" & vbCrLf & _ ""</TransactionReference>"" & vbCrLf & _ ""<RequestAction>XAV</RequestAction>"" & vbCrLf & _ ""<RequestOption>3</RequestOption>"" & vbCrLf & _ ""</Request>"" & vbCrLf & _ ""<MaximumListSize>3</MaximumListSize>"" & vbCrLf & _ ""<AddressKeyFormat>"" & vbCrLf & _ ""<ConsigneeName>"" & strName & ""</ConsigneeName>"" & vbCrLf & _ ""<BuildingName></BuildingName>"" & vbCrLf & _ ""<AddressLine>"" & strAddress1 & ""</AddressLine>"" & vbCrLf & _ ""<AddressLine>"" & strAddress2 & ""</AddressLine>"" & vbCrLf & _ ""<AddressLine>"" & strAddress3 & ""</AddressLine>"" & vbCrLf & _ ""<PoliticalDivision2>"" & strCity & ""</PoliticalDivision2>"" & vbCrLf & _ ""<PoliticalDivision1>"" & strState & ""</PoliticalDivision1>"" & vbCrLf & _ ""<PostcodePrimaryLow>"" & strZip & ""</PostcodePrimaryLow>"" & vbCrLf & _ ""<CountryCode>"" & strCountry & ""</CountryCode>"" & vbCrLf & _ ""</AddressKeyFormat>"" & vbCrLf & _ ""</AddressValidationRequest>"" objHTTP.send strBody strReply = objHTTP.responseText MsgBox strReply Set xmlDoc = CreateObject( ""Microsoft.XMLDOM"" ) xmlDoc.validateOnParse = False xmlDoc.loadXML(strReply) If (xmlDoc.parseError.errorCode <> 0) Then MsgBox ""Error in data returned by UPS"" Else strAddress = """" strName = """" Set nodes = xmlDoc.selectNodes(""//*"") for i = 0 to nodes.length - 1 'MsgBox nodes(i).nodeName & "" - "" & nodes(i).text Select Case nodes(i).nodeName Case ""ResponseStatusDescription"" strResponse = nodes(i).text Case ""AmbiguousAddressIndicator"" strResponse = strResponse & ""-"" & ""Address is ambiguous"" Case ""ConsigneeName"" strName = nodes(i).text & vbCrLf Case ""AddressClassification"" strAdressClassification = nodes(i).text Case ""AddressLine"" strAddress = strAddress & nodes(i).text & vbCrLf Case ""Region"" strRegion = nodes(i).text Case ""CountyCode"" strCountry = nodes(i).text End Select next If Left(strResponse,7) = ""Success"" Then strBody = strResponse & vbCrLf & strName & strAddress & strRegion & vbCrLf & strCountry MsgBox strBody Else MsgBox ""Address Verification Failed"" End If End If Set xmlDoc = Nothing Set objHTTP = Nothing


  • 5.  RE: Is anyone using any type of product that will veri

    Posted 12-19-2014 14:11
    Just an FYI - a bit off target but triggered thought - the Vertex sales tax automation does address verification as part of order entry for tax calculation. IIG had something for address verification as well.


  • 6.  RE: Is anyone using any type of product that will veri

    Posted 12-19-2014 14:15
    Avatax also provides address verification. I share these scripts with clients that have cooperative IT departments with programming capability. There is generally a good response as they like to do little tweaks to Sage 100 to demonstrate their value to their employers.


  • 7.  RE: Is anyone using any type of product that will veri

    Posted 12-19-2014 14:19
    These are very valuable to those who do not have the third party verification tools such as Avatax......