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第三方库


热门话题
Gson类中的java验证错误   If和elseif之间的java差异?   字典Java8地图。输入比较器   java连接到远程计算机以获得WMI支持   java如何使用改型处理JSON对象中的空值   在Java中使用Comparator时不可编译的源代码   java将Jar添加到JSP的运行时路径   带有随机对象的while循环的java大O时间复杂性   java可以在不考虑参数的情况下模拟方法吗?   java我有一个简单的代码,它不工作。无法修复错误“println”   向eclipse添加Xively java库   java是否可以启用本机代码的缓存?   全局变量如何在Java中的所有类之间共享要使用的语言环境?   Java内存游戏如何翻转单个卡?