/**
  * 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');
     }
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
         }
     }
 }
 /**
  *  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);