ConnectBooster & Dynamics GP Deployment Guide

Introduction

Copyright

This document is provided "as-is". Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. Examples depicted herein are provided for illustration only and are fictitious. This document does not provide you with any legal rights to any intellectual property in the ConnectBooster product. You may copy and use this document for internal purposes. © 2017 ConnectBooster. All rights reserved. All trademarks are property of their respective owners.

Back To Top

Overview

ConnectBooster is a portal solution that integrates with your accounting and CRM/PSA software to provide real-time information to your customers on invoices, payments, and service tickets. Enable your customers to quickly and easily view their invoices, pay their invoices and set up autopay contracts. Get paid on time, every time. Use this guide to learn how to install and configure ConnectBooster for use with Microsoft Dynamics GP. This guide includes step-by-step instructions for installing the GP Web Services, installing and configuring the needed web service extensions, and setting up Dynamics GP for use with ConnectBooster. For more information or assistance, please visit the ConnectBooster at http://www.connectbooster.com.

Back To Top

GP Web Services Deployment

Get Started

Web Services for Microsoft Dynamics GP is a core requirement for integrating with ConnectBooster. If the Web Services for Microsoft Dynamics GP are already installed, you may skip this section. To install the web services for Microsoft Dynamics GP, follow these instructions: Launch the setup utility. Under Additional Products, click on Web Services Runtime.

Back To Top

License Agreement

Accept the terms of the License Agreement and click Next.

Back To Top

Multi-Tenant Configuration

If needed, configure your Web Services for Microsoft Dynamics GP for multi-tenant access.

Back To Top

SQL Connection Information

Enter the server name (SQL Server Instance Name), and confirm the Dynamics GP System Database name (default is DYNAMICS). Change it to the system database name you are using if you are not using the default. If required, change the authentication method.

Back To Top

Install Location

Confirm the installation path of Microsoft Dynamics GP. The default is shown in the screen below:

Back To Top

Dynamics Security Data Store

Select where the security data for Web Services should be stored. The recommendation is to use SQL Server for the Dynamics Security Data Store.

Back To Top

SQL Server Connection Information

Having selected SQL Server for the Dynamics Security Data Store, the next step is to enter SQL Server Name and Database Name.

Back To Top

SQL Security Store Pop-Up

You may see a message stating no security store exists and one will be created during installation. This is to be expected.

Back To Top

Application User Account

Enter the Windows account information which will be used as a service account for Web Services on the Application User Account step.

Back To Top

Service Ports

Select the ports you would like to use for the Web Services. The default of 48620 for the Web Services port and 48621 for the Security Admin Service can be used, or mark the Specify a Port checkbox and enter different port numbers.

Back To Top

Workflow Settings

If you are using Workflow and the web client, there are additional settings you must set. Those are outside the scope of setup for use with ConnectBooster. Please contact your Microsoft Dynamics GP partner for assistance with the web client and workflow setup. Leave the checkbox unchecked and click Next.

Back To Top

Install Program

Begin the installation by clicking Install. Once it's finished, click exit.

Back To Top

Configure the GP Web Services

Get Started

Launch the Dynamics GP Web Services Configuration Wizard from the Start menu. On the Welcome screen, click Next:

Back To Top

Connection Information

Review the Connection Information and click Next.

Back To Top

System Setup

A System Setup check will be performed to ensure that each company has a Functional Currency. If you see two green checks, you are set up correctly. You may see a red cross, which indicates your functional currency has not been setup correctly, or for all companies. Correct this and re-run the configuration.

Back To Top

Company Selection

Select the companies which should have the web services deployed and then click Next.

Back To Top

Summary

Verify the List of companies to be processed, on the Summary step, and then click Next:   On the confirmation dialog click Yes to begin the installation.

Back To Top

Finish

Once the deployment of the web services for the is complete, click Complete.

Back To Top

Restart Windows Service

When prompted, click Yesto restart the Windows Service hosting the Web Services for Microsoft Dynamics GP.

Back To Top

Configuring SSL Support

Configure SSL Certificate

ConnectBooster recommends utilizing SSL to encrypt the transfer of data between Dynamics GP and the ConnectBooster service. To configure your Web Services for Dynamics GP to use SSL, follow these instructions.

Step 1

Before we begin, please consider the following:
  1. You will need to find new ports for your Microsoft Dynamics GP Web Services application to run on because you will be altering the default bindings to allow SSL.
    1. By default, it was probably installed to port 48620 for the web services and 48621 for the security admin service.
    2. For the example below we’ll be using port 48622 and 48623. You may use any available ports on your Web Services machine
  2. It is highly recommended to backup any .config file before making changes.

Step 2

Acquire a trusted SSL certificate from a valid certificate authority. Examples would be GoDaddy, Verisign, and GeoTrust. Make sure to create your certificate using the hostname you plan to use for access to the Web Services for Dynamics GP (i.e. ws.yourdomainname.com).

Step 3

Register the certificate for the new ports (48622 and 48623) by running the following in an elevated Command Prompt (right-click on the Command Prompt shortcut and select Run as Administrator): netsh http add sslcert ipport=0.0.0.0:<SSLPORT#> certhash=<THUMBPRINT ID> appid=<ARBITRARY GUID> EXAMPLE: netsh http add sslcert ipport=0.0.0.0:48622 certhash=05a298da9200ee2e18250452e07928ce8f716f27 appid={07663267-F6A1-4F6F-9833-56FD0ABE0B89}

Step 4

Add a URL reservation for your new https base addresses (e.g. the native/legacy endpoint (48622) and Dynamics Security Admin (48623)) by running the following in an elevated Command Prompt: netsh http add urlacl url=https://+:<SSLPort#>/ user=<SERVICE USER> EXAMPLE: netsh http add urlacl url=https://+:48622/ user=domain\user NOTE: Trailing slash is required

Back To Top

Update Bindings

Step 1

Update the wsHttpBinding in WSBindings.config (found in C:\Program Files\Microsoft Dynamics\GPWebServices\ServiceConfigs)

Step 2

Create a second binding that is a duplicate of the existing WSHttpBindingTarget binding. Rename it to something like WSHttpBindingTargetSSL. Set the security mode to “Transport” EXAMPLE: <wsHttpBinding> <binding name="WSHttpBindingTarget" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true”> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/> <security mode="Message"> <message clientCredentialType="Windows"/> </security> </binding> <binding name="WSHttpBindingTargetSSL" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/> <security mode="Transport"> <message clientCredentialType="Windows"/> </security> </binding> </wsHttpBinding>

Step 3

Update the basicHttpBinding in WSBindings.config (found in C:\Program Files\Microsoft Dynamics\GPWebServices\ServiceConfigs).

Step 4

Create a second binding that is a duplicate of the existing BasicHttpBindingTarget binding. Rename it to something like BasicHttpBindingTargetSSL. Set the security mode to “Transport” EXAMPLE: <basicHttpBinding> <binding name="BasicHttpBindingTarget" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true”> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Ntlm"/> </security> </binding> <binding name="BasicHttpBindingTargetSSL" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/> <security mode="Transport"> <transport clientCredentialType="Ntlm"/> </security> </binding> </basicHttpBinding>

Step 5

You then need to update the service configuration file:

Step 6

Open DynamicsGP.config (found in C:\Program Files\Microsoft Dynamics\GPWebServices\ServiceConfigs)

Step 7

Make the following change under <services> Change: <service name="Microsoft.Dynamics.GP.WebServices.Contract.DynamicsGP" behaviorConfiguration="GPWCFStaticMetadataBehavior"> To: <service name="Microsoft.Dynamics.GP.WebServices.Contract.DynamicsGP" behaviorConfiguration="GPDynamicMetadataBehavior">   Change: <endpoint address="GPService" name="GPWebService" binding="wsHttpBinding" bindingConfiguration="WSHttpBindingTarget" contract="Microsoft.Dynamics.GP.WebServices.Contract.IGPServices"/> To: <endpoint address="GPService" name="GPWebService" binding="wsHttpBinding" bindingConfiguration="WSHttpBindingTargetSSL" contract="Microsoft.Dynamics.GP.WebServices.Contract.IGPServices"/>

Step 8

Add another entry under <baseAddresses> with your secure URL: EXAMPLE: <baseAddresses> <add baseAddress="http://<machinename>:<assignedport#>/Dynamics/GPService"/> <add baseAddress="https://<machinename.domain.com>:<SSLPort#>/Dynamics/GPService"/> </baseAddresses> NOTE: Replace <machinename.domain.com> with an appropriate URL and <SSLPort#> with the new port (e.g. 48622).

Step 9

Update the <serviceMetadata> attribute of the GPDynamicMetadataBehavior section as follows: <behavior name="GPDynamicMetadataBehavior"> <serviceThrottling maxConcurrentSessions="1024"/> <serviceMetadata httpsGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="true"/> <dataContractSerializer maxItemsInObjectGraph="2147483647"/> <serviceCredentials> <userNameAuthentication cacheLogonTokens="true"/> </serviceCredentials> </behavior>

Back To Top

Firewall Configuration

Note: The ports you selected above for the Web Services port must be routed through your firewall to allow ConnectBooster to access Dynamics GP. An IP address range will be provided to allow for additional security.

Step 1

Update your firewall configuration to make sure your new ports are allowed. An IP address range can be provided to improve security.

Step 2

Restart the Microsoft Dynamics Service Host service to force the changes. If you encounter errors, you can review the Dynamics Event Viewer log (under Applications and Services Logs) for more information. The service should start successfully. If not, check the Dynamics Event Viewer log, found under Applications and Services Logs for more information.

Back To Top

Installing Web Service Extensions

Get Started

ConnectBooster utilizes several Web Service Extensions for Dynamics GP to operate. This section explains installing and configuring those extensions. ConnectBooster utilizes several Web Service Extensions for Dynamics GP to operate. This section explains installing and configuring those extensions. To download the Web Service Extensions for your version of Dynamics GP, please click the appropriate link below:

GP 2013 | GP 2015 | GP 2016 | GP 2016 R2 | GP 2018

Locate file named BusinessObjectFile.config. This file contains the registrations for all of the additional events that are run by the Dynamics GP service. This file is in XML format. It is located in the ServiceConfigs folder of Dynamics GP web service, typically found in this this location: C:\Program Files\Microsoft Dynamics\GPWebServices

Back To Top

File Edits

Step 1

Open the file and locate the dictionary object with the following key: <Key xsi:type="xsd:string">Microsoft.Dynamics.GP.CashReceipt</Key> Under the Value node, add the following two events: <Event> <EventName>Retrieved</EventName> <EventHandlerType> <Type>Microsoft.Dynamics.Common.BusinessObjectEventHandler</Type> <Assembly>Microsoft.Dynamics.Common</Assembly> </EventHandlerType> <EventHandler> <SoftwareVendor>ConnectBooster</SoftwareVendor> <Type>CBGPWSExtensions.CBGPWSExtensions</Type> <StaticMethod>GetCashReceiptExtensionData</StaticMethod> <Assembly>CBGPWSExtensions</Assembly> <Execute>true</Execute> </EventHandler> </Event> <Event> <EventName>Created</EventName> <EventHandlerType> <Type>Microsoft.Dynamics.Common.BusinessObjectEventHandler</Type> <Assembly>Microsoft.Dynamics.Common</Assembly> </EventHandlerType> <EventHandler> <SoftwareVendor>ConnectBooster</SoftwareVendor> <Type>CBGPWSExtensions.CBGPWSExtensions</Type> <StaticMethod>CreateCashReceiptExtension</StaticMethod> <Assembly>CBGPWSExtensions</Assembly> <Execute>true</Execute> </EventHandler> </Event>

Step 2

Locate the dictionary object with the following key: <Key xsi:type="xsd:string">Microsoft.Dynamics.GP.ReceivablesCreditMemo</Key> Under the Value node, add the following event: <Event> <EventName>Retrieved</EventName> <EventHandlerType> <Type>Microsoft.Dynamics.Common.BusinessObjectEventHandler</Type> <Assembly>Microsoft.Dynamics.Common</Assembly> </EventHandlerType> <EventHandler> <SoftwareVendor>ConnectBooster</SoftwareVendor> <Type>CBGPWSExtensions.CBGPWSExtensions</Type> <StaticMethod>GetReceivablesCreditMemoExtensionData</StaticMethod> <Assembly>CBGPWSExtensions</Assembly> <Execute>true</Execute> </EventHandler> </Event>

Step 3

Locate the dictionary object with the following key: <Key xsi:type="xsd:string">Microsoft.Dynamics.GP.SalesInvoice</Key> Under the Value node, add the following event: <Event> <EventName>Retrieved</EventName> <EventHandlerType> <Type>Microsoft.Dynamics.Common.BusinessObjectEventHandler</Type> <Assembly>Microsoft.Dynamics.Common</Assembly> </EventHandlerType> <EventHandler> <SoftwareVendor>ConnectBooster</SoftwareVendor> <Type>CBGPWSExtensions.CBGPWSExtensions</Type> <StaticMethod>GetSalesInvoiceExtensionData</StaticMethod> <Assembly>CBGPWSExtensions</Assembly> <Execute>true</Execute> </EventHandler> </Event>

Step 4

Locate the dictionary object with the following key: <Key xsi:type="xsd:string">Microsoft.Dynamics.GP.ReceivablesReturn</Key> Under the Value node, add the following event: <Event> <EventName>Retrieved</EventName> <EventHandlerType> <Type>Microsoft.Dynamics.Common.BusinessObjectEventHandler</Type> <Assembly>Microsoft.Dynamics.Common</Assembly> </EventHandlerType> <EventHandler> <SoftwareVendor>ConnectBooster</SoftwareVendor> <Type>CBGPWSExtensions.CBGPWSExtensions</Type> <StaticMethod>GetReceivablesCreditMemoExtensionData</StaticMethod> <Assembly>CBGPWSExtensions</Assembly> <Execute>true</Execute> </EventHandler> </Event>

Step 5

Locate the dictionary object with the following key: <Key xsi:type="xsd:string">Microsoft.Dynamics.GP.SalesReturn</Key> Under the Value node, add the following event: <Event> <EventName>Retrieved</EventName> <EventHandlerType> <Type>Microsoft.Dynamics.Common.BusinessObjectEventHandler</Type> <Assembly>Microsoft.Dynamics.Common</Assembly> </EventHandlerType> <EventHandler> <SoftwareVendor>ConnectBooster</SoftwareVendor> <Type>CBGPWSExtensions.CBGPWSExtensions</Type> <StaticMethod>GetSalesReturnsExtensionData</StaticMethod> <Assembly>CBGPWSExtensions</Assembly> <Execute>true</Execute> </EventHandler> </Event>

Step 6

Locate the dictionary object with the following key: <Key xsi:type="xsd:string">Microsoft.Dynamics.GP.ReceivablesInvoice</Key> Under the Value node, add the following event: <Event> <EventName>Retrieved</EventName> <EventHandlerType> <Type>Microsoft.Dynamics.Common.BusinessObjectEventHandler</Type> <Assembly>Microsoft.Dynamics.Common</Assembly> </EventHandlerType> <EventHandler> <SoftwareVendor>ConnectBooster</SoftwareVendor> <Type>CBGPWSExtensions.CBGPWSExtensions</Type> <StaticMethod>GetRMInvoiceExtensionData</StaticMethod> <Assembly>CBGPWSExtensions</Assembly> <Execute>true</Execute> </EventHandler> </Event>

Step 7

  1. Add the following dictionary object to the file:
<DictionaryEntry> <Key xsi:type="xsd:string">Microsoft.Dynamics.GP.Customer</Key> <Value xsi:type="BusinessObjectConfiguration"> <Event> <EventName>Retrieved</EventName> <EventHandlerType> <Type>Microsoft.Dynamics.Common.BusinessObjectEventHandler</Type> <Assembly>Microsoft.Dynamics.Common</Assembly> </EventHandlerType> <EventHandler> <SoftwareVendor>ConnectBooster</SoftwareVendor> <Type>CBGPWSExtensions.CBGPWSExtensions</Type> <StaticMethod>GetCustomerExtensionData</StaticMethod> <Assembly>CBGPWSExtensions</Assembly> <Execute>true</Execute> </EventHandler> </Event> </Value> </DictionaryEntry>

Step 8

Save the file.  

Back To Top

Microsoft Dynamics GP Service Host

Open the Services control panel from Control Panel -> Administrative Tools -> Services. Stop the Microsoft Dynamics GP Service Host service.  

Back To Top

Final Steps

Copy the CBGPWSExtensions.dll file to the folder for the Dynamics GP web service, typically found in this this location: C:\Program Files\Microsoft Dynamics\GPWebServices Finally, start the Microsoft Dynamics GP Service Host service from the services control panel.

Back To Top

Configuring Web Service Extensions & Security

Get Started

ConnectBooster leverages the Dynamics Security Console to manage security and policies for ConnectBooster within Dynamics GP.

Back To Top

Cash Receipt Policy

Begin by updating the Create Cash Receipt policy to match your organization’s needs. To alter this policy perform the following steps:

Step 1

Open the Dynamics Security Console. Expand the Microsoft Dynamics GP Web Services node in the left menu.

Step 2

Click on the Policy node. Expand the Receivables Documents node. Click on the Create Cash Receipt Policy.

Step 3

Ensure you select the appropriate GP company from the dropdown in the main pane.

Step 4

The main pane will show the available options. The options that can be set are:
  1. Assign Batch Prefix – Will determine the batch prefix for payments created by ConnectBooster.
  2. Create Batch – Determines the frequency of the batch creation for payments created by ConnectBooster. Available options are hourly, daily or weekly.
  3. Create GL Account Distributions Behavior – Will determine if GL distributions are provided or handled automatically. NOTE – Only automatic GL distributions are supported by ConnectBooster.
  4. Day of Week – Determines the day of the week to create a payment batch, if batch frequency is set to weekly.

Step 5

Choose Properties to update the appropriate options. The recommended values are:
  1. Batch prefix – “WEB”
  2. Batch frequency – Daily
  3. GL Distribution Behavior – Automatic
  4. Batch day of week – Monday (only applicable if doing weekly batches)

Back To Top

Security Roles

ConnectBooster recommends creating a custom security role to govern the access that the service account is provided within Dynamics GP. To create this role, perform the following steps:

Step 1

Open the Dynamics Security Console. Expand the Microsoft Dynamics GP Web Services node in the left menu. Click on the Roles node.

Step 2

Click New in the right menu.

Step 3

Enter the name ConnectBooster and add a description.

Step 4

Click the Apply button.

Step 5

Add each of the following permissions to the role by clicking the Add button for each:
Type Name
Operation Create Cash Receipts
Operation Query Account Categories
Operation Query Cash Receipts
Operation Query Cash Receipts Based on User
Operation Query ChangedSalesInvoiceKey
Operation Query Customer Addresses
Operation Query Customers
Operation Query Customers Based on User
Operation Query GL Accounts
Operation Query Payment Card Types
Operation Query Payment Terms
Operation Query Receivables Credit Memos
Operation Query Receivables Credit Memos Based on User
Operation Query Receivables Invoices
Operation Query Receivables Invoices Based on User
Operation Query Receivables Returns
Operation Query Receivables Returns Based on User
Operation Query Sales Returns
Operation Query Sales Returns Based on User
Operation Query Sales Invoices
Operation Query Sales Invoice Based on User
Operation View Cash Receipts
Operation View Cash Receipts Based on User
Operation View Customer Addresses
Operation View Customer Addresses Based on User
Operation View Customers
Operation View Customer Based on User
Operation View Payment Card Types
Operation View Payment Terms
Operation View Receivables Credit Memos
Operation View Receivables Credit Memos Based on User
Operation View Receivables Invoices
Operation View Receivables Invoices Based on User
Operation View Receivables Returns
Operation View Receivables Returns Based on User
Operation View Sales Returns
Operation View Sales Returns Based on User
Operation View Sales Invoices
Operation View Sales Invoices Based on User
Operation Void Cash Receipts
Operation Void Receivables Credit Memos
Operation Void Receivables Returns
Operation Void Sales Returns
 

Step 6

Click Ok to save the role.

Back To Top

Security Role Assignment

To assign the security roles to the service account, follow these steps:

Step 1

Open the Dynamics Security Console. Expand the Microsoft Dynamics GP Web Services node in the left menu. Click on the Role Assignment node.

Step 2

Click Add in the right menu to add a new role assignment.

Step 3

Select the ConnectBooster role from the drop-down. Select the service account from the Windows users and check the box of the GP company which ConnectBooster is connecting to.

Step 4

Click Ok to save the Role Assignment.

Back To Top

Configuring GP Credit Cards

ConnectBooster requires at least one credit card payment type to be configured. To configure your credit card payments types, follow these steps:

Step 1

Navigate to Tools -> Setup -> Company -> Credit Cards.

Step 2

Create a Credit Card record for each supported card type, based on the following table:
Card/Transaction Type Accepted Card Names
Visa Visa, VC, VS
MasterCard MasterCard, MC, Master Card
Discover Discover, DISC, DS
American Express AmericanExpress, American Express, AMEX, American Ex, AM EX, AX
Echeck/ACH ACH, E-check, Echeck, E check, E-cheque, Echeque, E cheque, EFT
 

Step 3

Ensure you have used one of the “Accepted Card Names” from the table above for the Card Name field. Check the “Accepted from Customers” box. Choose Bank Card and the appropriate Checkbook ID. Save a new record for each card type that is supported and for Echeck if appropriate.

Back To Top