Descripción general
El conector Salesforce proporciona la funcionalidad para obtener datos de objetos de Salesforce (objetos estándar, objetos personalizados) y registrarlos en el índice de Fess.
Esta funcionalidad requiere el plugin fess-ds-salesforce.
Objetos compatibles
Objetos estándar: objetos estándar predefinidos (Account, Contact, Lead, Opportunity, Case, Solution, etc.). El conjunto de objetos estándar es fijo y todos ellos se recuperan en cada crawl.
Objetos personalizados: objetos definidos por el usuario y especificados mediante el parámetro
custom(objetos cuyos nombres de API terminan en__c).
Nota
Los objetos estándar se crawlean siempre en su totalidad (no es posible seleccionar individualmente cuales se crawlean). Para excluir objetos no deseados, utilice el filtrado por URL mediante include_pattern / exclude_pattern.
Lista de objetos estándar
Los siguientes objetos estándar son crawleados. El «Nombre de objeto» es el identificador que se usa en el mapeo de campos (p. ej. <NombreObjeto>.title); object.type es el valor del tipo de objeto al que puede hacer referencia en los scripts.
| Nombre de objeto | object.type | Descripción |
|---|---|---|
ACCOUNT | Account | Account |
CONTACT | Contact | Contact |
LEAD | Lead | Lead |
OPPORTUNITY | Opportunity | Opportunity |
CASE | Case | Case |
SOLUTION | Solution | Solution |
CONTRACT | Contract | Contract |
ORDER | Order | Order |
CAMPAIGN | Campaign | Campaign |
PRODUCT2 | Product2 | Product |
PRICEBOOK2 | Pricebook2 | Price Book |
ASSET | Asset | Asset |
ASSET_RELATIONSHIP | AssetRelationship | Asset Relationship |
TASK | Task | Task |
USER | User | User |
COLLABORATION_GROUP | CollaborationGroup | Chatter Group |
IDEA | Idea | Idea |
RECOMMENDATION | Recommendation | Recommendation |
QUICK_TEXT | QuickText | Quick Text |
MACRO | Macro | Macro |
LIST_EMAIL | ListEmail | List Email |
IMAGE | Image | Image |
DAND_B_COMPANY | DandBCompany | D&B Company |
Requisitos previos
Es necesario instalar el plugin
Es necesario crear una aplicación conectada (Connected App) en Salesforce
Es necesario configurar la autenticación OAuth
Se requiere acceso de lectura a los objetos
Instalación del plugin
Instale desde la pantalla de administración en «Sistema» -> «Plugins».
O consulte Complemento para más detalles.
Configuración
Configure desde la pantalla de administración en «Crawler» -> «Data Store» -> «Crear nuevo».
Configuración básica
| Campo | Ejemplo |
|---|---|
| Nombre | Salesforce CRM |
| Handler | SalesforceDataStore |
| Habilitado | Activado |
Configuración de parámetros
Autenticación OAuth Token (recomendada):
Autenticación OAuth Password:
Lista de parámetros
| Parámetro | Requerido | Descripción |
|---|---|---|
base_url | No | URL de Salesforce (predeterminado: https://login.salesforce.com; Sandbox: https://test.salesforce.com) |
auth_type | Sí | Tipo de autenticación (oauth_token o oauth_password) |
username | Sí | Nombre de usuario de Salesforce |
client_id | Sí | Consumer Key de la aplicación conectada |
password | Para oauth_password | Contraseña de Salesforce |
private_key | Para oauth_token | Clave privada (formato PEM, saltos de línea como \n) |
client_secret | Para oauth_password | Consumer Secret de la aplicación conectada |
security_token | Para oauth_password | Token de seguridad del usuario |
number_of_threads | No | Número de hilos de procesamiento paralelo (predeterminado: 1) |
ignore_error | No | Continuar procesando en caso de error (predeterminado: true) |
custom | No | Nombres de objetos personalizados (separados por comas) |
<objeto>.title | No | Nombre del campo a usar para el título |
<objeto>.contents | No | Nombres de campos a usar para el contenido (separados por comas) |
<objeto>.descriptions | No | Nombres de campos para descripción (separados por comas) |
<objeto>.thumbnail | No | Nombre del campo para miniatura |
include_pattern | No | Patrón de inclusión del filtro URL (regex) |
exclude_pattern | No | Patrón de exclusión del filtro URL (regex) |
refresh_token_interval | No | Intervalo de actualización del token en segundos (predeterminado: 3540) |
proxy_host | No | Nombre del host del proxy HTTP |
proxy_port | Si proxy_host está configurado | Número de puerto del proxy HTTP |
Configuración de scripts
Campos disponibles
| Campo | Descripción |
|---|---|
object.type | Tipo del objeto (ej: Case, User, Solution) |
object.title | Nombre del objeto |
object.description | Descripción del objeto |
object.content | Contenido de texto del objeto |
object.id | ID del objeto |
object.content_length | Longitud del contenido |
object.created | Fecha y hora de creación |
object.last_modified | Fecha y hora de última modificación |
object.url | URL del objeto |
object.thumbnail | URL del thumbnail |
Configuración de aplicación conectada de Salesforce
1. Crear aplicación conectada
En Salesforce Setup:
Abrir «Application Manager»
Hacer clic en «New Connected App»
Ingresar información básica:
Nombre de aplicación conectada: Fess Crawler
Nombre de API: Fess_Crawler
Email de contacto: your-email@example.com
Marcar «Enable OAuth Settings»
2. Configuración de autenticación OAuth Token (recomendada)
En configuración OAuth:
Marcar «Use digital signatures»
Subir el certificado (crear según los pasos a continuación)
OAuth Scopes seleccionados:
Full access (full)
Perform requests on your behalf at any time (refresh_token, offline_access)
Hacer clic en «Save»
Copiar el Consumer Key
Creación del certificado:
Suba el certificado (certificate.crt) a Salesforce y configure el contenido de la clave privada (private_key.pem) en los parámetros.
3. Configuración de autenticación OAuth Password
En configuración OAuth:
URL de callback:
https://localhost(no se usa pero es requerido)OAuth Scopes seleccionados:
Full access (full)
Perform requests on your behalf at any time (refresh_token, offline_access)
Hacer clic en «Save»
Copiar Consumer Key y Consumer Secret
Obtener el token de seguridad:
Abrir configuración personal en Salesforce
Hacer clic en «Reset My Security Token»
Copiar el token enviado por email
4. Aprobación de aplicación conectada
En «Manage» -> «Manage Connected Apps»:
Seleccionar la aplicación conectada creada
Hacer clic en «Edit»
Cambiar «Permitted Users» a «Admin approved users are pre-authorized»
Asignar perfiles o conjuntos de permisos
Configuración de objetos personalizados
Crawl de objetos personalizados
Especifique los nombres de objetos personalizados en el parámetro custom:
Mapeo de campos para cada objeto:
Reglas de mapeo de campos
<nombre_objeto>.title- Campo a usar para el título (campo único)<nombre_objeto>.contents- Campos a usar para el contenido (múltiples separados por comas)<nombre_objeto>.descriptions- Campos a usar para la descripción (múltiples separados por comas)<nombre_objeto>.thumbnail- Campo a usar para la miniatura (campo único)
Nota
En el mapeo de campos de objetos estándar, el nombre de objeto usa UPPER_SNAKE_CASE (el valor de la columna «Nombre de objeto» de la sección Lista de objetos estándar) (p. ej. ACCOUNT.title=Name, DAND_B_COMPANY.title=Name). Para objetos personalizados, se usa el nombre de referencia de la API tal cual (p. ej. Product__c.title=Name).
Ejemplos de uso
Crawl de objetos estándar
Parámetros:
Script:
Crawl de objetos personalizados
Parámetros:
Script:
Crawl de entorno Sandbox
Parámetros:
Script:
Solución de problemas
Error de autenticación
Síntoma: Authentication failed o invalid_grant
Verificaciones:
Para autenticación OAuth Token:
Verificar que el Consumer Key sea correcto
Verificar que la clave privada esté copiada correctamente (saltos de línea como
\n)Confirmar que el certificado esté subido a Salesforce
Verificar que el nombre de usuario sea correcto
Para autenticación OAuth Password:
Verificar que Consumer Key y Consumer Secret sean correctos
Verificar que el token de seguridad sea correcto
Confirmar que la contraseña y el token de seguridad no estén concatenados (configurar por separado)
Común:
Verificar que base_url sea correcta (entorno de producción o Sandbox)
Confirmar que la aplicación conectada esté aprobada
No se obtienen objetos
Síntoma: El crawl tiene éxito pero hay 0 objetos
Verificaciones:
Confirmar que el usuario tiene permisos de lectura en los objetos
Para objetos personalizados, verificar que el nombre del objeto sea correcto (API Name)
Verificar que el mapeo de campos sea correcto
Revisar los mensajes de error en el log
Nombre de objeto personalizado
Verificar el API Name del objeto personalizado:
Abrir «Object Manager» en Salesforce Setup
Seleccionar el objeto personalizado
Copiar el «API Name» (generalmente termina en
__c)
Ejemplo:
Label: Product
API Name: Product__c (usar este)
Verificación de nombres de campo
Verificar el API Name del campo personalizado:
Abrir «Fields & Relationships» del objeto
Seleccionar el campo personalizado
Copiar el «Field Name» (generalmente termina en
__c)
Ejemplo:
Field Label: Product Description
Field Name: Product_Description__c (usar este)
Límite de tasa de API
Síntoma: REQUEST_LIMIT_EXCEEDED
Solución:
Reducir
number_of_threads(configurar a 1)Aumentar el intervalo de crawl
Verificar el uso de la API de Salesforce
Comprar límite de API adicional si es necesario
Gran volumen de datos
Síntoma: El crawl toma mucho tiempo o tiene timeout
Solución:
Dividir objetos en múltiples data stores
Ajustar
number_of_threads(aproximadamente 2-4)Distribuir el horario de crawl
Mapear solo los campos necesarios
Error de formato de clave privada
Síntoma: Invalid private key format
Solución:
Verificar que los saltos de línea en la clave privada sean correctamente \n:
Información de referencia
Descripción General de los Conectores de Almacén de Datos - Descripción general de conectores de Data Store
Conector de Base de Datos (Búsqueda en Bases de Datos) - Conector de base de datos
Rastreo de Almacén de Datos - Guía de configuración de Data Store