Introduction

Packaged integrations for SAP Business One and HighJump Edge WMS exist which run on our Windows-based integration platform, Springboard Server.

Pre-Requisites

  • Springboard Server 2017.12 or later

  • SQL Server 2008 or later

  • Windows Server 2016 or later

  • Admin user credentials for a Premium organisation

A Premium organisation admin can request an installation of Springboard Server and the Springboard Delivery integration from their account manager.

Technical Details

Springboard Server installation path is C:\Program Files (x86)\Springboard Applications\Springboard Server.  The Springboard Delivery integration is delivered as an application for Springboard Server.

The integration files are as follows:

Sub-FolderFiles
Server\Configuration

Configuration.xml

SpringboardDeliverySyncConfiguration.xml

Server\DllFolderSpringboardDeliverySync_TaskImplementation.dll

Here is an example Springboard Server configuration file Configuration.xml with a SpringboardDeliverySync application:

Configuration.xml
<?xml version="1.0" encoding="utf-8"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns="http://springboard.com/SpringboardServer.xsd">
  <MemoryMbThreshold enabled="true"><![CDATA[1024]]></MemoryMbThreshold>
  <HandleThreshold enabled="false"><![CDATA[10000]]></HandleThreshold>
  <CycleWaitMiliseconds><![CDATA[1000]]></CycleWaitMiliseconds>
  <ShutdownWaitSeconds><![CDATA[20]]></ShutdownWaitSeconds>
  <RootDirectory><![CDATA[C:\Program Files (x86)\Springboard Applications\Springboard Server\Server\DATA]]></RootDirectory>
  <DllFolder><![CDATA[C:\Program Files (x86)\Springboard Applications\Springboard Server\Server\DllFolder]]></DllFolder>
  <SpringboardServerSQL connection="ServerMariaDB" />

  <Connections>
    <!-- Mandatory -->
    <ConnectionSQL id="ServerMariaDB">
      <dbServer><![CDATA[127.0.0.1]]></dbServer>
      <dbName><![CDATA[server]]></dbName>
      <dbUser><![CDATA[sa]]></dbUser>
      <dbPassword><![CDATA[password]]></dbPassword>
      <dbTimeoutSeconds><![CDATA[30]]></dbTimeoutSeconds>
      <dbType>mysql</dbType>
    </ConnectionSQL>
    <ConnectionMSSQL id="AccellosSQL">
      <dbServer><![CDATA[DATABASE-SERVER]]></dbServer>
      <dbName><![CDATA[A1WMS]]></dbName>
      <dbTrusted><![CDATA[false]]></dbTrusted>
      <dbUser><![CDATA[sa]]></dbUser>
      <dbPassword><![CDATA[some_password]]></dbPassword>
      <dbTimeoutSeconds><![CDATA[30]]></dbTimeoutSeconds>
    </ConnectionMSSQL>
    <ConnectionMSSQL id="SAP_SQL">
      <dbServer><![CDATA[DATABASE-SERVER]]></dbServer>
      <dbName><![CDATA[SAPDatabase]]></dbName>
      <dbTrusted><![CDATA[false]]></dbTrusted>
      <dbUser><![CDATA[sa]]></dbUser>
      <dbPassword><![CDATA[some_password]]></dbPassword>
      <dbTimeoutSeconds><![CDATA[30]]></dbTimeoutSeconds>
    </ConnectionMSSQL>
    <ConnectionSAP id="SAP_DI">
      <user><![CDATA[manager]]></user>
      <password><![CDATA[some_password]]></password>
      <licenseServer><![CDATA[DATABASE-SERVER:30000]]></licenseServer>
      <dbType>2012</dbType>
      <dbServer><![CDATA[DATABASE-SERVER]]></dbServer>
      <dbName><![CDATA[SAPDatabase]]>]></dbName>
      <diVersion>90</diVersion>
    </ConnectionSAP>
  </Connections>

  <!-- If cronSchedule is left blank, the task will execute in a tight loop without pausing.  This is almost always
       undesirable, creating high system and/or database load. -->
  <!-- Consider threads carefully.  Separate threads allow tasks to execute in parallel, potentially increasing throughput,
       but be careful that they do not compete over shared resources, such as a database, which may in fact cause locking
       and reduced performance. -->
  <Applications>
    <Application id="SpringboardDeliverySync">
      <Task id ="AccellosUpload" enabled="true" cronSchedule="0 0/1 * 1/1 * ? *" thread="2" executionTimeoutSeconds="0">
        <connection name="AccellosSQL" />
      </Task>
      <Task id ="AccellosDownload" enabled="true" cronSchedule="0 0/1 * 1/1 * ? *" thread="2" executionTimeoutSeconds="0">
        <connection name="AccellosSQL" />
      </Task>
      <Task id ="SAPDownload" enabled="true" cronSchedule="0 0 0/1 1/1 * ? *" thread="2" executionTimeoutSeconds="0">
        <connection name="SAP_SQL" />
        <connection name="SAP_DI" />
      </Task>
    </Application>
  </Applications>

</Configuration>

You can also download the sample configuration file: Configuration.xml.

The configuration file can be edited with an external editor or you can use application SpringboardManager.exe, located in the Server sub-folder of the installation folder.  To be able to make configuration changes, it is likely you will need to run the application "as administrator".

For configuration changes to take effect, Springboard Server Windows service needs to be restarted.

The available tasks are as follows:

Task NameDetails
AccellosUpload

Periodically uploads orders/packslips marked for export from the WMS database to Springboard Delivery Hub.  If an order already exists in the Hub, its data will be updated.

  • Based on data from stored procedure BAL_Delivery_GetDepots in the WMS database, depots are added/updated in the Hub and marked to remove them from future uploads.
  • Based on data from stored procedure BAL_Delivery_GetRoutes in the WMS database, orders are added/updated in the Hub and marked to remove them from future uploads.
AccellosDownloadPeriodically downloads Springboard Delivery Hub orders newly marked for export to the WMS database and updates their data using stored procedure BAL_Delivery_UpdateStops.
SAPDownloadPeriodically polls Springboard Server Hub and retrieves newly-created POD's, whose data are synchronised with matched SAP deliveries or sales invoices. POD's belonging to Springboard Delivery order numbers which cannot be found in SAP Business One at the time of synchronisation are ignored. As data for each POD are downloaded, the POD is marked as downloaded in Springboard Server Hub.

Configuration For Integration With Springboard Delivery Hub

Further parameters for the integration with Springboard Delivery Hub are configured in file SpringboardDeliverySyncConfiguration.xml:

SpringboardDeliverySyncConfiguration.xml
<?xml version="1.0" encoding="utf-8" ?>
<root>
  <restEndpoint>https://hub.springboardapplications.com/api/data</restEndpoint>
  
  <httpBasicUsername>Not used</httpBasicUsername>
  <httpBasicPassword>Not used</httpBasicPassword>
  
  <deliveryEmail>admin.user@someorganisation.com</deliveryEmail>
  <deliveryPassword>some_password</deliveryPassword>

  <sapDocumentType>ODLN</sapDocumentType>
  <sapDocNumField>DocNum</sapDocNumField>
  <sapSignaturePath>C:\Program Files (x86)\SAP\SAP Business One Server\Bitmaps</sapSignaturePath>
  <sapPhotoPath>C:\Program Files (x86)\SAP\SAP Business One Server\Bitmaps</sapPhotoPath>
</root>

The editable elements in the file are as follows:

ElementDetails
restEndpointKeep https://hub.springboardapplications.com/api/data unless advised otherwise
deliveryEmailEmail of an organisation admin user
deliveryPasswordPassword for the user
sapDocumentType
  • ODLN - for delivery notes
  • OINV - for sales invoices
sapDocNumFieldName of SAP database field which holds values expected to match Springboard Delivery order numbers.  This can be a DocNum value, but can equally easily be any other field which is expected to uniquely identify the SAP delivery/invoice, including a user-defined field.
sapSignaturePathPath to a folder in which POD signature images will be saved, typically the SAP database path for images.  It must be writeable by the Springboard Server process.
sapPhotoPathPath to a folder in which POD photos will be saved, typically the SAP database path for images.  It must be writeable by the Springboard Server process.

SAP Business One Configuration

These steps must be completed before starting to use the integration against an SAP Business One company database.

Make sure the Pictures Folder is set and accessible:

To hold POD details, add the following user-defined fields to Marketing Documents at the Title level:

  • No labels