通过 REST 添加子面板记录到 SugarCRM 帐户 API
Add a subpanel record to a SugarCRM account through REST API
问题:如何通过 SugarCRM rest api 端点为帐户创建子面板记录?
到目前为止采取的步骤:
- 我使用 SugarCRM studio 添加了一个名为 "transactionHistory" 的新包和一个名为 "InvoiceHistory" 的模块。
- 我使用 studio 向帐户模块添加了一对多关系。
我正在使用 NetSuite 通过子面板 "create" 选项将新发票推送到新模块的记录。这是我正在使用的代码:
function createSugarTransaction(transaction, token) {
var url = 'https://crm.techsoft3d.com/rest/v10/Accounts/' + transaction.customer;
var headers = {
"Content-Type": "application/json",
"OAuth-Token": token
};
var now = (new Date()).toISOString();
var body = {transactionHistory_InvoiceHistory:
{
create: [{
name: transaction.docId,
transaction_date_c: transaction.date,
invoice_status_c: transaction.status,
due_date_c: transaction.duedate,
total_amount_c: transaction.total,
amount_due_c: transaction.remaining,
start_date_c: transaction.startdate,
end_date_c: transaction.enddate
}]
}
};
var response = nlapiRequestURL(url, JSON.stringify(body), headers, 'PUT');
return response;
}
交易对象已经过验证,create: []
数组中的 json 对象具有与相应交易对象值匹配的糖字段(键)。
当对 sugar 进行 API 调用时,我已成功通过身份验证并可以访问自定义模块和帐户 - 所以没有问题。但是,当调用返回到 response
时,它显示以下错误:
{"error":"no_method","error_message":"Could not find a route with 1 elements"}
我不确定要创建记录还需要什么。根据 sugar 的帮助文档和开发者社区,这应该可行。我正在使用 sugarcrm 支持门户提供的基本信息:
根据开发者社区内的其他博文,应该很简单,只需添加子面板名称,然后是 "create" 对象下的字段数组...类似于:
var requestBody = { package_module:create[{name:value}]};
我最初的想法是:
1. 我的 package_module 名字不正确,但我无法在应用程序或帮助文档中的任何地方找到它。
2. 请求正文的格式不正确,即使它的结构是从这篇文章中复制的 https://developer.sugarcrm.com/2014/02/28/sugarcrm-cookbook2/
如有任何帮助,我们将不胜感激。
尝试 createRelatedRecord
api 端点
键入 {sugarurl}/rest/v10/help 查看要查看的端点列表,其中大部分都有文档和示例
https://crm.techsoft3d.com/rest/v10/help
你的 API url
应该有你想要的 link (关系)的名称,除了 POST payload[=15= 中的值]
https://crm.techsoft3d.com/rest/v10/Accounts/{transaction.customer}/link/accounts_transactionhistory(或者你的 link 的名字)
根据此端点的文档,您只需在有效负载中指定字段值
{
"first_name":"Bill",
"last_name":"Edwards"
}
问题:如何通过 SugarCRM rest api 端点为帐户创建子面板记录?
到目前为止采取的步骤:
- 我使用 SugarCRM studio 添加了一个名为 "transactionHistory" 的新包和一个名为 "InvoiceHistory" 的模块。
- 我使用 studio 向帐户模块添加了一对多关系。
我正在使用 NetSuite 通过子面板 "create" 选项将新发票推送到新模块的记录。这是我正在使用的代码:
function createSugarTransaction(transaction, token) {
var url = 'https://crm.techsoft3d.com/rest/v10/Accounts/' + transaction.customer;
var headers = {
"Content-Type": "application/json",
"OAuth-Token": token
};
var now = (new Date()).toISOString();
var body = {transactionHistory_InvoiceHistory:
{
create: [{
name: transaction.docId,
transaction_date_c: transaction.date,
invoice_status_c: transaction.status,
due_date_c: transaction.duedate,
total_amount_c: transaction.total,
amount_due_c: transaction.remaining,
start_date_c: transaction.startdate,
end_date_c: transaction.enddate
}]
}
};
var response = nlapiRequestURL(url, JSON.stringify(body), headers, 'PUT');
return response;
}
交易对象已经过验证,create: []
数组中的 json 对象具有与相应交易对象值匹配的糖字段(键)。
当对 sugar 进行 API 调用时,我已成功通过身份验证并可以访问自定义模块和帐户 - 所以没有问题。但是,当调用返回到 response
时,它显示以下错误:
{"error":"no_method","error_message":"Could not find a route with 1 elements"}
我不确定要创建记录还需要什么。根据 sugar 的帮助文档和开发者社区,这应该可行。我正在使用 sugarcrm 支持门户提供的基本信息:
根据开发者社区内的其他博文,应该很简单,只需添加子面板名称,然后是 "create" 对象下的字段数组...类似于:
var requestBody = { package_module:create[{name:value}]};
我最初的想法是: 1. 我的 package_module 名字不正确,但我无法在应用程序或帮助文档中的任何地方找到它。 2. 请求正文的格式不正确,即使它的结构是从这篇文章中复制的 https://developer.sugarcrm.com/2014/02/28/sugarcrm-cookbook2/
如有任何帮助,我们将不胜感激。
尝试 createRelatedRecord
api 端点
键入 {sugarurl}/rest/v10/help 查看要查看的端点列表,其中大部分都有文档和示例
https://crm.techsoft3d.com/rest/v10/help
你的 API url
应该有你想要的 link (关系)的名称,除了 POST payload[=15= 中的值]
https://crm.techsoft3d.com/rest/v10/Accounts/{transaction.customer}/link/accounts_transactionhistory(或者你的 link 的名字)
根据此端点的文档,您只需在有效负载中指定字段值
{
"first_name":"Bill",
"last_name":"Edwards"
}