function establish(ConnectionConfiguration $connConfig) { $connection = new SforcePartnerClient(); $connection->createConnection($this->buildWsdlPath($connConfig)); $connection->setEndpoint($this->buildEndpoint($connConfig)); $connection->setSessionHeader($connConfig->getSessionId()); $connection->setCallOptions(new CallOptions($connConfig->getClientId(), WorkbenchConfig::get()->value('callOptions_defaultNamespace'))); if (WorkbenchContext::get()->isApiVersionAtLeast(27.0)) { if (!WorkbenchConfig::get()->value('ownerChangeOptions_transferAttachments') || !WorkbenchConfig::get()->value('ownerChangeOptions_transferOpenActivities')) { $connection->setOwnerChangeOptionsHeader(new OwnerChangeOptionsHeader(WorkbenchConfig::get()->value('ownerChangeOptions_transferAttachments'), WorkbenchConfig::get()->value('ownerChangeOptions_transferOpenActivities'))); } } if (WorkbenchConfig::get()->value('assignmentRuleHeader_assignmentRuleId') || WorkbenchConfig::get()->value('assignmentRuleHeader_useDefaultRule')) { $connection->setAssignmentRuleHeader(new AssignmentRuleHeader(WorkbenchConfig::get()->value('assignmentRuleHeader_assignmentRuleId'), WorkbenchConfig::get()->value('assignmentRuleHeader_useDefaultRule'))); } if (WorkbenchConfig::get()->value('mruHeader_updateMru')) { $connection->setMruHeader(new MruHeader(WorkbenchConfig::get()->value('mruHeader_updateMru'))); } if (WorkbenchConfig::get()->value('queryOptions_batchSize')) { $connection->setQueryOptions(new QueryOptions(WorkbenchConfig::get()->value('queryOptions_batchSize'))); } if (WorkbenchConfig::get()->value('emailHeader_triggerAutoResponseEmail') || WorkbenchConfig::get()->value('emailHeader_triggerOtherEmail') || WorkbenchConfig::get()->value('emailHeader_triggertriggerUserEmail')) { $connection->setEmailHeader(new EmailHeader(WorkbenchConfig::get()->value('emailHeader_triggerAutoResponseEmail'), WorkbenchConfig::get()->value('emailHeader_triggerOtherEmail'), WorkbenchConfig::get()->value('emailHeader_triggertriggerUserEmail'))); } if (WorkbenchConfig::get()->value('UserTerritoryDeleteHeader_transferToUserId')) { $connection->setUserTerritoryDeleteHeader(new UserTerritoryDeleteHeader(WorkbenchConfig::get()->value('UserTerritoryDeleteHeader_transferToUserId'))); } if (WorkbenchConfig::get()->value('allowFieldTruncationHeader_allowFieldTruncation')) { $connection->setAllowFieldTruncationHeader(new AllowFieldTruncationHeader(WorkbenchConfig::get()->value('allowFieldTruncationHeader_allowFieldTruncation'))); } if (WorkbenchConfig::get()->value('allOrNoneHeader_allOrNone')) { $connection->setAllOrNoneHeader(new AllOrNoneHeader(WorkbenchConfig::get()->value('allOrNoneHeader_allOrNone'))); } if (WorkbenchConfig::get()->value('disableFeedTrackingHeader_disableFeedTracking')) { $connection->setDisableFeedTrackingHeader(new DisableFeedTrackingHeader(WorkbenchConfig::get()->value('disableFeedTrackingHeader_disableFeedTracking'))); } if (WorkbenchConfig::get()->value('localOptions_language')) { $connection->setLocaleOptions(new LocaleOptions(WorkbenchConfig::get()->value('localOptions_language'))); } if (WorkbenchConfig::get()->value('packageVersionHeader_include') && WorkbenchConfig::get()->value('packageVersion_namespace') && WorkbenchConfig::get()->value('packageVersion_majorNumber') && WorkbenchConfig::get()->value('packageVersion_minorNumber')) { $connection->setPackageVersionHeader(WorkbenchConfig::get()->value("packageVersion_namespace"), WorkbenchConfig::get()->value("packageVersion_majorNumber"), WorkbenchConfig::get()->value("packageVersion_minorNumber")); } return $connection; }
function sendSalesforceNotification() { if ($this->formrow->salesforce_enabled != 1) { return; } define("BF_SOAP_CLIENT_BASEDIR", JPATH_SITE . DS . 'administrator' . DS . 'components' . DS . 'com_breezingforms' . DS . 'libraries' . DS . 'salesforce'); if (!class_exists('SforcePartnerClient')) { require_once BF_SOAP_CLIENT_BASEDIR . '/SforcePartnerClient.php'; } if (!class_exists('SforceHeaderOptions')) { require_once BF_SOAP_CLIENT_BASEDIR . '/SforceHeaderOptions.php'; } try { $mySforceConnection = new SforcePartnerClient(); $trunc = new AllowFieldTruncationHeader(true); $mySforceConnection->setAllowFieldTruncationHeader($trunc); $mySoapClient = $mySforceConnection->createConnection(BF_SOAP_CLIENT_BASEDIR . '/partner.wsdl.xml'); $mylogin = $mySforceConnection->login($this->formrow->salesforce_username, $this->formrow->salesforce_password . $this->formrow->salesforce_token); $sobjects = $mySforceConnection->describeSObject($this->formrow->salesforce_type)->fields; $fields = array(); $this->formrow->salesforce_fields = explode(',', $this->formrow->salesforce_fields); foreach ($this->formrow->salesforce_fields as $sfields) { foreach ($this->sfdata as $savedata) { $sfield = explode('::', $sfields); if ($sfield[0] == $savedata[1]) { foreach ($sobjects as $sobject) { // forcing some primitives if ($sobject->name == $sfield[1]) { switch ($sobject->type) { case 'boolean': $savedata[4] = $savedata[4] ? 1 : 0; break; case 'int': $savedata[4] = intval($savedata[4]); break; case 'double': $savedata[4] = doubleval($savedata[4]); break; } break; } } $fields[$sfield[1]] = '<![CDATA[' . $savedata[4] . ']]>'; // bug in SF Toolkit appeareantly requires CDATA break; } } } $sObject = new SObject(); $sObject->fields = $fields; $sObject->type = $this->formrow->salesforce_type; $createResponse = $mySforceConnection->create(array($sObject)); } catch (Exception $e) { echo 'Salesforce Exception: ' . $e->getMessage(); session_write_close(); exit; } }