Schedule Integration
- Schedule Integration Overview
- Creating, Editing, and Deleting Schedule Integration Partners
- Schedule Integration Results
Our Schedule Integration tool allows you to send our RefNotes, Planting, and Irrigation Schedules directly into another service provider – for instance, your firm's estimating and invoicing system.
The schedule(s) will go right into your system, where the partner department can do everything from ordering parts to invoicing the client – therefore saving a great deal of time.
Schedule Integration Overview
The Schedule Integration tool is available from our General Preferences screen.
Open the Preferences screens:
F/X Admin ribbon
Preferences flyout buttons on any of the other F/X ribbons
Several toolbars (FX Admin toolbar pictured)
Any of the F/X pull-down menus
(F/X Admin, F/X Graphics, F/X Planting, F/X Irrigation, or F/X Details)
or type *FXPreferences in the Command line
Select the General tab to open the General Preferences screen.
Click Schedule Integration to open the Schedule Integration dialog box.
Creating, Editing, and Deleting Schedule Integration Partners
Each partner you create will be a separate recipient for your schedules. In this example, we'll set up the Invoicing department as the integration partner.
Click New to create a new Schedule Integration partner.
Type a name for the partner you're creating (example: Invoicing). Click OK when finished.
Add a target URL for the schedules in the URL field.
Check the box for each schedule type you want to send to this partner (RefNotes, Planting, and/or Irrigation.
Click OK when finished.
Your Integration Partner will now be available from the menu.
To edit the information attached to a partner – for example, changing the target URL or selecting which schedule types the partner will receive – select the partner from the menu and make your changes. Click OK when finished.
To delete an Integration Partner, select its entry and click Delete.
Schedule Integration Results
When you create one of the schedule types designated for the active Preference Set, that schedule will be sent to your server.
The Schedule Integration tool will then pull up a Web page showing the quantities and items of what was just exported. You can make edits as necessary.
Schedule Integration and JSON
For each partner, the selected schedule(s) will be posted as JSON, and will expect a JSON response.
JSON is an ideal format for doing this sort of application. It's essentially an Internet version of a CSV file.
The schema of those JSON objects is currently fixed as follows:
Irrigation Schedule:
project_number: The Land F/X Project Number
project_name: The Land F/X Project Name
area: Name of Work Area selected, or empty string for entire drawing
user: Windows username
computer: Windows machine name
context: IRRIGATION
data: array of schedule line items:
model: Model number of item
nozzle: Nozzle or size of item, or empty string if not applicable or chosen
manufacturer: Manufacturer
description: Description of item
quantity: Quantity
units: Each, ft, sq ft, m, sq m
The return JSON expected should match this schema:
status - 200 if successful, or any custom error status as desired (such as 403, 404, 500, etc)
data - if status is 200, with key URL of follow-up URL to display in default web browser
error - if status is other than 200, with key of “message”
Example JSON is as follows:
{ "project_number":"1101-B", "project_name":"Sample Project", "area":"", "user":"bwiley", "computer":"DELLPREC303", "context":"IRRIGATION", "data":[ { "model":"TLCV-06-12", "nozzle":"", "manufacturer":"Netafim", "description":"", "quantity":705.9, "units":"sq ft" }, { "model":"1812-SAM-PRS", "nozzle":"15EST", "manufacturer":"Rain Bird", "description":"", "quantity":2, "units":"each" }, { "model":"Irrigation Lateral Line: PVC Schedule 40", "nozzle":"1\"", "manufacturer":"", "description":"", "quantity":79.06, "units":"ft" } ] }
Successful return JSON example:
{ "status":200, "data":{ "URL":"https://companyservices.company.com/XXXXXX" } }
Error JSON return example:
{ "status":503, "error":{ "code":100, "message":"Part number not found at item #3" } }