Workbench: From Idea to 2.0
by Ryan Brainard on July 1, 2008 at 09:57 PM
About a year ago, I started learning PHP and was just getting my feet wet with the Force.com API, and I soon realized what I would need to do to really learn both -- build a web-based version of Apex Data Loader.
I had used the Data Loader to import and extract data, and it did this
pretty well, but thinking how cool it would be if this could all be
done directly in a web browser like the rest of the Salesforce on-demand applications, I was very excited to start this project.
It started with downloading the open source PHP Toolkit and understanding how to make basic connections and calls to the Force.com API, and this quickly progressed into building out all the major functions of the Data Loader completely in PHP. Being my first major project in PHP, it was still had its fair share of not-so-good practices, but as a testament to the simplicity of both PHP and the Force.com API, the DataLoader.PHP (as the Workbench was once known) became reality. Building on this foundation, more and more features were added and the existing code was refactored to be more efficient and extensible. Soon I realized that I had something that could do much more than the Data Loader with the new Describe, Undelete, and Purge functions and plans to implement a whole suite of useful tools for Salesforce administrators and developers, the application was renamed the Workbench and version 1.0 was released as an open source project on Google Code.
With a modest number of downloads and feedback from the open source community, the feature requests started to roll in for the next generation of the Workbench. Back at the drawing board, I implemented a SOSL Search function, added new Smart Lookup capabilities, built an extensible configuration framework, and tuned the overall performance. All of this was packaged in a new, clean user interface and delivered as Workbench 2.0 just in time for the Salesforce Summer '08 release.
Community Update: Intros, Tour de Force, Visualforce
by Jon Mountjoy on May 30, 2008 at 05:03 AM
I'm a new member of the force.com team, and I'll be working here as the community manager and editor-in-chief of developer.force.com. As a result, I hope to be touching base with a lot of you developers, ISVs and admins out there, as well our internal salesforce.com employees. I'll also be working at developing our blog and content strategies, infrastructure and more. There's a lot to do, and I'm keen to help our thriving community grow even bigger. Feel free to ping me at any time about the community, with any suggestions, complaints or comments (jmountjoy at salesforce dot com) or join me on Twitter or other data streams.
I will be producing a community update like this every week or two, highlighting forthcoming events (check out the awesome Tour de Force website with new events in the USA, Ireland and Japan), community members (see Anshu), webinars (Move Beyond S-Controls), interesting board threads, things that catch my eye (like the Dreamforce Session Idea site), external sites (Simon, Joe, Steve and many more) and so on, so please stay tuned.
Regards,
Jon
Resources
We have a couple of new resources for you:
- A short Visualforce Components Demonstration by Adam Gross shows off some of the capabilities found in Visualforce Components. This is going to big: reusable, modular, user interface components. I need to create a directory listing components that we can start finding them all. Done!
- A new Visualforce resource page recently went live, pointing to reference material, tutorials and webinars to get you up to speed on the technology.
Blogs
In the blogs, I'd like to welcome new blogger Anshu Sharma. Anshu blogged about being In India, with Force(.com)!, and some of the questions he encountered during a talk he gave on PaaS and Force.com.
Also in the blogs, Ron Hess tells us about Coding The Cloud at Google's I/O Event, where he's presenting on integrating force.com apps with Google GData interfaces. I'm also keen to see how our developers use the new Google Earth API. We've seen plenty of Google Maps mashups - now how can we use Google Earth too?
Finally, Peter Coffee has some interesting thoughts on what it means to be Disconnected. He makes the point that "..it's not the problem of any single technology provider (or even any particular subset of the tech provider ecosystem) to solve the problem of staying up and running even if your public network link is intermittent."
Upcoming Events
From our event calendar, we have the following events that may interest you:
- Tour de Force - in USA, Ireland and Japan (June/July)
- Webinar: Mastering Visualforce, Move Beyond S-Controls - (June 18)
- eBay Developer Conference - where we're keynoting and presenting (June 16)
- DreamForce '08 - suggest a session for the conference too! (November 2-5)
Education Services
Education services have two upcoming courses:
- FDC-320 Force.com: Application Laboratory - in various cities in the US (June/July)
- FDC-320 Force.com: Application Laboratory - in London, UK (June)
Technorati Tags: salesforce, tourdeforce, visualforce
A Swiss Army Knife for your bulk data needs
by Rick Greenwald on November 25, 2007 at 06:38 PM
The great thing about Platform-as-a-Service is the incredible cost savings delivered across the board – from development to deployment. But you probably are going to build your P-a-a-S applications to address needs based on an existing set of data. Enter Data Loader – a powerful tool for moving data in and out of your Force.com database.
This Webinar gives you an introduction to the magic of Data Loader, including actual demos of Data Loader at work and play. The presentation is the third part of the Salesforce.com Enterprise Integration Series.
Movin' that data around
by Rick Greenwald on June 21, 2007 at 01:14 PM
As an Apex developer, you probably focus a lot of your attention on your application and its logic. But all applications float on a vast sea of data, and that data has to come from somewhere. When you work with the power of the Salesforce On-Demand platform, you very well may be moving existing applications to the new environment. These applications probably already have their own seas of data that you have to get into custom objects.
If you aren’t familiar with this useful tool, this new page on the Apex Developers' Wiki will give you a good starting point. The page includes links to documentation and articles that will help you understand and effectively use the Apex Data Loader. The Data Loader itself comes with any edition that supports API access – Unlimited Edition, Enterprise Edition and Developer Edition.
Take a look and have some fun – well, if not fun, at least move some data around.
Loading Products2, Pricebooks2, PriceBookEntry, and Opp Line Items
by PK on April 24, 2005 at 04:00 PM
If you've ever wondered:
- How do I load Standard Prices for a Product?
- How do I load Opportunity Line Items?
This post may help you
The following steps need to be taken in the exact order:
Load Products2:
- Make sure all Products have a Product Name. This is a
required field when loading Products into the Products2 object.
Load Pricebook2
- Usually there are only a small finite set of price books, therefore this action can be done directly in the application.
- Click on the Products tab.
- In the bottom right-hand corner, click on "Manage Pricebooks"
- Add as many pricebooks as necessary.
- Standard Pricebook MUST be active.
Load PricebookEntry
1. First load Standard Price for a Product by mapping the following fields:
- Products2Id: Get this from the Products2 object
- Pricebooks2Id: **MUST use Standard Price book**
- Unit Price: Standard price of the product
- UseStandardPrice: FALSE
- IsActive: TRUE
2. Load Product into respective Pricebook
- Products2Id: Get this from the Products2 ojbect
- Pricebooks2Id: Use necessary Pricebook2Id which can be obtained from the URL after clicking on the Pricebook under "Manage Pricebooks"
- Unit Price: Price of product in Pricebook; If using Standard Price, this field MUST be populated with the actual Standard Price.
- UseStandardPrice: True/False respectively
- IsActive: TRUE
3. If you only want the Products that are not in the Standard Pricebook available for selection as a line item, you must deactivate the pricebookentry where the pricebook2ID is the Standard Pricebook.
Opportunity Line Items
1. For each line item associated with the opportunity you will need the following information:
- Opportunity ID
- PricebookEntryID
- Total Price
- Quantity
I just attempted doing this using a beta of the Sforce Data Loader
- First loaded data into Product2, mapping fields as appropriate.
- Took the output of the load: success.csv, and added two columns to this file, Pricebook2Id, and IsActive. I used the standard pricebook. For the IsActive column, I filled it in with "TRUE". I then loaded this data into PricebookEntry, but this only mapped one price. If you have multiple prices, they will likely correspond to multiple pricebooks.
