Taking Cloud Apps to Mobile on a Budget

Cloud solutions like Salesforce.com, Netsuite, Microsoft Dynamics are doing a great job solving for the needs in different functional areas. Although they all started with non-mobile solutions, they have done a decent (not great) job extending their solutions on to the mobile devices.

Native mobile solutions by SaaS providers are somewhat meeting the needs of users from their respective functional areas. However, you are out of luck if you require access to the data and features from multiple cloud applications. You will be juggling between different native apps to get the complete picture that you looking for.
Continue reading

Posted in Middleware, Mobile Integrator, Salesforce.com. Tagged with , , , , .

Salesforce.com Knowledge Management Cheat Sheet

Salesforce.com knowledge management application lets customers and internal staff find information easily. Information can be found by keyword searching or by filtering through pre-defined categories under which information is organized. This blog highlights the key aspects of knowledge management application.

Article Types

Article Type are the various templates available to create an article. It provides the layout options for the articles.  By default Salesforce comes with two article types – a) Tabs b) Table of Content. In Tabs layout the information sections are displayed as tabs and in Table of Content layout the information sections are shown as links.

  • You can create customized article types using Visualforce.
  • You have to have atleast one article type defined
  • You can add custom fields to article types that be used to managing articles.
  • It is a best practice to create different templates for different types of knowledge articles. For example, product troubleshooting can be one type and Product Information can be another type.

Continue reading

Posted in Salesforce.com, Visualforce.

What makes good teams to fail?

Case Studies Project FailuresOver the years I have seen many good teams make a few common mistakes that led them to failures. In this post I have picked up 5 case studies where teams with good track record of success failed to meet their goals. These teams worked at companies of different size & culture. The project work included enterprise web application development, custom force.com application development and Salesforce.com integration with other cloud application, process change management and sales and marketing for a start-up product/services.

After seeing the teams repeating these common sense mistakes over and over again, I come to believe that common sense is not the common after all. Watch out for the early symptoms of failure and correct your course before it is too late.





Posted in Agile, Process Change Management, Salesforce.com, Visualforce. Tagged with , , , , .

Atlassian Development: Create an issue in Jira from your plugin

To create an issue in Jira, first you need to import the following classes in your java file

import com.atlassian.crowd.embedded.api.User;
import com.atlassian.jira.bc.issue.IssueService;
import com.atlassian.jira.bc.issue.IssueService.CreateValidationResult;
import com.atlassian.jira.bc.issue.IssueService.IssueResult;
import com.atlassian.jira.issue.IssueInputParameters;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.security.JiraAuthenticationContext;
import com.atlassian.jira.util.ErrorCollection;
import com.atlassian.jira.component.ComponentAccessor;

After importing these file in your java files, write the below code in the function where you want to create an issue

First create an object of IssueService class from the class ComponentAccessor

IssueService issueService = ComponentAccessor.getIssueService();

Create an object of IssueInputParameters, later these parameter will be validated

IssueInputParameters issueInputParameters = issueService.newIssueInputParameters();

Set the parameters to the issueInputParameters object, most important parameters are:

projectId-> Id of the project to which you want the issue to add

reporterId->Reporter of the issue like admin etc.

assigneeId->User to whom the issue is assigned

issueInputParameters.setProjectId(projectId).setIssueTypeId(“1”).setSummary(“issue summary”)
.setReporterId(reporterId).setAssigneeId(assigneeId).setDescription(“issue description”)

Now we need to fetch the current user, by the following lines, we are fetching the logged in user

JiraAuthenticationContext authenticationContext = ComponentAccessor.getJiraAuthenticationContext();
User user = authenticationContext.getLoggedInUser();

Validate the issueInputParameters and user

CreateValidationResult createValidationResult = issueService.validateCreate(user, issueInputParameters);

if createValidationResult return true, it means all is well so far then

MutableIssue issue=null;

IssueResult createResult = issueService.create(user, createValidationResult);

if (createResult.isValid()) {
issue = createResult.getIssue();
} else {
Collection<String> errorMessages = createResult.getErrorCollection().getErrorMessages();
for (String errorMessage : errorMessages) {
//wite the exception in logs

if createValidationResult return false, then fetch the exceptions and errors and write these to the logs

Collection<String> errorMessages = createValidationResult.getErrorCollection().getErrorMessages();
for (String errorMessage : errorMessages) {
//wite the exception in logs
Map<String, String> errors = createValidationResult.getErrorCollection().getErrors();
Set<String> errorKeys = errors.keySet();
for (String errorKey : errorKeys) {
//wite the error in logs



Posted in AGILE Tools, JIRA.

Atlassian Development : Sample code to get the list of projects from your JIRA instance..

In this blog post I will be sharing tips on how to populate a list of projects from your JIRA instance. The project list can be useful for features where you need to relate a particular issue to multiple projects or clone an issue under multiple projects.


Getting the list of projects from JIRA database is a fairly straight forward task. Follow these steps to get the list:


  1. First import the required classes in your java file where you want to fetch all the current JIRA projects. Here are the commands for the importing files
  • import com.atlassian.jira.project.Project;
  • import com.atlassian.jira.component.ComponentAccessor;


  1. Now in the file, where you need to get the list of all current projects, write the following code
    • List projects=ComponentAccessor.getProjectManager().getProjectObjects();

Here the object projects is an Array List of type com.atlassian.jira.project.Project. You can get all the information of the projects from this ArrayList. Simple enough ?





Posted in Agile, AGILE Tools, JIRA. Tagged with , .