标签: simple-salesforce

如何在 Salesforce 中执行 JOIN (SOQL) - 简单 Salesforce(Python 库)

我正在使用python 的simpleSalesforce库来查询 SalesForce。

我正在查看 SalesForce 中的两个不同对象:帐户和机会(父子)。机会对象中有一个 accountId。

我正在尝试在两者之间执行内部联接并选择结果(两个对象的字段)。正常的 SQL 语句如下所示:

SELECT acc.Name, opp.StageName
FROM Account AS acc
JOIN Opportunity AS opp ON acc.Id = opp.AccountId
Run Code Online (Sandbox Code Playgroud)

我不知道如何将这种查询转换为 SOQL。

python join salesforce soql simple-salesforce

11
推荐指数
2
解决办法
3万
查看次数

Python Simple Salesforce

我正在尝试使用simple_salesforce来使用Python查询salesforce数据.我正在使用我的用户名和密码,我100%肯定是正确的.我从登录Salesforce并查看我的公司资料中获得了组织ID.这只是一个15位数的ID.我特意使用orgID来避免使用安全令牌,因为我不知道它是什么.我究竟做错了什么?

码:

from simple_salesforce import Salesforce
sf = Salesforce(instance_url='https://na1.salesforce.com', session_id='')
sf = Salesforce(password='password', username='email', organizationId='15 digit org id')
Run Code Online (Sandbox Code Playgroud)

输出:

File "C:\Python27\lib\site-packages\simple_salesforce\api.py", line 100, in __init__
proxies=self.proxies)
File "C:\Python27\lib\site-packages\simple_salesforce\login.py", line 124, in SalesforceLogin
code=except_code, message=except_msg))
simple_salesforce.login.SalesforceAuthenticationFailed: INVALID_LOGIN: Invalid username, password, security token; or user locked out.
Run Code Online (Sandbox Code Playgroud)

python soap salesforce python-2.7 simple-salesforce

7
推荐指数
2
解决办法
9135
查看次数

Lambda 函数因 /lib64/libc.so.6 失败:找不到版本“GLIBC_2.18”

我正在尝试在 AWS lambda 中创建一个 simple-salesforce (Python 库)层,并尝试从我的 python 代码中使用它(导入它)。我有 Windows 机器。

尽管我读到编译窗口可能会出现问题,所以我从 Windows 商店安装了 ubuntu1804,然后继续为 lambda 层创建 zip。(zip是为python文件夹创建的,结构为“python/lib/python3.6/site-packages/......”)

我正在使用Python 3.6。我针对这个问题浏览了几篇文章,但可以找到任何解决方案。该视频帮助我成功地在 AWS 中为 Pandas 和请求创建了一个层,并对我使用的 pip 命令进行了细微调整

sudo python3 -m pip install simple-salesforce -t build/python/lib/python3.6/site-packages
Run Code Online (Sandbox Code Playgroud)

我在 Simple salesforce 中使用的流程完全相同,但出现以下错误:

无法导入模块“lambda_function”:/lib64/libc.so.6:找不到版本“GLIBC_2.18”(/opt/python/lib/python3.6/site-packages/cryptography/hazmat/bindings/_rust 需要.abi3.so)

编辑:--我尝试使用 .whl 的另一种方法,虽然这没有给出上述错误,但给出错误为“找不到请求模块”,当我添加请求模块层时,它给出错误 authlib not found。(如果我评论 salesforce 相关的内容,请求层工作正常。甚至尝试上传为简单层,我遇到了相同的 authlib 问题)

编辑:我使用的 Lambda 代码如下

the code I am using is basic code which doesnt have any logic with empty imports

import json
import pandas as pd
import requests as …
Run Code Online (Sandbox Code Playgroud)

python-3.6 simple-salesforce aws-lambda-layers

7
推荐指数
3
解决办法
1万
查看次数

使用 simple-salesforce python 上传多个文件

我开始学习 SalesForce 并使用 django 开发应用程序。

我需要将文件上传到 salesforce 方面的帮助,为此我阅读了simple-salesforce有助于使用 Rest 和 SOAP api 上传文件。

我的问题是如何使用 simple-salesforce 上传一个或多个文件?

python django salesforce simple-salesforce

6
推荐指数
1
解决办法
3436
查看次数

使用python simple-salesforce访问Salesforce元数据

在阅读simple-salesforce文档时,它仅显示使用诸如此类的硬编码方法访问对象元数据:

sf.Contact.metadata()
Run Code Online (Sandbox Code Playgroud)

没有办法做这样的事情吗?

sf["Contact"].metadata()
Run Code Online (Sandbox Code Playgroud)

我想遍历对象列表并检索所有这些对象字段,但是由于上述限制,看来这是不可能的。

for obj in objects:
    fields = [x["name"] for x in sf[obj].describe()["fields"]]
    # processing for each object
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使用字符串参数而不是硬编码值来访问对象元数据?

python salesforce simple-salesforce

5
推荐指数
1
解决办法
1229
查看次数

Salesforce 数据转换为 Python(简单 Salesforce 或 salesforce-bulk)

我正在尝试将 Salesforce 数据加载到 Python 数据框中,以便我们可以在那里进行所有操作。simple_salesforce 处理了我们达到 2,000 人限制的警告:

from simple_salesforce import Salesforce as s
eatpies = sf.query('Select Id from Case')
attrs = ['Id']
records = eatpies['records']

data = {}

for rec in records:
    for k in attrs:
        data.setdefault(k, []).append(rec[k])

dframe = pd.DataFrame(data)

print(dframe)
Run Code Online (Sandbox Code Playgroud)

据说, salesforce-bulk (https://pypi.python.org/pypi/salesforce-bulk/1.0.7)能够绕过这个限制,但我不能比这更进一步:

job = bulk.create_query_job("Case", contentType='CSV')
batch = bulk.query('select Id, type from Case')

TypeError                                 Traceback (most recent call last)
<ipython-input-13-076e14bf245d> in <module>()
----> 1 batch = bulk.query('select Id, type from Case')

TypeError: query() missing …
Run Code Online (Sandbox Code Playgroud)

python salesforce simple-salesforce

5
推荐指数
1
解决办法
4016
查看次数

Python Simple Salesforce选择所有字段

我正在使用Python Simple-Salesforce通过SOQL查询数据.我知道SOQL语法中不支持"SELECT*",所以我想创建一个Python脚本来收集要插入SELECT语句的所有字段的字符串列表.以下是我描述帐户对象的方式:

from simple_salesforce import Salesforce
from simple_salesforce import SFType

#(credentials hidden)
sf = Salesforce(username=username, password=password,
                security_token=security_token, sandbox=True, 
                client_id='mwheeler App')

desc = sf.Account.describe()  
print(desc)
Run Code Online (Sandbox Code Playgroud)

如何从下面显示的有序词典中将字段名称提取到字符串列表中?

desc:

OrderedDict([('actionOverrides',[]),('activateable',False),('childRelationships',[OrderedDict([('cascadeDelete',False),('childSObject','Account'),('deprecatedAndHidden ',False),('field','ParentId'),('junctionIdListNames',[]),('junctionReferenceTo',[]),('relationshipName','ChildAccounts'),('restrictedDelete',False) ]),OrderedDict([('cascadeDelete',True),('childSObject','AccountCleanInfo'),('deprecatedAndHidden',False),('field','AccountId'),......

我将使用字符串列表来选择所有字段:

query = sf.query_all("SELECT string_list FROM Account")
Run Code Online (Sandbox Code Playgroud)

python salesforce soql simple-salesforce

5
推荐指数
1
解决办法
4539
查看次数

通过 Salesforce 中的 SOQL 查询获取选项列表值

我正在使用 Djnago 和 Salesforce。

我通过 simple-salesforce 在他们之间建立联系

我在 Salesforce 的联系人对象上创建了一个自定义选项列表。

我不会获取我的选项列表的所有 20 个值并在 Django 中显示。

我正在寻找 SOQL 从 Salesforce 获取值。

sf = Salesforce(instance_url='https://test.salesforce.com', session_id='')
sf1 = Salesforce(connection parameters)
sf3 = sf1.query("SELECT Color__c FROM Contact")
Run Code Online (Sandbox Code Playgroud)

sf3 将为我提供为各个联系人记录设置的值。

我想获取在 Contact 对象上创建 Color__c 时输入的所有 20 个值。在 Apex 中我们可以这样做,如下所示

public class PicklistUtil { 
    public static List<Schema.PicklistEntry> getContactColor() { 
        return Contact.Color__c.getDescribe().getPicklistValues(); 
   } 
}
Run Code Online (Sandbox Code Playgroud)

我希望在 Django 中做同样的事情。有人可以帮忙吗?

python django salesforce soql simple-salesforce

4
推荐指数
1
解决办法
3946
查看次数

无法通过 python API 登录 Salesforce Sandbox

我正在使用 python3.7.2 模块simple-salesforce==0.74.2,但在尝试建立与我的 salesforce 沙箱的连接时遇到问题。我可以使用相同的凭据登录到 salesforce 生产环境,如下所示:

from simple_salesforce import Salesforce
sf = Salesforce(username='user@domain.com', password='pswd', security_token='mytoken')
Run Code Online (Sandbox Code Playgroud)

好吧,酷。现在我尝试使用以下命令登录我的沙箱:

sf = Salesforce(username='user@domain.com.sandbox_name', password='pswd', security_token='mytoken', sandbox=True)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

simple_salesforce.exceptions.SalesforceAuthenticationFailed:INVALID_LOGIN:用户名、密码、安全令牌无效;或用户被锁定。

所以我尝试使用不同的方法登录:

sf = Salesforce(username='user@domain.com.sandbox_name', password='pswd', security_token='mytoken', domain='sandbox_name')
Run Code Online (Sandbox Code Playgroud)

这给出了一个不同的错误:

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='sandbox_name.salesforce.com', port=443): 超过最大重试次数,url: /services/Soap/u/38.0 (由 NewConnectionError(': 无法建立新连接引起) : [Errno 8] 节点名称或服务名称已提供,或未知'))

我正在使用名为 的开发人员沙箱sandbox_name,遵循销售人员的指示。有人可以对我做错的事情提出一些建议吗?

sandbox salesforce python-3.7 simple-salesforce

4
推荐指数
1
解决办法
6089
查看次数

Simple_Salesforce 动态批量查询

将对象动态添加到 Simple_Salesforce 的批量查询作业。

我不确定如何将变量传递给sf.bulk."Object".query.

我希望能够将一个对象说“帐户”传递给定义,并且它执行批量查询 sf.bulk.Account.query("SOQL...")

sf = Salesforce(username=sf_username, password=sf_password, security_token=sf_token)

def SOQL(table):
    qryResult = sf.bulk.`table`.query('SELECT Id FROM ' + table)

SOQL("Account")

Run Code Online (Sandbox Code Playgroud)

我希望 python 将其翻译为 sf.bulk.Account.query("SELECT Id FROM Account")

python simple-salesforce

4
推荐指数
1
解决办法
435
查看次数

如何通过simple_salesforce进行Salesforce Bulk API调用?

我正在使用该模块simple-salesforce,我在文档中没有看到有关进行批量API调用的任何内容.有人知道怎么做吗?

https://github.com/simple-salesforce/simple-salesforce

python salesforce simple-salesforce

2
推荐指数
1
解决办法
3383
查看次数

使用 simple-salesforce 从 salesforce 表中删除表行

我已成功查询表、提取架构并向(自定义)表添加一行,但无法弄清楚如何通过 API 再次删除该行。以下将列出我想要删除的行:

import config
from simple_salesforce import Salesforce

sf = Salesforce(password=config.PASSWORD, 
                username=config.EMAIL_SANDBOX, 
                organizationId='',
                domain='test')

sf.query("SELECT Id FROM MyTable__c where id = 'a0D2R067009YpAeWAK'")
Run Code Online (Sandbox Code Playgroud)

已经尝试了网络上的各种东西太久了,最有可能的是这样的:

sf.query("delete [SELECT Id FROM MyTable__c where id = 'a0D2R067009YpAeWAK']")
Run Code Online (Sandbox Code Playgroud)

正如这里所描述的,但不幸的是它提出了:

SalesforceMalformedRequest:格式错误的请求https://eu20.salesforce.com/services/data/v38.0/query/?q=delete+%5BSELECT+Id+FROM+MyTable__c+where+id+%3D+%27a0D2R067009YpAeWAK%27%5D。响应内容:[{'message': '意外的令牌:删除', 'errorCode': 'MALFORMED_QUERY'}]

已经尝试过这方面的变体,结果基本相同。有什么想法如何让它发挥作用吗?

python salesforce simple-salesforce

1
推荐指数
1
解决办法
2248
查看次数