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

How to Update to the New Version of Fidesic Vendor Sync for GP

We've released a new, fully updated version of vendor sync. This will take you through the upgrade process.

Overview

This guide is for companies that already have Fidesic Vendor Sync installed and are looking to update to the latest version. This new version has greater reliability, reporting and new features to make the sync the best version yet. 

Steps:

  1. Uninstall the Old Version
  2. Install the new version as SA
  3. Validate Configuration Settings
  4. ONLY REQUIRED IF YOU HAVE A Custom SQL Login Setups, modify the SQL Role to access new tables. 

 

Uninstalling the Old Version

To run this update you will need to uninstall the old version of vendor sync, which will require locating the machine in your server environment where vendor sync is currently installed. This module is typically installed on either the SQL server itself, or the application server. The file you are looking for is located in this directory of the local machine: C:\Program Files (x86)\Fidesic\Fidesic Service Monitor.exe. 

Once you've located the proper machine you can use the standard windows Add and Remove Programs function to uninstall the Fidesic Vendor Sync. 

Note: Make sure to uninstall the Vendor Sync Module and NOT The Fidesic for GP Module. 

Installing this old version will not remove your configuration files, making setup after the new installation a bit easier. 

Preparation for the New Module

  1. User Log out and GP shutdown NOT required for this module.
  2. You should install the vendor sync module in the same location as the previous version to minimize setup. 
  3. 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.
  4. Download The Latest Fidesic Sync Module here. 

Installation

  1. Open “Fidesic Vendor Sync Service.exe” you downloaded using the windows “Run as Administrator” option.  
  2. Follow prompts for standard installation.
  3. Service should Auto-Open upon completion.
  4. Default install location for manual open:  C:\Program Files\Fidesic\Fidesic Service Monitor.exe if you need to manually open it. 

Verify Configuration

  • Fidesic Vendor Sync runs in the task bar as a Green Dot. Double clicking will open configuration window.
  • Select Setup:Configure
    • mceclip4.png
  • Validate that you Vendor Sync Settings did come over from the previous version by validating a valid GP database connection and Fidesic Authentication connection. 
    • mceclip0.png
    • mceclip2.png

If all settings have come across (which is the expected behavior), you're all set. Just make sure the service has been started. 

ONLY REQUIRED FOR CUSTOM SQL ROLE SETUPS:  modifying the SQL Role to access new tables. 

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.

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

Run the following script against the DYNAMICS database and any added company databases.

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.';