Millennium M3 - TimeWorksPlus Integration - Installation and Setup

TimeWorksPlus and Millennium integrate via middleware that's installed on your process server hosting M3.

The integration provides the following functionality:
  • employee sync
  • accrual sync
  • time import file

How Do I Get It?

July 6, 2018 - This software was previously available through Baker Tech Consulting but is now available directly through SwipeClock. Contact your Channel Development Manager for more information.

What About PayEntry?

SwipeClock also has an integration with PayEntry that syncs employee data only. Technically, the integration explained in this article was designed for M3, the premise-version of Millennium's software, not PayEntry. However, you may be able to apply this integration to PayEntry clients as well. Explanation of how PayEntry and M3 work together is outside the scope of this article and would be best explained by Millennium.

Installation

This article serves as an implementation guide for the:
  • initial, bureau level setup.
  • company level setup.
How the integration works (including the employee data mapping) and the configuration of the accrual sync are covered in separate articles.

A PDF copy of the guide can also be downloaded here:

Millennium_TWP_Integration_Setup_and_Install.pdf

If you have already setup the M3 to SwipeClock Interface and are looking for instructions on enabling the integration for a client, see the section titled Configuring the Company in Millennium.

Installation Requirements

Before proceeding with installation, you should be prepared with the following:
  • Microsoft .NET Framework 4.5.
  • Ability to create scheduled tasks in Windows Task Scheduler.
  • Port 587 (SMTP) enabled on your perimeter firewall outbound from the machine running the scheduled tasks.
  • SwipeClock Accountant Level Login and password. It is suggested to use dedicated credentials for the integration and not credentials associated with an actual user. The reason is that if the password is changed or the credentials are deleted, your integration will break. Contact your Channel Development Manager if you need an additional Accountant Level Login created.
  • Site Code from one of your TimeWorksPlus accounts. It is suggested that you use your SwipeClock demo account.

    You can find your client's Site Code in your Client List
  • SwipeClock Accountant ID and API Secret. These are both found in the Accountant Menu under Accountant Level Secret Management. Do not use the Client Level secret.

    The Accountant Level Secret is found in the Accountant Menu of TWP
  • Millennium username and password for a user with CSR or higher privileges. Like the SwipeClock credentials, it is suggested that these be dedicated to the integration and not associated with an actual user.
  • Millennium Data Source Name (DSN).

Interface Setup and Installation

Step 1 - Download and Unzip the Interface Program
Access the process server hosting your Millennium instance and download the .ZIP file containing the interface program. Extract the and run M3toSwipeClockInterfaceSetup.exe.
 

Finding and running the setup executable file
After running the executable, you'll see the following screen:

When installing the interface, you will first see this screen
 
Enter your Company Name, Contact Phone and the License Key provided by SwipeClock and continue the interface setup.
 

Step 2 - SwipeClock Config

Step 2 on the interface setup (pictured above) is to enter your SwipeClock information:
  1. Put your SwipeClock Accountant Login and password in the SwipeClock Service Bureau Login ID field.
  2. The Site Code for SwipeClock Master Company should be the Site Code referenced in the Installation Requirements section. It is suggested you use your demo account.
  3. Enter your SwipeClock Accountant ID and API secret. See the Installation Requirements section for instructions on finding your Accountant API secret. 
  4. Click Test Connection. If successful, proceed to the next step. If not successful, verify the information was entered correctly. If you continue to have problems, contact SwipeClock Tech Support.

Step 3 - Millennium Config

Step 3 requires information related to your Millennium instance.
  1. Enter the Data Source Name (DSN) for your production Millennium database. If you aren't sure what it is, you can check the Database dropdown of your Millennium 3 Login screen.

    You can find your Millennium Database
    name on the login page
  2. Enter the Millennium username and password. As mentioned in the Installation Requirements section, it is suggested you use a dedicated set of credentials with CSR permissions.
  3. Enter or browse to the folder from which time clock files are imported. This path does not need to include the filename / client code, it's just the root, UNC path in Millennium.

    Example: \\ServerName\ShareName\M3\Timeclock\
     
  4. Click Test Connection. If successful, proceed to the next step. If not successful, verify the information was entered correctly. If you continue to have problems, you may want to contact Millennium or SwipeClock Tech Support.

Step 4 - Configure Program Installation Path

Lastly, enter, or browse to, the folder in which you would like the interface program (M3toSwipeClockInterfaceCMD.exe) to be installed. Make note of where you install it since it will be needed in the next section. If the folder you enter does not already exist, the setup program will try to create it when you click Install.
The page should look similar to this once you are complete:

Your setup page should look similar to this after completion
Click on the Install button to copy the files to the selected folder. No registry changes will be made.

You can now proceed to the next section where you will create the scheduled tasks for the integration.

Bureau Level Setup – Creating the Scheduled Tasks

After configuring and installing the interface program, you will next need to setup command line executables in the Windows Task Scheduler. This is a one-time setup that must be completed before you can enable the integration for your clients.

Windows Task Scheduler
There will be four tasks in total that facilitate the following:
  • Updating accruals*
  • Creating and updating EE info
  • Billing**
  • Updating the Command Line Program
*This task is optional if you are not syncing accrual data between the two systems. However, if you think you will have at least one client interested in passing accrual data between the two systems, it is recommended to configure it now.

**The billing task is required in order for the integration to operate, regardless of whether you are being billed for the integration or not.

A Note About Windows Task Scheduler

Complete documentation on Windows Task Scheduler is beyond the scope of this document. For information on how to use Windows Task Scheduler, please see Microsoft's documentation for your specific version of Windows Task Scheduler.

When Creating the Tasks

For each task, it is recommended that you select "Run whether user is logged on or not" and "Run with highest privileges". Both these items are checkboxes on the General tab of each task.

Please note the following in the next series of steps:
  1. Screenshots showing examples of how each tab should look are linked in the steps. Be aware that certain items in the images will differ based on your configuration.
  2. For each task, many of the steps are similar with only minor differences in certain fields. Those differences are highlighted in yellow.

"Accruals" Task

This task can run up to every 10 minutes, although you can choose to run it less frequently if you choose.
  1. Click Create Task
  2. On the General tab, set the name to "Update Accruals" or something similar.
  3. Choose Run whether user is logged on our not.
  4. Check Run with highest privileges.
  5. Select the Triggers tab.
  6. Click New and choose a start date for the task that runs daily and recurs every day.
  7. In the Advanced Settings section, repeat the task no less than every 10 minutes.
  8. Check Stop task if it runs longer than and set it to 30 minutes.
  9. Make sure the trigger is Enabled and click OK.
  10. Select the Actions tab and set the Action to Start a Program.
  11. Browse to the Command Line program (m3toSwipeClockInterfaceCMD.exe) located in the folder you created in the Configure Program Installation Path step.
  12. Enter A in the Add Arguments field.
  13. Click OK on the Edit Action window as well as the Actions tab to complete the task.

"Create and Update Employees" Task

This task can run as often as every 30 minutes, but should be set "out of phase" with your Payentry employee sync to avoid conflicts. For example, if your Payentry sync runs every 30 minutes starting on the hour, you should set this task to run every 30 minutes 15 minutes after the hour.

This task is setup similarly to the Accruals task with any variations highlighted in yellow.
  1. Click Create Task
  2. On the General tab, set the name to "Update Employees" or something similar.
  3. Choose Run whether user is logged on our not.
  4. Check Run with highest privileges.
  5. Select the Triggers tab.
  6. Click New and choose a start date for the task that runs daily and recurs every day.
  7. In the Advanced Settings section, repeat the task no less than every 30 minutes.
  8. Check Stop task if it runs longer than and set it to 30 minutes.
  9. Make sure the trigger is Enabled and click OK.
  10. Select the Actions tab and set the Action to Start a Program.
  11. Browse to the Command Line program (m3toSwipeClockInterfaceCMD.exe) located in the folder you created in the Configure Program Installation Path step.
  12. Enter E in the Add Arguments field.
  13. Click OK on the Edit Action window as well as the Actions tab to complete the task.

"Update Billing" Task

This task is required, regardless of whether you are being billed for the integration or not. It only needs to run once a month.

This task is setup like the Accruals task, but any variations are highlighted in yellow.
  1. Click Create Task
  2. On the General tab, set the name to "Update Billing" or something similar.
  3. Choose Run whether user is logged on our not.
  4. Check Run with highest privileges.
  5. Select the Triggers tab.
  6. Click New and choose a start date for the task that runs monthly and recurs each month on the 8th day.
  7. The task does not need to be set to repeat.
  8. In the Advanced Settings, Check Stop task if it runs longer than and set it to 30 minutes.
  9. Make sure the trigger is Enabled and click OK.
  10. Select the Actions tab and set the Action to Start a Program.
  11. Browse to the Command Line program (m3toSwipeClockInterfaceCMD.exe) located in the folder you created in the Configure Program Installation Path step.
  12. Enter B in the Add Arguments field.
  13. Click OK on the Edit Action window as well as the Actions tab to complete the task.

"Update Command Line Programs" Task

This task runs nightly and is used to check for any updates to the interface program itself.
  1. Click Create Task
  2. On the General tab, set the name to "Update Command Line" or something similar.
  3. Choose Run whether user is logged on our not.
  4. Check Run with highest privileges.
  5. Select the Triggers tab.
  6. Click New and choose a start date and time for the task (usually at 2:00am) that runs daily and recurs every day.
  7. You do not need to repeat this task in the Advanced Settings section.
  8. Check Stop task if it runs longer than and set it to 30 minutes.
  9. Make sure the trigger is Enabled and click OK.
  10. Select the Actions tab and set the Action to Start a Program.
  11. Browse to the Command Line program (m3toSwipeClockInterfaceCMDUpdater.exe) located in the folder you created in the Configure Program Installation Path step.
  12. Enter nothing in the Add Arguments field.
  13. Click OK on the Edit Action window as well as the Actions tab to complete the task.

You have now completed the scheduled tasks necessary for the integration and you can proceed to setting up your client with the integration.

Configuring the Company in Millennium

With the integration software installed and the scheduled tasks configured, you can add companies to the integration. This is primarily done with the Company Notes.

Also, this integration does allow for designating the direction of the employee and accrual data sync. For example, you can choose whether TimeWorksPlus or Millennium is the system of record. In most cases, Millennium is designated as the system of record for employee data.

1 - Create the "Notes" in Millennium

In Millennium, the Company Notes are found through the click-path Company⇒ [select the company]⇒ Company Maintenance⇒ Master Company Setup⇒ Notes tab. These will be General Notes.

The General Notes in the Master Company Setup of Millennium
Create the "Site" Note
The first note will be the Site Note, which is used to match a company in TimeWorksPlus to the correct company in M3. To do this, you will need to access your Client List in SwipeClock to find the companies site code.
To add the Site Note in Millennium:
  1. Add a new note.
  2. Enter "TWP" for the Category.
  3. Enter "Site" for the Code.
  4. Check Date and Entry Date can remain blank.
  5. Enter the companies SwipeClock site code in the Description field.

The Site Note matches the company in M3 to the right company in TWP

Create the "Employee Information" Note

This note instructs Millennium that the interface will transfer data between TimeWorksPlus and M3. It also indicates the system of record:
  1. Add a new note.
  2. Enter "TWP" for the Category.
  3. Enter "EE" for the Code.
  4. Check Date and Entry Date can remain blank, however, Entry Date will be changed automatically by the interface each time employee data has successfully been transferred.
  5. The Description field is where you note the system of record, either "TWP" or "M3".

The EE note is necessary for integrating employee data

Create the "Accrual" Note

This note is only necessary if you are transferring accrual data between the two systems.

IMPORTANT: If you are syncing accruals from TimeWorksPlus to M3, make sure you have a finalized pay period in TimeWorksPlus. The system does auto finalize any pay period older than 2 prior pay periods, but it is important to check this as enabling the Accrual Note without a finalized pay period will crash the interface.
  1. Add a new note.
  2. Enter "TWP" for the Category.
  3. Enter "Accrual" for the Code.
  4. Check Date and Entry Date can remain blank, however, Entry Date will be changed automatically by the interface each time accrual data has successfully been transferred.
  5. The Description field is where you note the system of record, either "TWP" or "M3".

While optional, you can use the Accrual Note to share accrual balances between the two systems
Keep in mind that Millennium tracks accrual balances by check date while TimeWorksPlus tracks by pay period. Please see the article Syncing Accruals Between Millennium and TimeWorksPlus for more details on how the two systems need to be configured.


Create the "Billing" Note

The Billing Note can be used in conjunction with a billing product and SQL in M3 to facilitate more accurate billing. When the command line program is run, monthly employee counts are gathered and the Billing Note is updated with the number of employees for the previous month.
  1. Add a new note.
  2. Enter "TWP" for the Category.
  3. Enter "Billing" for the Code.
  4. Check Date and Entry Date can remain blank, however, Entry Date will be changed automatically by the interface each time billing data has been collected.
  5. The Description field is should be blank, but this is where the count of employees with billable activity will appear for the previous month. IMPORTANT: If you are using WorkforceHUB (formerly Workforce Management Suite), this number will not be indicative of your SwipeClock bill since that pricing plan uses a different method for calculating your bill.

The Billing Note is optional and will show the TWP activity count for the month

 

2 - Time Import Service

The "TimeImport" service in M3 needs to be configured so you can import your client's timekeeping file through Millennium.
  1. In M3, navigate to Company Maintenance ⇒ Master Company Setup ⇒ Services tab ⇒ TimeImport Service ⇒ Edit Properties

    Configuring the Time Import Service in Millennium
  2. Configure as follows (see image below):
    1. The Filename field must be set to the full path of your Timeclock folder with the Millennium company code and a CSV file extension.
    2. The description must also be set to "TimeWorksPlus Interface", exactly as it appears here with the only space between "TimeWorksPlus" and "Interface"
    3. File type should be "CSV"
    4. EE ID should be "ID"
    5. Batch will be client specific.
    6. Pay Type is "Regular"
    7. Map the columns in this manner
      1. EE ID = 1
      2. DET = 2
      3. DET Code = 3
      4. Hours = 4
      5. Rate = 99*
      6. Amount = 5
      7. The CC level selections are variable based on which fields in TimeWorksPlus are mapped to the corresponding Cost Centers. You may need view the export .CSV to confirm which data is being exported from TWP and adjust in the File Format Maintenance.
*While you can track pay rates in TimeWorksPlus, you generally don't want them to override pay rates in Millennium. That is why the pay rate is mapped to column 99.
 

Mapping the client's import configuration

3 - Configure the Groups for Employee Data Sync

A special Payroll Group in M3 is used to determine which employee data is synchronized to SwipeClock. This is necessary when M3 is the system of record for employee data and will prevent terminated employees from being sent to TimeWorksPlus on the initial sync.
  1. In M3, navigate to Company Maintenance ⇒ Company Setup ⇒ Payroll Groups tab and click the "add" button to create a new group.

    A Payroll Group is used to filter employees sent to TimeWorksPlus
       
  2. Label the group "TWP".
  3. Enter an SQL query that produces the desired set of employees to be synced with TimeWorksPlus. You could, for example, create a query that excludes salaried employees.

    In the example below, all active active employees will be sent to TimeWorksPlus.

    An example of a query that pulls all active employees into TWP

    Example: Einfo.empStatus IN (SELECT status FROM CEmpStatus WHERE co=EInfor.com AND statusType='A')
If the query is successful, the employee will be listed in the window on the right.

What's Next?

This completes most of the "company level" setup. The rest of the configuration, including the employee data mapping, is continued in the articles Using the Millennium – TimeWorksPlus Integration and Syncing Accruals Between Millennium and TimeWorksPlus.

Attachments

2_Accruals_Trigger.png 2_Accruals_Trigger.png
3_Accruals_Actions.png 3_Accruals_Actions.png
1_Accruals_General.png 1_Accruals_General.png
3_EE_Action.png 3_EE_Action.png
2_EE_Trigger_Tab.png 2_EE_Trigger_Tab.png
1_EE_General_Tab.png 1_EE_General_Tab.png
3_Billing_Action_Tab.png 3_Billing_Action_Tab.png
1_Billing_General_Tab.png 1_Billing_General_Tab.png
2_Billing_Trigger_Tab.png 2_Billing_Trigger_Tab.png
3_Update_Action.png 3_Update_Action.png
1_Update_General_Tab.png 1_Update_General_Tab.png
2_Update_Trigger_Tab.png 2_Update_Trigger_Tab.png
Millennium_TWP_Integration_Setup_and_Install.pdf Millennium_TWP_Integration_Setup_and_Install.pdf

Did you find this article helpful?