Fonctions sans serveur
L'architecture sans serveur, également connue sous le nom de « Fonction en tant que service » (Faas), fournit une plateforme permettant aux développeurs d'exécuter leurs propres codes en réponse à divers événements commerciaux. Dans Zoho CRM, tous ces codes peuvent être écrits à l'aide de scripts Deluge et exécutés sans provisionnement ni gestion de serveurs. Une fois écrits, ces codes peuvent être déclenchés à partir de tout autre service tiers ou appelés directement à partir de n'importe quelle application Web ou mobile.
Malgré son nom de « sans serveur », elle nécessite des serveurs pour exécuter le code. Le terme « sans serveur » indique que les développeurs ou les organisations n'ont pas besoin d'acheter, de fournir ou de louer des serveurs pour exécuter leur code.
Appel des fonctions à l'aide des API REST
Une fonction vous permet d'intégrer des fonctionnalités supplémentaires dans votre CRM, en plus des fonctionnalités conventionnelles. La fonction a besoin d'un déclencheur pour l'appel. Le déclencheur peut prendre la forme d'un workflow, d'un blueprint, d'une liste associée ou d'un simple clic sur un bouton.
Si la fonction doit être déclenchée sans utiliser ces méthodes ou à partir de sources externes, vous pouvez créer des fonctions autonomes et les mettre à disposition sous forme d'appels d'API. Le déclenchement des fonctions par le biais des API REST offre la flexibilité de déclencher depuis n'importe quel endroit de Zoho CRM ou n'importe quelle application tierce.
Vous disposez de deux méthodes pour appeler les fonctions en tant qu'API :
En plus d'utiliser des fonctions en tant qu'API, vous pouvez également employer des fonctions dans d'autres fonctions. Cette solution est rendue possible par le fait que la fonction entière est réduite à une seule ligne de code.
Cependant, il y a quelques précautions à prendre lorsque vous appelez une fonction dans une autre fonction. L'exemple d'extrait de code qui suit indique une fonction appelée dans une autre fonction.
Fonction dans une fonction (à l'aide des 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;
Fonctions dans POSTMAN :
Les fonctions fournies en tant qu'appels d'API peuvent être testées à l'aide de l'application POSTMAN. Cependant, vous devez garder certains points à l'esprit lorsque vous exécutez une fonction dans cette application.
URL :
https://crm.zoho.com/crm/v2/functions/{api_name_of_function}/actions/execute?auth_type=oauth{or}apikey
Argument :
arguments=
{
"emailAddress":"abc@gmail.com",
"extraDetails":{
"name":"Abc",
"signature":"XYZ"
}
}
Remarque :
- Veuillez éviter d'utiliser le nom "arguments" comme argument dans la fonction. En effet, tous les arguments transmis dans le flux JSON seront mappés aux « arguments » uniques et les autres seront laissés vides.
1. Dans l'URL de la demande :
Méthodes HTTP :
- GET
- POST
Les arguments donnés ci-dessous sont au format codé.
Vous ne pouvez pas transférer les arguments en tant qu'objet JSON dans l'URL de la demande. Veuillez encoder les arguments au cas où ils doivent être fournis dans l'URL de la demande.
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
Vous pouvez appeler les arguments en tant qu'en-tête dans l'API. Par exemple, l'URL serait "{Rest API URL}?age=15&name=Robert", où "age" et "name" sont des arguments dans la fonction.
En outre, pour tous les arguments supplémentaires qui ne sont pas définis dans la fonction, mais utilisés dans l'API, une erreur sera normalement générée. Cependant, vous pouvez ajouter de manière préventive un argument supplémentaire dans la fonction sous le nom « CRM API Request ». Cet argument pourrait contenir ou prendre tous les arguments supplémentaires que vous transférez dans l'appel de l'API.

2. Dans la section du corps :
Dans la section Body > form-data, créez une clé sous le nom « arguments ».
arguments={"emailAddress":"abc@gmail.com","extraDetails":{"name":"Abc","signature":"XYZ"}}

Remarque :
- Demande POST - Limite des arguments
- Dans l'URL de demande - 5 000 lignes.
- Dans le corps - 95 000 lignes (comme objet JSON).
Appeler une fonction dans une autre fonction
Il arrive souvent qu'il soit nécessaire d'appeler des fonctions à partir d'autres fonctions. Tout comme vous appelez une fonction dans les workflows, vous pouvez les appeler dans d'autres fonctions. Considérons deux fonctions, A et B.
Pour transférer les arguments (paramètres) de la fonction A à la fonction B, vous devez utiliser la chaîne de l'URL de la demande ou form-data. Pour ce faire, veuillez utiliser l'extrait de code ci-dessous dans votre fonction.

L'extrait de code ci-dessus présente un exemple dans lequel les arguments de la fonction A sont appelés comme paramètres. Vous devez créer une liste sous le nom 'file' et décider comment les paramètres de la fonction A seront utilisés dans la fonction B.
La fonction a pour en-tête form-data et la liste 'file' doit être appelée.
Vous pouvez copier directement l'extrait de code ci-dessous dans votre fonction :
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
];