What is ITpipes Sync and ITpipes Host
ITpipes Sync
ITpipes Sync is a desktop application that is designed to schedule and automate the transfer of data
from one ITpipes project/database to another ITpipes project/database. Examples of this would
include:
- From a field data collection system (CCTV truck) to an office Master database.
- From an interim QA/QC “temp” project/database to a centralized project/database.
- From an ITpipes centralized database into an AMS.
Note: Please that to transfer information into multiple databases, for example, a single project/database syncing into more than one project/database, is currently not supported. This feature may be part of our upcoming Dashboards Module in ITpipes Web.
Set up Requirements
Note: Sync modules communicate using port 8101 TCP protocols. This port will need to be opened in
the Firewall for proper communication.
- (ITpipes Host) Server-side: Microsoft SQL Server 2012 or higher
- (ITpipes Host) Server-side: Windows Server 2012 or higher
- (ITpipes Sync) Client side: Windows 7 or higher
- ITpipes Sync requires that ITpipes Host be either installed on the same computer or if on a domain, on a centralized server.
- (ITpipes Sync) Anti-virus exception/whitelist allowing Sync to run on the Client side.
Note: For transferring into an AMS, integration to that AMS would need setup. For example, from an ITpipes centralized project/database into an AMS system such as Cityworks, Maximo, etc. Contact an ITpipes Sales Representative for current integrations. This document refers to Asset Management Systems (AMS), Centralized Maintenance Management Systems (CMMS), Work order systems (WOS), and ERP (Enterprise Resource Planning Systems). All are generically referred to as “AMS”.
Recommendations
When using multiple vehicles to sync information into a centralized location, automated scheduled syncing is the recommended best practice. Running on-demand syncs may have a server busy error if multiple users are trying to simultaneously sync. Automated scheduled sync prevents this error from occurring. ITpipes recommends that a hardline (ethernet) connection be utilized when using the Sync software. This will reduce issues with media transferring to a centralized location.
ITpipes Sync Python Scripting
How Python’s Scripts work within ITpipes Sync
ITpipes Sync can run python scripts during four stages of the sync process as shown below in the Execution Level details. This provides the possibility to add any “custom script” that has been written into this configurable tool.
Set up Requirements
Mobile System
- ITSync Client installed
- ITpipes Host service installed
- IronPython installed
Server-Side
- Script folder structure created with appropriate permissions
Folder Structure
- Create a folder in a shared directory where the python scripts will reside in.
- I.e. \\NetworkShare\ITpipesScripts
- Create the following folders in the newly created folder:
- PostJobProcessingEvents
- PostProcessingEvents
- PreJobProcessingEvents
- PreProcessingEvents
- Download or transfer the scripts and place them in the appropriate folders that were created above. Sync will automatically download the scripts and run them.
Workflow
- ITSync Client executes to upload new inspections
- CCTV Truck daily upload
- Contractor upload
- Sync downloads any new scripts from the server location
- Pre Processing Python scripts execute
- Pre Job Processing Python scripts execute
- Data transfer job process occurs including AMS integration
- Post Job Processing Python scripts execute
- Post Processing Python scripts execute
ITpipes Python Scripting Execution Level
- Preprocessing Events:
- Scripts running at this level are intended to run once per Sync process. The execution of scripts in this level occurs before any data synchronization between the databases being synchronized. At this level of script execution, database manipulation or editing is not permitted.
- PreJobprocessing Events:
- Scripts running at this level are intended to run once per project/database. The execution occurs before any data synchronization between the databases being synchronized. At this level of script execution, data manipulation or editing is permitted.
- PostJobprocessing Events:
- Scripts running at this level are intended to run once per project/database. The execution occurs after any data synchronization between the databases is synchronized. At this level of execution, data manipulation or editing is permitted.
- Postprocessing Events:
- Scripts running at this level are intended to run once per sync process. The execution occurs after any data synchronization between the databases is synchronized. At this level of script execution, database manipulation or editing is not permitted.
Examples of what can be done with ITpipes Python’s Scripts
Here are some examples of the python scripts, and the levels at which they are executed, that are currently written:
- Pre or Post-processing execution level scripts.
- Update GIS map or Inspection template on mobile units
- ITpipesSyncTemplates.py: Allows the ability to update or place the template in the template folder from the source location to the target location. For example, from a centralized office location onto a mobile unit.
- These scripts are some examples of what can be accomplished with python scripts. If there is a special
- need that is required. Contact an ITpipes Sales Representative to discuss the option for python scripts.
- Establish network connection and map network virtual drive before data transfer is attempted
- Delete video files that are older than a specified number of months or days
- ITpipesMp4CheckandDelete: Goes through the chosen path and will check to see if the mp4 is within a certain percentage of length to the WMV. The script also can delete videos that are older than a certain amount of days.
- Release mapped network drive
- Shut down the mobile unit computer
- Back up certain files or folders from the truck to the server.
- Pre or Post Job execution level scripts.
- Create new field values
- Inspection percentage
- ITpipesMLIPercentage.py: Places a percentage of the inspection length based upon the total length on a specific field.
- Length Check
- If “inspection percentage” is greater than or less than a designated value, a Y/N flag is added
- Tap Count
- Segment length update
- ITpipesSectionLengthUpdate.py: Updates the Section length of the asset with the actual inspection length.
- Incomplete report
- ITpipesNotCompletetoTextFile: Goes into the database and creates a CSV file that includes all the assets that have not been set to complete at the end of the inspection.
- ITpipesSeatacReportFix: This is a specific script for a client that copies over information from custom fields to the fields that show on the report.
ITpipes Host & ITpipes Host Manager
- ITpipes Sync relies on ITpipes Host for the credential information to the target ITpipes project database.
- ITpipes Host contains the global Sync settings and a list of valid target databases.
- ITpipes Sync will lock the ITpipes Host service when the ITpipes Sync process begins so only one ITpipes Sync may occur at the same time. If ITpipes Host is locked, ITpipes Sync will wait until the ITpipes Host unlocks before automatically starting the sync process.
- If the target location is a SQL database. The password to the database is encrypted to maintain security.
- ITpipes Host contains AMS system information necessary to perform the AMS Integration into an AMS system.
- Host Manager is the GUI (Graphical User Interface) used to set up and maintain ITpipes Host. ITpipes
- Host Manager is installed at the same time as ITpipes Host.
Workflow
- ITpipes Host is installed.
- ITpipes Host Manager is used to configure the ITpipes Host service. This includes adding database connections and AMS integrations to the list of target databases for ITpipes Sync.
- ITpipes Sync is installed and pointed to the system in which the ITpipes Host service was installed.
- ITpipes Sync is configured to pair ITpipes projects on the inspection system with their appropriate target database.
- At a scheduled time every day, or upon being manually forced, ITpipes Sync will iterate through each project defined in the settings. ITpipes Sync will verify that the data and media in the source project exist in the target project.
- If an AMS project is defined in Host Manager, ITpipes Sync or ITpipes Host, depending on which AMS system is being used, will upload new inspections to the AMS system. Sync will also download new open work orders from the AMS system, if configured to do so.
- If configured to download from the target project, ITpipes Sync will download the information from the target project to the source project.
ITpipes Host Installation and Setup
ITpipes Host Installation
Prerequisites
- ITpipes Master SQL Server database has been created.
- Required information including client-specific details that the client typically sets up and maintains. ITpipes may have a record of this information, but we are unable to track any changes or updates made to this information so we highly recommend having this available from internal sources before installation.
- SQL Server instance name
- If located on a domain. The host is recommended to be installed on a server. ITpipes Sync is to be installed on the mobile units. To install this, administrative access is required.
- Individual requirements vary by the AMS system. The requirements are defined in another document.
- SQL Server database credentials
- Database name set during ITpipes master database creation
Installation
- If a new install:
- Unzip and run the ITpipes Host installation program that was downloaded from Google Drive.
- Download the zip file containing the updated files.
- Unblock the downloaded file.
- Right-click the downloaded file.
- Select Properties.
- Select the checkmark next to unblock.
- Select Ok.
- Unzip the downloaded file
- Copy and paste the files inside the unzipped folder to the correct folder location.
- Server -> C:\Program Files (x86)\Infrastructure Technologies\ITpipes Host
- Manage -> C:\Program Files (x86)\Infrastructure Technologies\ITpipes Host Manager
- Proceed to setup.
- If updating:
- Download the zip file containing the updated files.
- Unblock the downloaded file.
- Right-click the downloaded file.
- Select Properties.
- Select the checkmark next to unblock.
- Select Ok.
- Unzip the downloaded file
- Copy and paste the files inside the unzipped folder to the correct folder location.
- Server -> C:\Program Files (x86)\Infrastructure Technologies\ITpipes Host
- Manage -> C:\Program Files (x86)\Infrastructure Technologies\ITpipes Host Manager
- Proceed to setup.
ITpipes Host Setup (ITpipes Host Manager)
- Before running ITpipes Host Manager, proper permissions will need to be set for the “C:\Program Files (x86)\Infrastructure Technologies” directory. Users will need “Modify” access for the directory for ITpipes Host Manager to function properly.
To open ITpipes Host Manager:
Note: If ITpipes Sync does not start syncing before the end time has been reached. ITpipes Sync will not start the syncing process.
- Select ITpipes Host Manager through the start menu to launch the stand-alone application.
- ITpipes Host Manager can also be started by going to “C:\Program Files (x86)\Infrastructure Technologies\Host Manager” and running the Host Manager.exe program.
- Settings (Gear Icon):
- Host Settings - Provide a computer name or IP Address to run the client. ex: localhost. This will need to be able to connect to define the rest of the settings.
- Sync Initialization Settings - Choose when ITpipes Sync is to automatically start and how often.
- Frequency - How often ITpipes Sync will automatically start.
- Time Range - When Sync will try and start the sync process. (Note: If running multiple trucks. ITpipes Host will lock while one truck is syncing. ITpipes Sync will check periodically for Host availability.
- Email Settings - enabling email alerts will provide the recipients an email of the sync log. Note: This feature requires a Username and Password.
- Outgoing Server: The SMTP Mail Server.
- Port: Port with which the SMTP server communicates, this is usually Port “21”.
- Username: Username of a login to the SMTP Server.
- Email Address: Email address of the Username
- Password: Password of the username.
- Send alerts to: This lists the recipients of the email. To send to multiple people separate the emails by a comma.
- Sync Settings -
- Sync Asset Types: Which asset types that ITpipes Sync will sync to and/or from the target database.
- Data Case Options: If the desire to have all the information coming from the source database will exist in a specific case, i.e. upper, lower, or Formal. For example, if Title is selected. “title” becomes “Title.
- Match Criteria: The fields that will be matched for sync to merge source information to target information for an inspection. All fields defined in the match criteria have to match to combine inspections onto another asset. For example, if ML_Name, US_MH, and DS_MH are selected. Sync will not merge the inspection onto the asset unless ML_Name AND US_MH AND DS_MH fields match. To switch between asset types. Select the button next to the desired asset type.
- Upload Settings - configure what will be uploaded to the target project.
- Disable: Disables the upload feature of ITpipes Sync.
- All: Uploads all inspections from the source database.
- Complete inspections: Only uploads inspections that are marked as “Complete” at the end of an inspection.
- Download Settings - configure what will be uploaded to the target project.
- Disable: Disables the download feature of ITpipes Sync.
- All: Downloads all inspections from the target database.
- Open inspections: Only downloads inspections that are marked as “Open” on the WO_Status field. This setting is mainly used for AMS integrations.
- Upload and Download Settings:
- Match Handling - How ITpipes Sync handles the assets that match assets on the target database to the source database. The options are Update changes, Discard changes, and Add a new record.
- Overwrite Media - If enabled, ITpipes Sync will replace matching media files.
- Check for the file before copying media: This setting will check to make sure the file exists before copying the media over.
- File Types - What file types that ITpipes Sync will copy over.
- Server Media Path - Location of the media path where the python scripts are located. This is for ITpipes Sync python scripting.
- Error Log - Whether the desire is to have a text file and/or the log to be recorded on the Master Database(target database).
- Adding Projects :
- Select
- Project Alias: Nickname for the project that will be displayed and used to differentiate between projects.
- SQL Server: Name of the Server.
- SQL DB: Name of the database being referenced.
- Username / Password: SQL account with database read and write permissions.
- Select “Connect”. If everything was successful, a display will pop up stating “Connection Successful.” The media path will be automatically populated.
- If a UNC path is not populated. Input the UNC path to the media location. For example \\server\folder\Media_Path\.
- Select “Add Connection” to finish adding the project to ITpipes Host.
- The correct media path needs to be mapped on all the PCs running ITpipes Sync.
- Windows authentication is not recommended. ITpipes suggests that a static user be set up to connect to the SQL database.
- This does not include the name of the database
- An IT person or Database Administrator may be required to get the information to connect to a SQL database.
- Must be able to browse to the location to apply.
- Editing Projects:
- Editing projects allows the modification to the UNC path and enables S3 upload.
- Select the project that needs to be modified.
- Select to edit the project.
- Deleting Projects:
- Deleting projects only removes the link to the project, not the project itself.
- Select the project that is needing to be deleted.
- Select to remove the project link.
ITpipes Sync Install, Setup, and Features
ITpipes Sync - Install:
Prerequisites
- Ensure Sync requirements have been met
- Proper permissions will need to be set for the “C:\Program Files (x86)\Infrastructure Technologies” directory. Users will need “Modify” access on the directory for ITpipes Sync to function properly.
- If ITpipes Host is installed on a centralized server
- Server Name
- If ITpipes Host is installed locally on the CCTV system
- Ensure local mode is checked in the Sync Client settings.
Note: If located on a domain. ITpipes Host can be installed on a centralized server. ITpipes Sync will still need to be installed on individual computers. If installing or reinstalling, try to match the ITpipes Sync version to the ITpipes Host version. Call ITpipes Tech support for assistance, if desired, in installing or reinstalling ITpipes Sync.
- If a new install:
- Unzip and run the ITpipes Sync installation program that was downloaded from Google Drive.
- Download the zip file containing the updated files.
- Unblock the downloaded file.
- Right-click the downloaded file.
- Select Properties.
- Select the checkmark next to unblock.
- Select Ok.
- Unzip the downloaded file
- Copy and paste the files inside the unzipped folder to the correct folder location.
- Client -> C:\Program Files (x86)\Infrastructure Technologies\ITSync Client
- Proceed to setup.
- If updating:
- Download the zip file containing the updated files.
- Unblock the downloaded file.
- Right click the downloaded file.
- Select Properties.
- Select the checkmark next to unblock.
- Select Ok.
- Unzip the downloaded file
- Copy and paste the files inside the unzipped folder to the correct folder location.
- Client -> C:\Program Files (x86)\Infrastructure Technologies\ITSync Client
- Proceed to setup.
Note: ITpipes Host will be necessary to run ITpipes Sync. If ITpipes Host is installed on a centralized server, ITpipes Sync can be installed by itself. If either: a domain does not exist or ITpipes Host is not installed on a server. ITpipes Host will need to be installed locally.
ITpipes Sync - Setup:
- Before running ITpipes Sync
- Ensure Sync requirements have been met
- Ensure all prerequisites have been met
- Launch ITpipes Sync from the start menu if the program is not already started. ITpipes Sync will launch and remain open in the system tray in the lower right corner by the system clock.
- If using ITpipes Mobile, SQL Server will need to be used to set up Sync.
To set up the client:
- Double click or right-click on the ITpipes icon and select “Show scheduler”.
- To start ITpipes Sync manually go to C:\Program Files (x86)\Infrastructure Technologies\ITSync for the 64-bit version of Windows.
- Select “Settings”.
- If ITpipes Host is installed on a centralized server, uncheck “Local mode” and input the name of the server where the ITpipes Host is installed.
- Refer to Client-Server Name
- Select “Add” to open the “Add Connections” Window.
- Select “Project” or “Directory”.
- Select the folder icon to the right of the path. A navigation window will pop up depending on what option is selected.
- If Access is selected
- If Project is selected:
- A file navigation window will pop up.
- Navigate to the database that needs to be synced.
- Select “Open”.
- Select “Save” to save the connection.
- If Directory is selected:
- A directory navigation window will pop up.
- Navigate to the directory of the projects folder.
- ITpipes Sync can run from one source ITpipes database to a one target ITpipes database or multiple sources ITpipes databases to one target ITpipes database.
- You May need to expand to see the icon.
- Select “Ok”.
- Select “Save” to save the connection.
- If SQL Server is selected
- Enter the SQL Server name.
- If setting up Sync for ITpipes Mobile on the CCTV system.
- Enter localhost\sqlexpress for the Server. Do not use the local computer name.
- Enter the local database project name
- The database name can be found in ITpipes Mobile.
- Enter the local SQL Server username and password
- By default the username and password are “itpipes”
- Select the target destination database in the dropdown
- Select “Save”
- If the credentials are entered incorrectly a message will pop up showing “Error connecting to SQL project. Check credentials.”
- Select “Save” in the Settings window.
Automatic Sync Settings
- The following conditions must be met for Sync to run automatically:
- ITpipes Sync must be running.
- The system running ITpipes Sync must be able to connect to ITpipes Host.
- If ITpipes Host is running on a central server, the system will need to be connected to the same network as that server.
- The system running ITpipes Sync must be unlocked.
- The previous conditions must occur during the start and stop times shown in ITpipes Host Setup.
- Automatic Sync while Locked
- A user with admin rights will allow Sync to run with the computer locked:
- Exit ITpipes Sync.
- Open a File Explorer and navigate to C:\Program Files (x86)\Infrastructure Technologies\ITSync Client
- Right-click ITSyncClient.exe and select Properties
- Select the Compatibility tab.
- Check the box to Run this program as an administrator
- Select OK.
- Open ITpipes Sync.
- Select “Sync Now” to manually start syncing your source project or projects to the target project.
- Select “Sync Partial Now” to perform a partial sync. The partial sync will only sync over snapshots and reports.
- When completed a window will pop up stating that ITpipes
- Sync has completed the syncing process.
- If Sync shows ITpipes Host: Server: localhost Locked
- Select Unlock Server at the bottom of Sync.
NOTE: This should NOT be done if an AMS integration is in place (Cityworks, Cartegraph, Lucity, etc)
ITpipes Sync Purge:
ITpipes Sync 2.0 comes with the ability to purge information and media off of the source database. Warning: The deletion from purge is a permanent action. If an asset, inspection, and/or media files are deleted through this function. There is no way to retrieve the information. The settings and some of the information that was deleted will be stored in the source database.
To enable purge, open the ITpipes Sync settings.
- Select the “Purge” tab.
- Select the checkbox next to “Enable Purge”.
- A message box will pop up letting you know that data loss may occur.
- Select “Yes” to enable the purge feature.
Purge Settings:
Note: A help text will show below the settings signifying what each function does. The client will be able to customize the deletion of information to their desire. ITpipes Sync will check to make sure that the media and inspections are in the master project before deleting anything.
- Days After Last Modification to Wait: This is the number of days ITpipes Sync waits to purge the inspections and/or media.
- Don’t Purge if Missing Videos: This is an exception that will stop purge from deleting inspections if ITpipes Sync is unable to find the video. Recommended to be enabled.
- Don’t Purge if Missing Pictures: This is an exception that will stop purge from deleting inspections if ITpipes Sync is unable to find the snapshots. Recommended to be enabled.
- Delete Video Files: This feature will delete the video files and references from the source database.
- Delete Picture Files: This feature will delete the snapshot files and references from the source database.
- Delete PDF Files: This feature will delete the PDF report files and references from the source database.
- Clean Up Empty Directories: This will go through the source project and delete the empty directories. If there is ANY file in there. The folder will not be deleted.
- Purge Asset Records with No Inspections: This will delete the asset records if there are no inspections tied to the asset.
- Purge Inspections Records: This feature will delete the inspection records that meet the criteria.
ITpipes Sync Logs
Each time that a sync process is completed with ITpipes Sync, a text log is generated that records the events of the entire process.
To view the log.
- Right-click on the “ITpipes” logo to bring up the options for ITpipes Sync.
- Select “Open Logs” and a folder will open.
- Sort by modified date to find the newest logs.
- To manually find the log files go to C:\Program Files (x86)\Infrastructure Technologies\ITSync Client\Logs. If running a 64-bit version of Windows.
- The taskbar may need to be expanded to see the ITpipes Sync icon.
- The logs will let you know what projects were synced or if there were any errors.
- If an AMS Integration is enabled, the log will also show the status regarding open and closed work orders at the very bottom of the ITpipes Sync log.
- All errors or exceptions will be located under the “Error Log” or the “Exception Log”.
Reading the Sync Log File
Sync logs are broken into 3 different areas. They are the following:
- Merge log:
- This portion of the log is informational items.
- It is possible to see: Datatype mismatch in field ML.DS_RimtoGrade. This is normal and informational only.
- There is useful information as well such as: Committing changes to record 4d9160e5-a649-4eed-a69a-85024cafe7a5 in table INSPECTION. Field Inspection_Date set to 8/28/2019 at 9:00:22 AM. This entry lets the user know that there was a modification done to a certain field. In this case, it was the Inspection_Date field.
- Error log:
- This portion is one of the two areas that are the cause of concern.
- Below are examples of errors that will show in this area:
- Disabling UNC file transfers for this session. Tried to copy the file to the UNC path more than 5 times. Windows cannot locate network share to copy the file
- This means that when the sync software was initiated. But it could not connect to the specified UNC path. Normal troubleshooting is to make sure that the computers do have access to the UNC path that is specified to be the location of the ITpipes Videos.
- Could not sync file X. Error: Cannot copy file. Ensure that the specified drive letter or UNC share location exists for path: X
- As this message explains. We would need to verify that the computer that is running sync has access to the drive letter or UNC path.
- Exception log:
- This portion is the second of the two areas that are cause for concern.
- Below is an example of an error that will show up:
- Exception encountered during sync: Execution Timeout Expired. The timeout period elapsed before completion of the operation or the server is not responding.
- This error is letting the user know that it could not connect to the target database. It attempted but timed out.