Pages

Friday, June 6, 2014

Salesforce: Obsolete Report

Some of us may have seen error message in Salesforce when running an existing report Obsolete Report. This report can no longer be edited or run. Your administrator has disabled all reports for the custom object, or its relationships have changed. This usually happen when there are changes in the object related to the report or visibility of the object for user.


Recently, we have user complain above error when the object is still in use. Here are few causes of that error taken from Salesforce article.
1. An object used in the relationship is not enabled for reporting
2. A look-up relationship used in the report was deleted or changed its type (changing from master-detail to look-up also makes a report obsolete)
3. An object in the report was deleted.
4. A profile does not have visibility to an object
5. The report is based on an object that belongs to a “managed package”  “In Development” status, therefore not all users will have access to it.

In our scenario, recently we purchased a managed package app, it is working fine and no issue. But, a user from higher management role complain he get this error. We follow above checkpoints:
1. Enable Reports is tick for that custom object, skip.
2. The report is on parent object, not child, skip.
3. Report is still there and working fine, skip.
4. We go to user profile and Read access for the user profile is there, skip
5. This object is a Manage Package object, but Deployment Status = Deployed, skip.

So none of above condition exist for the user. We even going further to check if the user have access to report folder, and we see user role for the report folder is Viewer, skip.

After discuss with the users, we get more info:
  1. A user set weekly schedule dashboard refresh and this effected user is in the recipient of Email Dashboard.
  2. User receive the email and dashboard is showed without issue within that email
  3. When user click the report in email he got above error Obsolete Report
Check with other users in the email recipients, no one have such issue, weird !

Finally, we found the issue - yay..... this is because the object is created from Managed installed package, and this user has no license to the package, so once we add license for that user and it works :)

Actually, it fall under point number 4 in conditions above, where user do not have visibility of the object, it just like we forget extra checkpoint for managed package object. ALL DONE!!

Reference: Why do some reports return an 'obsolete report' error message?


Sunday, June 1, 2014

Salesforce: Related List not Visible to a User

Related list in Salesforce is very useful and simple to use. Child objects from Lookup Relationship or Master-Detail Relationship will show in the Parent object page layout. But, too many related list also not good as it will create a long scroll down on the parent page. So, just use it wisely.

I have a user who do not able to see a related list of custom object, while her peers able. Here are few items to start look into:
  • Check user Profile, if she has read permission to that object (child object). If not, go to user detail and check Permission Set assigned to that user if has read permission to that object.
  • Check for any Record Type for the parent object, if yes, what is the record type for the particular parent record.
  • Check Page Layout Assignment in the parent object and which page is assigned to that parent record
  • Make sure in parent object Page Layout include child object as related list
If all checked and nothing wrong found, click Customize Page link in the parent object page layout when user login, make sure the child record is in Selected List. Sometimes user accidentally remove it and not remember. This is simple, but sometimes we just 'forget' as Salesforce is 'big'.


This page also accessible from User Name - My Settings - Display & Layout - Customize My Pages





Friday, May 30, 2014

Salesforce: Freeze User for Major Deployment

Last year I blog about how to mass disable users login to Salesforce for major deployment using dummy profile. In Winter '14, Salesforce introduce user Freeze feature, which allow admin to block user login to Salesforce, but nothing change at the background, such as running user in dashboard run.

In case if user has left company, but for some reason he still able to get email, be aware that even user has been freeze in Salesforce, users will continue to receive automated system emails such as workflow and approval email alerts, scheduled reports, Chatter emails, and other system notifications from Salesforce. Here is an idea in ideaexchange to stop it.

Background: salesforce admin plan for major deployment over the weekend. Since now we have freeze feature, it can be easier using this to mass update user to freeze more easily using data loader, see this blog.

Before we freeze users for deployment, all user must be communicate well. Otherwise this will happen.

1. When user try to login to Salesforce, they will see the error message "Your login attempt has failed. The username or password may be incorrect, or your location or login time may be restricted. Please contact the administrator at your company for help."



2. User read error message above and tend to click 'Forgot your password ? link'

3. Even user is frozen, Salesforce allow user to change password.

4. User will found email from Salesforce and click link provided in the email.

5. User answer the security question and click Continue.

6. But it will bring user to the same error login again.

7. At this stage, we do not sure which password will work. The easiest is to Reset User password when admin has unfreeze the user.

Summary: we can use freeze for stop user login to Salesforce. But, since we cannot modify the error message in login screen when user is frozen, all users have to communicate well prior action, otherwise if they will do above steps. It will be disaster for admin to handle this and have to manually reset those users password.


Reference:


Monday, May 26, 2014

Salesforce Last Activity Date



Many of us may not be aware that Salesforce has the Last Activity Date field. This field is not available in Page Layout by default, but is available in:
  • Report
  • List View
  • API (including Formula Field, Workflow, and Validation Rule) for 
    • Account
    • Contact
    • Opportunity
    • Lead
    • Custom Objects

It is important to note that the Last Activity Date is different from the Last Modified Date. Last Modified is the date and time stamp when the last update was made to an individual record, for example, changes to a phone number or an address); this also includes the user who made the change.

Last Activity shows when the last activity is related to a record, it represents one of the following:
  • The latest Due Date of the Completed Task on the related record
  • The latest Date of the Event on the related record
Remember, it is NOT the Created Date or Last Modified Date of the Event or Task.


How the Last Activity Date is Calculated?
Each activity record has the different who_id (Contact and Lead) and what_id (other objects) fields in the Task / Event object. However, the value for the Account field is calculated by introspecting the who and the what, with the what taking precedence.

For example: when a user logs a call to a Contact or Opportunity, the Last Activity Date in Contact or Opportunity will be updated, and it will also update the Last Activity Date in the Account too.


Notes:
  • Task/event from a child (for both lookup and master-detail relationship) will not roll up to the parent record, including the Last Activity Date.

Notes for the "account_id" field in Task:
  • If the What is an account, the account_id is that account.
  • If the What is an opportunity, the account_id is the account associated with that opportunity.
  • If the What is a contract, the account_id is the account associated with that contract.
  • If the What is a Custom object that is parented under an account, the account_id is the account associated with that custom object.

Reference: 



Salesforce Feed-Based Layout

In Spring ’14 release, Salesforce introduce Feed-Based layouts, page will split into 2 tab, where one for the record’s feed, and one for its details, including related lists.

Sample normal layout:

Sample feed-based layout:

You can mix normal layout with feed-based layout in the same object. You can check a layout whether is normal or feed based from Setup menu and go to object Page Layout, for example for Opportunity: Setup - Customize - Opportunities - Page Layouts. Then see last column Feed-Based Layout is ticked.

Question: how to modify current normal page layout to new feed-based layout?
Unfortunately Salesforce not allow to modify it, so you have to 'Clone' existing layout from Create New Page Layout, then select a layout in Existing Page Layout, and tick Feed-Based Layout. Once the new page layout clone from old layout, you need to modify Page Layout Assignment to newly created layout. The same, you also will not able to modify feed-based layout to normal layout.

In feed based layout, you will see a new link called Feed View in page setup menu where you can configure Components and Filter Options.



Reference:


Determine User Record Access in Salesforce

In previous blog, I discuss about on how to restrict sharing access in Salesforce? This blog to discuss on how to check if user able to access to a record in Salesforce.



On top on that, here additional items to note:
  • Profile in step 1 include Permission Set
  • Before step 3, a check if user have permissions to View All record for that object defined in Profile or Permission Set
  • Account owner will able to access any Contact and Opportunity owned by other user
  • Owner of parent record in Master-Detail able to access all child records
  • User in Account Team, Case Team and Opportunity Team able to access the record

Reference:

Page-level ad