首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CE -使用SugarCRM [php]导出联系人

CE -使用SugarCRM [php]导出联系人
EN

Stack Overflow用户
提问于 2017-12-11 15:10:51
回答 1查看 188关注 0票数 1

我有SugarCrm插件,它将数据导出到外部服务。我正在为更新/删除/新联系人使用逻辑挂钩,但是在同步已经存在的数据方面遇到了问题。我必须从SugarCRM中提取所有数据,我尝试使用了两个SugarBean方法: get_full_list()和get_list()。第一个给出了完整的联系人列表,但我需要在一个Json max中批量发送1000个联系人,第二个方法只返回联系人的第一页(取决于配置设置10-1000max条目)。

我用的是自动取款机:

代码语言:javascript
复制
    // prepare contacts data from SugarBean
    $bean = BeanFactory::getBean($module);
    $contactResults = $bean->get_full_list();

然后使用$contactResults并将我想要的数据保存为所需的格式,并通过postrequest将其作为Json发送。我试图找到把它分成几个批次的解决方案,但我被困住了:( get_full_list和get_list似乎都不适合我。)

有什么建议吗?也许有人已经解决了这个问题?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-11 17:29:41

在我看来你的问题是批量生产?如果没有,请更具体地说明哪些是不起作用的。

  • 要将数组拆分为批处理,您可能需要查看https://php.net/manual/en/function.array-chunk.php
  • 此外,get_list还支持检索后面的页面。它的定义如下:function get_list($order_by = "", $where = "", $row_offset = 0, $limit=-1, $max=-1, $show_deleted = 0, $singleSelect=false, $select_fields = array())。这意味着对于第二个页面,您可以指定$row_offset = 1000,对于第三个页面,可以指定2000等等。因此,基本上运行一个循环,用$limit = 1000调用get_list,并在每次迭代后通过1000增加初始$row_offset,直到函数返回小于1000记录或null为止。

如果您在处理这些bean时遇到问题,下面是一些一般性提示:

  • 如果您遇到的问题是数据不完整,请使用每个bean的ID手动加载。默认情况下,一些Sugar函数不会加载所有(特殊)字段。
  • 如果事情似乎毫无原因地失败了,请确保检查PHP日志中是否有错误。也许一次加载尽可能多的bean可能会导致PHP的max_execution_timememory_limit出现问题。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47755837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档