Keywords

.NET (3) .rb (1) *.cod (1) 3110c (1) Algorithm (1) Amazon Cloud Drive (1) amkette (1) Android (1) Apex (6) apex:dynamic (1) API (1) API version (1) Application Development Contest (2) Artificial Intelligence (2) Atricore (1) b2g (1) Binary Search Tree (1) Blackberry Application Development (1) Blackberry Java Development Environment (1) Blender Game Engine (1) bluetooth (2) Boot2Gecko (1) bug fix (1) C (1) C++ (2) Cloud computing (1) Cloud Storage (1) Code Blocks (1) Code for a Cause (2) codejam (1) Coding (1) const_cast (1) Custom Help (1) Dancing With the Googlers (1) Data Structures (1) desktop environment (5) Doubly Linked List (1) Dropbox (1) dynamic visualforce component (1) dynamic_cast (1) Enterprise WSDL (1) Execution Context (1) fedora 14 (1) fedora 17 (5) Firefox OS (1) Flashing Nokia 3110c handset (1) Force.com (7) Gaia (1) Game Developement (1) GCC (2) GDG (2) Goank (1) Google (4) Google Developer Group (2) Google Drive (1) GTK+ (5) HACK2012 (2) Hall of Mirrors (1) help for this page (1) HTML5 (2) HTTP Web Server (1) IDE (1) Identity Provider (1) Intelligent Systems (1) Java (1) JDE (1) JOSSO (1) location based social network (1) me.social (1) MinGW (1) Natural Language Processing (1) Natural Language Toolkit (1) neckphone (1) NLKT (1) Nokia Pheonix (1) Notebook (1) Numeric XML Tags (1) OAuth2.0 (1) OLPC (7) OLPC-XO-1 (7) One Laptop per Child (5) Override custom help (1) Paas (1) Partner WSDL (1) Polymorphism (1) programming contest (1) PyGTK (4) Python (10) Recycled Numbers (1) reinterpret_cast (1) Research (1) REST (1) RM-237 (1) Robotics (1) Ruby (1) Saas (2) Salesforce.com (7) SDK (1) Service Provider (1) Single sign on (1) SOAP (3) Speaking in Tongues (1) SSO Agent (1) SSO Gateway (1) static_const (1) sugar (7) sugar activity (4) sugarlabs (7) SVG (2) Symbiotic AI (1) Tabbed container (1) TCP/IP (1) TCP/IP stack (1) Typecasting (1) typeid (1) ubuntu 13.10 (1) UDP (1) Upgrade Assembly (1) Visualforce (2) Web Server (1) Web Services (3) Web2.0 (1) wikipedia (1) wikipediaHI (1) WSDL (1) XML tags (1)

Saturday, August 20, 2011

Creating Custom Help for Salesforce.com's Force.com platform Cloud applications

This post describes how we can create our custom help for our salesforce apps

We can change the URL on "Help for this page" link with our URL by setting the value at:
Now when the user clicks on that link on any custom tab he will be redirected to our custom help URL:
And we can also make our help pages show help content based on context selected.i.e context sensitive help. We can see here that when user clicks "Help for this page" link few parameters are automatically appended by salesforce: (http://kartikunplugged.blogspot.com/?loc=help&target=co_overview.htm&section=CustomObjects ) so that our pages can parse those and can show the help content accordingly.

So if we write logic in our help pages to extract those parameters and show content accordingly, we can develop custom help more effectively.

**Note: We cannot change the URL on "Help" link that appears on each page(Highlighted in green box in above image). That shows only salesforce help and training section.

Parsing Numeric tags in XML using Apex: Issue with Salesforce.com Force.com platform

This post describes one of the limitation of Salesforce.com to handle XML data and the work around for it.

When using DOM.Document in Apex code. If we try to initialize XML data with data like:
we will be getting error message like:
System.XmlException:Failed to parse XML due to: unexpected character in markup 1 (position:START_TAG seen <1... @1:8)
This is because Salesforce.com doesn't support XML data where in tag names are numeric. So in order to parse such data we need methods that can replace such numeric values by strnig values.
One such method could be:

public String replaceNumerics(String rawXML)
{     
     for(integer i=0;i<150;i++)   //pay attention while specifying the range. This could cause a governor limit Exception for Script statements
        {
            rawXML=rawXML.replace('<'+i+'>','');
            rawXML=rawXML.replace('','');
        }
        return rawXML;
}  
Now after applying this replaceNumerics method on such XML will transform that into:

Now we can easily parse this XML.