4.12 4.12
AGREEMENTS\General Code—Comiect EnerGov to Laserliche—2-8-16
RESOLUTION AUTHORIZING STATEMENT OF WORK/AGREEMENT
WITH GENERAL CODE TO CONNECT ENERGOV SYSTEM AND
LASERFICHE CONTENT MANAGEMENT SYSTEM
RESOLUTION NO.: , 2016
INTRODUCED BY:
WHO MOVED ITS ADOPTION
SECONDED BY:
WHEREAS, by Resolution No.: 263,2014, the Queensbury Town Board established the
Incode/Energov Computer Software Capital Project Fund #204 and authorized the purchase of
the Incode and Energov software and provision of Project Implementation services by Tyler
Technologies, Inc., and
WHEREAS, due to certain changes in the Energov software capabilities and in order for
the Town's Community Development Department to use the new system to the fullest extent, a
change to the Project was necessary, and so by Resolution No.: 392,2015, the Town Board
authorized an Amendment to Tyler Technologies, Inc.'s original August 8, 2014 proposal to
provide for such changes, and
WHEREAS, the Town wishes to now engage the services of General Code to develop and
implement an integration to connect the EnerGov system with the Town's selected content
management system, its Laserfiche Content Management System, as set forth in General Code's
Statement of Work/Agreement dated 11/2/2015 and presented at this meeting, for an amount not
to exceed $23,530,
NOW, THEREFORE, BE IT
RESOLVED, that the Queensbury Town Board hereby authorizes General Code to
develop and implement an integration to connect the EnerGov system with the Town's selected
content management system, its Laserfiche Content Management System, as set forth in General
Code's Statement of Work/Agreement dated 11/2/2015 and presented at this meeting, for an
amount not to exceed $23,530, and
BE IT FURTHER,
RESOLVED, that payment for such services shall be from Computer Software Account
No.: 204-1680-2032, and
BE IT FURTHER,
RESOLVED, that the Town Board further authorizes and directs the Town Budget
Officer to amend the Town Budget, make any adjustments, budget amendments, transfers or
prepare any documentation necessary to provide for such payment, and
BE IT FURTHER,
RESOLVED, that the Town Board further authorizes and directs the Town Supervisor to sign
the Statement of Work/Agreement substantially in the form presented at this meeting and any other
necessary Agreements or documentation and the Town Supervisor and/or Town Budget Officer take
any and all action necessary to effectuate all terms of this Resolution.
Duly adopted this 8th day of February, 2016, by the following vote:
AYES
NOE S
AB SENT :
GENERAL
CODE
General Code
Statement of Work
Version 1.0
11/2/2015
Presented by:
General Code
GENERAL
CODE
Project Information
Client name Town of Queensbury,NY
Project name
EnerGov\Laserfiche Integration
Statement Of Work/Project Overview
Introduction:
The Town of Queensbury is installing the EnerGov solution by Tyler Technologies,Inc.to support their Building and
Planning Department. EnerGov is a web-based software system supporting land use planning and project review,
regulatory management,inspections,code enforcement,citizen requests,asset management,work order
management and more.
EnerGov has established an API to enable it to integrate with external content management systems. To-date
Tyler Technologies,Inc.has built integration functions to connect EnerGov with the Tyler Content Management
system,but not with Laserfiche,the selected content management system for the Town of Queensbury.
The Town of Queensbury would like General Code to develop and implement an integration to connect the
EnerGov system and Laserfiche Content Management system. The basic functionality would leverage the API
developed by EnerGov,but also include basic document routing,organization and indexing within the Laserfiche
system.
Basic Laserfiche Functionality to be developed:
• Interface to interpret EnerGov API calls for insertion,deletion,and updating documents within
Laserfiche.
• Interface to return designated information (ex. Document ID,URL or other)to EnerGov API
interface.
• Laserfiche Workflows to apply templates and update template information on documents
based on UpdateMeta data information
• Laserfiche Workflows to route documents to appropriate Parcel and Document type Subfolder,
or Document Type subfolder if not a Parcel-related document.
• Laserfiche Workflows to route Permit Renewals to related Permit document folders
• Laserfiche Workflow to route Exam Sitting documents to related Exam Request document
folders.
• Laserfiche Workflows to Delete documents based on Document ID passed from EnerGov.
11/2/2015 Statement of Work Page 2
GENERAL
CODE
Functionality—EnerGov to Laserfiche
The EnerGov API supports basic document functionality from within the EnerGov interface:
• Creation of instance between EnerGov and Laserfiche-(Initialize Service))
• Deletion of Documents—(DeleteDocument(DocID))
• Retrieval of Documents—(GetDocument(DocID))
• Retrieval of Document URLs—(GetDocumentURL(DocID))
• Addition of New Documents—(PutDocument(tempdocument))
• Updating/Change of Metadata—(UpdateMetadata(DocID, Metadata to update))
From within EnerGov
• EnerGov API functional is documented in the EnerGov Document Management API document
(Included at end of this document)
• Documents held within the Laserfiche Content management system will be available through
links within EnerGov,filtered by Parcel ID and Document type. (see screen shot below).
h.,anage retina Br1e 15:,;b'b
AINOve,law
ra.Mono c sa y
as. o. u...»... Q w.e..
Wades,....,, Y woar....c...r
Ig
I.�;}a,"efte'"r!or a:ruux (fg Aa+twwa .;
• All metadata for documents within EnerGov will be replicated within Laserfiche,though EnerGov
will remain the system of record. This duplication of storage will support searching and sorting
of data within Laserfiche.
EnerGov Scanning to a Parcel
1. EnerGov will use its standard scanning interface to bring hardcopy documents into EnerGov
and then push the documents as a binary files to Laserfiche with the PutDocument API.
Electronic Documents uploaded to EnerGov
2. EnerGov will use its standard import interface to bring documents into EnerGov and then
push the documents as a binary file to Laserfiche with the PutDocument API.
Integration Functionality within Laserfiche:
New Document Creation—Laserfiche Storage Process
1. Users must create new document through the EnerGov application.
2. When a user attaches a document to a new parcel, EnerGov will pass the document via the
"PutDocument" API function to Laserfiche.
11/2/2015 Statement of Work Page 3
GENERAL
CODE
3. Upon receiving a"PutDocument"function call, Laserfiche will insert the new document
within Laserfiche and return the Document ID to EnerGov.
4. Documents without metadata will reside in the"Incoming"folder until Metadata is passed
to Laserfiche with the matching Document ID so that the document can be routed and its
Metadata updated.
5. A field will be added to the new document to maintain the Document ID. This will be done
in redundancy to ensure if the original document ID is lost(document is deleted or
duplicated and original is deleted)to ensure it could still be found for EnerGov.
6. All documents stored in Laserfiche through the EnerGov interface will be immediately
available to EnerGov through reference to the Laserfiche Document ID regardless of
whether templates have been applied and/or routing to a folder has been performed.
Update Metadata
1. When the UpdateMetadata API call is used by EnerGov,the Document with the matching
Document ID will be selected within Laserfiche.
2. If the selected Laserfiche Document is found in the"_Incoming"folder,Laserfiche will apply
a Template based on the fields that are passed with metadata.
3. After the template has been applied, Laserfiche will update the fields passed from EnerGov
into the Laserfiche Template.
4. If the updated Template data includes an update to the Parcel Number, Laserfiche will route
the document to reside within the updated Parcel Number and subfolder.
5. For Parcel-related documents, Laserfiche will determine if the Parcel Number on the
template already exists.If not, a new Parcel folder will be created with all subfolders.
6. Once the Folder for the Parcel is found or created,the document will be routed to the Parcel
folder and placed within the appropriate subfolder based on its template type.
7. For non-Parcel related documents,Laserfiche will organize the document by its document
type.
Deleted Documents
1. Documents deleted within EnerGov will trigger the DeleteDocument API call with the
Document ID of the document to be deleted.
2. Laserfiche will receive the API call and find the Document with the matching ID within the
Laserfiche system.
3. If Found,the document will be deleted.
4. If not found,or insufficient rights,and error will be returned to EnerGov.
Moved Documents to different Parcels
1. Documents moved within EnerGov from one Parcel to another(for example,if a document
was attached to the incorrect parcel initially). The UpdateMetadata API call will update the
referenced metadata within Laserfiche.
2. If the Metadata update changed the Parcel Number, Laserfiche will route the document to
the new Parcel Number and subfolder.
11/2/2015 Statement of Work Page 4
GENERAL
CODE
Laserfiche Document Organization
• Organization of Parcel-related documents will be organized by Parcel Number,and
Document type. In the event that a document is related to multiple Parcels, it will be
organized under the first parcel number with it(example, Projects may have multiple
parcels). Additional Parcel numbers will be stored within the Parcel Number field.
Parcel Number 1
Applications
• Application 1
• Application 2
Businesses
Business Licenses
• Business License 1
• Business License 2
Citizen Requests
Code Cases
cz Global Entity
Impact Case
Individual License
• Individual Tax Remittance Account
• Inspection
• Inspection-41-- Landlord License
• Object Case
Parcel
r= Permit
• Permit
• Permit Renewal Case
Project
Rental Property
Parcel Number 2
Parcel Number 3
• Organization of non-Parcel related documents will be done by Document Type:
Exam Requests
Exam Request 1
• Exam Request
• Exam Sitting
Exam Request 2
Exam Sitting*
Global Entity
Invoice
11/2/2015 Statement of Work Page 5
GENERAL
CODE
Permit Renewal Case*
• The Permit Renewal Case folders will have Workflows monitoring them to move the Permit
Renewals to the related Folder with the originating Permit.
• The Exam sitting folders will have Workflows monitoring them to move the Permit
Renewals to the related folder with the originating exam request.
Access to documents stored for a parcel
1. All Parcel-Related documents will be visible in the Parcel Folder,organized by document
type.
2. Users will not have rights to delete EnerGov documents through the Laserfiche Interface.
3. Users will not have rights to modify EnerGov document metadata through the Laserfiche
interface.
4. Users will be able to move EnerGov documents within Laserfiche as documents are
identified by Document ID and not path.
Document Scanning/Uploads,Metadata and Deletion management
1. All documents must be scanned or uploaded through the EnerGov interface.
2. All metadata must be updated through the EnerGov interface.
3. All document deletions must be done through the EnerGov interface.
Assumptions:
• An additional Laserfiche User License will be required for the connection between EnerGov
and Laserfiche.
• Queensbury would like documents within Laserfiche be stored in a logical organization
even though they will be primarily accessed via the EnerGov interface.
• Queensbury would like metadata for documents to be stored within Laserfiche as well as
within EnerGov for ease of searching and locating documents.
• All Documents to be accessed via EnerGov must be entered via the EnerGov interface.
There is no functionality by which EnerGov can identify new documents within Laserfiche
that did not get stored via EnerGov.
• Documents that do NOT need to be accessed via EnerGov may be entered directly into the
Laserfiche system, but will not be visible via the EnerGov interface.
• All Documents within Laserfiche from the EnerGov interface will be set as"Read-Only"for
all but the EnerGov LF User.
• All Metadata will be entered and modified via the EnerGov interface and will be made
"read-only" inside Laserfiche for all but the EnerGov LF User.
• Documents within Laserfiche may be moved by end users without affecting the EnerGov
interface as EnerGov requests documents based on Laserfiche's Document ID,which is static
for each document.
11/2/2015 Statement of Work Page 6
GENERAL
CODE
EnerGov Document Management API
Description
EnerGov software exposes an API that allows it to integrate with any document management software.
Integration with Tyler Document Management(TCM)is provided out of the box,but an integration plugin must be
written for all other document management systems.
Infrastructure
Integration with document management is mostly performed by a background windows service that is distributed
as part of overall install or upgrade package and are located in EnerGov.Integrations\Integration.Windowsservice
folder. This service must be installed. There is one change that must be made is to the web.config file.
• Correct connection string to the main EnerGov database must be provided in the
connectionStrings area for connection string with the name of EnerGovDataEntities.
• Integration with document management system relies on plug in architecture. EnerGov expects
a .NET DLL plug in to exist in its binaries folders.
Integration Details
Inside this DLL it expects to find a class that implements its required interface:(Service. The details of the service
are described in the accompanying help file(chm)file EnerGov.ContentManagement lntegration.chm.Developers
that are familiar with the document management system need to create this DLL by referencing
EnerGov.ContentManagement.Integrotion.dll DLL located in main application's binaries folder. Once
implementation is completed,only the new plug in DLL needs to be copied into binaries folder of each EnerGov
subsystem. This includes main application,all windows services and all web services that a customer is using.
Then EnerGov itself needs to be setup in System Setup>District Setup>System Settings>System Integration.You
must check the'Enable Content Management Integration'box. All other settings,including web service URL and
user credentials,will be passed into IService instance. Finale setting,DLL name is simply the name of the plug in
.NET DLL.
Content Management Integration Settings
Enable Content Management Integration
Content Management Base Service URL http://IocaIhost:8080/tylercm/services/
Content Management User Login j admin
Content Management User Password 1
Content Management DLL Name (TylerContentManagement.Integration
[Service
The integration service has the following main methods:
• DeleteDocument. Delete document previously uploaded to document management system
because a user chose to delete it from EnerGov.
• GetDocument. Get a document with metadata and binary content based on document
management system internal identifier.
• GetDocumentUrl. EnerGov expects to get a URL that an EnerGov user can navigate to using a
browser. This method expects document management system internal identifier.
11/2/2015 Statement of Work Page 7
GENERAL
CODE
• InitializeService. Described previously. Called once when an instance of the service is created
by EnerGov.
• PutDocument. Create new document in document management system. EnerGov expects to
receive document management system's internal identifier for newly created document. This
document identifier will later be passed into GetDocument,GetDocumetnUrl, UpdateMetadata
and DeleteDocument methods.
• UpdateMetadata. Update EnerGov specific metadata fields inside document management
system.
It also give developers an ability to write informational and error messages by creating their own WriteError and
Writelnfo messages,although those are not communicated to EnerGov.
The implementation of this interface must be found on exactly once class inside the plug in DLL. Any additional
methods and classes can also exist in the same plug in dll.
Metadata
Metadata that is passed to document management system inside IDocument.Metadata is controlled completely by
EnerGov,thus should be read-only inside document management system. Type field points to EnerGov specific
entity,such as permit. It can be used inside document management system to provide groupings. However,the
word itself is controlled by EnerGov,thus document management system should be setup to match it. Here are all
available types
• EnerGovinspection
• EnerGovBusinessLicense
• EnerGovPermitRenewalCase
• EnerGovApplication
• EnerGovinvoice
• EnerGovExamSitting
• EnerGovPlan
• EnerGovExamRequest
• EnerGovRentalProperty
• EnerGovCitizenRequest
• EnerGovPayment
• EnerGovPermit
• EnerGovindividualLicense
• EnerGovindividualTaxRemittanceAccount
• EnerGovinspectionCase
• EnerGovObjectCase
• EnerGovGlobalEntity
• EnerGovBusiness
• EnerGovlmpactCase
• EnerGovParcel
• EnerGovProject
• EnerGovLandLordLicense
• EnerGovCodeCase
11/2/2015 Statement of Work Page 8
GENERAL
CODE
The number of actual metadata fields depend on document type. Here is the full metadata layout,ordered by
document type. Collection flagged metadata properties will be exported as collection,thus need to be handled
appropriately inside document management system. The actual fields from each item in the collection will be in
the metadata multiple times. They can be grouped together using Instance property inside(Field implementation.
Risks
Does a PutDocument()call get followed by a UpdateMetadata()call?
Will a document ever start as one type of document and be changed?? (Example,originally identified as
Permit, but updated to Permit Renewal?)
Additional discussion with Queensbury will be necessary to determine what, if any,template is required
for Parcel Folders.
Additional discussion with Queensbury and EnerGov will be necessary to determine what templates and
template fields are required within Laserfiche. (are there any types that do not have documents? Ex.
Exams?)
How does the collection item work? Will LF have to store multiple values within a field for all
"Collection"fields?
Can Documents be moved within the EnerGov to reside within a different Parcel (if,for example,it was
attached to the incorrect parcel initially). The UpdateMetadata API call will update the referenced
metadata within Laserfiche.
How are multiple Parcels numbers passed?
11/2/2015 Statement of Work Page 9
GENERAL
CODE
GC Streamline EnerGov Integration Description
EnerGov Integration Unit Price Units Total Cost
Laserfiche Software
Lase :the
User license for EnerGov-LF Users* $ 500 1 $ 500
TOTAL Pro ect;.Mana „ment;`•Business Ana sis and Besi:n „v 4.0,14:44."-„*-
Total Laserfiche Software $ 500
Professional Services
fro M 1 .� .,,Z,: ,?
EnerGov-Lase rche Pro'ect Mona•ements Su••ort
Project Management including Planning,Communication,Change $ 150 8 $ 1,200
Mona•em en t,Pro.ress Re•orting
TOTAL;Pro ecttMa a ement. ..
., it= Ye €ti�'»dr ... ..
EnerGov-Lase :the Data Su••ort
Creation of Templates to capture EnerGov metadata $ 150 4 $ 600
_Incoming Workflow process to organize documents from EnerGov within $ 150 4 $ 600
Lose iche
Existin•Lose the Data Conditioning
Workflows to transfer data from existing to EnerGov templates(for $ 150 4 $ 600
searchin across Lase iche includes data ma.•in• and iekls•licin•)
Workflows to enhance metadata based on existing database information $ 150 8 $ 1,200
on existing Building documents.(Add permit where available,standardize
Parcel IDs,add address in ormation,etc.)
Workflows to update document organization folder structure to work with $ 150 4 $ 600
EnerGov
TOTAL;i aserfichedConffi Uration — 600
EnerGov-Laserfiche API Software-Supports the following: From within $ 15,000 1 $ 15,000
EnerGov:Insertion of documents into Laserfiche;Retrieval of Documents
rom Laserfiche;Updates of metadata to documents within Laserfiche;
Deletion o Documents in Lase iche. (est.80-100 hour develo.ment
OTAL bite ratio nfi_ ration. r k . .
Total Professional Services $ 19,800
Annual Subscriptions/Ongoing Support
L.
Additional LSAP(for EnerGov user) $ 110 1 $ 110
EnerGov-Laserfiche Support Annual Maintenance $ 120 1 $ 120
EnerGov LaserificheAPI Annual Maintenance $ 3 000 1 $ 3,000
S RTCOST$,M .. .. .. .. ` i
'f(�TAL.�� .a..._. ARE 11PP.0 a � o <a �. �,{s � �� ��„'� M_«a> 'x•e
Total Annual Subscriptions/Ongoing Support $ 3,230
Year 1 Grand Total(includes 1st Year Annual Subscription/Support) ? $ 23,530
*1 Laserfiche Avante License required for each security profile. if
additional security profiles are needed,then additional Laserfiche
Avante licenses will need to be purchased.
..... ....._ ....... . .........
11/2/2015 Statement of Work Page 10
GENERAL
CODE
Change Management Process
All change requests must be made in writing and approved by all parties before any work is done.
Acceptance and authorization
The terms and conditions of the Professional Services Agreement apply in full to the services and products
provided under this Statement of Work.
IN WITNESS WHEREOF,the parties hereto each acting with proper authority have executed this Statement of
Work,under seal.
Full name Full name
Title Title
Signature Signature
Date Date
11/2/2015 Statement of Work Page 11