# Implement plugin

Customer-specific plugin for syncing customers, projects, vendors, and employees from SQL Server to SharePoint. Includes scheduled imports from source system and exports of user matter lists and project contacts to destination system.

DLL: Epona.Implement.dll

# What it does

  • Customer sync — imports customers/clients from SQL Server
  • Project sync — imports projects and assignments
  • Vendor sync — imports vendor information
  • Employee sync — imports employee and user data
  • Matter list export — exports user-assigned matters back to SQL Server
  • Project contact export — exports project contact information
  • Bidirectional sync — enables integration between SharePoint and legacy systems
  • Scheduled execution — periodic imports and daily scheduled exports

# Prerequisites

  • SQL Server instance with source customer/project data
  • Second SQL Server instance for export destination (optional)
  • Network connectivity to both database servers
  • Target SharePoint site collections for matter sites

# Configuration

# Import source settings

# Disabled

Type: boolean | Required: No

Disable all Implement functionality

# SqlServer

Type: string | Required: Yes

Source SQL Server hostname or IP

# SqlDatabase

Type: string | Required: Yes

Source database name

# SqlUser

Type: string | Required: Yes

Source database login username

# SqlPassword

Type: string | Required: No

Source database password (encrypted)

# Import queries

# SqlCustomer

Type: string | Required: No

SQL query or file path for customer/client import

# SqlVendor

Type: string | Required: No

SQL query or file path for vendor import

# SqlProject

Type: string | Required: No

SQL query or file path for project import

# SqlProjectEmployees

Type: string | Required: No

SQL query for project-employee relationships

# SqlCustomerContacts

Type: string | Required: No

SQL query for customer contact information

# SharePoint column mapping

# MatterListParticipantsColumnName

Type: string | Default: ProjectEmployee | Required: No

SharePoint column name for project participants/employees

# ProjectExternalAccessColumnName

Type: string | Default: __externalaccess | Required: No

SharePoint column name for external access flag

# Execution schedule

# IntervalInMinutes

Type: int | Required: Yes

How often to import customer/project data (in minutes)

# Export destination settings

# ExportMyMattersTimespans

Type: TimeSpan (list) | Required: No

Times of day to export user matter lists (e.g., ["08:00:00", "17:00:00"])

# ExportProjectContactsTimespans

Type: TimeSpan (list) | Required: No

Times of day to export project contacts

# SqlServerExport

Type: string | Required: No

Destination SQL Server hostname for exports

# SqlDatabaseExport

Type: string | Required: No

Destination database name for exports

# SqlUserExport

Type: string | Required: No

Destination database login username

# SqlPasswordExport

Type: string | Required: No

Destination database password (encrypted)

# Query file format

SQL queries can be embedded or referenced as files:

{
  "SqlCustomer": "SELECT ClientCode, ClientName, ContactEmail FROM Clients WHERE Active = 1",
  "SqlProject": "queries/project-import.sql"
}

If a file path is provided (contains dot like queries/project.sql), the provisioning service reads from {bin-directory}/{path}.

# Synchronization flow

# Import cycle (periodic)

  1. Provisioning service starts Implement plugin
  2. Plugin connects to source SQL Server
  3. Executes customer, vendor, project, and employee queries
  4. Updates SharePoint site collections with imported data
  5. Waits for next interval before repeating

# Export cycle (scheduled times)

  1. At configured export times of day:
  2. Plugin reads matter assignments from SharePoint
  3. Connects to destination SQL Server
  4. Exports user-to-matter assignments
  5. Exports project contact listings

# Multiple export times

Define multiple daily export windows:

{
  "ExportMyMattersTimespans": ["08:00:00", "12:00:00", "17:00:00"]
}

Matter lists are exported at 8am, noon, and 5pm daily.

# Security

Database passwords are encrypted using the provisioning service's encryption key:

  • Source password encrypted at configuration time
  • Export password encrypted separately
  • Passwords decrypted only when establishing connections
  • Passwords never logged or exposed in files

# Example configuration

Property Example value
Disabled false
SqlServer sqlserver.company.com
SqlDatabase Legal
SqlUser svc_epona
SqlPassword EncryptedPassword123
SqlCustomer SELECT ClientCode, ClientName FROM Clients
SqlProject SELECT ProjectCode, ProjectName, ClientCode FROM Projects
IntervalInMinutes 120
ExportMyMattersTimespans 08:00:00, 17:00:00
SqlServerExport sqlserver-export.company.com
SqlDatabaseExport SharePointSync
SqlUserExport svc_export
SqlPasswordExport EncryptedPassword456

# Troubleshooting

# Common issues

Issue Cause Resolution
Cannot connect to source Wrong hostname or credentials Verify SQL Server address, database name, username, and password
Customer/project import fails SQL query error or schema change Check SQL query syntax; verify source database columns exist
Export not running Export time not configured or Disabled=true Verify ExportMyMattersTimespans is set and Disabled=false
Missing data Query not selecting all needed columns Review and update SQL queries to include all required fields
Last Updated: 4/20/2026, 12:54:05 PM