Saturday, January 5, 2013

Salesforce: Create Custom Fields using Eclipse

Today I had to add different data types fields to my Custom object (Metadata__c). I could have done this by manually creating each field, but the thought of clicking through over different screens didn't take my fancy. So, I thought I’d take the Force.com Metadata API for a spin. 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 added my new Force.com project to IDE and then I simply added Metadata__c metadata to my project and it appeared in my Package Explorer.

Now I can see custom object details there in source tab.

So, It looks like as given below:---


<?xml version="1.0" encoding="UTF-8"?>
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
    <actionOverrides>
        <actionName>Accept</actionName>
        <type>Default</type>
    </actionOverrides>
    <actionOverrides>
        <actionName>Clone</actionName>
        <type>Default</type>
    </actionOverrides>
    <actionOverrides>
        <actionName>Delete</actionName>
        <type>Default</type>
    </actionOverrides>
    <actionOverrides>
        <actionName>Edit</actionName>
        <type>Default</type>
    </actionOverrides>
    <actionOverrides>
        <actionName>List</actionName>
        <type>Default</type>
    </actionOverrides>
    <actionOverrides>
        <actionName>New</actionName>
        <type>Default</type>
    </actionOverrides>
    <actionOverrides>
        <actionName>Tab</actionName>
        <type>Default</type>
    </actionOverrides>
    <actionOverrides>
        <actionName>View</actionName>
        <type>Default</type>
    </actionOverrides>
    <deploymentStatus>Deployed</deploymentStatus>
    <enableActivities>true</enableActivities>
    <enableFeeds>false</enableFeeds>
    <enableHistory>true</enableHistory>
    <enableReports>true</enableReports>
    <label>Metadata</label>
    <listViews>
        <fullName>All</fullName>
        <filterScope>Everything</filterScope>
        <label>All</label>
    </listViews>
    <nameField>
        <displayFormat>META - {00000}</displayFormat>
        <label>Metadata Name</label>
        <trackHistory>false</trackHistory>
        <type>AutoNumber</type>
    </nameField>
    <pluralLabel>Metadata</pluralLabel>
    <searchLayouts/>
    <sharingModel>ReadWrite</sharingModel>
</CustomObject>


Now for adding custom adding custom fields. Please added XML in that source file given below and you can see change for the custom object by saving XML to the project and by refreshing the custom object definition page on browser.

Adding New Custom Fields:--

1. Auto Number

<fields>
        <fullName>Auto_Number__c</fullName>
        <description>Auto Number Creation.</description>
        <displayFormat>AN - {0000}</displayFormat>
        <externalId>false</externalId>
        <inlineHelpText>Auto Number Field</inlineHelpText>
        <label>Auto Number</label>
        <type>AutoNumber</type>
    </fields>

2. Checkbox

<fields>
        <fullName>Checkbox__c</fullName>
        <defaultValue>false</defaultValue>
        <description>This is a checkbox field.</description>
        <externalId>false</externalId>
        <label>Checkbox</label>
        <type>Checkbox</type>
    </fields>

3. Currency (14,2)

<fields>
        <fullName>Currency__c</fullName>
        <defaultValue>2000</defaultValue>
        <description>This is a currency field.</description>
        <externalId>false</externalId>
        <label>Currency</label>
        <precision>16</precision>
        <required>false</required>
        <scale>2</scale>
        <trackHistory>false</trackHistory>
        <type>Currency</type>
    </fields>

4. Date

<fields>
        <fullName>Date__c</fullName>
        <defaultValue>TODAY()</defaultValue>
        <description>This is a date field.</description>
        <externalId>false</externalId>
        <label>Date</label>
        <required>false</required>
        <type>Date</type>
    </fields>

5. Date Time

 <fields>
        <fullName>Date_Time__c</fullName>
        <defaultValue>Now()</defaultValue>
        <description>This is a Date Time Field.</description>
        <externalId>false</externalId>
        <label>Date Time</label>
        <required>false</required>
        <type>DateTime</type>
    </fields>

6. Email

<fields>
        <fullName>Email__c</fullName>
        <description>This is a Email field.</description>
        <externalId>false</externalId>
        <label>Email</label>
        <required>false</required>
        <trackHistory>false</trackHistory>
        <type>Email</type>
        <unique>false</unique>
    </fields>

7. Geolocation

    <fields>
        <fullName>Geolocation__c</fullName>
        <description>This is a Geostation field.</description>
        <displayLocationInDecimal>false</displayLocationInDecimal>
        <externalId>false</externalId>
        <label>Geolocation</label>
        <required>false</required>
        <scale>5</scale>
        <trackHistory>false</trackHistory>
        <type>Location</type>
    </fields>

8. Multi Select Picklist

    <fields>
        <fullName>Multi_Select_Picklist__c</fullName>
        <description>This is multi select picklist field alphabatically shorted and first value as default</description>
        <externalId>false</externalId>
        <label>Multi Select Picklist</label>
        <picklist>
            <picklistValues>
                <fullName>A</fullName>
                <default>true</default>
            </picklistValues>
            <picklistValues>
                <fullName>C</fullName>
                <default>false</default>
            </picklistValues>
            <picklistValues>
                <fullName>D</fullName>
                <default>false</default>
            </picklistValues>
            <picklistValues>
                <fullName>G</fullName>
                <default>false</default>
            </picklistValues>
            <picklistValues>
                <fullName>H</fullName>
                <default>false</default>
            </picklistValues>
            <picklistValues>
                <fullName>V</fullName>
                <default>false</default>
            </picklistValues>
            <picklistValues>
                <fullName>Y</fullName>
                <default>false</default>
            </picklistValues>
            <sorted>false</sorted>
        </picklist>
        <trackHistory>false</trackHistory>
        <type>MultiselectPicklist</type>
        <visibleLines>4</visibleLines>
    </fields>

9. Number

    <fields>
        <fullName>Number__c</fullName>
        <defaultValue>52</defaultValue>
        <externalId>false</externalId>
        <label>Number</label>
        <precision>18</precision>
        <required>false</required>
        <scale>2</scale>
        <trackHistory>false</trackHistory>
        <type>Number</type>
        <unique>false</unique>
    </fields>

10. Percent

    <fields>
        <fullName>Percent__c</fullName>
        <defaultValue>0.023</defaultValue>
        <description>This is a Percent Field.</description>
        <externalId>false</externalId>
        <label>Percent</label>
        <precision>18</precision>
        <required>false</required>
        <scale>2</scale>
        <trackHistory>false</trackHistory>
        <type>Percent</type>
    </fields>

11. Phone

    <fields>
        <fullName>Phone__c</fullName>
        <description>This is a phone field.</description>
        <externalId>false</externalId>
        <label>Phone</label>
        <required>false</required>
        <trackHistory>false</trackHistory>
        <type>Phone</type>
    </fields>

12. Picklist

    <fields>
        <fullName>Picklist__c</fullName>
        <description>This is a picklist field.</description>
        <externalId>false</externalId>
        <label>Picklist</label>
        <picklist>
            <picklistValues>
                <fullName>AD</fullName>
                <default>false</default>
            </picklistValues>
            <picklistValues>
                <fullName>FG</fullName>
                <default>false</default>
            </picklistValues>
            <picklistValues>
                <fullName>GG</fullName>
                <default>false</default>
            </picklistValues>
            <sorted>false</sorted>
        </picklist>
        <trackHistory>false</trackHistory>
        <type>Picklist</type>
    </fields>
    <fields>
        <fullName>Text_Area_Long__c</fullName>
        <defaultValue>&quot;Testing...&quot;</defaultValue>
        <description>This is a text area long field.</description>
        <externalId>false</externalId>
        <inlineHelpText>Text area long field help.</inlineHelpText>
        <label>Text Area Long</label>
        <length>32768</length>
        <trackHistory>false</trackHistory>
        <type>LongTextArea</type>
        <visibleLines>3</visibleLines>
    </fields>

13. Text Area Rich

    <fields>
        <fullName>Text_Area_Rich__c</fullName>
        <description>This is a Text Area rich type field.</description>
        <externalId>false</externalId>
        <inlineHelpText>Text Area Rich Help</inlineHelpText>
        <label>Text Area Rich</label>
        <length>32768</length>
        <trackHistory>false</trackHistory>
        <type>Html</type>
        <visibleLines>25</visibleLines>
    </fields>

14. Text Area

    <fields>
        <fullName>Text_Area__c</fullName>
        <defaultValue>&quot;Test Area Test&quot;</defaultValue>
        <description>This is the text area field.</description>
        <externalId>false</externalId>
        <inlineHelpText>Text Area field Help</inlineHelpText>
        <label>Text Area</label>
        <required>true</required>
        <trackHistory>false</trackHistory>
        <type>TextArea</type>
    </fields>

15. Text Encripted

    <fields>
        <fullName>Text_Encripted__c</fullName>
        <description>This is a text encripted type field.</description>
        <externalId>false</externalId>
        <inlineHelpText>Text Encripted field Help</inlineHelpText>
        <label>Text Encripted</label>
        <length>20</length>
        <maskChar>asterisk</maskChar>
        <maskType>all</maskType>
        <required>true</required>
        <trackHistory>false</trackHistory>
        <type>EncryptedText</type>
    </fields>

16. Text

    <fields>
        <fullName>Text__c</fullName>
        <caseSensitive>false</caseSensitive>
        <description>This is a text field.</description>
        <externalId>false</externalId>
        <label>Text</label>
        <length>23</length>
        <required>false</required>
        <trackHistory>false</trackHistory>
        <type>Text</type>
        <unique>true</unique>
    </fields>

17. URL

    <fields>
        <fullName>URL__c</fullName>
        <defaultValue>&quot;https://ssl.salesforce.com/&quot;</defaultValue>
        <description>This is a URL field.</description>
        <externalId>false</externalId>
        <inlineHelpText>URL field Testing...</inlineHelpText>
        <label>URL</label>
        <required>true</required>
        <trackHistory>false</trackHistory>
        <type>Url</type>
    </fields>

18. Master Detail (Master - Account)

<fields>
        <fullName>Account__c</fullName>
        <externalId>false</externalId>
        <label>Account</label>
        <referenceTo>Account</referenceTo>
        <relationshipLabel>Metadata</relationshipLabel>
        <relationshipName>Metadata</relationshipName>
        <relationshipOrder>0</relationshipOrder>
        <reparentableMasterDetail>false</reparentableMasterDetail>
        <trackHistory>false</trackHistory>
        <type>MasterDetail</type>
        <writeRequiresMasterRead>false</writeRequiresMasterRead>
    </fields>

19. Lookup Relationship (Parent -- Contact)

<fields>
        <fullName>Contact__c</fullName>
        <deleteConstraint>SetNull</deleteConstraint>
        <externalId>false</externalId>
        <label>Contact</label>
        <referenceTo>Contact</referenceTo>
        <relationshipLabel>Metadata</relationshipLabel>
        <relationshipName>Metadata</relationshipName>
        <required>false</required>
        <trackHistory>false</trackHistory>
        <type>Lookup</type>
    </fields>

20. Formula Field

<fields>
        <fullName>Formula_Text__c</fullName>
        <externalId>false</externalId>
        <formula>Text__c</formula>
        <label>Formula Text</label>
        <required>false</required>
        <trackHistory>false</trackHistory>
        <type>Text</type>
        <unique>false</unique>
    </fields>

21.  List View

<listViews>
        <fullName>My_List_View</fullName>
        <columns>NAME</columns>
        <columns>Account__c</columns>
        <columns>Auto_Number__c</columns>
        <columns>Checkbox__c</columns>
        <columns>Contact__c</columns>
        <columns>Currency__c</columns>
        <filterScope>Everything</filterScope>
        <label>My List View</label>
    </listViews>

I think this will be useful.. Enjoy Coding,


1 comment:

  1. Hi,
    I created checkbox using metadata api.My requirement is checkbox creation time i gave some values with comma separated like A,B,C,D.How to display created checkbox field as look like following in an visualforce page

    FieldName
    Checkbox A
    Checkbox B
    Check box C
    Checkbox D using metadata api

    Please Help me………………..

    ReplyDelete