About Cognizant Salesforce Practice
178,600
employees
globally
20,000+
Outsourcing
projects in 40
countries
25+ Regional
sales offices
50+ Global
Delivery Centres
Market
Capitalisation
Over $26 billion
1,223
active customers
Founded in 1994
(CTSH, Nasdaq)
Headquarters
Teaneck, NJ
8+ Years as Partner
1 of 18 Global Strategic Sis
425+ Salesforce projects delivered
800+/500+ Salesforce Trained /
Salesforce Certified
Agenda
•Node.js
•Heroku
•Twitter Bootstrap
•Tooling API
•Code Walkthrough
•Resources and source code
Why Node.js ?
• Uses same JavaScript engine which is used by Google chrome browser “V8
JavaScript runtime”
•Very popular, simple, yet powerful script
•Mostly used for developing high performance network applications
• With help of many available node modules, web application can be created. We will
be using “express”
Why Heroku ?
• Is leading platform as a service
•Supports many programming languages like ruby, java, php, scala, python, node.js
•Owned by Salesforce
•Heroku connect (easily connect Salesforce with applications hosted on Heroku )
Twitter Bootstrap
•Most popular html, CSS, and JavaScript framework for developing responsive,
mobile first projects on the web
• Open source project by twitter
Champion of the Show – Tooling API
•Released in spring 13
• Provides REST and SOAP based interface to help creating custom development
tools
•Supports create, update and delete apex classes, triggers, visualforce pages and
visualforce components
• Getting debug logs, heap dump and symbol tables
• Still in infancy, like other Salesforce APIs this is growing with each release
Why do we need Tooling API
• Force.com developer community is growing fast like Salesforce itself
• Many organizations are looking for custom functionalities around development tools
to follow their standards
• Like any popular programming language, it very important to “make developers
happy”
•Tooling API opens door for creating beautiful development tools which will make
development efficient and easy
Reading Logs
• List of Logs
– SELECT Id,LogUserId FROM ApexLog
•Log Body
– http://na1.salesforce.com/services/data/v29.0/tooling/ApexLog/id/Body/
Symbol Table
• “SymbolTable” is element in JSON returned when we read resource Body
Use ACE – JavaScript based Code Editor
•To make editor more useful and professional, we can use free Library of Online
Editor – Ace
• http://ace.c9.io/#nav=about
Complete Code and Demo URL
•Demo - https://toolingapi.herokuapp.com/
•Demo with Ace - https://dreamforce14.herokuapp.com/
• Git (simple editor) with Heroku 1 button –
https://github.com/JitendraZaa/ToolingAPI30Min
• Git (with ace) with Heroku 1 button –
https://github.com/JitendraZaa/ToolingAPI30Min-AceEditor
Other Resources
•Tooling API Guide
• Create Node.js application Using Eclipse and deploy to Heroku (Video Tutorial)
•Bootstrap Library
Editor's Notes
Tooling API – Can be considered as a new Component added in REST API.
Tooling API is exposed as REST as well SOAP API.
How Tooling API is different than Metadata API ?
Metadata API is SOAP based which is used for deployment and Metadata related components Whereas Tooling API is used to create development related components like Apex, Visualforce Page etc.
The real magic is what this API brings in terms of the tasks and information around authoring and executing Apex and Visualforce. Such as Debug logs, Heap dumps and Symbol Tables!
A Symbol Table breaks down the code you write and gives you a kind of analytics over your code. Listing all the properties methods defined and also