无服务器函数 - 概述

无服务器函数

无服务器函数也称为“函数即服务”(Faas),它提供平台供开发者针对不同的业务活动执行自己的代码。在 Zoho CRM 中,所有此类代码都可以通过 deluge 脚本进行编写,并可以在不提供或管理服务器的情况下运行。这些代码一旦编写,可以从任何第三方服务中触发,也可以从任何 Web 或移动应用中直接触发。

尽管它名为“无服务器”,但实际上需要服务器来运行代码。因此,“无服务器”一词表示,开发者或机构无需购买、提供或租赁任何服务器来运行其代码。

使用 REST API 调用函数

除常规功能外,函数允许您在 CRM 中具有其他功能。函数需要触发器来调用。触发器可以是工作流、蓝图、相关列表,也可以是通过点击按钮来触发。

如果函数需要在不使用这些方法的情况下或从外部源触发,则您可以创建独立函数并以 API 调用的形式提供。通过 REST API 触发函数,这允许您在 Zoho CRM 中的任意位置或任意第三方应用程序触发该函数。

您可用两种方式以 API 的形式调用函数:

除将函数用作 API 外,您还可以在其他函数内调用这些函数。由于整个函数减少为一行代码,因此这是有可能实现的。

但是,当在另一函数中调用该函数时,有一些注意事项。以下是代码片断示例,它表示某一函数在另一函数内进行调用。

函数内的函数(使用 API):

URL=<REST API Function URL>;
param = Map();
param.put(<argument-name>, <argument-value>);
param.put(<argument-name>, <argument-value>);
param.put(<argument-name>, <argument-value>);
argument = Map();
argument.put("arguments", param);
response = invokeurl
[
url: URL
type: GET | POST
parameters: argument
headers: {}
];
return response;

Postman 中的函数:

以 API 调用形式提供的函数可用 POSTMAN 应用程序进行测试。但是,当在该应用中执行函数时,有一些需要记住的事项。

URL:

https://crm.zoho.com.cn/crm/v2/functions/{api_name_of_function}/actions/execute?auth_type=oauth{or}apikey

自变量:

arguments=
{
"emailAddress":"abc@gmail.com",
"extraDetails":{
  "name":"Abc",
  "signature":"XYZ"
   }
}

备注

  • 请避免在函数中使用名称 "arguments" 作为自变量。这是因为所有在 JSON 中传递的自变量将映射至单个“自变量”,其他的将留空。

1.在请求 URL 中:

HTTP 方法

  • GET
  • POST

以下提供的自变量采用编码格式。

无法在请求 URL 内将自变更量作为 JSON 对象进行传递。如果它们在请求 URL 中提供,请编码自变量。

arguments=%7B%0D%0A%09%22emailAddress%22%3A%22abc%40gmail.com%22%2C%0D%0A%09%22extraDetails
%22%3A%7B%0D%0A%09%09%22name%22%3A%22Abc%22%2C%0D%0A%09%09%22signature%22%3A%22XYZ%22%0D%0A%09%7D%0D%0A%7D%0D%0A

您可以在 API 中将自变量作为 Header 进行调用。例如,URL 为 "{Rest API URL}?age=15&name=Robert",其中 "age" 和 "name" 是函数中的自变量。

此外,对于函数中未定义、但在 API 中使用的任何额外自变量,通常会抛出一个错误。但是,您可以预先在函数的 "CRM API Request" 名称下添加一个额外的自变量。此自变量将包含或采用您在 API 调用中传递的所有额外自变量。

2.在 Body 部分:

Body > form-data部分,请用 "arguments" 名称创建一个密钥。

arguments={"emailAddress":"abc@gmail.com","extraDetails":{"name":"Abc","signature":"XYZ"}}

  • POST 请求 - 自变量限制
    • 在 Request URL 中 - 5000 行。
    • 在 Body 中 - 95000 行(作为 JSON 对象)。

在另一函数中调用函数

通常可能有一些要求,需要在其他函数中调用函数。就像您在工作流中调用函数一样,您可以在其他函数中调用它们。让我们以两个函数为例,A 和 B。

为了将自变量(参数)从函数 A 传递到 B,它们必须在查询 URL 字符串或者在表单数据中进行传递。为了达到此目的,请在函数中使用以下提供的代码片断。

以上代码片断展示了一个示例,在以下模块中,函数 A 中的自变量作为参数进行调用。您需要创建一个名称为 'file' 的列表,并确定函数 A 的参数将在函数 B 中使用。

该函数的 Header 为表单数据,需要调用 'file'。

您可以直接将以下代码复制到函数中:

param = Map();
param.put("{key}","{value}");
param.put("{key}","{value}");
param.put("{key}","{value}");
files = list();
for each key in param.keys()
{
    stringpart = Map();
    stringpart.put("stringPart","true");
    stringpart.put("content","" + param.get(key));
    stringpart.put("paramName",key);
    files.add(stringpart);
}
response = invokeurl
[
    url :"{Function_API_URL}"
    type :POST
    headers:{"Content-Type":"multipart/form-data"}
    files:files
];

还没找到您需要的内容?

发送邮件给我们:support-crm@zohocorp.com.cn