Extensión de Salesforce

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Versión: 1.0.3

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

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

Requisitos previos

En este contenido, se proporciona referencia para configurar y usar la extensión. Antes de utilizar la extensión desde un proxy de API con la política ExtensionExtension, debes hacer lo siguiente:

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

    Usarás la clave privada (.key) como credenciales cuando configures la extensión. Deberás usar el archivo de certificado (.crt) cuando crees una app conectada que le otorgará 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 aparecen 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 el panel de navegación izquierdo, ve a Apps > Administrador de aplicaciones.
    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 (Habilitar configuración de OAuth), busca la Clave de consumidor y copia su valor en un lugar seguro para su uso cuando configures la extensión.

Cómo configurar una app conectada para acceder con la extensión

Para que la extensión de Salesforce pueda acceder a Salesforce, debes 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 las APIs.

Cómo configurar una app conectada

  1. Accede a Salesforce.
  2. Haz clic en el ícono de ajustes ubicado en la esquina superior derecha y, luego, en Configuración.
  3. En el panel de navegación de la izquierda, expande Apps > Administrador de aplicaciones.
  4. En la página Administrador de apps, haz clic en Nueva app conectada.
  5. En Basic Information (Información básica), completa los campos obligatorios. Los valores son para registros de contabilidad; la extensión no los utiliza.
  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 lo 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 Alcances seleccionados de OAuth, agrega lo siguiente para que estén en Alcances seleccionados de OAuth:
    • 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 del Administrador de aplicaciones correspondiente a la aplicación 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 Los usuarios aprobados por el administrador tienen 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, 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 utilizarás al configurar la extensión. Además, asegúrate de que los usuarios administradores del sistema tengan acceso a esta aplicación como mínimo.

    Puedes ver el parámetro de configuración del perfil del usuario en Salesforce. En el área Configuración, expande Usuarios > Usuarios, busca al 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 sus clientes y a resolver problemas mediante una mejor administración de la información y las interacciones de los 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 Predeterminada Obligatorias
objeto El tipo de sObject de registros para insertar. Cadena Ningún contenido de este tipo Sí.
records Es el arreglo de registros sObject en JSON. Máximo: 1,000. Array Ningún contenido de este tipo Sí.
allOrNone true para que falle la actualización completa si falla alguna parte Booleano false No.

Respuesta

Un array results con resultados de la operación de inserción.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Propiedad Descripción Tipo Predeterminada Obligatorias
results[*].id El ID de sObject generado para el registro nuevo. Cadena Ningún contenido de este tipo Sí.
resultados[*].success true si se insertó correctamente el registro. Booleano Ningún contenido de este tipo Sí.
resultados[*].errores Array de errores, si los hay, detectados durante la ejecución. Array Ningún contenido de este tipo Sí.

update

Actualizar 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 Predeterminada Obligatorias
objeto El tipo de sObject de registros para actualizar. Cadena Ningún contenido de este tipo Sí.
records Es el arreglo de registros sObject en JSON. Cada registro que se actualizará debe incluir el valor de ID del registro. Máximo: 1,000. Array Ningún contenido de este tipo Sí.
allOrNone true para que falle la actualización completa si falla alguna parte Booleano false No.

Respuesta

Un array results que contiene resultados de la actualización.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Parámetro Descripción Tipo Predeterminada Obligatorias
results[*].id El ID de sObject generado para el registro actualizado. Cadena Ningún contenido de este tipo Sí.
resultados[*].success true si se insertó correctamente el registro. Booleano Ningún contenido de este tipo Sí.
resultados[*].errores Array de errores, si los hay, detectados durante la ejecución. Array Ningún contenido de este tipo Sí.

recuperar

Recuperar registros como sObjects según sus ID 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 Predeterminada Obligatorias
objeto El tipo de sObject de registros para recuperar Cadena Ningún contenido de este tipo Sí.
ids Es el arreglo de registros de IDs de sObject que se recuperará. Máximo: 1,000. Array Ningún contenido de este tipo Sí.
allOrNone true haga que falle toda la operación si falla alguna parte de la solicitud. Booleano false 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

Realiza consultas en Salesforce.com con el lenguaje de consulta de objetos (SOQL) de Salesforce.

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 Predeterminada Obligatorias
soql Declaración SOQL con la que se consultará. Cadena Ningún contenido de este tipo 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 Predeterminada Obligatorias
totalSize Cantidad de registros que muestra la consulta. Número entero Ningún contenido de este tipo Sí.
records Es el array de registros que se muestran como sObjects en JSON. Máximo: 1,000. Array Ningún contenido de este tipo Sí.
listo true si se completó la operación de consulta. Booleano Ningún contenido de este tipo Sí.

list

Genera una lista de los registros de Salesforce.com. Muestra 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 Predeterminada Obligatorias
objeto El tipo de sObject de registros para enumerar Cadena Ningún contenido de este tipo Sí.
límite Cantidad máxima de registros que se mostrarán. Número entero 1,000 No.
offset Desplazamiento para los registros que se van a enumerar. Número entero 0 No.

Respuesta

Un array records que contiene sObjects enumerados como JSON.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

c

Borra registros con los ID 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 Predeterminada Obligatorias
objeto El tipo de sObject de registros para borrar. Cadena Ningún contenido de este tipo Sí.
ids Es el array de los IDs de sObject para borrar registros. Máximo: 1,000. Array Ningún contenido de este tipo 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 Predeterminada Obligatorias
results[*].id Es el ID de sObject del registro especificado. Cadena Ningún contenido de este tipo Sí.
resultados[*].success true si la operación se registró correctamente. Booleano Ningún contenido de este tipo Sí.
resultados[*].errores Array de errores, si los hay, detectados durante la ejecución. Array Ningún contenido de este tipo Sí.

getAccessToken

Obtén el token de acceso a la API de Salesforce.com. Se puede usar para realizar consultas a las APIs de REST.

Sintaxis

<Action>getAccessToken</Action>
<Input><![CDATA[{}]]></Input>

parámetros de solicitud

Ningún contenido de este tipo

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 Predeterminada Obligatorias
accessToken El token de acceso. Cadena Ningún contenido de este tipo Sí.
permiso Alcances dentro de los cuales el token proporciona acceso. Cadena Ningún contenido de este tipo Sí.
instanceUrl La URL de la instancia que usa la organización de Salesforce. Cadena Ningún contenido de este tipo Sí.
id ID de la app conectada. Cadena Ningún contenido de este tipo Sí.
tokenType Escribe para el token de acceso. Cadena Portador 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
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 Obligatorias
URL del servidor de autorización La URL que se debe usar cuando se obtiene la autorización de Salesforce. Por lo general, es https://login.salesforce.com Ningún contenido de este tipo Sí.
Clave de consumidor de app conectada La clave de consumidor que proporcionó Salesforce para la app conectada que creaste. Consulta las instrucciones en Requisitos previos para recuperar tu clave de consumidor. Ningún contenido de este tipo 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 Management, es un valor codificado en base64 que se genera a partir del archivo salesforce.key. Ningún contenido de este tipo Sí.
Nombre del usuario de Salesforce El nombre de usuario asociado con la app conectada que creaste. La extensión de Salesforce usará este dato para obtener la autorización de Salesforce. Ningún contenido de este tipo Sí.