/
Configure Data Uploader

Configure Data Uploader

Overview

The following section guides you on how to configure and use Data Uploader (DU) efficiently to get optimum performance.

For additional help, see the Data Uploader FAQ page.

Installation Requirements

Important: Currently, CAM supports and uses TLS 1.2 by default, but allows TLS 1.0/1.1 if the Data Uploader is run on a Windows 2012 Server.

On June 28, 2023, AWS is dropping all support for TLS 1.0/1.1 and this could affect users using Windows Server 2012 or older with the use of Data Uploader.

Windows Server 2016 and above are the natively supported versions with 1.2.

Hardware Requirements

  • A Windows PC or Server

    • Windows Server 2016+ is recommended for the note below.

Currently, CAM supports and uses TLS 1.2 by default, but allows TLS 1.0/1.1 if the Data Uploader is run on a Windows 2012 Server.

As of June 28, 2023, AWS dropped all support for TLS 1.0/1.1 and this could affect users using Windows Server 2012 or older with the use of Data Uploader.

Windows Server 2016 and above are the natively supported versions with 1.2.

  • At least 1GB of free space for program installation and execution

  • Internet access to upload the CSV to CAM; 50mbps or higher upload speed is recommended

Software Requirements

  • .NET Framework 4.8 or higher*

*= 4.8 is required for the new version of Data Uploader since Sprint 23.

Date Format

  • Format all date values as 

yyyy-MM-dd HH:mm:ss

To format the dates, go to Administration-> Settings->General tab-> Default Data Format.

 

image-20240528-140832.png

 

SQL Requirements

Firms are strongly recommended to use an on-premises SQL database (instead of SQLLite) when the firm is a medium to large-sized company or it has more than 5,000 active matters. This allows Delta syncs to perform more efficiently as only necessary workspaces and metadata will be updated.

If the firm is using an on-premises SQL database, these are the requirements:

  • SQL Server 2012 Standard Edition or above.

  • Windows Server 2016+ is recommended for the note below.

CAM Data Uploader does support SQL 2019 and 2022.

Important Note for Windows Server 2012

Currently, CAM supports and uses TLS 1.2 by default, but allows TLS 1.0/1.1 if the Data Uploader is run on a Windows 2012 Server.

As of June 28, 2023, AWS dropped all support for TLS 1.0/1.1 and this could affect users using Windows Server 2012 or older with the use of Data Uploader.

Windows Server 2016 and above are the natively supported versions with 1.2.

  • A dedicated or Shared SQL server

  • 8+GB of free RAM

  • 4+CPU (cores/threads)

  • 10+GB free hard disk space*

  • SQL Maintenance plans setup as typically configured.

  • *Solid state drive(s) are preferred for the SQL file storage

  • Collation is recommended to be SQL_Latin1_General_CP1_CI_AS for the US. If you get a collation error when running SQL scripts. add a collation conversion in the script.

  • A full recovery database option is recommended for production level environments, for the database restoration and login aspects. A dev or test or staging environment might be able to have a simple recovery set, but it is the firm’s decision!

Firewall and Port Requirements

Whitelist the following ports.

  • Port 443 should be open. CAM and Data Uploader utilize the HTTPS ports for requests. The API manages the requests, and no data is locally accessed or stored. If you’ve changed the default port for HTTPS, use the changed port. Check with your IT team if your firm has changed the port, and if so they need to open that default port on the corresponding HTTPS.

  • Port 1433 should be open for SQL communication between the on-premises SQL and the API. Check with your IT team if your firm has changed the port, and if so they need to open that default port on the corresponding SQL server.

 

User Account Requirements

Litera recommends a service account be used to run Data Uploader. For more details on setting up a user account, see Create CAM User Accounts

This service account should have:

  • Permission to download, install, and run the Data Uploader on the Desktop or server.

  • Read/Write access to the designated Data Uploader application directory.

  • Read access to the source database on the SQL server (to query the database and upload to CAM)

  • Permission to the local system to edit/enable the Windows Task Scheduler.

  • Read access to Active Directory.

  • Must be a system admin

  • If the user is using the CheckOut feature, the user will need at a minimum read/write access to the check-out path. If it is a path on the local PC, then that local PC will also need to be on the network.

Handling Bulk Jobs and Load Balancing within Data Uploader

Important: Currently, the daily Throttle limit is set to a maximum of 50,000 jobs daily for optimum and error-free performance. The Data Uploader (DU) can hold bulk jobs in the queue for up to 7 days from the job creation date. After 7 days, if they are not processed, the jobs are removed automatically from the queue.

Please Consider: If you have a large number of jobs that you need to run, you could start all jobs at the same time and let the Data uploader work through the backlog. However, this results in poor performance and even failure if the number of jobs is too high. The first few jobs are put into the Running state and the remaining jobs are put into the Queued state. This could make a lot of jobs fail even when they aren’t running and that can negatively impact the other jobs that are running. Please work with your partner or professional services consultant to discuss best practices of managing and queueing jobs.

Important: Currently, CAM supports and uses TLS 1.2 by default, but allows TLS 1.0/1.1 if the Data Uploader is run on a Windows 2012 Server.

As of June 28, 2023, AWS dropped all support for TLS 1.0/1.1 and this could affect users using Windows Server 2012 or older with the use of Data Uploader.

Windows Server 2016 and above are the natively supported versions with TLS 1.2. CAM supports these versions.

Best Practices

  • Set the number of jobs under the 50k limit for better performance, to ensure the jobs run. E.g. if undeclaring more than 50k records, batch into 40k amounts per day.

  • Use Data Uploader if the bulk actions from Service Desk or Analytics can’t handle the number of records that need to be modified.

Data Uploader Limits

Important: Currently, you can set the daily Throttle limit to a maximum of 50,000 jobs for optimum and error-free performance. Daily, you can upload the maximum jobs that are permitted as per the Throttle limit. After the daily limit is reached, you can find the Throttle limit warning message in the log.

Important: CAM has a limitation of 492 characters in the group name when adding to the group path.

To Download Data Uploader

  1. Navigate to Administration.

  2. Click on Downloads.

  3. Download the Data Uploader EXE installer.

  4. Navigate to the download location and double-click the program to start the installer.

Important: An admin user should run DU for the first time. Subsequent runs can be done with the logged-in user account.

Installing Data Uploader

  1. Ensure the requirements are met. The requirements can be found here.

  2. In the Welcome to Data Uploader Setup Wizard dialog, click Next.

  3. If you would like to install the Data Uploader somewhere other than the default location displayed in the installer, click Browse and navigate to your desired installation folder; otherwise, leave the path unchanged.

  4. To install it for your access only, click Just me or select Everyone to allow access to anyone using your system.

  5. Click Next to continue.

Tip: It is recommended to install the Data Uploader on the SQL server where the firm Time & Billing system/NBI application is being run.

  1. Click Close on the Installation Complete pop-up box once it notes DataUploader has been successfully installed.

  2. The Cloud Data Uploader is installed as a shortcut on your desktop. Double-click it to launch the application.

Note: The Cloud Data Uploader application must be run as Administrator to ensure optimal performance. Cntrl+Shift and right click to run as administrator.

Tip: CAM Data Uploader will warn the users if they have an outdated version of Data Uploader, and prompt a download link for the latest version. For subsequent upgrades, the Data Installer must be uninstalled and installed again.

Warning: You have to complete the External System Configuration set-up to use the Cloud Data Uploader.

 

Upgrade Data Uploader

Important: Please review all of these steps in detail before updating Data Uploader.

Installation

  1. Review the Hardware and Software Requirements for Data Uploader.

  2. You must create a backup of the existing DU database before the upgrade. If you are not utilizing a dedicated SQL database for DU, then skip this step.

  3. Make a backup copy of the current Data Uploader installation directory:

    • Prosperoware Data Uploader folder found at: C:\Program Files (x86)\Prosperoware\Prosperoware Data Uploader.

Information: The installation path is selected programmatically while installing the Data Uploader.

Note: 

  1. Verify the logs so that no DU upload jobs are running. If there are jobs running, wait until they are done processing. This is a required step, which may result in data loss if jobs are running during the upgrade.

  2. End and disable DU Windows scheduled tasks (if applicable) to prevent them from running while the upgrade is happening.

  1. Log into your CAM website.

  • If you are already logged in, sign out and sign in back in to ensure the latest update is available.

  1. Navigate to Administration

  2. Click on Downloads and download the latest version of Data Uploader onto the server where DU is installed.

Note: Browsers typically block MSI and exe installers downloaded from the internet, which may interfere with the version upgrade. Unblock the DU msi installer by Right-click on the file properties.

  1. Run the installation wizard.

  2. Click Next. Keep the install folder path the same.

  3. Click Next.

Note: The installation directory has changed slightly to “C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\”

  1. This version of the Data Uploader now requires that you enter a Windows Services domain, username, and password of the service account.

  2. Click Install to begin the installation.

  3. Once the installation is complete, click Close to close the wizard. Continue with Updating the Configurations section below.

Updating the Configurations

The new Data Uploader application has replaced many of the previous configuration files with new config files after an upgrade happens. Since the following instructions for copying old configurations to the new files reference line numbers, we recommend using a program like Notepad++ or other tools that have line numbering available.

All configuration files are now in a directory under the install path called config located here:

C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\service\config

If you have made any configuration changes to the following files, please follow the instructions below to copy your configurations to the new files. If you have not modified any of these files, you can skip this section

  1. Data.config

  2. UserPropertiesMapping.config

  3. SourceFilesConfig

  4. ADMapping File

  5. AppSetting.config

  6. CheckoutPathMap.config

 

Note that legal hold and retention controls are entered manually and are not supported to be entered via Data Uploader currently (2025).

Source Files Config

Source files set where the source files for Data Uploader and any mappings exist. The out-of-the-box configurations set uniqueids which are important unique identifiers in CAM and other systems used. This is a new configuration file that allows you to set a separate unique identifier for each of your provisioning scripts. Some content systems might support a matter index ID for a unique identifier, while others might only be able to support client and matter ID. This file configures the unique ID per script.

  1. Update the uniqueid line to the columns and source that makes a user unique to the firm. Most commonly it is the type of user, the userid, and the database of the source.

For example, uniqueid client id, matterid is pulled from CreateorUpdateWorkspace.sql

You need to have at least one set of unique fields for DataUploader to import data into CAM, this allows a ImportReference to be put together so the system knows what changed, especially when dealing with AD users and groups, as AD doesn’t track those changes easily.

 

Last Modified Date in the Config

If the last modified date is in the config, then the last modified date is used to check the data brought in. However, the Job Delta ensures the records from the sync before remain in the Staging tables. Only any new, or changed records get imported from there into CAM. Similarly, the SQL files tab will use the last modified date in those SQL files.

Modifying Application Settings

The application configuration can be further edited from the AppSettings.config file in the Data Uploader directory.

To restore a prior configuration:

  1. First, backup the appsettings.config.

  2. Then, upgrade Data Uploader as you normally would.

  3. Finally, restore the config, or copy the configuration to another system.

CheckOutPathMap.Config

Configure this script to scan for remote check-in files from Data Uploader.

The script looks like this. Use the attributes description to understand variables.

Ensure the service account has full access to the checked-out directory

### checkoutPathMap.config Overview The `checkoutPathMap.config` file is utilized by CAM to determine document checkout locations during remote check-ins. By default, this configuration file does not exist and must be manually created in the directory `C:\Program Files\Prosperoware.CAM\data`. The match patterns within this file can include multiple criteria, such as: - User name, PC name, and drive - User name and drive - PC name and drive - Drive #### Attributes Description | Attribute | Description | |---------------------|---------------------------------------------| | `match-user-name` | The name of a WorkSite user. | | `match-machine-name`| The name of a user's computer. | | `match-drive-name` | | | `replace-pattern` | | | `replace-start-with` | | #### Variables Description | Variable | Description | |-------------------------|----------------------------| | `@user@` | | | `@machine@` | Citrix session | | `@checkoutdrive@` | | | `@userhomedirectory@` | | | `@userhomedrive@` | | #### Configuration Example ```xml <configuration> <path match-drive-name="c:" replace-pattern="\\@machine@\@checkoutdrive@$\vvvvv" replace-start-with="@checkoutdrive@" /> </configuration>

 

CAM processes the checkoutPathMap.config file according to the following sequence:

  1. Check for a Matching Pattern

    Starting from the top of the checkoutPathMap.config file, CAM searches for a matching pattern. Once a match is found, CAM will not continue to read the remaining entries in the configuration file. The order of pattern matching is as follows:

    • Check for pattern: username (match-user-name) + machinename (match-machine-name) + drive (match-drive-name)

    • Check for pattern: username (match-user-name) + drive (match-drive-name)

    • Check for pattern: username (match-user-name) + machinename (match-machine-name)

    • The final check is for a drive only.

  2. Read and Parse the Replacement Pattern

    CAM compares the replace-start-with value and replaces it with the parsed replace-pattern. For example, if a file is checked out to C:\NrPortbl\file.doc on the machine desktop1, the following pattern designates the path as \\desktop1\c$\yyyy rportbl\file.doc:

  3. <path match-drive-name="c:" replace-pattern="\\@machine@\@checkoutdrive@$\yyyy" replace-start-with="@checkoutdrive@:"/>
  4. When No Pattern Match Found Occurs

    If no matching pattern is found in the checkoutPathMap.config file, CAM defaults to using the checkout path location recorded in the WorkSite database.

 

Implementation Notes

  1. matchdrivename will be according to the checked-out path. If you have a checkout path on the c drive then pass the matchdrivename like c:\. If you are using a network path for the checked-out document then enter the path like \\machine_ip\ i.e
    94.130.20.199

  2. To remotely check in a document for any checked-out document, implement this in the following way:

    1. Grant full access to the service account to the checkout dir.

    2. Add the following line to CheckoutPathMap.config on the Data Uploader server

      <path match-user-name="MyUserID" match-machine-name="MyLocalMachine" match-drive-name="c:" replace-pattern=\\@machine@\@checkoutdrive@$ replace-start-with="@checkoutdrive@"/>

 

 

Filtering Active Directory Users/Groups

ADMapping.config

Filtering on the data brought in from Active Directory can be done on the configuration file in Data Uploader. This is so specific users or groups can be included or excluded from the sync. Multiple values are supported, but users cannot add multiple in one configuration.

Please note:

  • Wild cards are not supported, only standard operations like =,<,>,<=,>=, <> and !=.

  • If the AD system has users from iManage, the users can be virtual, external or an AD user. These AD properties are supported, as well as domain and operating system.

  • Active Directory details are configured in the Data.config. Path to Data Uploader folder (C:\Program Files (x86)\Prosperoware\Prosperoware Data Uploader\Data.config).

To set the config:

A sample configuration is below for users:

<configuration> <maps> <map> <criteria> <ad-property name="isHuman" value="TRUE"/> <ad-property name="name" value="1" operator="%%"/> </criteria> <values> <dms-property name="Database" value="database_name"/> <dms-property name="Role" value="Role_name"/> <include name="user" value="true"/> <include name="group" value="true"/> </values> </map> <map> </configuration>

Set the following options for creating groups in Azure with the following:

  1. Office365 (recommended) - Allows teams to collaborate and share a workspace for conversations, files, and calendars using group email.

  2. Distribution - Allows to send emails to all group members.

  3. Mail-enabled security - Uses all distribution list functionality and additionally uses it to control access to OneDrive and SharePoint.

  4. Security - Allows to control access to OneDrive and SharePoint and uses for Mobile Device Management for Microsoft 365.

<default> <values> <property name="isCAMUser" values="False" appliesTo="Office365"/> <property name="isCAMGroup" values="False" appliesTo="Office365"/> <property name="SkipUpdateIfExists" values="True" appliesTo="Office365"/> <property name="Office365GroupType" values="Security" appliesTo="Office365"/> </values> </default>

Tip: The out-of-the-box Data.config file for AD can be downloaded here.

A list of Active Directory ad-properties and attributes can be found in the Microsoft documentation.

OU filtering

The organization units in Active Directory contain multiple groups with multiple users.
Now you can filter the user from a specific group in a single organization unit. The supported property is the "memberof." The "memberof" property takes the group name as a value and operators (%% - contains and !% - not contains) that are used to help in the filter. These parameters return the list of the users who are present or not present in the specific group.

The following are examples of supported operators:

Contain (%%)

<ad-property name="memberof" value="testgroup" operator="%%" />

Not Contain (!%)

<ad-property name="memberof" value="testgroup" operator="!%" />

Wildcard

A wildcard is a character(s) that substitutes for another character or string of characters when searching a database.

Searching for values in the ad-property name property using a wildcard is now supported.

The following are examples of a supported wildcard:

<ad-property name="company" value="tes" operator ="s%"/>

In the above example,

  • ad-property name - represents the search value or string.

  • Value – represents character(s). It must be present in the search value or string.

  • Operator – represents the searchable value. It must come either at the start of the string (s%) or at the end of the string (e%)

  • MultivaluedDatabasevalueMapping

    • It is a new database property value "MultivaluatedDatabase" which allows you to add multiple databases to the value field in AD-mapping that allows you to generate multi-input CSV or multi- delta CSV, respectively.

Sample Multivalueddatabase property value

<property name="Database" values="firstDatabase|secondDatabase|thirdDatabase" appliesTo="iManage"/>

Note: Multivalued database property is applicable only for the iManage system.

  • SkipUpdateIfExists

    • While importing new AD users to iManage for the first time, the property name "SkipUpdateIfExists" with a value ="True" for iscamuser and iscamgroup has been added in the AD-Mapping that allows you to skip the update programmatically if it exists already.

Sample SkipUpdateIfExists property value - iManage

<property name="SkipUpdateIfExists" values="true" appliesTo="iManage"/>

Sample SkipUpdateIfExists property value - M365

<property name="SkipUpdateIfExists" values="TRUE" appliesTo="Office365"/>

Note: Specify "SkipUpdateIfExists" property value manually only for M365.

  • Preferred Database field

    • Add property value "PreferredDatabase", allows you to specify the user's Preferred Database on user creation

Sample PreferredDatabase value

<property name="PreferredDatabase" values="WORKSITE2020" appliesTo="iManage"/>

Note: PreferredDatabase property is applicable only for the iManage external system.

Password flag Mapping

The property name “passwordExpired“ allows you to set the password expiration against user creation in iMange. Allows you to set password update on the first login after user creation in iManage using the property name “ForceUserToChangePassword“.

Note: passwordExpired and ForceUserToChangePassword properties are applicable only for iManage.

Sample Password flag Mapping

<property name="PasswordExpired" values="True" appliesTo="iManage"/> <property name="ForceUserToChangePassword" values="False" appliesTo="iManage"/>

 

AppSettings

App Settings allow for configuring the settings to the Data Uploader application as a whole. Any performance, or implementation settings reside in here.

Open up the AppSettings.config in C:\Program Files (x86)\Prosperoware\Prosperoware Data Uploader\configs file path.

 

Available Settings

  1. Show Fileshare: If your firm uses fileshares and imports from one in Data Uploader, set this to true during the implementation. The default is false.

  2. SQLFolderPath: This sets the folder where the SQL files to run that display in the SQL Files tab reside. If you’ve changed the folder location from default, change this before you implement and sync.

  3. CsvFolderPath: This sets the folder where CSV’s that were generated by the data uploader reside during the sync. If you’ve changed the folder location from default, change this before implementing and syncing.

  4. CSVArchiveFolderPath: Archived CSVs from jobs reside in this folder path. If you’ve changed the folder location from default, change this before implementing and syncing.

  5. CSVDelimiter: Tells what delimiter to use in CSV creation. \t is for tab separated and \c is for comma separated. Change this to the delimiter that your firm uses.

  6. DateFormat: Sets the format of dates handled through data uploader imports. The default is: yyyy-MM-dd HH:mm:ss.

  7. SyncGroups: Set as true to sync groups. This will be set to true if you select sync groups from the UI.  The default is false.

  8. SuppressScriptErrors: Set as true to eliminate extra debugging errors. Set as false if you are running into errors or not getting an error to an issue/ customer care recommends. Recommended to keep true until necessary. The default is true.

  9. CommandTimeout: Sets the timeout of DataUploader’s processing of syncs. The default is 600. Keep for the initial sync, unless your partner or professional services team or DevOps recommends a higher value, or if you see issues with timeouts with large batches.

  10. ArchiveFilesLifeCycle: Sets the retention period in days for archived files. The default is 30 days. E.g. if 30 days is set it will keep archived files for 30 days past when it was generated. If your firm requires a longer retention, change this value in implementation.

  11. RecordCountLimit: The limit of records to return per CSV when it is batching to upload to CAM. The default is 100. This setting can be changed in the Administration panel of CAM to override as well. This helps to batch the records.

  12. ThreadCount: Number of processor threads to use for DataUploader on the machine running DU. Keep in mind that this depends on the machine running DataUploader, as well as the DMS you may be syncing from like iManage. Do change this during implementation.

  13. ExportFolderLength: Character length max for the folder name. The default is 200 characters. If your folder name length is longer than this, you may see folder length errors, so increase this value.

  14. ExportDocumentLength: Character length max for the document name. The default is 200 characters. If your document name length is longer than this, you may see document length errors, so increase this value.

  15. DomainMachineName: This is the machine name or IP address of the AD server you are connecting to.

  16. SkipDupeDetection: If 0, this would enable duplicate detection in the sync and flag in the validation report and job any duplicates.

  17. DupeDetectionType: If 1, the log resides in the dupe folder path.

  18. DupeFolderPath: Path folder for duplicates to be logged in. “Duplicate” is the default.

  19. ReplicationSyncWaitTime: Time to wait between the replication of a sync to the next sync. The default is 30 seconds. If you set this too close, syncs may collide.

  20. MaximumExportConcurrency: Sets the number of items to concurrently process in export. The default is 20 items. If errors exist with timeouts or Unavailable, the number could be too high for the source server.

  21. EmailProfileColumns: The columns of metadata to include in the email profile. Default is: MessageId#Name,DateTimeReceived,DateTimeSent. Change this configuration during implementation if necessary to change the email profile columns.

  22. UserPictureProperty: The property to bring over the user’s pictures in the sync to CAM. The default is thumbnailphoto. If you don’t want pictures, remove this property in implementation.

  23. SyncNestedGroups: This parameter allows the syncing of nested groups and their children users and groups. The default is No (turned off). Turn this on if your firm in AD has one or more nested groups that you want to sync the nested groups and users.

 

App Settings Implementation Checklist

Must Review or Add

The following of the above settings need to be reviewed or added during implementation:

  • Show Fileshare

  • CSV Delimeter

  • DateFormat

  • SyncGroups

  • CommandTimeout

  • ArchiveFilesLifecycle

  • ThreadCount

  • ExportFolderLength

  • ExportDocumentLength

  • DomainMachineName

  • SkipDupeDetection

  • EmailProfileColumns

  • SyncNestedGroups

Optional or Default System Settings

The following settings are either defaults that may not need to be changed or optional settings:

  • SQLFolderPath

  • CsvFolderPath

  • CSVArchiveFolderpath

  • SuppressScriptErrors

  • RecordCountLimit

  • ReplicationSyncWaitTime

  • MaximumExportConcurrency

  • userPictureProperty

SQL Scripts

  1. Copy the scripts from the C:\Program Files (x86)\Prosperoware\Data Uploader\sql file to the new. C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\sql

Please Note: Out of the box the CreateOrUpdateWorkspace.SQL script is included in the sql folder. You can delete this script if you already have scripts created. If you have not created any scripts, you can edit this script for use in provisioning.

  1. Move any additional custom scripts to this SQL folder.

Note: Users and groups can be created using two ways, one by uploading the API or CSV file and two by using the AD.

 

Testing new workspace provisioning scripts

To ensure the successful deployment of a new workspace provisioning script, testing is crucial. Follow these recommended steps for effective testing:

·       Validate the script in SQL and review the output to identify any issues with missing metadata, templates, or with script logic.

·       Update and revalidate the script to address any problems.

·       Use Data Uploader to generate a CSV and examine the data for accuracy.

Remove all but a few records from the CSV and submit a test job with this smaller dataset to ensure accuracy before full deployment.

Active Directory Synchronization Overview

Setting up AD Sync is critical for synchronizing users and groups to CAM from Active Directory.  The process is driven by a connection to each AD Organizational Unit (OU) where the users and groups to be synced are located, and configuring the ADMapping.config file.  All the OUs are filtered through this one file by the configuration of criteria filters and other attributes and properties that can be set. Ultimately, the result is a CSV of the applicable people which can be scheduled in Data Uploader to automatically be sent to CAM for processing.

 Here are the recommended steps for the setup and configuration of AD Sync:

  1. Review and cleanup Active Directory Organizational Unit data.

  2. Connect to Active Directory Organization Units via Data Uploader.

  3. Configure ADMapping.config.

  4. Update SourceFiles.config with Organization Units.

  5. Test the AD Sync configuration.

  6. Schedule the AD Sync.

1. Review and Cleanup Active Directory Organization Unit Data

AD data review and cleanup should focus on purging non-user entities such as printers, multi-function devices (MFDs), and other legacy connected devices from each OU to ensure only user data is synchronized, preventing unnecessary entries in the DMS that could complicate the data environment.

2. Connect to Active Directory Organization Units via Data Uploader

In Data Uploader’s Active Directory tab, use the Add button to add each Organization Unit that contains the users and group you wish to sync.  There is no limit to the OUs that can be added for synchronization.

For information on adding Organization Units, please see Configure Data Uploader | Active Directory tab Connect to to AD

For adding multiple OU’s see, Configure Data Uploader | Scheduling multiple OU or Container syncs

3. Configure ADMapping.config

Overview

The ADMapping.config file, located in C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\service\config, is pivotal for configuring AD Sync. This configuration tool defines the user and group data that will be organized in the CSV sent to CAM for processing, serving as the blueprint for synchronization.

All connected Organizational Units are configured within this single ADMapping.config file. The file contains three Objects (UsersAndGroups, UsersOnly, and GroupsOnly) with criteria that act as filters. For each OU, multiple instances of these Objects can be created, and their criteria configured to determine the specific users and groups to be included in the AD Sync process.  Properties and values for these users and groups can also be directly specified in the file, affecting the information that will be included in the CSV.  Once the ADMapping.config file has been configured, a CSV reflecting the user and group data configuration can be produced and provided to CAM for processing.

Anatomy of the ADmapping.config File

Objects Section

 

image-20240816-115151.png

 

  1. Three objects are available: UsersAndGroups, UsersOnly, and GroupsOnly.

  2. Each Object contains a <criteria> and <values> section.

A.      The <criteria> section is used to configure the filter for the users and groups that will be included in the AD Sync process. The ad-property and value are used to set the criteria and value for the filter, and the operator facilitates logic operations for the filtering process.

B.      The <values> section provides the ability to set properties and values for the users being filtered by the criteria section.  See the CSV parameters for User and Group Provisioning section for more information on setting properties and values.

  1. To configure multiple OUs for synchronization, copy Objects as many times as needed, then add the OU for the Object via the DC attribute.  

<default>, <fields>, and <groupfields> Sections

The <default> section is used to assign a default value to all the records being filtered above.  If for example, you are setting the same database for all the records, instead of setting this value in the values section for each Object, set the Database property in the Default section.

The Fields and Groupfields sections are used to map specific Active Directory attributes to a CSV property.  The AD attribute’s value will be added to the CSV in a column with the property name you specify.  For example, change the “mail” attribute in AD to “userid” for iManage.

 

CSV Parameters for User and Group Provisioning

Parameters are available for tasks such as creating, editing, deleting, and disabling users and groups, as well as removing users from MyMatters in iManage. For the complete User and Group Provisioning parameter list, visit our documentation.

These parameters are coded as properties in the ADMapping.config file to set specific values for the synchronization process.

Below are examples of setting properties:

·       Disabled. This property is used to enable or disable a user or group in CAM or another system.  Set to True/1:
property name="Disabled" values="1"

·       IsCAMUser and IsCAMGroup.  This property determines whether to create a CAM user or group, the people and groups who will use CAM, during the AD Sync process. Setting to 1 will trigger creation; Setting to 0 will prevent the creation.
property name="isCAMUser" values="1"
property name="isCAMGroup" values="1"

·       Database. Determines the specific library or libraries to which users and groups will be associated. This property is essential for ensuring that the AD Sync process targets the correct database.

o   The value should be the exact name for the target database. 

o   When associating multiple databases, separate each with a pipe character (|).

o   Use with the Preferred Database property when specifying multiple databases to indicate which database is primary.
property name="Database" values="HR|Active" appliesTo="iManage"
property name="PreferredDatabase" values="HR" appliesTo="iManage"

  • SkipUpdateIfExists: This parameter can be used with an AD sync or without one based on where you want users and groups to be imported. Set this setting here in AD configurations if you want the user to come from the AD system. 0 will update the user or group in both CAM and the external system, 1 will skip the external system and update only in CAM.

 

For more information, see Configure Data Uploader | Mapping Active Directory (AD) properties and Configure Data Uploader | Filtering Active Directory Users/Groups

4. Update SourceFiles.config with Organization Units

Add an entry for all connected OUs in the AD Sync process to the SourceFiles.config.  See the Source Files section for more information on adding connected OUs to the SourceFiles.config.

The SourceFiles.config, located in C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\service\config, should include an entry for each active SQL script and each connected Active Directory Organizational Unit. The file ensures Data Uploader only processes and sends new or modified jobs to CAM by enabling the JobDelta table in the CAM Local Database to track job submissions.

image-20240816-115523.png

5. Test the AD Sync Configuration

Before scheduling AD Sync, use Data Uploader to generate a CSV, then submit a job with a small subset of the data to ensure accuracy.

On Data Uploader’s Active Directory tab, click Generate CSV for the OU being tested. Open the CSV and examine the data to verify the configuration has produced the right results.  Next, remove all but a few records from the CSV and submit a test job with this smaller dataset, then verify the results of the job.

When user and group records are not updating, check:

·       Does the user meet the filter conditions defined within the <criteria> section for the relevant Object in the ADMapping.config file?

·       Does the user exist in the external system, and is the “SkipUpdateIfExists” configuration set to True in the ADMapping.config file?

·       Does the user have an entry in the JobDelta table?  Is there a change to the user record? Existing users with no changes will be skipped.

·       Is the OU where the user is a member included in the scope of the ADMapping.config file?

6. Schedule AD Sync

The best strategy for scheduling AD Sync is to schedule each OU individually from Data Uploader’s Active Directory tab.  It is important to determine the frequency of changes applicable to not only each OU, but also scheduled SQL scripts to ensure jobs do not overlap.

When adding an OU, or editing a connected OU, use the Run option, in the Domain details screen, to set the synchronization frequency for that specific OU.

 

image-20240816-115721.png

For adding multiple OU’s see, Configure Data Uploader | Scheduling multiple OU or Container syncs

 

Notes on SkipCSV

If after an ad-hoc sync or a scheduled Data Uploader sync, you see the following in the Data Uploader logs that a job has been skipped with the log: Skip Uploading CSVName.csv, this means that the csv was skipped because of an empty file, or that there is no new data to upload or update from that job (eg all rows are the same from source to target).

Some versions of data uploader will not show the message in the logs FYI!

The CSV that was skipped will reside inside the folder path Prosperoware\CAM\DataUploader\skipcsv

 

External System Configuration

Note:  Before you start using the Cloud Data Uploader, you must configure the external systems. Once you successfully complete the initial CAM configuration, you can configure incremental imports on a regular basis to keep CAM synchronized with your billing system.

Tip: See the External System Configuration page for more information to set up the source DMS and map the Metadata.

CAM Credentials tab

When the data uploader is accessed for the first time, the CAM Credentials tab on the Cloud Data Uploader window displays. The Cloud Data Uploader requires domain authentication to secure information from the source destination to the target destination.

Type information in the provided fields, based on the table below, then click Authenticate. This is a one-time process only and need not be done for subsequent updates. Re-authentication may be required in case you change your credentials or your access token fails.

Field

Description

Field

Description

Domain

Enter the domain name that contains the data to be synced to cloud. E.g. sitename.tenantname.io. Leave off the https:// and the ending /

Email

Enter your domain email ID. E.g. myemail@company.com

Password

Enter password for the email specified above that is used to log into CAM.

Upon successful authentication, you will be brought into the Data Uploader page to the Run tab by default. Go to the Connection String tab to begin.

Connection String tab

Use the following instructions to add a new connection string to connect to the billing database. This will allow the Data Uploader to connect to the SQL Server and execute the queries to upload jobs to CAM. If you run Data Uploader without a connection string, it will return an error.

SQL must be SQL Standard or higher, CAM no longer supports SQLLite.

  1. Type information in the provided fields, based on the table below.

Field

Description

Field

Description

SQL Server Name

The name of the SQL server hosting the billing database.

Connected System

Shows the connected systems that can be set. Options are Local Sync Database, Source Database, and CAM Local Database. Local Sync is one used for DataSync. Source Database is the external system typically used. CAM local database allows connecting to a CAM local database to use.

Database

The name of the database that you created on the SQL server to be used by Data Uploader.

Authentication

Choose the type of authentication to be used to connect to the data source database. Options include Windows authentication using the Windows credentials and SQL authentication using specific database-only credentials.

Username

Enter the username of the database. (SQL authentication only)

Password

Enter the password for the username of the database. (SQL authentication only)

  1. Click Save.

  2. Click Test Connection. If successful, a Valid Connection message is displayed.

  3. Continue to the SQL Files tab to set the SQL scripts to run for the uploader process.

Note: Data Uploader also supports configuring to ODBC databases like IBM/DB2. The option for ODBC connection is in External Systems.

 

Creating and Connecting to the CAM Local Database

The CAM Local Database is used to store the Data Uploader database schema, which includes various tables that Data Uploader uses to store information about the jobs it submits to CAM.  One of the CAM Local Database tables, the JobDelta table, tracks changes between job runs and is important for troubleshooting.

 

image-20240814-220746.png

To create the Data Uploader schema as pictured above, create an empty SQL database, then establish a CAM Local database connection to it within Data Uploader.

  1. In the external system SQL server, create an empty SQL database.  It is common for the database to be named “CAMLocal” but not required.

  2. On the Connection Strings tab in Data Uploader, click +Add to add a new connection.

  3. Enter a Name for the connection, then in the Select Connected system list, choose CAM Local Database.

 

image-20240814-220823.png
  1. Complete the other connection details, click Connect, then Save. The empty database is populated with the Data Uploader schema.

Using Multiple Connection Strings

If there are multiple sources, you can set multiple connection strings. For this to work, .Net 4.8 or higher is required to be on the system data uploader is installed on.

The setup of the multiple connection strings, differs where the source systems reside. Use one of the following steps below:

Both sources are cloud based: Set up the source systems in the Source System panel. The source systems can be independently run.

Both sources are on-premise and on the same sql server: The connection string can be used for both systems, since the databases reside on the same server.

Both sources are on-premise, but each source is on a different sql server: Data Uploader would need to be installed on two instances, one for each source.

There is a new ConnectionString.config file, where users can add multiple connection strings, on a file by file basis. This is edited whenever a user adds a new connection string from the Connection Strings tab in the user interface.

How does Data Uploader determine how to import

If the last modified date is in the SQL files, then the last modified date is used to check the data brought in. However, the Job Delta ensures the records from the sync before remain in the Staging tables. Only any new, or changed records get imported from there into CAM. Similarly, AD sync or other tabs will use the system configuration.

For example, if a user or group is imported, If the client has other conditions in the SQL Scripts to check if a duplicate record exists using if/then statements, these are used to bring over the initial records to staging.

Then the records are compared using the username or group name to see if it exists. The client can change these with the source mapping configurations by stating the unique ID columns exactly!

Lastly in the script or in the source mapping, if there is a last modified date inside, this is used to determine the date range to go back to check and pull data.

For Active Directory, all records are checked in Active Directory, unless a particular group or OU or container is defined.

Active Directory tab Connect to to AD

Click this tab to sync connections to an Active Directory system including AzureAD/Entra ID which CAM DU supports. Microsoft now calls Azure Active Directory-> EntraId New name for Azure Active Directory - Microsoft Entra .

Active Directory is used to bring over users and groups into CAM.

CAM’s EntraId support does not support MTO!

  1. Click + Add and provide details in the available fields, based on the table below.

Field

Description

Field

Description

Domain

The domain controller (DC) that contains the users or groups to be synced to CAM. CAM supports both the DC naming, as well as just the domain name in this field. For example if your domain name is Prod, and the DC is prod.myfirmname.com, we support either putting “Prod” or “DC=prod, DC=myfirmname, DC=COM”.

Additionally, OU’s are supported in this field as in OU=Asia

Note: This field supports up to 156 characters.

Select External Systems

Selects which external system(s) to create the AD items on. Note this will show all available external systems configured, not just those to which your license has.

User Path

Define the common name (CN) user look up path.

Sync Groups?

Select [Yes] to sync your user groups with CAM.

If you are keeping users of an external system in a group and you just want to import the users and not the group to assign the users to, set No for syncing groups.

Group (CN) Path

Define the common name (CN) group lookup path. There is a 54 character limit to define the path.

Nested Groups?

Select [Flatten and include] to sync your child user group members with the parent group that contain them. This will remove all the sub-groups and create a flat list of users in the parent group, gathered from all the child groups contained within the parent group. Or [Skip]

Group Exclusions

Add any groups to be excluded from this domain.

Reprocess all users and groups to include GUID?

Pulls the GUID and import reference from AD sync and includes it into the CSV in the GUID and importreference columns. This is so user and group changes can be tracked; without it CAM cannot tell what changed in AD and could create new users if the id, email or username changes.

Active

Select [Yes] to activate the domain, otherwise select [No].

Authentication

If the domain is added to the Trusted site zones, you can select the Trusted Login option for auto log on with current username and password or Enter windows credentials to log on to the domain.

  1. Go to Run Tabs and click Run Now to trigger the AD sync manually.

Note: Syncing will allow the user groups and child user groups to be created on the configured external system in CAM. This will ensure a disabled user in the Active Directory is also disabled in the relevant external system.

  1. Click Save.

Note: When creating a workspace in iManage, the Boolean metadata values for the custom fields can only be passed as TRUE/FALSE.

Additional AD Information

If necessary these are the following mappings of AD properties to a given CAM field that is imported through Data Uploader. The CSV is created in the beginning of a scheduled sync or a run now sync. The files then are uploaded into CAM.

Note: If you have multiple domains, separate CSV’s per domain will be produced.

  1. The following AD properties are mapped (from the CSV file) on data sync:

AD Properties

Mapped As

Config file Properties

AD Properties

Mapped As

Config file Properties

First Name

Given Name

userEntry.FirstName

Name

Name

userEntry.Name

LastName

lastname

userEntry.LastName

SamAccountName

samaccountname

userEntry.SamAccountName

description

displayname

userEntry.DisplayName

Description

description

userEntry.Description

Email

mail

userEntry.Email

Nested

nested

userEntry.Nested

NestedGroups

nestedgroups

userEntry.NestedGroups

ObjectGUID

Object GUID

userEntry.ObjectGUID

Disabled

disabled

userEntry.Disabled

Groups

memberOf

userEntry.Groups

Telephone

telephoneNumber

UserEntry.Telephone

Office

physicalDeliveryOfficeName

userEntry.Office

StreetAddress

streetAddress

userEntry.StreetAddress

City

city

userEntry.City

PostalCode

postalCode

userEntry.PostalCode

Country

country

userEntry.Country

JobTitle

title

userEntry.JobTitle

Department

department

userEntry.Depatment

Company

company

userEntry.company

DefaultDatabase

database

 

DefaultCabinet

cabinet

 

DefaultRole

role

 

SyncNestedUsermembership

Should nested users be synced?

SyncNestedUsermembership

Note: When a user/group is deleted from AD, programmatically it will be disabled from iManage too. The disabled user information can be tracked for document audit history.

 

Scheduling multiple OU or Container syncs

Firms can sync multiple OU’s or containers separately if necessary.

  1. To do so, create another AD configuration in the Active Directory tab.

  2. Set a different OU in the domain path than the first one (e.g. OU=Asia rather than US even though the domain might be the same otherwise).

  3. If a user path or group path differs, change this.

  4. The container path can also be inputted to the domain field if desired.

  5. Set any remaining exclusions or configurations and set them active.

  6. Now the user under the Run tab can schedule each AD domain job separately so that each OU Container or path is imported.

Maintaining AD Change Events in DU by Turning on AD Logging

For Active Directory to maintain change events in DU/CAM to users and groups in regards to deletions, the Active Directory logging needs to be enabled on that AD server.

You can read this information in full from Microsoft here:

AD and LDS diagnostic event logging - Windows Server

Steps:

  1. Log onto the AD Server running AD to which you will be synching CAM to.

  2. Select Start, and then select Run.

  3. In the Open box, type regedit, and then select OK.

  4. Locate and select the following registry keys.

    Domain controller: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics
    LDS: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<LDS instance name>\Diagnostics

    Each entry that is displayed in the right pane of the Registry Editor window represents a type of event that Active Directory can log. All entries are set to the default value of 0 (None).

  5. Configure event logging for the appropriate component:

    1. In the right pane of Registry Editor, double-click the entry that represents the type of event for which you want to log. For example, Security Events.

    2. Type the logging level that you want (for example, 2) in the Value data box, and then select OK.

  6. Repeat step 4 for each component that you want to log.

  7. On the Registry menu, select Exit to quit Registry Editor.

     

Note

  1. Logging levels should be set to the default value of 0 (None) unless you are investigating an issue.

    1. When you increase the logging level, the detail of each message and the number of messages that are written to the event log also increase. A diagnostic level of 3 or greater is not recommended, because logging at these levels requires more system resources and can degrade the performance of your server. Make sure that you reset the entries to 0 after you finish investigating the problem.

 

Local Sync tab

This tab helps to schedule and sync CAM data to the local database.

  1. Type the information in the provided fields, based on the table below.

Field

Description

Field

Description

Select Connection String

It will list the Connection Strings that are set in Connection String tabs where connected source is set as 'Local Sync Database'. Choose the connection string to create local data sync.

What do you want to sync?

Select any or all from the options provided :

  1. Users

  2. Groups & Group Membership

  3. Matter(Workspace)

  4. Metadata

How often do you want to sync?

Select any one interval option and occurrences.

  • Minutes - The job is executed based on the interval in minutes to execute.

  • Hourly - The job is executed based on the time interval defined in hour(s).

  • Daily - The job is executed daily based on the time interval defined in day(s).

  • Weekly - The job is executed weekly based on the time interval defined in week(s)and the days of the week selected.

  • Never - If Never is selected, no options appear, it triggers background job and starts local sync. So “Run Now” option is not available at Local Sync

  1. Click Save.

Data Flow from AWS tenant to local database

  1. It enables you to save the data from a CAM tenant into a local database through a connection string. This uses the CAM API over calls through an HTTPS connection authorized by an “OAuth token”. For details on OAuth see the subsection below.

  2. Then the data is saved to the local Database into CAMSync.job. CAM will log the data being synched, the audit information, and details about the job being processed such as scheduling and recurrences.

  3. CAMSync.Matter, CAMSync.Metadata, CAMSync.Users, CAMSync.Groups and other tables will be where the data resides when it is synched to CAM. Use these for your queries to see what data flows to CAM.

OAuth Information

Data Uploader(DU) connects to CAM via OAuth. Initial tokens are obtained during the initial setup and then renewed on a regular interval. Token can not be used to directly log into UI. Tokens are stored encrypted locally.

Version Data Uploader Uses: 2.0

OAuth 2.0 has a client, an authorization server, a resource server, and a resource owner. As per the flow chart below, Data Uploader uses OAuth 2.0 to connect to CAM.

 

oauth.png

 

SQL Files tab

In Data Uploader, all sample SQL files are stored in the Sample folder (C:\Program Files(x86)\Prosperoware\CAM\DataUploader\CAM\sample - this will point to the location where the uploader is installed). To execute SQL queries, move the SQL files to the on-premises database defined in the connection string (C:\ProgramFiles(x86)\Prosperoware\CAM\DataUploader\sql). This sql folder will contain all your SQL queries to be executed by the Data Uploader.

After upgrading Data Uploader:

  1. Edit the Path for the SQL files to point to a folder inline in the AppSettings.config file if a custom SQL files path is used. Otherwise, skip this.

    1. Open the Data Uploader folder in the filesystem. Go to C:\Program Files(x86)\Prosperoware\CAM\DataUploader\CAM\service

    2. Open file AppSettings.config

    3. Confirm or edit the line item <add key="SqlFolderPath" value="" /> is set to the folder of the SQL files if a custom folder is set. If out of the box, skip.

  2. Edit the individual SQL file configurations in the SourceFiles.config.

    1. E.g. if you added a script for Folders, a line item would be added inside SourceFiles.config like:

    2. <uniqueId columns="clientId,matterid" source="Folders.sql"/>

    3. Ensure you have a Folders.sql in the SQL folder.

    4. Repeat for all SQL files you have. If you don’t add these to the config they will not be used in the import.

Viewing SQL Files:

  1. In the Cloud Data Uploader, click the Refresh button to view the updated list of files placed in the Sample folder.

  2. To view or edit the script, click Edit File.

  • Options to Edit are:

    • FileName cannot be edited.

    • Type of the SQL file.

  1. Select if Enabled or not Enabled. If no, the remaining fields do not display. If yes, these fields display:

  • Run Every: The time period to run the SQL script.

  • From: The initial date of the full or delta sync.

  • Start: The start date of the full or delta sync

  1. Click Run Now to execute the query.

Actively used SQL files will be checked in the Active box. Inactive files are not checked and used.

Once the query is executed, the Data Uploader will create a CSV folder in the default installation location C:\Program Files(x86)\Prosperoware\CAM\DataUploader\csv. Each query is returned in the form of a separate CSV file, which is placed by the Data Uploader in this CSV folder. The CSV file is then uploaded to the Jobs tab for further processing. The log details of this uploaded job can be viewed in the Log tab in the Data Uploader.

Note: In order for Data Uploader to be able to create provisioning jobs, a properly configured script to update the matters must exist in the Data Uploader program folder C:\Program Files(x86)\Prosperoware\CAM\DataUploader\sample

Validation of SQL Files:

This feature allows for the validation of the Data Uploader SQL files. It checks if the metadata is present in CAM, if the metadata mappings are present, and if the column names are defined. Additionally, if templates are set, it will check that the templates exist in CAM. Users and Groups ACL's are also confirmed to ensure the users and groups exist in CAM.

  1. Click Validate SQL Files from the options menu in the SQL Files tab of Data Uploader.

 

User Creation and Validation

When a user is created through an SQL file, whichever metadata is present in CAM Internal Metadata will validate successfully. Missing metadata will show an error. The particular failed data entries will be in the Application Log of Data Uploader. Any portion of the Validation that fails will have a red X.

The tables checked will be the Users, UserGroups tables as these are the staging tables. Under the schema CAMSync, the users and usergroup tables there will be where the records that are new or changed need to be imported into CAM.

 

By default, all SQL files are checked. If you uncheck the all button, then you can individually select one or multiple files.

 

If a validation error or error shows that the group name or username is too long, please modify this. See this page for the group name character limitation: CAM Limitations | Data Uploader

Important: If an SQL File is disabled and the connection string is not set, the file will be skipped by default.

Warning: When using the Availability group in SQL in Data Uploader, it is recommended to use the cluster alias instead of the primary server. Otherwise, there may be failures when changing from the primary to the secondary server.

Setup the Schedule button

The best strategy for scheduling both AD sync and SQL scripts is to first determine the frequency of changes applicable to each. Next, based on the determined frequency, individually schedule each SQL script from the SQL tab, and the AD sync from the Active Directory tab, and ensure that tasks do not overlap.

The global schedule for the queries to be executed can be set on the Run tab. The content from your source database will be automatically updated to CAM as per the frequency defined here. You can set the option to execute the queries MinutelyHourlyDailyWeekly, or Never (for a manual or one-time run).

The table below lists the set up available. The timer is available for each SQL file available.

Timer

Description

Timer

Description

Minutes

The job is executed based on the start time, end time, and the interval in minutes to execute.

Hourly

The job is executed based on the start time and the time interval defined in hour(s).

Daily

The job is executed daily based on the start date, time, and the time interval defined in day(s).

Weekly

The job is executed weekly based on the start date, time, the time interval defined in week(s)and the days of the week selected.

Never

If Never is selected, no options appear below. In Local Sync if user configure interval option as “Never” then it triggers background Boolean values should be Enable and starts local sync. So “Run Now” option is not available at Local Sync.

  1. Set the timer

  2. Click Save. The Last Run time and the scheduled Next Run time is updated in the tab.

    1. You can also click Run Now to execute the job manually.

Note: if an existing sync is updated to Never, then the scheduled job associated will be removed.

The Data Uploader task is also added to the Windows Task Scheduler on the machine where the Data Uploader tool resides, if scheduled for a timeframe. The schedule for the Data Uploader can also be adjusted from the Task Scheduler. The user must have an account with permissions to enable the scheduler task.

Each CSV file will be uploaded one at a time into the Jobs tab to eliminate collisions.

By default, when deleting logs, CAM will delete all filtered logs. For example, if you filter based on date, it will delete all log records from that time period.

 

Tip: In order to have a smoother experience when scheduling any task for AD Sync:

  1. Go to the Task Scheduler.

  2. Right-click the scheduled task and select Properties.

  3. Under Security options, select Run whether user is logged on or not and uncheck Do not store password.

  1. Click

OK.

Validate button

This button validates the data and configuration files, and provides status.

Any portion of the validation that fails will have a red X. The particular failed data entries will be in the Application Log of Data Uploader.

For example if it says Templates do not exist in CAM, the templates need to be created in CAM first before running DataUploader. See step 8 of the Provision checklist here: Provision Implementation Checklist

Run Now button

This will pop up a window that provides options for the user to decide which files to run. It allows users to select individual SQL files or Active Directory Sync.

  1. Click Run Now to open the following dialog:

  1. Select Sql FilesActive Directory, or All

    1. If Sql Files is selected, it displays a list of active SQL files with checkboxes. See below.

Tip: User can select or deselect the listed scripts at a time for run.

  1. Click Run so the selected files will be executed, or click Cancel to close the dialog. You can see that CAM has created a separate CSV folder under the parent CSV folder for each SQL file to help us identify the specific SQL file.

Task Scheduler Configurations

  1. After successfully running the SQL files, navigate to the Task Scheduler. Notice a CAM folder is created programmatically containing SQL files, as shown below:

  1. Select the job and double-click to edit. The following screen opens:

  2. Select Run whether user is logged on or not.

  3. Check the box for Run with highest privileges.

  4. Click OK to run the job or click Cancel to close the dialog.

Note: Users should put an auto cleanup job to delete files older than 30/60 days from both the archivecsv and skipcsv folders to keep your server clean. If the folder gets too large, delta jobs can not be run or fail.

Also, you should have the standard SQL server maintenance jobs setup on the CAM Local database.

Logging of the Job

  1. Click the Log tab to view information on the jobs executed in the Data Uploader, including process information and the type of error. The following types of entries are displayed:

  • INFO- Any information or generic notes regarding certain jobs uploaded.

  • ERROR- Displays a message describing the failure. Click Details in the message to view the error details and stack trace.

  • FATAL- Displays a complete description of the error.

  1. The Log has a Filter option that allows you to narrow the entries to a particular set of results.

  2. You can also Export the content of any log to Excel. This can be helpful when contacting Support regarding an issue.

  3. Click the Refresh button to refresh the values to show the latest log entry.

  4. Click Delete to clear the log.

Re-queue a Job:

There is a new queue parameter to re-queue any old jobs. To do this:

  1. add/update the CSV parameter of the job CSV to Queue=1 and upload.

Users do not need to wait for the complete job to see the log within CAM. When it appears, double-click on the Jobs tab in CAM.

Note: In Data Uploader, or SSI or CAM in general, When a provisioning job for a team or channel or site is received, CAM creates a separate job for each tab or app in addition to the Team creation or provisioning job. For provisioning users, or groups or workspaces or folders, there is only one job when bulk updating or creating records from DU or SSI.

E.g. one record will show for Data Upload. Then a record shows for the subsequent action of Create Workspace if the job was creating workspaces from DU.

Sync with an On-Premises SQL Database

Data Uploader comes with the ability to sync CAM with an on-premises local SQL database. Users may need the CAM data for third-party databases like SPM. Additionally, this locally stores the uploaded workspace jobs before uploading them to CAM. This enables an efficient Delta upload by allowing Data Uploader to compare the local data for changes and only upload those workspace jobs that need to be updated.

To setup an On Premise Sync

  1. Open Data Uploader.

  2. Go to the On-Premise Sync tab.

  3. Enter the SQL server name. If it is on the localhost, you can put (local).

  4. Enter the Database Name.

  5. On the Trusted Login option, select Yes or no.

    • Yes is if the user will use Windows authentication to connect to SQL.

    • No lets the user set the UserId and Password.

  6. Click Connect and Create Schema.

This creates the needed schema on the database for the CAM Data Uploader sync(s).

Note: The user permission should have SQL rights to create tables and schema for this.

After the schema is created, set up the sync properties and schedule.

What do you want to sync?

  • Users

  • Groups and Group Membership

  • Matter(Workspace)

  • Metadata

How often do you want to sync?

  • Minutes

  • Hourly

  • Daily

  • Weekly

  • Never- Means one time manually

Note: Logs for Data Uploader are moved to the SQL database and not using SQLLite if on premise is used.

Note: The Delta sync is supposed to sync one job if there are multiple job rows in the CSV specified. If you don’t use Delta sync, you might run multiple jobs.

Schema of the On-Premises Sync

  • CAMSync.GroupMembers. Contains the members of each group.

  • CAMSync.Job. Contains the jobs that run.

  • CAMSync.JobDetails. Details about which sync job is running. For example, is the job running a user job, matters job, etc.

  • CAMSync.Matter. The matters are synched here. Note these are just references.

  • CAMSync.MatterSystem. The details of the matters reside here. All system matters live here (imanage, netdocuments, office365, external systems).

  • CAMSync.Metadata. All of the metadata is synched here.

  • CAMSync.UserGroups. The users and their groups are synched here.

Mapping Active Directory (AD) properties

The ad-property imported can be mapped to another property so that the data comes through as desired.

To set the property mapping

  1. Change the config for the AD sync to add the csvproperty.

For example, let's change the email to be the iManage userid and not the userid from Active Directory

The config should be setup like this:

<configuration> <fields> <field adproperty="mail" csvProperty="UserId"/> </fields> <groupfields> <field adproperty="description" csvProperty="DisplayName"/> <field adproperty="name" csvProperty="groupName"/> </groupfields> </configuration>
  1. Within the adproperty field line, add csvProperty="Property" for it to use that csv property.

  2. Save the config.

  3. Run Data Uploader.

The email is set as the userid for iManage, if you Generate the CSV from Data Uploader, or run the Data Uploader Sync.

Passing Users via CSV

If the UserId passed in the CSV is incorrect compared to Active Directory, CAM will still create a user that doesn’t exist, if you pass them via CSV.

Required fields for the user to be added are:

Field

Description

Values

Field

Description

Values

Full Name

Name of the user. Includes first and last

Joe Canton

UserId

The id of the user. AD will use the email as userid

testuser@myfirm.com

Role

The user’s role in Active Directory

Default or one of the AD roles

User Number (No)

The user’s number.

If this is invalid or not passed/blank, the OS_Type then is set to Virtual=2

14378

Email

The user’s email

testuser@myfirm.com

Preferred Database

Sets the preferred database the user can access. If you get errors with csv’s being created, you may want to remove the appliesto parameter from your ADMapping config file.

iManageProd

External User

Sets if the user is external to the firm

Yes/No

Allow Login

Allows login from AD to the external system/CAM

Yes/No

Failed Login

Sets the number of login attempts

0, 1,2…

Password Never Expires

If a system or admin account, typically is set to never expire.

Yes/No

User must change password at next login

Determines if the user must change their password the next time they login.

Yes/No

OS Type

The type of Operating system the user is using.

See below table:

OpType

Sets a “AND” or “OR” conditionality

1: AND condition for the properties.

0: OR condition for the properties.

Let’s say the properties division and desktoprofile exist. If you want the users or groups to receive both properties, set this optype=1

Optional fields:

  • SkipUpdateifExists: Use this parameter with an AD sync or without one based on where you want users and groups to be imported. Set this setting here in AD configurations if you want the user to come from the AD system. 0 will update the user or group in both CAM and the external system, 1 will skip the external system and update only in CAM.

OS Type Ids

OS_Type

Id

OS_Type

Id

Novel 3.x

1

Virtual

2

Windows NT

3

Novell NDS

4

External

5

Active Directory

6

LDAP

7

Configure Metadata names to Export the Document to Network Path

While exporting the document to network path with the option include CSV file, it will export the metadata selected in the query.

The CSV values are generated according to the config file related to the external system.

Configuration path: C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\service\config

Configure the fields according to the information below:

  • name: The Name of NetDocuments\iManage Attribute

  • description: The Name of the Column that will be shown on the CSV.

  • attrId: The Attribute id in the NetDocuments\iManage.

  • enabled: True or False(if true that column should be included in the csv and vice-versa.)

  • prosp-parent: Specify the Parent of the metadata when having parent-child metadatas.

Sample files are attached:

iManageIManageDocProperties.config

NetDocumentsNetDocsProperties.config

Automating CSV Imports for Batch DU Jobs

  1. Users could automatically generate CSV files of their import jobs using their program of choice.

  2. Then place the files inside the newCSV folder.

  3. Run a DU job that is configured, and the program picks up the generated CSVs and imports them.

Note Data Uploader is unable to compare these if the CSVs were previously processed before limiting what delta changes can be pushed.

 

Data Uploader Files and Compatiblity

In V2 of the Data Uploader, the Jobs submit JSON files instead of CSV files in the backend to avoid overloading the queue processor.

Old Version Compatibility

If a firm requires the older version of Data Uploader, V1, make the following changes to the appsettings.config file:

\<setting name="v2Enabled" serializeAs="String"\> \<value\>False\</value\> \</setting\>

We recommend using the V2 version of Data Uploader for more efficient processing!

New Version Features

  • In addition to the new submission in JSON, there is a new folder where those CSVs are stored when the JSONs are uploaded. This folder is called newCSV. The CSVs are created and then converted from these files in this folder to JSON. If a job fails, this would be the folder that contains the JSON files to troubleshoot.

  • Generated CSVs still reside in the generatecsv folder for all jobs.

  • Archived CSVs still reside in the archivecsv folder for any successfully completed jobs over time.

 

 

Related content

Let's Connect📌

☎ +1 630.598.1100
☎ ‪+44 20 3880 1550‬
📧 support@litera.com
💻 https://www.litera.com/support/

📝 Support is available:
4 am - 8 pm US Eastern
(9 am - 1 am GMT/BST
7 pm - 11 am AET) on normal business days (excluding holidays)

© 2024 Litera