This article will give you insight into how the technical CRMFO Setup works, in order for you to have a better understanding of what is going on and how to troubleshoot.
Overview
A CRMFO Setup consists of 3 components, where you as a partner are in charge of 2 of them:
- The Server Component installation that you install on your Windows Server that has access to the SAP Business One installation (Raw Database connection + SAP DI-API Connection)
- The Client Component that is the Outlook Add-in you install on the end-users machine. Internet access to "https://portal.boyum-it.com" and "https://connector.boyum-it.com/server" are the only connection requirements for the client, but there are benefits if you are on the same domain as the server (better performance; see "Cloud vs Local Lan" section under server for more). The Client machine does not need access to SAP Business One in any way.
- The Boyum Cloud Connection that is 100% controlled by Boyum Solutions and shared among all CRMFO Systems.
Server Component
Installation
The CRMFO Server component is a standard Windows program that is installed on a Windows Server (normally either the database-server database (MSSQL) or a dedicated app server (bigger MSSQL setups or HANA)). There are as such no requirements other than that it needs to be able to reach the database server and have the needed requirements from the install guide included.
In order to install you need:
- A CRMFO Outlook Subscription file (Downloaded from the Boyum Portal)
- A Login to the Boyum Portal (required to verify that you own the Subscription file in step 1) [you will be prompted for this during the server installation]
- The server component installer that you get from https://download.boyum-it.com/crmfo
You can see the entire install process here:
Server Component Wizard (First-time install)
- The Server Component will first ask you for the subscription file from the portal
- Next, it will ask you to enter your username and password from the Boyum Portal to verify you are allowed to work with the specific subscription. The email suggested is from the subscription file, but if you are another user with access it will still work.
- Next, you will enter the credentials to access the database. The Database server info needs to be entered exactly as it is in the SLD
- Next, you will see a list of databases on the server and you will need to enter SAP credentials (username/password) for the databases you wish to connect to the system. NB: In a Multi-company system, only choose databases that belong to the subscription owner. If multi-company setup you instead have multiple subscriptions (more below). In order to do this step, the SAP Business One DI-API needs to be installed.
- Once you press Finish, the server setup is done and you will be asked if you will allow the restart of the Windows service described below. In a normal setup, you will say yes to that (Only if you know others are working on the product, you might wish to delay the restart to user downtime)
Server Component Wizard (Wizard re-run and multi-user-setup)
If you after first-time setup re-run the CRMFO Service Component
You are met with the following screen (each entry in the list is a subscription)
You can now add new subscriptions (if you are in a multi-company setup where two or more companies share the same server). If you are running a single-user system you normally only have one subscription that you edit in order to re-run the wizard.
On the screen, you also have a few other options
- Advanced Settings where you can control a few settings for the connections and Local Lan (see the section below)
- Email settings, if you wish to be notified of errors from the server (this is rarely used by the partners, but possible)
- Option to see the logs
Warning about reusing a subscription on multiple servers.
A subscription is meant to be used on a single server. If you use it on multiple you will experience some odd behaviors that are described in this video.
Services
The installed CRMFO Server Component technically consists of a Windows Server Service and a DI-Client Worker.
In the Windows Task Manager, this service is the B1Connector.exe and the DI Client Worker is B1Connector.DiApiWorkerClient.exe (see below)
The B1Connector.exe is the process that talks with the Client (directly if Local Lan) or via the Boyum Cloud Component over the SignalR communication Protocol (more info on this in the Cloud Component Section). The work it does is handle incoming requests and send the result back. There are two types of requests:
- Read only Information Requests where the service talks with the Database Server via SQL and returns the result
- Insert/Update/Delete Requests of data that require the DI-API... Such requests are forwarded to the DiApiWorkerClient.exe
DI Client Worker
For all requests from CRMFO that require the SAP Business One DI-API, we use this separate exe process to do the work. This is done as the DI-API over a long time tends to have memory leaks, and is not suited for a Windows Service. Instead, the service will communicate with this process over Named Pipes (WCF) to offload the work from the primary service. The DiApiWorkerClient process will automatically be restarted every 24 hours or if it is not running so no need to do any special maintenance on it.
Server Component Logs
Logs in CRMFO Server Component are stored in folder C:\Program Files\Boyum IT\CRM for Outlook Server\Eventlog and are called Evenlog.txt
In order for the logs to not become too big, they auto-split once they are 1 MB in size, so you might see something like this in a long-running system.
Normally if a support case is with the functionality of CRMFO we need the Server Logs, while if an issue is a connection we need the Client logs (as the client is just a glorified message system and does non of the business logic on its own), but it never hurt to include both of cause.
Attachment System (Optional)
Warning: The Attachment System is only recommended for export super-users and help setting it up is considered a Premium Paid Service.
Please see this article for the technical flow of the Attachment system:
https://support.boyum-it.com/hc/en-us/articles/360013427153
A common support case on the Attachment system is that people see zero kb. files initially with the system. The thing is that while files are created instantly on the server, they are zero-size places-holder files, waiting to be overwritten with the real file (which happens on a schedule as the files might be big and take some time to upload from the client to the server)...
Client Add-in
The CRMFO Client-part is a standard Outlook COM Based Add-in that is installed like any other Windows Program
Installation
You will find the installer of the client on https://download.boyum-it.com/crmfo.
You can see the entire install process here:
License Activation
License activation happens after installation by simply navigating to your activation mail (Sent when you set up the user in the Boyum Portal)
This short video show you how:
Fail to load the add-in
Microsoft is very protective of the performance and stability of Outlook and for that matter has made a strict set (some will argue too strict a ruleset that unless you write C++, is impossible to follow). For that reason, you might have CRMFO Client installed, but you are not seeing it as it was disabled by these strict rules. If you ever are in this situation please see this separate article on how to get it back: https://support.boyum-it.com/hc/en-us/articles/208245778-CRM-for-Outlook-Add-In-keeps-disabling
AppData File Structure
All files and configuration of the Client are %appdata%\Boyum IT\CRM for Outlook ...
Other than simple customizations, these data are fleeting and do not need backup. Also if the add-on cannot start at all, trying to delete/rename %appdata%\Boyum IT\CRM for Outlook folder to let the system recreate it anew might solve some issues.
Client Event Logs
All Eventlogs produced are user-specific and are located here: %appdata%\Boyum IT\CRM for Outlook\Eventlog
In order for the logs to not become too big, they auto-split once they are 1 MB in size, so you might see something like this in a long-running system.
SAP Business One Client interaction (Optional)
While the CRMFO Client does not need any SAP Business One Component, in order for the Outlook client part to work, there is on multiple screens the option to show the same data as in CRMFO, in the client, so if you have the B1 Client installed these options can be used
Upgrade logic
When you install a new version of CRMFO on the server, the client installations will automatically detect this and offer to automatically upgrade the Client-parts
Alternatively, you can simply install the new client manually.
Cloud Component
The final component of CRMFO is the Cloud Component. This part is hosted in Microsoft Azure (In Ireland) and controlled by Boyum Solutions. The component takes care of all communication between the server and the client using a technology called SignalR which has the benefit that you do not need to open incoming firewalls in your server :-) Instead, it just uses simple HTTPS (433) outgoing calls.
Cloud vs Local Lan
While having communication via the Cloud is nice as in you do not need to open ports, there are drawbacks to this, and that is performance. For that reason, we have the Local Lan system.
The way this works is that when the Client is started it will no matter what starts the communication with the server via the cloud component (1), and if the server is alive it will set up initial communication and tell the client about itself via SignalR (2), and they are able to communicate no matter where in the world the two systems are...
However, the Client will after the initial communication use the server's info to try and contact the server directly on port 8889 (which can be changed to something different in the server's advanced settings). If such a connection can be established (3), the server will set up the connection via Local LAN and use that instead of the slower connection via the cloud (4)... Or if Step 3 fails (because the two machines are not on the same network), they will just continue to communicate via the cloud component.
You can in the client under Settings to see if the current connection is Local Lan or Cloud
If you for testing or other reasons wish to disable Local Lan, you can disable it in the individual client under debug.
Or on the server under Advanced Settings (to disable for all clients)
Data Security
The Cloud Component is for security reasons only a transport layer and will at no point store any customer information. Everything is sent via HTTPS and to be even more sure the payload data is encrypted on the server side and stay encrypted until it reaches the client.
Comments
0 comments
Please sign in to leave a comment.