Estás viendo la documentación de Apigee Edge.
Ir a la documentación de
Apigee X. info
Versión: 2.0.2
Acceder a los datos de tu cuenta de Salesforce Insertar, actualizar, recuperar y consultar datos
En este contenido, se proporciona información de referencia para configurar y usar esta extensión.
Requisitos previos
En este contenido, se proporciona información de referencia para configurar y usar esta extensión. Antes de usar la extensión desde un proxy de API con la política ExtensionCallout, debes hacer lo siguiente:
Crea un par de clave privada o certificación de RSA x509.
Usarás la clave privada (.key) como credencial cuando configures la extensión. Usarás el archivo de certificado (.crt) cuando crees una app conectada que le otorgue a la extensión acceso a Salesforce.
openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt-
Una app conectada de Salesforce proporcionará acceso a la extensión de Salesforce. Consulta las instrucciones para configurar la app.
Obtén la clave de consumidor para la app conectada. La extensión la usará cuando se autentique con la app.
- En la configuración de Salesforce, en la navegación de la izquierda, ve a Apps > App Manager.
- En la lista, busca la app conectada que creaste.
- En el menú desplegable que se encuentra a la derecha en la fila de la aplicación, haz clic en Ver.
- En API (Enable OAuth Settings), busca la clave del consumidor y copia su valor en un lugar seguro para usarlo cuando configures la extensión.
Configura una app conectada para que la extensión pueda acceder a ella
Antes de que la extensión de Salesforce pueda acceder a Salesforce, deberás crear una app conectada de Salesforce a través de la cual la extensión pueda conectarse con Salesforce.
En Salesforce, una app conectada proporciona una forma para que las aplicaciones externas se conecten a Salesforce a través de APIs.
Cómo configurar una app conectada
- Accede a Salesforce.
- Haz clic en el ícono de ajustes en la esquina superior derecha y, luego, en Configuración.
- En la navegación de la izquierda, expande Apps > Administrador de apps.
- En la página Administrador de apps, haz clic en Nueva app conectada.
- En Basic Information (Información básica), completa los campos obligatorios. Los valores son para la contabilidad y la extensión no los usa.
- En API (Enable OAuth Settings), selecciona la casilla de verificación Enable OAuth Settings.
- Aunque no la use la extensión, ingresa una URL de devolución de llamada. Puedes usar
http://localhost/o algún otro host de marcador de posición. - Selecciona la casilla de verificación Usar firmas digitales.
- En Usar firmas digitales, haz clic en Elegir archivo para ubicar y subir el
salesforce.crtque generaste antes. - En la sección Selected OAuth Scopes, agrega lo siguiente para que aparezca en Selected OAuth Scopes:
- Acceder y administrar datos (API)
- Realizar solicitudes en tu nombre en cualquier momento (refresh_token, offline_access)
- Haz clic en Guardar. Si hay algún error, es posible que debas volver a generar y subir el archivo
salesforce.crt. - En la página de la app resultante, haz clic en Manage (Administrar)
- En la página Administrador de apps de la app que acabas de crear, haz clic en Editar políticas.
- En Políticas de OAuth, haz clic en el menú desplegable Usuarios permitidos y, luego, en Usuarios aprobados por el administrador con autorización previa.
- Haz clic en Guardar.
- En la página de la app, en Perfiles, haz clic en Administrar perfiles.
En la página Application Profile Assignment, selecciona las casillas de verificación de los perfiles de usuario que pueden usar esta aplicación.
Asegúrate de seleccionar un perfil que corresponda al usuario cuyo nombre de usuario usarás cuando configures la extensión. También asegúrate de que al menos los usuarios administradores del sistema tengan acceso a esta aplicación.
Puedes ver el parámetro de configuración del perfil del usuario en Salesforce. En el área Configuración, expande Usuarios > Usuarios, busca el usuario al que representará la extensión y, luego, ubica su perfil en la columna Perfil.
Haz clic en Guardar.
Acerca de Salesforce
Salesforce es una plataforma de administración de relaciones con clientes (CRM). La administración de relaciones con clientes ayuda a las empresas a comprender las necesidades de los clientes y resolver problemas mediante una mejor administración de la información y las interacciones de sus clientes, todo en una única plataforma a la que siempre se puede acceder desde cualquier computadora o dispositivo.
Acciones
insert
Inserta registros como tipos de sObject.
Sintaxis
<Action>insert</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"records":[ records-to-insert ],
"allOrNone": true | false
}]]></Input>
Ejemplo
<Action>insert</Action>
<Input><![CDATA[{
"sobject": "Account",
"records":[
{ "Name": "MyAccountName" }
],
"allOrNone": true
}]]></Input>
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| sobject | Es el tipo de sObject de los registros que se insertarán. | String | Ninguno | Sí. |
| records | Es un array de registros de sObject en JSON. El valor máximo es 1,000. | Array | Ninguno | Sí. |
| allOrNone | true para que falle toda la actualización si falla alguna parte de ella |
Booleano | falso | Núm. |
Respuesta
Es un array results con los resultados de la operación de inserción.
{
results: [
{ id: '0011U00000LQ76KQAT', success: true, errors: [] },
{ id: '0011U00000LQ76LQAT', success: true, errors: [] }
]
}
| Propiedad | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| results[*].id | Es el ID de sObject generado para el registro nuevo. | String | Ninguno | Sí. |
| results[*].success | true si se insertó el registro correctamente. |
Booleano | Ninguno | Sí. |
| results[*].errors | Es un array de errores, si los hay, detectados durante la ejecución. | Array | Ninguno | Sí. |
update
Actualizar registros de Salesforce
Sintaxis
<Action>update</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"records": [ records-to-update ],
"allOrNone": true | false
}]]></Input>
Ejemplo
<Action>update</Action>
<Input><![CDATA[{
"sobject": "Account",
"records":[
{
"id":"0011U00000LQ76KQAT",
"Name": "MyNewAccountName"
}
],
"allOrNone": true
}]]></Input>
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| sobject | Es el tipo de sObject de los registros que se actualizarán. | String | Ninguno | Sí. |
| records | Es un array de registros de sObject en JSON. Cada registro que se actualice debe incluir el valor del ID del registro. El valor máximo es 1,000. | Array | Ninguno | Sí. |
| allOrNone | true para que falle toda la actualización si falla alguna parte de ella |
Booleano | falso | Núm. |
Respuesta
Es un array de results que contiene los resultados de la actualización.
{
results: [
{ id: '0011U00000LQ76KQAT', success: true, errors: [] },
{ id: '0011U00000LQ76LQAT', success: true, errors: [] }
]
}
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| results[*].id | Es el ID de sObject generado para el registro actualizado. | String | Ninguno | Sí. |
| results[*].success | true si se insertó el registro correctamente. |
Booleano | Ninguno | Sí. |
| results[*].errors | Es un array de errores, si los hay, detectados durante la ejecución. | Array | Ninguno | Sí. |
recuperar
Recupera registros como sObjects por sus IDs. Devuelve todos los campos del tipo de sObject.
Sintaxis
<Action>retrieve</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"ids":[ IDs-of-records-to-retrieve ]
}]]></Input>
Ejemplo
<Action>retrieve</Action>
<Input><![CDATA[{
"sobject": "Account",
"ids":["0011U00000LQ76KQAT"]
}]]></Input>
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| sobject | Es el tipo de sObject de los registros que se recuperarán. | String | Ninguno | Sí. |
| ids | Es un array de registros de IDs de sObject que se recuperarán. El valor máximo es 1,000. | Array | Ninguno | Sí. |
| allOrNone | true para que falle toda la operación si falla alguna parte de la solicitud. |
Booleano | falso | Núm. |
Respuesta
Es un array records de sObjects representados como JSON. Ten en cuenta que todas las propiedades de los objetos se incluyen en el JSON, incluso si el valor de la propiedad es nulo.
{
records: [
{ sobject-json },
{ sobject-json }
]
}
querySOQL
Consultar Salesforce.com con el lenguaje de consultas de objetos de Salesforce (SOQL)
Sintaxis
<Action>querySOQL</Action>
<Input><![CDATA[{
"soql": soql-query-statement
}]]></Input>
Ejemplo
<Action>querySOQL</Action>
<Input><![CDATA[{
"soql": "SELECT Id, Name FROM Account"
}]]></Input>
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| soql | Es la instrucción SOQL con la que se realizará la consulta. | String | Ninguno | Sí. |
Respuesta
Son los resultados de la búsqueda.
{
totalSize: 2,
records: [
{
attributes: { attributes-of-record },
Id: '0011U00000LQ76KQAT',
Name: 'AccountName1'
},
{
attributes: { attributes-of-record },
Id: '0011U00000LQ76LQAT',
Name: 'AccountName2'
}
],
done: true
}
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| totalSize | Cantidad de registros que devolvió la consulta. | Número entero | Ninguno | Sí. |
| records | Es un array de registros devueltos como sObjects en JSON. El valor máximo es 1,000. | Array | Ninguno | Sí. |
| done | true si se completó la operación de consulta. |
Booleano | Ninguno | Sí. |
list
Enumera los registros de Salesforce.com. Devuelve todos los campos del tipo de sObject especificado.
Sintaxis
<Action>list</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"limit": max-number-of-records,
"offset": record-index-at-which-to-begin-response-set
}]]></Input>
Ejemplo
<Action>list</Action>
<Input><![CDATA[{
"sobject": "Account",
"limit": 1000,
"offset": 0
}]]></Input>
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| sobject | Tipo de sObject de los registros que se incluirán en la lista. | String | Ninguno | Sí. |
| límite | Es la cantidad máxima de registros que se devolverán. | Número entero | 1000 | Núm. |
| offset | Es el desplazamiento de los registros que se incluirán en la lista. | Número entero | 0 |
Núm. |
Respuesta
Es un array records que contiene los sObjects enumerados como JSON.
{
records: [
{ sobject-json },
{ sobject-json }
]
}
del
Borra los registros con los IDs especificados.
Sintaxis
<Action>del</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"ids":[ IDs-of-records-to-retrieve ]
}]]></Input>
Ejemplo
<Action>del</Action>
<Input><![CDATA[{
"sobject": "Account",
"ids":["0011U00000LQ76KQAT"]
}]]></Input>
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| sobject | Es el tipo de sObject de los registros que se borrarán. | String | Ninguno | Sí. |
| ids | Es un array de IDs de sObject para los registros que se borrarán. El valor máximo es 1,000. | Array | Ninguno | Sí. |
Respuesta
Es un array de results que contiene los resultados de la operación.
{
results:[
{ id: '0011U00000LQ76KQAT', success: true, errors: [] },
{ id: '0011U00000LQ76LQAT', success: true, errors: [] }
]
}
| Propiedad | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| results[*].id | Es el ID de sObject del registro especificado. | String | Ninguno | Sí. |
| results[*].success | true si la operación se realizó correctamente para el registro. |
Booleano | Ninguno | Sí. |
| results[*].errors | Es un array de errores, si los hay, detectados durante la ejecución. | Array | Ninguno | Sí. |
getAccessToken
Obtén el token de acceso a la API de Salesforce.com. Se puede usar para consultar APIs de REST.
Sintaxis
<Action>getAccessToken</Action>
<Input><![CDATA[{}]]></Input>
Parámetros de solicitud
Ninguno
Respuesta
Token de acceso en formato JSON.
{
"accessToken":"00D1U0000014m3hqswvoM22I5GTw9EJrztlZ8eSSka88Q",
"scope":"api",
"instanceUrl": "https://na85.salesforce.com",
"id": "https://login.salesforce.com/id/00D1U0004564mutUAA/0051U43214qecVQAQ",
"tokenType": "Bearer"
}
| Propiedad | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| accessToken | Es el token de acceso. | String | Ninguno | Sí. |
| alcance | Son los permisos con los que el token proporciona acceso. | String | Ninguno | Sí. |
| instanceUrl | Es la URL de la instancia que usa la organización de Salesforce. | String | Ninguno | Sí. |
| id | ID de la app conectada. | String | Ninguno | Sí. |
| tokenType | Es el tipo del token de acceso. | String | Bearer | Sí. |
Referencia de configuración
Usa la siguiente información cuando configures e implementes esta extensión para usarla en proxies de API.
Propiedades comunes de las extensiones
Las siguientes propiedades están presentes para cada extensión.
| Propiedad | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|
name |
Nombre que asignas a esta configuración de la extensión. | Ninguna | Sí |
packageName |
Nombre del paquete de extensiones proporcionado por Apigee Edge. | Ninguna | Sí |
version |
El número de versión del paquete de extensiones desde el que quieres configurar la extensión. | Ninguna | Sí |
configuration |
Es un valor de configuración específico para la extensión que agregas. Consulta Propiedades para este paquete de extensiones | Ninguna | Sí |
Propiedades de este paquete de extensión
Especifica valores para las siguientes propiedades de configuración específicas de esta extensión.
| Propiedad | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|
| URL del servidor de autorización | Es la URL que se usa cuando se obtiene la autorización de Salesforce. Por lo general, es https://login.salesforce.com. |
Ninguno | Sí. |
| Clave de consumidor de la app conectada | Es la clave de consumidor que proporcionó Salesforce para la app conectada que creaste. Consulta las instrucciones en Requisitos previos para recuperar tu clave del consumidor. | Ninguno | Sí. |
| Credencial | Cuando se ingresa en la consola de Apigee Edge, este es el contenido del archivo salesforce.key que generaste en los pasos. Cuando se envía con la API de administración, es un valor codificado en base64 que se genera a partir del archivo salesforce.key. | Ninguno | Sí. |
| Nombre de usuario del usuario de Salesforce | El nombre de usuario asociado con la app conectada que creaste. La extensión de Salesforce usará este valor para obtener la autorización de Salesforce. | Ninguno | Sí. |