Extensión de Salesforce

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

Versión: 1.0.5

Accede a los datos de tu cuenta de Salesforce. Inserta, actualiza, recupera y consulta datos.

En este contenido, se proporciona una referencia para configurar y usar esta extensión.

Requisitos previos

En este contenido, se proporciona una 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:

  1. Crea un par de clave privada o certificación de RSA x509.

    Cuando configures la extensión, usarás la clave privada (.key) como credencial. 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
    
    
  2. Configura una app conectada.

    Una app conectada de Salesforce proporcionará acceso a la extensión de Salesforce. Consulta las instrucciones que se indican a continuación para configurar la app.

  3. Obtén la clave de consumidor para la app conectada. La extensión la usará cuando se autentique con la app.

    1. En la configuración de Salesforce, en la barra de navegación de la izquierda, ve a Apps > Administrador de apps.
    2. En la lista, busca la app conectada que creaste.
    3. En el menú desplegable de la derecha en la fila de la aplicación, haz clic en Ver.
    4. 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

  1. Accede a Salesforce.
  2. Haz clic en el ícono de ajustes en la parte superior derecha y, luego, en Configuración.
  3. En la barra de navegación de la izquierda, expande Apps > Administrador de apps.
  4. En la página App Manager, haz clic en New Connected App.
  5. En Basic Information (Información básica), completa los campos obligatorios. Los valores son para la contabilización; la extensión no los usa.
  6. En API (Enable OAuth Settings) (API [Habilitar configuración de OAuth]), selecciona la casilla de verificación Enable OAuth Settings (Habilitar configuración de OAuth).
  7. Aunque la extensión no la use, ingresa una URL de devolución de llamada. Puedes usar http://localhost/ o algún otro host de marcador de posición.
  8. Selecciona la casilla de verificación Use digital signatures (Usar firmas digitales).
  9. En Usar firmas digitales, haz clic en Elegir archivo para ubicar y subir el salesforce.crt que generaste antes.
  10. En la sección Selected OAuth Scopes, agrega lo siguiente para que esté en Selected OAuth Scopes:
    • Acceder y administrar datos (API)
    • Realizar solicitudes en tu nombre en cualquier momento (refresh_token, offline_access)
  11. Haz clic en Guardar. Si hay algún error, es posible que debas volver a generar y subir el archivo salesforce.crt.
  12. En la página de la app resultante, haz clic en Manage (Administrar)
  13. En la página Administrador de apps de la app que acabas de crear, haz clic en Editar políticas.
  14. 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.
  15. Haz clic en Guardar.
  16. En la página de la app, en Perfiles, haz clic en Administrar perfiles.
  17. En la página Application Profile Assignment (Asignación de perfil de aplicación), 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. Además, asegúrate de que, al menos, los usuarios con el rol de administrador 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 que representará la extensión y, luego, busca su perfil en la columna Perfil.

  18. 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. Máximo: 1,000. Arreglo Ninguno Sí.
allOrNone true para que falle toda la actualización si falla alguna parte de ella. Booleano falso No.

Respuesta

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 El ID de sObject generado para el registro nuevo String Ninguno Sí.
results[*].success true si la inserción de ese registro se realizó correctamente. Booleano Ninguno Sí.
results[*].errors Es un array de errores, si los hay, detectados durante la ejecución. Arreglo Ninguno Sí.

update

Actualiza los 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 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 de ID del registro. Máximo: 1,000. Arreglo Ninguno Sí.
allOrNone true para que falle toda la actualización si falla alguna parte de ella. Booleano falso No.

Respuesta

Un array 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 la inserción de ese registro se realizó correctamente. Booleano Ninguno Sí.
results[*].errors Es un array de errores, si los hay, detectados durante la ejecución. Arreglo Ninguno Sí.

recuperar

Recupera registros como sObjects por sus IDs. Muestra todos los campos del tipo 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 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. Máximo: 1,000. Arreglo Ninguno Sí.
allOrNone true para que falle toda la operación si falla alguna parte de la solicitud. Booleano falso No.

Respuesta

Un array records de sObjects representado 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

Consulta Salesforce.com con el Lenguaje de consulta 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 sentencia SOQL con la que se realizará la consulta. String Ninguno Sí.

Respuesta

Resultados de la consulta

{
  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 muestra la consulta. Número entero Ninguno Sí.
records Es un array de registros que se muestran como sObjects en JSON. Máximo: 1,000. Arreglo Ninguno Sí.
listo true si se completó la operación de consulta. Booleano Ninguno Sí.

list

Muestra una lista de 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 El tipo de sObject de los registros que se enumerarán. String Ninguno Sí.
límite Es la cantidad máxima de registros que se mostrarán. Número entero 1000 No.
offset Desplazamiento para los registros que se mostrarán en la lista. Número entero 0 No.

Respuesta

Un array records que contiene 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 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. Máximo: 1,000. Arreglo Ninguno Sí.

Respuesta

Un array 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. Arreglo 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

El token de acceso en 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 El token de acceso String Ninguno Sí.
alcance Son los permisos dentro de los cuales 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 Es el ID de la app conectada. String Ninguno Sí.
tokenType Escribe el token de acceso. String Portador Sí.

Referencia de configuración

Usa lo siguiente cuando configures y, luego, implementes esta extensión para usarla en proxies de API.

Propiedades comunes de la extensión

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
packageName Nombre del paquete de extensiones proporcionado por Apigee Edge. Ninguna
version El número de versión del paquete de extensiones desde el que quieres configurar la extensión. Ninguna
configuration Es un valor de configuración específico para la extensión que agregas. Consulta Propiedades para este paquete de extensiones Ninguna

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 Predeterminada Obligatorio
URL del servidor de autorización Es la URL que se debe usar 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 La clave de consumidor que proporcionó Salesforce para la app conectada que creaste. Consulta las instrucciones que se indican en Requisitos para recuperar tu clave de 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 anteriores. Cuando se envía a través de 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 lo usará para obtener la autorización de Salesforce. Ninguno Sí.