Salesforce Category

Apex fflib_SObjectUnitOfWork SimpleDML UNABLE_TO_LOCK_ROW nested try catch

UNABLE_TO_LOCK_ROW issue is very common if you have multiple users updating the record at the same time .Or say a batch job is running and is updating a record and same record another trigger or code snippet (usually a future method) is updating. A way to solve this is to retry multiple times to see […]

Rate this:

Read More

Apex Caching Performance Impact

Apex Caching is great for saving some basic Id’s of a user like his Account, Contact Id’s after he logs in so you don’t have to query for them. Reduces the amount of queries and improves speed. Caching is good for saving large blobs that don’t change frequently. Generic Cache Service to put, retrieve and […]

Rate this:

Read More

Apex One Endpoint to Rule them all

Most systems need to do CRUD on some objects and also query some information. Why not have one endpoint to do it all?I have created a endpoint that can do all that using mapping between systems field and Salesforce fields. System field does not contain any underscores or Salesforce specific syntax like (__c). With that […]

Rate this:

Read More

Apex workaround for doing callout after DML

If you are trying to do a callout after a DML operation you would have seen this error message: You have uncommitted work pending. Please commit or rollback before calling out A way around doing callouts after a DML is to do the DML as its own internal callout. This is possible by creating a […]

Rate this:

Read More

Apex Get Enum from String

Get Enum from String Test Class

Rate this:

Read More

Apex Advanced Selector Queries

Sub Queries Pagination with Ordering Aggregate Query

Rate this:

Read More

Implementing Mocking for Apex Tests

Trying to mock a actual database query can be hard. Using the fflib_Mocks jar you can generator Selector Mocks: More info here: https://github.com/financialforcedev/fflib-apex-mocks 1. Create interface class that extends fflib_ISObjectSelector to mock the Selector  2. Create interfacemocks.properties file in root of your project 3. Run java -jar apex-mocks-generator-4.0.0.jar “{path}/src/classes” “{path}/interfacemocks.properties” “fflib_Mocks” “{path}/src/classes” “30.0” to generate mocking […]

Rate this:

Read More

Salesforce Chatter Attaching Files to SObject

There are different ways you can use salesforce to attach a file to an SObject using Chatter. Apex Code Chatter REST Api Some limitations using this is using Blob for version.VersionData = attachment.Body; will run into Apex String length exceeds maximum: 6000000. Chatter Rest API POST https://cs43.salesforce.com/services/data/v35.0/connect/communities/0DB63000000003jGAA/chatter/feed-elements/batch HEADER Authorization         Bearer {sessionToken} Content-Type […]

Rate this:

Read More

Apache Camel Salesforce Integration

1. Setup SalesforceLoginConfig 2. Setup SalesforceCamelEndpointConfig 3. Setup SalesforceCamelComponent 4. Setup SalesforceCamelRouteConfig 5. Run SalesforceCamelIntegrationTest 1. Setup SalesforceLoginConfig 2. Setup SalesforceCamelEndpointConfig 3. Setup SalesforceCamelComponent 4. Setup SalesforceCamelRouteConfig 5. Run SalesforceCamelIntegrationTest OUTPUT: >>>>>>> Salesforce Basics Info: {“objectDescribe”:{“name”:”Account”,”label”:”Account”,”updateable”:true,”keyPrefix”:”001″,”custom”:false,”urls”:{“sobject”:”/services/data/v33.0/sobjects/Account”,”describe”:”/services/data/v33.0/sobjects/Account/describe”,”rowTemplate”:”/services/data/v33.0/sobjects/Account/{ID}”,”approvalLayouts”:”/services/data/v33.0/sobjects/Account/describe/approvalLayouts”,”quickActions”:”/services/data/v33.0/sobjects/Account/quickActions”,”listviews”:”/services/data/v33.0/sobjects/Account/listviews”,”layouts”:”/services/data/v33.0/sobjects/Account/describe/layouts”,”compactLayouts”:”/services/data/v33.0/sobjects/Account/describe/compactLayouts”},”searchable”:true,”labelPlural”:”Accounts”,”layoutable”:true,”activateable”:false,”createable”:true,”deprecatedAndHidden”:false,”deletable”:true,”customSetting”:false,”feedEnabled”:true,”mergeable”:true,”queryable”:true,”replicateable”:true,”retrieveable”:true,”undeletable”:true,”triggerable”:true},”recentItems”:[{“attributes”:{“type”:”Account”,”url”:”/services/data/v33.0/sobjects/Account/001W000000JhUzlIAF”},”Name”:”Pope John XXIII Regional High School”,”Id”:”001W000000JhUzlIAF”},{“attributes”:{“type”:”Account”,”url”:”/services/data/v33.0/sobjects/Account/001W000000JhZFQIA3″},”Name”:”A PLAZA DRIVING SCHOOL”,”Id”:”001W000000JhZFQIA3″},{“attributes”:{“type”:”Account”,”url”:”/services/data/v33.0/sobjects/Account/001W000000JgxxXIAR”},”Name”:”Advanced Reproductive Care, Inc. (ARC)”,”Id”:”001W000000JgxxXIAR”},{“attributes”:{“type”:”Account”,”url”:”/services/data/v33.0/sobjects/Account/001W000000JrwqvIAB”},”Name”:”name”,”Id”:”001W000000JrwqvIAB”},{“attributes”:{“type”:”Account”,”url”:”/services/data/v33.0/sobjects/Account/001W000000JhXSnIAN”},”Name”:”Stella Niagara Education Park”,”Id”:”001W000000JhXSnIAN”},{“attributes”:{“type”:”Account”,”url”:”/services/data/v33.0/sobjects/Account/001W000000Jr1WOIAZ”},”Name”:”A J DIANA SONS INC”,”Id”:”001W000000Jr1WOIAZ”},{“attributes”:{“type”:”Account”,”url”:”/services/data/v33.0/sobjects/Account/001W000000Jr1TIIAZ”},”Name”:”A […]

Rate this:

Read More

Apex Trigger for Sales Rep Scoring

This trigger is used to track and score sales rep activities as they complete Account fields. Account Trigger Handler to Track specific field updates by sales rep and give points for based on which field was completed. Account Trigger Handler calls the SalesRepActivityScoring class to loop through all the accounts see which fields have been […]

Rate this:

Read More