Posts

apex object userRecordAccess not returning any row

userRecordAccess not returning any row Salesforce has launched new object ' userRecordAccess ' which provides the information that whether an user has access to a particular record. SELECT RecordId, HasEditAccess FROM UserRecordAccess WHERE userId = '0053232192...' AND RecordId = '001*****' However when I tried to use the same in my code, there were some issues. If you run the above query in the anonymous or developer console you get proper result. However the same query when embeded into the code with user id with some variable and record id from some variable. then the same query doesn't return any row. Although I found that the above problem resolves if same query is fired through dynamic query call. i.e. Database.execute( query ). Weird but it solve the purpose.

Too many batch retries in the presence of Apex triggers and partial failures.

Too many batch retries in the presence of Apex triggers and partial failures If you write and execute batch scripts then some time you might end up with this error, which may be difficult to understand. However proper explanation is given in the Salesforce documentation as below. Bulk DML Exception Handling Exceptions that arise from a bulk DML call (including any recursive DML operations in triggers that are fired as a direct result of the call) are handled differently depending on where the original call came from: When errors occur because of a bulk DML call that originates directly from the  Apex  DML statements, or if the  all_or_none  parameter of a database DML method was specified as true, the runtime engine follows the “all or nothing” rule: during a single operation, all records must be updated successfully or the entire operation rolls back to the point immediately preceding the DML statement. When errors occur because of a bulk DML call that ...

Salesforce trigger hell-1

Problem Many a time we see that the errors added by trigger's, are being shown to user in the below format, which are not user friendly and user's complain about that. Error: Invalid Data.  Review all error messages below to correct your data. Apex trigger validateLastname caused an unexpected exception, contact your administrator: validateLastname: execution of BeforeInsert caused by: System.DmlException: Insert failed. First exception on row 0; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, no child allowed: Trigger.validateLastname: line 6, column 1 Root cause Whenever error with the line number is shown to user, you can be sure that this is un-handled exception. And it comes basically when you have fired another DML inside any trigger, and that DML is failed.  Let's understand this by scenario. Scenario  Let's assume that User is trying to save a record of OBJ1 from User interface. and you have written a trigger on OBJ1, which on certain cond...

Inserting date fields by data loader

This post answers the following question What should be the date format while uploading by data loader Its always tough to upload the dates/date time through data loader due to the lack of proper documentation. Below table shows the exact format while uploading dates/datetimes through data loader. Also find the URL below for more details. Format Format  Syntax Example Date  only YYYY-MM-DD 1999-01-01 Date , time, and time zone offset YYYY-MM-DDThh:mm:ss+hh:mm YYYY-MM-DDThh:mm:ss-hh:mm YYYY-MM-DDThh:mm:ssZ 1999-01-01T23:01:01+01:00 1999-01-01T23:01:01-08:00 1999-01-01T23:01:01Z here's a link to the guide:  http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic=Content/sforce_api_calls_soql.htm

apex HTML pass through not working

Pass through attribute doesn't generate proper html HTML Pass through provided by salesforce in VF pages has been very useful when working with javascript libraries, However while working on the same I came across a situation where Pass through attribute doesn't get passed to generated html if the binding variable is 'Currency' type. Below is the example. Controller 1: public Opportunity Oppty {get;set;} VF page 1: <apex:outputField value = '{!Oppty.Amount}' html-passedValue='XYZ'></apex:outputField> Generated html 1: <span id="j_id0:j_id1:j_id14">$20</span> Hence you can see that the pass through attribute is not generated. However if you change the binding variable to any type other then Currency, pass through will start working. as shown below. VF page 1: <apex:outputField value = '{!Oppty.name}' html-passedValue='XYZ'></apex:outputField> ...

IsVisibleInSelfService on Task salesforce

I was working on assignment which required me to access Tasks and show on customer portal. I written the apex code and fired SOQL, but to my surprise none of Tasks were fetched. I thought its a permission issue from profile or sharing access issue. However at the end I found that there is a field on task object called  IsVisibleInSelfService  which derives the visibility of the tasks for customer portals. Even Apex code can't find the task if this boolean field is not set to true. Probably its trivial information but usefull when you are not aware of this :)