SugarCRM API的Python客户端

sugarcrm的Python项目详细描述


SugarCRM API的Python客户端。

http://img.shields.io/pypi/v/sugarcrm.svghttp://img.shields.io/pypi/dm/sugarcrm.svghttp://img.shields.io/pypi/l/sugarcrm.svg

示例用法

importsugarcrm# Connecturl="http://your-sugarcrm-domain/service/v4/rest.php"session=sugarcrm.Session(url,username,password)# Create a new notenote=sugarcrm.Note(name="Test Note")# Save notesession.set_entry(note)# Add attachment to notesession.set_note_attachment(note,"sugarcrm.py")# Query for all notes that have a name that begins with "Test"note_query=sugarcrm.Note(name="Test%")results=session.get_entry_list(note_query)# Query for all contacts with the first name "Mylee"contact_query=sugarcrm.Contact(first_name="Mylee")results=session.get_entry_list(contact_query)# Get the email address for the user assigned to an Opportunityop=session.get_entry("Opportunities","82f72939-735e-53a2-0944-5418c4edae2a")user=session.get_entry("Users",op.assigned_user_id)printuser.email1# Change the status of an Opportunityop=sugarcrm.Opportunity(id="82f72939-735e-53a2-0944-5418c4edae2a")op.sales_stage="Approved"session.set_entry(op)# Extract all non-empty email fields from all Contacts in SugarCRMemails=set()contact_query=sugarcrm.Contact()# No filters provider finds all objectscontact_count=session.get_entries_count(contact_query,deleted=True)print"Extracting emails from %d Contacts"%contact_count# Grab 100 Contact objects at a time from SugarCRMforoffsetinrange(0,count,100):contacts=session.get_entry_list(contact_query,deleted=True,max_results=100,offset=offset)forcontactincontacts:forfieldindir(contact):iffield.find("email")>=0andgetattr(contact,field,"").find("@")>=0:emails.add(getattr(contact,field).lower())print"Found %d emails"%len(emails)

安装

最新的稳定版本始终可以通过pip安装或更新:

$ pip install sugarcrm

如果上述操作失败,请改用Easy_安装:

$ easy_install sugarcrm

会话对象

类sugarcrm.session(url,用户名,密码,app=“python”,lang=“en_us”,verify=true)
用于连接SugarCRM API并使用发出请求的主类。
url="http://your-sugarcrm-domain/service/v4/rest.php"session=sugarcrm.Session(url,username,password)

verify参数直接传递给python请求库,python请求库用于向sugarcrm api发出http post请求。从python请求文档中阅读有关此参数的更多信息:http://docs.python-requests.org/en/latest/user/advanced/#ssl-cert-verification

可用方法

获取可用的模块(filter=“default”)
检索系统中可用模块的列表。 可能的筛选值:“默认”、“移动”、“全部”
modules=session.get_available_modules()forminmodules:printm.module_key
获取项(模块,对象id,链接{},轨迹视图=false)
根据对象id检索单个对象。
note=session.get_entry("Notes","f0c78aab-e051-174a-12aa-5439a7146977")printnote.name# Get a lead and specific fields from linked contacts in one querylinks={'Contacts':['id','first_name','last_name']}lead=session.get_entry("Leads","d7dac88d-ce33-d98a-da8b-5418bba9e664",links=links)forcinlead.contacts:printc.id,c.first_name,c.last_name
获取条目(模块、对象id、轨迹视图=false)
根据指定的对象id检索对象列表。
ids=["f0c78aab-e051-174a-12aa-5439a7146977","32f02fj2-4ggn-4nnf-fs33-f3fh3f93n333","82f72939-735e-53a2-0944-5418c4edae2a",]notes=session.get_entries("Notes",ids)fornoteinnotes:printnote.name
获取条目数(查询对象,已删除=false)
根据查询规范检索bean的计数。
# Get a count of all Contacts with a first name of "Fred"# and include Contacts that have been deletedcontact_query=sugarcrm.Contact(first_name="Fred")contacts=session.get_entries_count(contact_query,deleted=True)forcontactincontacts:printcontact.first_name,contact.last_name
获取条目列表(查询对象,字段=[],链接={},排序依据=”,最大结果=0,偏移量=0,删除=false,收藏夹=false)
根据查询规范检索对象列表。
# Get a list of all Notes with a name that begins with "Test"note_query=sugarcrm.Note(name="Test%")notes=session.get_entry_list(note_query)fornoteinnotes:printnote.name# Get a list of all Opportunities created since Sept 1, 2014 and include# data about link contacts with each Opportunitity returnedq=sugarcrm.Opportunity()q.query="opportunities.date_entered > '2014-09-01'"links={'Contacts':['id','first_name','last_name']}results=session.get_entry_list(q,links=links)foroinresults:forcino.contacts:printo.id,c.id,c.first_name,c.last_name
登录(用户名、密码、app=“python”、lang=“en-us”)
将用户登录到SugarCRM应用程序。
设置文档修订(文档、文件)
为特定的文档记录创建新的文档修订版。
doc=sugarcrm.Document(document_name="Test Doc",revision=1)session.set_entry(doc)session.set_document_revision(doc,"/path/to/test.pdf")
设置项(sugar对象)
创建或更新特定对象。
note=sugarcrm.Note()note.name="Test Note"note.assigned_user_id="82f72939-735e-53a2-0944-5418c4edae2a"session.set_entry(note)printnote.id
设置注释附件(注释,附件)
创建附件并将其关联到特定的便笺对象。
withopen("test1.pdf")aspdf_file:session.set_note_attachment(note1,pdf_file)session.set_note_attachment(note2,"test2.pdf")printnote1.filename,note2.filename
设置关系(父、子、删除=false)
设置两条记录之间的关系。
doc=sugarcrm.Document(document_name="Test Doc",revision=1)session.set_entry(doc)session.set_document_revision(doc,"/path/to/test.pdf")opportunity=session.get_entry("Opportunities","5b671886-cfe4-36f5-fa9d-5418a24e4aca")session.set_relationship(opportunity,doc)

不可用的方法

以下较少使用的sugarcrm api方法未包含在此 图书馆还没有。如果您需要这些方法中的任何一种,请打开一个issue 会很乐意实施的!

获取文档修订版()
方法尚未实现。
获取语言定义()
方法尚未实现。
获取上次查看的内容()
方法尚未实现。
获取已修改的关系()
方法尚未实现。
获取模块字段()
方法尚未实现。
获取模块字段md5()
方法尚未实现。
获取模块布局()
方法尚未实现。
获取注释附件()
方法尚未实现。
获取报价
方法尚未实现。
获取关系()
方法尚未实现。
获取报告条目()
方法尚未实现。
获取报告(pdf)
方法尚未实现。
获取服务器信息()
方法尚未实现。
获取即将到来的活动()
方法尚未实现。
获取用户ID()
方法尚未实现。
获取用户团队id()
方法尚未实现。
作业队列周期()
方法尚未实现。
作业队列@u next()
方法尚未实现。
作业队列运行()
方法尚未实现。
注销()
方法尚未实现。
oauth_access()
方法尚未实现。
无缝登录()
方法尚未实现。
按模块搜索
方法尚未实现。
设置活动合并()
方法尚未实现。
设置项()
方法尚未实现。
设置关系()
方法尚未实现。
截取导入电子邮件()
方法尚未实现。
截取更新联系人()
方法尚未实现。

SugarCRM对象

>>>call=sugarcrm.Call()>>>printcall.module"Calls">>>campaign=sugarcrm.Campaign()>>>printcampaign.module"Campaigns">>>contact=sugarcrm.Contact()>>>printcontact.module"Contacts">>>document=sugarcrm.Document()>>>printdocument.module"Documents">>>email=sugarcrm.Email()>>>printemail.module"Emails">>>lead=sugarcrm.Lead()>>>printlead.module"Leads">>>module=sugarcrm.Module()>>>printmodule.module"Modules">>>note=sugarcrm.Note()>>>printnote.module"Notes">>>opportunity=sugarcrm.Opportunity()>>>printopportunity.module"Opportunities">>>product=sugarcrm.Product()>>>printproduct.module"Products">>>prospect=sugarcrm.Prospect()>>>printprospect.module"Prospects">>>prospect_list=sugarcrm.ProspectList()>>>printprospect_list.module"ProspectLists">>>quote=sugarcrm.Quote()>>>printquote.module"Quotes">>>report=sugarcrm.Report()>>>printreport.module"Reports">>>user=sugarcrm.User()>>>printuser.module"Users"

开发版本

最新的开发版本可以直接从github安装:

$ pip install --upgrade https://github.com/ryanss/sugarcrm/tarball/master

贡献

IssuesPull Requests总是受欢迎的。

许可证

代码和文档根据麻省理工学院的许可证提供 (见LICENSE)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从Aparabi线程返回   为什么这个正则表达式可以使用Java而不能使用Groovy   java密钥管理器连接早期刷新令牌   数组。lang.ArrayIndexOutofBounds异常:4   java嗅探访问的站点并保存到文件   java从一个特定子字符串后开始的字符串中获取两个双倍子字符串   JavaAndroid:SharedReferences。如何正确地实施它们   java通过Flatworm创建列表   java如何在TestNG框架中的@BeforeClass方法中使用数据驱动测试   java标题视图bug我不明白   Java中的Java解释器或编译器   java如何将一维索引转换为多维数组中的相应索引?   Java泛型警告。util。收藏   java JSP页面在不合适的地方创建JSESSIONID cookie   配置javaapachelog4jlog4j。xml配置多个错误   无法设置java EditText焦点   java将文本框的标签放在框的上方,而不是侧面   如何使用Java8处理可空列表?   java将3x3 2D数组插入9x9 2D数组