/** * Initialize method * * @param array $config The configuration for the Table. * @return void */ public function initialize(array $config) { parent::initialize($config); $this->table(false); $this->displayField('Id'); $this->primaryKey('Id'); if (!empty($config['connection']->config()['my_wsdl'])) { $wsdl = CONFIG . DS . $config['connection']->config()['my_wsdl']; } else { throw new \Exception("You need to provide a WSDL"); } $mySforceConnection = new \SforceEnterpriseClient(); $mySoapClient = $mySforceConnection->createConnection($wsdl); $sflogin = (array) Cache::read('salesforce_login', 'salesforce'); if (!empty($sflogin['sessionId'])) { $mySforceConnection->setSessionHeader($sflogin['sessionId']); $mySforceConnection->setEndPoint($sflogin['serverUrl']); } else { try { $mylogin = $mySforceConnection->login($config['connection']->config()['username'], $config['connection']->config()['password']); $sflogin = array('sessionId' => $mylogin->sessionId, 'serverUrl' => $mylogin->serverUrl); Cache::write('salesforce_login', $sflogin, 'salesforce'); } catch (Exception $e) { $this->log("Error logging into salesforce from Table - Salesforce down?"); } } if (!($sObject = Cache::read($this->name . '_sObject', 'salesforce'))) { $sObject = $mySforceConnection->describeSObject($this->name); Cache::write($this->name . '_sObject', $sObject, 'salesforce'); } foreach ($sObject->fields as $field) { if (substr($field->soapType, 0, 3) != "ens") { //we dont want type of ens if (substr($field->soapType, 4) == "int") { $type_name = "integer"; } elseif (substr($field->soapType, 4) == "boolean") { $type_name = "boolean"; } elseif (substr($field->soapType, 4) == "dateTime" || substr($field->soapType, 4) == "date") { $type_name = "datetime"; } else { $type_name = "string"; } if ($field->updateable) { $this->updatable_fields[$field->name] = ['type' => $type_name, 'length' => $field->length, 'null' => $field->nillable]; $this->selectable_fields[$field->name] = ['type' => $type_name, 'length' => $field->length, 'null' => $field->nillable]; } else { $this->selectable_fields[$field->name] = ['type' => $type_name, 'length' => $field->length, 'null' => $field->nillable]; } } } //Cache select fields right away as most likely need them immediately Cache::write($this->name . '_selectable_schema', $this->selectable_fields, 'salesforce'); if (!$this->schema(Cache::read($this->name . '_updatable_schema', 'salesforce'))) { $this->schema($this->updatable_fields); Cache::write($this->name . '_updatable_schema', $this->updatable_fields, 'salesforce'); } }
public function __construct() { /** * Salesforce Enterprise WSDL */ $cred = new SalesforceLogin(); require_once $_SERVER['DOCUMENT_ROOT'] . '/soapclient/SforceEnterpriseClient.php'; $enterprise_wsdl = "soapclient/enterprise.wsdl.xml"; $mySforceConnection = new SforceEnterpriseClient(); $myConnection = $mySforceConnection->createConnection($enterprise_wsdl); $myLogin = $mySforceConnection->login($cred->SFcredentials['usr'], $cred->SFcredentials['pwd'] . $cred->SFcredentials['key']); $fields = $mySforceConnection->describeSObject('Lead')->fields; $this->sf_fields = $fields; }
} } } /** * Hardcoded Keys */ $usr = ''; $pss = ''; $key = ''; require_once 'soapclient/SforceEnterpriseClient.php'; $enterprise_wsdl = "soapclient/enterprise.wsdl.xml"; try { $ENT = new SforceEnterpriseClient(); $ENT_client = $ENT->createConnection($enterprise_wsdl); $ENT_login = $ENT->login($usr, $pss . $key); $fields = $ENT->describeSObject('Lead')->fields; $new_lead[0] = new stdClass(); foreach ($lead as $key => $value) { $new_lead[0]->{$key} = $value; } // We have some required fields $new_lead[0]->Company = 'N/A'; if (!isset($new_lead[0]->LastName)) { if (isset($new_lead[0]->FirstName)) { $new_lead[0]->LastName = $new_lead[0]->FirstName; } else { $new_lead[0]->LastName = 'N/A'; } } $new_lead[0]->LastName = 'N/A'; unset($new_lead[0]->FirstName);