• | Talking CRM 2022 | A free virtual summit covering all things Sage CRM, including working with Sage 300 |

    Talking CRM 2022 is here, a free virtual summit covering all things Sage CRM. This year's event will include a session with My CRM Manager, CAT Consulting, Blytheco, Timelinx and more, all of whom talk us through linking Sage CRM to Sage accounting products to achieve so much more.

    https://youtu.be/iXw1gs48VtM

  • Failed to Import the ActiveX Control

    Over the last couple of years, some partners have had an issue where they were not able to add a VB OCX to a WinForms screen as they would receive a message from Visual Studio stating : "Failed to import the ActiveX control. Please ensure it is registered properly". See this link in the Reports, Macros, and Customizations forum: https://www.sagecity.com/us/sage300_erp/f/sage-300-reports-macros-and-customizations…

  • Sage 300 Advanced Complex Passwords

    Introduction

    Sage 300 passwords are becoming more complex, and the minimum size has increased!

    Sage 300 prior to 2022.2 (April 2022)
    • A basic password must start with a character and can contain numbers.
    • A complex password follows the basic configuration and additionally must contain one special character and one number.
    • If the Require Minimum Password Length option is enabled, the minimum password length is 4 characters…
  • Sage 300 - Sage CRM Integration Guide

    The integration between Sage 300 and Sage CRM creates a link that enables Sage CRM and Sage 300 to share information as it is entered into either program.

    After integration, front-office personnel can create customer quotes and orders in Sage CRM and then promote those quotes and orders to Sage 300. As quotes and orders are processed, both systems are updated, preventing redundant data entry and enabling front-office…

  • Sage 300 2020 Web SDK

    Introduction

    The Sage 300 Web SDK (SDK) is a collection of wizards, utilities, samples and documentation for developing Web Screens for the Sage 300 Application.

    This week we released the Sage 300 2020 Web SDK to coincide with the release of the Sage 300 2020 Application.

    It’s Available!

    The SDK is available at https://github.com/SageNADev/Sage300-SDK.

    Branches

    As described in a previous blog and in the README…

  • Sage 300 Unicode Support in the Web Screens

    Introduction

    Sage 300 supports English, French, Spanish, Traditional Chinese, and Simplified Chinese languages.

    Customers, using non-English languages in the Web Screens, may encounter pain points in the following areas:

    1. Different languages between the SQL Server database and the application server's system locale
    2. Different languages between the Sage 300 user’s language (locale) and the application server's system…
  • Sage 300 How to Debug into a Business View from a Sage 300 Web Screen

    Introduction

    Some developers may already know how to debug into your C/C++ Accpac Business View while debugging/running your module’s Sage 300 Web Screen. But, for those who do not, this little tip is very handy.

    This tip allows you to debug into your Accpac Business View (where you have the source) and from your module’s Sage 300 Web Screen.

    Debugging in the IDE

    You have your solution loaded in the Visual…

  • Sage 300: How to Create a Class in Visual Studio from JSON

    Introduction

    Some developers may already know how to create a class from JSON metadata. But, for those who do not, this little tip is very handy.

    I’ll use the Sage 300 Web API and create classes based upon the ARCustomers endpoint. Of course, this also possible with any JSON metadata, but since this is a Sage 300 blog, using Sage 300 metadata feels right.

    I give credit for this tip to Vega and I’m simply providing…

  • Sage 300 2019 Web SDK

    Introduction

    The Sage 300 Web SDK (SDK) is a collection of wizards, utilities, samples and documentation for developing Web Screens for the Sage 300 Application.

    This week we released the Sage 300 2019 Web SDK to coincide with the release of the Sage 300 2019 Application.

    It’s Available!

    The SDK is available at https://github.com/SageNADev/Sage300-SDK.

    Branches

    As described in a previous blog and in the README file…

  • Sage 300 Trouble Installing Visual Basic 6.0 on Windows Server 2012/2016

    Introduction

    The Sage 300 SDK, not Web SDK, requires Visual Basic 6.0 SP6 to be installed on the computer. But, what happens when that computer has Windows Server 2012/2016 and there are compatibility issues when attempting to install Visual Basic 6.0?

    This article will show how to get Visual Basic 6.0 successfully installed.

    Solution

    While this solution might not work for all, it has worked for Sage 300 developers.

  • Sage 300 How to Return Super View Values from the Process Service

    Introduction

    So, you are developing Web Screens for Sage 300 and you want to be able to check a field value or some field values that are returned from the super view. In the Sage 300 Desktop, which is based upon the Visual Basic 6.0 development environment, this is simple and straight-forward.

    But, how is this done in the Web Screens where the process is handled by a Worker Role?

    This article will explain how this is…

  • Sage 300 Compiling Web Screens in Release Mode Tip

    Introduction

    When developing Web Screens for Sage 300, a developer typically compiles and runs in Debug mode within the Visual Studio IDE.

    Changing to Release mode and compiling the solution performs an additional step which is to deploy or copy the required assemblies and files to the developer’s local Sage 300 installation. This is beneficial for the developer to see the screens running via the Sage 300 homepage.…

  • Sage 300 2018.2 Web SDK

    Introduction

    The Sage 300 Web SDK (SDK) is a collection of wizards, utilities, samples and documentation for developing Web Screens for the Sage 300 Application.

    This week we released the Sage 300 2018.2 Web SDK to coincide with the release of the Sage 300 2018.2 Application.

    It’s Available!

    The SDK is available at https://github.com/SageNADev/Sage300-SDK.

    Branches

    As described in a previous blog and in the README…

  • The Sage 300 2018.1 Web SDK is available now!

    Introduction

    The Sage 300 Web SDK (SDK) is a collection of wizards, utilities, samples and documentation for developing Web Screens for the Sage 300 Application.

    This week we released the Sage 300 2018.1 Web SDK to coincide with the release of the Sage 300 2018.1 Application.

    It’s Available!

    The SDK is available at https://github.com/SageNADev/Sage300-SDK.

    Branches

    As described in a previous blog and in the README…

  • Compiling Sage 300 Views with C++

    As you are probably aware, Sage 300 views can be compiled with a C++ compiler. You have probably noticed the:

    #if defined(__cplusplus)

    namespace A4WAPI {

    #endif

    wrappers in the program files and

    #ifdef __cplusplus

    extern "C" {

    #endif

    in the header files, but if you are like me, have never had a need to compile a view with C++, so never thought much about it. I’m certainly not recommending that you do compile…

  • Sage 300 and Visual Studio’s Code Maps

    Introduction

    The Sage 300 web screens are comprised of 113+ Visual Studio projects. This represents a large and complex code base. Simply opening a project and viewing the components and references to understand the relationships and dependencies can be a daunting task.

    The relationships and dependencies between not only projects but also classes and methods are sometimes best understood when presented visually.

    Microsoft…

  • Allow users to select a custom report file

    Printing reports in the VB UI is pretty straight forward and fairly well documented. You specify the report name in the RptName() function. Example:  RptName = "XXREPT01"

    Then, create a section in the report descriptor file (the xxrpt.ini file) with the same name. The report descriptor file defines things like the parameters for the report. You have probably noticed that if you don’t have a section in the xxrpt…

  • Sage 300 Optional Resource Files

    Introduction

    The Sage 300 Web Screens use Resource Files (Resx files) to localize strings, text, captions, messages, etc. that are presented in the screens. Behind the scene, these Resx files are supported by Microsoft’s Resource Manager class and framework.

    So, what happens if a Resx file for a language is not provided or blank values exist in a Resx file?

    Supported Languages

    Before we begin, let’s identify the…

  • Sage 300 JavaScript Bundle Names

    Introduction

    JavaScript Bundling is a technique that can be used to improve request load times. The Sage 300 Web Screens use this technique to bundle the required JavaScript files on a per screen basis.

    Known Issue

    There is a known issue that bundle names with a dot will generate a 404 error condition in certain situations. While the Sage 300 bundle names do not have a dot in the bundle name, it was recently discovered…

  • Sage 300 Date Utility

    Introduction

    Microsoft’s DateTime Structure is an object that represents an instant in time, typically expressed as a date and time of day.

    In Sage 300’s Web Screens, we use this object for dates and times in our C-Sharp code. However, we do not use its numerous properties and methods directly. Instead, we have encapsulated this functionality in our DateUtil class.

    Let’s me explain why we came to the decision…

  • Sage 300 Open Source SDK First Partner Contribution

    Introduction

    The Sage 300 Web SDK (SDK) is a collection of wizards, utilities, samples and documentation for developing Web Screens for the Sage 300 Application.

    This article is about the first partner contribution to the SDK!

    Ecosystem Benefits

    As I mention in the README document for the SDK in GitHub:

    All tools can only be so much to everyone in order to consider everyone’s based needs while providing functionality…

  • Sage 300 2017.1 Web SDK

    Introduction

    The Sage 300 Web SDK (SDK) is a collection of wizards, utilities, samples and documentation for developing Web Screens for the Sage 300 Application.

    This week we released the Sage 300 2017.1 Web SDK to coincide with the release of the Sage 300 2017.1 Application.

    It’s Available!

    The SDK is available at https://github.com/SageNADev/Sage300-SDK.

    This SDK has been previously made available via Sage’s DPP…

  • Open Source Web SDK – Policies and Procedures

    Introduction

    In my previous article, I shared my thoughts on open sourcing the Sage 300 Web SDK (SDK) and how, in my opinion, this will benefit the Sage 300 Ecosystem.

    In this article, I am introducing the SDK as Open Source Software (OSS) and will explain the changes to the original vision since the idea of open source was first presented along with the policies and procedures for the repository.

    It’s Available!…
  • Open Sourcing the Web SDK

    Introduction

    In this article, I want to share my thoughts on open sourcing the Web SDK for Sage 300 and how, in my opinion, this will benefit the Sage 300 Ecosystem.

    Open Source Software

    Let's start by first defining what Open Source Software (OSS) is:

    Open-source software (OSS) is computer software with its source code made available with a license in which the copyright holder provides the rights to study, change…

  • Implementing an External Finder

    Introduction

    The following question was recently asked:

    I am a developer working in my Sage assigned module and I need to invoke a finder from one of the standard Sage modules (i.e. AR, AP, GL, etc.). How do I do this?

    This article will illustrate the steps required to invoke a finder from a module other than what is currently being developed.

    Example

    To illustrate the steps involved in adding a finder from another module…