def get_salesforce_object_metadata(self, object_type: str) -> dict: """Get Salesfoce object metadata by type. :param object_type: Salesforce object type :return: object metadata as dictionary """ self._require_authentication() salesforce_object = SFType(object_type, self.session_id, self.instance) return dict(salesforce_object.metadata())
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)
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)