Php SugarCRM REST API设置Quote和ProductBundle之间的关系

Php SugarCRM REST API设置Quote和ProductBundle之间的关系,php,sugarcrm,Php,Sugarcrm,我正在使用SugarCRM Pro 6.5.5 我需要创建一个报价,并使用RESTAPI向其中添加产品。所有bundle>Prof集合_项的工作,以及ProductBoducts的集合_关系工作正常。但是,为Quotes>ProductBundles设置_关系不起作用 以下是我对ProductBundles>Products的输入:这很好 这是我对Quotes>ProductBundles的输入:这不起作用 但它仍然返回: 但是,在product_bundle_quote表中没有创建任何记录 我

我正在使用SugarCRM Pro 6.5.5

我需要创建一个报价,并使用RESTAPI向其中添加产品。所有bundle>Prof集合_项的工作,以及ProductBoducts的集合_关系工作正常。但是,为Quotes>ProductBundles设置_关系不起作用

以下是我对ProductBundles>Products的输入:这很好

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

但它仍然返回:

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

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

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

$mod->$link_field_name->add($related_ids, $name_value_pair);
它在第118行的文件data/relationship/M2MRelationship.php中调用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块中返回FALSE,这意味着永远不会创建记录

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


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

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


这是一个Sugar bug,将在6.7版本中修复。同时,请查看此论坛帖子中的代码修复


这确实是一个糖虫,但不是另一个答案中的那个。它实际上与这个bug有关:。他们能够为我提供一个自定义模块,我可以上传并激活该模块,以便在6.7版发布之前解决这个问题,而这一问题预计将得到正式解决。您可能希望直接联系SugarCRM来解决此问题,具体取决于您的时间范围。

这确实是一个Sugar Bug,但不是另一个答案中的Bug。它实际上与这个bug有关:。他们能够为我提供一个自定义模块,我可以上传并激活该模块,以便在6.7版发布之前解决这个问题,而这一问题预计将得到正式解决。您可能希望直接联系SugarCRM以解决此问题,具体取决于您的时间范围。

我也遇到了同样的问题,为了解决这个问题,我在产品包vardef中添加了下面提到的代码,它开始正常工作

'quotes' =>
    array (

     'name' => 'quotes',
     'type' => 'link',
     'vname'=>'LBL_PRODUCT_BUNDLES',
     'relationship' => 'product_bundle_quote',
     'source'=>'non-db',

),

谢谢

我也遇到了同样的问题,为了解决这个问题,我在产品包vardef中添加了下面提到的代码,现在可以开始正常工作了

'quotes' =>
    array (

     'name' => 'quotes',
     'type' => 'link',
     'vname'=>'LBL_PRODUCT_BUNDLES',
     'relationship' => 'product_bundle_quote',
     'source'=>'non-db',

),

谢谢

您还必须将报价链接到产品。 请确保您的报价中包含以下内容:

'products' =>
    array (
      'name' => 'products',
      'type' => 'link',
      'relationship' => 'quote_products',
      'vname' => 'LBL_PRODUCTS',
      'source'=>'non-db',
),
在Web服务中,设置报价和产品之间的关系

{
    "session":$session_id,
    "module":"Quotes",
    "module_id":$quote_id,
    "link_field_name":"products",
    "related_ids":[
       $product_id 
    ]
}

这对我很有用。

你也必须将报价链接到产品。 请确保您的报价中包含以下内容:

'products' =>
    array (
      'name' => 'products',
      'type' => 'link',
      'relationship' => 'quote_products',
      'vname' => 'LBL_PRODUCTS',
      'source'=>'non-db',
),
在Web服务中,设置报价和产品之间的关系

{
    "session":$session_id,
    "module":"Quotes",
    "module_id":$quote_id,
    "link_field_name":"products",
    "related_ids":[
       $product_id 
    ]
}

这对我很有效。

这似乎无法解决我们的问题。即使在应用补丁后,也会看到同样的情况。这个bug与OP遇到的问题无关。我可以为这个错误和这个补丁程序的应用提供担保,它没有解决这个问题。这似乎并没有为我们解决这个问题。即使在应用补丁后,也会看到同样的情况。这个bug与OP遇到的问题无关。我可以为这个错误和这个补丁程序没有解决这个问题的应用提供担保。在使用实现RESTAPI的python库时,我得到了完全相同的结果。我有一张公开的支持票,我自己也在调查。如果我学到了什么,我会跟进。我在使用实现RESTAPI的python库时得到了完全相同的东西。我有一张公开的支持票,我自己也在调查。如果我学到了什么,我会跟进的。