AddThis Feed Button

Recent Items

Today I had to add 32 Checkbox fields to my Contact object. I could have done this by manually creating each field, but the thought of clicking through over 100 screens didn’t take my fancy. So, I thought I’d take the Metadata API for a spin.

The last time I played with Metadata, I did it via the command-line Metadata Migration Tool . This time I decided to do it via the IDE.

Fortunately, there’s plenty of information available on this topic, the best of which are:

First I updated my IDE extensions in Eclipse (always make sure you’re working on the most recent version!). One nice feature I see they’ve added is the ability to select exactly which objects are copied down to the IDE. I simply ticked ‘Contacts’ and it appeared in my Package Explorer.

Then, I just did a Copy & Paste job on the metadata, changing the labels for each field.

<CustomObject xmlns="">
        <label>Entity Owns Active Bamboo</label>
        <label>Entity Owns Active Clover</label>

I then hit Save and the fields magically appeared in — I was even somewhat naughty and did it straight into my Production instance (although best practice would be to do it in the Sandbox and then copy across / deploy the change).

Okay, I’ve still got a bit of work to do if I want to add the Checkboxes to my Page Layout, but at least the laborious part is over — the rest is all Drag & Drop!

The Bottom Line

  • The latest IDE facility lets you choose Standard Objects without having to play with package.xml
  • Creating lots of fields can be done quickly via the IDE, rather than the normal UI
Tags: metadata

I was coding up an Apex Trigger today and ran into a bit of a problem. I was coding on my Sandbox system (as one should), but needed to access some custom fields that I had created on the Campaign object. Unfortunately, I had created these fields in my Production system and were not available in my Sandbox.

Yes, I could refresh my Sandbox, which would result in a perfect match with Production. However, that also clears out all the data and I hate having to reload Contacts and various objects just to be able to use the system productively.

So, I had a problem. My code was in Sandbox, my config was in Production. What to do?

Enter the new Metadata Migration Tool! (aka Migration Tool)

Just out with the Summer ’08 release is this new user-unfriendly, but perfectly useful tool. Unfriendly because it uses Ant scripts, with XML configuration files much like running Data Loader in batch mode. Perfectly useful because it was exactly what I needed!

In no time I managed to configure the system to extract my standard Campaign object and a matching Page Layout from Production, then deploy it to the Sandbox. Voila! My configuration was copied across without having to reload the whole Sandbox.

Some tricks I figured out:

  • In the file, I changed sf.username to sf.usernamePRD and added sf.usernameSandbox. That way, I can refer to different environment within the build.xml file. Same for sf.serverurl.
  • Layout names are prefixed with the object name. To retrieve my Page Layout called “Webinar Layout” that’s on my Campaign object, I had to put this in my package.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="">
        <members>Campaign-Webinar Layout</members>

The Bottom Line

  • The Metadata Migration Tool is very useful
  • I wish it had a better interface, or was integrated into the Eclipse development tool