Php SOAP4集_关系不工作

Php SOAP4集_关系不工作,php,soap,sugarcrm,Php,Soap,Sugarcrm,在通过get_entry_list争取获得20多个条目之后,我现在尝试使用SugarCRM 6.5上的SOAP API来设置两个元素之间的关系,这两个元素是从user land网站上的表单创建的 devs博客中对set\u关系方法的描述如下: $response = set_relationship(session, module_name, module_id, link_field_name, related_ids, name_value_list, delete); 这里是处理请求的代

在通过
get_entry_list
争取获得20多个条目之后,我现在尝试使用SugarCRM 6.5上的SOAP API来设置两个元素之间的关系,这两个元素是从user land网站上的表单创建的

devs博客中对
set\u关系
方法的描述如下:

$response = set_relationship(session, module_name, module_id, link_field_name, related_ids, name_value_list, delete);
这里是处理请求的代码,假设代码的另一部分处理安全性

$values = array(    'id_frame' => $_POST['id_frame'],
                    'id_battery' => $_POST['id_battery'],
                    'reseller' => $_POST['reseller'],
                    'date_purchase' => $_POST['date_purchase'],
                    'products_versionning' => $_POST['product_purchased'],
                    'first_name' => $_POST['first_name'],
                    'last_name' => $_POST['name'],
                    'phone_home' => $_POST['phone'],
                    'email' => $_POST['email'],
                    'primary_address_street' => $_POST['address'],
                    'primary_address_street_2' => $_POST['address2'],
                    'primary_address_street_city' => $_POST['city'],
                    'primary_address_street_postalcode' => $_POST['zip'],

);

try{
    $prod_register = $soapClient->set_entry(
    $sessid,
    'myco_product_register',
    array(  array('name' => 'id_frame',                         'value' => $values['id_frame']),
            array('name' => 'id_battery',                       'value' => $values['id_battery']),
            array('name' => 'date_purchase',                    'value' => $values['date_purchase']),
            array('name' => 'first_name',                       'value' => $values['first_name']),
            array('name' => 'last_name',                        'value' => $values['last_name']),
            array('name' => 'phone_home',                       'value' => $values['phone_home']),
            array('name' => 'email',                            'value' => $values['email']),
            array('name' => 'primary_address_street',           'value' => $values['primary_address_street']),
            array('name' => 'primary_address_street_city',      'value' => $values['primary_address_street_city']),
            array('name' => 'primary_address_street_postalcode','value' => $values['primary_address_street_postalcode']),
            array('name' => 'description','value' => "Modèle : " . $values['products_versionning'] . "\nAcheté le " . $values['date_purchase'] . " à " . $values['reseller']),
        )
    );

    $client = $soapClient->set_entry(
    $sessid,
    'Accounts',
    array(  array('name' => 'name',                             'value' => $values['first_name'] . ' ' . $values['last_name']),
            array('name' => 'billing_address_street',           'value' => $values['primary_address_street']),
            array('name' => 'billing_address_city',             'value' => $values['primary_address_street_city']),
            array('name' => 'billing_address_postalcode',       'value' => $values['primary_address_street_postalcode']),
        )
    );

    $entry_id = $prod_register->id;

    $relationship_parameters = array(
        "module1" => "myco_product_register",
        "module1_id" => array($entry_id),
        "module2" => "myco_products_versionning",
        "module2_id" => array($values['products_versionning'])
    );


    //Now i'm setting the relationships
        $response = $soapClient->set_relationship($sessid, "myco_product_register", $entry_id,
                'myco_products_versionning_id_c', $values['products_versionning'], array(), 0);

        $response = $soapClient->set_relationship($sessid, "myco_product_register", $entry_id,
                'myco_resellers_id_c', $values['reseller'], array(), 0);
set\u条目
都请求工作并返回工作id,但没有一个关系工作(
$responses
包含一个等于1的
失败
)。所以这不是连接问题之类的

谈到关系,devblog的一个家伙说

  • 这两个模块之间必须存在关系
  • 在处理关系的模块中必须至少有一个
    相关字段
    ,其名称可以在模块的
    vardefs.php
我有

  • product\u register
    模块与
    products\u versioning
    分销商之间的
    One-to-One
    关系
  • 每个相关模块的
    产品注册中的
    相关字段

我可能遗漏了什么?

尝试检查SugarCRM的日志文件,您应该会发现一些错误。我使用此API在联系人和帐户之间创建关系,并正常工作。在日志上可能会找到问题的答案

    try {
        $result = $this->soapClient->set_relationship($this->sessionId,
                $accountModuleName, $accountId, $relationName, $contactsId);
        $this->doEvent(self::EVENT_WS_OPERATION_CALL);

        if ($result->created > 0 && $result->failed === 0) {
            return true;
        } else {
            return false;
        }