salesforce-appraiser-review.../docs/DEPLOYMENT_AND_TESTING.md

3.0 KiB

Deployment & Testing — Appraiser Review Letter

Implemented Salesforce Metadata

  • Parent object: Appraiser_Case__c (label: Appraiser Case)
  • Name field (auto number): Appraiser Case Number (AC-{00000})
  • Fields on Appraiser Case:
    • Appraiser_Field_Review_Date__c (Date)
    • Property_Address__c (Text 255)
  • Child object for repeatable deficiencies: Appraiser_Case_Deficiency__c
  • Fields on Appraiser Case Deficiency:
    • Appraiser_Case__c (Master-Detail to Appraiser_Case__c)
    • Deficiency_Number__c (Number)
    • Description__c (Long Text Area)
    • Resolution__c (Long Text Area)
  • Permission set: Appraiser_Case_Access
  • Apex Classes:
    • AppraiserCasePayloadBuilder: Transforms Salesforce data to CLM merge payload
    • AppraiserCasePayloadBuilderTest: Unit tests for payload builder
    • CLMDocGenCallout: HTTP integration with DocuSign CLM API

Deployment Steps

  1. Deploy custom objects & fields
  2. Deploy Apex classes (included in manifest)
  3. Configure Named Credentials for CLM API access
  4. Configure Remote Site Settings for CLM instance
  5. Map merge fields to object schema
  6. Configure CLM template and connect API
  7. Test with sample Appraiser Case records

Suggested CLI Deploy Commands

  1. Authenticate to your org:
    • sf org login web --alias appraiser-dev
  2. Validate source deploy:
    • sf project deploy validate --target-org appraiser-dev --manifest manifest/package.xml
  3. Deploy metadata:
    • sf project deploy start --target-org appraiser-dev --manifest manifest/package.xml

Testing Workflow

  • Use sample JSON payloads (see requirements.md)
  • Validate conditional logic—test both existence and missing data
  • Test table rendering for arrays (DeficiencyList, ReviewerComments)
  • Document any failed merges or formatting gaps

CLM Data Mapping Starter

  • AppraiserCaseNumber -> Appraiser_Case__c.Name
  • AppraiserFieldReviewDate -> Appraiser_Case__c.Appraiser_Field_Review_Date__c
  • PropertyAddress -> Appraiser_Case__c.Property_Address__c
  • DeficiencyList[] -> Appraiser_Case__c.Deficiencies__r
    • deficiencyNumber -> Deficiency_Number__c
    • description -> Description__c
    • resolution -> Resolution__c

Smoke Test Execution

After deployment, sample test data was created:

  • Appraiser Case: AC-00001 (a0wKW000007OIiCYAW)
  • 3 related deficiency records verified

Test Payload Query (run in Apex Execute or Query Editor)

SELECT Id, Name, Appraiser_Field_Review_Date__c, Property_Address__c, 
  (SELECT Id, Deficiency_Number__c, Description__c, Resolution__c 
   FROM Deficiencies__r ORDER BY Deficiency_Number__c) 
FROM Appraiser_Case__c 
WHERE Id='a0wKW000007OIiCYAW'

Test Payload Generation (Apex)

String caseId = 'a0wKW000007OIiCYAW';
Map<String, Object> payload = AppraiserCasePayloadBuilder.buildPayload(caseId);
System.debug(JSON.serializePretty(payload));

CLM Doc Gen Integration

See CLM_INTEGRATION.md for complete setup and integration patterns.


Last updated: 2026-02-26 13:26 PM Work in progress: Add test cases and troubleshooting checklist.