Skip to content
English
  • There are no suggestions because the search field is empty.

Installing Fidesic Vendor Sync

This guides will show you how to initially setup, or add an additional account to the Fidesic Vendor Sync Module.

Overview

If this is your first time installing vendor sync, start at the beginning of this guide. 

If you are just looking to add an ADDITIONAL company to an existing setup, skip to the Configuration section.  

 

Preparation

  1. User Log out and GP shutdown NOT required for this module.
  2. The Fidesic Account Owner is required to view and acquire API Keys to Connect. 
  3. Fidesic Vendor Sync Module can be installed on any machine with GP Database Access. The module will run as a service on this machine and sync any changes made to the vendor lists, or chart of accounts within GP Automatically.
  4. Implementation must be done as a WINDOWS ADMINISTRATOR during all steps. Whenever possible to “run application as administrator”, please do so to avoid any issues.
  5. Instructions are as if the module is installed on the SQL server host. Installation can be done on a different machine with network access, just make sure use the correct machine name or IP of the machine hosting the SQL database
  6. Download Fidesic Sync Module here. 

Installation

  1. Uninstall all previous version using standard windows Control Panel “Programs and Features”
  2. Open “Fidesic Vendor Sync Service.exe” using the windows “Run as Administrator” option.  
  3. Follow prompts for standard installation.
  4. Service should Auto-Open upon completion.
  5. Default install location for manual open:  C:\Program Files (x86)\Fidesic\Fidesic Service Monitor.exe

Configuration

  • Fidesic Vendor Sync runs in the task bar as a Green Dot. Double clicking will open configuration window.
  • Select Setup:Configure

mceclip4.png

GP Database Setup

  1. Connection: Create New (this will be the same to create a new connection to an existing setup)
  2. Server: if installed on SQL server host machine, use “localhost”. If not, use local IP address or Name of the machine hosting SQL Server
  3. Username: your ‘sa’ user name
  4. Password: ‘sa’ password
  5. Catalog: Select your “GP Company Database”mceclip0.png

Fidesic Authentication

In this window, the "Username" is the API key, and the "Password" is the API password. Click here to learn how to get this information from Fidesic. The Account Owner is the only user with access to these keys within Fidesic. The account owner will be Tagged as such in the manage users list in Fidesic. 

mceclip2.png

If you provide the proper login info and receive a "cannot authenticate" message, make sure that the machine you're on is able to ping api.fidesic.com and that our software has writes to log files to the server. 

Advanced Settings
  • First Sync: Will be auto-selected after install, and auto-deselected after initial sync. This check all vendor records instead of “new” vendor records
  • Sync Chart of Accounts: When selected the sync service will also upload GL lists, and vendor based GL defaults
  • Sync Temporary Vendors: When selected this option sync temporary vendors. Default is not to sync temporary vendors
  • Vendor Classes to Exclude: Enter any vendor classes you would like to exclude from the sync process.
  • Log Errors to File: This will create a log file in the C:\Program Files\Fidesic\Sync Service\Logs folder on the local machine. This file will contain all connection attempts, and any errors encountered. Do not enable permanently, it is intended for debugging purposes only. This setting will create one log file per day, which will gradually take up space on your local harddrive. 

mceclip3.png

Setting up Non SA SQL  user for connecting our vendor sync to your company Database(Optional)

Using a dedicated SQL login instead of sa Download FIDESYNC_TABLE_AND_ROLE.sql and run it against your DYNAMICS database and against every company database Vendor Sync connects to. The script is safe to run more than once. Run it again whenever you:

  • install or update Fidesic Vendor Sync
  • upgrade Dynamics GP
  • add a new company to sync

To have the script add your service login to FIDESYNC_ROLE for you, set @LoginName at the top. Otherwise, add the login as a user in each database and assign it FIDESYNC_ROLE yourself.

 As an alternative to using the 'sa' login, you can create a SQL role specific to our Vendor sync modules requirements.

  • Run the attached script to Create our tables, create a security role, and set permissions for that user. 
    • FIDESYNC_TABLE_AND_ROLE.sql (Note: This needs to be run against the DYNAMICS database and each COMPANY database using sync service)
  • Create Login in Sql Management Studio- 
    • screen_shot_2020-03-05_at_1.48.20_pm.png 
  • Set User Name, Password, and Set the Default Database. 
    • screen_shot_2020-03-05_at_1.49.04_pm.png
  • User Mapping Settings will need the "FIDESYNC_ROLE" role that was creating using the previous script. 
    • Make sure to select DYNAMICS and any company databases that will need access to this service.  
    • Select the "FIDESYNC_ROLE" as the database role membership. 
    • screen_shot_2020-03-05_at_1.49.24_pm.png

 

Table References: 
  • 'Select' Access to the following tables (select access preferred to all GP company tables for future compatibility):  
    • "PM00200"
    • "PM00300"
    • "SY01200"
    • "GL00100"
    • "GL00105"
    • "PM00203"
    • "SY03300"
  • 'Select', 'Insert', 'Update', 'Delete', 'Alter' Access to the following table:
    • "FIDESYNC" -  To Be Created on First Connect or manually.  
  • 'Select' Access to the DB_Upgrade and SY01500 tables on the DYNAMICS database

FIDESYNC_TABLE_AND_ROLE.sql Code Block

/*
*    FIDESYNC Installation / Update script  (Fidesic Vendor Sync for GP 2.2+)
*
*    Safe to run more than once. Use it for a new install, after updating Vendor Sync,
*    after a Dynamics GP upgrade, and whenever you add a company to sync.
*
*    What it does:
*      System database (DYNAMICS):  creates FIDESYNC_ROLE and grants SELECT on the
*                                   GP version (DB_Upgrade) and company list (SY01500) tables.
*      Each company database:       creates or updates the FIDESYNC tracking table,
*                                   creates FIDESYNC_ROLE, grants SELECT on the dbo schema
*                                   (every GP table and view, including ones added later),
*                                   and grants read/write on FIDESYNC.
*
*    Instructions:
*      1. Create a SQL Server login for the service (Security > Logins), if you have not already.
*      2. Optional: set @LoginName below to that login. The script then adds the login as a user
*         in this database and assigns it to FIDESYNC_ROLE. Leave it blank to do that by hand.
*      3. Run this script against the DYNAMICS database and against EVERY company database
*         that Vendor Sync connects to.
*/

DECLARE @LoginName sysname = N'';   -- e.g. N'fidesic_sync'

SET NOCOUNT ON;

/****** CREATE FIDESYNC ROLE ******/
IF DATABASE_PRINCIPAL_ID('FIDESYNC_ROLE') IS NULL
BEGIN
    CREATE ROLE [FIDESYNC_ROLE];
    PRINT 'Created FIDESYNC_ROLE role';
END

/****** OPTIONAL: ADD THE SERVICE LOGIN TO THIS DATABASE AND THE ROLE ******/
IF LEN(@LoginName) > 0
BEGIN
    IF SUSER_ID(@LoginName) IS NULL
    BEGIN
        RAISERROR('Login %s does not exist on this server. Create it first, then rerun.', 16, 1, @LoginName);
        RETURN;
    END

    DECLARE @sql nvarchar(max);
    -- The login may already be mapped to this database under a different user name.
    DECLARE @UserName sysname = (SELECT name FROM sys.database_principals WHERE sid = SUSER_SID(@LoginName));

    IF @UserName IS NULL
    BEGIN
        SET @UserName = @LoginName;
        SET @sql = N'CREATE USER ' + QUOTENAME(@UserName) + N' FOR LOGIN ' + QUOTENAME(@LoginName);
        EXEC sp_executesql @sql;
        PRINT 'Added user ' + @UserName + ' to ' + DB_NAME();
    END

    IF IS_ROLEMEMBER('FIDESYNC_ROLE', @UserName) = 0
    BEGIN
        SET @sql = N'ALTER ROLE [FIDESYNC_ROLE] ADD MEMBER ' + QUOTENAME(@UserName);
        EXEC sp_executesql @sql;
        PRINT 'Added ' + @UserName + ' to FIDESYNC_ROLE';
    END
END

/****** SYSTEM DATABASE: GP version and company name lookups ******/
-- SY01500 (company master) exists only in the GP system database.
IF OBJECT_ID(N'dbo.SY01500', N'U') IS NOT NULL
BEGIN
    GRANT SELECT ON dbo.SY01500 TO [FIDESYNC_ROLE];
    IF OBJECT_ID(N'dbo.DB_Upgrade', N'U') IS NOT NULL
        GRANT SELECT ON dbo.DB_Upgrade TO [FIDESYNC_ROLE];
    PRINT 'Granted SELECT on DB_Upgrade and SY01500 to FIDESYNC_ROLE';
    PRINT 'Finished system database ' + DB_NAME() + '. Now run this script against each company database.';
    RETURN;
END

/****** COMPANY DATABASE: FIDESYNC TRACKING TABLE ******/
IF OBJECT_ID(N'dbo.FIDESYNC', N'U') IS NULL
BEGIN
    CREATE TABLE dbo.FIDESYNC(
        ID INT IDENTITY PRIMARY KEY,
        TableName NVARCHAR(50) NOT NULL,
        TableKey NVARCHAR(50) NOT NULL,
        LAST_SYNC DATETIME NOT NULL,
        FAILED_ATTEMPT DATETIME,
        FAILED_COUNT INT NOT NULL DEFAULT 0);
    PRINT 'Created FIDESYNC table';
END
ELSE
    PRINT 'FIDESYNC table already exists';

IF COL_LENGTH(N'dbo.FIDESYNC', N'FAILED_ATTEMPT') IS NULL
    ALTER TABLE dbo.FIDESYNC ADD FAILED_ATTEMPT DATETIME;
IF COL_LENGTH(N'dbo.FIDESYNC', N'FAILED_COUNT') IS NULL
    ALTER TABLE dbo.FIDESYNC ADD FAILED_COUNT INT NOT NULL DEFAULT 0;

/****** COMPANY DATABASE: PERMISSIONS ******/
-- A schema-level grant covers every current GP table and view, and also tables created later
-- (a GP upgrade rebuilds tables, and Analytical Accounting can be installed later). Grants on
-- individual tables are lost when a table is rebuilt.
GRANT SELECT ON SCHEMA::dbo TO [FIDESYNC_ROLE];
PRINT 'Granted SELECT on all GP tables and views (dbo schema) to FIDESYNC_ROLE';

GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON dbo.FIDESYNC TO [FIDESYNC_ROLE];
PRINT 'Granted SELECT, INSERT, UPDATE, DELETE, ALTER on FIDESYNC to FIDESYNC_ROLE';

PRINT '';
PRINT 'Finished company database ' + DB_NAME() + '.';
IF LEN(@LoginName) = 0
    PRINT 'Next: add the service login as a user in this database and assign it to FIDESYNC_ROLE.';