Home      Ask a Question      My Stuff      Help   
  
TimeWorksPlus/TimeWorks: PayEntry Integration Scripting
>>Setting up PayEntry<<

The setup can easily be done by doing the below steps:

1. Login into SwipeClock at the below link:

https://www.payrollservers.us/pg

+++PLEASE NOTE THIS WILL LOG YOU INTO TIMEWORKS PLUS AS CONFIGURATION IS REQUIRED TO BE DONE IN TimeWorks Plus. THIS DOES NOT MEAN YOUR CLIENT NEEDS TO BE MIGRATED TO TimeWorks Plus JUST THAT THE INTEGRATION NEEDS TO BE CONFIGURED THERE. THE INTEGRATION WILL WORK PERFECTLY FINE IN TTimeWorks.+++

2. Once there use the "Client List" link to select your client.

3. Next go to Accountant Menu > Client Configuration > Misc Settings (tab)

4. Then go to "Payroll Software" in the drop down select "PayEntry" then use the "Save Misc settings"

5. Next select the "Settings Menu" in the side bar and select the "Service Bureau Employee Import Utility"

6. Then enter in the "Application ID" (usually a 3 digit code) and Client Code given to you by PayEntry in the fields provided.

7. You will also want to set the "Active Status" to "Inactive" then press "Save" initially before you are ready to start syncing Data.

8. Next use the "Test" button to ensure you entered in the correct information. Note this can take a few seconds to come back with a response so please ensure after clicking "Test" you at least wait 30 minutes to receive a response.

If you get any messages besides the below you need to verify the information you were provided with PayEntry:

Status: Success
Test connection complete.

>>EmployeeScript<<

By default the integration pulls in:

1. The Employee (first, middle and last) Name
2. The employee code

Using the Processing Rule "EmployeeScript" though is also needed as it pulls other information that is needed by SwipeClock from PayEntry.

To enable this:

1. Go to "Processing Rules" in the side bar under "Settings Menu" and click the "Search" button.

2. In the list that comes up select "EmployeeScript".

Here you will enter in the default scripts in the first row ("Script for Importing Undated Information"):


RehireDate = getpath("./EmployeeStatusInformation/RehireDate");
TermDate = getpath("./EmployeeStatusInformation/TermDate");
NullDate = "1899-12-30T00:00:00";

employee.startdate = getpath("./EmployeeStatusInformation/HireDate");

if(TermDate != NullDate) { if ((RehireDate != NullDate) AND (RehireDate >= TermDate)) {employee.enddate = "";} else {employee.enddate = TermDate;}} else {employee.enddate = "";}

The above pulls in the Hire Date, AND Termination Date for all employees you have set in PayEntry.

It also includes logic that if the employee has a Rehire date that is greater than the Termination date to remove the Termination date (in SwipeClock ONLY) and change the initial Hire date to the Rehire date. This needs to be done as SwipeClock does not include options natively for handling Rehires.


>>Optional EmployeeScript Scripts<<

Below are the most common optional scripts broken down by the different text boxes found under this processing rule ("Script for Importing Undated Information" AND "Script for Importing Dated Information"):


>>Scripts for Importing Undated Information (getpath):


DO NOT IMPORT Employees with No PayRates Salary (ONLY WORKS WITH INITIAL IMPORT OF AN EMPLOYEE. IT CANNOT REMOVE EMPLOYEES ALREADY IN THE SYSTEM):

if (getpath("./EmployeeRateInformation/EmployeeRate[1]/Salary") > 0) {Discard();}

$Salary = getpath("./EmployeeAutoPayInformation/BaseAutoPay/SalaryPerPayPeriod");

$Salary2 = getpath("./EmployeeAutoPayInformation/BaseAutoPay/AutoPay");

if ($Salary != "0" OR $Salary2 = "Salary") {discard ();}


The below does import "Salary" employees But flags them by entering in an "S" in Home 1 of Employee Setup


if (getpath("./EmployeeRateInformation/EmployeeRate[1]/Salary") > 0) {state.home1 = "S";} else {state.home1 = "";}


DO NOT IMPORT Terminated Employees (ONLY WORKS WITH INITIAL IMPORT OF AN EMPLOYEE. IT CANNOT REMOVE EMPLOYEES ALREADY IN THE SYSTEM):

Only imports terminated employee as of 1/1/2017. The date can be adjusted though:

if(TermDate > NullDate and RehireDate < TermDate and TermDate < "2019-12-31") {discard();}

Does not import information for terminated employees as stated in PayEntry:

$status = getpath ("./EmployeeStatusInformation/Status"); if ($status = "Terminated") {discard ();}


Add Card Number using employees first initial of their first name plus the employees full last name:

addcardnumber (left(employee.firstname,1) + (employee.lastname));


Add Web Password using the employees first initial of their first name plus the employees first initial of their last name plus the last six of the employee SSN:

$SSN = getpath("./EmployeeBasicInformation/SSN"); if($SSN contains "-"){$SSN = left($SSN,3) + mid($SSN,5,2) + right($SSN,4);}

employee.webpassword = (left(employee.firstname,1)) + (left(employee.lastname,1))+ right($SSN,6);


This will allow Export Block to be enabled/disabled:

Enabled:

employee.exportblock = 0;

Disabled:

employee.exportblock = 1;


Employees Type:

state.employeetype = getpath("./EmployeeStatusInformation/Type");

There could be more but the above script will typically import either "RegularFullTime", "RegularPartTime" and sometimes "Unknown".
To avoid the "Unknown" scenario, you can instead pull the RawEmploymentType instead of just the predefined Type. This allows for pulling custom employee types that are defined in PayEntry.

Employees Title:

state.title = getpath("./EmployeePositionInformation/Title");


Employee SSN:

employee.ssn = getpath("./EmployeeBasicInformation/SSN");


Employee Emails:

employee.email = getpath("./EmployeeBasicInformation/EmailAddress");


Employee Phone Numbers:

Work Phone:

employee.phone = getpath("./EmployeeBasicInformation/WorkPhone");

Home Phone:

employee.phone = getpath("./EmployeeBasicInformation/HomePhone");


>>The below allows you to access the date in PayEntry BUT you will still need to designate what field to enter the data:

Birthday (This field will need to be enables using the "Birthday" Processing Rule:

$birth = getpath("./EmployeeBasicInformation/BirthDate");

employee.birthday = (((mid ($birth,6,2) + "-") + mid ($birth,9,2)) + "-") + left ($birth,4);

Clock Number:

Getpath("./EmployeeBasicInformation/Clock");


Street Address:

GetPath("EmployeeBasicInformation/Address/Address1");


City:

GetPath("./EmployeeBasicInformation/Address/City")


State:

GetPath("./EmployeeBasicInformation/Address/State")


Zip Code:

GetPath("./EmployeeBasicInformation/Address/Zip")


>>Script for Importing Dated Information (getstatepath):


Department:

state.department = getstatepath("./Variables/Item[@name='Department']");

Department Levels found under "EmployeeRate" in the XML:

state.department1 = getpath("./EmployeeRateInformation/EmployeeRate[1]/EmployeeDepartmentInformation/DepartmentLevel1");
state.department2 = getpath("./EmployeeRateInformation/EmployeeRate[1]/EmployeeDepartmentInformation/DepartmentLevel2");
state.department3 = getpath("./EmployeeRateInformation/EmployeeRate[1]/EmployeeDepartmentInformation/DepartmentLevel3");
state.department4 = getpath("./EmployeeRateInformation/EmployeeRate[1]/EmployeeDepartmentInformation/DepartmentLevel4");


Location:

state.location = getstatepath("./Variables/Item[@name='Location']");


Supervisor:

state.supervisor = getstatepath("./Variables/Item[@name='Supervisor']");

Another location for this could be:

state.supervisor = getpath("./EmployeePositionInformation/CompanySupervisor/Supervisor");


Employees PayRate:

state.payrate0 = getstatepath("./Variables/Item[@name='PayRate0']");


Another option would be to pull the rate from EmployeeRateInformation:

a. Hourly Employees:

state.payrate0 = getpath("./EmployeeRateInformation/EmployeeRate[1]/Rate");

b. Salaried Employees:

state.payrate0 = getpath("./EmployeeRateInformation/EmployeeRate[1]/Salary")


>>Activation of the Integration<<


Once everything is in place go back to Settings > Service Bureau Employee Import Utility > Active Status to "Active" and press the "Save" button.


>>SwipeClock Setup<<


Initially the integration was setup by SwipeClock free of charge. But as the process has gotten easier we are allowing Accountants to do these set ups themselves using this article.

Effective 8/22/2013 we can also set these up upon request but there will now be a fee for Support to do these. The initial fee would be $35 for a basic setup but this amount could increase depending on the complexity that is required.

If all you require is a script for this, the normal $5 a line for scripting would apply.

If you require Support to do the integration please put in a support ticket including the attached form filled out with your requirements for the PayEntry integration.

If you have any further questions on PayEntry Integration Please feel free to contact Support.
ID
975
Category
<Unassigned>
Date Created
8/21/2013 9:17:45 AM
Date Updated
10/7/2021 2:12:04 PM
Back to Search Results