Funciones sin servidor

    Funciones sin servidor

    La arquitectura sin servidor, también conocida como "Función como un servicio" (FaaS), brinda una plataforma para que los desarrolladores ejecuten sus propios códigos como respuesta a varios eventos de negocios. En Zoho CRM, todos estos códigos se pueden escribir a través de scripts de Deluge y se pueden ejecutar sin el aprovisionamiento o la administración de servidores. Una vez escritos, estos códigos se pueden activar desde cualquier otro servicio de terceros o se puede llamar y activar directamente desde cualquier aplicación web o móvil.

    Aunque se llama "sin servidor", sí utiliza servidores para ejecutar el código. El concepto "sin servidor" indica que ni los desarrolladores ni la organización deben comprar, proporcionar o arrendar servidores para ejecutar el código.

    Llamar a funciones mediante las API REST

    Una función permite que tenga funciones y características adicionales en CRM, además de las convencionales. Para llamar a la función, es necesario un activador. El activador puede ser un flujo de trabajo, blueprint, lista relacionada o el clic de un botón.

    Si es necesario activar la función sin que se empleen estos métodos o desde fuentes externas, puede crear funciones independientes y proporcionarlas como solicitudes de API. Activar funciones a través de las API REST le proporciona la flexibilidad para activarlas desde cualquier lugar dentro de Zoho CRM o desde cualquier aplicación de terceros.

    Puede llamar a las funciones como a una API de dos maneras:

    Además de utilizar funciones como API, también puede usarlas dentro de otras funciones. Esto es posible gracias a que toda la función se reduce a una sola línea de código.

    No obstante, hay algunas precauciones que debe tomar cuando llame a la función desde otra función. A continuación, se muestra un fragmento de código que denota la llamada de una función desde dentro de otra.

    Función dentro de una función (utilizando las 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;

    Funciones de Postman:

    Las funciones proporcionadas como solicitudes de API se pueden probar usando la aplicación POSTMAN. Sin embargo, hay algunos aspectos que debe tener en consideración a la hora de ejecutar una función en esa aplicación.

    Dirección URL:

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

    Argumento:

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

    Nota:

    • Evite utilizar el nombre "arguments" como argumento dentro de la función, ya que todos los argumentos que se pasen dentro del JSON se correlacionarán con el este único "arguments" y los otros quedarán vacíos.

    1. Dentro de la dirección URL de solicitud:

    Métodos HTTP:

    • GET
    • POST

    Los argumentos proporcionados a continuación están en formato codificado.

    No puede pasar los argumentos como un objeto JSON dentro de dirección URL de solicitud. Codifique los argumentos en caso de que se los deba proporcionar dentro de la dirección URL de solicitud.

    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

    Puede llamar a los argumentos como un encabezado en la API. Por ejemplo, la dirección URL podría ser "{Rest API URL}?age=15&name=Robert". "age" y "name" serían argumentos de la función.

    Además, por cualquier argumento adicional que no esté definido en la función, pero que se utilice en la API, normalmente se mostrará un error. No obstante, puede agregar un argumento adicional preventivo en la función con el nombre "Solicitud de la API de CRM". Este argumento podría contener o tomar en todos los argumentos adicionales que pase en la llamada a la API.

    2. En la sección del cuerpo:

    En la sección Cuerpo > Form-Data, cree una clave con el nombre "arguments".

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

    Nota:

    • Solicitud POST: límite de argumentos
      • En la dirección URL de solicitud: 5000 líneas.
      • En el cuerpo: 95 000 líneas (como objeto JSON).

    Llamar a una función dentro de otra función

    A menudo, puede ser necesario llamar funciones desde dentro de otras funciones. Para hacerlo, debe seguir el mismo procedimiento que se utiliza para llamar a una función desde un flujo de trabajo. Supongamos que hay dos funciones, A y B.

    Para pasar los argumentos (parámetros) de la función A a la función B, tendrían que pasarse en la cadena de consulta de dirección URL o en form-data. Para hacerlo, utilice dentro de su función el fragmento proporcionado a continuación.

    El fragmento de código anterior muestra un ejemplo en el que los argumentos de la función A se llaman como parámetros en la función B. Debe crear una lista con el nombre "archivo" y decidir cómo se utilizarán los parámetros de la función A en la función B.

    Los encabezados de la función son form-data y se debe llamar al "archivo".

    Puede copiar directamente el siguiente fragmento de código dentro de la función:

    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
    ];

    Share this post : FacebookTwitter

    Todavía no puede encontrar lo que está buscando?

    Escríbenos: support@zohocrm.com