Llamadas y devoluciones de llamadas: Límites y uso
Límites y mejores enfoques para devoluciones de llamadas y llamadas a y desde Servicios externos.
Ediciones necesarias
| Disponible en: Lightning Experience |
| Disponible en: Enterprise Edition, Performance Edition, Unlimited Edition y Developer Edition |
- Las llamadas de Servicios externos no se permiten cuando hay transacciones pendientes no enviadas.
- En Flow, cierre su transacción y reanude el flujo empleando el elemento de flujo Pausa.
- En Apex, realice la llamada antes de cualquier declaración DML como insertar, actualizar o eliminar objetos. Consulte Límites y limitaciones de llamadas en la Guía del desarrollador de Apex.
- El tiempo de espera para las llamadas a Servicios externos sea agota transcurridos 120 segundos.
Devoluciones de llamadas asíncronas de Servicios externos
La duración del tiempo de espera de una operación de devolución de llamada está configurada en el cliente de Apex, y se puede establecer para un máximo de veinticuatro horas.
Los métodos HTTP de devolución de llamada aceptados son PUT y POST. El resto de los métodos se ignorarán.
Un parámetro de devolución de llamada debe contener solo una operación de devolución de llamada, ya que no se admite la relación de uno a muchos. Si se detecta uno a varios, solo se procesa la primera operación de devolución de llamada bajo el parámetro de devolución de llamada.
En Especificación de API de ejemplo con operación de devolución de llamada, el primer parámetro de devolución de llamada es applicationOutcomeApproved. Contiene un #ref/…/ApplicationApproved de operación de devolución de llamada. El tercer parámetro de devolución de llamada es applicationError. Contiene una "{$request.query.callbackUrlForErrorCases}": {"post":
{.....}}} 3.3 de operación de devolución de llamada. Ignoramos la declaración de respuesta de operación de devolución de llamadas y siempre enviamos 200, 404, 408 (Tiempo de espera) o 500 respuesta HTTP al remitente de devolución de llamadas.
Se puede definir una URL de devolución de llamada como un parámetro de consulta o agregarlo al parámetro del cuerpo de la solicitud. Una URL de devolución de llamada puede ser:
- un tipo de cadena
- una propiedad de un tipo de objeto
- un elemento de una matriz
Algunos formatos de expresión de URL de devolución de llamada válidos son:
-
'{$request.query.callbackUrl}' -
'{$request.body#/callbackUrl}' -
'{$request.body#/callbackUrl/1}'
Actualmente, no se admiten otras expresiones complejas. Por ejemplo, expresiones con texto estático combinado con referencias de variables o expresiones que tienen múltiples referencias de variables. En estos casos no admitidos, la devolución de llamada se considera no válida y la operación se intenta como una llamada síncrona con un tiempo de espera de 120 segundos.
Una operación de devolución de llamada puede definir un operationId. Por ejemplo, en la Especificación de API de ejemplo con operación de devolución de llamada, consulte:
"operationId": "approvedCallback”
Este operationId no se puede duplicar con ningún otro operationId, con una operación de nivel superior habitual
"operationId": "SubmitApplication”
o cualquier otro operationId de devolución de llamada.
Si una operación de devolución de llamada no declara un operationId, Salesforce utiliza su nombre de referencia de componente de devolución de llamada como el ApplicationRejected operationId, en este caso.
Si la operación de devolución de llamada se declara en línea, su operationId se construye como
parentAsyncOperationId_CB_callbackParameterName
Por ejemplo, SubmitApplication_CB_applicationError.
