An Apex transaction represents a set of operations that are executed as a single unit. All DML operations in a transaction either complete successfully, or if an error occurs in one operation, the entire transaction is rolled back and no data is committed to the database. The boundary of a transaction can be a trigger, a class method, an anonymous block of code, a Visualforce page, or a custom Web service method.
Merge = delete + update
Upsert = insert + update
upsert(): Creates new records and updates existing records; uses a custom field to determine the presence of existing records. In most cases, we recommend that you use upsert() instead of create() to avoid creating unwanted duplicate records (idempotent).
API objects represent database tables that contain your organization's information.
The term “record” describes a particular occurrence of an object. A record is analogous to a row in a database table.
Cross-object formulas are formulas that span two or more objects by referencing merge fields from related records
sObjects refers to any object that can be stored in the Force.com platform database.
sObject is a generic abstract type that corresponds to any persisted object type. The generic sObject can be cast into a specific sObject type, such as an account or the Invoice_Statement__c custom object.
Before inserting a new sObject record, you must set all required fields for a successful insertion.
The fields of an sObject can be set either by passing them as arguments in the constructor or after creating the sObject type by using the dot notation.
implements keyword is used to indicate interface implementation
static keyword indicates a class variable (or method) accessible without an instance of the class
final keyword indicates a constant.
Salesforce licenses are designed for users who require full access to standard CRM and Force.com AppExchange apps. CRM apps are anything that requires access to Standard Objects like...
Salesforce Platform licenses are designed for users who only need access to custom apps, and NOT the standard CRM functionality. Salesforce Platform users DO have access to the "core" Salesforce Standard Objects and functionality, like...
- Custom Tabs
So, if a user only needs to access custom Force.com or AppExchange apps, it's OK to assign them a Salesforce Platform license. On the other hand, if a user needs access to any CRM functionality (eg Sales or Service Cloud), they must be assigned a Salesforce license.