Archive

Author Archive

How to get started with Salesforce development

November 14, 2014 Leave a comment

Setting up Developer Environment

  1. Register developer account at https://developer.salesforce.com/
  2. You can login your org from http://www.salesforce.com/
  3. Install Salesforce IDE for eclipse https://developer.salesforce.com/page/Force.com_IDE_Installation

Understand the different Salesforce Environment

Developer ,Sandbox, Production

Deployment

 Deployment by Changeset Best practice

CI and team development with Salesforce

How To Use Git, GitHub and the Force.com IDE with Open Source Labs Apps

Using Force.com with Subversion for Team Development

http://www.soliantconsulting.com/blog/2013/03/salesforcecomforcecom-team-development

http://salesforce.stackexchange.com/questions/18881/how-to-use-git-on-multi-dev-environment

Deployment is a one-way transaction

There is no easy way to roll back changes deployed in Production. As documented here . It is another reason we should look at the next support level. A change set is deployed in a single transaction. If the deployment is unable to complete for any reason, the entire transaction is rolled back. After a deployment completes successfully, all changes are committed to your organization and the deployment can’t be rolled back.

Salesforce known issues

https://success.salesforce.com/issues_index

Salesforce Books

  1. Salesforce workbook
  2. Cheat Sheets
  3. Documentation

Videos Training

  1. Search for Dreamforce from YouTube , Dreamforce is the salesforce conference , like the Teched in Microsoft.
  2. Pluralsight offer some good developer training
  3. cbtnuggets offers Power user training
  4. Beginner Tutorials
  5. http://www.forceprepare.com/

Blogs

Blog

http://blog.jeffdouglas.com/

Documentations from Salesforce

Considerations for Relationships

Salesforce Limit

Understanding Encrypted Custom Fields

Encrypted Field Limits

How to change xmx in SoapUI

November 4, 2014 Leave a comment

Recently, I have to run some integration test using SoapUI. Due to the test file size , I got the error (the memory setting is too low). To fix this , I have to change the xmx from the default 2048m to 4096m.

Update soapui xmx settings:

Make sure you back-up the file before you change the default settings and open file as administrator.

1. Update testrunner.bat for running in command line

testrunner.bat is the Soap UI batch file. It is located in C:\Program Files\SmartBear\SoapUI-Pro-5.0.0\bin (Soap UI Pro 5.0.0 default installation location) Update the Xmx setting in this file before starting the test suite (open file as Administrator).

2. Update SoapUI-Pro-5.1.2.vmoptions for running using UI

SoapUI-Pro-5.1.2.vmoptions is the Soap UI configuration file. It is located in C:\Program Files\SmartBear\SoapUI-Pro-5.0.0\bin (Soap UI Pro 5.0.0 default installation location) Update the Xmx setting in this file before starting the test suite (open file as Administrator).

References:

Java Doc

-Xmxn
Specify the maximum size, in bytes, of the memory allocation pool. This value must a multiple of 1024 greater than 2MB. Append the letter k or K to indicate kilobytes, or m or M to indicate megabytes. The default value is 64MB. The upper limit for this value will be approximately 4000m on Solaris 7 and Solaris 8 SPARC platforms and 2000m on Solaris 2.6 and x86 platforms, minus overhead amounts. Examples:

-Xmx83886080

-Xmx81920k

-Xmx80m

So, in simple words, you are saying Java to use Maximum of 1024 MB from available memory.

Notice there is NO SPACE between -Xmx and 1024m

Categories: SharePoint Tags: , , ,

How to fix the issue Unrecognized attribute ‘targetFramework’.

October 2, 2014 Leave a comment

Issue:

Recently, I am having issues with deploying asp.net mvc 4 application to Windows Server 2008 R2.After add the necessary role and features and I setup an application in IIS. However , I received the following error message: Unrecognized attribute ‘targetFramework’.

Solution:

It turns out that this is because App pool is not configured to use .net 4.0, after changing from .net 2.0 to .net 4.0. It works like a charm.


Note if .net v4.0x does not show up under .NET Framework version dropdown, you can need to install .net or re-register .NET 4 with IIS, you can check my previous blogpost to learn how to do it.

Salesforce deployment best practice?

October 1, 2014 1 comment

I am very new to Salesforce and as you can see from my blog, I am .Net developer and more specifically a SharePoint developer. In salesforce , there is no clear strategy for release management and I am asking the wider Salesforce community to help me to see if the proposed release plan is OK.

The current deployment model we use are multiple Sandbox environments and changeset to deploy change from Dev >> Test>>Preprod>>Prod . Here are the challenges I understand so far in Salesforce deployment.

  1. You cannot rollback after a changeset is successfully deployed
  2. Creating changeset is very manual

To address the first issue (You cannot rollback after a changeset is successfully deployed):

  1. Backup the data by scheduling a weekly data export (my question would be , how we can use the data export to restore the data)
  2. Backup the apex code (trigger, visual force…), we can use eclipse to deploy these changes so that the apex code can be rolled back.
  3. Document all the schema changes(custom object, custom fields, custom labels, tabs …) , if we do need rolled back we can manually delete all those changes..

To address second issue (Creating changeset is very manual)

We are looking at using Salesforce IDE or Salesforce migration tool to deploy the changes from environment to environment.

Reference:

Deploy Force.com Applications to Production Faster,

Using the Force.com IDE to Deploy Apex

How to fix: Handler “PageHandlerFactory-Integrated” has a bad module “ManagedPipelineHandler” in its module list

July 21, 2014 Leave a comment

Issue:

Recently, I am having issues with deploying asp.net mvc 4 application to Windows Server 2008 R2.After add the necessary role and features and I setup an application in IIS. However , I received the following error message: PageHandlerFactory-Integrated” has a bad module “ManagedPipelineHandler” in its module list

 


Solution:

It turns out that this is because ASP.Net was not completely installed with IIS even though I checked that box in the “Add Feature” dialog.

 

To fix this, I simply ran the following command at the command prompt

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

If I had been on a 32 bit system, it would have looked like the following:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe –i

 

References:

http://stackoverflow.com/questions/6846544/how-to-fix-handler-pagehandlerfactory-integrated-has-a-bad-module-managedpip

Salesforce deployment guideline using Sandbox

July 10, 2014 Leave a comment
  1. Create Deployment connection
  2. Enable the inbound change set settings on the destination Environment you would like to deploy the solution to.
  3. Enable the outbound change set settings on the source Environment where you package your application.
  4. The best practice is to Package everything in the changeset and salesforce will only deploy the change into your destination environment. If you only package the change, you could miss some of the changes.
  5. You can clone the change set on the source destination however the initial packaging takes some time as you need to go through everything and select the components manually.
  6. After the change set is packaged, you need to upload the chagneset so that destination environment can see the change set in its incoming change set list.
  7. Click Validate the change set before deployment.

References:

Development Lifecycle Guide

Change Sets Best Practices

 

 

How to replace the SharePoint date calendar control with more user friendly jQuery calendar control

April 26, 2014 1 comment

When you use the SharePoint date and time type for date of birth field, you will notice that the calendar control is extremely non-user-friendly. You can only navigate month by month as shown below. To resolve the issue, you can customize the list form page using SharePoint designer and replace the OOB calendar control with popular jQuery control. The solution works for both SharePoint 2010,2013 and office365.

Here are the steps for how to achieve this.

1. Open SharePoint designer and create a New List Form called customNew and set as default form for the selected type.

2. Open style library in file explorer and copy jQuery and jQuery UI files into the style library in SharePoint site.

You can download the jQuery and jQuery UI from the web and the content of the contactPersonCustomNewForm.js is as below. I use the dd/mm/yy format as my locale in Regional Settings is English(New Zealand). You need to change this if you live in another country with different date format

$(document).ready(function() {
    	$("img#ctl00_m_g_540b9a50_52dc_4400_a58d_1db99555fddf_ff41_ctl00_ctl00_DateTimeField_DateTimeFieldDateDatePickerImage").parent().hide();
 		$("img#ctl00_m_g_540b9a50_52dc_4400_a58d_1db99555fddf_ff41_ctl00_ctl00_DateTimeField_DateTimeFieldDateDatePickerImage").hide();
	    $("input#ctl00_m_g_540b9a50_52dc_4400_a58d_1db99555fddf_ff41_ctl00_ctl00_DateTimeField_DateTimeFieldDate").datepicker({
		    changeMonth:true,
		    changeYear:true,
		    showOn: "button",
			buttonImage: "/_layouts/images/calendar.gif",
			buttonImageOnly: true,
			defaultDate:"01/01/1970",
			yearRange: "c-20:c+20",
			dateFormat: "dd/mm/yy"
	    });
});

In order to get the image and textbox selector above , you can open IE developer toolbar(click F12) and find the control ID as below:

3. Open SharePoint designer and edit the newly created New List Form customNew.aspx in advance mode. Then copy and paste the following links in the PlaceHolderAdditionalPageHead.

	<SharePoint:CssRegistration name="<%$SPUrl:~SiteCollection/Style Library/themes/ui-lightness/jquery-ui.css%>" runat="server"/>
	<SharePoint:ScriptLink language="javascript" name="~sitecollection/Style Library/jquery-1.10.2.js" Defer="false" runat="server"/>
	<SharePoint:ScriptLink language="javascript" name="~sitecollection/Style Library/jquery-ui-1.10.4.custom.min.js" Defer="false" runat="server"/>
	<SharePoint:ScriptLink language="javascript" name="~sitecollection/Style Library/contactPersonCustomNewForm.js" Defer="false" runat="server"/>

 

4. Now go to the list and click add, you will see the new calendar control as shown below

How to setup AD group to work with SharePoint group security

August 15, 2013 Leave a comment

Issue:

Recently, I am having issues with the permission setup at client side. The way we setup permission is we create AD Group and add the add AD Group to the proper SharePoint Group. If we need to grant permission to a user, we then add the user to the correct AD group. But end user reports that by adding a user to an AD group, this user does not have any access to the SharePoint site.

Solution:

Change the AD Group scope from Global to Universal fix the problem.

From


To


References:

AD Group Scopes from Paul Stork

http://social.technet.microsoft.com/forums/en-US/sharepointadminprevious/thread/79d2af40-3daa-4f61-86e5-5bb54086147f

This task is currently locked by a running workflow and cannot be edited. Limitation to both Nintex and SPD workflow

August 15, 2013 Leave a comment

Note, this post is from Nintex Forum here. These limitations apply to both SharePoint designer Workflow and Nintex Workflow as Nintex using the SharePoint workflow engine.

The common cause that I experience is that ‘parent’ workflow is generating more than one task at once. This is common as you can have multiple approvers for certain approval process. You could also have workflow running when the task is created, one of the common scenario is you would like to set a custom column value in your approval task. For me this is huge limitation, as Nintex lover I really hope Nintex could solve this problem with Microsoft going forward.

Introduction

“This task is currently locked by a running workflow and cannot be edited” is a common message that is seen when an error occurs while the SharePoint workflow engine is processing a task item associated with a workflow.

When a workflow processes a task normally, the following sequence of events is expected to occur:

1.       The process begins.

2.       The workflow places a ‘lock’ on the task so nothing else can change the values while the workflow is processing.

3.       The workflow processes the task.

4.       The lock is released when the task processing is finished.

When the message is encountered, it usually indicates that an error occurred between step 2 and 4. As a result, the lock is never released.

Therefore, the ‘task locked’ message is not an error itself, rather a symptom of another error – the ‘task locked’ message does not indicate what went wrong. In most cases, once this message is encountered, the workflow cannot be made to continue and must be terminated and started again.

The following is a guide that can help troubleshoot the cause of these messages.  Some initial observations to narrow down the potential causes are:

Is the error consistent or intermittent?

When the error is consistent, it will happen every time the workflow is run. When it is intermittent, it may happen regularly, but not every time.

Does the error occur the first time the user tries to respond to a task, or do they respond and notice the workflow does not continue, and when they respond again the error occurs?

If the message is present when the user first responds to the task, the issue would have occurred when the task was created. Otherwise, it would have occurred when the user attempted to respond to the task.

Causes

Modifying the task list

A cause of this error appearing consistently the first time a user tries to respond to a task is a modification to the default task list schema. For example, changing the ‘Assigned to’ field in a task list to be a multiple selection will cause the behaviour.

Deleting the workflow task then restoring it from the Recycle bin

If you start a workflow, delete the workflow task then restore it from the Recycle Bin in SharePoint, the workflow will fail with the ‘task locked’ error.  This is confirmed behaviour whether using a SharePoint Designer or a Nintex workflow.  You will need to terminate the workflow and start it again.

Parallel simultaneous responses

A cause of this error appearing inconsistently is multiple users responding to tasks in parallel at the same time. In this scenario, one task will complete correctly and the other will not process. When the user tries again, the ‘task locked’ message will display. Nintex included a workaround for this issue in build 11000. In build 11000 and later, one of the users will receive a message on the task form when they attempt to respond, stating that they need to try again in a few moments.

Additional processing on the task

A cause of this error appearing consistently and inconsistently is having an additional system running on the items in the task list. Some examples include: a workflow running on the task list, an event receiver running on the task list or another automated process querying and updating workflow tasks.

Note: This Microsoft help article (http://office.microsoft.com/en-us/sharepointdesigner/HA102376561033.aspx#5) explains creating a workflow that runs on the task list to update a field on the task. Our experience shows that this causes the ‘Task Locked’ issues when the ‘parent’ workflow is generating more than one task at once.

Isolated system error

If the error is a rare event, or a ‘one off’ event, then an isolated system error may have occurred.

For example, if there is a database connectivity issue while the workflow is processing the task response, the task will lock. In this case, the user will respond to a task but the workflow will not continue. When they respond again, the ‘task locked’ message will display. In this case, there will be an error in the SharePoint ULS Logs at the time that the user originally responded.

Temporary delay while workflow processes

If the workflow is taking a long time to process after a user submits a task, they may notice and try to respond to the task again. They will see the task locked error, but after a number of attempts (or after waiting some time) the task response page eventually indicates the task has been responded to. In this case, nothing actually went wrong, and the error message gives an accurate indication of what is happening – the workflow temporarily locked the task while it was processing. This scenario may occur in a very large workflow, or after the SharePoint application pool has just started.

Modifying the task via a web service with an invalid url

If the Nintex Workflow web service is used to respond to or delegate a task, the site context part of the url must be a valid alternative access mapping url. For example, if you access the web service via the IP address of the SharePoint server, and the IP address is not a valid AAM, the task can become locked.

The workflow has become stuck without any apparent errors

This behaviour can occur as a result of a bug in the SharePoint 2010 workflow engine.  If you do not have the August 2010 Cumulative Update (or later) for SharePoint, and your workflow uses delays, “Flexi-task”, State machine”, “Task Reminder” actions or variables, you could be affected. Check the SharePoint 2010 Updates site here: http://technet.microsoft.com/en-us/sharepoint/ff800847.  The October CU is recommended http://support.microsoft.com/kb/2553031.   The fix is described as “Consider the following scenario. You add a Delay activity to a workflow. Then, you set the duration for the Delay activity. You deploy the workflow in SharePoint Foundation 2010. In this scenario, the workflow is not resumed after the duration of the Delay activity”.

If you find this is occurring in your environment, install the October CU, terminate all the running workflows affected and run them afresh.

Investigative steps

The first step to isolate the issue is to create a new task list on the site and configure the workflow to use it.  Any customizations that were made to the original task list should not be made to the new task list. If the new task list eliminates the issue, then the cause can be attributed to the original task list or a change that was made to it.

To change the task list that the workflow uses:

In Workflow Designer select Settings -> Startup Options


Then configure the task list as required


If any of the scenarios above do not help, check the SharePoint logs for any messages with a category of ‘Workflow Infrastructure’.

Conclusion

The information in this article has been gathered from observations and investigations by Nintex. The sources of these issues are the underlying SharePoint workflow engine. This article will be updated if further causes are discovered.

From <http://connect.nintex.com/forums/thread/6503.aspx>

How to create Office365 SharePoint site using SharePoint2010 template

July 15, 2013 1 comment

Recently, I worked with a client that has office 365 upgraded to SharePoint 2013.But they still like to create the SharePoint site using the old SharePoint2010 template, if you like to know how , here are the steps:

1. Go to your Office 365 portal https://portal.microsoftonline.com/admin/default.aspx and then go to the SharePoint admin page.

2. Next, click settings page.

3. Change the Global experience Version Settings.

4. Finally, you will be able to create SharePoint site using 2010 template.