Sample Call
<?php
// SOAP_CLIENT_BASEDIR - folder that contains the PHP Toolkit and your WSDL
// $USERNAME - variable that contains your Salesforce.com username (must be in the form of an email)
// $PASSWORD - variable that contains your Salesforce.ocm password
define("SOAP_CLIENT_BASEDIR", "../../soapclient");
require_once (SOAP_CLIENT_BASEDIR.'/SforcePartnerClient.php');
require_once (SOAP_CLIENT_BASEDIR.'/SforceMetadataClient.php');
try {
$mySforceConnection = new SforcePartnerClient();
$mySoapClient = $mySforceConnection->createConnection(SOAP_CLIENT_BASEDIR.'/partner.wsdl.xml');
$loginResult = $mySforceConnection->login($USERNAME, $PASSWORD);
$myMetadataConnection = new SforceMetadataClient(SOAP_CLIENT_BASEDIR.'/metadata.wsdl.xml', $loginResult, $mySforceConnection);
$customObject = new SforceCustomObject();
$customObject->fullName = 'CustomObjFromPHP__c';
$customObject->deploymentStatus = DEPLOYMENT_STATUS_DEPLOYED;
$customObject->setDescription("A description");
$customObject->setEnableActivities(true);
$customObject->setEnableDivisions(false);
$customObject->setEnableHistory(true);
$customObject->setEnableReports(true);
$customObject->setHousehold(false);
$customObject->setLabel("My Custom Obj from PHP");
$customField = new SforceCustomField();
$customField->setFullName('MyCustomFieldb__c');
$customField->setDescription('Description of New Field');
$customField->setLabel('My Custom Field Label');
$customField->setType('Text');
$customObject->nameField = $customField;
$customObject->pluralLabel = 'My Custom Objs from PHP';
$customObject->sharingModel = SHARING_MODEL_READWRITE;
print_r($myMetadataConnection->create($customObject));
} catch (Exception $e) {
echo $myMetadataConnection->getLastRequest();
echo $e->faultstring;
}
?>
Sample Output
stdClass Object
(
[result] => stdClass Object
(
[done] =>
[id] => 04s500000004ED7AAM
[secondsToWait] => 2
[state] => InProgress
)
)