Objective:
After reading this article, you will have a better understanding of how configurations and customizations in Salesforce can impact the Youreka Mobile app.
Before you get started:
These articles might be helpful before you read this one:
Youreka's mobile applications download and save data. In other words, they conduct CRUD activities (Create, Read, Update, and Delete) via the Salesforce and Apex REST APIs. It is possible for a Youreka customer's Salesforce instance to be configured and/or customized in such a fashion that it prevents Youreka's mobile application from performing these CRUD activities successfully.
Examples of configurations and customizations that may result in errors:
- Access Controls: user settings, session settings, profile, permission sets, role, sharing settings, Youreka mobile profile, or apex sharing rules
- Validation Rules
- Validation in Database Triggers
- Synchronous Database Triggers (especially those tied to Content Versions)
- Simultaneous CPU consumption via long running processes (ex. flows, triggers, process builder, workflow)
- Simultaneous record access via contending processes
As many of our customers tend to use our mobile applications in an offline statem in the event one of Youreka's mobile applications experiences an error, the mobile application will attempt to handle the encounter as elegantly as possible, prioritizing data preservation and integrity. It will present these errors through an alert modal or tied to a specific form when applicable. Common error handling scenarios are outlined below.
- Failed access - This happens when a Salesforce instance has been configured or customized to prevent a user from having access to a desired record or field via a user setting, session setting, profile, permission set, role, sharing setting, Youreka mobile profile or apex sharing rule.
- Failed validation - This happens when a Salesforce instance has been configured or customized to prevent certain records from being saved. Youreka will save as much data as possible with the exception of the data that failed validation. Youreka mobile will retain the data that failed validation so that a subsequent save may be attempted when prompted by the end user to pass validation after the failure condition has been remediated.
- Server (Salesforce) contention - This tends to happen when a Salesforce instance has been configured or customized in a fashion that extends synchronous CRUD activity to exceed Salesforce governor limits, or when a design that causes more than one process to attempt to simultaneously access a single record. These can result in API responses containing various server-side errors which Youreka's mobile applications are sometimes unable to process. Depending on the timing and nature of the error, this has the potential to result in perceived or real data loss and/or data integrity issues.
When a customer’s Salesforce instance contains configuration and/or customizations that interact with Youreka’s components and dependencies, thorough testing should be performed to ensure stability of the combined solution. It is imperative that a customer test their implementation of the combined solution in one or many Salesforce sandbox environments and again in their Salesforce production environment after the combined solution has passed Sandbox testing and has been deployed to Production.
Recommended types of testing:
- Functional Testing - Verifies each function of the software operates in conformance with the requirement specification.
- Non-functional Testing - Assesses aspects not covered by functional testing, like performance, usability, reliability.
- Integration Testing - Tests the integration or interfaces between components, or among different systems.
- System Testing - Involves testing the complete and integrated software system to evaluate the system's compliance with its specified requirements.
- Unit Testing - Tests individual components or pieces of code for functionality.
- Acceptance Testing - Conducted to determine if the system satisfies the business requirements.
- Load Testing - Checks software behavior under normal and peak load conditions.
- Performance Testing - Tests to determine the speed, responsiveness, and stability of a system.
- Stress Testing - Involves testing beyond normal operational capacity, often to a breaking point, to observe results.
- Regression Testing - Ensures that newly developed code does not affect existing functionality.
Comments
0 comments
Article is closed for comments.