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 portal. However, starting with this release, we are only making the download of the SDK available via GitHub. It did not make sense to have almost identical downloads available from two different sources.

Branches

As described in a previous blog and in the README file in the root of the repository, the branches contain the different versions of the SDK.

master

Contains the current version of the SDK (2017.1).

develop

Contains the in-progress version of the SDK (2017.2).

release-2017

Contains the previous version of the SDK (2017).

What’s New

bin Folder

Now that we have a single download of the SDK, the previous version of the SDK, via GitHub, did not include the bin folder, which was included in the DPP download. The bin folder contains the assemblies generated by the wizards and utilities source.

This subtle addition allows the wizards and utilities to be used without first compiling the source for the wizards and utilities.

Documentation

Updated documentation is available.

The docs\presentations folder has been added and includes a PowerPoint presentation for what’s new in the SDK for 2017.1.

In the docs/development folder you will find two new documents. The first document is Sage 300’s updated brochure which highlights the benefits of the Sage 300 Software Architecture. The second document explains in detail the Worker Processing and Workflow Engine.

In the docs\customization folder are documents for the Customization Overview along with file specification for the XML and JSON files in the customization package.

In the docs\webapi folder are documents for the WebApi Endpoints and instructions for the WebApi Postman samples.

In the docs\upgrades folder is a document for the upgrade procedures for moving partner source from Sage 300 2017 to Sage 300 2017.1.

Customization

The SDK now provides a wizard, samples and documentation for the ability to customize a Web Screen. The bin\wizards folder contains the Sage300UICustomizationSolution.vsix plugin for Visual Studio, the docs\customization folder contains the documentation for the customization strategy, and the samples\customization folder contains three different samples illustrating how to customize a Web Screen.

Samples

The previous samples have been updated with new references and minor corrections.

The Clear Statistics sample has been added and is an example of the Process Type for Web Screens. This sample provides a working example of the A/R Clear Statistics screen along with the SQL required to participate in the Sage 300 Workflow Engine.

Three customization examples have been added and they use the OE Order Entry Screen, the OE Copy Orders Screen and the CS Tax Authorities Screen to illustrate the new customization abilities.

A new WebApi sample was added to illustrate integration and includes documentation and Postman collections.

Component Updates

Several core components were updated this release: Kendo UI (2016), Azure SDK (2.8) and the Target Framework (4.6.2).

Workflow Engine Enhancements

In order to facilitate participation with partner’s process screens, the Workflow Engine required an enhancement to ensure that partner process screens would not interfere with Sage processes or other partner processes. Therefore, integer fields were changed to GUID fields, enumerations changed, Landlord Database Tables modified and even the discovery location of SQL scripts were enhanced to facilitate successful integration with partner process screens.

Solution Wizard

Numerous changes to the wizard to support the updated components and references.

Code Generation Wizard

Numerous changes to the wizard to support the updated components and references.

The Process Type has been completed to generate a Process Screen will all of the required components in order for it to be compiled. A SQL file is generated that can be used to update the Landlord Database Workflow tables (via Portal button in the Database Setup Screen).

While the process screen is able to be compiled, it still requires manually completion to be functional.

WebApi

Several significant changes to the WebApi have been made, such as, an OData upgrade, support for the PATCH verb, Versioning, added endpoints, and Open API (Swagger).

 

Summary

The Sage 300 2017.1 SDK is released and ready to be downloaded!

Component Updates, new Customization Framework, new Samples, Processing enhancements and WebApi features and enhancements are all in the SDK.

We continue to look forward to addressing the needs and expectations of the Sage partner community and ecosystem.

As a standard disclaimer, any topic in this article is subject to review and doesn’t represent a commitment as to when it will be available.

39 thoughts on “Sage 300 2017.1 Web SDK

  1. Hi. I am a c# developer at a company where we are newly on-boarding Sage 300. One of the reasons we chose Sage 300 was the availability of the WebApi and the fact I found the SDK on github.

    I was further excited to see this update adopting swagger. Using 2017.1 I have successfully exported the swagger document. I have been unable however to create a library (c#) using AutoRest or nswag. I noticed in your repository you are using Swashbuckle.OData and wonder this could be related to another issue someone else was having with autorest (https://github.com/Azure/autorest/issues/1197).

    Are you using swagger to generate any client libraries? Any thoughts on including such an example in the samples?

    Like

  2. Hi JThomas,

    Greetings

    One of my clients is looking for a customization of Sage standard Order Entry Web UI. Is there an opportunity to customize the standard Order Entry Web UI using the SDK (Web) ?

    If yes, from what version Sage 300 it is feasible to customize the web UI..

    could you provide me with direction to sample code or documentation if any.

    Thanking you and looking forward to your reply

    Thanks,

    Like

    1. Yes. The Web SDK provides 3 samples for customization. One of those is for the Order Entry screen. So, yes it is possible and there is also a document in the docs\customization folder. release 2018 will expand on this sample in a tutorial.

      Like

  3. Thank you JThomas, I would look into the documentation and let you know if there are any queries on customizing Order Entry Web UI.

    Thanks,

    Like

  4. Hi JThomas,

    Greetings

    I am getting the below message when i try to login to Web screens Sage 300 2017. Could you please guide me where i need to setup the credentials or i need to do something in portal database?

    “Credentials for the Portal database must be set up before you can use this product. Ask your system administrator for help.”

    Thanks,

    Like

  5. In Sage 300’s desktop program “Database Setup”, there is a “Portal” button. When web screens are installed, this “Portal” button establishes a connection to the portal or landlord database used by the Sage 300 Web Screens. This database must be setup in advance in SQL Server. SQL Server must be configured to use tcp (if not previously done). In this “Portal” screen, you will enter credentials for this portal/landlord database. The screen will populate the database with tenant and workflow information necessary for the web screens and it will create the dbconfig.xml file located in the SITE folder. Without this file providing access to the portal/landlord database, this error message is surfaced in the web screens.

    Like

    1. Hi John we tried these suggestions but still have an issue adding the PORTAL db. Steps are below that we followed:
      1. uninstalled and re-installed Sage 300 on the client server, but this has not resolved the issue.
      2. Windows Firewall is off on the server still same issue.
      3. Tried using an ODBC connection but that didn’t make a difference same error.

      Like

      1. Please post a screenshot of the error you are receiving. Have you enabled tcp/ip for SQL Server? I am assuming that you are receiving an error in the Database Setup screen when accessing the “Portal” button. Have you created the “PORTASL” database in SQL Server first? What credentials are you using?

        Like

  6. Hello JT,

    I’ve downloaded the SDK, when I extracted the files, all the folders are in chaos. All the files not in its folder/subfolder. Managed to find the Sage Customization Wizard but unfortunately it done nothing, nothing appear, no error, just nothing. What wrong the SDK currently? Or is it my computer problem?

    Like

  7. I have re-downloaded/cloned from GitHub and the folder structure is correct. So, I do not see it as an issue with the repository. Are you cloning or downloading the zip from the repository?

    Like

      1. Hi JT,

        I am getting the below error when i launch the Sage Web Screens. could you please guide me as how to overcome the below error..

        erver Error in ‘/Sage300’ Application.

        Could not load file or assembly ‘ACCPAC.Advantage.Types, Version=6.4.0.0, Culture=neutral, PublicKeyToken=4d7048ecf2312a7c’ or one of its dependencies. The system cannot find the file specified.

        Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

        Exception Details: System.IO.FileNotFoundException: Could not load file or assembly ‘ACCPAC.Advantage.Types, Version=6.4.0.0, Culture=neutral, PublicKeyToken=4d7048ecf2312a7c’ or one of its dependencies. The system cannot find the file specified.

        Source Error:

        An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

        Assembly Load Trace: The following information can be helpful to determine why the assembly ‘ACCPAC.Advantage.Types, Version=6.4.0.0, Culture=neutral, PublicKeyToken=4d7048ecf2312a7c’ could not be loaded.

        === Pre-bind state information ===
        LOG: DisplayName = ACCPAC.Advantage.Types, Version=6.4.0.0, Culture=neutral, PublicKeyToken=4d7048ecf2312a7c
        (Fully-specified)
        LOG: Appbase = file:///C:/Program Files (x86)/Sage/Sage Accpac/Online/Web/
        LOG: Initial PrivatePath = C:\Program Files (x86)\Sage\Sage Accpac\Online\Web\bin
        Calling assembly : Sage.CA.SBS.ERP.Sage300.Common.Interfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
        ===
        LOG: This bind starts in default load context.
        LOG: Using application configuration file: C:\Program Files (x86)\Sage\Sage Accpac\Online\Web\web.config
        LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
        LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
        LOG: Post-policy reference: ACCPAC.Advantage.Types, Version=6.4.0.0, Culture=neutral, PublicKeyToken=4d7048ecf2312a7c
        LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/sage300/4c5f422f/c0d071cf/ACCPAC.Advantage.Types.DLL.
        LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/sage300/4c5f422f/c0d071cf/ACCPAC.Advantage.Types/ACCPAC.Advantage.Types.DLL.
        LOG: Attempting download of new URL file:///C:/Program Files (x86)/Sage/Sage Accpac/Online/Web/bin/ACCPAC.Advantage.Types.DLL.
        LOG: Attempting download of new URL file:///C:/Program Files (x86)/Sage/Sage Accpac/Online/Web/bin/ACCPAC.Advantage.Types/ACCPAC.Advantage.Types.DLL.
        LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/sage300/4c5f422f/c0d071cf/ACCPAC.Advantage.Types.EXE.
        LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/sage300/4c5f422f/c0d071cf/ACCPAC.Advantage.Types/ACCPAC.Advantage.Types.EXE.
        LOG: Attempting download of new URL file:///C:/Program Files (x86)/Sage/Sage Accpac/Online/Web/bin/ACCPAC.Advantage.Types.EXE.
        LOG: Attempting download of new URL file:///C:/Program Files (x86)/Sage/Sage Accpac/Online/Web/bin/ACCPAC.Advantage.Types/ACCPAC.Advantage.Types.EXE.

        Like

  8. What version of the Sage 300 application are you running? It is looking for version 6.4.0.0 of the Accpac libraries, which means that this version of the SDK is Sage 300 Web SDK 2017. The Web SDK and the application must be in sync. So, if you are running a newer version of the application, you will need a newer version of the SDK. The GitHub repository has several branches all named after the versions they are specific to, with exception of ‘master’, which is currently Sage 300 2018 and ‘develop’ which is Sage 300 2018.1 (in-progress). Hope this helps.

    Like

    1. Thank you very much for the response JT.

      Hit the nail on the head. I was using SDK 6.2A. I shall install the Sage 300 Web SDK 2017 and let you know the feedback.

      thanks again,

      Like

      1. Hi John,

        I am unable to find the Sage 300 2017 SDK in Github. Could you please let me know the link or location to download the SDK from Github?
        Looking forward to your response.

        thanks,

        Like

      1. A user/customer of the Sage 300 Web Screens does not require the Sage 300 Web SDK. The Web SDK is for a partner or developer to write code, look at samples, read doc , etc. But, if the Web SDK is used, it must match the version of the Sage 300 application as the SDK references the version of the Accpac Libraries (i.e. 6.5.0.0 for release 2018).

        Like

  9. Dear John,
    Trust this mail finds you well. Databytes Integrated Services Ltd is a Sage Business Partner in Nigeria. We need to do integrated some third party solutions to Sage 300 to achieve single pint of data entry. The WebApi document was provided to us by Patty. We, however, have a challenge at the point of logon to access the Api. There was no any error message display for us to understand what the issue is. We used ADMIN, ADMIN as username and password, yet we could not login. Kindly help on how to proceed.
    We look forward to hearing from you as soon as possible.

    Saheed.

    Like

  10. I am doing well and I trust the same for you.

    In regards to the dialog box prompting for credentials, this comes from IIS and is not our dialog box. I only point this out because ‘case’ is important. For example, when logging into Sage 300 (desktop or web screens), regards of what is typed in, we force to upper case (i.e. admin, admin becomes ADMIN, ADMIN). The IIS dialog does not do this and therefore you must type in upper case.

    So, if you are doing this already, then this is not the problem.

    I see in this email thread that Patty has already given the information on the two web.config entries that must be modified to allow the ADMIN user to access the web api’s. I’m assuming that you have done this.

    There are two other areas to look at:

    1. The Sage 300 WebAPi’s must have the “Sage 300 Web API” security group enabled for the module’s endpoint you are trying to access (i.e. if you are attempting to access an AP endpoint, then this security group must be enabled for AP). This is required for a non-admin user as ADMIN will bypass this check. So, this is likely not the issue.
    2. I see that you are using the Chrome Browser (by looking at the snapshot provided). Chrome has additional security settings unlike IE or Firefox. DPP has a KB article for this, but let me explain it here. If you bring up your IIS settings, Navigate to Sites  Default Web Site  Sage300WebApi, you will notice the setting for ‘Windows Authentication’. If this is marked as ‘Enabled’, it must be set to ‘Disabled’. Change this entry as indicated, re-start IIS, close down your browser, and then retry the web api. If this is the cause, and it most likely is, you will now be successful.

    I hope this helps and please let me know if you are successful.

    Like

  11. Hi

    I am trying to install the Sage300UICustomizationSolution.vsix plugin for the Visual studio web SDK. But it is not installing and throwing the error as below in the log file.

    VSIXInstaller.NoApplicableSKUsException: This extension is not installable on any currently installed products.
    at VSIXInstaller.App.GetInstallableData(String vsixPath, Boolean isRepairSupported, IEnumerable`1& skuData)
    at VSIXInstaller.App.Initialize(Boolean isRepairSupported)
    at VSIXInstaller.App.Initialize()
    at System.Threading.Tasks.Task`1.InnerInvoke()
    at System.Threading.Tasks.Task.Execute()

    Please help me to resolve this issue.

    Thank you,
    Prakash D

    Like

  12. Hello,

    What version of Visual Studio are you using? Currently, the Sage 300 wizards are compatible with Visual Studio 2013 and Visual Studio 2015.

    Also, are you attempting to install the 2017.1 wizard as the Sage 300 2018.1 wizards and SDK was recently released.

    Like

  13. Hi John,

    Thank you for your quick reply.

    I am using Visual Studio 2017 community edition for my app developments and hence wanted to know whether Sage 300 SDK 2018 is compatible with for customization.

    Looking forward to your response.

    Thanks,
    Prakash D

    Like

    1. Currently, the Wizards are compatible with Visual Studio 2013 and 2015. In the upcoming release, we will add Visual Studio 2017 to that list. Of course, because the wizards are open source, you could modify the manifest to add Visual Studio 2017. This is what we will be doing in our upcoming release.

      Like

  14. Hi John,

    As per the Web Screen customization document, I need to download and install Kendo UI tool. Looks like it is a paid and use tool. Is it not part of the SDK? do we need to buy this for doing any customization in Sage 300 Web Screens?

    Looking forward to your reply.

    Thanks,
    Prakash D

    Like

  15. Hello,

    The Kendo UI tool is required to be purchased by developers who are wanting to create web screens in a module assigned to them by Sage. If a partner is only creating a customization that does not have an endpoint (Controller endpoint created by a Visual Studio solution), I do not see the need as they are not developing in the Kendo UI and thus would not require a license.

    Like

  16. Hi John,

    I opened the SourceCodes application from web SDK 2018. I have included all the missing references and even though i am getting the type or namespace missing error for (BusinessEntityProperty) in SourceCodeRepositorry.cs file of ValuedPartner.TU.BusinessRepository. Please help me to resolve this issue.

    Thank you,
    Prakash D

    Like

  17. Hi John,

    I am creating new customization project for order entry. I am using the new 2018 SDK and i followed the steps mentioned in a given document. I have refered the missing DLL’s from my old 2017 version.

    I have referred the 2017 Sage.CA.SBS.ERP.Sage300.Common.Resources.dll file in my project. But the RESX(CommonResx) file is missing the CommonResx.EndsWith, CommonResx.ClickAddFilter, CommonResx.AddCriteria, CommonResx.CreateFilterPopUpTitle, CommonResx.Customization,CommonResx.Customization2, @CommonResx.NoResultsFound, @CommonResx.CustomizationID, @CommonResx.CustomizationDescription and @CommonResx.UIProfiles parameters. So can i get the latest DLL file or is it possible to include those parameters for resolving this issue.

    For temporary purpose i made this string values as ”(Empty) and i ran this project. Now i am getting “An unexpected problem has occurred. Please try again or contact your administrator for assistance.” in the Error screen. How can we find the exact error and how to resolve it?

    Please help me to resolve those issues.

    Thank you,
    Prakash D

    Like

  18. Hello,

    Just a reminder that the Sage 300 Web SDK must use the same version of the Sage 300 application. Therefore, if you have downloaded the Sage 300 Web SDK from the ‘master’ branch, then the Sage 300 2018.1 (or PU1) application must be installed. If you are saying you downloaded the 2018 Web SDK, then you have downloaded it from the ‘release-2018’ branch AND have the Sage 300 2018 application installed. Correct?

    If the above is true, you need to check your log file to understand what is being reported. In your local project there is a trace.log file in the Logs folder. There are also log files (trace.log) in the application’s …\Online\Web\Logs and …\Online\Worker\Logs folders. Although I do not expect that the errors are being reported in the application if you are seeing this error while running the Visual Studio solution. Therefore, it will be in the local log file.

    But, I do suspect a mismatch of application and Web SDK versions.

    Like

  19. Hey, Very good timing on this question! We are currently working with the Sage CRM folks to invoke our sage 300 web screens from the Sage CRM web screens. We are creating a proxy that will be leveraged by the Sage CRM screens to do this. When this integration is complete, we will include the proxy in the Web SDK. So, this functionality is coming and we expect this for our Sage 2019 release (August 2018).

    Thanks!

    Like

  20. Hi JT,

    Greetings for the day

    For one my customers requirement, user will do OE Order Entry and the customization is to populate the Line Item Category with the Order Header optional fields default value, i noticed in “Sage300 WebAPI Endpoint references” document that there is no Endpoint reference (OEOFD – OE0470) for getting the Order Header optional field’s default value.

    Is there an Endpoint reference (OEOFD – OE0470) for getting Order Header optional field’s default value? If NOT, what is the alternative way to get the default value when the user is entering an OE Order?

    Looking forward to your response.

    Dev Environment:
    Sage 300 Web – Version 2017.2
    IDE – Visual Studio 2015
    Backend – MS SQL Server 2016
    Web Server – IIS 10
    Operating System – MS Windows 10

    Like

Leave a comment