Beispiel #1
0
class SalesforceInsertIntersection(Intersection):
    upsert = True
    object_api_name = None
    upsert_id_field = None

    SF_USERNAME = os.environ.get('SF_USERNAME')
    SF_PASSWORD = os.environ.get('SF_PASSWORD')
    SF_SECURITY_TOKEN = os.environ.get('SF_SECURITY_TOKEN')

    def __init__(self, *args, **kwargs):
        super(SalesforceInsertIntersection, self).__init__(*args, **kwargs)
        session = requests.Session()
        sf_instance = Salesforce(username=self.SF_USERNAME,
                                 password=self.SF_PASSWORD,
                                 security_token=self.SF_SECURITY_TOKEN,
                                 session=session)
        self.sf_type = SFType(self.object_api_name, sf_instance.session_id,
                              sf_instance.sf_instance, sf_instance.sf_version,
                              sf_instance.proxies)

    def process(self, message):
        if self.upsert:
            self.sf_type.upsert(
                '%s/%s' % (self.upsert_id_field,
                           message.content.pop(self.upsert_id_field)),
                message.content)
        else:
            self.sf_type.create(message.content)
        self.ack(message)
Beispiel #2
0
class SalesforceInsertIntersection(Intersection):
    upsert = True
    object_api_name = None
    upsert_id_field = None

    SF_USERNAME = os.environ.get('SF_USERNAME')
    SF_PASSWORD = os.environ.get('SF_PASSWORD')
    SF_SECURITY_TOKEN = os.environ.get('SF_SECURITY_TOKEN')

    def __init__(self, *args, **kwargs):
        super(SalesforceInsertIntersection, self).__init__(*args, **kwargs)
        session = requests.Session()
        self.sf_instance = Salesforce(
            username=self.SF_USERNAME,
            password=self.SF_PASSWORD,
            security_token=self.SF_SECURITY_TOKEN,
            session=session
        )
        self.sf_type = SFType(self.object_api_name, self.sf_instance.session_id, self.sf_instance.sf_instance, self.sf_instance.sf_version, self.sf_instance.proxies)

    def process(self, message):
        if self.upsert:
            self.sf_type.upsert(
                '%s/%s' % (self.upsert_id_field, message.content.pop(self.upsert_id_field)),
                message.content
            )
        else:
            self.sf_type.create(message.content)
        self.ack(message)
Beispiel #3
0
    def upsert_salesforce_object(self, object_type: str, object_id: str,
                                 object_data: Any) -> bool:
        """Upsert Salesfoce object by type, id and data.

        :param object_type: Salesforce object type
        :param object_id: Salesforce object id
        :param object_data: Salesforce object data
        :raises SalesforceDataNotAnDictionary: when `object_data` is not dictionary
        :return: True if successful
        """
        self._require_authentication()
        if not isinstance(object_data, dict):
            raise SalesforceDataNotAnDictionary(object_data)
        salesforce_object = SFType(object_type, self.session_id, self.instance)
        result_code = salesforce_object.upsert(object_id, object_data)
        return result_code == 204
update_data = {}
update_data['AccountNumber'] = 1293012931
update_data['CustomerPriority__c'] = 'Medium'

accounts__c.update(response.get('id'), update_data)
"""
Delete Records
"""
account.delete('0xxxxxxxxxxxxx')  # xxxxx is id
"""
Upsert records inserting new fields in the exiting records without using account id and using existing field names
"""
update_data['Name'] = 'Account_Fightclub'
externalid = 'AnnualRevenue/{0}'.format(10000)
update_data['AccountNumber'] = update_data['AccountNumber'] + 20000000
response = accounts__c.upsert(data=update_data)
"""
Using Bulk API to create records in Salesforce
"""
## Bulk query can be used for retreving vast records such as 50000
output = sf2.bulk.Account.query("SELECT Id, Name from Account LIMIT 5")
pd.DataFrame(output)

## Loading csv into salesforce object

load = pd.read_csv('S:/SURAJ_STUFF/Spyder/Saved Python files/Account_demo.csv')

bulk_data = []
for i in load.itertuples():
    d = i._asdict()
    del d['Index']