php - SugarCRM REST API set_relationship 之间的报价和产品包

标签 php sugarcrm

我正在使用 SugarCRM Pro 6.5.5

我需要创建报价并使用 REST API 将产品添加到其中。所有 bundle > 教授 set_entry 的工作,以及 ProductBoducts 的 set_relationship 工作正常。但是,set_relationship 对于 Quotes > ProductBundles 不起作用。

这是我对 ProductBundles > 产品的输入:这很好用

{
   "session":"5qklti658f0ooou135vt8fkbi4",
   "module":"ProductBundles",
   "module_id":"50b71673-b555-9d68-04c9-508ef9582f47",
   "link_field_name":"products",
   "related_ids":[
      "a9615ab1-cd89-1549-f9b8-508f00c6fa84"
   ]
}

这是我对 Quotes > ProductBundles 的输入:这不起作用

{
   "session":"jqodi1pu8u2l8basca1hhcbt27",
   "module":"Quotes",
   "module_id":"bc01a88a-35c9-25ed-dfac-508ef206a264",
   "link_field_name":"product_bundles",
   "related_ids":[
      "50b71673-b555-9d68-04c9-508ef9582f47"
   ]
}

但它仍然返回:

{
   "created":1,
   "failed":0,
   "deleted":0
}

但是,product_bundle_quote 表中没有创建任何记录。

我深入研究了 Sugar 代码,发现了一些有趣的东西。

service/core/SoapHelperWebService.php 的第 735 行,是这样的:

$mod->$link_field_name->add($related_ids, $name_value_pair);

它调用文件 data/Relationships/M2MRelationship.php 第 118 行中的 add 方法。有趣的是,$lhsLinkName 为 NULL,即导致该方法返回 false。这是一个片段:

public function add($lhs, $rhs, $additionalFields = array())
{
    $lhsLinkName = $this->lhsLink;
    $rhsLinkName = $this->rhsLink;

    if (empty($lhs->$lhsLinkName) && !$lhs->load_relationship($lhsLinkName))
    {
        $lhsClass = get_class($lhs);
        $GLOBALS['log']->fatal("could not load LHS $lhsLinkName in $lhsClass");
        return false;
    }
    if (empty($rhs->$rhsLinkName) && !$rhs->load_relationship($rhsLinkName))
    {
        $rhsClass = get_class($rhs);
        $GLOBALS['log']->fatal("could not load RHS $rhsLinkName in $rhsClass");
        return false;
    }

它在第一个 if() block 中返回 FALSE,这意味着该记录从未创建。

此外,这也显示在我的日志中: [2139][1][FATAL] 无法在 ProductBundle 中加载 LHS

所以是的,我被困在这里了。我尝试搜索所有可能的内容,包括错误,但没有找到任何有用的内容。

最佳答案

这是一个 Sugar 错误,将在 6.7 版本中修复。同时,请查看此论坛帖子以获取代码修复。

http://forums.sugarcrm.com/f6/create-quote-line-items-web-service-api-83183/

关于php - SugarCRM REST API set_relationship 之间的报价和产品包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142505/

相关文章:

php - mysql查询自增

javascript - 如何持续监控某些网站并定期执行操作

php - Laravel 5.3 密码授予 token [用户凭据不正确]

javascript - 在电子邮件模块中配置电子邮件后,电子邮件存储在 sugarcrm 表中的什么位置?

sugarcrm - 如何从 SugarCRM 6.5 中的潜在客户详细信息 View 中删除或隐藏 InsideView 面板?

php - 根据查询将所有行提取到数组中

php - 从 Joomla 模块发出重定向

Angular http.get header 未被识别

php - 仅当 $bean->status 更改时逻辑钩子(Hook)才会触发

javascript - 在 SugarCRM 6.5.16 及更早版本中,从配置中获取值