Funciones de Salesforce en Jitterbit Integration Studio
Las funciones de Salesforce proporcionan información de inicio de sesión y sesión, así como 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, proveniente deSalesforceLogin
sessionId
: El ID de sesión de Salesforce, proveniente deSalesforceLogin
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 punto final de Salesforce identificado por el ID de sesión de Salesforce.
Descripción
Recupera la hora del sistema actual desde Salesforce.
La marca de tiempo se devuelve en el formato yyyy-mm-dd HH:MM:SS
, utilizando la configuración de zona horaria de su punto final de Salesforce por defecto. Debe 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. Utilice 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 utilizar. La zona horaria de su punto final de Salesforce se utiliza por defecto 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, la función SalesforceLogin
se llama primero. 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, consulte 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 punto final de Salesforce.
Descripción
Inicia sesión en Salesforce utilizando un punto final de Salesforce y recupera la hora del sistema actual desde Salesforce.
El punto final de Salesforce utilizado en esta llamada a la función debe estar definido como una conexión de Salesforce en el proyecto actual. Para más información, consulta las instrucciones sobre cómo insertar puntos finales en la sección de Puntos finales en Jitterbit Script.
La llamada de inicio de sesión se realiza utilizando las credenciales en el punto final 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 de tu punto final de Salesforce por defecto. 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 utilizar. Se utiliza la zona horaria de tu punto final de Salesforce por defecto 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 a 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, también se puede ver 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 cadena de referencia a una conexión de Salesforce en el proyecto actual
Descripción
Inicia sesión en Salesforce, utilizando el endpoint de Salesforce especificado.
El endpoint de Salesforce utilizado en esta llamada a la función debe estar definido como una conexión de Salesforce en el proyecto actual. Para más información, consulta las instrucciones sobre cómo insertar endpoints en la sección de Endpoints en Jitterbit Script.
Después de un inicio de sesión exitoso, estas variables globales se habrán establecido y se pueden usar en scripts o mapeos posteriores:
$Salesforce.SessionID
: El ID de sesión de Salesforce$Salesforce.ServerURL
: La URL a utilizar en llamadas posteriores a Salesforce en la misma sesión$Salesforce.UserID
: El ID del usuario de Salesforce
La función devuelve verdadero si el inicio de sesión fue exitoso y falso si el inicio de sesión falló. Usa la función GetLastError
para recuperar el mensaje de error en ese caso.
Nota
Los endpoints creados con esta función se incluyen en reportes de uso de endpoints y cuentan para 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
Declaration
void SetSalesforceSession(string salesforceOrg, string sessionId, string serverURL)
Syntax
SetSalesforceSession(<salesforceOrg>, <sessionId>, <serverURL>)
Required parameters
salesforceOrg
: Una referencia de cadena a una conexión de Salesforce en el proyecto actualsessionID
: Un ID de sesión de SalesforceserverURL
: Una URL de servidor de Salesforce
Description
Establece la información de sesión de Salesforce para el punto final de Salesforce especificado. Utiliza esta función si tienes un ID de sesión de Salesforce y una URL de servidor existentes. Llamar a esta función desactivará el inicio de sesión automático de Salesforce y en su lugar utilizará la información de sesión proporcionada.
El punto final de Salesforce utilizado en esta llamada a la función debe estar definido como una conexión de Salesforce en el proyecto actual. Para más información, consulta las instrucciones sobre cómo insertar puntos finales en la sección de Endpoints en Jitterbit Script.
Después de una llamada a la función exitosa, estas variables globales se habrán establecido y se pueden utilizar en scripts o mapeos posteriores:
$Salesforce.SessionID
: El ID de sesión de Salesforce.$Salesforce.ServerURL
: La URL a utilizar 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 si el punto final de Salesforce referenciado no existe. Si el ID de sesión o la URL del servidor son inválidos, las operaciones posteriores de Salesforce fallarán.
Utiliza 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 ser utilizada. Si se utiliza, 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 utilizará el manejo de sesión incorporado 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 a la función debe estar definido como una conexión de Salesforce en el proyecto actual. Para más información, consulta las instrucciones sobre cómo insertar endpoints en la sección de Endpoints en Jitterbit Script.
Los valores se almacenan en caché para que las llamadas subsiguientes con los mismos parámetros exactos (endpoint de Salesforce y SOQL) no desencadenen una llamada a Salesforce. Salesforce se llama solo la primera vez. La caché es válida durante la duración de la cadena de operación en la que se llama.
La función devuelve null
si la sesión falla, la consulta no devuelve registros o la API falla. Usa 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 de Salesforce. Solo se devuelve el valor del primer campo del primer registro.
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 más información, consulta las instrucciones sobre cómo insertar endpoints en la sección de 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. Usa la función GetLastError
para recuperar el mensaje de error en ese caso.
Consulta también las funciones SFLookupAll
y SFLookupAllToFile
.
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 de Salesforce. El array devuelto es bidimensional; un array de registros, con cada registro siendo 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 más información, consulta las instrucciones sobre cómo insertar endpoints en la sección de 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.
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 agruparse juntos.
Consulta también las funciones SFLookup
y SFLookupAllToFile
.
Ejemplos
// 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"];
// 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 cadena a una conexión de Salesforce en el proyecto actualsoql
: Una consulta escrita en Salesforce Object Query Language (SOQL)targetID
: Una actividad de cadena asociada con un punto final de tipo archivo en el proyecto actual
Descripción
Inicia sesión en Salesforce (si es necesario) y escribe los resultados de Salesforce de la consulta 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 punto final de Salesforce especificado. El punto final de Salesforce utilizado en esta llamada de función debe estar definido como una conexión de Salesforce en el proyecto actual.
El objetivo utilizado en esta llamada de función debe estar definido como una actividad asociada con un punto final de tipo archivo en el proyecto actual. Estos incluyen actividades configuradas de Compartición de Archivos, FTP, HTTP, Almacenamiento Local y Almacenamiento Temporal.
Para más información, consulta las instrucciones sobre cómo insertar puntos finales en la sección de Puntos finales 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 SFLookup
y SFLookupAll
.
Ejemplos
// 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>");
// 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>");