This "Metadata API" thing is so frustrating. Why?!
I have about a week to:
- Rebuild 4 custom objects and about 25% of their 100-or-so-per-object custom fields from one Salesforce org in another - sometimes with slight name changes to avoid conflicts (both are sandboxes, but of unrelated production orgs)
- Hook up the "source" Salesforce org's data to the new objects/fields in the "target" Salesforce org via Jitterbit
- Write a bazillion triggers to post-process the data once it lands in the "target" org
I am not looking forward to step 1.
Thank goodness for student workers, because so far I've wasted 3 hours trying to figure out just how to take the following XML file and throw it at a Salesforce org w/o a "zzzTestSmallObject__c" custom object and get it to create one (along with "BoolCustField__c" custom field).
Any step-by-step advice on the fastest way to do this?
All "intros" to manipulating metadata with the API seem geared at getting people set up who need a lot of power.
I just need to take little XML files like this and create objects/fields from them on an ad-hoc basis.
And then I never want to think about the Metadata API again.
<?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>CancelEdit</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>Follow</actionName>
<type>Default</type>
</actionOverrides>
<actionOverrides>
<actionName>List</actionName>
<type>Default</type>
</actionOverrides>
<actionOverrides>
<actionName>New</actionName>
<type>Default</type>
</actionOverrides>
<actionOverrides>
<actionName>SaveEdit</actionName>
<type>Default</type>
</actionOverrides>
<actionOverrides>
<actionName>Tab</actionName>
<type>Default</type>
</actionOverrides>
<actionOverrides>
<actionName>View</actionName>
<type>Default</type>
</actionOverrides>
<compactLayoutAssignment>SYSTEM</compactLayoutAssignment>
<deploymentStatus>Deployed</deploymentStatus>
<description>zzzTestSmallObjectHasADescription</description>
<enableActivities>false</enableActivities>
<enableBulkApi>true</enableBulkApi>
<enableFeeds>false</enableFeeds>
<enableHistory>false</enableHistory>
<enableReports>false</enableReports>
<enableSharing>true</enableSharing>
<enableStreamingApi>true</enableStreamingApi>
<fields>
<fullName>BoolCustField__c</fullName>
<defaultValue>false</defaultValue>
<description>ThisIsABoolCustField</description>
<externalId>false</externalId>
<inlineHelpText>ThisIsABoolCustField</inlineHelpText>
<label>BoolCustField</label>
<trackTrending>false</trackTrending>
<type>Checkbox</type>
</fields>
<label>zzzTestSmallObject</label>
<nameField>
<label>zzzTestSmallObject Name</label>
<type>Text</type>
</nameField>
<pluralLabel>zzzTestSmallObjects</pluralLabel>
<searchLayouts/>
<sharingModel>ReadWrite</sharingModel>
</CustomObject>
No comments:
Post a Comment