Import/Export Mapping Overview
Aimsio | Eclipse | Status | |
|---|---|---|---|
Job Order | ← | Projects → Job Master | ACTIVE |
Job Order → WBS Schedule | ← | Projects → Cost Codes | ACTIVE |
Job Order → Non-Recurring Billables (NRBs) | ← | Purchases → Vendor Invoices PDF Attachments are combined (if multiple) and imported. | ACTIVE |
Employee | ← | Payroll → Employee Master Purchases → HiredTruck → Operators | ACTIVE |
Equipment | ← | Assets → Equipment Purchases → HiredTruck → Units | ACTIVE |
Company → Customer | ← | Sales → Customers | ACTIVE |
Company → Vendor | ← | Purchases → Vendors | ACTIVE |
Company → Sub-Contractors | ← | Purchases → SubContractors | ACTIVE |
Payroll Master Data | ← | Pay Types, Union, Pay Code, Work Classifications You can import this through CSV, as this data rarely changes after the initial setup. | CSV |
Employee / Contractor daily hours, subsistence, etc. | → | Payroll → Web Time Entry Including Stat Pays Hired Truck → Hired Truck Ticket Register* *Intercompany in this screen is not currently supported by Eclipse and the user has to manually set it before posting rental tickets. | ACTIVE |
Invoice | → | Sales → AR Invoice Register* *Invoice PDF is sent but it shows up (DocFlo/DocPro) after the invoice is posted and not in the register screen | ACTIVE |
Purchase Orders | → | Purchases → Purchase Orders | NOT SUPPORTED |
Import Mapping
Jobs
Eclipse | Aimsio | Notes |
|---|---|---|
Job | Job Number | |
Customer | Client | |
Division | Area | Need to manually add all Divisions as Locations in Aimsio with the same code We can also adda a Division lookup field in Aimsio to have it show up on the tickets |
Description | Description | |
Start/End Dates | Start/End Dates | |
Is Complete? | Status (Active or Finished) | We can ignore all previously complete jobs or jobs with end date less than NOW() to avoid importing historical data |
Company | Eclipse Company Text Field | |
Revenue Account | GL Account Text Field | Needed when sending the invoices back |
Contract | Contract Text Field | Nice to have, it is an optional field if you want to show on the ticket |
PO Number UDF | Purchase Order Number | |
Price Book Name UDF | Price Book | A mandatory field in Aimsio |
Work Type UDF Or Job Basis | Work Type | Lump Sum or T&M |
Job Type | Service Line | |
Project Manager | Project Manager | Nice to have |
Assignee Code UDF |
| A mandatory field in Aimsio |
Client Rep UDF Sometimes Client | Client Rep | |
Default Markup UDF | Default Third-Party Markup (%) | Useful if the default markup changes from job to job, if not we can hard-code it. |
Province | Province/State | |
Contact/Telephone | Client Rep Name/Email/ Phone | |
Any field under billing rules | Useful if these values change from job to job, if not we can hard-code it. |
Employee
Payroll → Employee
Eclipse | Aimsio | Notes |
|---|---|---|
Employee | Employee Number | |
First Name | First Name | |
Last Name | Last Name | |
Phone | Phone | |
Address | Address | |
Base Class | Billable Item (Trade) | |
Division | Area | |
Company | Eclipse Company | |
Union | Union | |
Hourly Rate UDF | Hourly Rate | This is a burdened rate for all employees (salary/hourly) that is used in Aimsio to calculate job costing |
Hired Truck → Operator
Eclipse | Aimsio | Notes |
|---|---|---|
Operator | Employee Number | |
Name | First Name | In Eclipse, there is no First Name/Last Name for Operators. There is only Name. We detect the first SPACE and put everything before it as First name and everything after it as Last Name. |
Name | Last Name | |
Eclipse v13: Trade Code UDF | Trade | Trade can be brought it as UDF or hard-coded. |
Company | Eclipse Company | |
Owner Operator | Eclipse Owner Operator | |
- | These fields are hard-coded
|
Work Class → Payroll Work Class
We currently import Eclipse Work Classes into Aimsio Payroll Work Class through CSV. Depending on your Eclipse setup if a person needs to be paid differently based on his role (e.g. a if Jon Foreman needs to be paid differently if one day he works as Operator), we recommend the following mapping to fit in the 9-character limit for Work Class:
-
a 3-character trade code, e.g. FOR for Foreman or OPE for Operator
-
a 6-character employee code, e.g. JONSMT for Jon Smith
Then if you have a foreman working as operator, you would have a work class like this: OPEJONSMT.
When sending back time cards, we can detect if a person has a different work class than his default and either send FOR or OPEJONSMT, depending on the data in Aimsio.
Work Class and Equipment Category → Billable Items
Eclipse does not have the concept of Billable Items. However, Employee Work Class and Equipment Category are a super set of Aimsio Billable Item (Labour/Equipment). Therefore, we need a CSV export of Employee Work Class and Equipment Category that is filtered by the end-user to give us our Billable Items. To illustrate in the context of the example above, we only need FOR and OPE and not OPEJONSMT as Billable Item in Aimsio.
Payroll Imports
All the items under the Payroll tab in Aimsio have to be imported manually or through CSV. These are items that rarely change, e.g. Pay Types or not as frequent, e.g. Work Class/Pay Codes. There is a plan in the future to pull Work Class and Pay Codes from Eclipse.
AP Invoices → Non-Recurring Billable Items
When getting vendors invoices, we have to set a parameter called max aging that indicates how far we should go back in fetching these invoices (default value: 10 days). We can also add other filters to only fetch data of a certain Eclipse COMPANY. All the AP Invoices are imported with the same NRB Type (e.g. Material or Third Party). Please note that AP Invoice in Eclipse does not support UDFs so we have very limited options for configurations/mapping here.
Eclipse | Aimsio | Notes |
|---|---|---|
Job | ||
Vendor | ||
PO Number | Free text to set the PO number. does not automatically connect it to Aimsio PO. | |
Invoice | Invoice Number | |
Invoice Date | Invoice Date | |
AIR Memo | ||
Vendor | ||
Memo1 | Both NRB Name and Notes | |
Memo2 | Aimsio PO Number | Need Eclipse’s support (usually Patrizio) to enable |
Memo3 | Billing WBS | same as above |
Amount | Quantity = 1, Rate = Amount | Eclipse does not have Quantity therefore Aimsio Quantity is set to 1 |
GST and QST | Tax | |
Account Type (Billable vs Non-Billable) | Need to set a rule, e.g. all lump sum jobs are going to be Non-Billable | |
Internal? | Need to set a rule, e.g. all | |
External Id | External Id will be the combination of Vendor:Invoice to make a unique AP Invoice |
Export Mapping
Invoices
Header Fields
Eclipse | Aimsio | Notes |
|---|---|---|
Company | Invoice > Job > Eclipse Company | |
Customer | Invoice > Client | |
Invoice | Invoice Number | |
Date | Date | |
Amount | Sub-Total | |
Tax Values (GST, PST, QST) | Sales Tax | Need to have the same corresponding names |
Holdback Amount | Retainage Amount | Usually set to 0 and use Retainage % instead |
Holdback Percentage | Retainage Percentage |
Line Items
Line items in Aimsio are grouped by the Cost Code (WBS) and then sent to Eclipse with the following mapping:
Eclipse | Aimsio | Notes |
|---|---|---|
GL Account | Invoice > Job > GL Account | |
Amount | Line Item Sub-total | |
Job | Invoice > Job | |
Cost Code | Invoice Line Item Cost Code | WBS Code in Aimsio = Cost Code in Eclipse |
Division | Invoice > Job > Division (Area) | |
Job Quantity | Usually hard-coded to | |
Memo | Notes | There is a MAXIMUM limit of 256 characters. |
Job Class | Usually hard-coded to a given class | Need to know the value |
Important Details
-
Holdback calculations in presense of GST and PST seem to be off when it hits the Eclipse side. Imagine an invoice for $1,000 and 10% holdback with GST of 5% and PST of 7%. In Aimsio, the holdback (retainage) value is deducted first (i.e. 1,000 - 10% = $900), then GST and PST are applied on the $900, resulting in $45 GST and $63 PST. However, when this invoice is sent back to Eclipse, the GST and PST amounts are not shown with the same value of Aimsio.
-
If you have this situation, please first test the above example and reach out to Eclipse support for further configuration.
-
There is already a support ticket for this issue with Eclipse (1092457). There is apparently a setting called “AR_ALTMETHOD setup in GST so this should be taking the Holdback before tax is calculating.”
-
If holdback amounts do not even show up in Eclipse, contact Eclipse Support. They have a way of making it work.
-
-
Discount amount is no longer supported in Eclipse, as AR Invoice Register does not have a field for it. As per Eclipse’s support on October 2024, there is no roadmap to add it.
How to Add UDFs?
In Eclipse, go to Utilities → Setup → Configuration → Create | Modify UDFs. If you have admin permissions, you will be able to add UDF to almost any Table in Eclipse.
Common tables for adding UDFs are:
-
PM_EMPMASTERfor Employee Direct Hires -
HT_OPERATORMASTfor Employee Subcontractor (Hired Truck Operators in Eclipse) -
EQ_EQUIPMASTERfor Equipment (Owned) -
HT_UNITMASTERfor Equipment (from Hired Truck Units) -
JC_HEADERMASTERfor Job Order -
AR_CUSTOMERMASTfor Company → Customers -
AP_VENDORMASTERfor Company → Vendors
Timecards
You can both send own Employee/Equipment hours back to Eclipse via the Payroll Module (Web Time Entry) and send subcontractor personnel/equipment to Eclipse via the Hired Truck Module. While in Aimsio there is a flag in an employee/equipment to indicate whether it is your own/subcontractor’s, in Eclipse the data goes to two completely different modules and therefore, each one has to be configured separately.
In summary, Payroll employee timecards (whether RT/OT/DT/TT or Pay items like Subsistence) can be sent to Eclipse without any issue. You can also send Aimsio Subcontractor Timecards as HiredTruck Rental Tickets with a lot of considerations and mapping requirements.
The Web Time Entry queue can be hard-coded during configuration. In addition, if you set the short code for the user to be their username in Eclipse, the exported records will be routed to that user’s queue in Eclipse.
Importing Data from Eclipse
From Eclipse (Payroll or Hired Truck) To Aimsio
Payroll > Employee Master
Each Employee in Eclipse is mapped to an Employee in Aimsio.
Eclipse | Aimsio Field | Notes |
|---|---|---|
- | Employment Type = Direct Hire | |
Employee First Name Last Name … | Employee Number Same field in Aimsio Same field in Aimsio … | |
Company | Eclipse Company (Additional Info) | |
Work Classification | Employee > Trade (Billable Item) |
Hired Truck > Operator
Each Operator is imported as a Subcontractor Employee. Therefore, if there are N persons working for the same subcontractor, there should be 1 owner operator and N operators. Aimsio will import N operators as employees, and will keep their owner operator link to use when sending rental tickets back.
In addition, while there is no work class for Operators in Eclipse, Aimsio needs to still link a given operator to a trade so that the right rate can be applied in the field tickets. There are a couple of ways to accomplish this:
-
Hard-code the work class: this works well if there aren’t a lot of operators and more importantly, if most of them are a certain trade, e.g. Foreman. In this case, we can default every operator to be a foreman and hard-code a mapping of exceptions on the Aimsio side. For example, operator code
JAYSILis a project manager but everybody else is Foreman. The downside to this approach is every time you need a change, Aimsio needs to be contacted to change the mapping. -
Eclipse 11: re-use the SIN field, as long as the trade code are numerics and can fit in the SIN field.
-
Eclipse 13: Add a UDF to Operator to account for Work Class (Trade codes) in Aimsio.
Eclipse | Aimsio Field | Notes |
|---|---|---|
- | Employment Type = Subcontractor | |
Operator | Employee Number | |
Operator Name | Split by SPACE > First Name Last Name | |
Company | Eclipse Company (Additional Info) | |
Owner Operator | Subcontractor Company | |
UDF: Work Classification | Employee > Trade (Billable Item) |
From Eclipse (Asset or Hired Truck Unit) To Aimsio
Assets > Equipment Master
Each Asset in Eclipse is mapped to Equipment in Aimsio.
Eclipse | Aimsio Field | Notes |
|---|---|---|
- | Subcontractor Company = Blank | This means it is an owned equipment |
Equipment | Unit Code | |
Company | Eclipse Company (Additional Info) | |
Category | Equipment Class (Billable Item) |
Hired Truck > Unit Master
This is the most confusing of all types in Eclipse, since it holds the data for 1) operator’s assets (e.g. Trucks, etc.), and operator work classes (e.g. Foreman, Labourer, etc.). While we only import the first part in Aimsio as Equipment, the other part must still exist in Eclipse for the correct rates to be applied when sending data back to Hired Truck > Rental Tickets.
To import the Operator’s assets, we need to know where to find the Billable Item code (or as Eclipse calls it Category in Assets). This can be done in two ways:
-
Use Unit Type to indicate whether the record is Operator’s assets, Operator’s pay item, or Operator’s work class. E.g. use HR to indicate a work class, SUB to indicate subsistence, and everything else is an asset. Then, have the Unit Code contain both the Billable Item code, as well as the Operator name, e.g.
0074GARYATmeans0074 - Service Truckowned by Gary Yatkowski. -
Use Unit Type the same way as above with the only difference being all the Equipment Classes (Billable Items) should also be a Unit Type. In this case, a Unit can be called
GARYATwith the Unit Type0074to indicate this is a truck to be charged based on the0074 - Service Truckrate.
Eclipse | Aimsio Field | Notes |
|---|---|---|
Unit Type = X | Only import certain unit type(s) as Equipment in Aimsio | |
Unit Number | Unit Code | |
Owner Operator | Subcontractor Company | |
Company | Eclipse Company (Additional Info) |
To illustrate this, let’s look at the example below. C00004 is an owner-operator company with two operators working under it: Kent Armstrong and Nicole Armstrong.
Based on the screenshot below, we will import only three records as Equipment in Aimsio: C00445, C00810, and C15045, since their Unit Type is not HR. The other records are all HR records and they exist because these two people are going to be paid based on what trade they had in a time sheet as well as their subsistence. This is explained in the next section.
Pushing Data back to Eclipse
Payroll Module
Labour and Equipment line items in Aimsio (usually in time sheets, sometimes in Work Order or Field Tickets) can be sent back as Timecards to Eclipse using the default time card mapping. We can send RT/OT/DT/TT breakdown or send the first three as RT and let eclipse break it down to its proper RT/OT/DT. For employee timecards, if in Eclipse the RT/OT rules are at the Union level and not the employee level, it is recommended that Aimsio breaks it down as well if you intend to use Aimsio Job Costing. If not, rely on Eclipse to break it down.
Also, if there are multiple companies in Eclipse, cross-job costing in Eclipse will be done by sending the employee belonging to company A with hours under a job that belongs to company B. With this data coming out of Aimsio, Eclipse will properly handle the proper job costing on its side.
Hired Truck
In Eclipse the combination of 4 variables to determine a rate:
-
Rate Table: it is recommended to have only one such table, e.g.
STANDARD -
Pay Code
-
Unit Number, which includes a link to
-
Owner Operator
-
Unit Type
-
-
Operator
Pay Differently Based on Pseudo Work Class (Trade in Aimsio)
In Eclipse there is no RT/OT or Work Class for hired trucks. We rely on the data in the Unit Master to have different records for a person with different trades. For example in the screenshot above, 901, 902, etc. are trade codes while C000004 is the owner operator company the Operator Kent Armstrong is working for. We have multiple records for him since his pay is different when he is a Supervisor vs Foreman vs Labourer, etc. There is also a second person (Nicole Armstrong) working for the same owner operator company C000004. If we were to send 8 hours for Nicole Armstrong as a Labour (code 905), the data will look like below. Please note that Pay Code 01 indicates Hourly pay.
RATE TABLE | OWNER OPERATOR | UNIT | OPERATOR | PAY CODE | QTY_AMOUNT | JOB | COST CODE |
|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
Pay Differently Based on a Pay Code
In addition, if an Operator needs to be paid for a pay item (e.g. Subsistence), this can be done by adding proper Pay Codes and we can use those pay codes when sending the data back. For example, if 40 - Regular Sub, 41 - Executive Sub are two different pay codes for different types of subsistence pays, we can send a record like this back to Eclipse:
RATE TABLE | OWNER OPERATOR | UNIT | OPERATOR | PAY CODE | QTY_AMOUNT | JOB | COST CODE |
|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
Please note that we are not sending any rate. The rates are supposed to be defined in the Rate Table in Eclipse. All Aimsio is doing is to pass enough information for Eclipse to triangulate the right rate in the Rate table. Nonetheless, all these mappings need to be checked with the Eclipse team as well if they don’t work out of the box.
UPDATE: There is a hack that partly works to override the default hired truck rates in Eclipse. Imagine the default rate in Eclipse is $100 but you need to send $150. Instead of sending qty = 1, we can send qty = 1.5 so once it arrives in Eclipse, the line item amount will be calculated as $150. This is a hack because 1) it works on round numbers and 2) we are using quantity where in fact we should have been using rate so keep that in mind specially if you have reports on the quantities. To illustrate the shortcoming of this hack, imagine the reverse scenario, where the rate is $150 in Eclipse but you need to send $100. Eclipse only accept 2 digits of precision so the adjusted quantity will be 100/150 or 0.67 after rounding. When Eclipse receives it, the amount will be $100.5 and it needs to be adjusted manually.
Putting it all together: what needs to go to Operator and Unit Tables.
Here’s our recommended approach to organize the records in the Unit Master table:
-
Every subcontractor name that needs to show up as a Subcontractor Employee on the Aimsio side needs to have its own record in the Operator table (e.g. Nicole vs Kent Armstrong in the example above).
-
For every operator, have a record with the same Unit Number as the Operator Code, e.g.
GARYATorC75146.- This way, we can map all the pay items to the same unit/operator using different pay codes.
-
If an operator needs to be paid differently based on their trade (e.g. Foreman vs Labour), have one record for each combination. Use the first N characters of Unit Number to indicate the trade code, e.g.
FORGARYATandLABGARYATor901C00004and903C00004. -
Have a record in Unit Master for every piece of equipment that needs to be imported per Operator. The Unit Number can be the equipment code as long as the Unit Type has all the Equipment Categories (or Equipment Classes in Aimsio). If you opt for simpler Unit Types, then the Unit Number must have Equipment Category, followed by Equipment Code.
-
Finally, define the actual rates in a single Rate Table in Eclipse.
-
Good Luck! You need it! The Hired Truck module in Eclipse is not the easiest thing to set up for. There are a lot of variables and when setting it up, most of the times we need Eclipse support to look into it and tell us why certain data did not show up. It does eventually work out, but it takes a lot of back and forth and patience.
Known Issues
-
Intercompany is not currently supported in Hired Truck Register screen. It has to be adjusted after posting the transaction in the Hired Truck screen, as per the email below from Eclipse on October 2024:
- In the meantime, you will need to continue manually entering intercompany transactions using the Enter Tickets function in Hired Truck. Although this is not ideal, it remains the best temporary solution available.