Transcription

SDK Programmer’s GuideLast Revised: February 6, 2018

Copyright Statement 2018 EllieMae, Inc. Ellie Mae , Encompass , AllRegs , DataTrac , Ellie Mae Network , Mavent , MillennialTracker , Mortgage Returns , Prospect Manager , Total Quality Loan , True CRM , TQL and the Ellie Mae logoare trademarks of Ellie Mae, Inc. or its subsidiaries. All rights reserved. Other company and product names may betrademarks or copyrights of their respective owners.Encompass SDK Programmer’s GuideRev. 2/6/2018

Table of ContentsSection 1: Technical Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Why an SDK? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1What’s Included? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1EncompassObjects API. 1.Encompass SDK Programmer’s Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Run-Time Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Supported Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .EncompassObjects API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Encompass Automation API (Banker Edition only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sample Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .EncompassObjects API ReferenceSample Code111122333Section 2: Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4SDK License Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Installation Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Section 3: Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Writing Standalone Application Using EncompassObjects . . . . . . . .Deploying an EncompassObjects Application . . . . . . . . . . . . . . . . .Connecting to an Encompass Server.Creating an Encompass Plugin Assembly (Banker Edition only) . . . .Creating a Custom Form Codebase Assembly (Banker Edition only). 6. 8. 9. 9. . . . . . . . . . . . . . . . . . . . . . 10Section 4: Managing Loans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.Accessing Simple Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Accessing Multi-Valued Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Accessing Borrower Pair-Specific Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Accessing Borrower Pair-Specific, Multi-Valued Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . .Importing and Exporting Loans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Fannie Mae 3.x Formatted Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Accessing the Loan Log.Conversation Log Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Milestone Event Log Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Document Log Entries.EDM Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Received Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Attachments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Loan Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Access Rights.Roles and Loan Associates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Retrieving, Saving, and Locking LoansCreating and Assigning Loans . . . . . .Loan Fields . . . . . . . . . . . . . . . . . . .Field Formats and Descriptors . .1212131314141515151516161617171718192020i

Lock Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Loan Servicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Batch Loan Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Section 5: Managing Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26.Changing Contact Custom Field Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Working with Field Types.Linking Contacts to Loans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Retrieving, Modifying, and Saving ContactsCreating Contacts . . . . . . . . . . . . . . . . . .Custom Fields.Accessing Contact Custom Field Data26262626272727Section 6: Reports and Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Criterion Classes.Logical Operations . . . . . . . . . . . . . . . . .Canonical Field Names . . . . . . . . . . . . . .Related Loan Contact Queries . . . . . . . . .Contact Custom Field Queries . . . . . . . . .Reporting Database Canonical Field NamesCreating Reports.Loans.Query() Method . . . . . . . . . .Loans.QueryPipeline() Method.Reporting Objects.29293034343535353536Section 7: Calendar and Appointments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Retrieving Appointments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Modifying and Saving Appointments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Creating and Deleting Appointments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Section 8: Managing Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Managing User Access to Encompass via the SDKManaging the Organization Hierarchy . . . . . . . . .Personas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Retrieving, Modifying and Saving Users.Creating and Deleting Users.Managing User Groups (Banker Edition only).Managing Loan Officer Licensing Data . . . . . . . .Managing Third Party Originators . . . . . . . . . . . .3939404040414141Section 9: Pipeline and Contact Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Using the PipelineCursorUsing the Contact Cursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Section 10: Basic Automation (Banker Edition only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45The EncompassApplication ObjectApplication Events.Manipulating the User Interface . .Macros.ii.45454646

Section 11: Plugins (Banker Edition only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Plugin Architecture . . . . . . . . . .Using Encompass Data ExchangeThreading Considerations . . . . .External Dependencies . . . . . . .48484950Section 12: Custom Input Form Codebase Assemblies (Banker Edition only) . . . . . . . 51Forms & Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Form Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Stage 1: Instantiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.Stage 3: Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Stage 4: Load Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Stage 5: User Interaction.Stage 6: Unload Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Dynamic Control Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Event Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Custom Data Binding.Packaging and Redistribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Stage 2: Control Generation525253535353545455Section 13: Error Handling in the API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Rules ViolationsSystemic Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Section 14: Security in the API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Section 15: Distributing Applications Built Using the API . . . . . . . . . . . . . . . . . . . . . . . . . 58Encompass API Run-Time Licensing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Encompass Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Updating Computers with the Encompass SDK Installed. . . . . . . . . . . . . . . . . . . . . . . . . . 59Appendix A: Troubleshooting the EncompassObjects API . . . . . . . . . . . . . . . . . . . . . . . . 60Problem 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Cause and Resolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Problem 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Cause and Resolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Problem 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Cause and Resolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Problem 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Cause and Resolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Problem 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Cause and Resolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .