Web services 使用RESTAPI和SugarCRM将目标添加到目标列表

Web services 使用RESTAPI和SugarCRM将目标添加到目标列表,web-services,rest,sugarcrm,Web Services,Rest,Sugarcrm,我试图通过REST服务调用将目标添加到Sugar中的目标列表中。我从Sugar那里得到了积极的回应,但没有添加记录。我使用的服务方法是*set\u relationship*: { "session":"3ece4lmn5rtweq9vm5581jht", "module_name":"ProspectLists", "module_id":"cb13b96f-8334-733c-1548-52c27a5b8b99", "link_field

我试图通过REST服务调用将目标添加到Sugar中的目标列表中。我从Sugar那里得到了积极的回应,但没有添加记录。我使用的服务方法是*set\u relationship*:

   {
      "session":"3ece4lmn5rtweq9vm5581jht",
      "module_name":"ProspectLists",
      "module_id":"cb13b96f-8334-733c-1548-52c27a5b8b99",
      "link_field_name":"prospects",
      "name_value_list":[],
      "related_ids":["534f894a-4265-143d-c94b-52be908685b1"],
      "delete":0
   }
我也试过另一种方法:

   {
      "session":"3ece4lmn5rtweq9vm5581jht",
      "module_name":"Prospects",
      "module_id":"cb13b96f-8334-733c-1548-52c27a5b8b99",
      "link_field_name":"prospect_lists",
      "name_value_list":[],
      "related_ids":["534f894a-4265-143d-c94b-52be908685b1"],
      "delete":0
   }
在这两种情况下,我都得到了一个有希望的响应

   {"created":1,"failed":0,"deleted":0}
…但是当我查看目标列表时,我找不到任何添加的目标。我也检查了数据库,但也没有任何痕迹

我的Sugar版本是6.5.16 CE,我使用的是SuiteCRM 7.0.1扩展,但我不认为这有什么区别


任何暗示都将受到高度赞赏。谢谢

我终于明白了。似乎set_关系对参数顺序非常挑剔。参数命名甚至没有任何意义。这最终对我起了作用:

  {
      "session":"3ece4lmn5rtweq9vm5581jht",
      "module_name":"Prospects",
      "module_id":"cb13b96f-8334-733c-1548-52c27a5b8b99",
      "link_field_name":"prospect_lists",
      "related_ids":["534f894a-4265-143d-c94b-52be908685b1"],
      "delete":0
   }
工作Python代码(API v4.1):

@如果正确,请注意“rest_数据”参数的顺序。在我的例子中,将
名称\u值\u列表
放在
相关ID
之前产生了积极的结果,但没有产生实际的关系

p、 我正在使用这个库:

import sugarcrm
import json
import requests

crm_session = sugarcrm.Session(CRM_HOST, CRM_USER, CRM_PASS)
payload = {
    "method": "set_relationship",
    "input_type": "JSON",
    "response_type": "JSON",
    "rest_data": json.dumps({
        "session": crm_session.session_id,
        "module_name": "Prospects",
        # ID of the record you're creating relationship FROM
        # In my case it is a record from module "Prospects"
        "module_id": "cb13b96f-8334-733c-1548-52c27a5b8b99",
        "link_field_name": "events_prospects",
        # ID of the record you're creating relationship FOR 
        # In my case it is a record from module "events"
        "related_ids": ["534f894a-4265-143d-c94b-52be908685b1"],
        "name_value_list": [],
        "delete": 0
    })
}
result = requests.post(CRM_HOST, data=payload)