Add new Salesforce metadata for account-based CLM and eSignature integration

- Appraiser_Case__c: appraiser identity/address fields, FHA case number,
  CLM tracking fields (task ID/URL/status), generated document fields,
  attached file fields, Letter_Sent_Date__c
- Appraiser_Case_Deficiency__c: Reference__c field, blank-record validation rule
- CLM_Account_Setting__mdt and CLM_Letter_Definition__mdt: per-account CLM
  and eSignature configuration with seeded records for DTC_CLM_Demo,
  DTC_IAM_Enterprise, DTC_HUD_Demo
- CLM_Environment_Setting__mdt: UAT/S1 environment defaults
- Named credentials: CLMs1NamedCreds, CLMs1Download, Esignature_Demo_NamedCreds
- LWC: clmDocGenWorkbench, docusignEsignWorkbench, clmRequestPreview
- Layouts, record page, permission sets, quick action, app, tabs, manifest

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
paulh 2026-04-09 20:35:59 -04:00
parent 703fb0c0ba
commit 62b78faf1a
103 changed files with 3842 additions and 31 deletions

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomApplication xmlns="http://soap.sforce.com/2006/04/metadata">
<description>Dedicated Lightning app for Appraiser Case review and DocuSign CLM proof-of-concept testing.</description>
<formFactors>Small</formFactors>
<formFactors>Large</formFactors>
<isNavAutoTempTabsDisabled>false</isNavAutoTempTabsDisabled>
<isNavPersonalizationDisabled>false</isNavPersonalizationDisabled>
<isNavTabPersistenceDisabled>false</isNavTabPersistenceDisabled>
<isOmniPinnedViewEnabled>false</isOmniPinnedViewEnabled>
<label>Appraiser Review</label>
<navType>Standard</navType>
<tabs>standard-home</tabs>
<tabs>Appraiser_Case__c</tabs>
<tabs>Appraiser_Case_Deficiency__c</tabs>
<tabs>standard-report</tabs>
<tabs>standard-Dashboard</tabs>
<uiType>Lightning</uiType>
</CustomApplication>

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>DTC CLM Demo</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_CLM_Demo</value>
</values>
<values>
<field>Account_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC CLM Demo</value>
</values>
<values>
<field>Environment_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">UAT</value>
</values>
<values>
<field>CLM_Account_Id__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">bccae332-c7db-4892-ab85-257df0f70fea</value>
</values>
<values>
<field>CLM_Api_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">CLMuatNamedCreds</value>
</values>
<values>
<field>CLM_Download_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">CLMuatDownload</value>
</values>
<values>
<field>ESignature_Auth_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AcctDemo_NamedCreds</value>
</values>
<values>
<field>ESignature_Rest_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Esignature_Demo_NamedCreds</value>
</values>
<values>
<field>Template_Root_Folder_Href__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/folders/12220442-b12e-f111-84fc-88e9a4bd0d9c</value>
</values>
<values>
<field>Destination_Root_Folder_Href__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/folders/12220442-b12e-f111-84fc-88e9a4bd0d9c</value>
</values>
<values>
<field>Default_Template_Document_Href__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/documents/a0cbc0e6-d87d-459e-8d63-66baa47878f3</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Review</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>DTC HUD Demo</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_HUD_Demo</value>
</values>
<values>
<field>Account_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC HUD Demo</value>
</values>
<values>
<field>Environment_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">S1</value>
</values>
<values>
<field>CLM_Account_Id__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2371cf36-eb8a-43fe-9f28-b5bbe7644397</value>
</values>
<values>
<field>CLM_Api_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">CLMs1NamedCreds</value>
</values>
<values>
<field>CLM_Download_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">CLMs1Download</value>
</values>
<values>
<field>ESignature_Auth_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AcctDemo_NamedCreds</value>
</values>
<values>
<field>ESignature_Rest_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Esignature_Demo_NamedCreds</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Review</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>DTC IAM Enterprise</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_IAM_Enterprise</value>
</values>
<values>
<field>Account_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC IAM Enterprise</value>
</values>
<values>
<field>Environment_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">S1</value>
</values>
<values>
<field>CLM_Account_Id__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2371cf36-eb8a-43fe-9f28-b5bbe7644397</value>
</values>
<values>
<field>CLM_Api_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">CLMs1NamedCreds</value>
</values>
<values>
<field>CLM_Download_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">CLMs1Download</value>
</values>
<values>
<field>ESignature_Auth_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">AcctDemo_NamedCreds</value>
</values>
<values>
<field>ESignature_Rest_Named_Credential__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Esignature_Demo_NamedCreds</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Review</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>S1</label>
<protected>false</protected>
<values>
<field>Environment_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">S1</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Review</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>UAT</label>
<protected>false</protected>
<values>
<field>Environment_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">UAT</value>
</values>
<values>
<field>Destination_Root_Folder_Href__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/folders/12220442-b12e-f111-84fc-88e9a4bd0d9c</value>
</values>
<values>
<field>Template_Root_Folder_Href__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/folders/12220442-b12e-f111-84fc-88e9a4bd0d9c</value>
</values>
<values>
<field>Default_Template_Document_Href__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/documents/a0cbc0e6-d87d-459e-8d63-66baa47878f3</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Review</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Appraiser Review Letter</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_CLM_Demo</value>
</values>
<values>
<field>Letter_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">APPRAISER_REVIEW</value>
</values>
<values>
<field>Letter_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Appraiser Review Letter</value>
</values>
<values>
<field>Description__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Current appraiser letter template flow.</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Is_Default__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Sort_Order__c</field>
<value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">10</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Review</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Education Letter</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_CLM_Demo</value>
</values>
<values>
<field>Letter_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">EDUCATION_LETTER</value>
</values>
<values>
<field>Letter_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education Letter</value>
</values>
<values>
<field>Description__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education / guidance letter.</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Is_Default__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value>
</values>
<values>
<field>Sort_Order__c</field>
<value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">40</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Intent to Remove Letter</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_CLM_Demo</value>
</values>
<values>
<field>Letter_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">INTENT_TO_REMOVE_LETTER</value>
</values>
<values>
<field>Letter_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent to Remove Letter</value>
</values>
<values>
<field>Description__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent to Remove letter.</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Is_Default__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value>
</values>
<values>
<field>Sort_Order__c</field>
<value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">30</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent_Remove</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>NOD Letter</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_CLM_Demo</value>
</values>
<values>
<field>Letter_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD_LETTER</value>
</values>
<values>
<field>Letter_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD Letter</value>
</values>
<values>
<field>Description__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Notice of Deficiency letter.</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Is_Default__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value>
</values>
<values>
<field>Sort_Order__c</field>
<value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">20</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Appraiser Review Letter</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_HUD_Demo</value>
</values>
<values>
<field>Letter_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">APPRAISER_REVIEW</value>
</values>
<values>
<field>Letter_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Appraiser Review Letter</value>
</values>
<values>
<field>Description__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Current appraiser letter template flow.</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Is_Default__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Sort_Order__c</field>
<value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">10</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Review</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Education Letter</label>
<protected>false</protected>
<values><field>Account_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_HUD_Demo</value></values>
<values><field>Letter_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">EDUCATION_LETTER</value></values>
<values><field>Letter_Display_Name__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education Letter</value></values>
<values><field>Description__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education / guidance letter.</value></values>
<values><field>Active__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value></values>
<values><field>Is_Default__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value></values>
<values><field>Sort_Order__c</field><value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">40</value></values>
<values><field>Default_Destination_Document_Name_Prefix__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education</value></values>
</CustomMetadata>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Intent to Remove Letter</label>
<protected>false</protected>
<values><field>Account_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_HUD_Demo</value></values>
<values><field>Letter_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">INTENT_TO_REMOVE_LETTER</value></values>
<values><field>Letter_Display_Name__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent to Remove Letter</value></values>
<values><field>Description__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent to Remove letter.</value></values>
<values><field>Active__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value></values>
<values><field>Is_Default__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value></values>
<values><field>Sort_Order__c</field><value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">30</value></values>
<values><field>Default_Destination_Document_Name_Prefix__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent_Remove</value></values>
</CustomMetadata>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>NOD Letter</label>
<protected>false</protected>
<values><field>Account_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_HUD_Demo</value></values>
<values><field>Letter_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD_LETTER</value></values>
<values><field>Letter_Display_Name__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD Letter</value></values>
<values><field>Description__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Notice of Deficiency letter.</value></values>
<values><field>Active__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value></values>
<values><field>Is_Default__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value></values>
<values><field>Sort_Order__c</field><value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">20</value></values>
<values><field>Default_Destination_Document_Name_Prefix__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD</value></values>
</CustomMetadata>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Intent to Remove Letter</label>
<protected>false</protected>
<values><field>Account_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_IAM_Enterprise</value></values>
<values><field>Letter_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">INTENT_TO_REMOVE_LETTER</value></values>
<values><field>Letter_Display_Name__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent to Remove Letter</value></values>
<values><field>Description__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent to Remove letter.</value></values>
<values><field>Active__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value></values>
<values><field>Is_Default__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value></values>
<values><field>Sort_Order__c</field><value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">30</value></values>
<values><field>Default_Destination_Document_Name_Prefix__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Intent_Remove</value></values>
</CustomMetadata>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Appraiser Review Letter</label>
<protected>false</protected>
<values>
<field>Account_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_IAM_Enterprise</value>
</values>
<values>
<field>Letter_Code__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">APPRAISER_REVIEW</value>
</values>
<values>
<field>Letter_Display_Name__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Appraiser Review Letter</value>
</values>
<values>
<field>Description__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Current appraiser letter template flow.</value>
</values>
<values>
<field>Active__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Is_Default__c</field>
<value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value>
</values>
<values>
<field>Sort_Order__c</field>
<value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">10</value>
</values>
<values>
<field>Default_Destination_Document_Name_Prefix__c</field>
<value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Review</value>
</values>
</CustomMetadata>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Education Letter</label>
<protected>false</protected>
<values><field>Account_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_IAM_Enterprise</value></values>
<values><field>Letter_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">EDUCATION_LETTER</value></values>
<values><field>Letter_Display_Name__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education Letter</value></values>
<values><field>Description__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education / guidance letter.</value></values>
<values><field>Active__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value></values>
<values><field>Is_Default__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value></values>
<values><field>Sort_Order__c</field><value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">40</value></values>
<values><field>Default_Destination_Document_Name_Prefix__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Education</value></values>
</CustomMetadata>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<label>NOD Letter</label>
<protected>false</protected>
<values><field>Account_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">DTC_IAM_Enterprise</value></values>
<values><field>Letter_Code__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD_LETTER</value></values>
<values><field>Letter_Display_Name__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD Letter</value></values>
<values><field>Description__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Notice of Deficiency letter.</value></values>
<values><field>Active__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</value></values>
<values><field>Is_Default__c</field><value xsi:type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value></values>
<values><field>Sort_Order__c</field><value xsi:type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">20</value></values>
<values><field>Default_Destination_Document_Name_Prefix__c</field><value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">NOD</value></values>
</CustomMetadata>

View File

@ -0,0 +1,386 @@
<?xml version="1.0" encoding="UTF-8"?>
<FlexiPage xmlns="http://soap.sforce.com/2006/04/metadata">
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>collapsed</name>
<value>false</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>enableActionsConfiguration</name>
<value>false</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>enableActionsInNative</name>
<value>false</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>hideChatterActions</name>
<value>false</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>numVisibleActions</name>
<value>3</value>
</componentInstanceProperties>
<componentName>force:highlightsPanel</componentName>
<identifier>force_highlightsPanel</identifier>
</componentInstance>
</itemInstances>
<mode>Replace</mode>
<name>header</name>
<type>Region</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>relatedListComponentOverride</name>
<value>NONE</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>rowsToDisplay</name>
<value>10</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>showActionBar</name>
<value>true</value>
</componentInstanceProperties>
<componentName>force:relatedListContainer</componentName>
<identifier>force_relatedListContainer</identifier>
</componentInstance>
</itemInstances>
<mode>Replace</mode>
<name>relatedTabContent</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.OwnerId</fieldItem>
<identifier>RecordOwnerIdField</identifier>
</fieldInstance>
</itemInstances>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.Property_Street__c</fieldItem>
<identifier>RecordProperty_Street_cField</identifier>
</fieldInstance>
</itemInstances>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.Property_City__c</fieldItem>
<identifier>RecordProperty_City_cField</identifier>
</fieldInstance>
</itemInstances>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.Property_State_Province__c</fieldItem>
<identifier>RecordProperty_State_Province_cField</identifier>
</fieldInstance>
</itemInstances>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.Property_Postal_Code__c</fieldItem>
<identifier>RecordProperty_Postal_Code_cField</identifier>
</fieldInstance>
</itemInstances>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.Property_Country__c</fieldItem>
<identifier>RecordProperty_Country_cField</identifier>
</fieldInstance>
</itemInstances>
<name>Facet-f500e2fb-11c3-416b-9dc6-9d41da18f8b6</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.Name</fieldItem>
<identifier>RecordNameField</identifier>
</fieldInstance>
</itemInstances>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.Appraiser_Field_Review_Date__c</fieldItem>
<identifier>RecordAppraiser_Field_Review_Date_cField</identifier>
</fieldInstance>
</itemInstances>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.CreatedById</fieldItem>
<identifier>RecordCreatedByIdField</identifier>
</fieldInstance>
</itemInstances>
<itemInstances>
<fieldInstance>
<fieldInstanceProperties>
<name>uiBehavior</name>
<value>none</value>
</fieldInstanceProperties>
<fieldItem>Record.LastModifiedById</fieldItem>
<identifier>RecordLastModifiedByIdField</identifier>
</fieldInstance>
</itemInstances>
<name>Facet-dc9d7e8f-5478-43ef-a95e-3f61960274fa</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>body</name>
<value>Facet-f500e2fb-11c3-416b-9dc6-9d41da18f8b6</value>
</componentInstanceProperties>
<componentName>flexipage:column</componentName>
<identifier>flexipage_column</identifier>
</componentInstance>
</itemInstances>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>body</name>
<value>Facet-dc9d7e8f-5478-43ef-a95e-3f61960274fa</value>
</componentInstanceProperties>
<componentName>flexipage:column</componentName>
<identifier>flexipage_column2</identifier>
</componentInstance>
</itemInstances>
<name>Facet-70cfd25b-1515-494b-91d2-98730c66f733</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentName>force:detailPanel</componentName>
<identifier>force_detailPanel</identifier>
</componentInstance>
</itemInstances>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>columns</name>
<value>Facet-70cfd25b-1515-494b-91d2-98730c66f733</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>horizontalAlignment</name>
<value>false</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>label</name>
<value>Section</value>
</componentInstanceProperties>
<componentName>flexipage:fieldSection</componentName>
<identifier>flexipage_fieldSection</identifier>
</componentInstance>
</itemInstances>
<mode>Replace</mode>
<name>detailTabContent</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>body</name>
<value>previewTabContent</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>title</name>
<value>CLM Preview</value>
</componentInstanceProperties>
<componentName>flexipage:tab</componentName>
<identifier>clmPreviewTab</identifier>
</componentInstance>
</itemInstances>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>body</name>
<value>esignTabContent</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>title</name>
<value>Docusign eSignature</value>
</componentInstanceProperties>
<componentName>flexipage:tab</componentName>
<identifier>esignWorkbenchTab</identifier>
</componentInstance>
</itemInstances>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>body</name>
<value>relatedTabContent</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>title</name>
<value>Standard.Tab.relatedLists</value>
</componentInstanceProperties>
<componentName>flexipage:tab</componentName>
<identifier>relatedListsTab</identifier>
</componentInstance>
</itemInstances>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>active</name>
<value>true</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>body</name>
<value>detailTabContent</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>title</name>
<value>Standard.Tab.detail</value>
</componentInstanceProperties>
<componentName>flexipage:tab</componentName>
<identifier>detailTab</identifier>
</componentInstance>
</itemInstances>
<mode>Replace</mode>
<name>maintabs</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentName>c:docusignEsignWorkbench</componentName>
<identifier>c_docusignEsignWorkbench</identifier>
</componentInstance>
</itemInstances>
<name>esignTabContent</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentName>c:clmRequestPreview</componentName>
<identifier>c_clmRequestPreview</identifier>
</componentInstance>
</itemInstances>
<name>previewTabContent</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>showLegacyActivityComposer</name>
<value>false</value>
</componentInstanceProperties>
<componentName>runtime_sales_activities:activityPanel</componentName>
<identifier>runtime_sales_activities_activityPanel</identifier>
</componentInstance>
</itemInstances>
<mode>Replace</mode>
<name>activityTabContent</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>active</name>
<value>true</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>body</name>
<value>activityTabContent</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>title</name>
<value>Standard.Tab.activity</value>
</componentInstanceProperties>
<componentName>flexipage:tab</componentName>
<identifier>activityTab</identifier>
</componentInstance>
</itemInstances>
<mode>Replace</mode>
<name>sidebartabs</name>
<type>Facet</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>label</name>
<value>Tabs</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>tabs</name>
<value>maintabs</value>
</componentInstanceProperties>
<componentName>flexipage:tabset</componentName>
<identifier>flexipage_tabset</identifier>
</componentInstance>
</itemInstances>
<mode>Replace</mode>
<name>main</name>
<type>Region</type>
</flexiPageRegions>
<flexiPageRegions>
<itemInstances>
<componentInstance>
<componentInstanceProperties>
<name>label</name>
<value>Tabs</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>tabs</name>
<value>sidebartabs</value>
</componentInstanceProperties>
<componentName>flexipage:tabset</componentName>
<identifier>flexipage_tabset2</identifier>
</componentInstance>
</itemInstances>
<mode>Replace</mode>
<name>sidebar</name>
<type>Region</type>
</flexiPageRegions>
<masterLabel>Appraiser Case Record Page</masterLabel>
<parentFlexiPage>flexipage__default_rec_L</parentFlexiPage>
<sobjectType>Appraiser_Case__c</sobjectType>
<template>
<name>flexipage:recordHomeTemplateDesktop</name>
</template>
<type>RecordPage</type>
</FlexiPage>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<Layout xmlns="http://soap.sforce.com/2006/04/metadata">
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>Information</label>
<layoutColumns>
<layoutItems>
<behavior>Readonly</behavior>
<field>Name</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_Case__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Deficiency_Number__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns/>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>Details</label>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Description__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Resolution__c</field>
</layoutItems>
</layoutColumns>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<showEmailCheckbox>false</showEmailCheckbox>
<showHighlightsPanel>false</showHighlightsPanel>
<showInteractionLogPanel>false</showInteractionLogPanel>
<showRunAssignmentRulesCheckbox>false</showRunAssignmentRulesCheckbox>
<showSubmitAndAttachButton>false</showSubmitAndAttachButton>
</Layout>

View File

@ -7,22 +7,79 @@
<label>Information</label> <label>Information</label>
<layoutColumns> <layoutColumns>
<layoutItems> <layoutItems>
<behavior>Required</behavior> <behavior>Readonly</behavior>
<field>Name</field> <field>Name</field>
</layoutItems> </layoutItems>
<layoutItems> <layoutItems>
<behavior>Edit</behavior> <behavior>Edit</behavior>
<field>Appraiser_Field_Review_Date__c</field> <field>Appraiser_Field_Review_Date__c</field>
</layoutItems> </layoutItems>
</layoutColumns>
<layoutColumns/>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>Letter Header</label>
<layoutColumns>
<layoutItems> <layoutItems>
<behavior>Edit</behavior> <behavior>Edit</behavior>
<field>CreatedDate</field> <field>Appraiser_Name__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_Salutation__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_Last_Name__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Letter_Sent_Date__c</field>
</layoutItems> </layoutItems>
</layoutColumns> </layoutColumns>
<layoutColumns> <layoutColumns>
<layoutItems> <layoutItems>
<behavior>Edit</behavior> <behavior>Edit</behavior>
<field>LastModifiedDate</field> <field>FHA_Case_Number__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_Email__c</field>
</layoutItems>
</layoutColumns>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>Appraiser Address</label>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_Street__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_City__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_State_Province__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_Postal_Code__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Appraiser_Country__c</field>
</layoutItems> </layoutItems>
</layoutColumns> </layoutColumns>
<style>TwoColumnsTopToBottom</style> <style>TwoColumnsTopToBottom</style>
@ -58,19 +115,94 @@
</layoutColumns> </layoutColumns>
<style>TwoColumnsTopToBottom</style> <style>TwoColumnsTopToBottom</style>
</layoutSections> </layoutSections>
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>Doc Gen Tracking</label>
<layoutColumns>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_DocGen_Status__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_CLM_Account_Code__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_DocGen_Task_Id__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Generated_Document_Id__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Attached_File_Content_Document_Id__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_DocGen_Requested_At__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_DocGen_Completed_At__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_DocGen_Task_Url__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Generated_Document_Url__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Attached_File_Url__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_Template_Document_Href__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_Destination_Folder_Href__c</field>
</layoutItems>
<layoutItems>
<behavior>Readonly</behavior>
<field>Last_DocGen_Message__c</field>
</layoutItems>
</layoutColumns>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<platformActionList>
<actionListContext>Record</actionListContext>
<platformActionListItems>
<actionName>Appraiser_Case__c.Generate_Review_Letter</actionName>
<actionType>QuickAction</actionType>
<sortOrder>0</sortOrder>
</platformActionListItems>
<platformActionListItems>
<actionName>Edit</actionName>
<actionType>StandardButton</actionType>
<sortOrder>1</sortOrder>
</platformActionListItems>
<platformActionListItems>
<actionName>Delete</actionName>
<actionType>StandardButton</actionType>
<sortOrder>2</sortOrder>
</platformActionListItems>
</platformActionList>
<relatedLists> <relatedLists>
<fields>NAME</fields> <fields>NAME</fields>
<fields>Deficiency_Number__c</fields> <fields>Deficiency_Number__c</fields>
<fields>Description__c</fields> <fields>Description__c</fields>
<fields>Reference__c</fields>
<fields>Resolution__c</fields> <fields>Resolution__c</fields>
<fields>Sort_Order__c</fields> <relatedList>Appraiser_Case_Deficiency__c.Appraiser_Case__c</relatedList>
<relatedList>Appraiser_Deficiencies__r</relatedList>
</relatedLists>
<relatedLists>
<fields>SUBJECT</fields>
<fields>STATUS</fields>
<fields>DUE_DATE</fields>
<relatedList>OpenActivities</relatedList>
</relatedLists> </relatedLists>
<showEmailCheckbox>false</showEmailCheckbox> <showEmailCheckbox>false</showEmailCheckbox>
<showHighlightsPanel>true</showHighlightsPanel> <showHighlightsPanel>true</showHighlightsPanel>

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<Layout xmlns="http://soap.sforce.com/2006/04/metadata">
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>Account Details</label>
<layoutColumns>
<layoutItems>
<behavior>Required</behavior>
<field>MasterLabel</field>
</layoutItems>
<layoutItems>
<behavior>Required</behavior>
<field>DeveloperName</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Account_Code__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Account_Display_Name__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Active__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Environment_Code__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>NamespacePrefix</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>IsProtected</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>CLM_Account_Id__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Default_Destination_Document_Name_Prefix__c</field>
</layoutItems>
</layoutColumns>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>CLM API Configuration</label>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>CLM_Api_Named_Credential__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>CLM_Download_Named_Credential__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Template_Root_Folder_Href__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Destination_Root_Folder_Href__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Default_Template_Document_Href__c</field>
</layoutItems>
</layoutColumns>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>eSignature API Configuration</label>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>ESignature_Auth_Named_Credential__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>ESignature_Rest_Named_Credential__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>ESignature_Account_Id__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns/>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<showEmailCheckbox>false</showEmailCheckbox>
<showHighlightsPanel>false</showHighlightsPanel>
<showInteractionLogPanel>false</showInteractionLogPanel>
<showRunAssignmentRulesCheckbox>false</showRunAssignmentRulesCheckbox>
<showSubmitAndAttachButton>false</showSubmitAndAttachButton>
</Layout>

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<Layout xmlns="http://soap.sforce.com/2006/04/metadata">
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>Letter Definition</label>
<layoutColumns>
<layoutItems>
<behavior>Required</behavior>
<field>MasterLabel</field>
</layoutItems>
<layoutItems>
<behavior>Required</behavior>
<field>DeveloperName</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Account_Code__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Letter_Code__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Letter_Display_Name__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Description__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Active__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Is_Default__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Sort_Order__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>NamespacePrefix</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>IsProtected</field>
</layoutItems>
</layoutColumns>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<layoutSections>
<customLabel>false</customLabel>
<detailHeading>true</detailHeading>
<editHeading>true</editHeading>
<label>CLM Defaults</label>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Template_Root_Folder_Href__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Destination_Root_Folder_Href__c</field>
</layoutItems>
</layoutColumns>
<layoutColumns>
<layoutItems>
<behavior>Edit</behavior>
<field>Default_Template_Document_Href__c</field>
</layoutItems>
<layoutItems>
<behavior>Edit</behavior>
<field>Default_Destination_Document_Name_Prefix__c</field>
</layoutItems>
</layoutColumns>
<style>TwoColumnsTopToBottom</style>
</layoutSections>
<showEmailCheckbox>false</showEmailCheckbox>
<showHighlightsPanel>false</showHighlightsPanel>
<showInteractionLogPanel>false</showInteractionLogPanel>
<showRunAssignmentRulesCheckbox>false</showRunAssignmentRulesCheckbox>
<showSubmitAndAttachButton>false</showSubmitAndAttachButton>
</Layout>

View File

@ -0,0 +1,80 @@
.panel {
display: grid;
gap: 1rem;
padding: 1rem;
}
.section {
border: 1px solid #d8dde6;
border-radius: 0.5rem;
padding: 1rem;
display: grid;
gap: 0.75rem;
}
.section-title {
font-size: 0.95rem;
font-weight: 700;
margin: 0;
}
.button-row {
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
}
.hint {
color: #3e3e3c;
font-size: 0.85rem;
margin: 0;
}
.result {
border-radius: 0.5rem;
padding: 0.75rem 1rem;
}
.result-success {
background: #e8f5e9;
color: #1b5e20;
}
.result-error {
background: #fdecea;
color: #8a1f11;
}
.result-info {
background: #eef4ff;
color: #16325c;
}
.deficiency-list {
display: grid;
gap: 0.75rem;
}
.deficiency-item {
border-top: 1px solid #d8dde6;
padding-top: 0.75rem;
}
.json-block {
margin-top: 0.75rem;
border-top: 1px solid rgba(0, 0, 0, 0.1);
padding-top: 0.75rem;
}
.json-title {
font-weight: 700;
margin: 0 0 0.5rem;
}
.json-block pre {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
font-size: 0.8rem;
line-height: 1.4;
}

View File

@ -0,0 +1,200 @@
<template>
<lightning-card title="CLM Doc Gen Workbench" icon-name="standard:document_reference">
<div class="panel">
<lightning-combobox
label="CLM Account"
value={accountCode}
options={accountOptions}
onchange={handleAccountChange}
></lightning-combobox>
<lightning-combobox
label="Letter Type"
value={letterCode}
options={letterOptions}
onchange={handleLetterChange}
></lightning-combobox>
<template if:true={selectedAccountEnvironment}>
<p class="hint">Environment: {selectedAccountEnvironment}</p>
</template>
<template if:true={selectedLetterDescription}>
<p class="hint">{selectedLetterDescription}</p>
</template>
<div class="button-row">
<lightning-button
label="Reset To Defaults"
onclick={resetSelectionsToDefaults}
disabled={isBusy}
></lightning-button>
</div>
<template if:true={caseContext}>
<div class="section">
<h3 class="section-title">Case Summary</h3>
<p class="hint">Case: {caseContext.caseNumber}</p>
<template if:true={caseContext.propertyAddress}>
<p class="hint">Property: {caseContext.propertyAddress}</p>
</template>
<template if:true={hasDeficiencies}>
<div class="deficiency-list">
<template for:each={caseContext.deficiencies} for:item="deficiency">
<div key={deficiency.recordId} class="deficiency-item">
<p><strong>#{deficiency.deficiencyNumber}</strong> {deficiency.description}</p>
<p class="hint">{deficiency.resolution}</p>
</div>
</template>
</div>
</template>
</div>
</template>
<div class="section">
<h3 class="section-title">Template Browser</h3>
<lightning-input
label="Template Folder Href"
value={templateFolderHref}
onchange={handleTemplateFolderHrefChange}
></lightning-input>
<div class="button-row">
<lightning-button
label="Load Templates"
onclick={loadTemplateFolder}
disabled={isBusy}
></lightning-button>
<lightning-button
label="Open Selected Template Folder"
onclick={openSelectedTemplateFolder}
disabled={disableTemplateFolderOpen}
></lightning-button>
<lightning-button
label="Up One Level"
onclick={openTemplateParentFolder}
disabled={disableTemplateFolderUp}
></lightning-button>
</div>
<template if:true={templateFolderName}>
<p class="hint">Current folder: {templateFolderName}</p>
</template>
<lightning-combobox
label="Template Subfolders"
value={selectedTemplateSubfolderHref}
options={templateSubfolderOptions}
onchange={handleTemplateSubfolderChange}
></lightning-combobox>
<lightning-combobox
label="Template Documents"
value={templateDocHref}
options={templateDocumentOptions}
onchange={handleTemplateDocHrefChange}
></lightning-combobox>
<lightning-input
label="Template Document Href"
value={templateDocHref}
onchange={handleTemplateDocHrefChange}
></lightning-input>
<template if:true={templateDocHref}>
<p class="hint">Selected template: {selectedTemplateSummary}</p>
</template>
</div>
<div class="section">
<h3 class="section-title">Destination Browser</h3>
<lightning-input
label="Destination Folder Href"
value={destinationFolderHref}
onchange={handleDestinationFolderHrefChange}
></lightning-input>
<div class="button-row">
<lightning-button
label="Load Destination Folder"
onclick={loadDestinationFolder}
disabled={isBusy}
></lightning-button>
<lightning-button
label="Open Selected Destination Folder"
onclick={openSelectedDestinationFolder}
disabled={disableDestinationFolderOpen}
></lightning-button>
<lightning-button
label="Up One Level"
onclick={openDestinationParentFolder}
disabled={disableDestinationFolderUp}
></lightning-button>
</div>
<template if:true={destinationFolderName}>
<p class="hint">Current folder: {destinationFolderName}</p>
</template>
<lightning-combobox
label="Destination Folder Documents"
value={destinationDocName}
options={destinationDocumentOptions}
onchange={handleDestinationDocumentSelection}
></lightning-combobox>
<lightning-combobox
label="Destination Subfolders"
value={selectedDestinationSubfolderHref}
options={destinationSubfolderOptions}
onchange={handleDestinationSubfolderChange}
></lightning-combobox>
<lightning-input
label="Destination Filename"
value={destinationDocName}
onchange={handleDestinationNameChange}
></lightning-input>
<lightning-input
label="Selected Destination Folder Href"
value={destinationFolderHref}
onchange={handleDestinationFolderHrefChange}
></lightning-input>
</div>
<div class="button-row">
<lightning-button
variant="brand"
label="Generate Document"
onclick={generateDocument}
disabled={disableGenerate}
></lightning-button>
<lightning-button
label="Check Task Status"
onclick={checkTaskStatus}
disabled={disableStatusCheck}
></lightning-button>
<lightning-button
label="Attach Generated Document"
onclick={attachGeneratedDocument}
disabled={disableAttachGeneratedDocument}
></lightning-button>
<template if:true={showCloseButton}>
<lightning-button
label="Close"
onclick={closeAction}
></lightning-button>
</template>
</div>
<template if:true={resultMessage}>
<div class={resultClass}>
<p>{resultMessage}</p>
<template if:true={taskStatus}>
<p>Status: {taskStatus}</p>
</template>
<template if:true={taskId}>
<p>Task ID: {taskId}</p>
</template>
<template if:true={generatedDocumentId}>
<p>Generated Document ID: {generatedDocumentId}</p>
</template>
<template if:true={hasAttachedSalesforceFile}>
<p><lightning-formatted-url value={attachedSalesforceFileUrl} label="Open attached Salesforce file"></lightning-formatted-url></p>
</template>
<template if:true={hasTaskDetails}>
<div class="json-block">
<p class="json-title">Task Details</p>
<pre>{taskDetailsJson}</pre>
</div>
</template>
</div>
</template>
</div>
</lightning-card>
</template>

View File

@ -0,0 +1,503 @@
import { LightningElement, api, wire } from 'lwc';
import { getRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { CloseActionScreenEvent } from 'lightning/actions';
import getCaseContext from '@salesforce/apex/CLMAdminService.getCaseContext';
import attachGeneratedDocumentToCase from '@salesforce/apex/CLMAdminService.attachGeneratedDocumentToCase';
import generateDocument from '@salesforce/apex/CLMAdminService.generateDocument';
import getAccountSettings from '@salesforce/apex/CLMAdminService.getAccountSettings';
import getLetterSettings from '@salesforce/apex/CLMAdminService.getLetterSettings';
import listAccountSettings from '@salesforce/apex/CLMAdminService.listAccountSettings';
import listLetterSettings from '@salesforce/apex/CLMAdminService.listLetterSettings';
import getFolderContents from '@salesforce/apex/CLMAdminService.getFolderContents';
import getTaskStatus from '@salesforce/apex/CLMAdminService.getTaskStatus';
const CASE_FIELDS = ['Appraiser_Case__c.Name'];
export default class ClmDocGenWorkbench extends LightningElement {
@api recordId;
@api objectApiName;
accountCode = '';
destinationDocName = '';
templateFolderHref = '';
templateDocHref = '';
destinationFolderHref = '';
templateFolderName = '';
destinationFolderName = '';
templateParentFolderHref = '';
destinationParentFolderHref = '';
templateSubfolderOptions = [];
templateDocumentOptions = [];
destinationSubfolderOptions = [];
destinationDocumentOptions = [];
selectedTemplateSubfolderHref = '';
selectedDestinationSubfolderHref = '';
resultMessage = '';
resultVariant = 'info';
taskId = '';
taskStatus = '';
taskDetailsJson = '';
attachedFileUrl = '';
attachedFileTitle = '';
isBusy = false;
hasLoadedDefaults = false;
caseNumber = '';
caseContext;
accountOptions = [];
selectedAccountSettings;
letterCode = '';
letterOptions = [];
selectedLetterSettings;
@wire(getRecord, { recordId: '$recordId', fields: CASE_FIELDS })
wiredCase({ data }) {
if (data) {
this.caseNumber = data.fields.Name.value;
}
if (data && !this.destinationDocName) {
this.destinationDocName = this.buildDefaultDocumentName('Review');
}
if (data && !this.hasLoadedDefaults) {
this.initializeDefaults();
}
if (data && !this.caseContext) {
this.loadCaseContext();
}
}
get disableGenerate() {
return this.isBusy || !this.recordId || !this.accountCode || !this.templateDocHref || !this.destinationFolderHref || !this.destinationDocName;
}
get disableStatusCheck() {
return this.isBusy || !this.taskId;
}
get disableTemplateFolderOpen() {
return this.isBusy || !this.selectedTemplateSubfolderHref;
}
get disableTemplateFolderUp() {
return this.isBusy || !this.templateParentFolderHref;
}
get disableDestinationFolderOpen() {
return this.isBusy || !this.selectedDestinationSubfolderHref;
}
get disableDestinationFolderUp() {
return this.isBusy || !this.destinationParentFolderHref;
}
get resultClass() {
return `result result-${this.resultVariant}`;
}
get hasDeficiencies() {
return this.caseContext && this.caseContext.deficiencies && this.caseContext.deficiencies.length > 0;
}
get selectedTemplateSummary() {
const selected = this.templateDocumentOptions.find((item) => item.value === this.templateDocHref);
return selected ? selected.label : this.templateDocHref;
}
get lastTaskUrl() {
return this.caseContext ? this.caseContext.lastDocGenTaskUrl : null;
}
get generatedDocumentUrl() {
return this.caseContext ? this.caseContext.generatedDocumentUrl : null;
}
get generatedDocumentId() {
return this.caseContext ? this.caseContext.generatedDocumentId : null;
}
get attachedSalesforceFileUrl() {
return this.attachedFileUrl || (this.caseContext ? this.caseContext.attachedFileUrl : null);
}
get hasAttachedSalesforceFile() {
return Boolean(this.attachedSalesforceFileUrl);
}
get disableAttachGeneratedDocument() {
return this.isBusy || !this.generatedDocumentId;
}
get hasTaskDetails() {
return Boolean(this.taskDetailsJson);
}
get showCloseButton() {
return true;
}
get selectedAccountEnvironment() {
return this.selectedAccountSettings ? this.selectedAccountSettings.environment : '';
}
get selectedLetterDescription() {
return this.selectedLetterSettings ? this.selectedLetterSettings.description : '';
}
async handleAccountChange(event) {
this.accountCode = event.detail.value;
await this.initializeDefaults(true);
}
async handleLetterChange(event) {
this.letterCode = event.detail.value;
await this.initializeDefaults(true);
}
handleDestinationNameChange(event) {
this.destinationDocName = event.target.value;
}
handleTemplateFolderHrefChange(event) {
this.templateFolderHref = event.target.value;
}
handleTemplateSubfolderChange(event) {
this.selectedTemplateSubfolderHref = event.detail.value;
}
handleTemplateDocHrefChange(event) {
this.templateDocHref = event.detail.value || event.target.value;
}
handleDestinationFolderHrefChange(event) {
this.destinationFolderHref = event.target.value;
}
handleDestinationSubfolderChange(event) {
this.selectedDestinationSubfolderHref = event.detail.value;
}
handleDestinationDocumentSelection(event) {
this.destinationDocName = event.detail.value;
}
async loadTemplateFolder() {
await this.loadFolder('template', this.templateFolderHref);
}
async openSelectedTemplateFolder() {
this.templateFolderHref = this.selectedTemplateSubfolderHref;
await this.loadTemplateFolder();
}
async openTemplateParentFolder() {
this.templateFolderHref = this.templateParentFolderHref;
await this.loadTemplateFolder();
}
async loadDestinationFolder() {
await this.loadFolder('destination', this.destinationFolderHref);
}
async openSelectedDestinationFolder() {
this.destinationFolderHref = this.selectedDestinationSubfolderHref;
await this.loadDestinationFolder();
}
async openDestinationParentFolder() {
this.destinationFolderHref = this.destinationParentFolderHref;
await this.loadDestinationFolder();
}
async initializeDefaults(forceReload = false) {
if (this.hasLoadedDefaults && !forceReload) {
return;
}
this.isBusy = true;
this.clearResult();
try {
await this.loadAccountOptions();
const settings = await getAccountSettings({ accountCode: this.accountCode });
await this.loadLetterOptions(forceReload);
const letterSettings = await getLetterSettings({ accountCode: this.accountCode, letterCode: this.letterCode });
await this.applySettings(settings, letterSettings, forceReload);
this.hasLoadedDefaults = true;
} catch (error) {
this.handleError(error, 'Unable to load CLM account defaults');
} finally {
this.isBusy = false;
}
}
async applySettings(settings, letterSettings, forceReload) {
this.selectedAccountSettings = settings;
this.selectedLetterSettings = letterSettings;
const prefix = letterSettings && letterSettings.defaultDocumentNamePrefix
? letterSettings.defaultDocumentNamePrefix
: settings && settings.defaultDocumentNamePrefix
? settings.defaultDocumentNamePrefix
: 'Review';
if (forceReload || !this.destinationDocName) {
this.destinationDocName = this.buildDefaultDocumentName(prefix);
}
if (settings || letterSettings) {
if (letterSettings && letterSettings.templateRootFolderHref) {
this.templateFolderHref = letterSettings.templateRootFolderHref;
} else if (settings && settings.templateRootFolderHref) {
this.templateFolderHref = settings.templateRootFolderHref;
}
if ((forceReload || !this.templateDocHref) && letterSettings && letterSettings.defaultTemplateDocumentHref) {
this.templateDocHref = letterSettings.defaultTemplateDocumentHref;
} else if ((forceReload || !this.templateDocHref) && settings && settings.defaultTemplateDocumentHref) {
this.templateDocHref = settings.defaultTemplateDocumentHref;
}
if (letterSettings && letterSettings.destinationRootFolderHref) {
this.destinationFolderHref = letterSettings.destinationRootFolderHref;
} else if (settings && settings.destinationRootFolderHref) {
this.destinationFolderHref = settings.destinationRootFolderHref;
}
}
if (this.templateFolderHref) {
await this.loadFolder('template', this.templateFolderHref, true);
}
if (this.destinationFolderHref) {
await this.loadFolder('destination', this.destinationFolderHref, true);
}
}
async loadAccountOptions() {
const accounts = await listAccountSettings();
this.accountOptions = (accounts || []).map((account) => ({
label: account.accountDisplayName,
value: account.accountCode
}));
if (!this.accountCode) {
if (this.caseContext && this.caseContext.lastClmAccountCode) {
this.accountCode = this.caseContext.lastClmAccountCode;
} else if (this.accountOptions.length > 0) {
this.accountCode = this.accountOptions[0].value;
}
}
}
async loadLetterOptions(forceReload) {
const letters = await listLetterSettings({ accountCode: this.accountCode });
this.letterOptions = (letters || []).map((letter) => ({
label: letter.letterDisplayName,
value: letter.letterCode
}));
const hasExistingSelection = this.letterOptions.some((letter) => letter.value === this.letterCode);
if (!hasExistingSelection || forceReload || !this.letterCode) {
const defaultLetter = (letters || []).find((letter) => letter.isDefault);
this.letterCode = defaultLetter
? defaultLetter.letterCode
: this.letterOptions.length > 0
? this.letterOptions[0].value
: '';
}
}
buildDefaultDocumentName(prefix) {
const normalizedPrefix = prefix || 'Review';
if (this.caseNumber) {
return `${normalizedPrefix}_${this.caseNumber}.docx`;
}
return `${normalizedPrefix}.docx`;
}
resetSelectionsToDefaults() {
this.hasLoadedDefaults = false;
this.templateFolderName = '';
this.destinationFolderName = '';
this.templateParentFolderHref = '';
this.destinationParentFolderHref = '';
this.templateSubfolderOptions = [];
this.templateDocumentOptions = [];
this.destinationSubfolderOptions = [];
this.destinationDocumentOptions = [];
this.selectedTemplateSubfolderHref = '';
this.selectedDestinationSubfolderHref = '';
this.initializeDefaults(true);
}
async loadCaseContext() {
if (!this.recordId) {
return;
}
try {
this.caseContext = await getCaseContext({ appraiserCaseId: this.recordId });
if (this.caseContext && this.caseContext.caseNumber) {
this.caseNumber = this.caseContext.caseNumber;
}
if (this.caseContext && this.caseContext.lastDocGenTaskId) {
this.taskId = this.caseContext.lastDocGenTaskId;
}
if (this.caseContext && this.caseContext.lastClmAccountCode && this.accountCode !== this.caseContext.lastClmAccountCode) {
this.accountCode = this.caseContext.lastClmAccountCode;
if (this.hasLoadedDefaults) {
await this.initializeDefaults(true);
}
}
if (this.caseContext && this.caseContext.lastDocGenStatus && !this.taskStatus) {
this.taskStatus = this.caseContext.lastDocGenStatus;
}
if (this.caseContext && this.caseContext.attachedFileUrl && !this.attachedFileUrl) {
this.attachedFileUrl = this.caseContext.attachedFileUrl;
}
} catch (error) {
this.handleError(error, 'Unable to load case context');
}
}
async loadFolder(kind, folderHref, preserveResult = false) {
if (!folderHref) {
this.showToast('Missing folder href', 'Enter a folder href before loading.', 'warning');
return;
}
this.isBusy = true;
if (!preserveResult) {
this.clearResult();
}
try {
const contents = await getFolderContents({ folderHref, accountCode: this.accountCode });
const subfolders = (contents.folders || []).map((item) => ({ label: item.name, value: item.href }));
if (kind === 'template') {
this.templateFolderHref = contents.folder ? contents.folder.href : folderHref;
this.templateFolderName = contents.folder ? contents.folder.name : '';
this.templateParentFolderHref = contents.folder ? contents.folder.parentHref : '';
this.templateSubfolderOptions = subfolders;
this.templateDocumentOptions = (contents.documents || []).map((item) => ({ label: item.name, value: item.href }));
this.selectedTemplateSubfolderHref = '';
} else {
this.destinationFolderHref = contents.folder ? contents.folder.href : folderHref;
this.destinationFolderName = contents.folder ? contents.folder.name : '';
this.destinationParentFolderHref = contents.folder ? contents.folder.parentHref : '';
this.destinationSubfolderOptions = subfolders;
this.destinationDocumentOptions = (contents.documents || []).map((item) => ({ label: item.name, value: item.name }));
this.selectedDestinationSubfolderHref = '';
}
} catch (error) {
this.handleError(error, 'Unable to load folder contents');
} finally {
this.isBusy = false;
}
}
async generateDocument() {
this.isBusy = true;
this.clearResult();
try {
const response = await generateDocument({
appraiserCaseId: this.recordId,
templateDocHref: this.templateDocHref,
destinationFolderHref: this.destinationFolderHref,
destinationDocName: this.destinationDocName,
accountCode: this.accountCode
});
this.taskId = response.documentId;
this.taskStatus = response.taskStatus || '';
this.taskDetailsJson = this.formatJsonString(response.taskDetailsJson);
this.resultVariant = response.success ? 'success' : 'error';
this.resultMessage = response.message;
await this.loadCaseContext();
this.showToast(response.success ? 'Document submitted' : 'Submission failed', response.message, response.success ? 'success' : 'error');
} catch (error) {
this.handleError(error, 'Document generation failed');
} finally {
this.isBusy = false;
}
}
async checkTaskStatus() {
this.isBusy = true;
this.clearResult();
try {
const response = await getTaskStatus({ appraiserCaseId: this.recordId, taskId: this.taskId, accountCode: this.accountCode });
this.taskStatus = response.taskStatus || '';
this.taskDetailsJson = this.formatJsonString(response.taskDetailsJson);
this.resultVariant = response.success ? 'success' : 'error';
this.resultMessage = response.message;
await this.loadCaseContext();
this.showToast('Task status updated', response.message, response.success ? 'success' : 'error');
} catch (error) {
this.handleError(error, 'Unable to fetch task status');
} finally {
this.isBusy = false;
}
}
async attachGeneratedDocument() {
this.isBusy = true;
try {
const result = await attachGeneratedDocumentToCase({
appraiserCaseId: this.recordId,
accountCode: this.accountCode
});
this.resultVariant = result.success ? 'success' : 'error';
this.resultMessage = result.message;
this.attachedFileUrl = result.fileUrl || '';
this.attachedFileTitle = result.fileTitle || '';
await this.loadCaseContext();
this.showToast('Document attached', result.message, result.success ? 'success' : 'error');
} catch (error) {
this.handleError(error, 'Unable to attach generated document');
} finally {
this.isBusy = false;
}
}
closeAction() {
this.dispatchEvent(new CloseActionScreenEvent());
}
clearResult() {
this.resultMessage = '';
this.resultVariant = 'info';
this.taskDetailsJson = '';
}
handleError(error, title) {
const bodyMessage = error && error.body ? error.body.message : null;
const directMessage = error ? error.message : null;
const message = bodyMessage || directMessage || 'Unknown error';
this.resultVariant = 'error';
this.resultMessage = message;
this.showToast(title, message, 'error');
}
showToast(title, message, variant) {
this.dispatchEvent(new ShowToastEvent({ title, message, variant }));
}
formatJsonString(value) {
if (!value) {
return '';
}
try {
return JSON.stringify(JSON.parse(value), null, 2);
} catch (e) {
return value;
}
}
}

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<isExposed>true</isExposed>
<masterLabel>CLM Doc Gen Workbench</masterLabel>
<targets>
<target>lightning__RecordAction</target>
<target>lightning__RecordPage</target>
</targets>
<targetConfigs>
<targetConfig targets="lightning__RecordAction">
<actionType>ScreenAction</actionType>
<objects>
<object>Appraiser_Case__c</object>
</objects>
</targetConfig>
<targetConfig targets="lightning__RecordPage">
<objects>
<object>Appraiser_Case__c</object>
</objects>
</targetConfig>
</targetConfigs>
</LightningComponentBundle>

View File

@ -0,0 +1,65 @@
.panel {
display: grid;
gap: 1rem;
padding: 1rem;
}
.controls {
display: grid;
gap: 0.75rem;
}
.button-row {
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
}
.section {
border: 1px solid #d8dde6;
border-radius: 0.5rem;
padding: 1rem;
display: grid;
gap: 0.75rem;
}
.section-title {
font-size: 0.95rem;
font-weight: 700;
margin: 0;
}
.hint {
color: #3e3e3c;
font-size: 0.85rem;
margin: 0;
word-break: break-word;
}
.result {
border-radius: 0.5rem;
padding: 0.75rem 1rem;
}
.result-success {
background: #e8f5e9;
color: #1b5e20;
}
.result-error {
background: #fdecea;
color: #8a1f11;
}
.result-info {
background: #eef4ff;
color: #16325c;
}
.code-block {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
font-size: 0.8rem;
line-height: 1.4;
}

View File

@ -0,0 +1,67 @@
<template>
<lightning-card title="CLM Request Preview" icon-name="standard:snippet">
<div class="panel">
<div class="controls">
<lightning-combobox
label="CLM Account"
value={accountCode}
options={accountOptions}
onchange={handleAccountChange}
disabled={isBusy}
></lightning-combobox>
<lightning-combobox
label="Letter Type"
value={letterCode}
options={letterOptions}
onchange={handleLetterChange}
disabled={isBusy}
></lightning-combobox>
</div>
<div class="button-row">
<lightning-button
label="Refresh Preview"
onclick={refreshAll}
disabled={isBusy}
></lightning-button>
</div>
<template if:true={message}>
<div class={resultClass}>
<p>{message}</p>
</div>
</template>
<template if:true={hasPreview}>
<div class="section">
<h3 class="section-title">Effective Settings</h3>
<p class="hint">Account: {preview.accountDisplayName}</p>
<p class="hint">Letter: {preview.letterDisplayName}</p>
<p class="hint">Template Href: {preview.templateDocHref}</p>
<p class="hint">Destination Folder Href: {preview.destinationFolderHref}</p>
<p class="hint">Destination Filename: {preview.destinationDocName}</p>
</div>
<div class="section">
<h3 class="section-title">Payload JSON</h3>
<pre class="code-block">{preview.payloadJson}</pre>
</div>
<div class="section">
<h3 class="section-title">Data XML</h3>
<pre class="code-block">{preview.dataXml}</pre>
</div>
<div class="section">
<h3 class="section-title">CLM API Endpoint</h3>
<pre class="code-block">POST {preview.mergeTaskEndpointUrl}</pre>
</div>
<div class="section">
<h3 class="section-title">CLM Request Body</h3>
<pre class="code-block">{preview.requestBodyJson}</pre>
</div>
</template>
</div>
</lightning-card>
</template>

View File

@ -0,0 +1,137 @@
import { LightningElement, api } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import getDocGenPreview from '@salesforce/apex/CLMAdminService.getDocGenPreview';
import listAccountSettings from '@salesforce/apex/CLMAdminService.listAccountSettings';
import listLetterSettings from '@salesforce/apex/CLMAdminService.listLetterSettings';
export default class ClmRequestPreview extends LightningElement {
@api recordId;
@api objectApiName;
accountCode = '';
letterCode = '';
accountOptions = [];
letterOptions = [];
preview;
isBusy = false;
message = '';
messageVariant = 'info';
connectedCallback() {
this.initialize();
}
get hasPreview() {
return Boolean(this.preview);
}
get resultClass() {
return `result result-${this.messageVariant}`;
}
async initialize(forceReload = false) {
if (!this.recordId) {
return;
}
this.isBusy = true;
this.clearMessage();
try {
const accounts = await listAccountSettings();
this.accountOptions = (accounts || []).map((account) => ({
label: account.accountDisplayName,
value: account.accountCode
}));
if ((!this.accountCode || forceReload) && this.accountOptions.length > 0) {
this.accountCode = this.accountOptions[0].value;
}
await this.loadLetterOptions(forceReload);
await this.loadPreview();
} catch (error) {
this.handleError(error, 'Unable to initialize CLM preview');
} finally {
this.isBusy = false;
}
}
async loadLetterOptions(forceReload) {
const letters = await listLetterSettings({ accountCode: this.accountCode });
this.letterOptions = (letters || []).map((letter) => ({
label: letter.letterDisplayName,
value: letter.letterCode
}));
const hasExistingSelection = this.letterOptions.some((letter) => letter.value === this.letterCode);
if (!hasExistingSelection || forceReload || !this.letterCode) {
const defaultLetter = (letters || []).find((letter) => letter.isDefault);
this.letterCode = defaultLetter
? defaultLetter.letterCode
: this.letterOptions.length > 0
? this.letterOptions[0].value
: '';
}
}
async loadPreview() {
this.preview = await getDocGenPreview({
appraiserCaseId: this.recordId,
accountCode: this.accountCode,
letterCode: this.letterCode
});
this.showMessage('Preview loaded.', 'success');
}
async handleAccountChange(event) {
this.accountCode = event.detail.value;
await this.refreshAll(true);
}
async handleLetterChange(event) {
this.letterCode = event.detail.value;
await this.refreshAll(false);
}
async refreshAll(forceReloadLetters) {
this.isBusy = true;
this.clearMessage();
try {
if (forceReloadLetters) {
await this.loadLetterOptions(true);
}
await this.loadPreview();
} catch (error) {
this.handleError(error, 'Unable to refresh CLM preview');
} finally {
this.isBusy = false;
}
}
clearMessage() {
this.message = '';
this.messageVariant = 'info';
}
showMessage(message, variant) {
this.message = message;
this.messageVariant = variant;
}
handleError(error, title) {
const bodyMessage = error && error.body ? error.body.message : null;
const directMessage = error ? error.message : null;
const message = bodyMessage || directMessage || 'Unknown error';
this.showMessage(message, 'error');
this.dispatchEvent(
new ShowToastEvent({
title,
message,
variant: 'error'
})
);
}
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<isExposed>true</isExposed>
<masterLabel>CLM Request Preview</masterLabel>
<targets>
<target>lightning__RecordPage</target>
</targets>
<targetConfigs>
<targetConfig targets="lightning__RecordPage">
<objects>
<object>Appraiser_Case__c</object>
</objects>
</targetConfig>
</targetConfigs>
</LightningComponentBundle>

View File

@ -0,0 +1,64 @@
.panel {
display: grid;
gap: 1rem;
padding: 1rem;
}
.controls {
display: grid;
gap: 0.75rem;
}
.section {
border: 1px solid #d8dde6;
border-radius: 0.5rem;
padding: 1rem;
display: grid;
gap: 0.75rem;
}
.section-title {
font-size: 0.95rem;
font-weight: 700;
margin: 0;
}
.button-row {
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
}
.hint {
color: #3e3e3c;
font-size: 0.85rem;
margin: 0;
}
.result {
border-radius: 0.5rem;
padding: 0.75rem 1rem;
}
.result-success {
background: #e8f5e9;
color: #1b5e20;
}
.result-error {
background: #fdecea;
color: #8a1f11;
}
.result-info {
background: #eef4ff;
color: #16325c;
}
.json-block {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
font-size: 0.8rem;
line-height: 1.4;
}

View File

@ -0,0 +1,114 @@
<template>
<lightning-card title="Docusign eSignature Workbench" icon-name="standard:contract">
<div class="panel">
<div class="controls">
<lightning-combobox
label="CLM / eSignature Account"
value={accountCode}
options={accountOptions}
onchange={handleAccountChange}
disabled={isBusy}
></lightning-combobox>
<lightning-input
type="date"
label="Envelope From Date"
value={fromDate}
onchange={handleFromDateChange}
disabled={isBusy}
></lightning-input>
</div>
<div class="button-row">
<lightning-button
label="Refresh All"
onclick={refreshData}
disabled={isBusy}
></lightning-button>
<lightning-button
label="Refresh Envelopes"
onclick={refreshEnvelopes}
disabled={isBusy}
></lightning-button>
</div>
<template if:true={hasAccountConfig}>
<div class="section">
<h3 class="section-title">Account Summary</h3>
<p class="hint">Environment: {selectedEnvironment}</p>
<p class="hint">Configured eSignature Account Id: {selectedAccountId}</p>
</div>
</template>
<template if:true={message}>
<div class={resultClass}>
<p>{message}</p>
</div>
</template>
<div class="section">
<h3 class="section-title">Discovered Accounts</h3>
<template if:true={hasAccounts}>
<lightning-datatable
key-field="accountId"
data={accountSummaries}
columns={accountColumns}
hide-checkbox-column
></lightning-datatable>
</template>
<template if:false={hasAccounts}>
<p class="hint">No account discovery data loaded yet.</p>
</template>
</div>
<div class="section">
<h3 class="section-title">Templates</h3>
<template if:true={hasTemplates}>
<lightning-datatable
key-field="templateId"
data={templates}
columns={templateColumns}
hide-checkbox-column
></lightning-datatable>
</template>
<template if:false={hasTemplates}>
<p class="hint">No templates returned for this account.</p>
</template>
</div>
<div class="section">
<h3 class="section-title">Recent Envelopes</h3>
<template if:true={hasEnvelopes}>
<lightning-datatable
key-field="envelopeId"
data={envelopes}
columns={envelopeColumns}
hide-checkbox-column
></lightning-datatable>
</template>
<template if:false={hasEnvelopes}>
<p class="hint">No envelopes returned for this date range.</p>
</template>
</div>
<div class="section">
<h3 class="section-title">Login Information</h3>
<template if:true={hasLoginInfo}>
<pre class="json-block">{loginInfoJson}</pre>
</template>
<template if:false={hasLoginInfo}>
<p class="hint">No login information loaded yet.</p>
</template>
</div>
<div class="section">
<h3 class="section-title">OAuth User Info</h3>
<template if:true={hasUserInfo}>
<pre class="json-block">{userInfoJson}</pre>
</template>
<template if:false={hasUserInfo}>
<p class="hint">No user info loaded yet.</p>
</template>
</div>
</div>
</lightning-card>
</template>

View File

@ -0,0 +1,233 @@
import { LightningElement, api } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import getAccountConfig from '@salesforce/apex/DocusignESignatureService.getAccountConfig';
import getLoginInformation from '@salesforce/apex/DocusignESignatureService.getLoginInformation';
import getUserInfo from '@salesforce/apex/DocusignESignatureService.getUserInfo';
import listAccounts from '@salesforce/apex/DocusignESignatureService.listAccounts';
import listTemplates from '@salesforce/apex/DocusignESignatureService.listTemplates';
import listEnvelopes from '@salesforce/apex/DocusignESignatureService.listEnvelopes';
import listAccountSettings from '@salesforce/apex/CLMAdminService.listAccountSettings';
const TEMPLATE_COLUMNS = [
{ label: 'Template Name', fieldName: 'name', type: 'text' },
{ label: 'Template Id', fieldName: 'templateId', type: 'text' },
{ label: 'Shared', fieldName: 'shared', type: 'text' },
{ label: 'Last Modified', fieldName: 'lastModified', type: 'text' }
];
const ENVELOPE_COLUMNS = [
{ label: 'Subject', fieldName: 'emailSubject', type: 'text' },
{ label: 'Envelope Id', fieldName: 'envelopeId', type: 'text' },
{ label: 'Status', fieldName: 'status', type: 'text' },
{ label: 'Created', fieldName: 'createdDateTime', type: 'text' },
{ label: 'Completed', fieldName: 'completedDateTime', type: 'text' }
];
const ACCOUNT_COLUMNS = [
{ label: 'Account Name', fieldName: 'accountName', type: 'text' },
{ label: 'Account Id', fieldName: 'accountId', type: 'text' },
{ label: 'Base Url', fieldName: 'baseUri', type: 'text' },
{ label: 'Default', fieldName: 'isDefault', type: 'boolean' }
];
export default class DocusignEsignWorkbench extends LightningElement {
@api recordId;
@api objectApiName;
accountOptions = [];
accountCode = '';
accountConfig;
accountSummaries = [];
templates = [];
envelopes = [];
loginInfoJson = '';
userInfoJson = '';
isBusy = false;
message = '';
messageVariant = 'info';
fromDate = this.defaultFromDate();
templateColumns = TEMPLATE_COLUMNS;
envelopeColumns = ENVELOPE_COLUMNS;
accountColumns = ACCOUNT_COLUMNS;
connectedCallback() {
this.initialize();
}
get hasAccountConfig() {
return Boolean(this.accountConfig);
}
get selectedEnvironment() {
return this.accountConfig ? this.accountConfig.environment : '';
}
get selectedAccountId() {
return this.accountConfig ? this.accountConfig.eSignatureAccountId : '';
}
get hasAccounts() {
return this.accountSummaries.length > 0;
}
get hasTemplates() {
return this.templates.length > 0;
}
get hasEnvelopes() {
return this.envelopes.length > 0;
}
get hasLoginInfo() {
return Boolean(this.loginInfoJson);
}
get hasUserInfo() {
return Boolean(this.userInfoJson);
}
get resultClass() {
return `result result-${this.messageVariant}`;
}
async initialize(forceReload = false) {
if (this.isBusy) {
return;
}
this.isBusy = true;
this.clearMessage();
try {
const accounts = await listAccountSettings();
this.accountOptions = (accounts || []).map((account) => ({
label: account.accountDisplayName,
value: account.accountCode
}));
if ((!this.accountCode || forceReload) && this.accountOptions.length > 0) {
this.accountCode = this.accountOptions[0].value;
}
if (!this.accountCode) {
this.showMessage('No active CLM/eSignature accounts are configured.', 'error');
return;
}
await this.loadAll();
} catch (error) {
this.handleError(error, 'Unable to load eSignature workbench');
} finally {
this.isBusy = false;
}
}
async loadAll() {
const [config, accounts, loginInfo, userInfo, templates, envelopes] = await Promise.all([
getAccountConfig({ accountCode: this.accountCode }),
listAccounts({ accountCode: this.accountCode }),
getLoginInformation({ accountCode: this.accountCode }),
getUserInfo({ accountCode: this.accountCode }),
listTemplates({ accountCode: this.accountCode }),
listEnvelopes({ accountCode: this.accountCode, fromDate: this.fromDate })
]);
this.accountConfig = config;
this.accountSummaries = accounts || [];
this.loginInfoJson = this.prettyJson(loginInfo ? loginInfo.responseBody : null);
this.userInfoJson = this.prettyJson(userInfo ? userInfo.responseBody : null);
this.templates = templates || [];
this.envelopes = envelopes || [];
this.showMessage('eSignature data loaded successfully.', 'success');
}
async handleAccountChange(event) {
this.accountCode = event.detail.value;
await this.refreshData();
}
handleFromDateChange(event) {
this.fromDate = event.target.value;
}
async refreshData() {
if (!this.accountCode || this.isBusy) {
return;
}
this.isBusy = true;
this.clearMessage();
try {
await this.loadAll();
} catch (error) {
this.handleError(error, 'Unable to refresh eSignature data');
} finally {
this.isBusy = false;
}
}
async refreshEnvelopes() {
if (!this.accountCode || this.isBusy) {
return;
}
this.isBusy = true;
this.clearMessage();
try {
this.envelopes = await listEnvelopes({ accountCode: this.accountCode, fromDate: this.fromDate });
this.showMessage('Envelope list refreshed.', 'success');
} catch (error) {
this.handleError(error, 'Unable to refresh envelopes');
} finally {
this.isBusy = false;
}
}
defaultFromDate() {
const current = new Date();
current.setDate(current.getDate() - 30);
return current.toISOString().slice(0, 10);
}
prettyJson(raw) {
if (!raw) {
return '';
}
try {
return JSON.stringify(JSON.parse(raw), null, 2);
} catch (error) {
return raw;
}
}
clearMessage() {
this.message = '';
this.messageVariant = 'info';
}
showMessage(message, variant) {
this.message = message;
this.messageVariant = variant;
}
handleError(error, fallbackMessage) {
const message = error && error.body && error.body.message
? error.body.message
: error && error.message
? error.message
: fallbackMessage;
this.showMessage(message, 'error');
this.dispatchEvent(
new ShowToastEvent({
title: 'eSignature Workbench',
message,
variant: 'error'
})
);
}
}

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<isExposed>true</isExposed>
<masterLabel>Docusign eSignature Workbench</masterLabel>
<targets>
<target>lightning__RecordPage</target>
<target>lightning__AppPage</target>
<target>lightning__HomePage</target>
</targets>
<targetConfigs>
<targetConfig targets="lightning__RecordPage">
<objects>
<object>Appraiser_Case__c</object>
</objects>
</targetConfig>
</targetConfigs>
</LightningComponentBundle>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<NamedCredential xmlns="http://soap.sforce.com/2006/04/metadata">
<allowMergeFieldsInBody>false</allowMergeFieldsInBody>
<allowMergeFieldsInHeader>false</allowMergeFieldsInHeader>
<calloutStatus>Enabled</calloutStatus>
<generateAuthorizationHeader>true</generateAuthorizationHeader>
<label>CLMs1Download</label>
<namedCredentialParameters>
<parameterName>Url</parameterName>
<parameterType>Url</parameterType>
<parameterValue>https://api.s1.us.clm.demo.docusign.net/content</parameterValue>
</namedCredentialParameters>
<namedCredentialParameters>
<externalCredential>DocusignJWT</externalCredential>
<parameterName>ExternalCredential</parameterName>
<parameterType>Authentication</parameterType>
</namedCredentialParameters>
<namedCredentialType>SecuredEndpoint</namedCredentialType>
</NamedCredential>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<NamedCredential xmlns="http://soap.sforce.com/2006/04/metadata">
<allowMergeFieldsInBody>false</allowMergeFieldsInBody>
<allowMergeFieldsInHeader>false</allowMergeFieldsInHeader>
<calloutStatus>Enabled</calloutStatus>
<generateAuthorizationHeader>true</generateAuthorizationHeader>
<label>CLMs1NamedCreds</label>
<namedCredentialParameters>
<parameterName>Url</parameterName>
<parameterType>Url</parameterType>
<parameterValue>https://api.s1.us.clm.demo.docusign.net</parameterValue>
</namedCredentialParameters>
<namedCredentialParameters>
<externalCredential>DocusignJWT</externalCredential>
<parameterName>ExternalCredential</parameterName>
<parameterType>Authentication</parameterType>
</namedCredentialParameters>
<namedCredentialParameters>
<certificate>DocusignJWT</certificate>
<parameterName>ClientCertificate</parameterName>
<parameterType>ClientCertificate</parameterType>
</namedCredentialParameters>
<namedCredentialType>SecuredEndpoint</namedCredentialType>
</NamedCredential>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<NamedCredential xmlns="http://soap.sforce.com/2006/04/metadata">
<allowMergeFieldsInBody>false</allowMergeFieldsInBody>
<allowMergeFieldsInHeader>false</allowMergeFieldsInHeader>
<calloutStatus>Enabled</calloutStatus>
<generateAuthorizationHeader>true</generateAuthorizationHeader>
<label>Esignature_Demo_NamedCreds</label>
<namedCredentialParameters>
<parameterName>Url</parameterName>
<parameterType>Url</parameterType>
<parameterValue>https://demo.docusign.net/restapi</parameterValue>
</namedCredentialParameters>
<namedCredentialParameters>
<externalCredential>DocusignJWT</externalCredential>
<parameterName>ExternalCredential</parameterName>
<parameterType>Authentication</parameterType>
</namedCredentialParameters>
<namedCredentialType>SecuredEndpoint</namedCredentialType>
</NamedCredential>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Reference__c</fullName>
<externalId>false</externalId>
<label>Reference</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<ValidationRule xmlns="http://soap.sforce.com/2006/04/metadata">
<active>true</active>
<description>Prevents empty or incomplete deficiency rows from being saved.</description>
<fullName>Required_Deficiency_Data</fullName>
<errorConditionFormula>OR(
ISBLANK(TEXT(Deficiency_Number__c)),
ISBLANK(Description__c),
ISBLANK(Resolution__c)
)</errorConditionFormula>
<errorDisplayField>Deficiency_Number__c</errorDisplayField>
<errorMessage>Deficiency Number, Description, and Resolution are required.</errorMessage>
</ValidationRule>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_City__c</fullName>
<externalId>false</externalId>
<label>Appraiser City</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_Country__c</fullName>
<externalId>false</externalId>
<label>Appraiser Country</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_Email__c</fullName>
<externalId>false</externalId>
<label>Appraiser Email</label>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Email</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_Last_Name__c</fullName>
<externalId>false</externalId>
<label>Appraiser Last Name</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_Name__c</fullName>
<externalId>false</externalId>
<label>Appraiser Name</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_Postal_Code__c</fullName>
<externalId>false</externalId>
<label>Appraiser Postal Code</label>
<length>40</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_Salutation__c</fullName>
<externalId>false</externalId>
<label>Appraiser Salutation</label>
<length>10</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_State_Province__c</fullName>
<externalId>false</externalId>
<label>Appraiser State/Province</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Appraiser_Street__c</fullName>
<externalId>false</externalId>
<label>Appraiser Street</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Attached_File_Content_Document_Id__c</fullName>
<externalId>false</externalId>
<label>Attached File Content Document Id</label>
<length>18</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Attached_File_Url__c</fullName>
<externalId>false</externalId>
<label>Attached File Url</label>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Url</type>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>FHA_Case_Number__c</fullName>
<externalId>false</externalId>
<label>FHA Case Number</label>
<length>40</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Generated_Document_Id__c</fullName>
<externalId>false</externalId>
<label>Generated Document Id</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Generated_Document_Url__c</fullName>
<externalId>false</externalId>
<label>Generated Document Url</label>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Url</type>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_CLM_Account_Code__c</fullName>
<externalId>false</externalId>
<label>Last CLM Account Code</label>
<length>80</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_Destination_Folder_Href__c</fullName>
<externalId>false</externalId>
<label>Last Destination Folder Href</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_DocGen_Completed_At__c</fullName>
<externalId>false</externalId>
<label>Last DocGen Completed At</label>
<required>false</required>
<trackHistory>false</trackHistory>
<type>DateTime</type>
</CustomField>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_DocGen_Message__c</fullName>
<externalId>false</externalId>
<label>Last DocGen Message</label>
<length>32768</length>
<required>false</required>
<type>LongTextArea</type>
<visibleLines>3</visibleLines>
</CustomField>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_DocGen_Requested_At__c</fullName>
<externalId>false</externalId>
<label>Last DocGen Requested At</label>
<required>false</required>
<trackHistory>false</trackHistory>
<type>DateTime</type>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_DocGen_Status__c</fullName>
<externalId>false</externalId>
<label>Last DocGen Status</label>
<length>100</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_DocGen_Task_Id__c</fullName>
<externalId>false</externalId>
<label>Last DocGen Task Id</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_DocGen_Task_Url__c</fullName>
<externalId>false</externalId>
<label>Last DocGen Task Url</label>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Url</type>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Last_Template_Document_Href__c</fullName>
<externalId>false</externalId>
<label>Last Template Document Href</label>
<length>255</length>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Letter_Sent_Date__c</fullName>
<externalId>false</externalId>
<label>Letter Sent Date</label>
<required>false</required>
<trackHistory>false</trackHistory>
<type>Date</type>
</CustomField>

View File

@ -1,12 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ListView xmlns="http://soap.sforce.com/2006/04/metadata"> <ListView xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>All</fullName> <fullName>All</fullName>
<columns>Name</columns>
<columns>Appraiser_Field_Review_Date__c</columns> <columns>Appraiser_Field_Review_Date__c</columns>
<columns>Property_Street__c</columns> <columns>Property_Street__c</columns>
<columns>Property_City__c</columns> <columns>Property_City__c</columns>
<columns>Property_State_Province__c</columns> <columns>Property_State_Province__c</columns>
<columns>LastModifiedDate</columns>
<filterScope>Everything</filterScope> <filterScope>Everything</filterScope>
<label>All</label> <label>All</label>
</ListView> </ListView>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
<label>CLM Account Setting</label>
<pluralLabel>CLM Account Settings</pluralLabel>
<visibility>Public</visibility>
</CustomObject>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Account_Code__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Account Code</label>
<length>80</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Account_Display_Name__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Account Display Name</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Active__c</fullName>
<defaultValue>true</defaultValue>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Active</label>
<type>Checkbox</type>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>CLM_Account_Id__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>CLM Account Id</label>
<length>80</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>CLM_Api_Named_Credential__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>CLM Api Named Credential</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>CLM_Download_Named_Credential__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>CLM Download Named Credential</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Default_Destination_Document_Name_Prefix__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Default Destination Document Name Prefix</label>
<length>80</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Default_Template_Document_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Default Template Document Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Destination_Root_Folder_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Destination Root Folder Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>ESignature_Account_Id__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>ESignature Account Id</label>
<length>80</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>ESignature_Auth_Named_Credential__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>eSignature Auth Named Credential</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>ESignature_Rest_Named_Credential__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>ESignature Rest Named Credential</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Environment_Code__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Environment Code</label>
<length>20</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Template_Root_Folder_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Template Root Folder Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
<description>Default CLM roots and template settings by environment for the Appraiser Review proof of concept.</description>
<enableActivities>false</enableActivities>
<label>CLM Environment Setting</label>
<pluralLabel>CLM Environment Settings</pluralLabel>
<visibility>Public</visibility>
</CustomObject>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Default_Destination_Document_Name_Prefix__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Default Destination Document Name Prefix</label>
<length>80</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Default_Template_Document_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Default Template Document Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Destination_Root_Folder_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Destination Root Folder Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Environment_Code__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Environment Code</label>
<length>20</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Template_Root_Folder_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Template Root Folder Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
<label>CLM Letter Definition</label>
<pluralLabel>CLM Letter Definitions</pluralLabel>
<visibility>Public</visibility>
</CustomObject>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Account_Code__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Account Code</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Active__c</fullName>
<defaultValue>true</defaultValue>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Active</label>
<type>Checkbox</type>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Default_Destination_Document_Name_Prefix__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Default Destination Document Name Prefix</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Default_Template_Document_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Default Template Document Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Description__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Description</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Destination_Root_Folder_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Destination Root Folder Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Is_Default__c</fullName>
<defaultValue>false</defaultValue>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Is Default</label>
<type>Checkbox</type>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Letter_Code__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Letter Code</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Letter_Display_Name__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Letter Display Name</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Sort_Order__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Sort Order</label>
<precision>6</precision>
<required>false</required>
<scale>0</scale>
<type>Number</type>
</CustomField>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Template_Root_Folder_Href__c</fullName>
<externalId>false</externalId>
<fieldManageability>DeveloperControlled</fieldManageability>
<label>Template Root Folder Href</label>
<length>255</length>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</CustomField>

View File

@ -1,6 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata"> <PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
<description>Access to Appraiser Case records and deficiency rows for CLM generation.</description> <description>Access to Appraiser Case records and deficiency rows for CLM generation.</description>
<classAccesses>
<apexClass>AppraiserCasePayloadBuilder</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>CLMAdminService</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>CLMDocGenCallout</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>DocusignESignatureService</apexClass>
<enabled>true</enabled>
</classAccesses>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Field_Review_Date__c</field> <field>Appraiser_Case__c.Appraiser_Field_Review_Date__c</field>
@ -8,7 +24,147 @@
</fieldPermissions> </fieldPermissions>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>true</editable>
<field>Appraiser_Case__c.Property_Address__c</field> <field>Appraiser_Case__c.Appraiser_Name__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Salutation__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Last_Name__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Email__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Street__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_City__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_State_Province__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Postal_Code__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Country__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Letter_Sent_Date__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.FHA_Case_Number__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Property_Street__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Property_City__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Property_State_Province__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Property_Postal_Code__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Property_Country__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Status__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Message__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_CLM_Account_Code__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Task_Id__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Task_Url__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Generated_Document_Url__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Generated_Document_Id__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Attached_File_Content_Document_Id__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Attached_File_Url__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Requested_At__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Completed_At__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_Template_Document_Href__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_Destination_Folder_Href__c</field>
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<fieldPermissions> <fieldPermissions>
@ -26,6 +182,11 @@
<field>Appraiser_Case_Deficiency__c.Resolution__c</field> <field>Appraiser_Case_Deficiency__c.Resolution__c</field>
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case_Deficiency__c.Reference__c</field>
<readable>true</readable>
</fieldPermissions>
<externalCredentialPrincipalAccesses> <externalCredentialPrincipalAccesses>
<enabled>true</enabled> <enabled>true</enabled>
<externalCredentialPrincipal>DocusignJWT-DefaultGroup</externalCredentialPrincipal> <externalCredentialPrincipal>DocusignJWT-DefaultGroup</externalCredentialPrincipal>
@ -50,4 +211,12 @@
<object>Appraiser_Case_Deficiency__c</object> <object>Appraiser_Case_Deficiency__c</object>
<viewAllRecords>false</viewAllRecords> <viewAllRecords>false</viewAllRecords>
</objectPermissions> </objectPermissions>
</PermissionSet> <tabSettings>
<tab>Appraiser_Case__c</tab>
<visibility>Visible</visibility>
</tabSettings>
<tabSettings>
<tab>Appraiser_Case_Deficiency__c</tab>
<visibility>Visible</visibility>
</tabSettings>
</PermissionSet>

View File

@ -1,11 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata"> <PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
<description>Access to Appraiser Case and Appraiser Deficiency objects for setup and early testing.</description> <description>Access to Appraiser Case and Appraiser Case Deficiency objects for setup and CLM testing.</description>
<classAccesses>
<apexClass>AppraiserCasePayloadBuilder</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>CLMAdminService</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>CLMDocGenCallout</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>DocusignESignatureService</apexClass>
<enabled>true</enabled>
</classAccesses>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Field_Review_Date__c</field> <field>Appraiser_Case__c.Appraiser_Field_Review_Date__c</field>
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Name__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Salutation__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Last_Name__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Email__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Street__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_City__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_State_Province__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Postal_Code__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Appraiser_Country__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.Letter_Sent_Date__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>true</editable>
<field>Appraiser_Case__c.FHA_Case_Number__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>true</editable>
<field>Appraiser_Case__c.Property_Street__c</field> <field>Appraiser_Case__c.Property_Street__c</field>
@ -32,28 +103,88 @@
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>false</editable>
<field>Appraiser_Deficiency__c.Appraiser_Case__c</field> <field>Appraiser_Case__c.Last_DocGen_Status__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Message__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_CLM_Account_Code__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Task_Id__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Task_Url__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Generated_Document_Url__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Generated_Document_Id__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Attached_File_Content_Document_Id__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Attached_File_Url__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Requested_At__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_DocGen_Completed_At__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_Template_Document_Href__c</field>
<readable>true</readable>
</fieldPermissions>
<fieldPermissions>
<editable>false</editable>
<field>Appraiser_Case__c.Last_Destination_Folder_Href__c</field>
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>true</editable>
<field>Appraiser_Deficiency__c.Deficiency_Number__c</field> <field>Appraiser_Case_Deficiency__c.Deficiency_Number__c</field>
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>true</editable>
<field>Appraiser_Deficiency__c.Description__c</field> <field>Appraiser_Case_Deficiency__c.Description__c</field>
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>true</editable>
<field>Appraiser_Deficiency__c.Resolution__c</field> <field>Appraiser_Case_Deficiency__c.Resolution__c</field>
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<fieldPermissions> <fieldPermissions>
<editable>true</editable> <editable>true</editable>
<field>Appraiser_Deficiency__c.Sort_Order__c</field> <field>Appraiser_Case_Deficiency__c.Reference__c</field>
<readable>true</readable> <readable>true</readable>
</fieldPermissions> </fieldPermissions>
<hasActivationRequired>false</hasActivationRequired> <hasActivationRequired>false</hasActivationRequired>
@ -73,7 +204,7 @@
<allowEdit>true</allowEdit> <allowEdit>true</allowEdit>
<allowRead>true</allowRead> <allowRead>true</allowRead>
<modifyAllRecords>true</modifyAllRecords> <modifyAllRecords>true</modifyAllRecords>
<object>Appraiser_Deficiency__c</object> <object>Appraiser_Case_Deficiency__c</object>
<viewAllRecords>true</viewAllRecords> <viewAllRecords>true</viewAllRecords>
</objectPermissions> </objectPermissions>
<tabSettings> <tabSettings>
@ -81,7 +212,7 @@
<visibility>Visible</visibility> <visibility>Visible</visibility>
</tabSettings> </tabSettings>
<tabSettings> <tabSettings>
<tab>Appraiser_Deficiency__c</tab> <tab>Appraiser_Case_Deficiency__c</tab>
<visibility>Visible</visibility> <visibility>Visible</visibility>
</tabSettings> </tabSettings>
</PermissionSet> </PermissionSet>

Some files were not shown because too many files have changed in this diff Show More