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.

Advertisements

24 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

  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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s