Saltar al contenido

Funciones de Salesforce en Jitterbit Studio

Las funciones de Salesforce proporcionan información de inicio de sesión, información de sesión y búsquedas para instancias de Salesforce.

GetSalesforceTimestamp

Declaración

string GetSalesforceTimestamp(string url, string sessionId[, string timeZoneId])

Sintaxis

GetSalesforceTimestamp(<url>, <sessionId>[, <timeZoneId>])

Parámetros requeridos

  • url: La URL a utilizar al llamar a Salesforce, obtenida al llamar a SalesforceLogin
  • sessionId: El ID de sesión de Salesforce, obtenido al llamar a SalesforceLogin

Parámetros opcionales

  • timeZoneId: Un ID de zona horaria a utilizar, como se describe en Códigos de zona horaria. El valor predeterminado es la zona horaria del endpoint de Salesforce identificado por el ID de sesión de Salesforce.

Descripción

Recupera la hora actual del sistema desde Salesforce.

La marca de tiempo se devuelve en el formato yyyy-mm-dd HH:MM:SS, utilizando la configuración de zona horaria del endpoint de Salesforce de forma predeterminada. Debes haber iniciado sesión en Salesforce utilizando la función SalesforceLogin antes de usar esta función. La función devuelve un valor nulo si la llamada falla. Utiliza la función GetLastError para recuperar el mensaje de error en ese caso.

El tercer argumento opcional se puede utilizar para establecer la zona horaria a usar. La zona horaria del endpoint de Salesforce se utiliza de forma predeterminada si no se proporciona una zona horaria. El argumento de zona horaria debe ser una zona horaria reconocida por la clase TimeZone de Java.

En un escenario común, se llama primero a la función SalesforceLogin. La URL y el ID de sesión están disponibles en estas variables globales:

  • $Salesforce.ServerUrl
  • $Salesforce.SessionId

Como alternativa a esta función, consulta también la función LoginToSalesforceAndGetTimestamp.

Ejemplos

// Start by logging into Salesforce
if(!SalesforceLogin("..."), RaiseError(GetLastError()));
timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl,
    $Salesforce.SessionId);
// Check for any errors before proceeding further
if(IsNull(timestamp), RaiseError(GetLastError()));

// Retrieving the timestamp in UTC:
timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl,
    $Salesforce.SessionId, "UTC");

// Retrieving the timestamp in Pacific Standard Time:
timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl,
    $Salesforce.SessionId, "PST");

LoginToSalesforceAndGetTimeStamp

Declaración

string LoginToSalesforceAndGetTimestamp(string salesforceOrg[, string timeZoneId])

Sintaxis

LoginToSalesforceAndGetTimestamp(<salesforceOrg>[, <timeZoneId>])

Parámetros requeridos

  • salesforceOrg: Una ruta de referencia de cadena a una conexión de Salesforce en el proyecto actual

Parámetros opcionales

  • timeZoneId: Un ID de zona horaria a utilizar, como se describe en Códigos de zona horaria. El valor predeterminado es la zona horaria del endpoint de Salesforce.

Descripción

Inicia sesión en Salesforce utilizando un endpoint de Salesforce y recupera la hora actual del sistema desde Salesforce.

El endpoint de Salesforce utilizado en esta llamada de función debe estar definido como una conexión de Salesforce en el proyecto actual. Para obtener más información, consulta las instrucciones sobre cómo insertar endpoints en la sección Endpoints en Jitterbit Script.

La llamada de inicio de sesión se realiza utilizando las credenciales en el endpoint de Salesforce especificado. La marca de tiempo se devuelve en el formato yyyy-mm-dd HH:MM:SS, utilizando la configuración de zona horaria del endpoint de Salesforce de forma predeterminada. La función devuelve un valor nulo si la llamada falla. Utiliza la función GetLastError para recuperar el mensaje de error en ese caso.

El argumento opcional se puede utilizar para establecer la zona horaria a usar. La zona horaria del endpoint de Salesforce se utiliza de forma predeterminada si no se proporciona una zona horaria. El argumento de zona horaria debe ser una zona horaria reconocida por la clase TimeZone de Java.

Una vez que se ha llamado esta función, la URL de Salesforce y el ID de sesión están disponibles en estas variables globales:

  • $Salesforce.ServerUrl
  • $Salesforce.SessionId

Como alternativa a esta función, consulta también la función GetSalesforceTimestamp.

Ejemplos

// Logs in to Salesforce and retrieves the timestamp
timestamp = LoginToSalesforceAndGetTimestamp("<TAG>endpoint:salesforce/Salesforce</TAG>");

// Check for any errors before proceeding further
if(IsNull(timestamp), RaiseError(GetLastError()));

// Retrieving the timestamp in UTC:
timestamp = LoginToSalesforceAndGetTimestamp("<TAG>endpoint:salesforce/Salesforce</TAG>", "UTC");

// Retrieving the timestamp in Pacific Standard Time:
timestamp = LoginToSalesforceAndGetTimestamp("<TAG>endpoint:salesforce/Salesforce</TAG>", "PST");

SalesforceLogin

Declaración

bool SalesforceLogin(string salesforceOrg)

Sintaxis

SalesforceLogin(<salesforceOrg>)

Parámetros requeridos

  • salesforceOrg: Una ruta de referencia de cadena a una conexión de Salesforce en el proyecto actual

Descripción

Inicia sesión en Salesforce usando el punto de conexión de Salesforce especificado.

El punto de conexión de Salesforce utilizado en esta llamada de función debe estar definido como una conexión de Salesforce en el proyecto actual. Para obtener más información, consulta las instrucciones sobre cómo insertar puntos de conexión en la sección Puntos de conexión en Jitterbit Script.

Después de un inicio de sesión exitoso, se habrán establecido estas variables globales y se pueden usar en scripts o asignaciones posteriores:

  • $Salesforce.SessionID: El ID de sesión de Salesforce
  • $Salesforce.ServerURL: La URL a usar en llamadas posteriores a Salesforce en la misma sesión
  • $Salesforce.UserID: El ID del usuario de Salesforce

La función devuelve true si el inicio de sesión fue exitoso y false si falló. Usa la función GetLastError para recuperar el mensaje de error en ese caso.

Nota

Los puntos de conexión creados con esta función se incluyen en reportes de uso de puntos de conexión y cuentan hacia tu licencia.

Ejemplos

// Logs in to Salesforce
result = SalesforceLogin("<TAG>endpoint:salesforce/Salesforce</TAG>");

// Check for any errors before proceeding further
if(!result, RaiseError(GetLastError()));

SetSalesforceSession

Declaración

void SetSalesforceSession(string salesforceOrg, string sessionId, string serverURL)

Sintaxis

SetSalesforceSession(<salesforceOrg>, <sessionId>, <serverURL>)

Parámetros requeridos

  • salesforceOrg: Una ruta de referencia de cadena a una conexión de Salesforce en el proyecto actual
  • sessionID: Un ID de sesión de Salesforce
  • serverURL: Una URL de servidor de Salesforce

Descripción

Establece la información de sesión de Salesforce para el punto de conexión de Salesforce especificado. Usa esta función si tienes un ID de sesión de Salesforce y una URL de servidor existentes. Llamar a esta función deshabilitará el inicio de sesión automático de Salesforce y en su lugar usará la información de sesión proporcionada.

El punto de conexión de Salesforce utilizado en esta llamada de función debe estar definido como una conexión de Salesforce en el proyecto actual. Para obtener más información, consulta las instrucciones sobre cómo insertar puntos de conexión en la sección Puntos de conexión en Jitterbit Script.

Después de una llamada de función exitosa, se habrán establecido estas variables globales y se pueden usar en scripts o asignaciones posteriores:

  • $Salesforce.SessionID: El ID de sesión de Salesforce.
  • $Salesforce.ServerURL: La URL a usar en llamadas posteriores a Salesforce en la misma sesión.

Esta función no valida la entrada; solo falla si el ID de sesión o la URL del servidor están vacíos o el punto de conexión de Salesforce referenciado no existe. Si el ID de sesión o la URL del servidor no son válidos, las operaciones posteriores de Salesforce fallarán.

Usa la función Eval para capturar errores, llamando a la función GetLastError para recuperar el mensaje de error.

Advertencia

Es un problema conocido que la función SetSalesforceSession no funciona correctamente y no debe usarse. Si se usa, el script puede o no generar un error. Incluso si el script no genera un error, la función no funcionará correctamente. Como la función no funciona, se usará el manejo de sesión integrado del conector de Salesforce.

Ejemplos

// Sets the Salesforce session information
sfOrg = "<TAG>endpoint:salesforce/Salesforce</TAG>";
sfSessionID = "00D5...SE";
sfURL = "https://example.my.salesforce.com/services/Soap/u/39.0/...";
// Logs in to Salesforce
Eval(SetSalesforceSession(sfOrg, sfSessionID, sfURL),
    RaiseError("Failed to set Salesforce session: " + GetLastError()));

SfCacheLookup

Declaración

string SfCacheLookup(string salesforceOrg, string soql)

Sintaxis

SfCacheLookup(<salesforceOrg>, <soql>)

Parámetros requeridos

  • salesforceOrg: Una ruta de referencia de cadena a una conexión de Salesforce en el proyecto actual**
  • soql: Una consulta escrita en Salesforce Object Query Language (SOQL)

Descripción

Inicia sesión en Salesforce (si es necesario) y recupera el resultado de la consulta desde Salesforce. Solo se devuelve el valor del primer campo del primer registro.

El endpoint de Salesforce utilizado en esta llamada de función debe definirse como una conexión de Salesforce en el proyecto actual. Para obtener más información, consulta las instrucciones sobre cómo insertar endpoints en la sección Endpoints en Jitterbit Script.

Los valores se almacenan en caché para que las llamadas posteriores con los mismos parámetros exactos (endpoint de Salesforce y SOQL) no desencadenen una llamada a Salesforce. Salesforce se llama solo la primera vez. El caché es válido durante la duración de la cadena de operaciones en la que se llama.

La función devuelve null si el inicio de sesión falla, la consulta no devuelve registros o la API falla. Utiliza la función GetLastError para recuperar el mensaje de error en ese caso.

Ejemplos

// Logs in to Salesforce and retrieves the first result of a query
// If the query is cached, it uses the cached value
myId = SFCacheLookup("<TAG>endpoint:salesforce/Salesforce</TAG>",
    "SELECT Id FROM Account WHERE Name='My Account'");

// Checks for any errors before proceeding
if(IsNull(myId), RaiseError(GetLastError()));

SfLookup

Declaración

string SfLookup(string salesforceOrg, string soql)

Sintaxis

SfLookup(<salesforceOrg>, <soql>)

Parámetros requeridos

  • salesforceOrg: Una ruta de referencia de cadena a una conexión de Salesforce en el proyecto actual**
  • soql: Una consulta escrita en Salesforce Object Query Language (SOQL)

Descripción

Inicia sesión en Salesforce (si es necesario) y recupera el resultado de la consulta desde Salesforce. Solo se devuelve el valor del primer campo del primer registro.

El endpoint de Salesforce utilizado en esta llamada de función debe definirse como una conexión de Salesforce en el proyecto actual. Para obtener más información, consulta las instrucciones sobre cómo insertar endpoints en la sección Endpoints en Jitterbit Script.

La función devuelve null si el inicio de sesión falla, la consulta no devuelve registros o la API falla. Utiliza la función GetLastError para recuperar el mensaje de error en ese caso.

Consulta también las funciones SFLookupAll y SFLookupAllToFile.

Para solucionar problemas, consulta Una función falla cuando su campo de conexión de endpoint se establece en una variable en la guía de solución de problemas de operaciones.

Ejemplos

// Logs in to Salesforce and retrieves the first result of a query
myId = SFLookup("<TAG>endpoint:salesforce/Salesforce</TAG>",
    "SELECT Id FROM Account WHERE Name='My Account'");

// Checks for any errors before proceeding
if(IsNull(myId), RaiseError(GetLastError()));

SfLookupAll

Declaración

array_2D SfLookupAll(string salesforceOrg, string soql)

Sintaxis

SfLookupAll(<salesforceOrg>, <soql>)

Parámetros requeridos

  • salesforceOrg: Una ruta de referencia de cadena a una conexión de Salesforce en el proyecto actual**
  • soql: Una consulta escrita en Salesforce Object Query Language (SOQL)

Descripción

Inicia sesión en Salesforce (si es necesario) y recupera el resultado de la consulta desde Salesforce. El array devuelto es bidimensional; un array de registros, donde cada registro es un array de campos nombrados.

El endpoint de Salesforce utilizado en esta llamada de función debe estar definido como una conexión de Salesforce en el proyecto actual. Para obtener más información, consulta las instrucciones sobre cómo insertar endpoints en la sección Endpoints en Jitterbit Script.

La función devuelve null si el inicio de sesión falla, la consulta no devuelve registros o la API falla. En ese caso, utiliza la función GetLastError para recuperar el mensaje de error.

Existen limitaciones si se utiliza una consulta de relación:

  • Solo se puede recuperar la relación inmediata. La consulta no puede incluir una relación de nieto.
  • Para cada registro de consulta, cada hijo no puede tener múltiples registros.
  • En la declaración de consulta, los campos bajo el mismo hijo deben estar agrupados juntos.

Consulta también las funciones SFLookup y SFLookupAllToFile.

Ejemplos

Ejemplo 1
// Logs in to Salesforce and retrieves the results of a query
records = SFLookupAll("<TAG>endpoint:salesforce/Salesforce</TAG>",
    "SELECT Id,Name FROM Account");
firstId = records[0][0];
firstAccountName = records[0]["name"];
Ejemplo 2
// Logs in to Salesforce and retrieves the results of a query
soql = "SELECT Id,Name,CreatedBy.ContactId,
    CreatedBy.FirstName,CreatedBy.LastName FROM Account";
rs = SfLookupAll("<TAG>endpoint:salesforce/Salesforce</TAG>", soql);
firstId = rs[0][0];
firstAccountName = rs[0]["name"];
lastName = rs[0]["CreatedBy.LastName"];
// or using an index:
last_name = rs[0][5];

SfLookupAllToFile

Declaración

int SfLookupAllToFile(string salesforceOrg, string soql, string targetId)

Sintaxis

SfLookupAllToFile(<salesforceOrg>, <soql>, <targetId>)

Parámetros requeridos

  • salesforceOrg: Una ruta de referencia de string a una conexión de Salesforce en el proyecto actual
  • soql: Una consulta escrita en Salesforce Object Query Language (SOQL)
  • targetID: Una actividad de string asociada a un endpoint de tipo archivo en el proyecto actual

Descripción

Inicia sesión en Salesforce (si es necesario) y escribe los resultados de la consulta desde Salesforce en un archivo CSV. La función devuelve el número de registros recuperados.

La llamada de inicio de sesión se realiza utilizando las credenciales en el endpoint de Salesforce especificado. El endpoint de Salesforce utilizado en esta llamada de función debe estar definido como una conexión de Salesforce en el proyecto actual.

El destino utilizado en esta llamada de función debe estar definido como una actividad asociada a un endpoint de tipo archivo en el proyecto actual. Estos incluyen actividades configuradas de File Share, FTP, HTTP, Local Storage y Temporary Storage.

Para obtener más información, consulta las instrucciones sobre cómo insertar endpoints en la sección Endpoints en Jitterbit Script.

La función devuelve null si el inicio de sesión falla, la consulta no devuelve registros o la API falla. En ese caso, utiliza la función GetLastError para recuperar el mensaje de error.

Consulta también las funciones SFLookup y SFLookupAll.

Ejemplos

Ejemplo 1
// Logs in to Salesforce,
// retrieves the results of a query,
// and writes the results to a target
nrec = SFLookupAllToFile("<TAG>endpoint:salesforce/Salesforce</TAG>",
    "SELECT Id,Name FROM Account",
    "<TAG>activity:/...</TAG>");
Ejemplo 2
// Logs in to Salesforce,
// retrieves the results of a query
// specified in a local variable,
// and writes the results to a target
soql = "SELECT Id,Name,CreatedBy.ContactId,
    CreatedBy.FirstName,CreatedBy.LastName FROM Account";
nrec = SfLookupAllToFile("<TAG>endpoint:salesforce/Salesforce</TAG>",
    soql, "<TAG>activity:/...</TAG>");