コード例 #1
0
    def _gen_schema(sftype_obj: SFType):
        """
        Generates a list of field/column names on this Table, as well
        as a dictionary with field/column names as keys and data types
        and front-end labels for that field/column.

        Args:
            sftype_obj: A simple_salesforce.SFType object with
                a describe() method that contains 'fields' as a key.

        Returns: A list of field/column api_names and a dictionary
            containing information about said field/columns.

        """
        cols = []
        schema = dict()
        cust_field_ct = 0
        for f in sftype_obj.describe()['fields']:
            name = f['name']
            custom = f['custom']
            if custom:
                cust_field_ct += 1
            schema[name] = dict(label=f['label'],
                                type=f['type'],
                                custom=custom)
            cols.append(name)
        return Record(cols), Record(schema), len(cols), cust_field_ct
コード例 #2
0
    def describe_salesforce_object(self, object_type: str) -> dict:
        """Get Salesfoce object description by type.

        :param object_type: Salesforce object type
        :return: object description as dictionary
        """
        self._require_authentication()
        salesforce_object = SFType(object_type, self.session_id, self.instance)
        return dict(salesforce_object.describe())
コード例 #3
0
ファイル: sfdc.py プロジェクト: mudits1990/Pyramidapp
 def getTableData(self,sObject):
     sf = Salesforce(instance_url=self.instance_url, session_id=self.session_id)
     session_id = sf.session_id
     instance = sf.sf_instance
     query = "Select "
     sObjectName = SFType(sObject,session_id,instance)
     for x in sObjectName.describe()['fields']:
         query = query + x['name'] + ","
     query = query[:-1] + " from " + sObjectName.name
     #print query
     res = sf.query_all(query)
     records = res['records']
     ls = []
     adapter = mongoadapter.adapter()
     collection = adapter.createColletion(sObject)
     for x in records:
         data = {}
         for y in sObjectName.describe()['fields']:
             data[y['name']] = x[y['name']]
             #print data
         #print data
         ls.append(adapter.insert_posts(collection, data))
     return ls
コード例 #4
0
ファイル: sfdc.py プロジェクト: mudits1990/sfdcdata-fetch
 def getTableData(self,*args):
     sf = Salesforce(username=self.username, password=self.password, security_token=self.security_token)
     session_id = sf.session_id
     instance = sf.sf_instance
     query = "Select "
     #session_id, instance = SalesforceLogin(self.username, self.password, self.security_token, True)
     for sObject in args:
         sObjectName = SFType(sObject,session_id,instance)
         for x in sObjectName.describe()['fields']:
             query = query + x['name'] + ","
         query = query[:-1] + " from " + sObjectName.name
         print query
         res = sf.query_all(query)
         records = res['records']
         ls = []
         data = {}
         adapter = mongoadapter.adapter()
         collection = adapter.createColletion(sObject)
         for x in records:
             for y in sObjectName.describe()['fields']:
                 data[y['name']] = x[y['name']]
             print data
             ls.append(adapter.insert_posts(collection, data))
     return ls
コード例 #5
0
 def get_sf_fields(self, url, sfobj_api=None, dummy=False):
     """
     :param url:
     :param sfobj_api:
     :param dummy:
     :return sf_object_fields:
     """
     import json
     if sfobj_api:
         sftype_object = SFType(sfobj_api,
                                session_id=self.security_token,
                                sf_instance=url)
         describe = sftype_object.describe(headers=None)
         sf_object_fields = describe['fields']
         return sf_object_fields
     return None
コード例 #6
0
ファイル: sfdc.py プロジェクト: mudits1990/sfdcdata-fetch
 def getFieldType(self,*args):
     sf = Salesforce(username=self.username, password=self.password, security_token=self.security_token)
     session_id = sf.session_id
     instance = sf.sf_instance
     type = {}
     ls=[]
     #session_id, instance = SalesforceLogin(self.username, self.password, self.security_token, True)
     for sObject in args:
         adapter = mongoadapter.adapter()
         sObject_type = sObject + "_type"
         collection = adapter.createColletion(sObject_type)
         print sObject_type
         sObjectName = SFType(sObject,session_id,instance)
         for y in sObjectName.describe()['fields']:
             type[y['name']] = y['type']
         ls.append(adapter.insert_posts(collection, type))
     return ls
コード例 #7
0
    def CreateSOQL(self, tablename):
        """
		Create the Select Statement for the tablename passed to this function
		"""
        if True:
            try:
                logging.info('Creating SOQL for table: ' + tablename)
                SFObj = self.getConnectSF()
                SFTypeName = SFType(tablename, SFObj.session_id,
                                    SFObj.sf_instance)
                description = SFTypeName.describe()
                field_names = [
                    field['name'] for field in description['fields']
                ]
                return 'SELECT {} FROM {}'.format(','.join(field_names),
                                                  tablename)

            except Exception as e:
                return 'FATAL_ERROR: while Creating SQL \nError Reason: ' + str(
                    e)
コード例 #8
0
ファイル: soql.py プロジェクト: magesh83/sf_query_assistant
def sf_tbl_detail(env, tblname):
    response = {}
    [err, err_msg, sf] = sf_conn(env)
    if (err == 0):
        try:
            obj = SFType(tblname, sf.session_id, sf.sf_instance, sf.sf_version)
            lst_meta = (obj.metadata()).get('objectDescribe')
            ord_dict = obj.describe()
            full_col_header = [
                'ColumnName', 'Label', 'datatype', 'length,precision',
                'IsUpdateable', 'IsNullable', 'restrictedPicklist'
            ]
            full_col_values = [[
                field["name"], field["label"], field["type"],
                str(field["length"]) + ',' + str(field["precision"]),
                bool_convert(field["updateable"]),
                bool_convert(field["nillable"]),
                bool_convert(field["restrictedPicklist"])
            ] for field in ord_dict["fields"]]
            response["table"] = tblname
            response["columns"] = full_col_header
            response["data"] = full_col_values
            response["error"] = 0
            response["qRows"] = 0
            response["error_msg"] = ""
        except:
            response["table"] = ""
            response["columns"] = ""
            response["data"] = ""
            response["error"] = 1
            response["qRows"] = 0
            response["error_msg"] = str(
                sys.exc_info()[1]).split("Response content")[1][1:]
    else:
        response["table"] = ""
        response["columns"] = ""
        response["data"] = ""
        response["error"] = err
        response["qRows"] = 0
        response["error_msg"] = err_msg
    return (response)
コード例 #9
0
ファイル: sfdc.py プロジェクト: mudits1990/Pyramidapp
    def getFieldType(self,sObject):
        sf = Salesforce(instance_url=self.instance_url, session_id=self.session_id)
        session_id = sf.session_id
        instance = sf.sf_instance
        type = {}
        ls=[]
        adapter = mongoadapter.adapter()
        sObject_type = sObject + "_type"
        collection = adapter.createColletion(sObject_type)
        print sObject_type
        sObjectName = SFType(sObject,session_id,instance)
        for y in sObjectName.describe()['fields']:
            type[y['name']] = y['type']
        ls.append(type)
        return ls

#sfdc = sfdcdatafetch('*****@*****.**','mammoth1234$','N0OF2max8RxHHoZkY4AB96uih')
#sfdc = sfdcdatafetch('*****@*****.**','mammoth1234$','oy4po3ssdQ8UJieOpxL4sYjN')
#print sfdc.returnsObject()
#sfdc.getFieldType('Campaign__c', 'Account')
#sfdc.getTableData('Campaign__c')
コード例 #10
0
ファイル: soql.py プロジェクト: magesh83/sf_query_assistant
def sf_tbl_desc(env, tblname):
    response = {}
    [err, err_msg, sf] = sf_conn(env)

    if (err == 0):
        try:
            obj = SFType(tblname, sf.session_id, sf.sf_instance, sf.sf_version)
            lst_meta = (obj.metadata()).get('objectDescribe')
            ord_dict = obj.describe()
            col_lst = ord_dict.get('fields')
            column_names = [field["name"].lower() for field in col_lst]
            response["error"] = 0
            response["error_msg"] = ""
            response["column_names"] = column_names
        except:
            response["error"] = 1
            response["qRows"] = []
            response["error_msg"] = str(
                sys.exc_info()[1]).split("Response content")[1][1:]
    else:
        response["error"] = err
        response["column_names"] = []
        response["error_msg"] = err_msg
    return (response)
コード例 #11
0
print(metadata_org['maxBatchSize'])
#print(metadata_org['sobjects'])
print(type(metadata_org['sobjects']))

# to store the huge list in pandas
df_sobjects = pd.DataFrame(metadata_org['sobjects'])
print(df_sobjects)

#pd.set_option('display.max_columns',100)
#pd.set_option('display.max_rows',500)
#pd.set_option('display.min_rows',500)
#pd.set_option('display.max_colwidth',150)
#pd.set_option('display.width',120)
#pd.set_option('expand_frame_repr',True)

df_sobjects.to_csv('Org Metadata info Salesforce.csv', index=False)

# To get extract SALESFORCE Meta data objects Value & API
# Method 1
accounts = sf.account
type(accounts)
accounts_metadata = accounts.describe()
df_account_metadata = pd.DataFrame(accounts_metadata.get('fields'))
df_account_metadata.to_csv('Account Object Metadata.csv', index=False)

# Method 2

project = SFType('Project__c', session_id, instance)
project_metadata = project.describe()
df_project_metadata = pd.DataFrame(project_metadata.get('fields'))
df_project_metadata.to_csv('Project Object Metadata.csv', index=False)
コード例 #12
0
def describe_sobject(sobjectname):
    sobject = SFType(sobjectname,
                     session_id=sf.session_id,
                     sf_instance=sf.sf_instance)

    return sobject.describe()
コード例 #13
0
# print salesforce version
# print(sf.sf_version)

for item in dir(sf):
    if not item.startswith('-'):
        if (isinstance(getattr(sf, item), str)):
            print('Property Name:{0};Value"{1}'.format(item, getattr(sf,
                                                                     item)))

metadata_org = sf.describe()
# print(metadata_org.keys())
print(metadata_org['encoding'])
print(metadata_org['maxBatchSize'])
print(metadata_org['sobjects'])
df_sobjects = pd.DataFrame(metadata_org['sobjects'])
df_sobjects.to_csv('org metadata info.csv', index=False)

# method 1
account = sf.account
print(type(account))
account_metadata = account.describe()
print(type(account_metadata))
df_account_metadata = pd.DataFrame(account_metadata.get('fields'))
df_account_metadata.to_csv('account_metadata.csv', index=False)

# method2
contact = SFType('Contact', session_id, instance)
contact_metadata = contact.describe()
df_contact_metadata = pd.DataFrame(contact_metadata.get('fields'))
df_contact_metadata.to_csv('contact_metadata.csv', index=False)
コード例 #14
0
"""
Filename: salesforce_records.py
Working with record management in Salesforce with Python
"""

# Import Dependencies
from simple_salesforce import Salesforce, SFType, SalesforceLogin
from pandas import DataFrame, read_csv, set_option
import json
from pprint import pprint as pp

set_option('display.max_columns', 50)

login = json.load(open('login.json'))
username = login['username']
password = login['password']
token = login['token']

session_id, instance = SalesforceLogin(username=username, password=password, security_token=token)

# sf = Salesforce(instance=instance, session_id=session_id)

# metadata = DataFrame(sf.describe()['sobjects'])
# metadata.to_csv(r'C:\Users\mjgri\Programming\Salesforce\salesforce_venv' + '\\metadata.csv')

sAccount = SFType('account', session_id=session_id, sf_instance=instance)

sAccount_meta = DataFrame(sAccount.describe()['fields'])
sAccount_meta.to_csv(r'C:\Users\mjgri\Programming\Salesforce\salesforce_venv' + '\\Account_Metadata.csv')