代码之家  ›  专栏  ›  技术社区  ›  AntonioCS

SugarCRM SOAP set_联系人和潜在客户列表之间的关系bug

  •  2
  • AntonioCS  · 技术社区  · 14 年前

    我试图在潜在客户列表(目标列表)和联系人之间建立关系。

    我创建了一个新的联系人,并使用我创建的类(它们只是sugar提供的soap api调用的包装)获取了一个潜在客户列表的id。 但代码可以归结为这个soap调用:

    $this->_sugarsoap->client->__soapCall('set_relationship', array($this->getSessionid(),$relationship));
    

    $this->getSessionid()是会话Id,$relationship是一个数组,其中包含:

    array
      0 => string 'ProspectLists' (length=13)
      1 => string '180ab1f5-cf7e-d386-50f8-4c18a790e016' (length=36)
      2 => string 'Contacts' (length=8)
      3 => string '76323942-8cbb-3224-f18a-4c19efa80a1b' (length=36)
    

    在我尝试这个之后,我总是得到这个错误:(我对soap调用的返回值进行var_转储)

    object(stdClass)[5]
      public 'number' => string '20' (length=2)
      public 'name' => string 'Module Does Not Exist' (length=21)
      public 'description' => string 'This module is not available on this server' (length=43)
    

    这看起来像一个sugarcrm错误,因为我有contacts模块和prospect列表模块。我之所以知道这一点是因为我通过soap调用添加了一个联系人,还通过soap调用检索了潜在客户列表的id。

    我发现 this thread 在sugar论坛中,我确实尝试了那里给出的代码,但仍然得到了相同的错误。

    有人能解决这个问题吗?我真的需要通过soap调用将联系人与潜在客户列表(目标列表)关联起来。

    我在使用mysql的ubuntu服务器上使用SugarCRM 5.5.0(我也尝试了sugarcrm5.5.2,得到了同样的错误)。

    谢谢!

    编辑:

    好的,我从线程中得到了修复,并对我的部分进行了一些修正。在我传递给set_relationships函数的数组中,我必须使用以下格式:

     'module1' => 'modnameA',
     'module1_id' => 'modidA',
     'module2' => 'modnameB',
     'module2_id' => 'modidB
    

    希望这对某人有帮助:)

    1 回复  |  直到 14 年前
        1
  •  0
  •   Code Lღver Ionut Rusen    11 年前

    以下代码将帮助您确定:

    $relationship = array(
      'session' => $session_id, //session id that comes after login by soap
      'set_relationship_value'=>array(
        'module1' => 'Prospect',  // your module name
        'module1_id' => "$ProspectID", // your first module id
        'module2' => 'Contact', // your second module
        'module2_id' => "$ContactId", // send module id
      )
    );
    

    使用这个数组。希望这对你有帮助。