Guía de ISVforce

Transcripción

Guía de ISVforce
Version 29.0: Winter ’14
Guía de ISVforce
© Copyright 2000–2013 salesforce.com, inc. Todos los derechos reservados. 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
Contenido
Capítulo 1: Introducción......................................................................................................................1
Funciones en el ciclo de vida de la aplicación............................................................................................................................2
Capítulo 2: Inicio rápido de ISVforce....................................................................................................3
Tutorial n.º 1: Inscripción.........................................................................................................................................................4
Paso 1: Inscribirse en el programa de socios..................................................................................................................4
Paso 2: Generar entornos de desarrollo y prueba...........................................................................................................5
Paso 3: Obtener una organización de negocio...............................................................................................................5
Paso 4: Editar la lista del publicador..............................................................................................................................6
Resumen de inscripción.................................................................................................................................................7
Tutorial n.º 2: Desarrollo de su aplicación................................................................................................................................7
Paso 1: Crear una aplicación..........................................................................................................................................7
Paso 2: Empaquetar la aplicación..................................................................................................................................9
Paso 3: Asignar un espacio de nombres.........................................................................................................................9
Paso 4: Cargar una versión beta.....................................................................................................................................9
Paso 5: Instalar y probar la versión beta.......................................................................................................................10
Resumen de la tarea de desarrollo................................................................................................................................11
Tutorial n.º 3: Publicación y licencias......................................................................................................................................11
Paso 1: Cargar en AppExchange.................................................................................................................................11
Paso 2: Crear la lista de aplicaciones............................................................................................................................12
Paso 3: Completar la lista............................................................................................................................................12
Paso 4: Instalar la LMA..............................................................................................................................................13
Paso 5: Licencias y gestión de aplicaciones..................................................................................................................14
Resumen de publicación y licencias.............................................................................................................................14
Tutorial n.º 4: Actualización de la aplicación..........................................................................................................................14
Paso 1: Crear una organización de parche...................................................................................................................15
Paso 2: Desarrollar un parche......................................................................................................................................16
Paso 3: Cargar el parche..............................................................................................................................................16
Paso 4: Instalar o enviar un parche..............................................................................................................................17
Resumen de la actualización de la aplicación...............................................................................................................17
Capítulo 3: Arquitectura y desarrollo de aplicaciones............................................................................19
Concepto de paquetes gestionados y no gestionados...............................................................................................................20
Planificación de la edición de paquetes gestionados....................................................................................................20
Componentes disponibles........................................................................................................................................................21
Modificación de componentes y atributos después de la instalación............................................................................25
Los componentes se agregan automáticamente a paquetes..........................................................................................31
Comportamiento especial de los componentes en paquetes....................................................................................................33
Componentes protegidos.............................................................................................................................................41
Consideraciones arquitectónicas para Group Edition y Professional Edition.........................................................................42
Funciones disponibles en Group Edition y Professional Edition................................................................................43
Límites para Group Edition y Professional Edition....................................................................................................43
Control de acceso en Group Edition y Professional Edition.......................................................................................44
i
Contenido
Uso de Apex en Group Edition y Professional Edition...............................................................................................44
Acceso a API en Group Edition y Professional Edition..............................................................................................44
Acceso a la API de REST en Group Edition y Professional Edition..............................................................45
Diseño de la aplicación para que sea compatible con varias ediciones.........................................................................46
Compatibilidad con varias ediciones mediante un paquete de ampliación.......................................................46
Compatibilidad con varias ediciones mediante Apex dinámico.......................................................................47
Escenarios de diseño de ejemplo para Group Edition y Professional Edition.............................................................48
Concepto de dependencias......................................................................................................................................................49
Creación de aplicaciones empaquetadas con Chatter .............................................................................................................50
Aspecto de Salesforce coincidente...........................................................................................................................................51
Desarrollo de la documentación de las aplicaciones.................................................................................................................51
Creación de configuración de perfil personalizado..................................................................................................................52
Acerca de los conjuntos de permisos y la configuración de perfil............................................................................................52
Descripción general de las aplicaciones conectadas.................................................................................................................55
Creación de una aplicación conectada.........................................................................................................................55
Modificación, empaquetado o eliminación de una aplicación conectada.....................................................................58
Instalación de una aplicación conectada.......................................................................................................................59
Visualización de detalles de la aplicación conectada ...................................................................................................59
Gestión de una aplicación conectada...........................................................................................................................60
Modificación de una aplicación conectada...................................................................................................................60
Monitoreo del uso de una aplicación conectada...........................................................................................................62
Desinstalación de una aplicación conectada.................................................................................................................63
Acerca del WSDL de socio.....................................................................................................................................................63
Trabajo con servicios externos.................................................................................................................................................63
Aprovisionamiento de servicios externos.....................................................................................................................64
Protección de la propiedad intelectual.....................................................................................................................................64
Núcleo de entorno...................................................................................................................................................................65
Configuración del Núcleo de entorno..........................................................................................................................66
Configuración de Mi dominio para el Núcleo de entorno...........................................................................................68
Mejores prácticas del Núcleo de entorno.....................................................................................................................69
Conexión de una organización al Núcleo de entorno..................................................................................................69
Consulta de los detalles de un miembro del Núcleo de entorno..................................................................................70
Modificación de los detalles de un miembro del Núcleo de entorno...........................................................................72
Creación de una organización nueva desde el Núcleo de entorno................................................................................73
Activación del inicio de sesión único en el Núcleo de entorno....................................................................................73
Desactivación del inicio de sesión único en el Núcleo de entorno...............................................................................74
Asignación de usuarios para inicio de sesión único en el Núcleo de entorno...............................................................74
Capítulo 4: Empaquetado y pruebas de la aplicación.............................................................................76
Registro de un prefijo de espacio de nombres..........................................................................................................................77
¿Qué son las versiones beta de los paquetes gestionados?........................................................................................................77
Creación y carga de un paquete en versión beta.......................................................................................................................78
Acerca de los entornos de desarrollo y prueba del socio...........................................................................................................79
Cómo inscribirse en entornos de prueba..................................................................................................................................79
Instalación de un paquete........................................................................................................................................................79
ii
Contenido
Disponibilidad de componentes tras la implementación..............................................................................................81
Configuración de paquetes instalados..........................................................................................................................81
Solución de errores en la instalación............................................................................................................................83
Desinstalación de un paquete..................................................................................................................................................84
Instalación de paquetes gestionados mediante la API.............................................................................................................85
Creación y carga de un paquete gestionado.............................................................................................................................86
Acerca de las versiones de paquetes.........................................................................................................................................87
Ejecución de Apex en la actualización/instalación del paquete................................................................................................88
Ejecución de Apex en la desinstalación del paquete................................................................................................................91
Capítulo 5: Superación de la revisión de seguridad...............................................................................94
Acerca de la revisión de seguridad...........................................................................................................................................95
Pasos en la revisión de seguridad.............................................................................................................................................95
El cuestionario de la revisión de seguridad..............................................................................................................................97
Creación de una organización de publicación de AppExchange..............................................................................................98
Cambio de la organización de publicación de AppExchange..................................................................................................99
Actualización de la versión del paquete en la lista de AppExchange.....................................................................................100
Envío de una aplicación móvil al proceso de revisión de seguridad.......................................................................................100
Envío de un paquete de extensión para someterlo a la revisión de seguridad.........................................................................101
Recursos para la revisión de seguridad...................................................................................................................................101
Preguntas más frecuentes sobre la revisión de seguridad.......................................................................................................102
¿Cuánto tarda el proceso de la revisión de seguridad? ¿Cada cuánto tiempo es obligatorio realizarla?......................103
¿Hay alguna tasa?.......................................................................................................................................................103
¿Por qué tengo que hacer pruebas en mi aplicación antes de la revisión si el equipo de seguridad va a hacerlas de
todos modos?.......................................................................................................................................................103
¿Puedo enviar mi aplicación para someterla a la revisión de seguridad antes de que esté terminada con el fin de
tener este proceso hecho pronto?.........................................................................................................................104
¿Por qué el equipo de revisión tiene que hacer pruebas en la parte X o Y de mi oferta?............................................105
¿Debo solucionar todos los problemas que el equipo de revisión de seguridad detecte?.............................................105
¿Por qué el equipo de revisión no puede enviarme todas las instancias de todo lo que encuentre en mi revisión?.....105
Si actualizo mi aplicación, ¿debe pagar de nuevo la tasa de la revisión de seguridad para vuelva a ser revisada?........106
Cuando creo un paquete gestionado nuevo (en realidad, una actualización de mi primera aplicación), ¿tendré que
pagar de nuevo la tasa para que vuelva a ser revisada la seguridad de la aplicación?.............................................106
¿Por qué debo realizar revisiones de seguridad periódicas?........................................................................................106
Entiendo que las soluciones revisadas pueden funcionar con las organizaciones con PE y GE. ¿Cómo funciona
esto?.....................................................................................................................................................................106
Capítulo 6: Publicación de la aplicación.............................................................................................107
¿Qué es AppExchange?.........................................................................................................................................................108
Vender en AppExchange...........................................................................................................................................108
¿Cómo funciona AppExchange?................................................................................................................................108
¿Quién puede utilizar AppExchange?........................................................................................................................109
Gestión de las organizaciones de Salesforce..........................................................................................................................109
Publicación de la aplicación o el servicio...............................................................................................................................110
Publicación de aplicaciones en AppExchange...........................................................................................................110
iii
Contenido
Creación o modificación del perfil de proveedor.......................................................................................................110
Creación o modificación de listas..........................................................................................................................................111
Marca de la aplicación...........................................................................................................................................................119
Envío de la lista para su aprobación.......................................................................................................................................119
Registro del paquete y elección de la configuración de la licencia..........................................................................................121
Notificaciones por email........................................................................................................................................................121
Uso de Checkout de AppExchange.......................................................................................................................................122
Preguntas más frecuentes sobre Checkout de AppExchange.................................................................................................123
Trabajo con prospectos de AppExchange..............................................................................................................................125
Reportes de análisis para publicadores...................................................................................................................................128
Reporte Instalaciones (Obtener ahora) (Installs [Get It Now]).................................................................................129
Reporte Prospectos....................................................................................................................................................129
Reporte Recursos y promociones...............................................................................................................................130
Reporte Pruebas, demostraciones y capturas de pantalla...........................................................................................130
Reporte Más información, videos y capturas de pantallas..........................................................................................131
Preguntas más frecuentes sobre AppExchange......................................................................................................................131
Capítulo 7: Gestión de licencias y asistencia administrativa.................................................................137
Descripción general de la Aplicación de gestión de licencias (LMA)....................................................................................138
Concepto de gestión de licencias...............................................................................................................................138
Diagrama de relaciones de la entidad.........................................................................................................................138
Terminología de LMA..............................................................................................................................................139
Instalación de la LMA..........................................................................................................................................................140
Configuración de la LMA.....................................................................................................................................................141
Asociación de paquetes con su LMO....................................................................................................................................142
Valores predeterminados de licencias.........................................................................................................................143
Uso de la LMA.....................................................................................................................................................................143
Acerca de los prospectos............................................................................................................................................144
Acerca de los paquetes...............................................................................................................................................144
Detalles del paquete.......................................................................................................................................144
Modificación de los propietarios de paquetes................................................................................................145
Modificación del gestor de prospectos para un paquete.................................................................................146
Acerca de las versiones de paquetes...........................................................................................................................146
Detalles de la versión del paquete..................................................................................................................147
Acerca de las licencias................................................................................................................................................147
Detalles de licencias.......................................................................................................................................147
Modificación de propietarios de licencias......................................................................................................149
Modificación de licencias...............................................................................................................................149
Integración con ventas y marketing.......................................................................................................................................151
Mejores prácticas...................................................................................................................................................................151
Preguntas más frecuentes sobre la Aplicación de gestión de licencias....................................................................................152
Solución de problemas...........................................................................................................................................................153
Capítulo 8: Prueba gratuita de la aplicación........................................................................................155
¿Por qué utilizar Trialforce?...................................................................................................................................................156
iv
Contenido
Descripción general de Trialforce..........................................................................................................................................156
Configuración de Trialforce..................................................................................................................................................157
Vinculación de un paquete a su organización de publicación de AppExchange........................................................158
Vinculación de un paquete con la organización de gestión de licencias.....................................................................159
Solicitud de una organización de gestión de Trialforce..............................................................................................159
Configuración de una marca personalizada para Trialforce.......................................................................................160
Creación de emails con imagen de marca......................................................................................................161
Creación de una página de inicio de sesión con marca...................................................................................161
Creación de una organización de origen de Trialforce...............................................................................................162
Vinculación de una organización de origen de Trialforce con la APO......................................................................163
Creación de una plantilla de Trialforce......................................................................................................................163
Obtención de una plantilla de Trialforce revisada......................................................................................................164
Pruebas gratuitas en AppExchange.......................................................................................................................................164
Proporcionar pruebas gratuitas en AppExchange mediante Trialforce......................................................................165
Configuración de una unidad de prueba en AppExchange........................................................................................165
Prueba gratuita en AppExchange disponible cuando se instala la aplicación.............................................................166
Pruebas gratuitas en el sitio Web...........................................................................................................................................166
Solicitud de un formulario de inscripción para Trialforce..........................................................................................166
Vinculación de una plantilla de Trialforce con el formulario de inscripción..............................................................167
Personalización del formulario de registro de HTML...............................................................................................168
Aprovisionamiento de organizaciones de prueba nuevas...........................................................................................168
Modificación de la prueba para una actualización.................................................................................................................169
Mejores prácticas de Trialforce..............................................................................................................................................169
Creación de inscripciones usando la API..............................................................................................................................170
SignupRequest...........................................................................................................................................................171
Inicio de solicitud de inscripción...............................................................................................................................177
Creación de una solicitud de inscripción....................................................................................................................177
Visualización de los detalles de solicitud de inscripción.............................................................................................177
Agregar campos personalizados a las solicitudes de inscripción.................................................................................178
Ejecución de reportes en solicitudes de inscripción...................................................................................................179
Uso de desencadenadores con solicitudes de inscripción...........................................................................................179
Creación de inscripciones de proxy para acceso de OAuth y a API...........................................................................180
Preguntas más frecuentes sobre Trialforce.............................................................................................................................182
Capítulo 9: Asistencia a sus suscriptores.............................................................................................183
Ficha Soporte........................................................................................................................................................................184
Consola de compatibilidad del suscriptor..............................................................................................................................184
Visualización de detalles del suscriptor......................................................................................................................185
Solicitud de acceso de inicio de sesión.......................................................................................................................185
Iniciar sesión en Organizaciones del suscriptor..........................................................................................................186
Mejores prácticas...........................................................................................................................................186
Solución de problemas en Organizaciones del suscriptor...........................................................................................186
Capítulo 10: Actualización de la aplicación........................................................................................187
Creación y carga de parches...................................................................................................................................................189
v
Contenido
Trabajo con versiones de parche............................................................................................................................................190
Versiones del código Apex.....................................................................................................................................................191
Efectos de la desaprobación de Apex para los suscriptores........................................................................................192
Capítulo 11: Envío de una actualización............................................................................................193
Acerca de las actualizaciones mediante envío........................................................................................................................194
Mejores prácticas en las actualizaciones mediante envío........................................................................................................195
Asignación de acceso a los componentes y campos nuevos....................................................................................................196
Secuencia de comandos posterior a la instalación de ejemplo para una actualización mediante envío...................................196
Limitaciones conocidas en las actualizaciones mediante envío..............................................................................................198
Programación de actualizaciones mediante envío..................................................................................................................198
Visualización de detalles de actualización mediante envío.....................................................................................................200
Visualización del historial de actualizaciones de una organización........................................................................................201
Apéndices........................................................................................................................................202
Apéndice A: Desarrollo y distribución de paquetes no gestionados.............................................202
Apéndice B: Comparación de licencias de usuario de ISVforce...................................................206
Apéndice C: Comparación de licencias de usuario de OEM.......................................................209
Glosario...........................................................................................................................................213
Índice..............................................................................................................................................216
vi
Capítulo 1
Introducción
En este capítulo...
•
Funciones en el ciclo de vida de la
aplicación
La guía de ISVforce está destinada a los proveedores de software independientes
(ISV) que quieren compilar y vender aplicaciones compiladas en la plataforma
Force.com. Se organiza en los capítulos siguientes:
•
•
•
•
•
•
•
•
•
Inicio rápido: punto de partida para obtener y configurar todos los entornos
que va a necesitar para compilar y vender aplicaciones.
Arquitectura y desarrollo de aplicaciones: ante de empezar a desarrollar, es
importante saber que todas las piezas encajan. En este capítulo se explican
las decisiones de arquitectura que hay que tomar antes del desarrollo.
Empaquetado y pruebas de la aplicación: en este capítulo también se explican
aspectos específicos del desarrollo y la realización de pruebas de aplicaciones
incluidas en paquetes.
Superación de la revisión de seguridad: más información sobre las mejores
prácticas de seguridad y la planificación para la revisión de seguridad.
Publicación de la aplicación: incorporación de la aplicación en el mercado
de AppExchange.
Gestión de licencias y asistencia administrativa: uso de la aplicación de
gestión de licencias para gestionar los clientes y las licencias de las
aplicaciones.
Trialforce: creación de una prueba gratuita para ayudarle a vender la
aplicación a clientes que no sean de Salesforce.
Asistencia a sus suscriptores: prestación de asistencia técnica a los clientes
para instalar y utilizar su aplicación.
Actualización: cuando es el momento de actualizar su aplicación
empaquetada, puede enviar parches menores o crear versiones principales.
1
Introducción
Funciones en el ciclo de vida de la aplicación
Funciones en el ciclo de vida de la aplicación
En esta guía se explica el ciclo de vida completo de una aplicación de paquete por lo que algunos de los temas podrían no ser
relevantes para sus intereses. En la lista siguiente se sugieren temas según la función para la que sean relevantes.
Arquitecto de aplicaciones
El arquitecto de aplicaciones determina el ámbito de la aplicación y las estructuras internas que la sustentan. Necesita
conocer detalles sobre la plataforma Force.com subyacente que determinen no solo el uso de la aplicación sino también
las ediciones con las que es compatible y el modo de instalación, configuración y actualización. El arquitecto debe conocer
bien esta guía completo pero en especial los capítulos siguientes:
• Arquitectura y desarrollo de aplicaciones en la página 19
• Superación de la revisión de seguridad en la página 94
Desarrollador que crea, empaqueta y carga aplicaciones
El desarrollador, o con frecuencia el equipo de desarrolladores, se encarga de crear la aplicación, empaquetarla y cargarla
en AppExchange. Además, actualiza la aplicación con soluciones a los problemas detectados y con funciones nuevas. El
desarrollador debe consultar los capítulos siguientes:
• Arquitectura y desarrollo de aplicaciones en la página 19
• Empaquetado y pruebas de la aplicación en la página 76
• Desarrollo de la documentación de las aplicaciones en la página 51
• Actualización de la aplicación en la página 187
Publicador que distribuye y vende la aplicación y presta servicio de asistencia
El publicador de una aplicación es aquella persona o compañía que tiene un perfil y una o varias listas para la aplicación
en AppExchange. Las listas de los publicadores contienen vínculos a las aplicaciones que han cargado en AppExchange
o a un sitio Web de terceros. Los publicadores también establecen las configuraciones de licencias predeterminadas. El
publicador debe consultar los capítulos siguientes:
• Publicación de la aplicación en la página 107
• Prueba gratuita de la aplicación en la página 155
• Asistencia a sus suscriptores en la página 183
Administrador que instala la aplicación
El administrador se encarga de descargar la aplicación desde AppExchange y de instalarla en su organización. También
pueden personalizar la aplicación para adaptarla mejor a sus necesidades de negocio. En el tema siguiente puede conocer
cuál es la interacción de los administradores con las aplicaciones:
• Instalación de un paquete en la página 79
2
Capítulo 2
Inicio rápido de ISVforce
En este capítulo...
•
•
•
•
Tutorial n.º 1: Inscripción
Tutorial n.º 2: Desarrollo de su
aplicación
Tutorial n.º 3: Publicación y licencias
Tutorial n.º 4: Actualización de la
aplicación
La finalidad de este inicio rápido es introducirle en el ciclo de vida de la
aplicación lo más rápido posible. Cuando lo termine, tendrá todo lo que necesita
para desarrollar y publicar una aplicación empaquetada.
Nota: Para poder efectuar todos los pasos de este inicio rápido, deberá
ser un socio de ISVforce/OEM, ya que algunas de las funciones solo
están disponibles para los socios aptos.
¿Cómo se organiza el inicio rápido?
El inicio rápido se desglosa en cuatro tutoriales que deben completarse en orden.
Como algunos de los pasos requieren una respuesta de email automática, el
tiempo necesario para completarlos puede variar de uno a otro. No obstante,
puede pararse en cualquier paso y retomar posteriormente donde lo haya dejado.
•
•
•
•
En el tutorial n.º 1 se explica el proceso de inscripción en el programa de
socios de Salesforce ISV y la obtención de todas las organizaciones (entornos)
que va a necesitar.
En el tutorial n.º 2 se explica el proceso de creación de una aplicación Hello
World sencilla.
En el tutorial n.º 3 se describe el proceso de publicación y gestión de la
aplicación.
En el tutorial n.º 4 aprenderá a actualizar su aplicación para ediciones
principales y menores.
Quiero más....
Al final de cada paso, existe una sección opcional denominada Quiero más. Si
quiere hacer las cosas con rapidez, vaya al siguiente paso. Sin embargo, si le
gusta ir con calma y profundizar más, aquí encontrará mucha información de
gran utilidad.
•
•
•
Para consultar una lista de términos útiles, vea el glosario en la página 213.
Para obtener más información acerca de Force.com y obtener acceso a
muchos más recursos, visite Developer Force en http://developer.force.com.
Para leer una introducción suave al desarrollo en Force.com, consulte el
libro de trabajo de Force.com en la Web
http://developer.force.com/workbook.
3
Inicio rápido de ISVforce
Tutorial n.º 1: Inscripción
Tutorial n.º 1: Inscripción
En este tutorial va a poder recopilar todas las partes que necesitará para desarrollar sus aplicaciones, venderlas y prestar asistencia.
Todo comienza con la inscripción en el programa de socios de AppExchange. Gracias a esta tendrá acceso al portal de socios
de donde puede obtener las organizaciones de desarrollo y prueba (entornos) y donde puede crear casos para que se activen
otras funciones. El primer caso que va a registrar corresponde a la solicitud de una organización de CRM que utilizará para
gestionar la publicación, las licencias y las posibles ventas de su aplicación. Aunque no necesite esa organización inmediatamente,
es mucho más fácil si se quita de encima cuanto antes estas tareas administrativas.
Si está familiarizado con Salesforce, sabrá que una organización es una nube en sí misma. Si no ha usado Salesforce antes,
piense en la organización como un entorno aparte donde podría desarrollar, probar o publicar su aplicación.
Ilustración 1: Las organizaciones (entornos) son nubes
Paso 1: Inscribirse en el programa de socios
El primer paso es inscribirse en el programa de socios de AppExchange.
1. En el navegador, vaya a www.salesforce.com/partners y haga clic en Únase ahora (Join Now).
2. Seleccione la primera casilla de verificación: Compilar y comercializar aplicaciones comerciales mediante tecnologías de
salesforce.com (Build & Market Commercial Applications using salesforce.com Technologies) (proveedor de software
independiente, socio ISV).
3. Rellene los campos en los que se solicita información suya y de la compañía.
4. En el área Preguntas adicionales (Additional Questions), haga clic en los cuadros desplegables y seleccione la respuesta
adecuada.
5. Ingrese las palabras del sistema Captcha mostradas y haga clic en Enviar inscripción (Submit Registration).
6. Enseguida recibirá un email con su nombre de usuario y una contraseña temporal. Haga clic en el vínculo para acceder al
portal de socios (https://sites.secure.force.com/partners/PP2PartnerLoginPage) e inicie sesión en él.
7. Acepte los términos de uso y rechace el mensaje emergente que aparezca.
8. Guarde esta página en Favoritos porque la va a utilizar bastante.
Felicitaciones, ya forma parte del programa de socios ISV de Salesforce.
4
Inicio rápido de ISVforce
Paso 2: Generar entornos de desarrollo y prueba
Paso 2: Generar entornos de desarrollo y prueba
Para compilar y vender aplicaciones en la plataforma Force.com, necesitará varios entornos donde llevar a cabo distintas tareas.
Estos entornos se denominan organizaciones. Puede obtener las organizaciones necesarias a través del portal de socios de un
modo sencillo. La primera que necesita es una organización con Partner Developer Edition, que es donde va a llevar a cabo
las tareas de desarrollo y posiblemente el empaquetado de la aplicación. Aunque ya disponga de una organización con Developer
Edition, debería inscribirse en la edición Partner Developer Edition, ya que esta permite un mayor almacenamiento de datos,
licencias y usuarios.
1. Debería haber iniciado ya sesión en el portal de socios. Si no es así, haga clic en el elemento guardado como favorito e inicie
sesión ahora.
2. En el portal de socios, en la sección Vínculos rápidos, haga clic en Crear una organización de prueba (Create a Test Org).
Ilustración 2: Generación de una organización
3. En el cuadro desplegable Edition, elija Partner Developer Edition. En lo sucesivo, y por razones de simplicidad, vamos
a denominarla organización de desarrollo.
4. Seleccione la casilla de verificación para aceptar los términos y haga clic en Enviar. En pocos minutos, recibirá un email
con un vínculo de inicio de sesión.
5. Mientras espera ese mensaje de email, puede aprovechar a generar otras organizaciones que va a necesitar. Después, se
inscribirá en una organización de prueba que será la que se utilice para probar la aplicación que desarrolle. En el área
Vínculos rápidos, haga clic de nuevo en Crear una organización de prueba, pero esta vez elija Enterprise/Platform Edition.
En lo sucesivo, y por razones de simplicidad, vamos a denominarla organización de prueba.
6. Unos minutos después, recibirá mensajes de email en los que se le pide iniciar sesión y cambiar la contraseña para las
organizaciones de desarrollo y prueba. Haga clic en el vínculo, cambie la contraseña y cree una pregunta y repuesta para la
contraseña.
Quiero más....
Quizás ha observado que hay varios tipos diferentes de organizaciones de prueba en las que puede inscribirse. Las distintas
ediciones de Salesforce tienen funciones diferentes y si tiene previsto distribuir la aplicación a otras ediciones, será conveniente
probar la aplicación y asegurarse de que funciona correctamente en cada una de estas ediciones. Esto no se incluye entre los
objetivos de este inicio rápido, de modo que si quiere obtener más información, consulte Consideraciones arquitectónicas para
Group Edition y Professional Edition en la página 42.
Paso 3: Obtener una organización de negocio
En el paso anterior, ha obtenido organizaciones específicas para llevar a cabo las tareas de desarrollo y pruebas. Para poder
publicar su aplicación y gestionar las licencias de la aplicación, necesitará una organización diseñada de forma específica para
tal fin. En este paso, va a registrar un caso en el portal de socios para que se le proporcione una ISV CRM Edition. Esta edición
será su “organización de negocio”, ya que se utilizará para publicar y gestionar las ventas y la distribución de su aplicación.
Nota: Esta función está disponible a los socios aptos. Para obtener más información sobre el programa de socios,
incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
1. En el portal de socios, en la sección Vínculos rápidos, haga clic en Crear un caso (Create a Case).
5
Inicio rápido de ISVforce
Paso 4: Editar la lista del publicador
Ilustración 3: Creación de un caso
2.
3.
4.
5.
6.
7.
8.
En la sección Categoría (Category), elija la primera opción.
En el cuadro de la primera categoría, elija AppExchange y listas de servicios (AppExchange and Service Listings).
En el cuadro de la segunda categoría, elija Solicitar CRM para socio (Request CRM for Partner).
En el cuadro desplegable Motivo (Reason), elija Solicitud de administración (Administration Request).
En el cuadro desplegable Gravedad (Severity), elija Alta (High).
En el asunto, ingrese Necesito CRM para ISV.
En el campo Descripción (Description), indíquenos si ya tiene una organización o si necesita una nueva. Si ya tiene una
organización de Salesforce, puede proporcionar el Id. de esta en el campo Descripción y se agregarán dos licencias de CRM
adicionales a su organización. En caso de que no tenga una organización existente, le proporcionaremos una nueva. En
cualquiera de los dos casos, no se olvide de ingresar la dirección de su compañía. Después, haga clic en Guardar.
Ilustración 4: Creación de un caso en el portal de socios
9. En pocos minutos, recibirá otro email en el que se le pedirá que inicie sesión y cambie su contraseña. Hágalo e incluya la
página en los marcadores de favoritos como ha hecho antes.
Quiero más....
•
•
Su organización de negocio puede tener muchos nombres. Algunas veces, nos podemos referir a ella como su organización
de publicación de AppExchange APO, siglas en inglés), su organización de gestión de licencias (LMO, siglas en inglés) o
como la CRM ISV Edition. Su organización es todas estas al mismo tiempo, por lo que lo más sencillo es denominarla
“organización de negocio”.
El cierre del caso puede tardar entre 24 y 48 horas. Haga clic en Mis casos (My Cases) en el menú Vínculos rápidos para
ver el estado de sus casos.
Paso 4: Editar la lista del publicador
En este paso va a iniciar sesión en AppExchange y proporcionar información sobre su compañía.
6
Inicio rápido de ISVforce
Resumen de inscripción
1. La sesión en la organización de negocio debería seguir iniciada. En la esquina superior derecha, haga clic en Agregar
aplicaciones de AppExchange (Add AppExchange Apps).
2. En la esquina superior derecha, haga clic en Iniciar sesión o registrarse (Login or Register).
3. En la página de inicio de sesión, utilice su nombre de usuario y contraseña para la organización de negocio.
4. Haga clic en la ficha Publicando (Publishing).
5. Haga clic en Su perfil de proveedor (Your Provider Profile).
6. Rellene la información en el perfil de proveedor y haga clic en Guardar.
Resumen de inscripción
En este primer tutorial, se ha inscrito en el programa de socios y en todas las organizaciones que necesitará principalmente
para desarrollar, probar y vender su aplicación. Recapitulemos y veamos en qué se ha inscrito y la finalidad de cada uno de
estos elementos.
Programa de socios de ISV
El programa de socios le proporciona acceso al portal de socios, que es el lugar donde puede crear organizaciones, registrar
casos y encontrar información general sobre el programa de socios.
Partner Developer Edition
También denominada organización de desarrollo, se trata de la organización donde va a desarrollar la aplicación y
posiblemente empaquetarla para su distribución.
Organización de prueba con Enterprise Edition
También denominada organización de prueba, se trata de la organización donde va a instalar y probar su aplicación,
exactamente igual que lo harán los clientes.
Organización CRM ISV
También denominada organización de negocio, se trata de la organización que se utiliza para la publicación de su aplicación,
las licencias y la gestión de esta desde un punto de vista de negocio. Como ayuda para la gestión de su licencia, ha instalado
la aplicación de gestión de licencias (LMA) en su organización de negocio.
Tutorial n.º 2: Desarrollo de su aplicación
En este tutorial va a aprender a crear una aplicación muy sencilla que hemos denominado “Hello World”. Esta aplicación no
hará grandes cosas pero bastará para aprender dónde tiene lugar el desarrollo dentro del ciclo de vida de una aplicación en
paquetes.
Paso 1: Crear una aplicación
En este paso va a crear una aplicación que contiene una página y una ficha en la que se mostrará la página.
1. En el navegador, inicie sesión en su organización con Partner Developer Edition. En lo sucesivo, vamos a denominarla
“organización de desarrollo”.
2. En Configuración, haga clic en Desarrollo > Páginas.
3. En la lista de Visualforce, haga clic en Nuevo.
4. En el campo Etiqueta (Label), ingrese Saludo.
5. En el área de marca de Visualforce, sustituya el contenido de la etiqueta <h1> por Hello World.
7
Inicio rápido de ISVforce
Paso 1: Crear una aplicación
Ilustración 5: Editor de páginas de Visualforce
6. Haga clic en Guardar.
Ahora va a asociar la página a una ficha.
1. En el menú de la barra lateral, haga clic en Crear > Fichas (Create > Tabs).
2. En la lista de fichas de Visualforce, haga clic en Nuevo.
3. En el asistente para crear una nueva ficha de Visualforce, haga clic en el cuadro desplegable y seleccione la página Hello
World que acaba de crear.
4. Para la etiqueta de fichas, ingrese Hello.
5. Haga clic en el campo Estilo de la ficha (Tab Style) y elija cualquier icono que represente a la ficha.
6. Haga clic en Siguiente, de nuevo en Siguiente y, en la página final, en Guardar.
Ahora va a crear una aplicación nueva que contenga la ficha y la página.
1. En el menú de la barra lateral, haga clic en Crear > Aplicaciones (Create > Apps).
2. Haga clic en Nuevo.
3. En el campo Etiqueta de la aplicación (App Label), ingrese Hello World y haga clic en Siguiente y, en la página siguiente,
de nuevo en Siguiente.
4. En la página Elegir fichas (Choose the Tabs), desplácese a la parte inferior de la lista de fichas disponibles, encuentre la
ficha Hello y agréguela a la lista de fichas selecconadas. Haga clic en Siguiente.
5. Seleccione la casilla de verificación Visible para que todos los perfiles puedan ver esta aplicación. Después, haga clic en
Guardar.
Quiero más....
Si le da la sensación de que acaba de crear una página dentro de un contenedor, que ha colocado dentro de otro contenedor,
efectivamente lo ha hecho. Y está a punto de poner todo dentro de otro contenedor más. ¿Qué son estos contenedores y qué
hacen?
•
•
•
Una ficha es un contenedor de cosas que quiere que se muestren en la misma página: un gráfico, una tabla o la página de
Visualforce que ha creado.
Una aplicación es un contenedor de fichas que aparecen las unas junto a las otras. Cuando se crea una aplicación, está se
muestra disponible en el selector de aplicaciones en la esquina superior derecha de la pantalla.
Un paquete es un contenedor de cosas que ha cargado en AppExchange. Normalmente, un paquete contiene una aplicación
que los clientes pueden instalar en su organización pero también puede cargar paquetes que amplíen las aplicaciones
existentes. No ha creado aún un paquete; esto lo hará en el paso siguiente.
8
Inicio rápido de ISVforce
Paso 2: Empaquetar la aplicación
Paso 2: Empaquetar la aplicación
En este paso, va a empaquetar la aplicación para que pueda distribuirla en AppExchange. Un paquete no es más que un
contenedor de componentes. En este caso, se trata de su aplicación, la ficha y la página.
1.
2.
3.
4.
En el menú de la barra lateral, haga clic en Crear > Paquetes (Create > Packages) y, a continuación, en Nuevo.
En el campo Nombre de paquete (Package Name), ingrese Hello World y haga clic en Guardar.
En la página Detalles de paquete (Package Detail), haga clic en Agregar componentes (Add Components).
Seleccione la aplicación Hello World y haga clic en Agregar a paquete (Add to Package).
Quiero más....
Cuando ha hecho clic en Agregar a paquete, ¿se ha dado cuenta de que la ficha Hello y la página de saludo se han agregado
de forma automática al paquete? Cuando se crea un paquete, el marco detecta automáticamente componentes dependientes y
los agrega al paquete.
Paso 3: Asignar un espacio de nombres
En este paso va a elegir un identificador único denominado espacio de nombres. Un espacio de nombres establece la diferencia
entre los distintos componentes y permite hacer cosas tales como la actualización de la aplicación después de su instalación.
Escoja con cuidado el espacio de nombres, ya que no podrá modificarlo después.
1. En el menú de la barra lateral, haga clic en Crear > Paquetes (Create > Packages).
2. En la lista Configuración de desarrollador, haga clic en Modificar y, en la página siguiente, haga clic en Continuar.
3. En el campo Prefijo de espacio de nombres (Namespace Prefix), ingrese un Id. alfanumérico de entre 1 y 15 caracteres y,
después, haga clic en Comprobar disponibilidad (Check Availability). Repita este paso hasta que tenga un espacio de
nombres exclusivo.
4. En el campo Paquete que debe gestionarse (Package to be managed), elija el paquete Hello World y haga clic en
Revise sus selecciones (Review Your Selections).
5. Revise la información de la página y haga clic en Guardar.
Quiero más....
En el código subyacente, el espacio de nombres se antepone en todos los componentes incluidos en paquetes desde su
organización de desarrollo. Esto permite que el paquete y su contenido se distinga de los paquetes de otros desarrolladores y
garantiza un control exclusivo de todos los componentes empaquetados.
Paso 4: Cargar una versión beta
Antes de cargar una versión de producción de su aplicación, habitualmente se carga una versión beta para probarla.
1.
2.
3.
4.
5.
En el menú de la barra lateral, haga clic en Crear > Paquetes (Create > Packages).
En la página Paquetes, haga clic en su paquete Hello World y, a continuación, en Cargar (Upload).
En la página Cargar paquete (Upload Package), ingrese un nombre y número de versión.
Para el tipo de versión, asegúrese de elegir Gestionado en versión beta (Managed — Beta).
Desplácese a la parte inferior y haga clic en Cargar (Upload). La carga puede tardar unos momentos hasta que termina.
Felicitaciones, ha cargado una aplicación en AppExchange. Su aplicación no está disponible al público pero puede acceder a
ella a través de un vínculo de instalación. Lo hará en el paso siguiente.
9
Inicio rápido de ISVforce
Paso 5: Instalar y probar la versión beta
Quiero más....
La finalidad de una versión beta es únicamente probar sus funciones. Por tanto, solo se puede instalar una organización de
prueba, una organización con Developer Edition o un sandbox (se explicará más adelante). El paso siguiente consiste en instalar
la versión beta en la organización de prueba que ha creado en el paso 2: Generar entornos de desarrollo y prueba.
Paso 5: Instalar y probar la versión beta
La instalación de la versión beta es sencilla: basta con hacer clic en el vínculo y proporcionar el nombre de usuario y la contraseña
que va a utilizar para la organización de prueba.
1. Haga clic en la URL de instalación.
Ilustración 6: Vínculo de URL de instalación
2.
3.
4.
5.
6.
7.
En la página de inicio de sesión, ingrese el nombre de usuario y la contraseña de la organización de prueba.
En la página Detalles de instalación del paquete (Package Installation Details), haga clic en Continuar (Continue).
Haga clic en Siguiente.
En la página Nivel de seguridad (Security Level), otorgue acceso a todos los usuarios y haga clic en Siguiente.
Haga clic en Instalar.
Cuando finalice la instalación, podrá seleccionar su aplicación en el selector de aplicación situado en la esquina superior
derecha.
Ilustración 7: Aplicación Hello World
8. En su página, debería ver la ficha Hello y el texto de saludo.
Ilustración 8: Ficha y página Hello World
10
Inicio rápido de ISVforce
Resumen de la tarea de desarrollo
Llegados a este punto, normalmente debería probar la aplicación y asegurarse de que funciona tal y como se ha diseñado. Su
aplicación se instala con facilidad y muestra lo que se pretende, pasemos a otra cosa.
Quiero más....
Los paquetes de versión beta también se pueden instalar en entornos de sandbox. Un sandbox es una réplica de la organización
de su cliente donde se puede desarrollar, probar o instalar aplicaciones, así como comprobar los cambios que se quieren
introducir. Ninguna de las organizaciones en las que se ha inscrito en este libro de trabajo tiene un sandbox pero si lo tuviera
en otra instalación y quisiera instalar allí la aplicación, deberá sustituir la parte inicial de la URL de instalación con
http://test.salesforce.com.
Resumen de la tarea de desarrollo
Felicitaciones, acaba de finalizar una parte fundamental del ciclo de vida de desarrollo de software. Los cambios que quiera
hacer en un futuro en la aplicación seguirán el mismo procedimiento:
1.
2.
3.
4.
5.
Modificar la aplicación existente en la organización de desarrollo
Incluir la aplicación en un paquete
Cargar el paquete como una versión beta
Instalar la versión beta en una organización de prueba
Probar la aplicación instalada
Tutorial n.º 3: Publicación y licencias
Imagine que ha pasado por varios ciclos de desarrollo con su versión beta y ya está preparado para publicar una aplicación
pública. El paso siguiente consiste en cargar una aplicación de producción, también llamada versión gestionada y editada de la
aplicación. Después, puede crear una lista para que otras personas puedan encontrar la aplicación y saber qué hace. Por último,
va a conectar la aplicación a la organización de negocio para que pueda gestionar las licencias de las personas que instalen su
aplicación.
Paso 1: Cargar en AppExchange
Este paso le puede resultar familiar, ya que se parece al paso para cargar una versión beta.
1. Si ha seguido los tutoriales sin parar, probablemente continúe su sesión iniciada en la organización de prueba. Ahora, vamos
a iniciar sesión en la organización de desarrollo.
2. Observará en la esquina superior derecha que hay un vínculo que dice Desarrollo de Hello World, versión 1.0 (Developing
Hello World, version 1.0). Haga clic en ese vínculo para acceder directamente a la página Detalles del paquete.
Ilustración 9: Desarrollo de Hello World, versión 1.0
3. En la página Detalles del paquete, haga clic en Cargar.
4. En Tipo de versión, elija Gestionado y editado.
11
Inicio rápido de ISVforce
Paso 2: Crear la lista de aplicaciones
5. Desplácese a la parte inferior y haga clic en Cargar (Upload).
6. En el mensaje emergente, haga clic en Aceptar.
Paso 2: Crear la lista de aplicaciones
En este paso va a modificar la lista de aplicaciones y va a conectar su organización de negocio a la aplicación.
1. Después de la carga del paquete, verá un vínculo para publicar en AppExchange, haga clic en él.
Ilustración 10: Publicar en AppExchange
2. Se mostrará un cuadro de diálogo de inicio de sesión; esta vez, utilice el nombre de usuario y la contraseña de su organización
de negocio.
3. Lea y acepte los términos y condiciones, y haga clic en Acepto (I Agree).
4. En la primera pregunta se cuestiona si ya aparece en AppExchange. Lo hizo en el Tutorial n.º 1: Inscribirse, Paso 4: Editar
la lista del publicador en la página 6, de modo que debe seleccionar Sí y hacer clic en Continuar.
5. Haga clic en Vincular organización nueva (Link New Organization).
6. Se le pedirá el nombre de usuario y la contraseña. Ingrese los valores correspondientes a la organización de desarrollo.
7. Haga clic en la ficha Publicando (Publishing).
8. Haga clic en Crear lista nueva (Create New Listing).
9. En la ventana emergente, ingrese un título de lista de Aplicación Hello World de <su nombre>. Será conveniente
agregar el nombre porque el título de la lista debe ser exclusivo y no podemos tener a todo el mundo listando aplicaciones
Hello World genéricas.
10. Seleccione el botón de opción Aplicación y, a continuación, haga clic en Enviar.
11. Rellene los campos obligatorios en la página Información básica (Basic Information).
12. Haga clic en Guardar.
Su lista ya está preparada pero aún quedan cosas por hacer, incluido el rellenado de las fichas de la parte superior. Lo haremos
en el paso siguiente.
Quiero más....
No se preocupe demasiado por tener la lista perfecta, todavía no es pública y puede cambiar la lista en cualquier momento.
Paso 3: Completar la lista
En la parte superior se muestran otras fichas: Ofertas (Offering), Descripción general (Overview), Especificaciones (Specs),
Asistencia técnica (Support), Contenido cargado (Uploaded Content) y Prospectos (Leads). Deberá rellenar los campos
obligatorios en estas fichas para que la lista esté completa.
1. Haga clic en Ofertas.
2. Para vincular su aplicación, haga clic en Cambiar paquetes (Change Packages).
3. Seleccione su aplicación y trasládela a la lista de aplicaciones seleccionadas; a continuación, haga clic en Aceptar.
12
Inicio rápido de ISVforce
Paso 4: Instalar la LMA
4. En el cuadro desplegable etiquetado Seleccione la versión más reciente de la aplicación (Select the
latest version of your application), seleccione su aplicación.
5. Haga clic en Guardar.
6. Haga clic en la ficha Descripción general.
7. Seleccione Gratis (Free).
8. Rellene el campo Descripción completa (Full Description) y haga clic en Guardar.
9. Haga clic en la ficha Especificaciones.
10. Haga clic en Cambiar ediciones (Change Editions).
11. En el mensaje emergente, traslade todas las ediciones a la lista de elementos seleccionados y haga clic en Enviar.
Nota: La página de Visualforce que ha creado está disponible en todas las ediciones pero no siempre es así con
las demás funciones. Antes de desarrollar una aplicación completa, seguro que le interesa tener en cuenta a sus
destinatarios y la edición que estos tienen. Para obtener más información sobre las ediciones y las funciones
compatibles, consulte el apartado: Consideraciones arquitectónicas para Group Edition y Professional Edition en
la página 42
12. Haga clic en Cambiar idiomas (Change Languages).
13. Elija el idioma en el que ha desarrollado la aplicación (inglés, probablemente) y haga clic en Enviar.
14. Haga clic en Guardar.
Las demás fichas no contienen campos obligatorios por lo que puede dejarlos en blanco de momento. Como hasta ahora, puede
volver atrás cuando quiera y cambiar los valores.
Paso 4: Instalar la LMA
La aplicación de gestión de licencias (LMA, siglas en inglés) permite gestionar las ventas, las licencias y el servicio de asistencia
de su aplicación. Para instalar la LMA, deberá archivar un caso en el portal de socios. Cuando el caso esté resuelto, instale la
LMA en la organización de negocio.
Nota: Esta función está disponible a los socios aptos. Para obtener más información sobre el programa de socios,
incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
1.
2.
3.
4.
5.
6.
7.
8.
9.
En el mensaje de email que reciba, haga clic en el vínculo de LMA.
Puede leer la reseña sobre la aplicación y hacer clic en Obtener ahora (Get It Now).
En la ventana emergente, elija En mi Salesforce de producción (In my production Salesforce).
Lea y acepte los términos y condiciones, y haga clic en Instalar (Install).
Compruebe su contraseña y haga clic en Enviar (Submit).
En la página Detalles de instalación del paquete (Package Installation Details), haga clic en Continuar (Continue).
Haga clic en Siguiente, Siguiente e Instalar.
Haga clic en Implementar ahora (Deploy Now) y, en la página siguiente, haga clic en Implementar (Deploy).
Haga clic en la esquina superior derecha y observará que hay una aplicación nueva instalada.
13
Inicio rápido de ISVforce
Paso 5: Licencias y gestión de aplicaciones
Ilustración 11: Aplicación de gestión de licencias
La LMA no se utiliza directamente, sino que primero hay que desarrollar una aplicación y publicarla. Es lo que va a hacer en
el paso siguiente.
Paso 5: Licencias y gestión de aplicaciones
En este paso va a conectar su aplicación a la aplicación de gestión de licencias (LMA) en su organización de negocio.
1.
2.
3.
4.
5.
6.
Haga clic en la ficha Publicando (Publishing).
Junto al paquete que ha cargado, haga clic en Gestionar licencias (Manage Licenses).
Haga clic en Registrar (Register).
Haga clic en Asignar (solo una vez) (Assign [One-Time Only]).
Ingrese las credenciales de inicio de sesión de su organización de negocio y haga clic en Enviar.
Haga clic en Guardar.
La aplicación tardará hasta 30 minutos en conectarse a la LMA. Descanse un rato, se lo ha ganado.
Resumen de publicación y licencias
En este tutorial, ha cargado su aplicación gestionada y editada en AppExchange y ha creado una lista para su aplicación.
También ha instalado la aplicación de gestión de licencias y la ha vinculado a su aplicación. Puede usar la LMA para gestionar
y renovar las licencias, así como para establecer la configuración de licencias predeterminada. Por ejemplo, puede otorgar
licencia a su aplicación como prueba gratuita que caducará tras un número específico de días. Para obtener más información,
consulte Gestión de licencias y asistencia administrativa en la página 137.
Ahora su aplicación tiene una lista privada en AppExchange que puede compartir con posibles clientes pero que el público
general no verá a menos que se disponga del vínculo necesario. Antes de incluir la aplicación en una lista pública, deberá superar
una revisión de seguridad. Esta revisión se explica en otros capítulos. Para obtener más información, consulte Pasos en la
revisión de seguridad en la página 95.
Tutorial n.º 4: Actualización de la aplicación
Si está familiarizado con Salesforce, sabrá que hacemos versiones de parches semanales para solucionar problemas y varias
veces al año publicamos una versión principal en la que introducimos funciones nuevas. Como proveedor de software
independiente (ISV), puede hacer lo mismo: entregar versiones de parches para solucionar problemas y una versión principal
para agregar funciones nuevas.
•
En el caso de las funciones nuevas, el proceso es el mismo que ya conoce. Debe comenzar por modificar la aplicación,
incluirla en un paquete, subir una versión beta, probar la versión beta y cargar una versión gestionada y editada. Las versiones
14
Inicio rápido de ISVforce
•
•
Paso 1: Crear una organización de parche
principales aumentan el número de versión al siguiente número entero, del 1.0 al 2.0, por ejemplo, mientras que las versiones
menores aumentan en una unidad el número tras el punto, de 1.0 a 1.1, por ejemplo. No hay reglas estrictas que definan
exactamente lo que constituye una versión principal o una menor. Todo depende de usted.
En el caso de las soluciones de problemas, el proceso varía un poco. Debe comenzar por crear una organización de parches,
un entorno especial con funcionalidad limitada que solo se puede usar para desarrollar un parche para un paquete específico.
Después de cargar el parche, puede enviarlo a sus clientes para que obtengan las soluciones a los problemas cuando inicien
sesión de nuevo. Las versiones menores aumentan el número de versión al segundo decimal, de 1.0 a 1.0.1, por ejemplo.
Los clientes deben encargarse de instalar las versiones principales o menores. Sin embargo, puede enviar versiones de parche
directamente a las organizaciones de los clientes. Esta función solo está disponible para los socios de ISVforce/OEM
registrados. Para obtener más información sobre el programa de socios, incluidos los requisitos de aptitud, visite el sitio
Web www.salesforce.com/partners.
Como ya conoce bien el proceso para desarrollar una versión principal, trataremos aquí el desarrollo de una versión de parche
y su entrega mediante envío a nuestros clientes.
Paso 1: Crear una organización de parche
Para crear un parche, debe generar una organización de desarrollo de parches nueva.
Para crear una versión del parche:
1.
2.
3.
4.
Desde Configuración, haga clic en Crear > Paquetes.
Haga clic en el nombre de su paquete gestionado.
Haga clic en la ficha Organización de parche y, a continuación, en Nueva.
Seleccione la versión del paquete cuyo parche desea crear en la lista desplegable Aplicación de parche a la versión principal.
El tipo de versión debe ser Gestionado y editado.
5. Introduzca un Nombre de usuario para iniciar sesión en su organización de parche.
6. Introduzca una Dirección de email asociada con su inicio de sesión.
7. Haga clic en Guardar.
Nota: Si pierde su información de inicio de sesión, haga clic en Restablecer en la página de detalles del paquete
en Organización de desarrollo de parche para restablecer el inicio de sesión en su organización de desarrollo de
parche.
En unos minutos, recibirá un email con las credenciales de inicio de sesión. Después de haber iniciado sesión y cambiado su
contraseña, continúe en el paso siguiente.
Quiero más....
El desarrollo en una organización de parche está limitado. A continuación se incluye una lista de advertencias:
•
•
•
•
•
•
•
•
No se pueden agregar componentes de paquete.
No se pueden eliminar los componentes de paquete actuales.
Los controles de acceso de API y Apex dinámica no se pueden cambiar para el paquete.
No se puede desaprobar ningún tipo de código Apex.
No se pueden agregar nuevas relaciones de clase de Apex, como extends.
No se pueden agregar nuevos modificadores de acceso de Apex, como virtual o global.
No se pueden añadir nuevos servicios Web.
No se pueden añadir nuevas dependencias de funciones.
15
Inicio rápido de ISVforce
Paso 2: Desarrollar un parche
Paso 2: Desarrollar un parche
Vamos a hacer un cambio sencillo en la aplicación. En lugar de que se muestre solo Hello World, va a agregar la fecha del día
actual.
1.
2.
3.
4.
En la organización de parche, en Configuración haga clic en Crear > Paquetes y, después, en el paquete Hello World.
En la lista de componentes de paquetes, haga clic en la página de saludo.
Haga clic en Modificar.
Justo después de la etiqueta de cierre </h1>, ingrese lo siguiente:
<br/>
<apex:outputText value="The date and time is: {!NOW()}"/>
5. Haga clic en Guardar.
6. Para ver el resultado, haga clic en la ficha Hello y verá que se muestra la fecha y hora actuales.
Ilustración 12: Mostrar la fecha y hora
Esto es todo lo que necesitamos hacer en este parche. Continuemos.
Quiero más....
La función !NOW devuelve la fecha en un formato estándar. Existen muchas funciones incorporadas y maneras de dar formato
al resultado. Para obtener más información, consulte la Guía del desarrollador de Visualforce.
Paso 3: Cargar el parche
Normalmente, el paso siguiente consiste en cargar un parche beta e instalarlo en una organización de prueba. Como el proceso
es muy parecido al que ha seguido en el Paso 4: Cargar una versión beta y en el Paso 5: Instalar y probar la versión beta que
ya realizó en el tutorial n.º 2: Desarrollo de su aplicación, no vamos a repetirlo.
1.
2.
3.
4.
5.
En la organización de parche, en Configuración haga clic en Crear > Paquetes y, después, en el paquete Hello World.
En la página Carga del paquete, haga clic en Cargar.
Ingrese un nombre de versión, por ejemplo, la fecha actual.
Tenga en cuenta que el Número de versión ha aumentado su Número de parche.
Seleccione Gestionado y editado (Managed — Released).
16
Inicio rápido de ISVforce
Paso 4: Instalar o enviar un parche
6. De forma opcional, introduzca y confirme una contraseña para compartir el paquete de forma privada con cualquiera que
tenga contraseña. No introduzca una contraseña si desea que el paquete esté disponible para cualquiera en AppExchange
y compartir el paquete públicamente.
7. Salesforce selecciona automáticamente los requisitos que encuentra. Además, seleccione cualquier otro componente
obligatorio de las secciones Requisitos del paquete y Requisitos del objeto para notificar a los instaladores
de los requisitos de este paquete.
8. Haga clic en Cargar.
Felicitaciones, ha cargado una versión de parche. Seguro que le interesa compartir el parche con otras personas. Eso es
precisamente lo que vamos a hacer a continuación.
Paso 4: Instalar o enviar un parche
Hay dos maneras de entregar un parche: puede requerir que sean los clientes quienes lo instalen o puede enviárselo. Las
actualizaciones mediante envío se realizan automáticamente; es decir, cuando el cliente inicia sesión, encuentra las actualizaciones.
Vamos a probar esta opción.
1. Inicie sesión en la organización de desarrollo.
2. En la esquina superior derecha, haga clic en Desarrollo de Hello World, versión 1.0 (Developing Hello World, version
1.0).
Ilustración 13: Desarrollo de Hello World, versión 1.0
3.
4.
5.
6.
7.
8.
En la página Detalles del paquete, haga clic en Actualizaciones de envío (Push Upgrades).
Haga clic en Programar actualizaciones mediante envío.
En la lista desplegable Versión de parche (Patch Version), selecicone la versión de parche que va a enviar.
En el campo Fecha de inicio programado (Scheduled Start Date), ingrese la fecha del día actual.
En la sección Seleccionar organizaciones de destino (Select Target Organizations), seleccione la organización de prueba.
Haga clic en Programar.
¡Ya lo ha hecho! Ha enviado una versión de parche al suscriptor para que este obtenga de forma automática las actualizaciones.
Debería comprobar que los clientes han recibido el parche y asegurarse de que lo han instalado correctamente.
Quiero más....
Las versiones beta no son aptas para las actualizaciones mediante envío. En este caso, deberá desinstalar la versión beta e
instalar después la nueva versión beta.
Resumen de la actualización de la aplicación
En este tutorial ha aprendido a actualizar su aplicación en una organización de parche y a enviar dicha actualización a los
clientes. Comenzó por crear una organización de parche específica de una versión de paquete editado. Después, modificó la
aplicación, la cargó y programó la actualización mediante envío para sus clientes.
17
Inicio rápido de ISVforce
Resumen de la actualización de la aplicación
Felicitaciones, ¡ha terminado! ¿O quizás esto no haya hecho más que empezar? Puede modificar la aplicación actual como
quiera que sea o bien puede crear una nueva organización de desarrollo en el portal de socios y compilar otra aplicación. Puede
utilizar las mismas organizaciones de prueba y ventas, así como todo lo que haya configurado para publicar y gestionar muchas
más aplicaciones. Va a conseguir que ISVforce sea un éxito.
18
Capítulo 3
Arquitectura y desarrollo de aplicaciones
En este capítulo...
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Concepto de paquetes gestionados y
no gestionados
Componentes disponibles
Comportamiento especial de los
componentes en paquetes
Consideraciones arquitectónicas para
Group Edition y Professional Edition
Concepto de dependencias
Creación de aplicaciones
empaquetadas con Chatter
Aspecto de Salesforce coincidente
Desarrollo de la documentación de
las aplicaciones
Creación de configuración de perfil
personalizado
Acerca de los conjuntos de permisos
y la configuración de perfil
Descripción general de las
aplicaciones conectadas
Acerca del WSDL de socio
Trabajo con servicios externos
Protección de la propiedad intelectual
Núcleo de entorno
En esta sección se incluyen conceptos importantes y decisiones de arquitectura
que debe tener en cuenta antes de comenzar el desarrollo. Son los siguientes:
•
•
•
•
Componentes disponibles
Límites para Group Edition y Professional Edition
Protección de la propiedad intelectual
Concepto de dependencias
Consulte también:
Consideraciones arquitectónicas para Group Edition y Professional Edition
19
Arquitectura y desarrollo de aplicaciones
Concepto de paquetes gestionados y no gestionados
Concepto de paquetes gestionados y no gestionados
Los paquetes tienen dos formas: gestionados y sin gestionar.
Paquetes no gestionados
Los paquetes sin gestionar se suelen utilizar para distribuir proyectos de código abierto o plantillas de aplicaciones y
ofrecer a los desarrolladores los fundamentos de una aplicación. Una vez haya instalado los componentes de un paquete
sin gestionar, los componentes se pueden modificar en la organización en la que se instalan. El desarrollador que ha
creado y cargado el paquete sin gestionar no tiene control sobre los componentes instalados y no podrá cambiarlos ni
actualizarlos. Los paquetes sin gestionar no se deben utilizar para migrar componentes de un Sandbox a una organización
de producción. En su lugar, utilice Conjuntos de cambios.
Paquetes gestionados
Los clientes de salesforce.com suelen utilizar los paquetes gestionados para distribuir y vender aplicaciones a los clientes.
Estos paquetes se deben crear a partir de una organización de Developer Edition. Mediante AppExchange y la aplicación
de gestión de licencias (LMA), los desarrolladores pueden vender y gestionar licencias basadas en usuarios en la aplicación.
Los paquetes gestionados también son totalmente actualizables. Para garantizar actualizaciones sin problemas, puede
que algunas modificaciones destructivas como la eliminación o modificación de objetos o campos no se realicen.
Los paquetes gestionados también ofrecen los siguientes beneficios:
• Protección de la propiedad intelectual de Apex
• Compatibilidad de versiones para componentes accesibles de API integrada
• Capacidad para aplicar divisiones y parches a versiones anteriores
• Capacidad de enviar actualizaciones de parches a los suscriptores de manera sencilla
• Asignación de nombres únicos a todos los componentes para garantizar instalaciones sin conflictos
Las siguientes definiciones ilustran estos conceptos:
Componentes
Un componente es una parte constituyente de un paquete. Define un elemento, como un objeto personalizado o un campo
personalizado. Puede combinar componentes de un paquete para producir funciones o aplicaciones potentes. En un
paquete sin gestionar, los componentes no se pueden actualizar. En un paquete gestionado, algunos componentes pueden
actualizarse y otros no.
Atributos
Un atributo es un campo de un componente, como el nombre de una plantilla de email o la casilla de verificación Permitir
reportes de un objeto personalizado. En un componente no actualizable de un paquete gestionado o sin gestionar, los
atributos son modificables por el desarrollador (el creador del paquete) y el suscriptor (el instalador del paquete). En un
componente actualizable de un paquete gestionado, el desarrollador puede modificar algunos atributos, otros los puede
modificar el suscriptor y algunos están bloqueados, por lo que no se pueden modificar.
Planificación de la edición de paquetes gestionados
La edición de un paquete de AppExchange es parecida a la edición de cualquier otro programa en el desarrollo de software.
Puede que desee implementarlo mediante repeticiones para garantizar que cada componente funciona como se espera. Incluso
puede ofrecer una versión beta a aquellos usuarios que se hayan ofrecido para instalar una primera versión de su paquete y
enviarle sus comentarios.
Una vez haya editado un paquete publicándolo en el directorio de AppExchange, cualquiera podrá instalarlo. Por ello, planifique
cuidadosamente su edición. Revise los estados definidos a continuación para familiarizarse con el proceso de edición. Salesforce
20
Arquitectura y desarrollo de aplicaciones
Componentes disponibles
aplica automáticamente el estado adecuado a su paquete y componentes dependiendo de la configuración de carga que
seleccionara y el punto en el que se encuentre dentro del proceso de edición.
Estado
Descripción
Sin gestionar
El paquete no se ha convertido en un paquete gestionado o el componente no se
ha agregado a un paquete gestionado. Tenga en cuenta un componente que esté
"Gestionado en versión beta" puede pasar al estado "No gestionado" si se retira de
un paquete gestionado. Todos los paquetes son no gestionados a menos que se
indique lo contrario con uno de los siguientes iconos gestionados.
Gestionado en versión beta
El paquete o componente se ha creado en la organización de Salesforce actual y
está gestionado, pero no se ha editado por una de las tres razones siguientes:
• No se ha cargado.
• Se ha cargado habiendo seleccionado Gestionado en versión beta. Esta
opción evita que se publique y esté disponible de forma pública en AppExchange.
El desarrollador todavía puede modificar cualquier componente pero tal vez el
instalador no pueda dependiendo de qué componentes se han incluido en el
paquete.
Gestionado y editado
El paquete o componente se ha creado en la organización de Salesforce actual y
está gestionado. También se ha cargado con la opción Gestionado y editado
seleccionada, indicando que puede publicarse y estar disponible de forma pública
en AppExchange. Tenga en cuenta que una vez que pase un paquete a este estado,
ni el desarrollador ni el instalador podrán modificar algunas propiedades de los
componentes.
Este tipo de edición se considera una edición principal.
Parche
Si tiene que proporcionar una actualización menor para un paquete gestionado,
considere la creación de un parche en lugar de una edición principal. Un parche
permite a un desarrollador cambiar la funcionalidad de los componentes existentes
en un paquete gestionado, mientras garantiza a los suscriptores experimentar que
no hay cambios visibles en el paquete.
Este tipo de edición se considera una versión de parche.
Gestionado e instalado
El paquete o componente se ha instalado desde otra organización de Salesforce
pero está gestionado.
Un desarrollador puede decidir redefinir las funciones de un paquete gestionado con el paso del tiempo al evolucionar los
requisitos. Esto puede implicar la necesidad de volver a diseñar algunos componentes del paquete gestionado. Los desarrolladores
no pueden eliminar algunos componentes en un paquete Gestionado y editado, pero pueden desaprobar un componente en
una versión posterior del paquete para que los nuevos suscriptores no reciban el componente, mientras que el componente
continúa funcionando para los suscriptores existentes y las integraciones de API.
Componentes disponibles
No todos los componentes se pueden incluir en paquetes para su distribución. Si crea una aplicación que utiliza componentes
que no se pueden incluir en paquetes, sus suscriptores tendrán que crear y configurar esos componentes después de instalar su
aplicación. Si la facilidad de instalación es un importante preocupación para sus suscriptores, tenga en cuenta los componentes
que no se pueden incluir en paquetes en su proceso de desarrollo.
21
Arquitectura y desarrollo de aplicaciones
Componentes disponibles
La siguiente tabla muestra los componentes disponibles en un paquete gestionado y si son o no actualizable o eliminables. Las
siguientes secciones describen las columnas de la tabla y sus valores.
Actualizable
Algunos componentes se actualizan a una versión más reciente cuando se actualiza un paquete.
• No: El componente no se puede actualizar.
• Sí: El componente se puede actualizar.
Suscriptor que se puede eliminar
Un suscriptor o instalador de un paquete puede eliminar el componente.
• No: El suscriptor no puede eliminar el componente.
• Sí: El suscriptor puede eliminar el componente.
Desarrollador que se puede eliminar
Un desarrollador puede eliminar algunos componentes después de cargar el paquete como Gestionado y editado. Los
componentes eliminados no se eliminan en la organización del suscriptor durante la actualización de un paquete. El
atributo Se puede proteger contiene más detalles acerca de la eliminación de componentes.
• No: El desarrollador no puede eliminar un componente Gestionado y editado.
• Sí: El desarrollador puede eliminar un componente Gestionado y editado.
Se puede proteger
Los desarrolladores pueden marcar ciertos componentes como protegidos. Los componentes creados en la organización
del suscriptor no se pueden vincular o hacer referencia a componentes protegidos. Un desarrollador puede eliminar un
componente protegido en una futura versión sin necesidad de preocuparse de errores en las instalaciones. Sin embargo,
si se marca un componente como no protegido y se publica de forma global, el desarrollador no podrá eliminarlo. Cuando
el suscriptor actualiza a una versión del paquete donde se ha eliminado el componente, éste último de elimina de la
organización del suscriptor.
• No: No se puede marcar el componente como protegido.
• Sí: Se puede marcar el componente como protegido.
Protección de IP
Algunos componentes incluyen automáticamente la protección de propiedad intelectual, como la confusión del código
Apex. Las únicas excepciones son métodos de Apex declarados como globales, lo que significa que se puede ver las firmas
del método por el suscriptor. La información en los componentes que incluye en paquetes y publica puede ser visible
para usuarios en AppExchange. Tenga cuidado cuando agregue su código a un custom s-control, una fórmula o página
de Visualforce, o cualquier otro componente que no puede ocultar en su aplicación.
• No: El componente no es compatible con la protección de propiedad intelectual.
• Sí: El componente es compatible con la protección de propiedad intelectual
Componente
Actualizable
Suscriptor que se
puede eliminar
Desarrollador que Se puede proteger Protección de IP
se puede eliminar
Acción
Sí
No
No
No
No
Instantánea
analítica
No
Sí
Sí
No
No
22
Arquitectura y desarrollo de aplicaciones
Componentes disponibles
Componente
Actualizable
Suscriptor que se
puede eliminar
Desarrollador que Se puede proteger Protección de IP
se puede eliminar
Clase de Apex
Sí
No
Sí (si no está
establecido como
acceso global)
No
Sí
Razón de
colaboración de
Apex
Sí
No
No
No
No
Nuevo cálculo de
colaboración de
Apex
No
Sí
Sí
No
No
Desencadenador
de Apex
Sí
No
Sí (si no está
establecido como
acceso global)
No
Sí
Aplicación
No
Sí
Sí
No
No
Tipo de artículo
Sí
No
No
No
No
Centro de
llamadas
No
Sí
No
No
No
Formato compacto Sí
No
Sí
No
No
Aplicación
conectada
Sí
Sí
Sí
No
No
Botón o vínculo
personalizado
Sí
No
Sí, si está protegido No, excepto
No
vínculos
personalizados
(para la página de
inicio únicamente)
Campo
personalizado
Sí
Sí
Sí
Etiqueta
personalizada
Sí
No
Sí, si está protegido Sí
No
Objeto
personalizado
Sí
No
No
No
No
Tipo de reporte
personalizado
Sí
No
No
No
No
Configuración
personalizada
Sí
No
No
No
Sí
Tablero
No
Sí
Sí
No
No
Documento
No
Sí
Sí
No
No
Plantilla de email No
Sí
Sí
No
No
Conjunto de
campos
No
No
No
No
Sí
23
No
No
Arquitectura y desarrollo de aplicaciones
Componentes disponibles
Componente
Actualizable
Suscriptor que se
puede eliminar
Desarrollador que Se puede proteger Protección de IP
se puede eliminar
Página flexible
Sí
No
No
No
No
Flujo
Sí
Sí
No
No
No
Carpeta
No
Sí
Sí
No
No
Componente de la Sí
página de inicio
No
No
No
No
Formatos de
página de inicio
No
Sí
Sí
No
No
Membrete
No
Sí
Sí
No
No
Vista de lista
No
Sí
Sí
No
No
Formato de página No
Sí
Sí
No
No
Conjunto de
permisos
Sí
No
No
No
No
Tipo de registro
Sí
No
No
No
No
Configuración de No
sitio remoto
Sí
Sí
No
No
Reporte
No
Sí
Sí
No
No
S-Control
Sí
No
No
No
No
Recurso estático
Sí
No
No
No
No
Tabulador
Sí
Sí
Sí
No
No
Traducción
Sí
No
No
No
No
Regla de
validación
Sí
No
No
No
No
Componente de
Visualforce
Sí
No
Sí (si está
establecido como
acceso público)
No
Sí
Página de
Visualforce
Sí
No
No
No
No
Alerta de email de Sí
flujo de trabajo
No
Sí, si está protegido Sí
No
Actualización del Sí
campo de flujo de
trabajo
No
Sí, si está protegido Sí
No
Mensaje saliente Sí
de flujo de trabajo
No
Sí, si está protegido Sí
No
Regla de flujo de
trabajo
No
No
No
Sí
24
No
Arquitectura y desarrollo de aplicaciones
Componente
Modificación de componentes y atributos después de la
instalación
Actualizable
Tarea del flujo de Sí
trabajo
Suscriptor que se
puede eliminar
Desarrollador que Se puede proteger Protección de IP
se puede eliminar
No
Sí, si está protegido Sí
No
Atributos y comportamientos del componente
Solo se pueden actualizar algunos atributos de un componente. Muchos componentes se comportan de manera diferente
también o incluyen restricciones adicionales en un paquete gestionado. Es importante tener en cuenta esos comportamientos
al diseñar su paquete.
Consulte también:
Modificación de componentes y atributos después de la instalación
Los componentes se agregan automáticamente a paquetes
Modificación de componentes y atributos después de la instalación
La siguiente tabla muestra qué componentes y atributos son modificables después de la instalación desde un paquete gestionado.
Las siguientes secciones describen las columnas de la tabla y sus valores.
Desarrollador modificable
El desarrollador puede modificar los atributos del componente en esta columna. Estos atributos están bloqueados en la
organización del suscriptor.
Suscriptor y desarrollador modificables
El suscriptor y el desarrollador pueden modificar los atributos del componente en esta columna. Sin embargo, no son
actualizables, solo los nuevos suscriptores reciben los últimos cambios.
Bloqueado
Cuando un paquete es Gestionado y editado, el desarrollador y el suscriptor no pueden modificar los atributos del
componente en esta columna.
Componente
Desarrollador modificable
Suscriptor y desarrollador
modificables
Bloqueado
Acción
•
•
•
Tipo de registro de destino •
Formato de acción
Valores predeterminados
para campos de acción
Todos los campos excepto
Tipo de registro de destino
Instantánea analítica
•
Todos los atributos
•
excepto Nombre exclusivo
de la instantánea analítica
Nombre exclusivo de la
instantánea analítica
Clase de Apex
•
•
Versión de API
Código
•
25
Nombre
Arquitectura y desarrollo de aplicaciones
Modificación de componentes y atributos después de la
instalación
Componente
Desarrollador modificable
Razón de colaboración de
Apex
•
Suscriptor y desarrollador
modificables
Razón de etiqueta
Nuevo cálculo de
colaboración de Apex
Desencadenador de Apex
•
•
•
Tipos de artículos
•
•
•
•
•
Descripción
•
Etiqueta
•
Etiqueta plural
Empieza con un sonido de •
vocal
•
•
•
•
Formato compacto
•
Todos los atributos
Aplicación conectada
•
•
•
•
•
•
•
Método de acceso
URL de aplicación de
lienzo
URL de devolución de
llamada
Nombre de aplicación
conectada
Email de contacto
Teléfono de contacto
Descripción
URL de icono
URL de información
Intervalos de IP
Ubicaciones
URL de la imagen del
logotipo
Ámbitos de OAuth
•
Comportamiento
•
•
•
•
•
•
•
•
•
•
Botón o vínculo
personalizado
Nombre de razón
•
Nombre
Todos los atributos
excepto Nombre de
aplicación
•
Nombre de aplicación
Disponible para el portal •
de clientes
Visualizaciones de canales
Modelo de colaboración
predeterminado
Nombre
Estado de desarrollo
Habilitar divisiones
Otorgar acceso con
jerarquías
Formatos de búsqueda
•
•
•
•
•
Nombre de API
Fecha de creación/por:
Clave de consumidor
Pregunta secreta de
consumidor
Instalado por
Fecha de instalación
Fecha de última
modificación/por
Versión
•
•
URL de ACS
Id. de entidad
Restricciones IP
Gestionar conjuntos de
permisos
Gestionar perfiles
URL de inicio de Mobile
Usuarios autorizados
Los usuarios deben iniciar
sesión
Atributos de SAML
Certificado de proveedor
de servicio
URL de inicio
Tipo de asunto
•
Altura
•
Tipo de visualización
•
•
•
•
•
•
26
•
Clase de Apex
Versión de API
Código
Aplicación
Bloqueado
•
•
•
Arquitectura y desarrollo de aplicaciones
Componente
Modificación de componentes y atributos después de la
instalación
Desarrollador modificable
•
•
•
•
•
•
Suscriptor y desarrollador
modificables
URL de botón o vínculo
Origen del contenido
Descripción
Mostrar casillas de
verificación
Etiqueta
Codificación del vínculo
•
•
•
•
•
•
•
•
Campo personalizado
•
•
•
•
•
•
•
•
•
•
Formato de presentación
de numeración automática
Número de decimales
Descripción
Valor predeterminado
Etiqueta de campo
Fórmula
Extensión
Filtro de búsqueda
Etiqueta de lista
relacionada
Criterios de filtro de
resumen
Etiqueta personalizada
•
•
•
Categoría
Descripción breve
Valor
Objeto personalizado
•
•
•
•
•
Descripción
Etiqueta
Etiqueta plural
Nombre del registro
Empieza con un sonido de
vocal
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
27
Bloqueado
Ajustar tamaño
•
Mostrar barra de dirección
Mostrar barra de menú
Mostrar barras de
desplazamiento
Mostrar barra de estado
Mostrar barras de
herramientas
Anchura
Posición de la ventana
Nombre
Seguimiento de noticias en
tiempo real de Chatter
Texto de ayuda
Tipo de máscara
Carácter de máscara
Configuración de
colaboración
Ordenar valores de lista de
selección
Seguimiento de historial
de campos
•
•
•
•
•
•
•
•
Nombre de relación
secundaria
Tipo de datos
Id. externo
Nombre del campo
Obligatorio
Campos de resumen
Objeto de resumen
Tipo de resumen
Exclusivo
•
Nombre
•
Permitir actividades
•
Permitir reportes
•
Disponible para el portal
de clientes
•
Configuración de la ayuda
contextual
Modelo de colaboración
predeterminado
Estado de desarrollo
Habilitar divisiones
Búsqueda mejorada
Otorgar acceso con
jerarquías
Formatos de búsqueda
Nombre de objeto
Tipo de datos del nombre
de registro
Formato de presentación
del nombre de registro
Arquitectura y desarrollo de aplicaciones
Componente
Tipo de reporte
personalizado
Modificación de componentes y atributos después de la
instalación
Desarrollador modificable
•
Configuración personalizada •
•
Suscriptor y desarrollador
modificables
Todos los atributos
excepto Estado de
desarrollo y Nombre del
tipo de reporte
•
Seguimiento de historial
de campos
•
Estado de desarrollo
Descripción
Etiqueta
Bloqueado
•
Nombre del tipo de
reporte
•
•
•
Nombre de objeto
Tipo de configuración
Visibilidad
Tablero
•
Todos los atributos
•
excepto Nombre exclusivo
del tablero
Nombre exclusivo del
tablero
Documento
•
Todos los atributos
•
excepto Nombre exclusivo
del documento
Nombre único del
documento
Plantilla de email
•
Todos los atributos
excepto Nombre de
plantilla de email
•
Nombre de plantilla de
email
•
Campos seleccionados
(controlado únicamente
por el suscriptor)
•
Nombre
•
•
•
Nombre
Descripción
Estado
•
•
Nombre exclusivo del flujo
URL
•
Todos los atributos
•
excepto Nombre exclusivo
de la carpeta
Conjunto de campos
•
•
•
Descripción
Etiqueta
Campos disponibles
Página flexible
•
Página flexible
Flujo
•
Todo el flujo
Carpeta
Componente de la página de •
inicio
•
Cuerpo
Posición del componente
Formatos de página de inicio
•
28
Todos los atributos
excepto Nombre de
formato
Nombre exclusivo de la
carpeta
•
•
Nombre
Tipo
•
Nombre de formato
Arquitectura y desarrollo de aplicaciones
Componente
Modificación de componentes y atributos después de la
instalación
Desarrollador modificable
Suscriptor y desarrollador
modificables
Bloqueado
Membrete
•
Todos los atributos
excepto Nombre de
membrete
Vista de lista
•
Todos los atributos
•
excepto Nombre exclusivo
de vista
Nombre exclusivo de vista
Formato de página
•
Todos los atributos
excepto Nombre de
formato de página
•
Nombre de formato de
página
•
Nombre
Activo
Proceso de negocio
•
Nombre
Configuración de sitio
remoto
Todos los atributos excepto
Nombre de sitio remoto
•
Nombre de sitio remoto
Reporte
•
Todos los atributos
•
excepto Nombre exclusivo
del reporte
Nombre exclusivo del
reporte
•
Incorporar previamente en •
la página
•
Nombre de S-Control
Tipo
Conjunto de permisos
•
•
•
•
•
•
Tipo de registro
•
•
Descripción
Etiqueta
Permisos de objeto
personalizados
Permisos de campos
personalizados
Configuración de acceso a
la clase de Apex
Configuración de acceso a
la página de Visualforce
Descripción
Etiqueta de tipo de
registro
S-Control
•
•
•
•
•
Contenido
Descripción
Codificación
Nombre de archivo
Etiqueta
Recurso estático
•
•
Descripción
Archivo
Tabulador
•
•
Descripción
Codificación
•
•
•
•
29
Mobile Ready
Estilo de la ficha
•
Nombre de membrete
•
Nombre
•
Nombre de ficha
Arquitectura y desarrollo de aplicaciones
Componente
Modificación de componentes y atributos después de la
instalación
Desarrollador modificable
Suscriptor y desarrollador
modificables
•
•
•
Con barra lateral
Altura
Etiqueta
S-Control
Vínculo personalizado a la
página de bienvenida
Tipo
URL
Anchura
Traducción
•
Todos los atributos
Regla de validación
•
•
Descripción
Formula de condición de
error
Ubicación del error
Mensaje de error
•
•
•
•
•
•
•
•
Activo
Bloqueado
•
Nombre de regla
Componente de Visualforce •
•
•
•
Versión de API
Descripción
Etiqueta
Marca
•
Nombre
Página de Visualforce
Versión de API
Descripción
Etiqueta
Marca
•
Nombre
Emails adicionales
Plantilla de email
Dirección del remitente
del email
Destinatarios
•
Descripción
•
•
•
•
Alerta de email de flujo de
trabajo
•
•
•
•
Actualización del campo de •
flujo de trabajo
•
•
Descripción
Valor de campo
Valor de fórmula
•
•
Búsqueda
Notificar a la persona
asignada
•
Nombre
Mensaje saliente de flujo de •
trabajo
•
•
•
Descripción
URL de extremo
Campos para enviar
Enviar Id. de sesión
•
Usuario para enviar como •
Nombre
30
Arquitectura y desarrollo de aplicaciones
Los componentes se agregan automáticamente a paquetes
Componente
Desarrollador modificable
Regla de flujo de trabajo
•
•
•
Suscriptor y desarrollador
modificables
Descripción
Criterios de evaluación
Criterios de reglas
Tarea del flujo de trabajo
Bloqueado
•
Activo
•
Nombre de regla
•
•
•
•
Asignar a
Comentarios
Fecha de vencimiento
Notificar a la persona
asignada
Prioridad
Tipo de registro
Estado
•
Asunto
•
•
•
Los componentes se agregan automáticamente a paquetes
Al agregar componentes a su paquete, se agregan algunos componentes relacionados automáticamente si es necesario. Por
ejemplo, si agrega una página de Visualforce a un paquete que hace referencia a un controlador personalizado, esa clase de
Apex también se agrega.
Para comprender qué componentes se pueden incluir automáticamente, revise la siguiente lista:
Cuando agrega este componente:
Estos tipos de componentes de puede incluir de forma automática:
Acción
Objeto de destino de acción (si es un objeto personalizado), campo de destino de acción,
tipo de registro de acción, valores de campo predeterminados, formato de acción y
cualquier campo personalizado al que hacen referencia los valores predeterminado o
el formato de acción en el objeto de destino
Instantánea analítica
Reportes
Clase de Apex
Campos personalizados, objetos personalizados y otras clases de Apex a las que se hace
referencia de forma explícita, así como cualquier otra cosa a la que se hace referencia
directamente en la clase de Apex
Nota: Si una clase de Apex hace referencia a una etiqueta personalizada y esa
etiqueta tiene traducciones, debe empaquetar de forma explícita los idiomas
individuales que desee con el fin de que esas traducciones se incluyan.
Desencadenador de Apex
Campos personalizados, objetos personalizados y cualquier clase de Apex a la que se
hace referencia de forma explícita, así como cualquier otra cosa a la que se hace referencia
directamente en el desencadenador de Apex
Tipo de artículo
Campos personalizados, el formato de página predeterminado
Formato compacto
Campos personalizados
Aplicaciones personalizadas
Fichas personalizadas (incluyendo fichas Web), documentos (almacenados como
imágenes en la ficha), carpeta de documentos
31
Arquitectura y desarrollo de aplicaciones
Los componentes se agregan automáticamente a paquetes
Cuando agrega este componente:
Estos tipos de componentes de puede incluir de forma automática:
Botón o vínculo personalizado
Campos personalizados y objetos personalizados
Campo personalizado
Objetos personalizados
Formatos de página de inicio
personalizados
Componentes de página de inicio personalizados en el formato
Configuración personalizada
Motivos de colaboración de Apex, nuevos cálculos de colaboración de Apex,
desencadenadores de Apex, botones o vínculos personalizados, campos personalizados,
vistas de lista, formatos de página, tipos de registro, reglas de validación
Objeto personalizado
Campos personalizados, reglas de validación, formatos de página, vistas de lista, botones
personalizados, vínculos personalizados, tipos de registro, motivos de colaboración de
Apex, nuevos cálculos de colaboración de Apex y desencadenadores de Apex
Nota:
•
•
Los motivos de colaboración de Apex no están disponibles en extensiones.
Una vez instaladas y empaquetadas, solo se instalan las vistas de lista pública
desde una aplicación. Si un objeto personalizado tiene cualquier vista de
lista personalizada que desea incluir en su paquete, asegúrese de que la
vista de lista es accesible para todos los usuarios.
Ficha personalizada
Objetos personalizados (incluyendo todos sus componentes), s-controls y páginas de
Visualforce
Tablero
Carpetas, reportes (incluyendo todos sus componentes), s-controls y páginas de
Visualforce
Documento
Carpeta
Plantilla de email
Carpeta, membrete, campos personalizados y documentos (almacenados como imágenes
en el membrete o la plantilla)
Conjunto de campos
Cualquier campo al que se hace referencia
Página flexible
Cualquier acción rápida asociada
Ficha Página flexible (Flexible Page) Página flexible
Flujo
Objetos personalizados, campos personalizados, clases de Apex y páginas de Visualforce
Carpeta
Todo el contenido de la carpeta
Formato de página
Botones personalizados, vínculos personalizados, s-controls y páginas de Visualforce
Tipo de registro
Asignaciones de tipo de registro, formato compacto
Reporte
Carpeta, campos personalizados, tipos de reporte personalizado y custom s-controls
S-Control
Campos personalizados y objetos personalizados
Traducción
Elementos traducidos para el idioma seleccionado en cualquier componente en el
paquete
Regla de validación
Campos personalizados (a los que se hace referencia en la fórmula)
32
Arquitectura y desarrollo de aplicaciones
Comportamiento especial de los componentes en paquetes
Cuando agrega este componente:
Estos tipos de componentes de puede incluir de forma automática:
Páginas de Visualforce
Clases de Apex utilizadas como controladores personalizados, componentes
personalizados de Visualforce ,y conjuntos de campos a los que se hace referencia
Regla de flujo de trabajo
Todas las alertas de flujo de trabajo, las actualizaciones de campo, los mensajes salientes
y las tareas relacionados; también si la regla de flujo de trabajo está diseñada por un
objeto personalizado, se incluye el objeto personalizado automáticamente
Nota: Algunos componentes de paquete, como reglas de validación o tipos de registro, podrían no aparecer en la lista
de componentes del paquete pero están incluidos e instalados con los otros componentes.
Comportamiento especial de los componentes en paquetes
Al crear una aplicación para la distribución, es importante considerar cómo afectan los paquetes a su aplicación y sus componentes.
Utilice la siguiente información para ayudarle a determinar qué incluir en sus paquetes, cómo diseñar su aplicación y cómo
distribuir sus paquetes (gestionados o no gestionados).
Nota:
•
•
•
Para obtener más información sobre las propiedades de cada componente en paquetes, consulte la tabla de
propiedades de componentes en paquetes.
Para obtener más información sobre los atributos de cada componente en paquetes, consulte la tabla de atributos
de componentes.
Los nombres de componentes deben ser exclusivos dentro de una organización. Para garantizar que sus nombres
de componentes no entran en conflicto con los de la organización de un instalador, utilice un paquete gestionado
para que todos sus nombres de componentes incluyan su prefijo de espacio de nombres.
Instantánea analítica
Los desarrolladores de paquetes gestionados deben considerar las implicaciones de introducir instantáneas analíticas que
hagan referencia a reportes lanzados en una versión anterior del paquete. Si el suscriptor ha eliminado el reporte o lo ha
trasladado a una carpeta personal, la instantánea analítica que haga referencia al reporte no se instalará, aunque la página
Instalación de paquete indique que sí. Asimismo, si el suscriptor ha modificado el reporte, ese reporte puede devolver
resultados que afecten a la información que muestra la instantánea analítica. Una práctica recomendada es que el
desarrollador lance una instantánea analítica y los reportes relacionados en la misma versión.
Como el usuario que interviene está seleccionado por el suscriptor, algunas asignaciones de campos de instantáneas
analíticas podrían dejar de ser válidas si el usuario que interviene no tiene acceso a los campos de origen o de destino.
Clases o desencadenadores de Apex
Cualquier Apex que se incluya como parte de un paquete debe tener como mínimo un 75% de cobertura de prueba
acumulada. Cada desencadenador debe contar también con alguna cobertura de prueba. Cuando carga su paquete en
AppExchange, se ejecutan todas las pruebas para garantizar que se realizan sin errores. Además, todas las pruebas se
ejecutan cuando el paquete se instala en la organización del instalador. El instalador puede decidir si desea o no instalar
el paquete si falla alguna prueba.
Sugerencia: Para evitar conflictos de nomenclatura, Salesforce recomienda utilizar paquetes gestionados para
todos los paquetes que contengan Apex. De este modo, todos los objetos de Apex contienen su prefijo de espacio
de nombres. Por ejemplo, si hay una clase de Apex denominada MyHelloWorld y el espacio de nombres de su
organización es OneTruCode, se hará referencia a la clase como OneTruCode.MyHelloWorld.
33
Arquitectura y desarrollo de aplicaciones
Comportamiento especial de los componentes en paquetes
Tenga en cuenta las siguientes consideraciones cuando incluya Apex en su paquete:
• Los paquetes gestionados reciben un espacio de nombres exclusivo. Este espacio de nombres se antepone
automáticamente a sus nombres de clases, métodos, variables, etc., lo que ayuda a evitar nombres duplicados en la
organización del instalador.
• En una única transacción, solo puede hacer referencia a 10 espacios de nombres exclusivos. Por ejemplo, supongamos
que tiene un objeto que ejecuta una clase en un paquete gestionado cuando se actualiza el objeto. A continuación,
esa clase actualiza un segundo objeto, que a su vez ejecuta una clase diferente en un paquete diferente. Aunque el
primer paquete no accediera directamente al segundo paquete, como ocurre en la misma transacción, se incluye en
el número de espacios de nombres a los que se accede en una única transacción.
• Si está exponiendo métodos como servicios Web, incluya documentación detallada para que los suscriptores puedan
escribir código externo que active su servicio Web.
• Si una clase de Apex hace referencia a una etiqueta personalizada y esa etiqueta tiene traducciones, debe empaquetar
de forma explícita los idiomas individuales que desee con el fin de que esas traducciones se incluyan en el paquete.
• Si hace referencia a un objeto de colaboración de un objeto personalizado (como MyCustomObject__share) en Apex,
esto agregará una dependencia de modelo de colaboración a su paquete. Debe establecer el nivel de acceso
predeterminado de colaboración de toda la organización para el objeto personalizado como Privado con el fin de que
otras organizaciones instalen su paquete correctamente.
• El código incluido en una clase o desencadenador de Apex que forme parte de un paquete gestionado se confundirá
automáticamente y no podrá visualizarse en una organización de instalación. Las únicas excepciones son métodos
declarados globales, lo que significa que las firmas de los métodos pueden visualizarse en una organización de
instalación.
• Puede utilizar la anotación desaprobado en Apex para identificar métodos, clases, excepciones, enumeraciones,
interfaces y variables global a los que ya no se puede hacer referencia en las versiones posteriores del paquete
gestionado en el que residen. Esto es de utilidad cuando reelabora el código de paquetes gestionados a medida
evolucionan los requisitos. Después de cargar otra versión de paquete como Gestionado y editado, los nuevos
suscriptores que instalen la versión de paquete más reciente no podrán ver los elementos desaprobados, aunque los
elementos siguen funcionando para los suscriptores y las integraciones de API existentes.
• Cualquier Apex incluida en un paquete no gestionado que haga referencia explícitamente a un espacio de nombres
no se podrá cargar.
• El código Apex que haga referencia a Categorías de datos no se podrá cargar.
Motivos de colaboración de Apex
Los motivos de colaboración de Apex pueden agregarse directamente a un paquete, pero solo están disponibles para
objetos personalizados.
Formatos compactos
Cuando empaqueta un formato compacto, no se incluyen las asignaciones del tipo de registro. Los suscriptores o
instaladores de un paquete que contiene un formato compacto deben volver a crear sus asignaciones de tipo de registro
en su organización.
Aplicaciones conectadas
•
•
•
Los suscriptores o instaladores de un paquete no pueden eliminar una aplicación conectada por sí misma; únicamente
pueden desinstalar su paquete. Un desarrollador puede eliminar una aplicación conectada después de cargar un paquete
como Gestionado y editado. La aplicación conectada se eliminará en la organización del suscriptor durante una
actualización de paquete.
Si actualiza una aplicación conectada y la incluye en una nueva versión de paquete, al actualizar ese paquete en una
organización de cliente actualizará la aplicación conectada existente.
Si realiza una actualización mediante envío de un paquete que contenga una aplicación conectada cuyo ámbito de
OAuth o intervalos de IP hayan cambiado con respecto a la versión anterior, la actualización fallará. Se trata de una
34
Arquitectura y desarrollo de aplicaciones
•
•
Comportamiento especial de los componentes en paquetes
función de seguridad para bloquear a los usuarios no autorizados y que no tengan un acceso amplio a la organización
de cliente mediante la actualización de un paquete instalado. Un cliente todavía puede realizar una actualización
mediante consulta del mismo paquete; esto se permite porque se realiza con el conocimiento y consentimiento del
cliente.
Puede agregar una aplicación conectada existente (es decir, una creada antes de Summer ‘13) a un paquete gestionado.
También puede combinar aplicaciones conectadas nuevas y existentes en el mismo paquete gestionado.
Para aplicaciones conectadas creadas antes de Summer ‘13, la URL de instalación existente seguirá siendo válida
hasta que empaquete y cargue una nueva versión. Una vez cargue una nueva versión del paquete con una aplicación
conectada actualizada, la URL de instalación dejará de funcionar.
Campos personalizados
•
•
•
Los suscriptores pueden agregar, modificar o eliminar los valores de campos de listas de selección de campos
personalizados. Un desarrollador debería considerar detenidamente esto cuando haga referencia de manera explícita
a un valor de lista de selección en el código. El desarrollador puede agregar o eliminar valores de listas de selección.
Durante la actualización de un paquete, no se instalan nuevos valores de listas de selección en la organización del
suscriptor para campos existentes. Todos los valores de listas de selección eliminados por el desarrollador siguen
estando disponibles en la organización del suscriptor.
Los desarrolladores pueden agregar campos personalizados obligatorios y necesarios para todos a paquetes gestionados
siempre que tengan valores predeterminados.
Los campos de tipo numeración automática y los campos obligatorios no se pueden agregar después de que se haya
cargado el objeto en un paquete gestionado y editado.
Etiquetas personalizadas
Si se traduce una etiqueta, el idioma debe incluirse explícitamente en el paquete para que las traducciones se incluyan en
el paquete. Los suscriptores pueden sustituir la traducción predeterminada de una etiqueta personalizada.
Objetos personalizados
•
•
Si un desarrollador habilita los atributos Permitir reportes o Permitir actividades en un objeto
personalizado empaquetado, la organización del suscriptor también tendrá habilitadas estas funciones durante una
actualización. Una vez habilitados en un paquete gestionado y editado, el desarrollador y el suscriptor no podrán
deshabilitar estos atributos.
Las sustituciones de botones y vínculos estándar también se pueden empaquetar.
Tipos de reportes personalizados
Un desarrollador puede modificar un tipo de reporte personalizado en un paquete gestionado después de que se haya
editado, y agregar nuevos campos. Los suscriptores reciben automáticamente estos cambios cuando instalan una nueva
versión del paquete gestionado. Sin embargo, los desarrolladores no pueden eliminar objetos o campos del tipo de reporte
una vez se haya editado el paquete.
Configuración personalizada
•
Si una configuración personalizada se incluye en un paquete gestionado y la Visibilidad se especifica como
Protegida, la configuración personalizada no se incluirá en la lista de componentes del paquete de la organización
del suscriptor. Todos los datos de la configuración personalizada se ocultarán al suscriptor.
Fichas personalizadas
•
El Estilo de la ficha de una ficha personalizada debe ser exclusivo en su aplicación. Sin embargo, no tiene
que ser exclusivo en la organización donde esté instalado. El estilo de una ficha personalizada no entrará en conflicto
con una ficha personalizada existente del entorno del instalador.
35
Arquitectura y desarrollo de aplicaciones
•
•
Comportamiento especial de los componentes en paquetes
Para proporcionar nombres a fichas personalizadas en diferentes idiomas, desde Configuración, haga clic en
Personalizar > Nombres de ficha y etiquetas > Renombrar fichas y etiquetas.
Los suscriptores no pueden modificar fichas personalizadas de un paquete gestionado.
Portal de clientes y portal de socios
Los paquetes que hagan referencia a campos de portal de clientes o portal de socios son compatibles. El suscriptor que
instale el paquete deberá tener habilitado el portal respectivo para instalar el paquete.
Componentes del tablero
Los desarrolladores de paquetes gestionados deben considerar las implicaciones de introducir componentes del tablero
que hagan referencia a reportes lanzados en una versión anterior del paquete. Si el suscriptor ha eliminado el reporte o
lo ha trasladado a una carpeta personal, el componente del tablero que haga referencia al reporte se omitirá durante la
instalación. Asimismo, si el suscriptor ha modificado el reporte, ese reporte puede devolver resultados que afecten a la
información que muestra el componente del tablero. Una práctica recomendada es que el desarrollador lance un tablero
y los reportes relacionados en la misma versión.
Divisiones
•
•
•
•
•
Cuando se habilitan divisiones en un objeto personalizado de un paquete, la organización suscriptora deberá tener
habilitada la función de divisiones para instalar el paquete.
Establecer el filtro de división en un reporte no causa una dependencia. El ajuste se omite cuando se instala en la
organización del suscriptor.
Resumir según el campo de división del objeto (por ejemplo, División de cuentas) en un reporte causa una dependencia.
Si el campo de división del objeto de un reporte se incluye como columna y la organización del suscriptor no admite
divisiones en el objeto, entonces la columna se omitirá durante la instalación.
Si instala un tipo de reporte personalizado que incluya un campo de división de objeto, como una columna, esa
columna se omitirá si la organización no admite divisiones.
Dependencias de campos
•
•
•
•
•
Los desarrolladores y suscriptores pueden agregar, cambiar o eliminar dependencias de campos.
Si el desarrollador agrega una dependencia de campos, se agregará durante la instalación a menos que el suscriptor
ya haya especificado una dependencia para el mismo campo.
Si un desarrollador elimina una dependencia, este cambio no se reflejará en la organización del suscriptor durante
una actualización.
Si el desarrollador introduce una nueva asignación de valores de listas de selección entre los campos dependientes y
los campos de control, la asignación se agregará durante una actualización.
Si un desarrollador elimina una asignación de valores de listas de selección, el cambio no se reflejará en la organización
del suscriptor durante una actualización.
Conjuntos de campos
Los conjuntos de campos en paquetes instalados presentan diferentes comportamientos de combinación durante la
actualización de un paquete:
Si un desarrollador de paquete:
Entonces en la actualización de paquete:
Cambia un campo de No disponible a Disponible para El campo modificado se coloca al final del conjunto de
el conjunto de campos o En el conjunto de campos
campos actualizado en la columna a la que se haya agregado.
Agrega un campo nuevo
El campo nuevo se coloca al final del conjunto de campos
actualizado en la columna a la que se haya agregado.
36
Arquitectura y desarrollo de aplicaciones
Comportamiento especial de los componentes en paquetes
Si un desarrollador de paquete:
Entonces en la actualización de paquete:
Cambia un campo de Disponible para el conjunto de
El campo se elimina del conjunto de campos actualizado.
campos o En el conjunto de campos a No disponible
Cambia un campo de En el conjunto de campos a
Disponible para el conjunto de campos (o viceversa)
El cambio no se refleja en el conjunto de campos
actualizado.
Nota: Los suscriptores no reciben notificaciones de los cambios en sus conjuntos de campos instalados. El
desarrollador debe notificar a los usuarios (a través de notas de versión de paquete u otra documentación) de
cualquier cambio en los conjuntos de campos editados. La combinación permite eliminar campos de su conjuntos
de campos.
Una vez instalado un conjunto de campos, un suscriptor puede agregar o eliminar cualquier campo.
Páginas flexibles
Las vistas de lista no se incluyen de forma automática cuando empaqueta una página flexible ni se hace referencia a
objetos personalizados en las propiedades de los componentes de la página flexible. Debe agregarlos manualmente.
Flujos
•
•
•
•
•
•
•
•
•
•
•
•
Únicamente puede empaquetar flujos activos. La versión activa del flujo se determina al hacer clic para cargar una
versión del paquete. Si no hay ninguna versión activa del flujo, la carga puede fallar.
Si desea actualizar un paquete gestionado con una versión distinta del flujo, active esa versión y vuelva a cargar el
paquete. No necesita agregar la versión activada recientemente al paquete. No obstante, si activa por error una versión
del flujo y carga el paquete, distribuirá esa versión del flujo a todo el mundo. Asegúrese de comprobar la versión que
verdaderamente desea cargar.
En una organización de desarrollo, no puede eliminar un flujo o versión del flujo una vez que lo haya cargado a un
paquete gestionado publicado o beta.
No puede eliminar componentes del flujo desde las instalaciones de paquetes gestionados en versión beta en
organizaciones de desarrollo.
No puede eliminar un flujo desde un paquete instalado. Para eliminar un flujo de un paquete desde su organización,
primero tiene que desactivarlo, esperar 12 horas y, a continuación, desinstalar el paquete.
Si tiene varias versiones de un flujo instalado a partir de múltiples paquetes no gestionados, no podrá eliminar
únicamente una versión mediante la desinstalación de su paquete. Si desinstala un paquete, gestionado o no gestionado,
que contenga una única versión del flujo, se eliminará todo el flujo, incluyendo todas las versiones.
No se pueden incluir flujos en parches de paquetes.
Un flujo activo en un paquete estará activo una vez que se instale. La versión activa anterior del flujo en la organización
de destino se desactivará a favor de la versión instalada más recientemente. Todo flujo que se esté realizando basado
en la versión ahora desactivada continuará ejecutándose sin interrupciones pero reflejará la versión anterior del flujo.
Al actualizar un paquete gestionado en su organización, se instala una nueva versión del flujo solo si hay una versión
del flujo más reciente del desarrollador. Tras varias actualizaciones, puede acabar teniendo varias versiones del flujo.
Si instala un paquete que contiene varias versiones del flujo en una nueva organización de destino, solo se implementará
la última versión del flujo que se haya incluido en el paquete.
Si instala un flujo desde un paquete no gestionado que tenga el mismo nombre que un flujo que ya se encuentre en
su organización pero un número de versión diferente, el flujo recién instalado se convertirá en la versión más reciente
del flujo existente. Sin embargo, si el flujo de paquete tiene el mismo nombre y el mismo número de versión que un
flujo que ya se encuentre en su organización, la instalación del paquete fallará. No puede sobrescribir un flujo.
Cloud Flow Designer no puede abrir flujos instalados a partir de paquetes gestionados.
37
Arquitectura y desarrollo de aplicaciones
Comportamiento especial de los componentes en paquetes
Carpetas
•
•
•
•
Los componentes que Salesforce almacena en carpetas, como documentos, no se pueden agregar a paquetes cuando
se almacenan en carpetas personales y sin archivar. Coloque los documentos, reportes y otros componentes que
Salesforce almacena en carpetas en una de sus carpetas con acceso público.
Los componentes como documentos, plantillas de email, reportes o tableros se almacenan en carpetas nuevas en la
organización del instalador utilizando los nombres de carpetas del editor. Proporcione a estas carpetas nombres que
indiquen que forman parte del paquete.
Si se instala un nuevo reporte, tablero, documento o plantilla de email durante una actualización y el suscriptor ha
eliminado la carpeta que contenía el componente, la carpeta vuelve a crearse. Los componentes de la carpeta eliminada
anteriormente no se restauran.
El nombre de un componente incluido en una carpeta debe ser exclusivo en todas las carpetas del mismo tipo de
componente, excluyendo las carpetas personales. Los componentes incluidos en una carpeta personal deben ser
exclusivos únicamente en la carpeta personal.
Componentes de la página de inicio
Cuando empaqueta un formato de página de inicio personalizado, se agregan todos los componentes de página de inicio
personalizados incluidos en el formato de página. Los componentes estándar como Mensajes y alertas no se incluyen en
el paquete y no sobrescriben el componente Mensajes y alertas del instalador. Para incluir un mensaje en su formato de
página de inicio personalizado, cree un componente personalizado de la ficha Inicio de tipo área HTML con su mensaje,
bajo Configuración, en Personalizar > Inicio > Componentes de la página de inicio y agréguelo a su formato de página
de inicio personalizado.
Formatos de página de inicio
Una vez instalados, sus formatos de página de inicio personalizados se enumeran con todos los formatos de página de
inicio del suscriptor. Haga distinciones entre ellos incluyendo el nombre de su aplicación en el nombre del formato de
página.
Vistas de lista
Las vistas de lista asociadas a colas no se pueden incluir en un paquete.
Varias divisas
•
•
•
•
•
•
Si un suscriptor instala un reporte o un tipo de reporte personalizado que incluye un campo de divisa de un objeto,
como una columna, esa columna se omitirá si la organización del suscriptor no tiene habilitadas varias divisas.
Hacer referencia al campo de divisa de un objeto en los criterios de un reporte (por ejemplo, Divisa de la cuenta)
causa una dependencia.
Resumir según el campo de divisa de un objeto en un reporte causa una dependencia.
Utilizar una designación de divisa en un valor de criterios de reporte (por ejemplo, “Ingresos anuales iguales a GBP
100”) no causa una dependencia. El reporte genera un error cuando se ejecuta en la organización del instalador si no
admite la divisa.
Si el campo de divisa de un objeto de un reporte se incluye como columna y la organización del suscriptor no tiene
habilitadas varias divisas, la columna se omitirá durante la instalación.
Si un suscriptor instala un tipo de reporte personalizado que incluye un campo de divisa de un objeto, como una
columna, esa columna se omitirá si la organización no tiene habilitadas varias divisas.
Formatos de página
El formato de página de la persona que carga un paquete es el formato utilizado para las organizaciones con Group
Edition y Professional Edition y se convierte en el formato de página predeterminado para las organizaciones con
Enterprise Edition, Unlimited Edition, Performance Edition y Developer Edition.
38
Arquitectura y desarrollo de aplicaciones
Comportamiento especial de los componentes en paquetes
Los formatos de página deben empaquetarse junto con tipos de registros de cortesía si el formato se va a instalar en un
objeto existente. De lo contrario, los formatos de página instalados deberán aplicarse manualmente a los perfiles.
Si se crean un diseño de página y un tipo de registro como resultado de la instalación de un paquete, entonces el formato
de página del usuario que realiza la carga para ese tipo de registro se asigna a ese tipo de registro para todos los perfiles
de la organización del suscriptor a menos que se asigne un perfil durante una instalación o actualización.
Conjuntos de permisos
Puede incluir conjuntos de permisos como componentes en un paquete, con los siguientes permisos y configuración de
acceso:
• Permisos de objeto personalizados
• Permisos de campos personalizados
• Acceso de clase de Apex
• Acceso a la página de Visualforce
Nota: Las aplicaciones asignadas y la configuración de fichas no están incluidas en los componentes del conjunto
de permisos.
Utilice conjuntos de permisos para instalar o actualizar un conjunto de permisos. A diferencia de la configuración de
perfil, los conjuntos de permisos no sobrescriben los perfiles.
Cuentas personales
Los paquetes que hacen referencia a campos relacionados con cuentas personales del objeto Cuenta (por ejemplo, Es
cuenta personal, Nombre, Apellidos o Título) no se pueden cargar.
Valores de lista de selección
•
•
Los suscriptores pueden cambiar el nombre o eliminar valores de campos de listas de selección. Un desarrollador
debería considerar detenidamente esto cuando haga referencia de manera explícita a un valor de campo de lista de
selección en Apex.
Se pueden agregar o eliminar valores de campos de listas de selección en la organización del desarrollador. Tras la
actualización, no se instalarán valores nuevos. Todos los valores eliminados por el desarrollador siguen estando
disponibles en la organización del suscriptor hasta que el suscriptor los elimine.
Configuración de perfil
La configuración de perfil incluye lo siguiente para los componentes del paquete:
• Aplicaciones asignadas
• Configuración de fichas
• Asignaciones de formatos de página
• Asignaciones de tipo de registro
• Permisos de objeto personalizados
• Permisos de campos personalizados
• Acceso de clase de Apex
• Acceso a la página de Visualforce
La configuración de perfil sobrescribe los perfiles existentes en la organización del instalador con permisos específicos y
cambios de configuración.
39
Arquitectura y desarrollo de aplicaciones
Comportamiento especial de los componentes en paquetes
Tipos de registro
•
•
•
•
•
•
Si se incluyen tipos de registro en el paquete, la organización del suscriptor debe admitir tipos de registro para instalar
el paquete.
Cuando se instala un nuevo valor de lista de selección, se asocia con todos los tipos de registro instalados de acuerdo
con las asignaciones especificadas por el desarrollador. Un suscriptor puede cambiar esta asociación.
Hacer referencia al campo de tipo de registro de un objeto en los criterios de un reporte (por ejemplo, Tipo de
registro de cuenta) causa una dependencia.
Resumir según el campo de tipo de registro de un objeto en los criterios de un reporte (por ejemplo, Tipo de
registro de cuenta) causa una dependencia.
Si el campo de tipo de registro de un objeto se incluye como columna en un reporte y la organización del suscriptor
no utiliza tipos de registro en el objeto o no admite tipos de registro, entonces la columna se omitirá durante la
instalación.
Si instala un tipo de reporte personalizado que incluye un campo de tipo de registro de un objeto como una columna,
esa columna se omitirá si la organización no admite tipos de registro o si el objeto no tiene definido ningún tipo de
registro.
Reportes
Si un reporte incluye elementos que no se pueden empaquetar, esos elementos se omitirán o reducirán, o fallará la carga
del paquete. Por ejemplo:
• Se eliminan los desgloses de jerarquía de los reportes de actividades y oportunidades.
• Se eliminan automáticamente los filtros de campos que no se pueden empaquetar (por ejemplo, en filtros sobre tipos
de registro de objetos estándar).
• La carga de paquetes falla si un reporte incluye lógica de filtro en un campo que no se puede empaquetar (por ejemplo,
en filtros sobre tipos de registro de objetos estándar).
• Se eliminan los valores de búsqueda en el campo Seleccionar campaña de reportes de campaña estándar.
• Se eliminan los reportes de los paquetes si se han trasladado a una carpeta privada o a la carpeta Reportes públicos
no archivados.
• Cuando un paquete se instala en una organización que no tiene Chart Analytics 2.0:
◊ Los gráficos de combinación se reducen en lugar de eliminarse. Por ejemplo, un gráfico de columnas verticales
de combinación con una línea agregada se reduce a un gráfico de columnas verticales sencillo; un gráfico de barras
de combinación con barras adicionales se reduce a un gráfico de barras sencillo.
◊ Se eliminan los tipos de gráficos no admitidos, como los gráficos de anillos o de embudo.
S-Control
Los suscriptores únicamente pueden instalar S-Controls en paquetes no gestionados creados antes del 1 de enero de
2010.
Los S-Controls se han desaprobados y han sido sustituidos por páginas de “Visualforce” en la Ayuda de Salesforce.
Sistema de traducción
•
•
Si ha habilitado el sistema de traducción y ha agregado un idioma a su paquete, los valores traducidos asociados se
empaquetan automáticamente para los componentes adecuados de su paquete. Asegúrese de que ha proporcionado
traducciones para todos los componentes posibles.
Un instalador de su paquete puede ver qué idiomas son compatibles en la página de detalles del paquete. El instalador
no necesita habilitar nada para que aparezcan las traducciones del idioma del paquete. El único motivo por el que los
instaladores pueden querer habilitar el sistema de traducción es para cambiar las traducciones de los componentes no
gestionados tras la instalación, sustituir traducciones de etiquetas personalizadas en un paquete gestionado o traducir
los componentes a otros idiomas.
40
Arquitectura y desarrollo de aplicaciones
•
Componentes protegidos
Si está diseñando una ampliación de paquete, puede incluir traducciones para los componentes de la ampliación pero
no traducciones adicionales para componentes del paquete base.
Reglas de validación
Para los objetos personalizados empaquetados, las reglas de validación asociadas también se empaquetan implícitamente.
Flujo de trabajo
•
•
•
•
•
•
•
•
•
•
Salesforce impide que cargue alertas de flujo de trabajo que tengan un destinatario que sea un grupo público, usuario
de socio o función. Cambie el destinatario a un usuario antes de cargar su aplicación. Durante la instalación, Salesforce
sustituye ese usuario por el usuario que instala la aplicación y el instalador podrá personalizarlo según sea necesario.
Salesforce impide que cargue actualizaciones de campos de flujo de trabajo que cambien un campo Propietario
a una cola. Cambie el valor del campo actualizado a un usuario antes de cargar su aplicación. Durante la instalación,
Salesforce sustituye ese usuario por el usuario que instala la aplicación y el instalador podrá personalizarlo según sea
necesario.
Salesforce impide que cargue reglas de flujo de trabajo, actualizaciones de campo y mensajes salientes que hagan
referencia a un tipo de registro en un objeto estándar o gestionado instalado.
Salesforce impide que cargue tareas de flujo de trabajo asignadas a una función. Cambie el campo Asignar a a un
usuario antes de cargar su aplicación. Durante la instalación, Salesforce sustituye ese usuario por el usuario que instala
la aplicación y el instalador podrá personalizarlo según sea necesario.
Puede empaquetar reglas de flujo de trabajo y todas las acciones de flujo de trabajo asociadas, como alertas y
actualizaciones de campo. Sin embargo, los desencadenadores basados en el tiempo no se incluyen en el paquete.
Notifique a sus instaladores que configuren los desencadenadores basados en el tiempo que sean esenciales para su
aplicación.
El desarrollador puede proteger las alertas de flujo de trabajo, actualizaciones de campo, mensajes salientes y tareas.
Para obtener más información sobre los componentes protegidos, consulte “Componentes protegidos” en la Ayuda
de Salesforce.
Los desarrolladores pueden asociar o eliminar la asociación de acciones de flujo de trabajo con una regla de flujo de
trabajo en cualquier momento. Estos cambios, incluida la eliminación de asociación, se reflejan en la organización
del suscriptor tras la instalación. En los paquetes gestionados, un suscriptor no puede eliminar la asociación de acciones
de flujo de trabajo de una regla de flujo de trabajo si el desarrollador la asoció.
El usuario que instale el paquete sustituirá las referencias a un usuario específico en acciones de flujo de trabajo, como
el destinatario de email de una alerta de email de flujo de trabajo. Quizás no se puedan cargar las acciones de flujo
de trabajo que hagan referencia a funciones, grupos públicos, equipos de cuentas, equipos de oportunidades o funciones
de equipos de casos.
Las referencias a una dirección de toda la organización, como Dirección del remitente del email de una
alerta de email de flujo de trabajo, se restablecen a Usuario actual durante la instalación.
En la instalación, todas las reglas de flujo de trabajo recién creadas en el paquete instalado o actualizado tienen el
mismo estado de activación que en el paquete cargado.
Componentes protegidos
Los desarrolladores pueden marcar ciertos componentes como protegidos. Los componentes creados en una organización de
suscriptor no pueden hacer referencia a componentes protegidos ni se pueden vincular los unos con los otros. Un desarrollador
puede eliminar un componente protegido en una futura versión sin necesidad de preocuparse de errores en las instalaciones.
Sin embargo, si se marca un componente como no protegido y se publica de forma global, el desarrollador no podrá eliminarlo.
Los desarrolladores pueden marcar los siguientes componentes como protegidos en los paquetes gestionados:
•
•
Etiquetas personalizadas
Vínculos personalizados (para la página de inicio únicamente)
41
Arquitectura y desarrollo de aplicaciones
•
•
•
•
Consideraciones arquitectónicas para Group Edition y
Professional Edition
Alertas del flujo de trabajo
Actualizaciones de campos de flujo de trabajo
Mensajes salientes de flujo de trabajo
Tareas del flujo de trabajo
Consideraciones arquitectónicas para Group Edition y
Professional Edition
Salesforce CRM se ofrece en cinco niveles o, también llamados, ediciones:
•
•
•
•
•
Group Edition (GE)
Professional Edition (PE)
Enterprise Edition (EE)
Unlimited Edition (UE)
Performance Edition (PXE)
Nota: Contact Manager Edition (CME) no permite las instalaciones de paquetes con AppExchange por lo que no
se va a incluir en este documento.
Si va a vender su aplicación a los clientes de Salesforce que ya tienen, es importante entender las diferencias entre estas ediciones
porque condicionan el diseño de la aplicación. Lo más práctico es pensar en ellos como clústeres, GE/PE y EE/UE/PXE, ya
que las ediciones agrupadas de esa manera comparten las mismas funcionalidades. Por ejemplo, es posible que solo le interese
la compatibilidad con las ediciones EE/UE/PXE si la aplicación necesita determinados objetos y funciones que no están
disponibles en GE/PE. Además, en lugar de contar con una solución única para todas las ediciones, tiene una oferta por niveles.
Esta consistiría en una solución básica para los clientes de GE/PE y una avanzada para los de EE/UE/PXE que aproveche las
funciones adicionales.
EE/UE/PXE dispone de la funcionalidad más sólida. Estas ediciones son compatibles con las licencias de la plataforma
Force.com así como con las licencias de Salesforce CRM. Si la aplicación no necesita las funciones de Salesforce CRM (por
ejemplo, prospectos, oportunidades, casos, etc.), las licencias de la plataforma Force.com le aportan la máxima flexibilidad para
implementar la aplicación en aquellos usuarios que, probablemente, no sean usuarios de Salesforce. Su aplicación también
estará sujeta de los límites de la edición y las reglas de empaquetado.
GE/PE no contiene toda la funcionalidad que puede compilar en una edición Developer Edition (DE). Por tanto, una aplicación
desarrollada en su organización con DE es posible que no pueda instalarse en una organización con GE/PE. Si va a diseñar
una aplicación para que funcione de forma específica en GE/PE, tendrá que tener en cuenta la diferencia entre estas ediciones.
Hay varias consideraciones que debe tener en cuenta a la hora de decidir sobre la compatibilidad con estas ediciones. Las
licencias de la plataforma Force.com no se pueden aprovisionar en las organizaciones con GE/PE. Esto significa que solo los
usuarios de Salesforce CRM existentes podrán utilizar su aplicación. Hay algunas funciones que no están disponibles en
GE/PE. Para superar estas limitaciones, hay varios permisos especiales disponibles para las aplicaciones de socios aptos.
Consulte las secciones siguientes para conocer las consideraciones sobre funciones, límites y de otros tipos.
•
•
•
•
•
•
•
Funciones disponibles en Group Edition y Professional Edition
Límites para Group Edition y Professional Edition
Control de acceso en Group Edition y Professional Edition
Uso de Apex en Group Edition y Professional Edition
Acceso a API en Group Edition y Professional Edition
Diseño de la aplicación para que sea compatible con varias ediciones
Escenarios de diseño de ejemplo
42
Arquitectura y desarrollo de aplicaciones
Funciones disponibles en Group Edition y Professional Edition
Funciones disponibles en Group Edition y Professional Edition
La manera más sencilla de determinar cuáles son las funciones y objetos que están disponibles en una edición concreta es
consultar la tabla de comparación de ediciones. También puede buscar la compatibilidad de las ediciones con una función u
objeto determinado en la ayuda online. Antes de diseñar la aplicación, es importante consultar estos recursos para poder tomar
una decisión informada sobre las ediciones para las que va a realizar el diseño. Una vez que haya terminado de compilar la
aplicación, se recomienda probarla. Para ello, instale el paquete en las organizaciones de prueba con las ediciones GE y PE
con el fin de asegurarse de que todo funciona correctamente.
En la tabla siguiente se muestran las funciones principales que son diferentes según la edición de que se trate (GE, PE y DE).
Función
Group Edition
Professional Edition
Developer Edition
Activos
No
Disponible por un costo
adicional
Sí
Campañas
No
Sí
Sí
Contratos
No
Sí
Sí
Pronósticos
No
Sí
Sí
Ideas
No
Sí
Sí
Productos
No
Sí
Sí
Soluciones
No
Sí
Sí
Tipos de registro
No
No
Sí
Conjuntos de permisos
No
No
Sí
Perfiles personalizados
No
No
Sí
Tipos de reportes personalizados
No
Sí
Sí
Flujo de trabajo y aprobaciones
No
Disponible por un costo
adicional
Sí
Código Apex
Vea la nota siguiente
Vea la nota siguiente
Sí
Reglas de colaboración
No
Sí
Sí
API
Vea la nota siguiente
Vea la nota siguiente
Sí
Sites
No
No
Sí
Nota: Un Id. de cliente permite que la aplicación utilice la API para su integración con aplicaciones compuestas.
Para obtener más información, consulte Uso de Apex en Group Edition y Professional Edition y Acceso a API en
Group Edition y Professional Edition.
Límites para Group Edition y Professional Edition
En todas las ediciones de Salesforce hay límites con respecto al número de aplicaciones, objetos y fichas que se pueden utilizar.
Para obtener más información sobre los límites de varias ediciones, consulte la tabla de límites de ediciones.
43
Arquitectura y desarrollo de aplicaciones
Control de acceso en Group Edition y Professional Edition
Para los socios inscritos en el programa de proveedor de software independiente (ISV), los paquetes gestionados que publiquen
de forma pública en AppExchange no se tendrán en cuenta con respecto a los límites de aplicaciones, objetos o fichas de la
edición de Salesforce. De esta manera, los socios de ISV no tendrán que preocuparse más sobre los errores en la instalación de
los paquetes debido a que se hayan superado los límites de las aplicaciones, objetos o fichas. Esta función se activa de forma
automática en cuanto la aplicación supera la revisión de seguridad.
Control de acceso en Group Edition y Professional Edition
Ni la edición GE ni la edición PE son compatibles con los perfiles personalizados ni con la seguridad de nivel de campo. La
consecuencia es que la seguridad a nivel de campo se gestiona también por el formato de página de cada objeto. Por tanto,
cuando un cliente instala su aplicación, este no podrá definir los diferentes accesos de los perfiles y deberá asegurarse de que
el diseño funciona para el perfil de usuario estándar. Los conjuntos de permisos se pueden instalar en las organizaciones con
GE/PE pero no se pueden actualizar.
Debido a que la seguridad a nivel de campo se gestiona por el formato de página, los campos que quiera que sean visibles deben
agregarse al formato de página. Esto implica que para que los campos sean accesibles a través de la API o de Visualforce, deben
agregarse al formato de página.
Uso de Apex en Group Edition y Professional Edition
Su aplicación puede contener lógica de negocio (clases, desencadenadores, servicios de email, etc.) escrita en Apex. En general,
Apex no es compatible con las ediciones GE/PE y, por tanto, no funcionará en estas. Sin embargo, si el código APEX forma
parte de una aplicación de ISV y se incluye en un paquete gestionado sí puede ejectuarse en GE/PE, incluso aunque estas
ediciones no sean compatibles con Apex de forma predeterminada.
Debe ser un socio apto que trabaje con salesforce.com y la aplicación debe superar la revisión de seguridad. Los permisos
adecuados se activarán de forma automática en cuanto supere dicha revisión.
Existen algunas condiciones importantes que debe tener en cuenta para utilizar Apex en GE/PE.
•
•
•
•
Los clientes de GE/PE no pueden crear ni modificar Apex en su aplicación; solo pueden ejecutar el Apex que ya exista.
Su código Apex no debe depender de las funciones ni la funcionalidad que exista únicamente en DE, EE, UE o PXE; de
lo contrario, la aplicación no se instalará.
Si va a exponer el método Apex como servicio Web, asegúrese de utilizar REST. Las clases de Apex expuestas como servicio
Web de SOAP no se pueden invocar desde una aplicación Web externa en GE/PE.
En GE/PE se permite utilizar Apex para realizar llamadas de servicio Web. Por ejemplo, si va a realizar una llamada de
servicio Web a un servicio Web externo, siempre y cuando el paquete gestionado esté autorizado, estas clases funcionarán
en GE/PE.
Acceso a API en Group Edition y Professional Edition
Por lo general, el acceso a API no se puede realizar en las organizaciones con GE/PE. Sin embargo, una vez que la aplicación
supere la revisión de seguridad, será apto para usar algunas API para compilar aplicaciones compuestas.
•
•
•
En la actualidad, solo las API de REST y de SOAP son compatibles con las aplicaciones para las ediciones GE y PE.
También puede solicitar que una aplicación conectada se incluya en la lista blanca que permite utilizar la API de REST
en las organizaciones con GE o PE.
Otras API, como la API de metadatos, la API masiva y los métodos Apex expuestos al utilizar el servicio Web de SOAP
siguen sin estar disponibles.
Los servicios Web basados en REST se pueden activar mediante la lista blanca del consumidor de la aplicación conectada.
44
Arquitectura y desarrollo de aplicaciones
•
Acceso a la API de REST en Group Edition y Professional
Edition
Los servicios Web basados en SOAP se pueden activar mediante un token de API denominado Id. de cliente, que debe
agregarse a los encabezados de SOAP en las llamadas de integración. Esta clave especial permite a la aplicación realizar
llamadas correctamente a GE/PE aunque el cliente no tenga acceso a API.
El Id. de cliente tiene las propiedades siguientes:
1. No puede utilizar el id. de cliente con el kit de herramientas de AJAX en JavaScript personalizado, S-controls ni en ningún
sitio de la aplicación donde su valor quede expuesto al cliente final.
2. Para los fines de desarrollo, las organizaciones con GE/PE creadas a través del portal de socios no necesitan el id. de cliente.
3. El id. de cliente solo otorgará acceso a GE/PE a la API de SOAP y no a la API de metadatos. La API de metadatos
permite crear de forma dinámica varios componentes que normalmente crearía en la configuración. Por ejemplo, no se
podría crear un campo personalizado de forma dinámica en GE/PE, ni siquiera con el token de API.
En esta tabla se muestran las API accesibles cuando se utilizan las ediciones GE/PE y el método de acceso.
API
Acceso a GE/PE
Servicios Web (SOAP)
Sí, con token
Métodos de Apex expuestos como servicios Web (SOAP)
No
Servicios Web (REST)
Sí, con inclusión en la lista blanca del consumidor de la
aplicación conectada
Métodos de Apex expuestos como servicios Web (REST)
Sí, con inclusión en la lista blanca del consumidor de la
aplicación conectada
API de REST de Chatter
Sí
API de metadatos
No
API masiva
No
Herramienta Data Loader (utiliza servicios Web de SOAP)
No, no se puede establecer el token
Acceso a la API de REST en Group Edition y Professional Edition
La API de REST de Force.com constituye una API de servicios Web potente, práctica y sencilla para interactuar con Force.com.
Los socios que reúnan los requisitos pueden solicitar a salesforce.com que activen la aplicación para las llamadas de la API de
REST a las organizaciones con GE/PE. Para obtener el acceso a la API de REST, es necesario cumplir con las condiciones
siguientes:
•
•
•
Acceso al portal de socios: si es nuevo, obtenga la información necesaria e inscríbase en uno de los programas de socios de
proveedor de software independiente (ISV).
Superación de la revisión de seguridad: todas las aplicaciones inscritas en AppExchange o en el programa OEM deben
someterse a una revisión de seguridad periódica.
Acceso a la edición Developer Edition de Salesforce: si no dispone ya de acceso a una organización con DE, puede obtener
la edición Developer Edition para socios desde el portal de socios.
Para solicitar el token de la API de REST, haga lo siguiente:
1. Cree una nueva aplicación conectada desde su organización con DE. Inicie sesión en salesforce.com con su cuenta de
desarrollador. En Configuración (Setup), haga clic en Crear > Aplicaciones (Create > Apps) y, en la sección de aplicaciones
conectadas, haga clic en Nuevo.
45
Arquitectura y desarrollo de aplicaciones
Diseño de la aplicación para que sea compatible con varias
ediciones
Nota: Se recomienda encarecidamente hacer esto en una organización que vaya a utilizar durante mucho tiempo,
por ejemplo, una donde compile el paquete gestionado o la organización de gestión de Trialforce (TMO).
2. Ingrese la información necesaria y haga clic en Guardar (Save). Al guardar la aplicación, se le indicarán la clave de consumidor
y la pregunta secreta de consumidor que la aplicación utiliza para comunicarse con Salesforce.
3. Envíe un caso desde el portal de socios y proporcione su Id. de organización con DE y las credenciales correspondientes a
la aplicación conectada.
Después, evaluaremos su solicitud y activaremos el permiso adecuado. Una vez esté hecho, recibirá una notificación de caso
nuestra. Espere 24 horas para que el permiso esté activado por completo. Su client_id (o clave de consumidor) y client_secret
(o pregunta secreta de consumidor) se comprobarán con la información que envíe a través del caso durante la autenticación de
OAuth. Si coinciden, el sistema le permitirá comunicarse con las ediciones GE/PE.
Nota:
•
•
Este permiso es exclusivo para la API de REST. No activa su aplicación para el uso de la API de servicios Web
de SOAP, la API masiva, la API de metadatos, etc. para GE/PE.
Este permiso se aplica únicamente a su organización. No se activa la API en la organización con GE/PE.
Diseño de la aplicación para que sea compatible con varias ediciones
La compatibilidad con varias ediciones abre las puertas a la posibilidad de editar versiones de la aplicación más avanzadas que
sean compatibles con funciones mejores que se encuentran en EE, UE y PXE. Existen dos tecnologías que permiten lograrlo:
la primera utiliza paquetes de ampliación y la segunda saca partido al Apex dinámico. Ambas presentan ventajas, por lo que
se recomienda conocerlas antes de diseñar la aplicación.
Compatibilidad con varias ediciones mediante un paquete de ampliación
En este enfoque se utiliza un paquete gestionado base que contiene la funcionalidad de la aplicación fundamental, es decir, las
funciones compatibles en las ediciones GE/PE. Después, se utiliza un segundo paquete gestionado, o paquete de ampliación,
que amplía y mejora el paquete base. El paquete de ampliación agrega otras funciones compatibles en EE/UE/PXE. Por
ejemplo, imagine que tiene una aplicación dedicada a los almacenes que controla el inventario. Una ampliación de esta aplicación
podría incluir un flujo de trabajo, que no está disponible en la versión para Group Edition. Los clientes de las ediciones Group
Edition y Professional Edition pueden instalar la aplicación para almacenes básica mientras que los demás pueden instalar el
paquete básico y la ampliación que contiene los componentes del flujo de trabajo.
46
Arquitectura y desarrollo de aplicaciones
Compatibilidad con varias ediciones mediante Apex dinámico
Ilustración 14: Uso de un paquete base y de ampliación para que la aplicación sea compatible con varias ediciones
Gracias a los paquetes de ampliación podrá evitar que haya varios conjuntos de código y podrá conseguir ventas incrementales
entre sus clientes. La actualización de un cliente solo requerirá la instalación del paquete de ampliación.
El proceso para crear un paquete de ampliación es el siguiente:
1. Cree su paquete gestionado base que contiene las funciones compatibles con las ediciones GE/PE.
2. Instale su paquete gestionado base en una organización aparte con la edición de desarrollo DE.
3. En esta organización, cree el paquete de ampliación que incluya la funcionalidad adicional compatible en GE/PE. Puede
usar como referencia el paquete gestionado base para evitar la duplicación de funcionalidades. Cualquier componente que
haga referencia al paquete gestionado base activará automáticamente este paquete para que sea un paquete de ampliación.
Debido a que el paquete de ampliación depende del paquete base, es importante dedicar tiempo al diseño de la aplicación y
de las interfaces entre los paquetes. Por ejemplo, si el paquete de ampliación necesita llamar a una clase de Apex en el paquete
base, deberá asegurarse de que la clase de Apex es global.
También es importante tener en cuenta el ciclo de vida completo de la aplicación. Por ejemplo, si quiere agregar funciones
nuevas, estas deberían incluirse en el paquete adecuado. Las actualizaciones que se introduzcan en el paquete base no deberían
romper el paquete de ampliación.
Compatibilidad con varias ediciones mediante Apex dinámico
Si se utilizan Apex dinámico, SOQL dinámico y DML dinámico, se podrá crear un paquete gestionado para todas las ediciones
con las que quiera que la aplicación sea compatible sin tener que usar paquetes de ampliación. De esta manera, el comportamiento
de la aplicación puede cambiar de forma dinámica según las funciones disponibles en la edición del cliente. Esto resulta útil
cuando se diseña una aplicación con la intención de que sea compatible con varias ediciones.
Asegúrese de que Apex, los flujos de trabajo, etc. de su paquete no contienen referencias muy específicas a funciones que no
sean compatibles con las ediciones GE/PE. Un ejemplo podría ser agregar un campo personalizado en un objeto estándar no
compatible, como Campañas, o realizar una referencia de Apex a funciones como la gestión de territorios o de varias divisas.
Cuando se hace referencia a una función en el paquete no compatible con las ediciones GE/PE, esta dependencia del paquete
provocará que la instalación no se realice correctamente.
47
Arquitectura y desarrollo de aplicaciones
Escenarios de diseño de ejemplo para Group Edition y
Professional Edition
En su lugar, si utiliza Apex dinámico para comprobar primero si estas funciones están disponibles antes de hacer referencia a
ellas, podrá instalar el paquete gestionado en GE/PE. Lo importante que debe tener en cuenta es que debe codificar el Apex
dinámico de manera que sea compatible con ambos casos de uso. De esta manera, si el cliente no tiene una función u objeto
específico, la aplicación funcionará de todas maneras.
Escenarios de diseño de ejemplo para Group Edition y Professional Edition
Los escenarios que se describen a continuación le ayudarán a saber cuándo debe compilar para GE/PE y cómo debe hacerlo.
Escenario 1: Quiere compilar una aplicación que utilice los tipos de registro y el flujo de trabajo
Debido a que los tipos de registro y el flujo de trabajo son funciones que no se encuentran en las ediciones GE o PE,
tendrá que decidir si quiere que haya compatibilidad con GE/PE. Si es así, puede compilar un paquete gestionado base
que no incluya ni tipos de registro ni flujo de trabajo. Después de cargar este paquete gestionado en un estado editado,
puede instalarlo en otra organización con DE para comenzar a compilar la extensión. Su extensión puede agregar tipos
de registro y flujos de trabajo que se instalarán y podrán aprovecharlas sus clientes de EE, UE y PXE.
Escenario 2: Quiere compilar una aplicación con 80 objetos personalizados y 25 fichas personalizadas
Normalmente, esto sería un problema para GE y PE debido a su límite de objetos y fichas. Sin embargo, si hace que su
aplicación esté disponible en AppExchange, no contará para los límites de objetos, fichas y aplicaciones personalizados.
Por ello, aunque su aplicación tenga 80 objetos personalizados y 25 fichas personalizadas, se instalará y funcionará con
normalidad en GE y en PE.
Escenario 3: Quiere compilar una aplicación que realice llamadas de Apex a un servicio Web
Apex no suele ejecutarse en GE/PE, pero si obtiene la autorización del paquete gestionado durante la revisión de seguridad,
el Apex se ejecutará según lo previsto. Por ello, para este escenario hay que compilar la llamada de Apex para invocar su
servicio Web externo y, después, incluir esta clase en el paquete.
Escenario 4: Quiere compilar una aplicación que aproveche la función Campañas
Al igual que sucedía en el escenario 1, Campañas es una función que, de forma predeterminada, no es compatible con
GE ni con PE. PE tiene la opción de adquirir la función Campañas como complemento pero para este escenario dispone
de dos opciones.
•
•
Opción 1: compile un paquete gestionado base que no haga referencia a la función Campañas. Una vez hecho, cárguelo
e instálelo en otra organización con DE para compilar la funcionalidad Campañas como un paquete de ampliación.
A partir de este momento, los clientes con ediciones GE y PE (sin la función Campañas) pueden instalar la base,
mientras que el resto también pueden instalar la ampliación para obtener otras funciones.
Opción 2: esto puede requerir solo un paquete si utiliza Apex dinámico como la única referencia a la función Campañas
(tal y como se ha descrito antes) y garantizar que su paquete no incluye un campo personalizado en la campaña.
Después, su aplicación podrá instalarse en GE, y en ediciones superiores, y si la función Campañas se encuentra en
la edición de su cliente, su Apex dinámico podrá manipular las campañas según lo previsto.
Escenario 5: Quiere compilar una aplicación compuesta donde recibe llamadas de API entrantes
Tiene una aplicación alojada aparte que quiere integrar con Salesforce, por lo que necesitará realizar llamadas de API a
los clientes con ediciones GE/PE. De un modo predeterminado, esto no es posible, pero si es un socio apto, puede
solicitar un token de API especial que permita la integración de sus llamadas de SOAP con GE/PE. Solo necesitará
incrustar el Id. de cliente en el encabezado de SOAP del código externo.
48
Arquitectura y desarrollo de aplicaciones
Concepto de dependencias
Concepto de dependencias
Las dependencias de paquetes se crean cuando un componente hace referencia a otro componente, permiso o preferencia que
se necesita para que el componente sea válido. Force.com realiza el seguimiento de algunas dependencias, incluyendo:
•
•
•
Se activan dependencias de la organización, como varias divisas o campañas
Dependencias específicas de componentes, como tipos de registro o divisiones concretas
Referencias a objetos o campos estándar y personalizados
Los paquetes, las clases de Apex, los desencadenadores de Apex, los componentes de Visualforce y las páginas de Visualforce
pueden tener dependencias en los componentes dentro de una organización. Estas dependencias se registran en la página
Mostrar dependencias.
Las dependencias son importantes para los paquetes porque cualquier dependencia en un componente de un paquete se considera
una dependencia del paquete completo.
Nota: La organización de un instalador debe cumplir todos los requisitos de dependencia enumerados en la página
Mostrar dependencias o la instalación fallará. Por ejemplo, la organización del instalador debe tener divisiones activadas
para instalar un paquete que haga referencia a divisiones.
Las dependencias son importantes para las clases y los desencadenadores de Apex debido a que cualquier componente en el
que depende una clase o un desencadenador debe estar incluido con la clase o el desencadenador cuando el código se desarrolla
o incluye en paquetes.
Además de las dependencias, también se muestra el ámbito de operación en la página Mostrar dependencias. El ámbito de
operación es una tabla en la que se enumeran las operaciones de lenguaje de manipulación de datos (DML) (por ejemplo
insert o merge) que una secuencia de comandos de Apex se ejecuta en un objeto especificado. El ámbito de operación se
puede utilizar cuando se instala una aplicación para determinar todo el alcance de las operaciones de base de datos de la
aplicación.
Para ver las dependencias y el ámbito de operación de un paquete, una clase de Apex, un desencadenador de Apex o una página
de Visualforce:
1. Navegue al componente adecuado desde Configuración:
•
•
•
•
•
Para paquetes, haga clic en Crear > Paquetes.
Para clases de Apex, haga clic en Desarrollo > Clases de Apex.
Para los desencadenadores de Apex en objetos estándar, haga clic en Personalizar, haga clic en el nombre del objeto
y, a continuación, haga clic en Desencadenadores.
Para los desencadenadores de Apex en objetos personalizados, haga clic en Crear, haga clic en el nombre del objeto y,
a continuación, haga clic en Desencadenadores.
Para páginas de Visualforce, haga clic en Desarrollo > Páginas.
2. Seleccione el nombre del componente.
3. Haga clic en Ver dependencias para un paquete o en Mostrar dependencias para los demás componentes. De este modo,
podrá ver una lista de objetos que dependen del componente seleccionado.
Si aparece una lista de los objetos dependientes, haga clic en Campos para acceder al detalle de nivel de campo del ámbito de
operación. Los detalles a nivel de campo incluyen información , como si un campo está actualizado con Apex. Para obtener
más información, consulte “Ámbito de operación de campo” en la Ayuda de Salesforce.
Los paquetes, el código de Apex y las páginas de Visualforce pueden depender de muchos componentes, entre otros:
•
Definiciones de campos personalizados
49
Arquitectura y desarrollo de aplicaciones
•
•
•
•
•
Creación de aplicaciones empaquetadas con Chatter
Fórmulas de validación
Reportes
Tipos de registro
Apex
Páginas y componentes de Visualforce
Por ejemplo, si una página de Visualforce incluye una referencia a un campo de divisa múltiple, como {!contract.ISO_code},
a que la página de Visualforce tenga una dependencia de divisa múltiple. Si un paquete contiene esta página de Visualforce,
también tiene una dependencia de divisa múltiple. Cualquier organización que desee instalar este paquete debe tener la opción
de divisa múltiple activada.
Creación de aplicaciones empaquetadas con Chatter
Los objetos, la configuración de los campos y el historial de esta correspondientes a Chatter se pueden incluir en paquetes. No
obstante, solo se puede realizar el seguimiento del campo de un objeto si se realiza el seguimiento de este mismo. Por ejemplo,
puede crear un nuevo campo personalizado en el objeto estándar Cuenta pero solo se podrá hacer el seguimiento del campo si
ha habilitado el seguimiento de noticias en tiempo real en Cuentas.
Cuando se desarrollan aplicaciones que utilizan Chatter, es importante tener en cuenta que puede ser que algunas organizaciones
no tengan Chatter habilitado. De forma predeterminada, cuando se cargan las aplicaciones de Chatter, el paquete solo está
disponible para las organizaciones que tienen Chatter habilitado. Puede cambiar este comportamiento y permitir que las
organizaciones instalen el paquete aunque no tengan Chatter. Tenga en cuenta lo siguiente:
•
•
•
Debe utilizar un paquete gestionado. Los paquetes no gestionados que incluyen la funcionalidad Chatter solo se pueden
instalar en organizaciones con Chatter habilitado.
Las operaciones de DML y las llamadas de SOSL y SOQL producirán una excepción de tiempo de ejecución si la
organización del suscriptor no tiene Chatter habilitado. Debe captar y manejar las excepciones de Apex que se produzcan
como consecuencia de la ausencia de la función Chatter. Estas excepciones son del tipo
REQUIRED_FEATURE_MISSING_EXCEPTION para las llamadas de SOSL y SOQL. Para las llamadas de DML, debe
comprobar el código de estado REQUIRED_FEATURE_MISSING específico en una excepción de DML.
Cuando cargue el paquete, cancele la selección de la casilla de verificación de Chatter obligatoria (se selecciona de forma
automática si tiene una referencia de Apex a Chatter).
Nota: Si no se puede cancelar la selección de la casilla de verificación de Chatter obligatoria, será porque algún
componente del paquete tiene un requisito especial para Chatter. Esto puede suceder, por ejemplo, si incluye en
un paquete un tipo de reporte personalizado que se basa en Chatter. Si no se puede deshabilitar la casilla de
verificación de Chatter obligatoria, el paquete solo se podrá instalar en aquellas organizaciones que tengan Chatter
habilitado.
En el ejemplo siguiente se intenta publicar en noticias en tiempo real y obtener las noticias en tiempo real de un usuario. Si
Chatter no está habilitado en la organización, el código captará la excepción REQUIRED_FEATURE_MISSING. Tenga en cuenta
que se trata de un ejemplo de código incompleto y no funciona.
public void addFeedItem(String post, Id objId) {
FeedItem fpost = new FeedItem();
// Get the parent ID of the feed
fpost.ParentId = objId;
fpost.Body = post;
try{
insert fpost;
} catch (System.DmlException e) {
for (Integer i = 0; i < e.getNumDml(); i++) {
// Chatter not endabled, do not insert record
System.assertEquals(StatusCode.REQUIRED_FEATURE_MISSING, e.getDmlType(i));
50
Arquitectura y desarrollo de aplicaciones
Aspecto de Salesforce coincidente
System.Debug('Chatter not enabled in this organization:' + e.getDMLMessage());
}
}
}
public List<NewsFeed> getMyFeed() {
List<NewsFeed> myfeed;
try{
myfeed = [SELECT Id, Type, CreatedById, CreatedBy.FirstName,CreatedBy.LastName,
CreatedDate, ParentId, Parent.Name,FeedItemId, Body,
Title, CreatedById, LinkUrl,
(SELECT Id, FieldName, OldValue, NewValue
FROM FeedTrackedChanges ORDER BY Id DESC),
(SELECT Id, CommentBody, CreatedDate, CreatedById,
CreatedBy.FirstName, CreatedBy.LastName
FROM FeedComments ORDER BY CreatedDate DESC, ID DESC LIMIT 10)
FROM NewsFeed
ORDER BY CreatedDate DESC, ID DESC LIMIT 20];
} catch(System.RequiredFeatureMissingException e){
// The above has returned an empty NewsFeed
// Chatter is not enabled in this organization
myfeed = new List<NewsFeed>{};
System.Debug('Chatter not enabled in organization:' + e.getMessage());
}
return myfeed;
}
Aspecto de Salesforce coincidente
Las aplicaciones que muestran un aspecto parecido a la interfaz de usuario de Salesforce resultan enseguida familiares a los
usuarios y estos las encuentran más fáciles de utilizar. La forma más sencilla de adoptar el aspecto de la interfaz de usuario de
Salesforce en la aplicación es utilizar Visualforce. Cuando use un controlador estándar con una página de Visualforce, la página
nueva tomará el estilo de la ficha estándar el objeto asociado en Salesforce. Para obtener más información, consulte Uso de
estilos de Salesforce en la guía del desarrollador de Visualforce.
Desarrollo de la documentación de las aplicaciones
Salesforce recomienda la publicación de la aplicación en AppExchange con los tipos de documentación siguientes:
Opción Configurar
Puede incluir una opción Configurar para los instaladores. Esta opción puede establecer un vínculo con los detalles de
instalación y configuración, como:
• Oferta de servicio externo de una aplicación compuesta
• Configuración de aplicación personalizada
La opción Configurar se incluye en su paquete como un vínculo personalizado. Puede crear un vínculo personalizado
para sus formatos de página de inicio y agregarlo a su paquete.
1. Cree un vínculo personalizado a una URL que contenga información de configuración o una página de Visualforce
que implemente la configuración. Cuando cree su vínculo personalizado, defina las propiedades de visualización como
Abrir en una ventana emergente separada de manera que el usuario regrese a la misma página de Salesforce
cuando haya terminado.
2. Cuando cree el paquete, seleccione este vínculo personalizado en el campo Configurar vínculo personalizado
de los detalles de su paquete.
51
Arquitectura y desarrollo de aplicaciones
Creación de configuración de perfil personalizado
Hoja de datos
Proporciona a los instaladores la información fundamental que necesitan sobre la aplicación antes de su instalación.
Guía de personalización y mejora
Ofrece información a los instaladores sobre lo que deben personalizar después de la instalación como parte de la
implementación.
Ayuda personalizada
Puede proporcionar ayuda personalizada para registros de objetos y campos personalizados.
Creación de configuración de perfil personalizado
Cuando se diseña una aplicación para AppExchange, puede crear perfiles personalizados para los distintos usuarios de la
aplicación. Cada uno de estos perfiles deberá tener el nivel de acceso a su aplicación adecuado, por ejemplo, la visibilidad de
fichas o la configuración de seguridad en los campos de aprobación en los objetos personalizados. Tenga en cuenta las siguientes
sugerencias cuando cree perfiles personalizados para las aplicaciones que va a publicar:
•
•
•
•
Dé a cada perfil personalizado un nombre significativo con el que no haya dudas de que el perfil corresponde a la aplicación.
Por ejemplo, si va a crear una aplicación de recursos humanos con el nombre “RRHH2GO”, podría denominar el perfil
personalizado “RRHH2GO Gestor de aprobación” dirigido a los gestores que aprueban las solicitudes.
Si los perfiles personalizados tienen una jerarquía, asegúrese de que el nombre indica el lugar de la jerarquía donde se
encuentra ese perfil. Por ejemplo, el perfil de un gestor de nivel experto puede tener el nombre “RRHH2GO Gestor de
aprobación de nivel 2”.
No dé nombres a los perfiles personalizados que puedan tener interpretaciones distintas en otras organizaciones. Por
ejemplo, “RRHH2GO Gestor de aprobación de nivel 2” es un nombre de perfil más adecuado que “Sr. Gestor”.
El perfil Descripción (Description) se muestra al usuario que instala su aplicación. Proporcione una descripción
significativa para cada perfil personalizado de esos usuarios.
Cuando incluya una aplicación en un paquete, puede incluir también los perfiles personalizados. Las configuraciones de los
perfiles se aplican a perfiles existentes en la organización del suscriptor en la instalación o actualización. Solo se aplican permisos
relacionados con nuevos componentes creados como parte de la instalación o actualización. La configuración de seguridad
asociada a los objetos estándares y a los objetos personalizados existentes en la organización del instalador no se verá afectada.
Como alternativa, puede utilizar los conjuntos de permisos para evitar sobrescribir los permisos en los perfiles del suscriptor y
para mantener el control de la configuración de permisos durante el proceso de actualización. Los conjuntos de permisos
contienen un subconjunto de ajustes de configuración de acceso, que incluye los permisos de objetos, los permisos de campos,
los accesos a la clase de Apex y el acceso a la página de Visualforce. Se trata de los mismos permisos que están disponibles en
los perfiles. Puede agregar un conjunto de permisos como un componente en un paquete.
Nota: En los paquetes, las configuraciones de fichas y aplicaciones asignadas no se incluyen en los componentes del
conjunto de permisos.
Acerca de los conjuntos de permisos y la configuración de perfil
Los desarrolladores pueden usar conjuntos de permisos o configuración de perfil para otorgar permisos y otra configuración
de acceso en un paquete. Al decidir si usar conjuntos de permisos, configuración de perfil o una combinación de ambos, tenga
en cuenta las semejanzas y las diferencias.
52
Arquitectura y desarrollo de aplicaciones
Acerca de los conjuntos de permisos y la configuración de perfil
Comportamiento
Conjuntos de permisos
Configuración de perfil
¿Qué permisos y configuración se
incluyen?
•
•
•
•
¿Se pueden actualizar en paquetes
gestionados?
Sí.
Las configuraciones de los perfiles se
aplican a perfiles existentes en la
organización del suscriptor en la
instalación o actualización. Solo se
aplican permisos relacionados con nuevos
componentes creados como parte de la
instalación o actualización.
¿Pueden los suscriptores modificarlos?
Los suscriptores pueden modificar los
conjuntos de permisos en paquetes sin
gestionar pero no en paquetes
gestionados.
Sí.
¿Se pueden duplicar o crear?
Sí. Sin embargo, si un suscriptor duplica
un conjunto de permisos o crea uno
basado en un conjunto de permisos
predefinidos, no se actualizará en
actualizaciones posteriores. Solo se
actualizan los conjuntos de permisos que
se incluyen en un paquete.
Sí. Los suscriptores pueden duplicar
cualquier perfil que incluya permisos y
configuraciones relacionados con los
componentes predefinidos.
¿Incluyen permisos de objeto estándar?
No. Además, no puede incluir permisos No.
de objetos para un objeto personalizado
en una relación principal-detalle donde
el principal es un objeto estándar.
¿Incluyen permisos de usuario?
No.
No.
¿Se incluyen en el asistente de
instalación?
No. Los suscriptores deben asignar los
conjuntos de permisos después de la
instalación.
Sí. Las configuraciones de los perfiles se
aplican a perfiles existentes en la
organización del suscriptor en la
instalación o actualización. Solo se
aplican permisos relacionados con nuevos
componentes creados como parte de la
instalación o actualización.
¿Cuáles son los requisitos de la licencia
de usuario?
Un conjunto de permisos solo se instala
si la organización del suscriptor tiene al
menos una licencia de usuario que
coincida con el conjunto de permisos.
Por ejemplo, los conjuntos de permisos
con la licencia de usuario de Salesforce
Ninguna. En la organización de un
suscriptor, la instalación sustituye a la
configuración de perfil, no a sus licencias
de usuario.
Permisos de objeto personalizados
Permisos de campos personalizados
Acceso de clase de Apex
Acceso a la página de Visualforce
•
•
•
•
•
Nota: Los conjuntos de
permisos incluyen aplicaciones •
•
asignadas y configuración de
•
fichas, pero estas
configuraciones no se pueden
empaquetar como componentes
del conjunto de permisos.
53
Aplicaciones asignadas
Configuración de fichas
Asignaciones de formatos de página
Asignaciones de tipo de registro
Permisos de objeto personalizados
Permisos de campos personalizados
Acceso de clase de Apex
Acceso a la página de Visualforce
Arquitectura y desarrollo de aplicaciones
Comportamiento
Descripción general de las aplicaciones conectadas
Conjuntos de permisos
Configuración de perfil
Platform no se instalan en una
organización que no tenga licencias de
usuario de Salesforce Platform. Si un
suscriptor adquiere posteriormente una
licencia, deberá volver a instalar el
paquete para obtener los conjuntos de
permisos asociados con la licencia recién
adquirida.
Los conjuntos de permisos sin licencia
de usuario siempre están instalados. Si
asigna un conjunto de permisos sin
licencia de usuario, todos sus permisos y
ajustes activados deben ser autorizados
por la licencia del usuario o fallará la
asignación.
¿Cómo se asignan a los usuarios?
Los suscriptores deben asignar los
conjuntos de permisos predefinidos
después de la instalación del paquete.
Las configuraciones de perfil se aplican
a perfiles existentes.
Mejores prácticas
•
•
•
Utilice conjuntos de permisos además de los perfiles del paquete para que sus suscriptores puedan añadir fácilmente nuevos
permisos de usuarios de aplicación existentes.
Si los usuarios necesitan acceder a aplicaciones, fichas, formatos de página y tipos de registro, no utilice conjuntos de
permisos como el modelo exclusivo de concesión de permisos para su aplicación. Las aplicaciones asignadas y la configuración
de fichas están disponibles en la interfaz de configuración de permisos de usuario, pero no se incluyen en los componentes
del conjunto de permisos.
Cree conjuntos de permisos empaquetados que otorgan acceso a los componentes personalizados en un paquete pero no
componentes estándar de Salesforce.
Descripción general de las aplicaciones conectadas
Permisos de usuario necesarios
Para gestionar aplicaciones:
“Personalizar aplicación”
Para ver aplicaciones:
“Ver parámetros y configuración”
Una aplicación conectada consiste en una aplicación que se integra con salesforce.com mediante el uso de API. Las aplicaciones
conectadas utilizan los protocolos SAML y OAuth estándares para autenticar, proporcionar un inicio de sesión único y tokens
para su uso con las API de Salesforce. Además de las funciones estándares de OAuth, las aplicaciones conectadas permiten a
los administradores establecer varias políticas de seguridad y controlar de forma explícita quién puede utilizar las aplicaciones.
Las aplicaciones conectadas comienzan cuando un desarrollador define los metadatos de OAuth de la aplicación, incluyendo:
•
•
•
•
Información de contacto y descripción básica de la aplicación conectada
Los ámbitos de OAuth y la URL de devolución de llamada de la aplicación conectada
Intervalos IP opcionales donde se puede ejecutar la aplicación conectada
Información opcional acerca de las políticas móviles que la aplicación conectada puede reforzar
54
Arquitectura y desarrollo de aplicaciones
Creación de una aplicación conectada
A cambio, al desarrollador se le proporciona un Id. de cliente de OAuth y una pregunta secreta de cliente para la aplicación
conectada. El desarrollador podrá después empaquetar la aplicación y proporcionarla a un administrador de Salesforce.
Existen dos modos de implementación:
•
•
La aplicación se crea y utiliza en la misma organización. Se trata del caso normal para los departamentos de TI, por ejemplo.
La aplicación se crea en una organización y se instala en otras organizaciones. Es el modo que las entidades con varias
organizaciones o un proveedor de software independiente eligen para utilizar aplicaciones conectadas.
Los administradores pueden instalar la aplicación conectada en su organización y utilizar perfiles, conjuntos de permisos y
restricciones de intervalos de direcciones IP para controlar qué usuarios pueden acceder a la aplicación. La gestión se realiza
desde una página de detalles de la aplicación conectada. Los administradores pueden también desinstalar la aplicación conectada
e instalar una versión más reciente. Cuando se actualice la aplicación, el desarrollador puede notificar a los administradores
sobre la disponibilidad de la nueva versión de la aplicación.
Nota: Los paquetes administrados de Salesforce como son los que se usan para las aplicaciones móviles de Chatter
no se pueden desinstalar. Se actualizan de forma automática cuando lo hace la sesión del siguiente usuario.
Creación de una aplicación conectada
Para crear una aplicación conectada, siga los pasos que se indican a continuación:
1. Desde Configuración, haga clic en Crear > Aplicaciones.
2. En la secciónAplicaciones conectadas, haga clic en Nueva (New).
La información necesaria para crear una aplicación conectada está dividida en las siguientes partes:
•
•
•
•
•
Información básica
API (Activar configuración de OAuth)
Configuración de aplicación Web
Configuración de aplicación móvil
Configuración de aplicación de lienzo
Cuando haya finalizado la introducción de la información, haga clic en Guardar para guardar su nueva aplicación. Ahora
puede publicar su aplicación, realizar más modificaciones o eliminarla. Si utiliza OAuth, el almacenamiento de su aplicación
le proporciona dos nuevos valores que la aplicación utiliza para comunicarse con Salesforce:
•
Clave de consumidor: Valor empleado por el consumidor para identificarse en Salesforce. También 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. También denominado client_secret en OAuth 2.0.
Información básica
Especifique información básica acerca de su aplicación en esta sección, incluyendo el nombre, el logotipo y la información de
contacto de la aplicación.
1. Ingrese el nombre de la aplicación conectada. Este nombre aparece en la lista de aplicaciones conectadas.
Nota: El nombre debe ser completamente exclusivo en su organización. No puede reutilizar un nombre existente
o el nombre de una aplicación conectada eliminada.
55
Arquitectura y desarrollo de aplicaciones
Creación de una aplicación conectada
2. El nombre de la API se utiliza al hacer referencia a la aplicación desde un programa. El valor predeterminado es una
versión del nombre sin espacios. Únicamente se permiten letras, números y guiones bajos, así que deberá modificar el
nombre predeterminado si el nombre de la aplicación original contiene cualquier otro carácter.
3. Proporcione el email de contacto que salesforce.com debe utilizar para hacer contacto con usted o con su equipo de
atención al cliente. Esta dirección no se proporciona a los administradores que instalan la aplicación.
4. Proporcione el teléfono de contacto de salesforce.com en el que podamos contactarle en caso necesario. Este número
no se proporciona a los administradores que instalan la aplicación.
5. Ingrese una URL de imagen de logotipo para que se muestre su logotipo en la lista de aplicaciones conectadas y en
la página de consentimiento que los usuarios ven cuando realizan la autenticación. La URL debe utilizar HTTPS y el
logotipo no puede tener más de 125 píxeles de alto y 200 píxeles de ancho. El logotipo predeterminado es una nube.
También puede seleccionar un logotipo entre los ejemplos a su disposición tras hacer clic en Seleccione uno de nuestros
logotipos de muestra (Choose one of our sample logos). Entre estos se incluyen los de aplicaciones de salesforce.com,
aplicaciones de terceros y formas estándares.
6. Ingrese una URL de icono para que se muestre un logotipo en la página de aprobación de OAuth que los usuarios vean
la primera vez que utilicen la aplicación. El logotipo debe tener 16 píxeles de alto y ancho sobre un fondo blanco. Los
logotipos de ejemplo también están disponibles para los iconos.
7. Si hay una página Web con más información sobre la aplicación, proporcione una URL de información.
8. Ingrese una descripción para que se muestre en la lista de aplicaciones conectadas.
Hasta el invierno de 2014, la URL de inicio y la URL de inicio de Mobile se definían en esta sección. Ahora, estos
campos se encuentran en las secciones Configuración de aplicación Web (Web App Settings) y Configuración de aplicación
móvil (Mobile App Settings) que se describen a continuación.
API (Activar configuración de OAuth)
Esta sección controla cómo se comunica su aplicación con Salesforce. Seleccione Activar configuración de OAuth
para configurar ajustes de autenticación.
1. Esta es la URL de devolución de llamada (extremo) a la que Salesforce devuelve las llamadas en su aplicación durante
OAuth; es la redirect_uri (uri de redirección) de OAuth.
2. Si utilice el flujo de JWT de OAuth, seleccione Utilizar firmas digitales (Use Digital Signatures). Si la aplicación
utiliza un certificado, haga clic en Seleccionar archivo (Choose File) y seleccione el archivo de certificado.
3. Agregue todos los ámbitos de OAuth compatibles a Ámbitos de OAuth seleccionados (Selected OAuth Scopes).
Estos ámbitos hacen referencia a permisos otorgados por el usuario que ejecuta la aplicación conectada y van seguidos por
su nombre de token de OAuth entre paréntesis:
Valor
Descripción
api
Permite el acceso a la cuenta actual en la que ha iniciado sesión el usuario mediante las
API, como API de REST y API masiva. Eso incluye también chatter_api, que permite
acceder a recursos de la API de REST de Chatter.
chatter_api
Solamente permite el acceso a los recursos de la API de REST de Chatter.
full
Permite acceder a todos los datos a los que puede acceder el usuario que ha iniciado sesión.
completo no devuelve un token de actualización. Debe solicitar expresamente el ámbito
refresh_token para obtener un token de actualización.
id
Solo permite el acceso al servicio de URL de identidad.
refresh_token
Permite que se devuelva un token de actualización en caso de que pueda recibir uno.
visualforce
Permite el acceso a las páginas de Visualforce.
web
Permite la capacidad de utilizar access_token en la Web. Esto incluye también
Visualforce, lo que permite acceder a páginas de Visualforce.
56
Arquitectura y desarrollo de aplicaciones
Creación de una aplicación conectada
Si su organización ha seleccionado la opción No se necesita aprobación de usuario para usuarios de esta
organización en su acceso remoto anterior a la versión Spring ’12, los usuarios en la misma organización así como aquella
en la que se ha creado la aplicación aún tienen aprobación automática para la aplicación. La casilla de verificación de solo
lectura No se necesita aprobación de usuario para usuarios de esta organización está seleccionada
para mostrar esta condición. Para las aplicaciones conectadas, el procedimiento recomendado después de crear una aplicación
es que los administradores instalen la aplicación y luego establezcan Usuarios autorizados (Permitted Users) como
Usuarios aprobados por el administrador (Admin-approved users). Si no se ha seleccionado la opción de acceso
remoto en un principio, no aparece la casilla de verificación.
Configuración de aplicación Web
Ingrese una URL de inicio para su aplicación con el fin de dirigir a sus usuarios a una ubicación específica después de su
autenticación. Si no ingresa un valor para la URL de inicio, se enviarán a los usuarios a la página de inicio predeterminada
de la aplicación cuando finalice la autenticación. Si la aplicación conectada que está creando es una aplicación de lienzo, no
necesita ingresar un valor para este campo. El campo URL de aplicación de lienzo contiene la URL que se activa para la
aplicación conectada.
Si su aplicación conectada va a utilizar un proveedor de servicio SAML, seleccione Habilitar SAML (Enable SAML).
Ingrese los valores de Id. de entidad (Entity Id), URL de ACS (ACS URL), Tipo de asunto (Subject Type), Formato
de Id. de nombre (Name ID Format) y Emisor (Issuer) disponibles para su proveedor de servicio. Seleccione Certificado
de proveedor de servicios si el proveedor de servicio le proporciona un certificado de seguridad. Examine su sistema
para el certificado. Esto solo es necesario si piensa iniciar sesión en Salesforce por el proveedor de servicio y el proveedor de
servicio firma sus solicitudes SAML.
Importante: Si carga un certificado, todas las solicitudes SAML deben estar firmadas. Si no se carga ningún certificado,
se aceptan todas las solicitudes SAML.
Configuración de aplicación móvil
Si la aplicación es móvil, ingrese la URL de inicio de Mobile para dirigir a los usuarios a una ubicación específica cuando
se accede a la aplicación desde un dispositivo móvil. Si no ingresa una URL de inicio de Mobile, se enviará a los usuarios
a la URL de inicio definida en Configuración de aplicación Web. Si la aplicación conectada que está creando es una
aplicación de lienzo, no necesita ingresar un valor para este campo. El campo URL de aplicación de lienzo contiene la URL
que se activa para la aplicación conectada.
El SDK de Salesforce Classic aplica automáticamente la protección de PIN (http://developer.force.com/mobilesdk). También
puede implementarla manualmente mediante la lectura del objeto mobile_policies desde la URL de identidad del usuario.
Si la aplicación la activa, seleccione Protección de PIN (Pin Protect) para proporcionar a un administrador la opción de
configurar el tiempo de inactividad de la sesión y la longitud del PIN para aplicaciones móviles después de instalar la aplicación
conectada.
Nota: Si elimina la integración de Mobile de una versión nueva de una aplicación conectada existente, dicha integración
dejará de estar incluida en cualquier versión de la aplicación conectada. Por ejemplo, imagine que publica un paquete
que contiene la versión 1.0 de la aplicación conectada con integración de Mobile. Después, elimine la integración de
Mobile de la aplicación, vuelva a empaquetarla y publíquela como la versión 1.1. Si un cliente instala el paquete anterior
con la versión 1.0 en este punto, la aplicación conectada de la versión 1.0 no contendrá la integración de Mobile.
Configuración de aplicación de lienzo
1. Si su aplicación conectada se va a exponer como una aplicación de lienzo, seleccione Lienzo de Force.com (Force.com
Canvas).
2. Ingrese la URL de aplicación de lienzo en la aplicación de terceros. El usuario se dirigirá a esta URL cuando haga
clic en el vínculo hacia su aplicación de lienzo.
3. Seleccione un Método de acceso. Esto especifica cómo inicia la aplicación de lienzo el flujo de autenticación de OAuth.
57
Arquitectura y desarrollo de aplicaciones
•
Modificación, empaquetado o eliminación de una aplicación
conectada
Solicitud firmada (POST) (Signed Request [POST]): se utiliza la autenticación de OAuth, pero cuando el
administrador instala la aplicación de lienzo, permite implícitamente el acceso para los usuarios. Por lo tanto, no se
pedirá al usuario que permita el acceso a su información de usuario a terceros. Cuando utilice este método de acceso,
la autenticación se publicará directamente en la URL de la aplicación de lienzo.
Si su aplicación de lienzo utiliza una autenticación por solicitud firmada, asegúrese de no agregar Realice
solicitudes en su nombre en cualquier momento (Perform requests on your behalf at any time) a Ámbitos
de OAuth seleccionados (Selected OAuth Scopes). La autorización por solicitud firmada nunca devuelve un
token de actualización, aunque se seleccione este valor de campo.
•
Flujo Web OAuth (GET) (OAuth Webflow [GET]): se utiliza la autenticación de OAuth y se pide al usuario que
permita que la aplicación externa acceda a su información. Cuando utiliza este método de acceso, la aplicación de lienzo
debe iniciar el flujo de autenticación de OAuth.
4. En Ubicaciones (Locations), seleccione dónde va a aparecer la aplicación de lienzo a los usuarios.
Nota: Algunas opciones no aparecen en todas las organizaciones. La atención al cliente sobre las aplicaciones de
lienzo de Force.com en el publicador y en las noticias en tiempo real de Chatter está disponible a través de un
programa piloto y en todas las organizaciones nuevas con Development Edition. Para obtener información sobre
cómo activarla en su organización, haga contacto con salesforce.com.
•
•
•
•
•
•
Noticias en tiempo real de Chatter (Chatter Feed): la aplicación de lienzo puede aparecer como un elemento
de noticias en tiempo real de Chatter.
Ficha de Chatter (Chatter Tab): la aplicación de lienzo aparece en la lista de navegación de la aplicación en la
ficha Chatter.
Abrir CTI (Open CTI): la aplicación de lienzo aparece en la herramienta de control de llamada. Si se selecciona esta
opción, deberá especificar la aplicación de lienzo en el archivo de definición de su aplicación de lienzo para que aparezca.
Publicador (Publisher): la aplicación de lienzo puede aparecer como una acción de publicador global.
Consola de Salesforce (Salesforce Console): la aplicación de lienzo aparece en el pie de página o en las barras
laterales de una consola de Salesforce. Si se selecciona esta opción, debe elegir dónde se va a mostrar la aplicación de
lienzo en una consola; para ello, agréguela como un componente de consola personalizado.
Página de Visualforce (Visualforce Page): la aplicación de lienzo puede aparecer en una página de Visualforce.
Si agrega un componente <apex:canvasApp> para exponer una aplicación de lienzo en una página de Visualforce,
asegúrese de seleccionar esta ubicación para la aplicación de lienzo; de lo contrario, recibirá un error.
5. Seleccione Crear acciones automáticamente (Create Actions Automatically) para crear una acción global para la
aplicación de lienzo. Para crear una acción global para la aplicación de lienzo, debe seleccionar Editor (Publisher) en
Ubicación (Location); de lo contrario, no se creará ninguna acción global. También puede crear la acción manualmente
en otra ocasión.
Modificación, empaquetado o eliminación de una aplicación conectada
Después de crear una aplicación conectada, puede modificarla, empaquetarla o eliminarla. Las aplicaciones conectadas tienen
nombres exclusivos que no se pueden reutilizar aunque se elimine la aplicación correspondiente de la organización.
Modificación de una aplicación conectada
Puede actualizar una aplicación conectada en cualquier momento. En Configuración (Setup), haga clic en Crear > Aplicaciones
(Create > Apps). Haga clic en el nombre de una aplicación conectada en la lista para abrir la página de detalles de la aplicación.
Haga clic en Edit (Modificar) para que aparezca la página de modificación donde puede realizar cambios. Guarde sus cambios
haciendo clic en Guardar (Save).
Después de crear la aplicación, puede especificar intervalos de direcciones IP haciendo clic en Nuevo en Intervalos IP. Los
intervalos de IP funcionan con OAuth y no con SAML, así que debe especificar las direcciones que pueden acceder a la
aplicación sin que haya que autenticar al usuario. Ingrese una dirección IP válida en el campo Dirección IP inicial (Start IP
Address) y una dirección IP superior en el campo Dirección IP final (End IP Address). Puede ingresar varios intervalos
58
Arquitectura y desarrollo de aplicaciones
Instalación de una aplicación conectada
discontinuos haciendo clic en Nuevo para cada intervalo. Una vez instalada la aplicación, el administrador de cada organización
puede aprobar u omitir los intervalos configurando las restricciones de IP.
Después de crear la aplicación, puede especificar atributos personalizados mediante un clic en Nuevo (New) en Atributos
personalizados (Custom Attributes). Los atributos personalizados se utilizan para especificar los metadatos de SAML o los
parámetros de OAuth que se leen durante el tiempo de ejecución de OAuth. Cada atributo personalizado debe tener una clave
exclusiva y utilizar campos disponibles desde el menú Insertar campo (Insert Field). Los administradores pueden sobrescribir
los atributos personalizados.
Empaquetado de una aplicación conectada
Después de crear una aplicación conectada o una nueva versión de una aplicación existente, empaquétela para ponerla a
disposición de los usuarios en otras organizaciones de Salesforce. Puede agregar una aplicación conectada a un paquete gestionado
de la misma manera que otros componentes, y junto con ellos, como por ejemplo los objetos personalizados, las páginas de
Visualforce o las clases de Apex. Esto facilita la distribución de una aplicación conectada a otras organizaciones de Salesforce.
Las aplicaciones conectadas, como componentes que se pueden incluir en paquetes, también puede aprovechar los beneficios
de todas las demás funciones de los paquetes gestionados: inclusión en la lista de AppExchange, actualizaciones mediante
envío, secuencias de comandos de Apex posteriores a la instalación, gestión de licencias y compatibilidad del suscriptor mejorada.
Nota: Solo puede incluir en un paquete una aplicación conectada desde una organización con Developer Edition.
Eliminación de una aplicación conectada
Para eliminar una aplicación conectada, haga clic en el nombre de una aplicación conectada en la lista de aplicaciones. Haga
clic en Eliminar en la página de modificación y confirme haciendo clic en Eliminar de nuevo. Aunque la aplicación se elimina
de la lista, no podrá volver a utilizar su nombre.
Si elimina una aplicación conectada que se ha incluido en un paquete, la aplicación seguirá estando disponible en el paquete
hasta que actualice el paquete.
Instalación de una aplicación conectada
La aplicación conectada se instala mediante la instalación de un paquete gestionado que incluye la aplicación conectada como
componente.
Nota: Las aplicaciones conectadas creadas antes del verano de 2013 se pueden instalar mediante la URL de instalación,
siempre y cuando la aplicación conectada no esté actualizada. Una vez que el desarrollador cargue una nueva versión
del paquete con una aplicación conectada actualizada, la URL de instalación dejará de funcionar.
Visualización de detalles de la aplicación conectada
La página Detalles de la aplicación conectada muestra su información acerca de la aplicación conectada, incluidos su versión
y sus ámbitos. Puede modificar y comprobar el uso de la aplicación conectada y también asociar perfiles y permisos a esta
aplicación.
•
•
•
•
Haga clic en Modificar (Edit) para realizar cambios en la aplicación en la página Modificar de la aplicación conectada.
Haga clic en Descargar metadatos (Download Metadata) para descargar los metadatos del proveedor de servicios específicos
de su configuración. Este botón solo se muestra si su organización está activada como un proveedor de identidad y solo
con aplicaciones conectadas que utilicen SAML.
Haga clic en Ver uso de OAuth (View OAuth Usage) para ver el reporte de uso de las aplicaciones conectadas de su
organización.
Haga clic en Gestionar perfiles (Manage Profiles) para seleccionar los perfiles para esta aplicación en la página Asignación
de perfil de aplicación. Seleccione los perfiles para tener acceso a la aplicación.
59
Arquitectura y desarrollo de aplicaciones
Gestión de una aplicación conectada
Importante: Esta opción no aparecerá si la política de OAuth para Usuarios permitidos se establece como Todos
los usuarios pueden autorizarse porque esta opción 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 aplicación
en la página Asignación del conjunto de permisos de aplicación. Seleccione los conjuntos de permisos para tener acceso a
la aplicación.
Importante: Esta opción no aparecerá si la política de OAuth para Usuarios permitidos se establece como Todos
los usuarios pueden autorizarse porque esta opción 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.
También puede modificar o eliminar los atributos existentes.
Si ha seleccionado Usuarios aprobados por el administrador (Admin-approved users) para el valor Usuarios
permitidos (Permitted Users) de la página Modificar de la aplicación conectada, solo los usuarios que pertenezcan al menos
a uno de los perfiles o conjuntos de permisos seleccionados podrán iniciar la aplicación. Si en su lugar ha seleccionado Todos
los usuarios, no se tendrán en cuenta los conjuntos de permisos y perfiles.
Gestión de una aplicación conectada
Para ver y actualizar propiedades de una aplicación conectada, busque la aplicación bajo Configuración, en Gestionar aplicaciones
> Aplicaciones conectadas (Manage Apps > Connected Apps) y haga clic en la opción Modificar (Edit) situada junto a ellas.
Para ver y actualizar los detalles de la aplicación, haga clic en el nombre de la aplicación.
Nota: Las sesiones se actualizan de forma automática en frecuencias que van desde cada 15 minutos hasta cada 12
horas mientras el usuario se encuentra en la aplicación en función del valor de tiempo de espera de la sesión
establecido para su organización. El usuario no se suele dar cuenta de estas actualizaciones.
Modificación de una aplicación conectada
La página de modificación de aplicaciones conectadas permite modificar parámetros de configuración y permisos para una
aplicación conectada
Para modificar la configuración de una aplicación conectada, siga los pasos que se indican a continuación:
1. Desde Configuración, haga clic en Gestionar aplicaciones > Aplicaciones conectadas (Manage Apps > Connected Apps).
2. Haga clic en Modificar junto al nombre de la aplicación que desea modificar. (Para revisar la información sobre una
aplicación en la página de detalles de la aplicación conectada, haga clic en el nombre de la aplicación).
•
Hay políticas de OAuth disponibles para cada aplicación conectada.
◊ Usuarios autorizados determina quién puede iniciar la aplicación.
-
Todos los usuarios pueden autorizarse (All Users may self-authorize): predeterminado. Cualquiera de
la organización puede autorizar la aplicación. Eso significa que cada usuario debe aprobar la aplicación la primer
vez que accede a ella.
-
Los usuarios aprobados por el administrador se han autorizado previamente
(Admin-approved users are pre-authorized): el acceso está limitado a los usuarios con un perfil o conjunto de
permisos especificado pero estos no necesitan aprobar la aplicación antes de acceder a ella. Gestione perfiles para la
aplicación mediante la modificación de la lista de acceso a aplicaciones conectadas de cada perfil. Gestione los
60
Arquitectura y desarrollo de aplicaciones
Modificación de una aplicación conectada
conjuntos de permisos para la aplicación modificando cada lista de aplicaciones conectadas asignadas de cada uno
de ellos.
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
aplicación en este momento perderá su acceso a menos que pertenezca a un conjunto de permisos o perfil que
haya especificado para la aplicación.
◊ Restricciones de IP (IP Restrictions) hace referencia a las restricciones de direcciones IP a las que están sujetos
los usuarios de la aplicación conectada. Un administrador puede seleccionar si reforzar u omitir estas restricciones
seleccionando una de las siguientes opciones.
-
Activar restricciones de IP (Enforce IP restrictions): predeterminado. Un usuario que ejecuta la aplicación
-
está sujeto a las restricciones de direcciones IP de la organización, como los intervalos de direcciones IP establecidos
en el perfil de usuario.
Rebaje las restricciones de IP con un factor secundario (Relax IP restrictions with second
factor): un usuario que ejecute esta aplicación omite las restricciones de IP de la organización si se cumple alguna
de las condiciones siguientes:
-
-
La aplicación cuenta con intervalos de direcciones IP con lista blanca y está utilizando el flujo de autenticación
OAuth del servidor Web. Solo se permiten las solicitudes procedentes de las direcciones IP con lista blanca.
La aplicación no cuenta con una lista blanca de intervalos de direcciones IP, está utilizando el flujo de autenticación
OAuth del servidor Web o del usuario-agente y el usuario ha completado correctamente la confirmación de
identidad.
Rebajar restricciones de IP (Relax IP restrictions): un usuario que ejecuta esta aplicación conectada no
está sujeto a ninguna restricción de dirección IP.
◊ Los usuarios deben iniciar sesión (Require Users to Log In) especifica la frecuencia con la que un usuario
debe iniciar sesión para mantener los permisos que su aplicación cliente necesita en la aplicación conectada. Debe
especificar que solo necesitan iniciar sesión la primera vez que utilizan la aplicación, cada vez que la utilizan, después
de un periodo de inactividad o después de un periodo determinado de tiempo.
◊ Aquí también se indican los permisos actuales de la aplicación conectada.
Si su aplicación conectada es una aplicación de lienzo que utiliza una autenticación por solicitud firmada, asegúrese de lo
siguiente:
◊ Establezca Usuarios permitidos como Los usuarios aprobados por el administrador se han
autorizado previamente.
◊ Establezca Los usuarios deben iniciar sesión como La primera vez que utilizan esta
aplicación.
◊ De acceso a los usuarios mediante perfiles y conjuntos de permisos.
•
•
La política de nivel de sesión está disponible para todas las aplicaciones conectadas. Seleccione la sesión de alta seguridad
obligatorio para que los usuarios deban ingresar un token basado en el tiempo durante el inicio de sesión para acceder a la
aplicación.
Hay información básica disponible para todas las aplicaciones conectadas. Sin embargo, si su aplicación es de lienzo, estos
valores de campo no se utilizarán. Por el contrario, se utilizará la URL de aplicación de lienzo especificada cuando se creó
la aplicación conectada.
◊ URL de inicio se utiliza si la aplicación conectada utiliza un inicio de sesión único. En este caso, establezca la URL
de la página donde el usuario iniciará el proceso de autenticación. Esta ubicación aparece también en el menú switcher
de la aplicación.
61
Arquitectura y desarrollo de aplicaciones
Monitoreo del uso de una aplicación conectada
◊ La URL de inicio de Mobile se utiliza para dirigir a los usuarios a una ubicación específica cuando se accede a
la aplicación desde un dispositivo móvil.
•
La configuración de la aplicación móvil está disponible para las aplicaciones conectadas móviles en las que está activada la
protección por PIN.
◊ Tiempo de espera de sesión especifica cuánto tiempo debe transcurrir cuando la aplicación está inactiva antes
de que ésta se autobloquee y requiere el PIN antes de continuar. Los valores disponibles son ninguno (sin bloqueo), 1,
5, 10 y 30 minutos.
◊ Longitud de Pin establece la longitud del número de identificación enviado para la confirmación de la autenticación.
La longitud puede ser de 4 a 8 dígitos, ambos incluidos.
•
Hay atributos personalizados disponibles para todas las aplicaciones conectadas. Los desarrolladores pueden establecer
metadatos de SAML personalizados o atributos de OAuth personalizados para una aplicación conectada. Los administradores
pueden eliminar o modificar estos atributos. También pueden agregar otros atributos personalizados. Los atributos que los
administradores han eliminado, modificado o agregado sustituyen a aquellos que han establecido los desarrolladores.
Monitoreo del uso de una aplicación conectada
Permisos de usuario necesarios
Para gestionar aplicaciones:
“Personalizar aplicación”
Para ver aplicaciones:
“Ver parámetros y configuración”
Para ver información sobre el uso de cualquier aplicación conectada en la organización, desde Configuración, haga clic en
Gestionar aplicaciones > Uso de OAuth de aplicaciones conectadas (Manage Apps > Connected Apps OAuth Usage).
Aparecerá una lista de las aplicaciones conectadas e información sobre cada una de ellas.
Aplicación conectada
Nombre de la aplicación. Las aplicaciones conectadas que están instaladas pero que nadie las ha utilizado no figuran en
la lista.
Ver información de la aplicación
Haga clic en Ver información de la aplicación (View App Info) para acceder a la página de detalles de la aplicación
conectada. Como alternativa, si la aplicación conectada no está aún instalada, haga clic en Instalar (Install).
Conteo de usuarios
El número de usuarios que han ejecutado la aplicación. Haga clic en el conteo de usuarios para ver información sobre
cada usuario, incluidos los datos siguientes:
• Cuándo usó por primera vez la aplicación.
• Cuándo usó la última vez la aplicación.
• El número total de veces que ha utilizado la aplicación.
En la página Uso (Usage) del usuario de la aplicación conectada, puede hacer clic en la acción Revocar (Revoke) en la
fila de la persona cuyo acceso a su sesión actual desee cancelar. O bien, haga clic en el botón Revocar todo (Revoke All)
situado en la parte superior de la página para cerrar la sesión de todos los que estén utilizando la aplicación conectada en
ese momento.
62
Arquitectura y desarrollo de aplicaciones
Desinstalación de una aplicación conectada
Acción
Haga clic en Bloque (Block) para finalizar todas las sesiones de usuario actuales con la aplicación conectada y bloquear
todas las sesiones nuevas. El bloqueo de una aplicación no es una acción permanente. Puede hacer clic en Desbloquear
(Unblock) para permitir a los usuarios que inicien sesión y accedan a la aplicación en otro momento.
Desinstalación de una aplicación conectada
Puede eliminar una aplicación conectada de su organización desinstalando el paquete del que forma parte.
Nota: Cuando se desinstala una aplicación conectada, se eliminan los tokens de acceso y actualización de todos los
usuarios de la aplicación. Eso evita que un usuario inicie la aplicación más adelante, utilizando un token de acceso
existente, sin aprobar la aplicación de forma explícita.
Acerca del WSDL de socio
El WSDL de servicios Web de socio se utiliza para las aplicaciones cliente que se basan en metadatos y son dinámicas por
naturaleza. En concreto, aunque no de forma exclusiva, resulta útil para los socios de salesforce.com que compilan aplicaciones
cliente para varias organizaciones. Como se trata de una representación del modelo de datos de Salesforce que no está
estrictamente tipificada y que funciona con pares de nombre-valor y valores en lugar de tipos de datos específicos, se puede
utilizar para acceder a los datos dentro de cualquier organización. Este WSDL es el más adecuado para los desarrolladores de
clientes que pueden hacer consultas para obtener información sobre un objeto antes de que el cliente actúe sobre este. El
documento WSDL de socio solo debe descargarse y utilizarse una vez por cada versión de la API.
Para obtener más información sobre el WSDL de socio, consulte el apartado sobre el uso del WSDL de socio en la guía del
desarrollador de la API de SOAP.
Trabajo con servicios externos
Es posible que desee actualizar los datos de Salesforce cuando se producen cambios en otro servicio. Del mismo modo, quizás
también quiera actualizar los datos en otro servicio (fuera de Salesforce) en función de los cambios producidos en los datos de
Salesforce. Salesforce dispone de maneras de hacer ambas transacciones. Por ejemplo, puede que quiera enviar un email masivo
a más contactos y prospectos de los que Salesforce permite. Para hacerlo, puede utilizar un servicio de correo externo que
permita a los usuarios crear una lista de nombres y direcciones de email de destinatarios con la información de contactos y
prospectos disponible en su organización de Salesforce.
Una aplicación compilada en la plataforma Force.com puede conectarse con un servicio externo de muchas maneras diferentes.
Por ejemplo:
•
•
•
Puede crear un campo de fórmula personalizada o vínculo personalizado que transfiera información a un servicio externo.
Puede utilizar la API de Force.com para transferir datos dentro y fuera de Salesforce.
Puede utilizar una clase de Apex que contenga un método de servicio Web.
Antes de que cualquier página de Visualforce, activación de Apex o código de JavaScript mediante XmlHttpRequest en un
S-Control o un botón personalizado pueda acceder a un sitio externo, dicho sitio debe registrarse en la página Configuración
de sitio remoto o el acceso no se realizará correctamente. Para obtener información sobre el registro de componentes, consulte
“Configuración de ajustes remotos” en la Ayuda de Salesforce.
Advertencia: No almacene nombres de usuarios ni contraseñas dentro de cualquier servicio externo.
63
Arquitectura y desarrollo de aplicaciones
Aprovisionamiento de servicios externos
Aprovisionamiento de servicios externos
Si su aplicación está vinculada a un servicio externo, los usuarios que instalen la aplicación deben inscribirse para utilizar el
servicio. Proporcione acceso de una de las dos maneras siguientes:
•
•
Acceso por parte de todos los usuarios activos en una organización sin que haya una necesidad real de identificar a cada
uno de ellos individualmente
Acceso por usuario individual donde la identificación de la persona es importante
El servicio de Salesforce proporciona dos identificadores exclusivos globales para que se puedan llevar a cabo estas opciones.
El id. de usuario identifica a una persona individual y es exclusivo en todas las organizaciones. Los id. de usuario no se reutilizan
nunca. Del mismo modo, el id. de organización identifica a la organización de forma exclusiva.
Cuando proporcione acceso a un servicio externo, no utilice direcciones de email, nombres de compañía ni nombres de usuario
de Salesforce. Los nombres de usuario pueden cambiar con el tiempo y las direcciones de email y los nombres de compañía
pueden estar duplicados.
Si va a proporcionar acceso a un servicio externo, se recomienda seguir las directrices siguientes:
•
•
•
•
•
Utilice técnicas de inicio de sesión único (SSO) para identificar a los usuarios nuevos cuando utilicen el servicio.
En cada punto de entrada a su aplicación (por ejemplo, un vínculo personalizado o una ficha Web), incluya el id. de usuario
en la cadena de parámetro. Configure su servicio para que examine el id. de usuario con el fin de verificar que este pertenece
a un usuario conocido. Incluya un id. de sesión en la cadena de parámetro para que el servicio pueda leer datos a través de
la API de Force.com y validar que este usuario tiene una sesión activa y está autenticado.
Ofrezca el servicio externo a los usuarios conocidos. Para los usuarios nuevos, muestre una página alternativa para recopilar
la información necesaria.
No almacene contraseñas de usuarios individuales. Aparte de los evidentes riesgos para la seguridad, muchas organizaciones
restablecen las contraseñas con cierta regularidad, lo que requiere que el usuario actualice también la contraseña en su
sistema. Se recomienda diseñar el servicio externo para utilizar el id. de usuario y de sesión para autenticar e identificar a
los usuarios.
Si en su aplicación es necesario realizar actualizaciones asíncronas cuando ha vencido una sesión de usuario, dedique una
licencia de usuario administrador diferente para esta tarea.
Protección de la propiedad intelectual
Los instaladores conocen todos los detalles de los objetos personalizados, los vínculos personalizados, los reportes y todos los
demás elementos instalados. Aunque esta información les permite revisar una aplicación y todos sus componentes y detectar
si hubiera contenido dañino, impide que los desarrolladores protejan la propiedad intelectual.
La siguiente información es importante cuando se tiene en cuenta su propiedad intelectual y su protección.
•
•
•
•
Publique únicamente componentes de paquete que sean su propiedad intelectual y para los que cuente con derechos de
colaboración.
Una vez que los componentes estén disponibles en AppExchange, no podrá recuperarlos de las personas que los hayan
instalado.
La información en los componentes que incluye en paquetes y publica puede ser visible para los clientes. Tenga cuidado al
agregar su código a una página de Visualforce de fórmulas o cualquier otro componente que no pueda ocultar en su aplicación.
El código incluido en una clase o desencadenador de Apex que forme parte de un paquete gestionado se confundirá
automáticamente y no podrá visualizarse en una organización de instalación. Las únicas excepciones son métodos declarados
globales, lo que significa que las firmas de los métodos pueden visualizarse en una organización de instalación.
64
Arquitectura y desarrollo de aplicaciones
•
Núcleo de entorno
Si una configuración personalizada se incluye en un paquete gestionado y la Visibilidad se especifica como Protegida,
la configuración personalizada no se incluirá en la lista de componentes del paquete de la organización del suscriptor. Todos
los datos de la configuración personalizada se ocultarán al suscriptor.
Núcleo de entorno
Permisos de usuario necesarios
Para establecer y configurar el Núcleo de entorno:
“Gestionar el Núcleo de entorno”
Para conectar una organización al el Núcleo de entorno:
“Conectar organizaciones al Núcleo de entorno”
El Núcleo de entorno le permite ver, conectar, crear e iniciar sesión en varias organizaciones de Salesforce desde una sola
ubicación. Eso puede ser especialmente conveniente si utiliza un gran número de organizaciones para negocios, desarrollo y
pruebas.
Debe elegir una organización como el Núcleo de entorno (u organización de núcleo) y luego puede conectar todas sus demás
organizaciones (u organizaciones miembros) al Núcleo. Puede establecer el inicio de sesión único entre las organizaciones de
núcleo y miembros, permitiendo a los usuarios alternar perfectamente entre ellas sin necesidad de proporcionar las credenciales
cada vez.
Cuando conecta una organización al Núcleo, se descubren las organizaciones relacionadas automáticamente por o que no tiene
que conectarlas manualmente. Los siguientes tipos de organizaciones relacionadas se descubren automáticamente.
•
•
•
•
Para cualquier organización, todas las organizaciones de sandbox creadas desde ella.
Para una organización de versión, todas sus organizaciones de parche relacionadas.
Para una organización de gestión de Trialforce, todas las organizaciones de origen de Trialforce se crean a partir de ella.
Para una organización de gestión de licencias (LMO), que es una organización con la aplicación de gestión de licencias
(LMA) instalada, cualquier organización de versión (y por lo tanto todas sus organizaciones de parche asociadas) con un
paquete gestionado registrada en la LMO.
Para acceder al Núcleo de entorno:
1. En el menú de aplicaciones de Force.com, haga clic en Núcleo de entorno.
2. Haga clic en la ficha Núcleo de entorno.
Nota: Para averiguar la organización de Núcleo para cualquier organización miembro, en Configuración, haga clic
en Perfil de la compañía > Información de la compañía (Company Profile > Company Information). El Id. de
organización de la organización de Núcleo aparece en la sección Detalles de la organización.
La página principal del Núcleo de entorno muestra una lista de todas las organizaciones miembros conectadas al Núcleo. Para
cada organización, se muestra su nombre, su descripción, su edición, su Id. de organización, su estado de inicio de sesión único
y otros detalles. Desde la ficha Núcleo de entorno (Environment Hub), puede realizar estas acciones.
•
•
•
•
•
Haga clic en Conectar organización para agregar otra organización.
Haga clic en Crear organización (Create Organization) para crear una nueva.
Haga clic en el nombre de cualquier organización para ver detalles acerca de ella, incluyendo otras organizaciones relacionadas
con ella.
Haga clic en Modificar junto a una organización para actualizar sus detalles.
Haga clic en Eliminar junto a una organización para eliminarla del Núcleo de entorno.
65
Arquitectura y desarrollo de aplicaciones
•
Configuración del Núcleo de entorno
Haga clic en Iniciar sesión (Login) junto a una organización para iniciar sesión en ella. Si anteriormente ha habilitado el
inicio de sesión único para esa organización, se iniciará la sesión sin que tenga que proporcionar las credenciales
correspondientes.
Si ha agregado un número amplio de organizaciones al Núcleo de entorno, puede anular organizaciones de un tipo específico
como, por ejemplo, organizaciones de desarrollo u organizaciones creadas después de una fecha determinada. Para crear una
vista personalizada, haga clic en la opción Crear nueva vista (Create New View) situada en la parte superior de la página.
Puede filtrar las organizaciones según varios criterios como la edición, la fecha de creación, la instancia, el origen, el estado de
SSO, etc.
Cada organización miembro corresponde a un objeto EnvironmentHubMember. Se trata de un objeto estándar, parecido a
Cuentas o Contactos. Por tanto, puede utilizar toda la funcionalidad de la plataforma Force.com para ampliar o modificar el
Núcleo de entorno, tanto a través de la interfaz de usuario como de la API. Por ejemplo, puede crear campos personalizados,
configurar reglas de flujo de trabajo o definir asignaciones de usuarios y habilitar el inicio de sesión único mediante la API
para cualquier organización miembro.
Configuración del Núcleo de entorno
Permisos de usuario necesarios
Para establecer y configurar el Núcleo de entorno:
“Gestionar el Núcleo de entorno”
Siga estos pasos para configurar el Núcleo de entorno por primera vez.
1. Elija la organización que va a utilizar como su organización de núcleo. Esta debería ser la organización en la que la mayoría
de los empleados inician sesión habitualmente.
2. Configure e implemente Mi dominio para su organización de núcleo. Se trata de un requisito para activar el Núcleo de
entorno.
3. Haga contacto con el servicio de atención al cliente de salesforce.com para pedir que le activen el Núcleo de entorno para
su organización de núcleo.
4. Una vez que la función está activada, inicie sesión en la organización de núcleo a través de la nueva URL de Mi dominio.
5. Modifique los perfiles o los conjuntos de permisos para asignar a los usuarios acceso a determinadas funciones en el Núcleo
de entorno.
a.
b.
c.
d.
En Configuración, haga clic en Gestionar usuarios > Perfiles.
Haga clic en Modificar (Edit) junto al perfil correspondiente.
En la página de modificación de perfiles, seleccione la configuración que va a activar.
Haga clic en Guardar.
En esta tabla se resume la configuración del Núcleo de entorno en la página de modificación de perfiles.
Sección del perfil
Configuración para el Núcleo de entorno
Configuración de aplicaciones
Active la aplicación personalizada del Núcleo de entorno para que esté disponible
personalizadas (Custom App Settings) en el menú de aplicaciones de Force.com.
Acceso a aplicación conectada
(Connected App Access)
La aplicación conectada del Núcleo de entorno es para uso interno únicamente
y no necesita activarse para los perfiles.
Acceso al proveedor de servicios
(Service Provider Access)
Aquí aparecerá automáticamente una nueva entrada cada vez que se active un
inicio de sesión único en una organización miembro. Al activar el acceso a un
proveedor de servicios, se permite el acceso de inicio de sesión único a la
organización miembro correspondiente. El proveedor de servicios se denomina
66
Arquitectura y desarrollo de aplicaciones
Sección del perfil
Configuración del Núcleo de entorno
Configuración para el Núcleo de entorno
"Proveedor de servicios de [OrganizationID]", donde [OrganizationID] es
el Id. de la organización miembro. Los usuarios que no tengan acceso al proveedor
de servicios verán el mensaje siguiente cuando intenten iniciar sesión a través del
inicio de sesión único: "El usuario [UserID] no tiene acceso al proveedor de
servicios [ServiceProviderID]".
Permisos administrativos
(Administrative Permissions)
El permiso "Gestionar el Núcleo de entorno" controla qué perfiles pueden activar,
crear y modificar la configuración de inicio de sesión único para las organizaciones
miembros. Además controla qué perfiles pueden crear nuevas organizaciones a
partir del núcleo (a través del botón Crear organización [Create Organization]).
Permisos de usuario generales
(General User Permissions)
El permiso "Conectar organizaciones al Núcleo de entorno" controla qué perfiles
pueden conectar las organizaciones existentes al Núcleo de entorno.
Permisos de objeto estándar (Standard La configuración de "miembros del núcleo" se utiliza para controlar el acceso a
Object Permissions)
las entidades de miembros del Núcleo de entorno del modo siguiente:
• Lectura: permite ver los registros existentes del miembro del núcleo.
• Creación: esta configuración no afecta a la posibilidad de crear registros del
miembro del núcleo. La creación de registros se realiza mediante la conexión
de una organización existente o la creación de una organización nueva desde
el Núcleo de entorno.
• Modificación: permite modificar varios campos en los registros de miembro
del núcleo existentes (organización, descripción, etc.). Tenga en cuenta que
no todos los campos son modificables, ya que la mayoría se gestiona de forma
interna.
• Eliminar: permite "desconectar" una organización del núcleo y eliminar su
registro de miembro correspondiente y su registro de proveedor de servicios
(si el inicio de sesión único se ha activado en el miembro).
• Ver todos: el permiso administrativo para leer todos los registros de los
miembros del núcleo, con independencia de quién los haya creado.
• Modificar todos: el permiso administrativo para leer, modificar y eliminar
todos los registros de los miembros del núcleo, con independencia de quién
los haya creado.
Además, la configuración de "invitaciones al núcleo" se utiliza para gestionar la
conexión de organizaciones con el Núcleo de entorno. Cuando se active el
permiso "Conectar organizaciones al Núcleo de entorno", las configuraciones de
creación, lectura, actualización y eliminación también deben activarse para el
objeto de "invitaciones al núcleo". De lo contrario, no pasa nada por desactivarlo.
6. Defina las asignaciones de usuarios para configurar qué usuarios son los que deberían tener acceso de inicio de sesión único
a determinadas organizaciones miembro. Para obtener más información, consulte: Activación de inicio de sesión único y
Definición de una asignación de usuarios de SSO.
Una vez que haya completado los pasos anteriores, los usuarios que tengan el perfil adecuado podrán acceder al Núcleo de
entorno al hacer clic en Núcleo de entorno (Environment Hub) en el menú Aplicación (App). Los tipos de acciones que estos
puedan realizar en el Núcleo de entorno dependerá de la configuración del perfil de cada uno de ellos.
67
Arquitectura y desarrollo de aplicaciones
Configuración de Mi dominio para el Núcleo de entorno
Configuración de Mi dominio para el Núcleo de entorno
Permisos de usuario necesarios
Para configurar un nombre de dominio:
“Personalizar aplicación”
Mi dominio debe ser totalmente funcional en su organización antes de poder habilitar el Núcleo de entorno. Efectúe estos
pasos para configurar e implementar Mi dominio.
1. Encuentre un nombre de dominio que esté disponible e inscríbase en él.
a.
b.
c.
d.
e.
En Configuración, haga clic en Gestión de dominios > Mi dominio (Domain Management > My Domain).
Ingrese el nombre del subdominio que desee utilizar dentro de la URL de muestra. Puede usar hasta 40 caracteres.
Haga clic en Comprobar disponibilidad. Si su nombre ya se ha utilizado, seleccione otro.
Haga clic en Condiciones para revisar su acuerdo y, a continuación, seleccione la casilla de verificación.
Haga clic en Registrar dominio (Register Domain).
Recibirá un email cuando su nombre de dominio esté listo para una prueba. Puede tardar entre 10 minutos y 24 horas.
2. Pruebe el nombre del dominio e impleméntelo en su organización completa.
a. En Configuración, haga clic en Gestión de dominios > Mi dominio y, a continuación, en Haga clic aquí para iniciar
sesión (Click here to login). O bien, haga clic en la URL en el email de confirmación para iniciar sesión en Salesforce
con el nombre de dominio nuevo.
b. Compruebe el nuevo nombre de dominio haciendo clic en las fichas y vínculos dentro de su aplicación. Se dará cuenta
de que todas las páginas muestran su nuevo nombre de dominio. Si ha personalizado la interfaz de usuario de Salesforce
con funciones como botones personalizados o páginas de Visualforce, asegúrese de comprobarlas correctamente antes
de implementa el nombre de dominio. Sus personalizaciones no deben utilizar URL basadas en instancias.
c. Para implementar el nuevo nombre de dominio en su organización, en Configuración, haga clic en Gestión de dominios
> Mi dominio y, a continuación, en Implementar para usuarios (Deploy to Users).
El dominio se activa de forma inmediata y se redireccionará a todos los usuarios a las páginas con las direcciones con el
dominio nuevo.
3. Establezca la política de inicio de sesión de dominio para los usuarios que acceden a sus páginas.
a. En Configuración, haga clic en Gestión de dominios > Mi dominio (Domain Management > My Domain).
b. En Configuración de Mi dominio, haga clic en Modificar.
c. Para desactivar la autenticación de los usuarios que no utilizan la página de inicio de sesión específica del dominio,
seleccione la política de inicio de sesión. Por ejemplo, esto impedirá que los usuarios inicien sesión en la página de inicio
de sesión https://<instancia>.salesforce.com/ y se les redireccionará a sus páginas. Esta opción es una
mejora para la seguridad, ya que impide que quien no conozca el nombre del dominio pueda intentar iniciar sesión.
d. Elija una política de redireccionamiento basada en el nivel de seguridad deseado. Tiene tres opciones que le permiten
incrementar la seguridad:
•
•
•
Redireccionar a los usuarios a la misma página dentro del dominio
Redireccionar a los usuarios con una advertencia
Impedir el redireccionamiento, de modo que los usuarios tengan que ingresar el nombre de dominio nuevo
4. Opcionalmente, puede personalizar la página de inicio de sesión y agregar o cambiar los proveedores de identidad disponibles
en la página de inicio de sesión. Para obtener más información, consulte la ayuda online de Salesforce.
68
Arquitectura y desarrollo de aplicaciones
Mejores prácticas del Núcleo de entorno
Mejores prácticas del Núcleo de entorno
Las directrices siguientes pueden ayudarle a utilizar el Núcleo de entorno con eficacia.
•
•
•
•
Elija como organización de Núcleo aquella organización con mayor número de empleados que inician sesión con regularidad.
Debería tener solo una organización de Núcleo.
Configure Mi dominio para cada organización miembro además de la organización de Núcleo.
Modifique los perfiles o los conjuntos de permisos para asignar a los usuarios acceso a determinadas funciones en el Núcleo
de entorno. La configuración clave se indica a continuación.
◊ La aplicación personalizada del Núcleo de entorno debe estar habilitada para que aparezca en el menú de aplicaciones
de Force.com.
◊ El permiso "Gestionar el Núcleo de entorno" es obligatorio para crear organizaciones nuevas o configurar el acceso de
inicio de sesión único. Se trata de una funcionalidad potente y debería asignarse únicamente a los usuarios administradores.
◊ El permiso "Conectar organizaciones al Núcleo de entorno” es obligatorio para agregar organizaciones miembros nuevas
al Núcleo.
◊ El acceso al proveedor de servicios debe estar habilitado para cada organización miembro a la que quiere permitir el
acceso de inicio de sesión único.
•
•
•
Para obtener más información de toda la configuración del perfil, consulte: Configuración del Núcleo de entorno.
Decida la estrategia que va a aplicar para habilitar el acceso mediante inicio de sesión único según los requisitos de seguridad
de la organización. Después, puede elegir la combinación de los tres métodos de SSO (asignación explícita, Id. de federación
o fórmula personalizada) que va a usar para sus necesidades específicas. Para obtener más información, consulte: Activación
del inicio de sesión único.
Debido a que cada organización miembro es un objeto estándar (del tipo EnvironmentHubMember), puede modificar su
comportamiento o acceder a ella de forma programada. Por ejemplo, puede crear campos personalizados, configurar reglas
de flujo de trabajo o definir asignaciones de usuarios y habilitar el inicio de sesión único mediante la API para cualquier
organización miembro.
El inicio de sesión único no funcionará para los usuarios recién agregados ni para las asignaciones de usuarios de SSO
definidas en una organización de sandbox. Debería agregar únicamente los usuarios, modificar la información de usuario
o definir las asignaciones de usuarios de SSO en la organización principal del sandbox.
Conexión de una organización al Núcleo de entorno
Permisos de usuario necesarios
Para conectar una organización al el Núcleo de entorno:
“Conectar organizaciones al Núcleo de entorno”
Para conectar una organización al Núcleo:
1. En la página principal del Núcleo de entorno, haga clic en Conectar organización.
2. Ingrese el nombre de usuario de administrador de la organización miembro, que no es otra que la organización que quiere
conectar al Núcleo.
3. Haga clic en Conectar organización.
4. En la ventana emergente, ingrese el nombre de usuario y la contraseña del administrador de la organización miembro.
5. Haga clic en Iniciar sesión en Salesforce (Log in to Salesforce).
6. Haga clic en Permitir en la siguiente ventana emergente.
La organización ya está conectada al Núcleo y aparece en la lista de organizaciones miembro en el Núcleo de entorno.
69
Arquitectura y desarrollo de aplicaciones
Consulta de los detalles de un miembro del Núcleo de entorno
Consulta de los detalles de un miembro del Núcleo de entorno
Haga clic en el nombre de cualquier organización en el Núcleo de entorno para ver detalles acerca de ella, como su nombre,
su descripción, su Id. de organización, sus organizaciones relacionadas y sus usuarios vinculados.
La página de detalles contiene las siguientes secciones.
•
•
•
•
Detalles del miembro del Núcleo
Organizaciones principales
Organizaciones secundarias
Asignaciones de usuarios de inicio de sesión único
Desde la página Detalles del miembro del Núcleo (Hub Member Detail), puede realizar lo siguiente:
•
•
•
•
•
Haga clic en Modificar para modificar la información acerca de esta organización.
Haga clic en Eliminar para eliminar esta organización del Núcleo de entorno.
Haga clic en Activar SSO para activar el inicio de sesión único para esta organización. Eso permite a los usuarios vinculados
iniciar sesión en esta organización desde el Núcleo de entorno sin proporcionar credenciales.
Haga clic en Iniciar sesión en organización (Log into Organization) para iniciar la sesión. Si ha habilitado SSO para esta
organización, la sesión estará iniciada sin que tenga que ingresar las credenciales.
Haga clic en Nueva asignación de usuario SSO (New SSO User Mapping) para vincular un nombre de usuario en la
organización miembro con un nombre de usuario en la organización de Núcleo para el acceso de inicio de sesión único.
Detalles del miembro del Núcleo
En esta sección se muestran los siguientes atributos (en orden alfabético).
Atributo
Descripción
Descripción
Una descripción breve de esta organización.
Edición
La edición de la organización, por ejemplo, DE o EE.
Origen
El método según el que se ha agregado esta organización al
Núcleo de entorno. Los posibles valores incluyen
Descubierto automáticamente (Auto Discovered) y
Usuario agregado (User Added).
Organización
El nombre de esta organización.
Id de la organización
El Id. de organización para esta organización.
Sandbox
Se trata de una organización de sandbox.
Proveedor de servicio
Un vínculo Detalles indica aquí que el servicio de asistencia
de salesforce.com ha activado la organización para el inicio de
sesión único en el Núcleo de entorno. Tendrá que habilitar el
acceso del proveedor de servicios para esta organización en
todos los perfiles que se utilizarán para el inicio de sesión único.
Estado
El estado de las licencias o de creación de esta organización.
Los valores posible son Prueba (Trial), Gratuita (Free),
Activa (Active), Suspendido (Suspended) y Eliminado
(Deleted).
70
Arquitectura y desarrollo de aplicaciones
Consulta de los detalles de un miembro del Núcleo de entorno
Atributo
Descripción
SSO
Si se ha activado el inicio de sesión único para esta
organización. Los posibles valores son:
• Activado (On): el inicio de sesión único está habilitado.
• Desactivado (Off): el inicio de sesión único está
deshabilitado.
• Pendiente (Pending): el inicio de sesión único está en
proceso de activación.
• Error (Failed): ha fallado la activación del inicio de sesión
único. Haga contacto con el servicio de atención al cliente
de salesforce.com para obtener ayuda.
Método 1 de SSO: Usuarios asignados
El número de asignaciones de usuarios de SSO definidas entre
esta organización y el Núcleo de entorno
Método 2 de SSO: Id. de federación
Si el inicio de sesión único se ha activado según el Id. de
federación coincidente.
Método 3 de SSO: Fórmula de nombre de usuario Inicio de sesión único activado mediante una fórmula
personalizada que establece la coincidencia de los nombres de
usuarios
Organizaciones principales y secundarias
Cuando conecta una organización al Núcleo de entorno, los siguientes tipos de organización se descubren y se conectan
automáticamente.
•
•
•
•
Para cualquier organización, todas las organizaciones de sandbox creadas desde ella.
Para una organización de versión, todas sus organizaciones de parche relacionadas.
Para una organización de gestión de Trialforce, todas las organizaciones de origen de Trialforce se crean a partir de ella.
Para una organización de gestión de licencias (LMO), que es una organización con la aplicación de gestión de licencias
(LMA) instalada, cualquier organización de versión (y por lo tanto todas sus organizaciones de parche asociadas) con un
paquete gestionado registrada en la LMO.
En estas secciones se muestra una lista de las organizaciones relacionadas con esta organización. Para cada organización en la
lista, aparece su nombre y su relación con esta organización.
Asignaciones de usuarios de inicio de sesión único
En esta sección se muestra una lista de usuarios asignados; esto es, usuarios en la organización de Núcleo que están asociados
con un usuario correspondiente en la organización miembro. Si el inicio de sesión único está activado para la organización
miembro, todos los usuarios asignados pueden iniciar sesión en ella desde el Núcleo de entorno sin proporcionar credenciales.
Desde esta sección, puede realizar lo siguiente:
•
•
Hacer clic en Nueva asignación de usuario SSO para definir una asignación de usuarios nueva.
Hacer clic en Eliminar junto a un usuario para deshabilitar su acceso de inicio de sesión único.
Las asignaciones de usuarios pueden ser de muchas a una, pero no de una a muchas. Esto significa que puede asociar varios
usuarios en la organización de Núcleo al mismo usuario en una organización miembro. Esto puede ser útil, por ejemplo, si
desea que un grupo de usuarios inicien sesión en una organización de prueba como si fuera el mismo usuario con el fin de que
puedan experimentar la misma configuración.
71
Arquitectura y desarrollo de aplicaciones
Modificación de los detalles de un miembro del Núcleo de
entorno
Nota:
•
•
Si se ha definido una asignación de usuarios y el usuario sigue sin poder utilizar el inicio de sesión único, compruebe
que el perfil del usuario tiene habilitados los permisos adecuados. Para obtener más información, consulte:
Configuración del Núcleo de entorno.
El inicio de sesión único no funcionará para los usuarios recién agregados ni para las asignaciones de usuarios de
SSO definidas en una organización de sandbox. Debería agregar únicamente los usuarios, modificar la información
de usuario o definir las asignaciones de usuarios de SSO en la organización principal del sandbox.
Modificación de los detalles de un miembro del Núcleo de entorno
Para modificar detalles de una organización miembro en el Núcleo de entorno:
1. Haga clic en Modificar junto al nombre de esa organización en la página principal del Núcleo de entorno o en su página
de detalles.
2. En la página que se muestre, modifique el nombre y la descripción de la organización. Resulta útil especificar un nombre
y una descripción significativos. Gracias a ellos puede reconocer con facilidad la organización en la lista de miembros en
el Núcleo de entorno.
3. De forma opcional, seleccione uno o varios métodos de inicio de sesión único (descritos a continuación).
4. Haga clic en Guardar.
Para establecer la coincidencia de los usuarios en las organizaciones miembro y de Núcleo para el inicio de sesión único, puede
utilizar cualquiera de los tres métodos siguientes:
Método de SSO
Descripción
Usuarios asignados
La coincidencia entre los usuarios de la organización de Núcleo y los de la
organización miembro se establece manualmente. Se trata del método
predeterminado si ha definido cualquier asignación de usuarios de SSO desde la
página de detalles de miembros. Para obtener más información, consulte: Definición
de una asignación de usuarios de SSO.
Id. de federación
La coincidencia de usuarios se establece entre los que tienen el mismo Id. de
federación en ambas organizaciones. Para activar este método, seleccione la casilla
de verificación junto a él.
Fórmula de nombre de usuario
Se define una fórmula personalizada para establecer la coincidencia entre los usuarios
en las organizaciones de Núcleo y miembro. Es la opción más flexible. Para habilitar
este método, ingrese una fórmula personalizada en el cuadro de texto proporcionado.
Por ejemplo, la siguiente fórmula establece la coincidencia de la primera parte del
nombre de usuario (la que se sitúa antes del signo “@”) con un nombre de dominio
explícito.
LEFT($User.Username, FIND("@", $User.Username)) &
("mydev.org")
Si especifica varios métodos de inicio de sesión único, cuando el usuario intente iniciar sesión se seguirá el orden de prioridad
indicado. El primer método que consiga una coincidencia es el que se usa para iniciar la sesión del usuario y ya no se continúa
con los demás métodos. Si no se puede identificar ningún usuario coincidente, se le redireccionará a la página de inicio de
sesión de salesforce.com estándar.
72
Arquitectura y desarrollo de aplicaciones
Creación de una organización nueva desde el Núcleo de entorno
Creación de una organización nueva desde el Núcleo de entorno
Permisos de usuario necesarios
Para establecer y configurar el Núcleo de entorno:
“Gestionar el Núcleo de entorno”
Para crear una organización nueva en el Núcleo de entorno, haga lo siguiente:
1. En el Núcleo de entorno, haga clic en Crear organización (Create Organization).
2. En el menú desplegable, elija el tipo de organización que va a crear. Las posibles opciones son las siguientes: Desarrollo
(Development), Prueba (Prueba) y Versión (Release).
3. En la página que aparezca, ingrese el nombre de la organización y Mi dominio, así como el nombre, el nombre de usuario
y la dirección de email del usuario administrador. Si va a crear una organización de prueba, deberá especificar también su
edición o un Id. de plantilla de Trialforce.
4. Haga clic en Crear.
Los distintos tipos de organizaciones usadas para el desarrollo son los siguientes:
•
•
•
Organización de desarrollo: una organización con Developer Edition (DE) estándar.
Organización de versión: una organización con DE usada para crear y cargar un paquete gestionado.
Organización de prueba: una organización de prueba creada con fines de pruebas y de demostración, parecida a la organización
que se crea desde www.salesforce.com/trial. Los socios pueden especificar una plantilla de Trialforce para crear organizaciones
de prueba. De este modo, pueden configurar y probar exactamente la experiencia que tendrán sus clientes potenciales con
la prueba.
Activación del inicio de sesión único en el Núcleo de entorno
Permisos de usuario necesarios
Para establecer y configurar el Núcleo de entorno:
“Gestionar el Núcleo de entorno”
Para activar el inicio de sesión único para una organización:
1. En la página principal del Núcleo de entorno, haga clic en el nombre de la organización.
2. Haga clic en Activar SSO en la página de detalles de la organización.
3. En la página que aparece, haga clic en Activar SSO.
Se le dirigirá a la página de detalles de la organización. Su estado de inicio de sesión único aparece en la parte superior de la
página y junto al campo SSO en la sección Detalles del miembro del Núcleo.
Para establecer la coincidencia de los usuarios en las organizaciones miembro y de Núcleo para el inicio de sesión único, puede
utilizar cualquiera de los tres métodos siguientes:
Método de SSO
Descripción
Usuarios asignados
La coincidencia entre los usuarios de la organización de Núcleo y los de la
organización miembro se establece manualmente. Se trata del método
predeterminado si ha definido cualquier asignación de usuarios de SSO desde la
página de detalles de miembros. Para obtener más información, consulte: Definición
de una asignación de usuarios de SSO.
73
Arquitectura y desarrollo de aplicaciones
Desactivación del inicio de sesión único en el Núcleo de entorno
Método de SSO
Descripción
Id. de federación
La coincidencia de usuarios se establece entre los que tienen el mismo Id. de
federación en ambas organizaciones. Para activar este método, seleccione la casilla
de verificación junto a él.
Fórmula de nombre de usuario
Se define una fórmula personalizada para establecer la coincidencia entre los usuarios
en las organizaciones de Núcleo y miembro. Es la opción más flexible. Para habilitar
este método, ingrese una fórmula personalizada en el cuadro de texto proporcionado.
Por ejemplo, la siguiente fórmula establece la coincidencia de la primera parte del
nombre de usuario (la que se sitúa antes del signo “@”) con un nombre de dominio
explícito.
LEFT($User.Username, FIND("@", $User.Username)) &
("mydev.org")
Si especifica varios métodos de inicio de sesión único, cuando el usuario intente iniciar sesión se seguirá el orden de prioridad
indicado. El primer método que consiga una coincidencia es el que se usa para iniciar la sesión del usuario y ya no se continúa
con los demás métodos. Si no se puede identificar ningún usuario coincidente, se le redireccionará a la página de inicio de
sesión de salesforce.com estándar.
Nota:
•
•
Si se ha definido una asignación de usuarios y el usuario sigue sin poder utilizar el inicio de sesión único, compruebe
que el perfil del usuario tiene habilitados los permisos adecuados. Para obtener más información, consulte:
Configuración del Núcleo de entorno.
El inicio de sesión único no funcionará para los usuarios recién agregados ni para las asignaciones de usuarios de
SSO definidas en una organización de sandbox. Debería agregar únicamente los usuarios, modificar la información
de usuario o definir las asignaciones de usuarios de SSO en la organización principal del sandbox.
Desactivación del inicio de sesión único en el Núcleo de entorno
Permisos de usuario necesarios
Para establecer y configurar el Núcleo de entorno:
“Gestionar el Núcleo de entorno”
Para deshabilitar el inicio de sesión único para una organización, haga lo siguiente:
1. En la página principal del Núcleo de entorno, haga clic en el nombre de la organización.
2. Haga clic en Desactivar SSO (Disable SSO) en la página de detalles de la organización.
3. En la página que aparece, haga clic en Desactivar SSO.
Se le dirigirá a la página de detalles de la organización. Su estado de inicio de sesión único aparece en la parte superior de la
página y junto al campo SSO en la sección Detalles del miembro del Núcleo.
Asignación de usuarios para inicio de sesión único en el Núcleo de entorno
Permisos de usuario necesarios
Para establecer y configurar el Núcleo de entorno:
“Gestionar el Núcleo de entorno”
74
Arquitectura y desarrollo de aplicaciones
Asignación de usuarios para inicio de sesión único en el Núcleo
de entorno
Puede definir una asignación entre un usuario en la organización de Núcleo y uno o varios usuarios en una organización
miembro. Si el inicio de sesión único está activado para la organización miembro, todos los usuarios asignados pueden iniciar
sesión en ella desde el Núcleo de entorno sin proporcionar credenciales.
Las asignaciones de usuarios pueden ser de muchas a una, pero no de una a muchas. Esto significa que puede asociar varios
usuarios en la organización de Núcleo al mismo usuario en una organización miembro. Esto puede ser útil, por ejemplo, si
desea que un grupo de usuarios inicien sesión en una organización de prueba como si fuera el mismo usuario con el fin de que
puedan experimentar la misma configuración.
Para definir una nueva asignación de usuarios de inicio de sesión único en Núcleo de entorno, haga lo siguiente:
1. En la página principal del Núcleo de entorno, haga clic en el nombre de la organización.
2. Haga clic en Nueva asignación de usuario SSO (New SSO User Mapping) en la página de detalles del miembro de Núcleo.
3. En la página que aparezca, ingrese el nombre de usuario de la organización miembro y especifique el usuario correspondiente
de la organización de Núcleo que utiliza el campo de búsqueda.
4. Haga clic en Guardar (o Guardar y nuevo para guardar y agregar un nuevo usuario asignado).
Nota:
•
•
Si se ha definido una asignación de usuarios y el usuario sigue sin poder utilizar el inicio de sesión único, compruebe
que el perfil del usuario tiene habilitados los permisos adecuados. Para obtener más información, consulte:
Configuración del Núcleo de entorno.
El inicio de sesión único no funcionará para los usuarios recién agregados ni para las asignaciones de usuarios de
SSO definidas en una organización de sandbox. Debería agregar únicamente los usuarios, modificar la información
de usuario o definir las asignaciones de usuarios de SSO en la organización principal del sandbox.
75
Capítulo 4
Empaquetado y pruebas de la aplicación
En este capítulo...
•
•
•
•
•
•
•
•
•
•
•
•
Registro de un prefijo de espacio de
nombres
¿Qué son las versiones beta de los
paquetes gestionados?
Creación y carga de un paquete en
versión beta
Acerca de los entornos de desarrollo
y prueba del socio
Cómo inscribirse en entornos de
prueba
Instalación de un paquete
Desinstalación de un paquete
Instalación de paquetes gestionados
mediante la API
Creación y carga de un paquete
gestionado
Acerca de las versiones de paquetes
Ejecución de Apex en la
actualización/instalación del paquete
Ejecución de Apex en la
desinstalación del paquete
Esta sección contiene información sobre el empaquetado de la aplicación y la
realización de pruebas en esta durante el desarrollo. El procedimiento general
es el siguiente:
1. Cree y cargue un paquete en versión beta.
2. Instale ese paquete en una organización para pruebas del socio (están
disponibles las ediciones Enterprise Edition, Professional Edition o Group
Edition). Estas se pueden solicitar a través del portal de socios.
3. Pruebe el paquete.
4. Solucione los problemas y realice cambios en su organización de desarrollo.
5. Repita estos pasos hasta que esté todo listo para editar un paquete gestionado.
Consulte también:
Creación y carga de un paquete en versión beta
Instalación de un paquete
76
Empaquetado y pruebas de la aplicación
Registro de un prefijo de espacio de nombres
Registro de un prefijo de espacio de nombres
En un contexto de paquetes, un prefijo de espacio de nombres es un identificador alfanumérico de entre uno y 15 caracteres
que distingue su paquete y su contenido de los paquetes de otros desarrolladores en AppExchange. Los prefijos de espacio de
nombres no distinguen entre minúsculas y mayúsculas. Por ejemplo, ABC y abc no se reconocen como elementos únicos. Su
prefijo de espacio de nombres debe ser totalmente único en todas las organizaciones de Salesforce. Mantiene su paquete
gestionado bajo su control exclusivo.
Salesforce antepone automáticamente su prefijo de espacio de nombres, seguido de dos guiones bajos (“__”), a todos los nombres
de componentes únicos de su organización de Salesforce. Un componente de paquete único es uno que requiere un nombre
que no pertenezca a otro componente en Salesforce, como objetos personalizados, campos personalizados, vínculos personalizados,
s-controls y reglas de validación. Por ejemplo, si su prefijo de espacio de nombres es abc y su paquete gestionado contiene un
objeto personalizado con el nombre de API, Expense__c, utilice el nombre de API abc__Expense__c para acceder a este objeto
utilizando la API. El prefijo de espacios de nombre aparece en todas las páginas de detalle del componente.
Su prefijo de nombre de espacios debe:
•
•
•
Empezar por una letra.
Contener entre 1 y 15 caracteres alfanuméricos.
No contener dos caracteres subrayados consecutivos.
Para registrar un prefijo de espacio de nombres:
1. Desde Configuración, haga clic en Crear > Paquetes.
2. Haga clic en Modificar.
Nota: Este botón no aparece si ya ha establecido su configuración de desarrollador.
3.
4.
5.
6.
7.
8.
Revise las selecciones necesarias para establecer la configuración de desarrollador y haga clic en Continuar.
Introduzca el prefijo de espacio de nombres que desee registrar.
Haga clic en Comprobar disponibilidad para determinar si ya se ha utilizado.
Repita el mismo paso si el prefijo de espacio de nombres que ha introducido no está disponible.
Haga clic en Revisar mis selecciones.
Haga clic en Guardar.
¿Qué son las versiones beta de los paquetes gestionados?
Un paquete en versión beta es una versión anticipada de un paquete gestionado que se carga en un estado Gestionado en versión
beta. La finalidad de los paquetes gestionados en versión beta es permitir al desarrollador la realización de pruebas de su
aplicación en distintas organizaciones de Salesforce y compartir la aplicación con un conjunto de usuarios de control para que
estos evalúen la aplicación y envíen sus comentarios.
Antes de instalar una versión beta de un paquete gestionado, consulte las notas siguientes:
•
•
•
Los paquetes beta se pueden instalar en organizaciones de sandbox o con Developer Edition o en organizaciones de prueba
proporcionadas únicamente a través del portal de socios de salesforce.com.
La organización del desarrollador puede modificar los componentes de un paquete en versión beta hasta que se cargue un
paquete gestionado y editado.
Las versiones beta no son versiones principales, de modo que el número de versión de paquete no cambia.
77
Empaquetado y pruebas de la aplicación
•
Creación y carga de un paquete en versión beta
Los paquetes beta no se pueden actualizar. Debido a que los desarrolladores aún pueden seguir modificando los componentes
de un paquete en versión beta, la versión gestionada y editada podría no ser compatible con el paquete en versión beta
instalado. Desinstale el paquete en versión beta e instale uno nuevo, también en la versión beta, o la versión editada. Para
obtener más información, consulte Desinstalación de un paquete en la página 84 y Instalación de un paquete en la página
79.
Creación y carga de un paquete en versión beta
Utilice el procedimiento siguiente para crear y cargar un paquete en versión beta.
1. Cree un paquete:
a.
b.
c.
d.
e.
f.
g.
h.
i.
Desde Configuración, haga clic en Crear > Paquetes.
Haga clic en Nuevo.
Ingrese un nombre para el paquete.
Desde el menú desplegable, seleccione el idioma predeterminado de todas las etiquetas de componentes en el paquete.
También puede elegir un vínculo personalizado del campo Configurar vínculo personalizado (Configure
Custom Link) para mostrar información de configuración a los instaladores. El vínculo personalizado se muestra como
un vínculo Configurar (Configure) en Salesforce en la página Paquetes instalados (Installed Packages) y en la página
de detalles de la aplicación de la organización del suscriptor.
En el campo Destinatario de la notificación de excepción de Apex (Apex Exception Notification
Recipient), ingrese el nombre de usuario de la persona que va a recibir la notificación de email si se produce una excepción
en una secuencia de comandos de Apex que no ha captado la secuencia de comandos.
Ingrese una descripción del paquete.
En la derecha de la pantalla, seleccione la casilla de verificación Gestionado (Managed).
Haga clic en Guardar.
2. De forma opcional, puede cambiar los privilegios de acceso a API. De forma predeterminada, el acceso a API se establece
en No restringido (Unrestricted) pero puede cambiarlo para restringir el acceso a API de los componentes del paquete.
3. Agregue los componentes:
a.
b.
c.
d.
e.
Haga clic en Agregar componentes (Add Components).
En la lista desplegable, seleccione el tipo de componente.
Seleccione los componentes que desea agregar.
Haga clic en Agregar a paquete.
Repita estos pasos hasta que haya agregado todos los componentes que desee al paquete.
Nota: Algunos componentes relacionados se incluyen automáticamente en el paquete incluso cuando no puedan
mostrarse en la lista Componentes del paquete. Por ejemplo, al agregar un objeto personalizado a un paquete, sus
campos personalizados, formatos de página y relaciones con objetos estándar se incluyen de forma automática.
4. De forma opcional, haga clic en Mostrar dependencias (Show Dependencies) y revise una lista de componentes que se
basan en otros componentes, permisos o preferencias dentro del paquete. Para obtener más información sobre las
dependencias, consulte Concepto de dependencias en la página 49. Haga clic en Listo para volver a la página de detalles
del paquete.
5. Haga clic en Cargar.
6. En la página de carga de paquete, realice lo siguiente:
a. Ingrese un nombre de versión, por ejemplo Spring 11 — Beta.
b. Ingrese un número de versión, por ejemplo 1.0. Todos los paquetes beta utilizan el mismo número de versión
hasta que se carga un paquete gestionado y editado.
78
Empaquetado y pruebas de la aplicación
Acerca de los entornos de desarrollo y prueba del socio
c. Seleccione el tipo de versión Gestionado en versión beta.
Nota: Los paquetes en versión beta solo pueden instalarse en organizaciones con Developer Edition o Sandbox,
o en organizaciones de prueba solicitadas a través del portal de socios de salesforce.com y, por lo tanto, no
pueden pasarse a organizaciones de clientes.
d. De forma opcional, introduzca y confirme una contraseña para compartir el paquete de forma privada con cualquiera
que tenga contraseña. No introduzca una contraseña si desea que el paquete esté disponible para cualquiera en
AppExchange y compartir el paquete públicamente.
e. Salesforce selecciona automáticamente los requisitos que encuentra. Además, seleccione cualquier otro componente
obligatorio de las secciones Requisitos del paquete y Requisitos del objeto para notificar a los instaladores
de los requisitos de este paquete.
f. Haga clic en Cargar.
Cuando haya cargado el paquete correctamente, recibirá un email con un vínculo de instalación.
Nota: Si efectuó la carga desde su organización de producción de Salesforce, notifique a los instaladores que desean
instalarla en una organización de Sandbox para que sustituyan la parte "login.salesforce.com" del vínculo de instalación
por “test.salesforce.com”.
Acerca de los entornos de desarrollo y prueba del socio
Como socio proveedor de software independiente (ISV) de Force.com, puede utilizar varios entornos para desarrollar y probar
su aplicación de Force.com, así como para crear demostraciones de esta. En general, le interesará probar la aplicación en todas
las ediciones con las que quiera que sea compatible.
Cómo inscribirse en entornos de prueba
Para inscribirse en entornos de prueba (organizaciones), use el portal de socios.
1. Inicie sesión en el portal de socios.
2. En el portal de socios, en la sección Vínculos rápidos, haga clic en Crear una organización de prueba (Create a Test Org).
3. En el cuadro desplegable Edition, elija la edición para la que va a hacer las pruebas. Para ver las características de las distintas
ediciones, consulte Acerca de los entornos de desarrollo y prueba del socio en la página 79.
4. Seleccione la casilla de verificación para aceptar los términos y haga clic en Enviar.
5. Recibirá un email en el que se le pedirá que inicie sesión y cambie su contraseña. Haga clic en el vínculo, cambie la contraseña
y cree una pregunta y repuesta para la contraseña.
Instalación de un paquete
Utilice el procedimiento siguiente para encontrar la aplicación. Si ha recibido un vínculo al paquete, haga clic en el vínculo y
omita este paso:
1.
2.
3.
4.
Haga clic en el vínculo de AppExchange de su organización o vaya directamente a www.appexchange.com.
Examine el sitio Web de AppExchange en busca de la aplicación que desee instalar.
Haga clic en Descargar ahora en la página de información de la aplicación.
Haga clic en Siguiente.
79
Empaquetado y pruebas de la aplicación
Instalación de un paquete
Nota: Solo una persona de su organización puede instalar o cargar un paquete a la vez.
Para instalar el paquete, haga lo siguiente:
1. Introduzca su nombre de usuario y contraseña, lea las condiciones de uso, seleccione la casilla de verificación y haga clic
en Continuar.
Nota: Si está realizando la instalación en un Sandbox, sustituya la parte “www.salesforce.com” del vínculo de
instalación por “test.salesforce.com”. Tenga en cuenta que este paquete se eliminará de su organización de Sandbox
cuando cree una copia de Sandbox.
2. Si el paquete está protegido por contraseña, introduzca la contraseña que recibió del editor.
3. Seleccione una opción de seguridad y haga clic en Siguiente.
Conceder acceso a administradores únicamente
Especifica los siguientes ajustes en el perfil del administrador de instalación y en cualquier perfil con el permiso
"Personalizar aplicación":
• Permisos de objeto: “Leer”, “Crear”, “Modificar”, “Eliminar”, “Ver todo” y “Modificar todo” están activados
• Seguridad a nivel de campo: establecida como visible y modificable para todos los campos
• Clases de Apex: activadas
• Páginas de Visualforce: activadas
• Configuración de aplicaciones: activada
• Configuración de fichas: determinada por el creador del paquete
• Configuración del formato de página: determinada por el creador del paquete
• Configuración de tipo de registro: determinada por el creador del paquete
Tras la instalación, si tiene Enterprise Edition, Unlimited Edition, Performance Edition o Developer Edition, puede
proporcionar a los perfiles personalizados los permisos de usuario y objeto adecuados que necesite.
Otorgar acceso a todos los usuarios
Especifica los siguientes ajustes en todos los perfiles personalizados internos:
• Permisos de objeto: “Leer”, “Crear”, “Modificar”, “Eliminar”, “Ver todo” y “Modificar todo” están activados
• Seguridad a nivel de campo: establecida como visible y modificable para todos los campos
• Clases de Apex: activadas
• Páginas de Visualforce: activadas
• Configuración de aplicaciones: activada
• Configuración de fichas: determinada por el creador del paquete
• Configuración del formato de página: determinada por el creador del paquete
• Configuración de tipo de registro: determinada por el creador del paquete
Nota: Los perfiles Usuario del portal de clientes, Gestor del portal de clientes, Portal de clientes de gran
volumen, Sitio Web autenticado, Usuario de socios y estándar no reciben ningún tipo de acceso.
Seleccionar ajustes de seguridad
Permite seleccionar el acceso de uso a todos los perfiles personalizados existentes de su organización. Puede configurar
cada perfil para que tenga un acceso completo o ningún tipo de acceso al nuevo paquete y todos sus componentes.
80
Empaquetado y pruebas de la aplicación
Disponibilidad de componentes tras la implementación
Nota:
•
•
Dependiendo del tipo que instale, es posible que no vea este paso. Por ejemplo, en Group Edition y Professional
Edition o si el paquete no contiene un objeto personalizado, Salesforce omite este paso y el siguiente,
proporcionando acceso completo a todos los usuarios.
Las opciones de seguridad no incluyen conjuntos de permisos. Si su paquete incluye conjuntos de permisos,
asígnelos tras la instalación.
4. Seleccione el nivel de acceso que va a conceder a los usuarios en cada perfil y haga clic en Siguiente.
•
Acceso completo: especifica los siguientes ajustes para cada perfil:
◊
◊
◊
◊
◊
◊
◊
◊
•
Permisos de objeto: “Leer”, “Crear”, “Modificar”, “Eliminar”, “Ver todo” y “Modificar todo” están activados
Seguridad a nivel de campo: establecida como visible y modificable para todos los campos
Clases de Apex: activadas
Páginas de Visualforce: activadas
Configuración de aplicaciones: activada
Configuración de fichas: determinada por el creador del paquete
Configuración del formato de página: determinada por el creador del paquete
Configuración de tipo de registro: determinada por el creador del paquete
Sin acceso: especifica los mismos ajustes que Acceso completo, excepto que todos los permisos de objeto están desactivados.
Es posible que vea otras opciones si el editor ha incluido ajustes para los perfiles personalizados. Puede incorporar los ajustes
de los perfiles personalizados del editor en sus propios perfiles sin que esto afecte a sus ajustes existentes. Seleccione el
nombre de la configuración de los perfiles en la lista desplegable que se encuentra junto al perfil al que desea que se apliquen.
La configuración actual de ese perfil se mantendrá intacta.
5. Haga clic en Instalar. Si se producen errores en la instalación, consulte la sección Solución de errores en la instalación en
la página 83.
6. Antes de implementar el paquete para sus usuarios, realice las modificaciones necesarias para su implementación.
Dependiendo del contenido del paquete, es posible que necesite personalizar algunos elementos. Para obtener más
información, consulte Configuración de paquetes instalados en la página 81.
7. Haga clic en Aceptar.
8. Haga clic en Gestionar licencias (Manage Licenses) para asignar licencias a los usuarios.
Disponibilidad de componentes tras la implementación
Muchos componentes tienen un atributo Está implementado (Is Deployed) que controla si están disponibles para los usuarios
finales. Después de la instalación, todos los componentes estarán disponibles de forma inmediata si lo estaban en la organización
del desarrollador.
Para conocer sugerencias que le ayuden a personalizar el paquete instalado y los componentes, consulte el apartado “Configuración
de paquetes instalados” en la Ayuda de Salesforce. Los paquetes instalados están disponibles para los usuarios en su organización
que tengan los permisos y la configuración de formato de página adecuados.
Configuración de paquetes instalados
Antes de implementar el paquete en sus usuarios, realice las modificaciones necesarias para su implementación. Dependiendo
del contenido del paquete, es posible que necesite personalizar los siguientes elementos:
81
Empaquetado y pruebas de la aplicación
Configuración de paquetes instalados
Opción Configurar
Si el publicador ha incluido un vínculo a un sitio Web externo con información acerca de la configuración, la página de
descargas de AppExchange muestra la opción Configurar junto al paquete en Configuración al hacer clic en Paquetes
instalados. Haga clic en Configurar para ver las configuraciones sugeridas por el editor.
Campos personalizados y vínculos personalizados
Agregue cualquier campo o vínculo personalizado que sea necesario a los objetos personalizados nuevos.
Objeto personalizado
Active el seguimiento en los objetos que no están en este paquete, pero que tienen campos seguidos en Chatter. Por
ejemplo, si desea hacer un seguimiento a un campo personalizado en Cuenta, debe asegurarse de que el objeto personalizado
Cuenta está activado para su seguimiento.
Tipos de reportes personalizados
Si el Nombre de tipo de reporte de un tipo de reporte personalizado coincide con el utilizado en la organización,
cambie el Nombre de tipo de reporte después de instalar el paquete para evitar cualquier confusión entre los dos
tipos de reportes.
Usuario que ejecuta en los tableros
La opción Usuario que interviene de los tableros está definida para el usuario que instala el paquete. Puede
modificar las propiedades del tablero y cambie el valor Usuario que interviene a un usuario que cuente con la
configuración de seguridad que desea aplicar al tablero.
Carpetas
Cuando las aplicaciones contienen documentos, plantillas de email, reportes o tableros, Salesforce crea carpetas nuevas
en la organización del instalador que utiliza los nombres de carpetas del editor. Asegúrese de que estos nombres de
carpetas sean exclusivos en su organización.
Todos los usuarios pueden ver nuevas carpetas. Si desea que la visibilidad sea limitada, configure las opciones de las
carpetas antes de implementar la aplicación para los usuarios.
Formatos de página de inicio
Los formatos de página de inicio personalizados que se incluyen en el paquete no se asignan a ningún usuario. Para
ponerlos a disposición de sus usuarios, asígnelos a los perfiles apropiados.
Vistas de lista
Todos los usuarios pueden consultar las vistas de listas de las aplicaciones. Si es necesario, cambie la visibilidad de estas
vistas de listas.
Formatos de página
El formato de página predeterminado de los objetos personalizados incluidos en el paquete se asigna a todos los usuarios.
Los administradores de las organizaciones con Enterprise Edition, Unlimited Edition, Performance Edition y Developer
Edition pueden configurar el formato de página para los usuarios adecuados.
Si un objeto personalizado del paquete incluye relaciones con objetos estándar, agréguelos como listas relacionadas en
los formatos de página correspondientes.
Si el paquete incluye vínculos personalizados, agréguelos a los formatos de página adecuados.
Si su organización tiene la gestión avanzada de divisa activada, los campos de resumen de divisa no son válidos si están
en cuentas y resumen valores de oportunidades o en oportunidades que resumen valores de objetos personalizados.
Elimine estos campos de cualquier formato de página.
82
Empaquetado y pruebas de la aplicación
Solución de errores en la instalación
Conjuntos de permisos
Asigne los conjuntos de permisos incluidos en un paquete a los usuarios que necesiten acceder al paquete.
No puede modificar los conjuntos de permisos que están incluidos en un paquete gestionado. Si duplica un conjunto de
permisos incluido con el paquete o crea uno propio, podrá realizar cambios en el conjunto de permisos, pero las
actualizaciones posteriores no le afectarán.
Sistema de traducción
Los valores traducidos para los componentes de paquetes instalados también están instalados para cualquier idioma que
el desarrollador incluya. Cualquier componente de paquete que el desarrollador haya personalizado en la configuración,
como un campo personalizado o tipo de registro, se muestra en las páginas de configuración del instalador en el idioma
del desarrollador (el idioma utilizado para definir estos componentes). Los usuarios de la organización del instalador
visualizan automáticamente los valores traducidos si su idioma personal se incluye en el paquete. Adicionalmente, los
instaladores pueden activar idiomas adicionales siempre que esté activado el sistema de traducción.
Alertas de flujo de trabajo
Si el destinatario de una alerta del flujo de trabajo es un usuario, Salesforce sustituye ese usuario por el usuario que instala
el paquete. Puede cambiar los destinatarios de cualquier alerta del flujo de trabajo instalada.
Actualizaciones de campo de flujo de trabajo
Si la actualización de un campo se designa para cambiar un campo de propietario del registro a un usuario específico,
Salesforce sustituye ese usuario por el usuario que instala el paquete. Puede cambiar el valor de campo de cualquier
actualización de campo instalada.
Mensajes salientes de flujo de trabajo
Salesforce sustituye el usuario en el campo Usuario que debe enviarse como de un mensaje saliente por el usuario
que instala el paquete. Puede cambiar este valor después de realizar la instalación.
Reglas de flujo de trabajo
Las reglas de flujo de trabajo se instalan sin desencadenadores basados en el tiempo que puede haber creado el desarrollador.
Configure los desencadenadores basados en el tiempo que sean necesarios.
Tareas de flujo de trabajo
Salesforce sustituye el usuario en el campo Asignado a de un mensaje saliente por el usuario que instala el paquete.
Puede cambiar este valor después de realizar la instalación.
Solución de errores en la instalación
Una instalación puede fallar por diversos motivos:
•
•
•
•
•
•
•
El paquete incluye objetos personalizados que harán que la organización sobrepase su límite de objetos personalizados.
El paquete incluye fichas personalizadas que harán que la organización sobrepase su límite de fichas personalizadas.
El desarrollador del paquete ha cargado una versión más reciente del paquete y ha desaprobado la versión asociada con esta
URL de instalación. Haga contacto con el editor del paquete para obtener la URL de instalación más reciente.
Está intentando instalar una extensión en un paquete y no ha instalado el paquete base.
El paquete requiere que se activen ciertos componentes en su organización o ciertas funciones en su edición.
El paquete contiene código Apex, y no está autorizado a ejecutar Apex en su organización.
El paquete que está instalando tiene una prueba de Apex que falla.
Si es un desarrollador y falla la instalación debido a un fallo de prueba de Apex, compruebe lo siguiente:
83
Empaquetado y pruebas de la aplicación
•
•
Desinstalación de un paquete
Asegúrese de que organiza todos los datos necesarios para la prueba de Apex, en lugar de basarse en los datos del suscriptor
existentes.
Si un suscriptor crea una regla de validación, campo necesario o desencadenador en un objeto referenciado en su paquete,
su prueba podrá fallar si ejecuta DML en este objeto. Si este objeto se crea únicamente solo por motivos de prácticas y
nunca en el tiempo de ejecución y se produce un error en la creación debido a los conflictos, puede ignorarlo con seguridad
y continuar con la prueba. De lo contrario, haga contacto con el cliente y determine la repercusión.
Desinstalación de un paquete
Durante el ciclo de desarrollo y pruebas, es posible que necesite periódicamente desinstalar paquetes antes de instalar la siguiente
versión beta.
Para eliminar un paquete:
1.
2.
3.
4.
En Configuración, haga clic en Paquetes instalados.
Haga clic en Desinstalar junto al paquete que desea modificar.
Active Sí, deseo desinstalar... y haga clic en Desinstalar.
Después de la desinstalación, Salesforce crea automáticamente un archivo de exportación con los datos del paquete y las
notas y archivos adjuntos relacionados. Cuando la desinstalación se ha completado, Salesforce envía un email con un vínculo
al archivo de exportación al usuario que realice la desinstalación. El archivo de exportación y las notas y archivos adjuntos
relacionados se enumeran en la lista de paquetes instalados. Es recomendable guardar el archivo en otra ubicación ya que
solo está disponible durante un período limitado tras finalizar la desinstalación.
Sugerencia: Si vuelve a instalar el paquete posteriormente y desea volver a importar los paquetes posteriormente
y volver a importar los datos del paquete, consulte “Importación de datos del paquete” en la Ayuda de Salesforce.
Cuando desinstale paquetes, tenga en cuenta lo siguiente:
•
•
Si desinstala un paquete que incluye un objeto personalizado, también se eliminarán todos los componentes de dicho objeto
personalizado. Esto incluye los campos personalizados, reglas de validación, S-Control y botones y vínculos personalizados,
así como las reglas de flujo de trabajo y procesos de aprobación.
No puede desinstalar un paquete si un componente, que no se incluya en la desinstalación, hace referencia a cualquier
componente. Por ejemplo:
◊ Si un paquete instalado incluye cualquier componente en un objeto estándar al que otro componente hace referencia,
Salesforce le impedirá desinstalar el paquete. Significa que puede instalar un paquete que incluya un campo de usuario
personalizado y crear una regla de flujo de trabajo que se active cuando el valor de dicho campo sea un valor específico.
Si desinstala el paquete impedirá el funcionamiento del flujo de trabajo.
◊ Si ha instalado dos paquetes no relacionados que incluyen cada uno un objeto personalizado, y un componente de dicho
objeto haga referencia a un componente del otro, Salesforce impedirá desinstalar el paquete. Significa que puede instalar,
por ejemplo, una aplicación de reportes de gastos que incluya un campo de usuario personalizado y crear una regla de
validación en otro objeto personalizado instalado que haga referencia a dicho campo de usuario personalizado. Sin
embargo, la desinstalación de la aplicación de reportes de gastos impedirá el funcionamiento de la regla de validación.
◊ Si una carpeta instalada contiene componentes que ha agregado tras la instalación, Salesforce impedirá que desinstale
el paquete.
◊ Si un membrete instalado se utiliza para una plantilla de email que ha agregado tras la instalación, Salesforce impedirá
que desinstale el paquete.
•
Desinstale los archivos de exportación que contienen datos de aplicación personalizados para su paquete excluyendo algunos
componentes como documentos y valores de campos de fórmula.
84
Empaquetado y pruebas de la aplicación
Instalación de paquetes gestionados mediante la API
Instalación de paquetes gestionados mediante la API
Puede instalar, actualizar y desinstalar los paquetes gestionados mediante la API en lugar de usar la interfaz de usuario. La
automatización de estas tareas repetitivas puede ayudarle a que su trabajo sea más eficiente y el desarrollo de aplicaciones más
rápido.
Para instalar, actualizar o desinstalar un paquete, utilice la llamada de API de metadatos estándar deploy() con el tipo de
metadatos InstalledPackage. Las operaciones siguientes son compatibles:
•
•
•
La implementación de un InstalledPackage instala el paquete en la organización de implementación.
La implementación de una versión más nueva de un paquete ya instalado actualiza el paquete.
La implementación de un InstalledPackage mediante un manifiesto denominado destructiveChanges.xml, en
lugar de package.xml, lo desinstala de la organización.
Nota: No puede implementar un paquete junto con otros tipos de metadatos. Por tanto, InstalledPackage debe
ser el único tipo de metadatos especificado en el archivo de manifiesto.
Se trata de un manifiesto de proyecto habitual (package.xml) para instalar un paquete. El manifiesto no debe contener un
elemento fullName ni namespacePrefix.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>InstalledPackage</name>
</types>
<version>28.0</version>
</Package>
El paquete se especifica en un archivo denominado MyNamespace.installedPackage, donde MyNamespace es el prefijo
del espacio de nombres del paquete. El archivo debe estar en un directorio denominado installedPackages y su contenido
debe tener este formato:
<?xml version="1.0" encoding="UTF-8"?>
<InstalledPackage xmlns="http://soap.sforce.com/2006/04/metadata">
<versionNumber>1.0</versionNumber>
<password>optional_password</password>
</InstalledPackage>
Para desinstalar un paquete, implemente este archivo de manifiesto destructiveChanges.xml además del archivo
package.xml.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>MyNamespace</members>
<name>InstalledPackage</name>
</types>
</Package>
La recuperación de un InstalledPackage mediante la llamada retrieve() crea una representación en XML del paquete
instalado en una organización. Si el paquete instalado tiene una contraseña, esta no se recupera. La implementación del archivo
recuperado en una organización diferente instala el paquete en esa organización.
Para obtener más información sobre los comandos deploy() y retrieve(), consulte la guía del desarrollador de la API de
metadatos.
85
Empaquetado y pruebas de la aplicación
Creación y carga de un paquete gestionado
Creación y carga de un paquete gestionado
Utilice el procedimiento siguiente para crear y cargar un paquete gestionado. En este procedimiento se supone que ya ha creado
un espacio de nombres y un paquete en versión beta. Si va a cargar un paquete en versión beta para realizar pruebas, consulte
Creación y carga de un paquete en versión beta en la página 78.
1. Cree un paquete:
a.
b.
c.
d.
e.
f.
g.
h.
i.
Desde Configuración, haga clic en Crear > Paquetes.
Haga clic en Nuevo.
Ingrese un nombre para el paquete.
Desde el menú desplegable, seleccione el idioma predeterminado de todas las etiquetas de componentes en el paquete.
También puede elegir un vínculo personalizado del campo Configurar vínculo personalizado (Configure
Custom Link) para mostrar información de configuración a los instaladores. El vínculo personalizado se muestra como
un vínculo Configurar (Configure) en Salesforce en la página Paquetes instalados (Installed Packages) y en la página
de detalles de la aplicación de la organización del suscriptor.
En el campo Destinatario de la notificación de excepción de Apex (Apex Exception Notification
Recipient), ingrese el nombre de usuario de la persona que va a recibir la notificación de email si se produce una excepción
en una secuencia de comandos de Apex que no ha captado la secuencia de comandos.
Ingrese una descripción del paquete.
En la derecha de la pantalla, seleccione la casilla de verificación Gestionado (Managed).
Haga clic en Guardar.
2. De forma opcional, puede cambiar los privilegios de acceso a API. De forma predeterminada, el acceso a API se establece
en No restringido (Unrestricted) pero puede cambiarlo para restringir el acceso a API de los componentes del paquete.
3. Agregue los componentes:
a.
b.
c.
d.
e.
Haga clic en Agregar componentes (Add Components).
En la lista desplegable, seleccione el tipo de componente.
Seleccione los componentes que desea agregar.
Haga clic en Agregar a paquete.
Repita estos pasos hasta que haya agregado todos los componentes que desee al paquete.
Nota: Algunos componentes relacionados se incluyen automáticamente en el paquete incluso cuando no puedan
mostrarse en la lista Componentes del paquete. Por ejemplo, al agregar un objeto personalizado a un paquete, sus
campos personalizados, formatos de página y relaciones con objetos estándar se incluyen de forma automática.
4. De forma opcional, haga clic en Mostrar dependencias (Show Dependencies) y revise una lista de componentes que se
basan en otros componentes, permisos o preferencias dentro del paquete. Para obtener más información sobre las
dependencias, consulte Concepto de dependencias en la página 49. Haga clic en Listo para volver a la página de detalles
del paquete.
5. Haga clic en Cargar.
6. En la página de carga de paquete, realice lo siguiente:
a. Ingrese un nombre de versión, por ejemplo Spring 12. El nombre de versión es el nombre que se utiliza en
marketing para una versión concreta de un paquete y permite crear un título más descriptivo de lo que es un número.
b. Ingrese un número de versión, por ejemplo 1.0. Para obtener más información sobre las versiones, consulte
Actualización de la aplicación en la página 187.
c. Seleccione un tipo de versión de gestionado y editado.
d. Cambie la Descripción si fuera necesario.
86
Empaquetado y pruebas de la aplicación
Acerca de las versiones de paquetes
e. De forma opcional, introduzca y confirme una contraseña para compartir el paquete de forma privada con cualquiera
que tenga contraseña. No introduzca una contraseña si desea que el paquete esté disponible para cualquiera en
AppExchange y compartir el paquete públicamente.
f. Salesforce selecciona automáticamente los requisitos que encuentra. Además, seleccione cualquier otro componente
obligatorio de las secciones Requisitos del paquete y Requisitos del objeto para notificar a los instaladores
de los requisitos de este paquete.
g. Haga clic en Cargar.
7. Una vez completada la carga, puede realizar lo siguiente:
•
•
Haga clic en Cambiar contraseña para cambiar la opción de contraseña.
Haga clic en Desaprobar para evitar nuevas instalaciones de este paquete y permitir que las instalaciones existentes
sigan funcionando.
Nota: No puede desaprobar la versión más reciente de un paquete gestionado.
Cuando desapruebe un paquete, recuerde quitarlo también de AppExchange. Consulte el apartado sobre "Eliminación
de aplicaciones de AppExchange" en la ayuda online de AppExchange.
•
Haga clic en Cancelar desaprobación para que una versión desaprobada vuelva a estar disponible para su instalación.
Cuando haya cargado el paquete correctamente, recibirá un email con un vínculo de instalación.
Nota: Si efectuó la carga desde su organización de producción de Salesforce, notifique a los instaladores que desean
instalarla en una organización de Sandbox para que sustituyan la parte "login.salesforce.com" del vínculo de instalación
por “test.salesforce.com”.
Acerca de las versiones de paquetes
Una versión de paquete es un número que identifica el conjunto de componentes cargados en un paquete. El número de versión
tiene el formato majorNumber.minorNumber.patchNumber (por ejemplo, 2.1.3). Los números mayor y menor aumentan
con cada versión posterior. El patchNumber se genera y se actualiza solo para una versión de parche. Los paquetes sin gestionar
no se pueden actualizar, de modo que cada versión de paquete es simplemente un conjunto de componentes que se distribuyen.
La versión de un paquete tiene más importancia en el caso de los paquetes gestionados. Los paquetes se comportan de modo
diferente según la versión. Los editores pueden utilizar las versiones de paquetes para hacer evolucionar los componentes de
sus paquetes gestionados cómodamente publicando versiones posteriores de paquetes sin que dicho paquete estropee las
integraciones de clientes existentes.
Los números de versión dependen del tipo de publicación de paquete, que identifica la forma en que se distribuyen los paquetes.
Hay de dos tipos:
Edición principal
La edición principal indica que un paquete es Gestionado y editado. En estas ediciones, los números principales y
secundarios de una versión de paquete aumentan hasta el valor seleccionado.
Versión de parche
La versión del parche solo es válida en caso de que haya distintos parches de un paquete. Cada versión de parche tiene
un número mayor a la del anterior.
Cuando un suscriptor existente instala una versión de paquete nueva, sigue habiendo solo una instancia de cada componente
en el paquete aunque los componentes pueden emular versiones anteriores. Por ejemplo, un suscriptor puede utilizar un paquete
87
Empaquetado y pruebas de la aplicación
Ejecución de Apex en la actualización/instalación del paquete
gestionado que contiene una clase de Apex. Si el editor decide desaprobar un método en la clase de Apex y publicar una versión
de paquete nueva, el suscriptor seguirá viendo solo una instancia de la clase de Apex después de instalar la versión nueva. Sin
embargo, esta clase de Apex puede seguir emulando la versión anterior de cualquier código que haga referencia al método
desaprobado en la versión anterior.
Los desarrolladores de paquetes pueden utilizar una lógica condicional en desencadenadores y clases de Apex que muestren
diferentes comportamientos para diferentes versiones. De esta forma, el desarrollador del paquete puede continuar manteniendo
el comportamiento existente en clases y desarrolladores en versiones anteriores del paquete mientras continúa creando el código.
Cuando se desarrollan aplicaciones cliente con la API, puede especificar la versión de cada paquete que utilice en las integraciones.
Ejecución de Apex en la actualización/instalación del paquete
Los desarrolladores de aplicaciones pueden especificar una secuencia de comandos de Apex para ejecutar automáticamente
después de que un suscriptor instale y actualice un paquete gestionado. Eso permite personalizar la instalación o la actualización
del paquete, basándose en detalles de la organización del suscriptor. Por ejemplo, puede utilizar la secuencia de comandos para
completar la configuración personalizada, crear datos de muestra, enviar un email al instalador, notificar un sistema externo o
poner en marcha un trabajo para llenar un nuevo campo en un gran conjunto de datos. Para simplificar, solo puede especificar
una secuencia de comandos posterior a la instalación. Debe ser una clase Apex miembro del paquete.
La secuencia de comandos posterior a la instalación se invoca después de ejecutar pruebas y está sujeta a límites reguladores
predeterminados. Se ejecuta como el usuario de un sistema especial que representa su paquete, por lo que todas las operaciones
realizadas por la secuencia de comandos aparecen como realizadas en su paquete. Puede acceder a este usuario utilizando
UserInfo. Solo verá este usuario en el tiempo de ejecución, no durante las pruebas de ejecución.
Si la secuencia de comandos falla, se cancelará la instalación/actualización. Cualquier error en la secuencia de comandos se
enviará por email al usuario específico en el campo Notificar error de Apex del paquete. Si no se especifica ningún usuario,
los detalles de instalación/actualización no estarán disponibles.
La secuencia de comandos posterior a la instalación cuenta con las siguientes propiedades adicionales.
•
•
•
Puede iniciar trabajos por lotes, programados y futuros.
No puede acceder a los Id. de sesión.
Solo puede realizar llamadas utilizando una operación sin sincronizar. La llamada se produce después de ejecutar la secuencia
de comandos y de que la instalación haya finalizado y se haya asignado.
Nota: No puede ejecutar una secuencia de comandos posterior a la instalación en una nueva organización de prueba
proporcionada utilizando Trialforce. La secuencia de comandos solo se ejecuta cuando un suscriptor instala su paquete
en una organización existente.
¿Cómo funciona una secuencia de comandos posterior a la instalación?
Una secuencia de comandos posterior a la instalación es una clase de Apex que implementa la interfaz InstallHandler.
Esta interfaz tiene un único método denominado onInstall que especifica las acciones que deben realizarse en una instalación.
global interface InstallHandler {
void onInstall(InstallContext context)
}
El método onInstall toma un objeto de contexto como su argumento, que proporciona la siguiente información.
•
•
El Id. de la organización en la que tiene lugar la instalación
El Id. del usuario que inició la instalación
88
Empaquetado y pruebas de la aplicación
•
•
•
¿Cómo funciona una secuencia de comandos posterior a la
instalación?
El número de versión del paquete instalado previamente (especificado mediante la clase Version). Siempre es un número
de tres partes como, por ejemplo, 1.2.0.
Si la instalación es una actualización.
Si la instalación es un envío.
El argumento de contexto es un objeto cuyo tipo es la interfaz InstallContext. El sistema implementa automáticamente
esta interfaz. La siguiente definición de la interfaz InstallContext muestra los métodos que puede activar en el argumento
de contexto.
global interface InstallContext {
ID organizationId();
ID installerId();
Boolean isUpgrade();
Boolean isPush();
Version previousVersion();
}
Métodos y clase de la versión
Puede utilizar los métodos de la clase System.Version para obtener la versión de un paquete gestionado y comparar versiones
de paquetes. Una versión de paquete es un número que identifica el conjunto de componentes cargados en un paquete. El
número de versión tiene el formato majorNumber.minorNumber.patchNumber (por ejemplo, 2.1.3). Los números mayor
y menor aumentan hasta el valor seleccionado con cada versión que no sea de parche. Los aumentos de los números mayor y
menor siempre utilizarán un número de parche de 0.
A continuación se incluyen métodos de instancia para la clase System.Version.
Método
Argumentos
Tipo de retorno
compareTo
System.Version versión Entero
Descripción
Compara la versión actual con la versión
especificada y devuelve uno de los valores
siguientes:
• Cero si la versión actual del paquete es
igual a la versión del paquete
especificado
• Un valor Entero superior a cero si la
versión actual del paquete es superior a
la versión del paquete especificado
• Un valor Entero inferior a cero si la
versión actual del paquete es inferior a
la versión del paquete especificado
Si se compara una versión de dos partes con
una versión de tres partes, se ignorará el
número de la ruta y la comparación se basará
únicamente en los números mayor y menor.
major
Entero
Devuelve la versión superior del paquete del
código de llamada.
minor
Entero
Devuelve la versión inferior del paquete del
código de llamada.
patch
Entero
Devuelve la versión de parche del paquete
del código de llamada o null si no hay
ninguna versión de parche.
89
Empaquetado y pruebas de la aplicación
Ejemplo de una secuencia de comandos posterior a la
instalación
La clase System contiene dos métodos que puede utilizar para especificar la lógica condicional, de modo que versiones distintas
del paquete muestren diferentes comportamientos.
•
•
System.requestVersion: Devuelve una versión de dos partes que contiene los números de versión mayor y menor de
un paquete. Con este método puede determinar la versión de una instancia instalada de su paquete desde la que el código
de llamada hace referencia a su paquete. Dependiendo de la versión del código de llamada, puede personalizar el
comportamiento del código de su paquete.
System.runAs(System.Version): Cambia la versión actual del paquete a la versión del paquete especificada en el
argumento.
Cuando un suscriptor ha instalado varias versiones de su paquete y escribe un código que hace referencia a las clases o
desencadenadores de Apex de su paquete, debe seleccionar la versión a la que está haciendo referencia. Puede ejecutar distintas
rutas de código en el código Apex de su paquete en función de la configuración de la versión del código Apex de llamada que
realiza la referencia. Puede determinar la configuración de la versión del paquete del código de llamada activando el método
System.requestVersion en el código del paquete.
Ejemplo de una secuencia de comandos posterior a la instalación
La siguiente secuencia de comandos posterior a la instalación de muestra realiza estas acciones al instalar/actualizar un paquete.
•
Si la versión anterior es nula, es decir, el paquete se está instalando por primera vez, la secuencia de comandos:
◊ Crea una nueva cuenta denominada “Newco” y verifica que se ha creado.
◊ Crea una nueva instancia de la encuesta del objeto personalizado denominada “Client Satisfaction Survey”.
◊ Envía un mensaje de email al suscriptor confirmando la instalación del paquete.
•
•
•
Si la versión anterior es 1.0, la secuencia de comandos crea una nueva instancia de la encuesta denominada “Upgrading
from Version 1.0”.
Si el paquete es una actualización, la secuencia de comandos crea una nueva instancia de la encuesta denominada “Sample
Survey during Upgrade”.
Si la actualización se está enviando, la secuencia de comandos crea una nueva instancia de la encuesta denominada “Sample
Survey during Push”.
global class PostInstallClass implements InstallHandler {
global void onInstall(InstallContext context) {
if(context.previousVersion() == null) {
Account a = new Account(name='Newco');
insert(a);
Survey__c obj = new Survey__c(name='Client Satisfaction Survey');
insert obj;
User u = [Select Id, Email from User where Id =:context.installerID()];
String toAddress= u.Email;
String[] toAddresses = new String[]{toAddress};
Messaging.SingleEmailMessage mail =
new Messaging.SingleEmailMessage();
mail.setToAddresses(toAddresses);
mail.setReplyTo('[email protected]');
mail.setSenderDisplayName('My Package Support');
mail.setSubject('Package install successful');
mail.setPlainTextBody('Thanks for installing the package.');
Messaging.sendEmail(new Messaging.Email[] { mail });
}
else
if(context.previousVersion().compareTo(new Version(1,0)) == 0) {
Survey__c obj = new Survey__c(name='Upgrading from Version 1.0');
insert(obj);
}
90
Empaquetado y pruebas de la aplicación
Especificación de una secuencia de comandos posterior a la
instalación
if(context.isUpgrade()) {
Survey__c obj = new Survey__c(name='Sample Survey during Upgrade');
insert obj;
}
if(context.isPush()) {
Survey__c obj = new Survey__c(name='Sample Survey during Push');
insert obj;
}
}
}
Puede comprobar una secuencia de comandos posterior a la instalación mediante el nuevo método testInstall de la clase
Test. Este método toma los siguientes argumentos.
•
•
•
Una clase que implementa la interfaz InstallHandler.
Un objeto Version que especifica el número de versión del paquete existente.
Un valor booleano opcional que es true si la instalación es un envío. El valor predeterminado es false.
Este ejemplo muestra cómo comprobar una secuencia de comandos posterior a la instalación implementada en la clase de Apex
PostInstallClass.
@isTest
static void testInstallScript() {
PostInstallClass postinstall = new PostInstallClass();
Test.testInstall(postinstall, null);
Test.testInstall(postinstall, new Version(1,0), true);
List<Account> a = [Select id, name from Account where name ='Newco'];
System.assertEquals(a.size(), 1, 'Account not found');
}
Especificación de una secuencia de comandos posterior a la instalación
Una vez haya creado y probado una secuencia de comandos posterior a la instalación, puede especificarlo en el campo de
búsqueda Secuencia de comandos posterior a la instalación en la página Detalles del paquete. En versiones de parche
posteriores, puede cambiar los contenidos de la secuencia de comandos pero no la clase de Apex.
La selección de clase también está disponible mediante la API de metadatos como Package.postInstallClass. Esto
está representado en package.xml como un elemento de <postInstallClass>foo</postInstallClass>.
Ejecución de Apex en la desinstalación del paquete
Los desarrolladores de aplicaciones pueden especificar una secuencia de comandos de Apex para ejecutar automáticamente
después de que un suscriptor desinstale un paquete gestionado. Eso permite realizar tareas de limpieza y notificación, basándose
en detalles de la organización del suscriptor. Para simplificar, solo puede especificar una secuencia de comandos de desinstalación.
Debe ser una clase Apex miembro del paquete.
La secuencia de comandos de desinstalación está sujeta a límites reguladores predeterminados. Se ejecuta como el usuario de
un sistema especial que representa su paquete, por lo que todas las operaciones realizadas por la secuencia de comandos
aparecerán como realizadas en su paquete. Puede acceder a este usuario utilizando UserInfo. Solo verá este usuario en el tiempo
de ejecución, no durante las pruebas de ejecución.
Si se produce un fallo en la secuencia de comandos, la desinstalación continúa pero no se comprometerá ninguno de los cambios
realizados por la secuencia de comandos. Cualquier error en la secuencia de comandos se enviará por email al usuario específico
en el campo Notificar error de Apex del paquete. Si no se especifica ningún usuario, los detalles de desinstalación no estarán
disponibles.
91
Empaquetado y pruebas de la aplicación
¿Cómo funciona una secuencia de comandos de desinstalación?
La secuencia de comandos de desinstalación tiene los siguientes límites. No puede utilizarlo para iniciar trabajos por lotes,
futuros y programados para acceder a los Id. de sesión o para realizar llamadas.
¿Cómo funciona una secuencia de comandos de desinstalación?
Una secuencia de comandos de desinstalación es una clase de Apex que implementa la interfaz UninstallHandler. Esta
interfaz tiene un único método denominado onUninstall que especifica las acciones que deben realizarse en una desinstalación.
global interface UninstallHandler {
void onUninstall(UninstallContext context)
}
El método onUninstall toma un objeto de contexto como su argumento, que proporciona la siguiente información.
El Id. de la organización en la que tiene lugar la desinstalación.
El Id. del usuario que inició la desinstalación.
•
•
El argumento de contexto es un objeto cuyo tipo es la interfaz UninstallContext. El sistema implementa automáticamente
esta interfaz. La siguiente definición de la interfaz UninstallContext muestra los métodos que puede activar en el argumento
de contexto.
global interface UninstallContext {
ID organizationId();
ID uninstallerId();
}
Ejemplo de una secuencia de comandos de desinstalación
El ejemplo de una secuencia de comandos de desinstalación siguiente realiza las siguientes acciones en la desinstalación del
paquete.
Inserta una entrada en la fuente que describe el usuario que ha ejecutado la desinstalación y la organización
Crea y envía un mensaje de email confirmando la desinstalación a ese usuario
•
•
global class UninstallClass implements UninstallHandler {
global void onUninstall(UninstallContext ctx) {
FeedItem feedPost = new FeedItem();
feedPost.parentId = ctx.uninstallerID();
feedPost.body = 'Thank you for using our application!';
insert feedPost;
User u = [Select Id, Email from User where Id =:ctx.uninstallerID()];
String toAddress= u.Email;
String[] toAddresses = new String[] {toAddress};
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(toAddresses);
mail.setReplyTo('[email protected]');
mail.setSenderDisplayName('My Package Support');
mail.setSubject('Package uninstall successful');
mail.setPlainTextBody('Thanks for uninstalling the package.');
Messaging.sendEmail(new Messaging.Email[] { mail });
}
}
Puede comprobar una secuencia de comandos de desinstalación mediante el método testInstall de la clase Test. Este
método toma como argumento una clase que implementa la interfaz UninstallHandler.
92
Empaquetado y pruebas de la aplicación
Especificación de una secuencia de comandos de desinstalación
Este ejemplo muestra cómo comprobar una secuencia de comandos de desinstalación implementada en la clase de Apex
UninstallClass.
@isTest
static void testUninstallScript() {
Id UninstallerId = UserInfo.getUserId();
List<FeedItem> feedPostsBefore =
[SELECT Id FROM FeedItem WHERE parentId=:UninstallerId AND CreatedDate=TODAY];
Test.testUninstall(new UninstallClass());
List<FeedItem> feedPostsAfter =
[SELECT Id FROM FeedItem WHERE parentId=:UninstallerId AND CreatedDate=TODAY];
System.assertEquals(feedPostsBefore.size() + 1, feedPostsAfter.size(),
'Post to uninstaller failed.');
}
Especificación de una secuencia de comandos de desinstalación
Una vez haya creado y probado una secuencia de comandos de desinstalación y haberla incluido como un miembro de su
paquete, puede especificarlo en el campo de búsqueda Secuencia de comandos de desinstalación en la página Detalles del
paquete. En versiones de parche posteriores, puede cambiar los contenidos de la secuencia de comandos pero no la clase de
Apex.
La selección de clase también está disponible mediante la API de metadatos como Package.uninstallClass. Esto está
representado en package.xml como un elemento de <uninstallClass>foo</uninstallClass>.
93
Capítulo 5
Superación de la revisión de seguridad
En este capítulo...
•
•
•
•
•
•
•
•
•
•
Acerca de la revisión de seguridad
Pasos en la revisión de seguridad
El cuestionario de la revisión de
seguridad
Creación de una organización de
publicación de AppExchange
Cambio de la organización de
publicación de AppExchange
Actualización de la versión del
paquete en la lista de AppExchange
Envío de una aplicación móvil al
proceso de revisión de seguridad
Envío de un paquete de extensión
para someterlo a la revisión de
seguridad
Recursos para la revisión de seguridad
Preguntas más frecuentes sobre la
revisión de seguridad
Salesforce.com revisa todas las aplicaciones nuevas para asegurarse de cumplen
con las normas de seguridad. Las aplicaciones deben cumplir o sobrepasar estos
requisitos para obtener la certificación. Las aplicaciones que ya están certificadas
también se someten a una revisión anual.
La seguridad de la información del cliente es fundamental para nuestro éxito
continuado mutuo. Es necesario hacer las cosas bien desde el principio para que
nuestros clientes puedan tener plena confianza en Force.com como la plataforma
que desean para sus aplicaciones corporativas principales.
Este capítulo contiene directrices y tareas específicas que le ayudarán a asegurarse
de que sus aplicaciones superan el proceso de revisión de seguridad de
AppExchange.
94
Superación de la revisión de seguridad
Acerca de la revisión de seguridad
Acerca de la revisión de seguridad
La revisión de seguridad es un proceso diseñado para evaluar la seguridad adoptada en las organizaciones de los socios. Además,
la finalidad de la revisión es garantizar que todas las aplicaciones publicadas en AppExchange cumplen las mejores prácticas
de la industria en relación con los estándares de seguridad. Para conocer la información más reciente sobre la revisión de
seguridad, visite http://wiki.developerforce.com/page/Security_Review.
La revisión de seguridad de AppExchange:
•
•
•
Da garantías a los clientes para que confíen en que las aplicaciones de terceros funcionan correctamente con sus aplicaciones
de Salesforce.
Ayuda a los socios a ofrecer aplicaciones que abarquen varios sistemas y que cumplan con las necesidades de los usuarios
de AppExchange.
Permite que salesforce.com facilite las relaciones abiertas entre los clientes, los desarrolladores de terceros y los proveedores
de aplicaciones, ya que proporciona un ecosistema seguro.
El ámbito de la revisión de seguridad depende del tipo de aplicación. En el proceso se realizarán las pruebas que se indican a
continuación para cada tipo de componente incluido en su aplicación.
Tipo de aplicación
Descripción
Ámbito de revisión
Force.com
Aplicaciones en las que los datos principales, •
la lógica y la interfaz de usuario se han
•
compilado por completo en la plataforma
Force.com. La aplicación puede invocar
•
servicios Web de terceros autorizados, como
Amazon, Google, Facebook, etc.
•
Análisis de código automático
Revisión de código manual y pruebas de
caja negra
Componentes del lado de cliente (Flash
y JavaScript)
Integraciones y servicios Web
Aplicaciones cliente y móviles
Aplicaciones que no se ejecutan dentro del
entorno de Salesforce. Estas aplicaciones
toman la plataforma Force.com como el
origen de los datos y utilizan el modelo de
desarrollo de cualquier herramienta y
plataforma para el que estén diseñados. Los
ejemplos clásicos de este tipo de aplicación
son las aplicaciones para iPhone y los
conectores de Microsoft Outlook.
•
•
•
Pruebas prácticas manuales
Integraciones y servicios Web
Revisión de la arquitectura y pruebas del
servidor Web
Aplicaciones Web
Las aplicaciones que se ejecutan en un entorno •
alojado de terceros y se integran con
Salesforce, aprovechando la API de servicios •
Web de Force.com. Los datos de aplicaciones,
la lógica y la interfaz de usuario se pueden
•
almacenar fuera de Force.com.
•
Pruebas automáticas y pruebas manuales
de caja negra
Componentes del lado de cliente (Flash
y JavaScript)
Integraciones y servicios Web
Revisión de la arquitectura y pruebas del
servidor Web
Pasos en la revisión de seguridad
Los pasos del proceso de revisión de seguridad son los siguientes:
95
Superación de la revisión de seguridad
Pasos en la revisión de seguridad
1. Prepárese para la revisión de seguridad.
•
•
•
•
•
•
•
•
•
Lea las directrices de seguridad descritas en este capítulo.
Revise los recursos gratuitos indicados en nuestro sitio de desarrollo en la Nube seguro.
Vea nuestro video de seminario Web sobre revisión de seguridad para conocer sugerencias sobre preparación.
Revise la lista de comprobación de requisitos.
Revise la lista de comprobación del proyecto OWASP Top 10.
Ejecute un análisis de código fuente de autoservicio gratuito con respecto al código desarrollado en la plataforma
Force.com:
Realice un examen de aplicación Web gratuito con respecto a su aplicación Web externa integrada con Force.com.
Realice pruebas manuales en su aplicación para asegurarse de que cumple con los requisitos de revisión fuera del alcance
de las herramientas. Para obtener más información, consulte: Guía de pruebas de OWASP
Solucione los problemas detectados en las pruebas.
En general, sea todo lo exhaustivo que pueda en las pruebas, ya que si la preparación no es la adecuada, la aprobación podría
retrasarse. Por ejemplo, durante la fase de desarrollo de la aplicación, debería ejecutar el analizador de código varias veces
para no tener que dedicar demasiado tiempo a solucionar problemas al final. Si tiene otras preguntas, puede hacer contacto
con el equipo de seguridad en horario de oficina a través del vínculo: http://security.force.com/security/contact/ohours.
2. Inicie la revisión de seguridad.
Nota: Antes de comenzar el proceso, la aplicación debe estar inscrita en el programa de socios incrustado de
ISVforce o Force.com. Si no es así, haga contacto con el AE del proveedor de software independiente o registre
un caso en el portal de socios.
a. Inicie sesión en AppExchange con las credenciales de su APO.
b. Haga clic en su nombre que aparece en la esquina superior derecha y, en el menú desplegable, seleccione Consola de
publicación (Publishing Console).
c. Haga clic en la ficha Oferta (Offering).
d. Seleccione una de estas dos opciones, según sea adecuado para su aplicación.
•
•
Su aplicación es un paquete (entero o una parte) (Your application is a package [entirely or in part])
Su aplicación no es un paquete y solo utiliza la API de Sales force (Your application is not a package and only
uses the Salesforce API)
e. Haga clic en Guardar.
f. Haga clic en Iniciar revisión (Start Review) para su aplicación. En el caso de aplicaciones existentes que deben someterse
a una revisión de seguridad posterior, registre un caso en el portal de socios.
g. Para cada aplicación, deberá completar una lista de comprobación de seguridad y un cuestionario. Proporcione al equipo
de revisión una cuenta de prueba totalmente configurada y otorgue acceso de inicie de sesión a su organización de
publicación.
h. Deberá proporcionar un entorno de prueba y documentación para su oferta. Además, deberá pagar la tasa anual de la
lista.
El equipo de revisión realizará pruebas para identificar las posibles vulnerabilidades del código y, si fuera necesario, se
pondrá en contacto con usted para hablar sobre el seguimiento. Puede consultar el estado de la revisión de seguridad en el
portal de socios. El equipo de revisión realizará pruebas de seguridad tanto en la aplicación como en la red y la proporcionará
los resultados que obtenga.
3. Revise los resultados. Hay tres resultados posibles.
•
Aprobado: tendrá permiso para incluir de inmediato su aplicación en la lista de AppExchange.Puede que se le proporcione
un token de API para acceder a las cuentas con Professional Edition. Para obtener más información sobre el programa
de socios, incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
96
Superación de la revisión de seguridad
•
•
El cuestionario de la revisión de seguridad
Aprobado provisionalmente: se han identificado problemas de riesgo bajo o medio que se pueden solucionar con
bastante facilidad y no suponen un riesgo significativo para salesforce.com ni para sus clientes. Tendrá permiso para
crear una lista público de su aplicación en AppExchange. Sin embargo, si no soluciona los problemas indicados en el
plazo especificado, se retirará la aplicación de AppExchange. Puede que se le proporcione un token de API para acceder
a las cuentas con Professional Edition.
No aprobado: se han identificado problemas de riesgo elevado durante la fase de pruebas. No podrá incluir su aplicación
en la lista en AppExchange hasta que se solucionen todos los problemas y el equipo de seguridad de AppExchange lo
haya comprobado. Si la aplicación ya se encuentra en la lista en AppExchange, tendrá 60 días para solucionar los
problemas. No recibirá un token de API para acceder a las cuentas con Professional Edition.
Pasos clave después de superar la revisión de seguridad
Una vez que ha superado la revisión de seguridad, se le considera apto para lo siguiente:
•
•
Incluir su aplicación en una lista pública en AppExchange
Solicitar un token de API
Nota: Salesforce.com se reserva el derecho de llevar a cabo pruebas aleatorias en las instalaciones o fuera de ellas en
las aplicaciones publicadas. Si, durante estas pruebas, observamos que la aplicación ya no cumple algunos de los
requisitos de mejores prácticas, se lo notificaremos y le daremos un plazo para que solucione el problema. En casos
de gravedad extrema, podríamos eliminar la lista de AppExchange del acceso público.
El cuestionario de la revisión de seguridad
Al iniciar la revisión de seguridad se ejecuta un cuestionario online en el que se le pide toda la información necesaria para
probar la aplicación. Reserve el tiempo suficiente para responder a todas las preguntas, ya que se trata de un cuestionario
detallado y exhaustivo. Durante el proceso, puede guardar las respuestas cuando quiera y retomar el cuestionario en otro
momento para completarlo.
Nota: Responda de la forma más detallada posible. Es mejor pecar por exceso de información que por defecto de
esta. Además, cuanta más información tengamos, más rápidas irán las pruebas de la aplicación y podremos aprobarla
antes.
El cuestionario consiste en una serie de pantallas que le guiarán por la información que necesitamos y que variarán en función
de los componentes que haya en su aplicación (es decir, Force.com, basada en Web, híbrida o móviles).
1. Preparación
Descripción general de los pasos del cuestionario y de los indicadores de información útil.
2. Información general
Su nombre y datos de contacto.
3. Políticas y certificaciones
Detalles de la política de seguridad de la información de la compañía y de las certificaciones de esta. Si lo desea, puede
cargar los documentos acreditativos.
4. Componentes
Los componentes y las tecnologías que se usan en la aplicación. Puede seleccionar los elementos relevantes en una lista
de comprobación según el tipo de aplicación. A continuación, le indicamos algunos ejemplos:
• Force.com: Apex, Visualforce, API y SSO
• Aplicación Web: marcos de trabajo/lenguajes (Java, .NET, Rails, etc.), SSO y Heroku
97
Superación de la revisión de seguridad
•
•
Creación de una organización de publicación de AppExchange
Aplicación cliente: aplicación de escritorio, plugin de navegador e implementación de kit de herramientas CTI de
Salesforce
Aplicación móvil: iOS, Android, Blackberry y Windows
5. Entornos de prueba
Detalles de acceso como credenciales de inicio de sesión, vínculos de instalación y datos de ejemplo para entornos de
prueba activos y configurados por completo. Dependen del tipo de aplicación.
• Force.com: nombres de usuario y contraseñas para todos los niveles de usuario (administrador, usuario final, etc.) en
una organización de prueba
• Aplicación Web: URL, nombres de usuario y contraseñas para todos los niveles de usuario, claves de API, SSO y
configuraciones de OAuth/SAML
• Aplicación cliente: URL de instalación, datos e instrucciones de configuración, así como archivos de licencia necesarios,
datos de ejemplo asociados, guías de configuración y credenciales
• Aplicación móvil: vínculo de instalación aparte para cada tipo de aplicación móvil
6. Reportes
Cargue reportes generados en pruebas anteriores. Por ejemplo:
• Force.com: reporte del analizador del código de seguridad
Nota: Los resultados del analizador del código deben estar limpios antes de enviar la aplicación para su
revisión. Si detecta falsos positivos en el reporte del analizador, indique los detalles correspondientes.
•
•
Aplicación Web: reporte del analizador de la aplicación Web
Otro: otro reporte o documentación
7. Detalles de la revisión
En esta fase se consolida toda la información proporcionada para que pueda comprobar que es correcta y está completa.
Puede volver a cualquier pantalla anterior para modificar su información.
8. Pago
En este paso se efectúa el pago de la revisión de seguridad a través del servicio de pago Recurly. La información de pago
queda guardada, de modo que solo tendrá que indicarla una vez. Si su aplicación es gratuita, no será necesario realizar
ningún pago.
Creación de una organización de publicación de AppExchange
Todas sus aplicaciones y listas de servicios deben publicarse bajo una sola organización de Salesforce, que será su organización
de publicación de AppExchange (APO) principal. La APO, que casi siempre coincide con la organización que utiliza para
gestionar las licencias, es la organización donde va a gestionar la publicación de AppExchange. Proporciona al perfil detalles
que los clientes ven cuando buscan sus listas.
Cumpla con las siguientes mejores prácticas para la APO.
•
Las organizaciones con Developer Edition (DE) donde se crea y se carga la aplicación no deberían designarse como la
APO. En su lugar, las organizaciones con DE deberían vincularse a la APO como organizaciones secundarias. De este
modo, podrá iniciar sesión en la APO para gestionar todos los paquetes (aplicaciones) y las plantillas de prueba (versiones
de ejemplo de su aplicación) que las listas proporcionan, con independencia de la organización que ha utilizado para crear
las aplicaciones. Como socio de salesforce.com, tiene una APO y todas las organizaciones vinculadas que necesite.
98
Superación de la revisión de seguridad
•
•
Cambio de la organización de publicación de AppExchange
Utilice la misma organización como APO y LMO. De esta manera podrá realizar el seguimiento de los prospectos que la
lista genere, así como de los clientes que instalen su aplicación en un lugar.
Pida al equipo de marketing de su compañía que complete la lista de la aplicación en su APO. Tenga en cuenta que su lista
es información pública a la vista de los clientes y los clientes potenciales.
Para crear su APO, haga lo siguiente:
1. Inicie sesión en AppExchange con las credenciales de su LMO. Si no tiene aún una LMO, cree una organización con DE
nueva desde el portal de socios y utilice esas credenciales. Si no utiliza las credenciales de la LMO para crear la APO, podrá
cambiar en otro momento la organización.
2. Haga clic en su nombre que aparece en la esquina superior derecha y, en el menú desplegable, seleccione Consola de
publicación (Publishing Console). Si no ve el vínculo para acceder a la consola de publicación, efectúe los pasos siguientes:
a. Haga clic en Lista en AppExchange (List on the AppExchange).
b. Se mostrará la página que contiene los términos y condiciones. Lea la información y haga clic en Aceptar.
c. Indique si ha publicado una aplicación en AppExchange anteriormente. Pasará a la zona de publicación donde se puede
proporcionar la información sobre la aplicación.
d. Ingrese la información especificada y haga clic en Guardar (Save).
Cambio de la organización de publicación de AppExchange
Para crear una lista en AppExchange, deberá iniciar sesión con las credenciales de Salesforce de una organización que ya exista.
Se recomienda que la APO y la LMO sean las mismas. Esto significa que debería iniciar sesión en la consola de publicación
de AppExchange con la organización donde esté instalada la aplicación de gestión de licencias.
En algunos casos, es posible que haya iniciado sesión con otra organización y haya creado en esa sesión la lista de AppExchange.
Esto puede suceder cuando no tiene aún una LMO creada o las personas responsables de la lista de AppExchange no tienen
acceso a la LMO.
Para cambiar su APO, haga lo siguiente:
1. Inicie sesión en AppExchange con las credenciales de su APO.
2. Haga clic en su nombre que aparece en la esquina superior derecha y, en el menú desplegable, seleccione Consola de
publicación (Publishing Console).
3. Haga clic en la ficha Publicando (Publishing).
4. Haga clic en Sus organizaciones (Your Organizations).
5. Haga clic en Cambiar mi organización de publicación de AppExchange (Change my AppExchange Publishing
Organization).
6. Ingrese las credenciales de la organización que va a designar como su APO.
7. Haga clic en Guardar.
Si ya tiene una APO designada, al efectuar estos pasos la organización y todas sus organizaciones vinculadas se trasladarán a
la organización nueva. Podrían pasar 30 minutos o más hasta que la aplicación aparezca como asociada con la APO. Para
confirmar que se ha completado el proceso, regrese a la sección de inicio de la consola de publicación y haga clic en la ficha
Sus paquetes cargados (Your Uploaded Packages). Debería ver su versión del paquete en la lista.
Solo puede cambiar su APO si no tiene ninguna lista pública en AppExchange. Si ya ha publicado una lista, debe registrar un
caso en el servicio de atención al cliente de Salesforce para cambiar la APO. Tenga en cuenta que la organización con DE
donde crea las aplicaciones no debería ser la APO sino que debería estar vinculada a esta. Cuando registre el caso, haga lo
siguiente:
•
•
Busque el Id. de organización correspondiente a la LMO.
Proporcione la URL de lista de AppExchange y explique que le gustaría cambiar su APO a la organización nueva.
99
Superación de la revisión de seguridad
•
Actualización de la versión del paquete en la lista de
AppExchange
Proporcione el Id. de organización correspondiente a la LMO.
Actualización de la versión del paquete en la lista de
AppExchange
Cada vez que actualice el paquete, debería actualizar la lista de AppExchange para señalar la versión más reciente. De esta
manera, todos los clientes nuevos obtendrán la versión más reciente de su aplicación. La aplicación actualizada debe cumplir
con los criterios siguientes:
1. La aplicación ha superado la revisión de seguridad durante el último año.
2. Ha probado el paquete con el analizador de seguridad y ha solucionado los problemas detectados.
3. El paquete tiene el mismo espacio de nombres que el que ha superado la revisión de seguridad.
Para actualizar la versión del paquete en la lista de AppExchange, haga lo siguiente:
1. Cargue la versión más reciente del paquete desde su organización de empaquetado.
2. Inicie sesión en AppExchange con sus credenciales de la APO.
3. Haga clic en la ficha Sus paquetes cargados (Your Uploaded Packages) para ver una lista de todos los paquetes cargados.
Debería ver la versión del paquete más reciente que acaba de cargar. Hasta que aparezca en esta lista, pueden pasar varios
minutos tras su carga.
4. En la columna Revisión de seguridad (Security Review), la versión del paquete que ha superado el control contiene la fecha
en la que lo hizo. Las versiones posteriores mostrarán un estado "No revisada nunca" (Never Reviewed) en la misma
columna. Haga clic en Iniciar revisión (Start Review) para la versión más reciente que acaba de cargar.
5. Rellene el cuestionario de autoevaluación y haga clic en Enviar (Submit).
•
•
El paquete pasará por el analizador de origen de seguridad y recibirá los resultados por email. Deberá solucionar los
errores que el analizador haya detectado.
Si su aplicación ha superado la revisión de seguridad durante el último año, la versión nueva del paquete recibirá la
aprobación de forma automática y su estado pasará a Revisada (Reviewed). El cambio de estado puede tardar hasta 24
horas.
6. Modifique la lista pública de su aplicación y haga clic en la ficha Oferta (Offering).
7. En la sección "Sus paquetes cargados" (Your Uploaded Packages), haga clic en el vínculo Cambiar paquetes (Change
Packages).
8. Traslade la versión más reciente del paquete a la sección Seleccionadas (Selected) de la lista de selección múltiple.
9. En la lista de selección de versión, seleccione la más reciente del paquete.
10. Haga clic en Guardar.
Nota: Si la última revisión de seguridad se ha llevado a cabo hace más de un año, el equipo encargado de la revisión
de seguridad se pondrá en contacto con usted para programar otra revisión. Hasta ese momento, podrá continuar
mostrando en la lista la versión más nueva.
Envío de una aplicación móvil al proceso de revisión de seguridad
La mayoría de los requisitos que se exigen a las aplicaciones cliente también se exigen a las aplicaciones móviles y algunos de
los que correspondientes a las aplicaciones Web también se aplicarán en función de la compilación de la aplicación. Los
escenarios más habituales son los siguientes:
•
La aplicación móvil tiene un componente de Force.com que se asienta en la organización del cliente. Este debería ser un
paquete gestionado y debería someterse al proceso de revisión de seguridad para una aplicación incluida en paquetes.
100
Superación de la revisión de seguridad
•
Envío de un paquete de extensión para someterlo a la revisión
de seguridad
La aplicación móvil utiliza las API únicamente para comunicarse con Salesforce. En este caso, siga el proceso para someter
una aplicación de solo API a la revisión de seguridad.
Para la realización de pruebas pedimos que nos proporcione una aplicación para todas las plataformas en las que tiene pensado
hacer la distribución. Aceptamos publicaciones de prueba o implementaciones ad-hoc para iOS. Para otras plataformas
aceptamos la aplicación en un archivo (.APK, COR, etc.). Al igual que sucede para las aplicaciones compuestas, si hay llamadas
a cualquier otro sistema distinto de Salesforce, le pediremos un reporte de Burp. Si la aplicación móvil tiene un componente
Web, aunque sea opcional, deberá facilitar un reporte de Burp.
Como se requiere con cualquier otra aplicación:
•
•
Debería haber una lista para su aplicación en AppExchange.
La lista de AppExchange debería vincularse con su APO.
Envío de un paquete de extensión para someterlo a la revisión
de seguridad
Los proveedores de software independientes (ISV) crean paquetes de extensión cuando quieren proporcionar funciones
complementarias a sus aplicaciones. Estos paquetes también son útiles para que las ediciones de Salesforce como PE y GE
sean compatibles con su aplicación. En otros casos, estos paquetes actúan de "puente" para que la aplicación del ISV funcione
con otra aplicación.
Todos los paquetes, sean de base o de extensión, deben someterse a una revisión de seguridad y el proceso en ambos tipos de
paquetes es el mismo.
Algunos paquetes de extensión son muy pequeños: por ejemplo, algunos vínculos o botones para llamar a componentes del
paquete base. Sea cual sea el tamaño del paquete de extensión, el proceso que debe seguirse es el mismo. La única diferencia
es que el proceso será más rápido para los paquetes más pequeños.
El envío de un paquete de extensión para someterlo a la revisión de seguridad de AppExchange sigue un proceso similar al del
paquete de base.
1. Cargue el paquete de extensión (debería ser gestionado y editado como su paquete de base). Recuerde que el paquete de
extensión solo se puede cargar desde una organización diferente de la correspondiente al paquete de base.
2. En la lista de AppExchange, vincule la organización donde se ha creado el paquete de extensión. Este debería aparecer en
la lista de paquetes debajo de sus listas.
3. Haga clic en Iniciar revisión (Start Review) y complete los campos del formulario. Asegúrese de que la cuenta de prueba
incluye los paquetes de base y de extensión.
4. Envíe el paquete para su revisión.
Es conveniente que el equipo de seguridad de Salesforce revise y apruebe todos los paquetes de extensión. No importan lo
pequeño que sea un paquete, cualquiera puede introducir vulnerabilidades en la plataforma. Siga el mismo proceso del autoanálisis
del código antes de enviar el paquete para su revisión. Si el paquete de extensión tuviera componentes que funcionen con una
aplicación externa, ejecute un análisis de Burp y envíe los resultados correspondientes.
Recursos para la revisión de seguridad
Estos recursos pueden ayudarle en la preparación para la revisión de seguridad.
•
•
•
Proceso de revisión de seguridad
Lista de comprobación de los requisitos de la revisión de seguridad
Recursos para el desarrollo en la Nube seguro de Force.com
101
Superación de la revisión de seguridad
•
•
•
•
•
•
Preguntas más frecuentes sobre la revisión de seguridad
Directrices de codificación segura de Force.com
Proyecto abierto de seguridad de aplicaciones Web (OWASP, siglas en inglés)
10 problemas principales de OWASP
Guía de pruebas de OWASP
Guía de codificación segura de OWASP
Referencia rápida de prácticas de codificación segura de OWASP
Preguntas más frecuentes sobre la revisión de seguridad
Esta sección contiene una lista de las preguntas más frecuentes planteadas sobre la revisión de seguridad.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
¿Es obligatoria la revisión de seguridad de AppExchange?
¿En qué consiste la revisión de seguridad?
¿Por qué debo someter la aplicación a una revisión de seguridad?
¿Cuánto tarda el proceso de la revisión de seguridad? ¿Cada cuánto tiempo es obligatorio realizarla?
¿Hay alguna tasa?
¿Las aplicaciones gratuitas deben pagar por someterse a una revisión de seguridad?
¿Por qué tengo que hacer pruebas en mi aplicación antes de la revisión si el equipo de seguridad va a hacerlas de todos
modos?
¿Cuáles son los motivos habituales que impiden que se supere la revisión de seguridad?
¿Puedo enviar mi aplicación para someterla a la revisión de seguridad antes de que esté terminada con el fin de tener este
proceso hecho pronto?
¿Por qué obtengo un error cuando solicito una revisión de seguridad?
Si no tengo ninguna respuesta “No” en el cuestionario de seguridad, o no dispongo de documentación formal y detallada,
¿suspenderé la revisión?
¿Por qué el equipo de revisión tiene que hacer pruebas en la parte X o Y de mi oferta?
¿Debo solucionar todos los problemas que el equipo de revisión de seguridad detecte?
¿Por qué el equipo de revisión no puede enviarme todas las instancias de todo lo que encuentre en mi revisión?
¿Qué sucede después de superar la revisión de seguridad?
¿Qué sucede si no se aprueba mi aplicación?
¿Cuál es la diferencia entre Aprobada, Aprobación provisional y Con fallos?
Si actualizo mi aplicación, ¿debe pagar de nuevo la tasa de la revisión de seguridad para vuelva a ser revisada?
Cuando creo un paquete gestionado nuevo (en realidad, una actualización de mi primera aplicación), ¿tendré que pagar de
nuevo la tasa para que vuelva a ser revisada la seguridad de la aplicación?
¿Por qué debo realizar revisiones de seguridad periódicas?
Entiendo que las soluciones revisadas pueden funcionar con las organizaciones con PE y GE. ¿Cómo funciona esto?
¿Es obligatoria la revisión de seguridad de AppExchange?
Sí, todas las aplicaciones de AppExchange y OEM deben superar una revisión de seguridad.
¿En qué consiste la revisión de seguridad?
El proceso de revisión de seguridad consta de dos tipos de evaluaciones:
•
Cualitativa: ronda de preguntas y respuestas para revisar las políticas y los procedimientos.
102
Superación de la revisión de seguridad
•
¿Por qué debo someter la aplicación a una revisión de seguridad?
Cuantitativa: realización de una prueba de penetración de la red y la aplicación (consulte Ámbito).
¿Por qué debo someter la aplicación a una revisión de seguridad?
Queremos que AppExchange sea el ecosistema de aplicaciones On-Demand de mayor confianza del mercado. La revisión de
seguridad nos ayuda a crear esta atmósfera de confianza, ya que revisamos que las aplicaciones cumplan con un conjunto de
estándares de seguridad y mejores prácticas. Esta revisión proporciona credibilidad a AppExchange y sus aplicaciones y, a
cambio, esta confianza incrementa el número de clientes.
¿Cuánto tarda el proceso de la revisión de seguridad? ¿Cada cuánto
tiempo es obligatorio realizarla?
El proceso de revisión tarda entre 5 y 7 semanas desde el momento en que dispongamos de todos los elementos y siempre y
cuando se cumplan las condiciones siguientes:
•
•
•
•
Su documentación es completa y precisa.
El entorno de prueba es completo, está configurado por completo e incluye toda la información necesaria.
Ha cumplido con todos los requisitos.
Su actuación está dentro de las directrices del acuerdo.
Se trata de un proceso periódico. Cuando se acerque la fecha de caducidad de la revisión de seguridad, nos pondremos en
contacto con usted para revisar de nuevo la aplicación.
¿Hay alguna tasa?
Haga clic aquí para obtener más información sobre las tasas de las listas.
¿Las aplicaciones gratuitas deben pagar por someterse a una revisión
de seguridad?
No, la revisión de las aplicaciones gratuitas se hace sin costo alguno. Para que pueda ser así, la aplicación debe ser gratuita
durante todo el año.
¿Por qué tengo que hacer pruebas en mi aplicación antes de la revisión
si el equipo de seguridad va a hacerlas de todos modos?
Las pruebas que realice antes de la revisión le permitirán enviar la mejor aplicación posible para que supere la revisión a la
primera. Nuestra revisión de seguridad se basa en las mejores prácticas y es muy exhaustiva. Todo el esfuerzo que haga antes
de la revisión se verá compensado en el proceso. Tenga en cuenta que la realización de nuevas pruebas conllevan un significativo
retraso para la aplicación y el proceso en su conjunto.
¿Cuáles son los motivos habituales que impiden que se supere la revisión
de seguridad?
La lista siguiente enumera, sin un orden específico, los motivos principales que han impedido la aprobación de una aplicación.
Para obtener más información, consulte lista de comprobación del proyecto OWASP Top 10.
103
Superación de la revisión de seguridad
•
•
•
•
•
•
•
•
•
•
¿Puedo enviar mi aplicación para someterla a la revisión de
seguridad antes de que esté terminada con el fin de tener este
proceso hecho pronto?
Inyección (SQL, XML etc.)
Cross-Site Scripting (XSS)
Gestión de sesión y autenticación dañada
Referencias a objetos directos no seguras
Cross Site Request Forgery (CSRF/XSRF)
Configuración de seguridad errónea
Almacenamiento criptográfico no seguro
Error en la restricción del acceso a URL
Protección insuficiente de la capa de transporte
Redireccionamientos y avances no validados
¿Puedo enviar mi aplicación para someterla a la revisión de seguridad
antes de que esté terminada con el fin de tener este proceso hecho
pronto?
No. Es muy importante que la oferta enviada sea la versión que tiene previsto distribuir y que sea completa. Si no es el caso,
no podremos detectar correctamente los problemas y habrá que hacer una segunda revisión completa, lo que originará un gran
retraso.
¿Por qué obtengo un error cuando solicito una revisión de seguridad?
Los errores que se describen a continuación pueden suceder cuando se solicita una revisión de seguridad para una lista.
Esta asociación ya está vinculada a otro perfil de proveedor de AppExchange.
Este error significa que la cuenta del socio está asociada a una organización de Salesforce diferente. Esta organización
es la que actúa como su organización de publicación de AppExchange (APO) y es la única desde la que puede publicar
en AppExchange. Para solucionar este error, vincule las organizaciones donde ha desarrollado la aplicación a su APO.
Si no sabe qué organización es su APO, registre un caso en el portal de socios para obtener ayuda.
Para poder someter su aplicación a la revisión de seguridad, usted debe ser un socio de salesforce.com y conectar la
información de asociación con el perfil de proveedor. Para hacerlo, inicie sesión con la APO principal y modifique
el perfil de proveedor.
El perfil de proveedor de AppExchange (es decir, el que está asociado con la APO) debe estar vinculado con su cuenta
de socio antes de poder enviar una lista a la revisión de seguridad. Este requisito simplifica el flujo del proceso de revisión,
ya que garantiza que los socios tienen acceso al portal de socios y han aceptado los términos y condiciones. Para solucionar
este error, inicie sesión en la página Publishing de AppExchange con las credenciales de la APO y agregue la información
de la cuenta de socio a su perfil de proveedor.
Si no tengo ninguna respuesta “No” en el cuestionario de seguridad, o
no dispongo de documentación formal y detallada, ¿suspenderé la
revisión?
No, no la suspenderá. Aunque en las preguntas se pida documentación formal y detallada, entendemos que dependiendo del
tamaño y la madurez de la compañía, a veces no es posible facilitarlo. Hemos intentado que el cuestionario sea genérico y
pueda valer para todos los tipos de compañías. Por ejemplo, las compañías más pequeñas pueden enviarnos una lista de
comprobación informal en lugar de la documentación formal de sus políticas de seguridad. Si tiene que responder “No” a
104
Superación de la revisión de seguridad
¿Por qué el equipo de revisión tiene que hacer pruebas en la
parte X o Y de mi oferta?
algunas de las preguntas, ingrese los comentarios que expliquen su respuesta en el cuadro oportuno. Sabemos que la puntuación
no puede ser blanco o negro, por lo que valoramos los distintos elementos que entran en juego, como el tamaño de la compañía,
su madurez, etc.
¿Por qué el equipo de revisión tiene que hacer pruebas en la parte X o Y
de mi oferta?
Nuestro objetivo es realizar pruebas en todas las partes de la oferta para garantizar que nuestros clientes mutuos y sus datos no
corren ningún riesgo. Esto incluye a las aplicaciones o servicios Web externos, obligatorios u opcionales, las aplicaciones cliente
o móviles, obligatorias u opcionales, y todos los elementos de Apex y Visualforce (en paquetes o no) que se incluyen en la
oferta. Si no está seguro si debería incluir alguna parte de la oferta, inclúyala por si acaso. El equipo de revisión no realizará
pruebas en las partes de la oferta que creamos que no entran en nuestro objetivo pero si falta una parte obligatoria, la revisión
sufrirá un retraso.
¿Debo solucionar todos los problemas que el equipo de revisión de
seguridad detecte?
Sí. A menos que se indique lo contrario en los reportes de prueba, debe solucionar todas las clases de problemas en la aplicación
completa que le envíe el equipo de revisión.
¿Por qué el equipo de revisión no puede enviarme todas las instancias
de todo lo que encuentre en mi revisión?
La revisión de seguridad consiste en una revisión de caja negra y con el tiempo limitado. Dado el tiempo y la visibilidad que
tiene el equipo de revisión para cada proceso, sería poco práctico proporcionar esa información. Los resultados deberían
interpretarse como ejemplos y deberían solucionarse todos los problemas detectados en las categorías proporcionadas en la
oferta.
¿Qué sucede después de superar la revisión de seguridad?
Puede incluir su aplicación en una lista pública en AppExchange. También podrá solicitar un token de API si su aplicación
utiliza las API de SOAP o de REST.
¿Qué sucede si no se aprueba mi aplicación?
No puede publicar su aplicación en AppExchange hasta que se hayan analizado todos los resultados y se haya realizado una
revisión de seguimiento.
¿Cuál es la diferencia entre Aprobada, Aprobación provisional y Con
fallos?
Si en la revisión de seguridad ha obtenido un resultado Aprobada o Aprobación provisional, será que no hemos encontrado
vulnerabilidad de riesgo alto en su aplicaciones. En el caso de la aprobación provisional, es probable que hayamos encontrado
vulnerabilidades de riesgo medio. Para solucionar los problemas, acordaremos un plazo aceptable para ambas partes. Mientras
tanto, dispondrá del token de API y podrá incluir su aplicación en AppExchange. Si ha obtenido un resultado Con fallo, lo
primero que debe hacer es solucionar los problemas detectados antes de incluir la aplicación en AppExchange o de obtener
acceso al token de API.
105
Superación de la revisión de seguridad
Si actualizo mi aplicación, ¿debe pagar de nuevo la tasa de la
revisión de seguridad para vuelva a ser revisada?
Si actualizo mi aplicación, ¿debe pagar de nuevo la tasa de la revisión de
seguridad para vuelva a ser revisada?
No. La revisión de seguridad es un proceso que se realiza en un momento dado con cierta periodicidad que determina
salesforce.com (normalmente en un intervalo entre 6 meses y 2 años). Cuando se carga una versión de paquete nueva en
AppExchange y se intenta asociarla a su lista, ejecutamos un análisis de código de origen automático con relación al código
de Force.com para identificar las posibles vulnerabilidades en la seguridad. Si detectamos algún problema, le enviamos un
reporte por email y le pedimos que solucione los problemas de forma inmediata. Nos reservamos el derecho a llevar a cabo
pruebas de penetración de seguridad aleatorias en su aplicación durante el año. Todo esto está incluido en la tasa de lista que
paga anualmente y no supone ningún cargo adicional. Sin embargo, si observamos que no ha cumplido nuestros estándares de
seguridad y mejores prácticas, podríamos eliminar su aplicación de AppExchange.
Cuando creo un paquete gestionado nuevo (en realidad, una actualización
de mi primera aplicación), ¿tendré que pagar de nuevo la tasa para que
vuelva a ser revisada la seguridad de la aplicación?
No. Si desarrolla una versión nueva en un paquete que ya está aprobado, cuando haga clic en "Iniciar revisión" (Start Review)
para la versión nueva, esta se aprobará de forma automática y podrá asociarla a su lista.
¿Por qué debo realizar revisiones de seguridad periódicas?
Requerimos someter todas las aplicaciones a revisiones de seguridad periódicas (normalmente, en intervalos desde 6 meses a
2 años, según el riesgo de la aplicación). Todos los años salen nuevas versiones de las aplicaciones y necesitamos asegurarnos
de que nuestras soluciones integradas siguen cumpliendo con las mejores prácticas publicadas en materia de seguridad. Además,
mantenemos el proceso de revisión al día con los requisitos de la industria para poder así comprobar las vulnerabilidades de
seguridad más recientes. Es importante garantizar que su aplicación supera también estos requisitos nuevos.
Entiendo que las soluciones revisadas pueden funcionar con las
organizaciones con PE y GE. ¿Cómo funciona esto?
Los socios aptos pueden solicitar un token de API a través del portal de socios. Este se utiliza para todas las llamadas de API
para esa aplicación concreta. Después de la revisión de seguridad, y si es un socio apto, permitiremos que las transacciones de
API identificadas con el token de API funcionen con las organizaciones con Professional Edition y Group Edition. Vea
ejemplos de código en la página Uso de ClientID.
106
Capítulo 6
Publicación de la aplicación
En este capítulo...
•
•
•
•
•
•
•
•
•
•
•
•
•
¿Qué es AppExchange?
Gestión de las organizaciones de
Salesforce
Publicación de la aplicación o el
servicio
Creación o modificación de listas
Marca de la aplicación
Envío de la lista para su aprobación
Registro del paquete y elección de la
configuración de la licencia
Notificaciones por email
Uso de Checkout de AppExchange
Preguntas más frecuentes sobre
Checkout de AppExchange
Trabajo con prospectos de
AppExchange
Reportes de análisis para publicadores
Preguntas más frecuentes sobre
AppExchange
En esta sección se explica cómo se realiza la publicación y la distribución de la
aplicación en paquetes en AppExchange.
Todas sus aplicaciones y listas de servicios deben publicarse bajo una sola
organización de salesforce.com, que será su organización de publicación de
AppExchange (APO). En la mayoría de los casos, la APO coincide con la
organización que utiliza para gestionar las licencias. Puede vincular una o varias
organizaciones con Developer Edition a la APO como organizaciones
secundarias. De este modo, podrá iniciar sesión en la APO para gestionar todas
las aplicaciones en paquetes y las plantillas de prueba (versiones de ejemplo de
su aplicación) que las listas proporcionan, con independencia de la organización
que ha utilizado para crear las aplicaciones.
107
Publicación de la aplicación
¿Qué es AppExchange?
¿Qué es AppExchange?
Vender en AppExchange
Bienvenido a AppExchange, un mercado completo dedicado a las aplicaciones y los socios de consultoría en el modelo Cloud
Computing. Antes de poner su propia aplicación o servicio a disposición pública de los clientes potenciales (proceso denominado
también publicación de una lista), debe ser un socio de salesforce.com. Si no es un socio, visite http://www.salesforce.com/partners
para obtener más información.
Antes de empezar
Si va a publicar aplicaciones en AppExchange, instale la aplicación gratuita Aplicación de gestión de licencias (LMA, siglas
en inglés). Gracias a la LMA podrá recibir automáticamente una notificación cada vez que su paquete (aplicación) se instale
o desinstale, de modo que podrá realizar el seguimiento de los usuarios y avisar a estos cuando publique alguna actualización.
¿Cómo funciona AppExchange?
El poder creativo subyacente a todas las aplicaciones de AppExchange reside en un usuario de Salesforce. AppExchange
constituye un lugar donde crear, publicar o instalar aplicaciones y extensiones en Salesforce. El funcionamiento de AppExchange
de Force.com se explica de un modo breve a continuación:
Crear
Cualquier usuario de Salesforce inicia el proceso cuando crea un objeto personalizado, una ficha personalizada o un
conjunto de tableros y reportes que mejoran su negocio. Estos clientes pueden compartir sus personalizaciones, como
aplicaciones o extensiones, con otros usuarios de Salesforce.
Publicar
Cualquier cliente de Salesforce puede registrar y publicar sus aplicaciones en AppExchange. También puede crear una
demostración de la funcionalidad incluida en la aplicación para que los clientes la vean antes de instalarla.
Instalar
Los administradores de Salesforce pueden instalar cualquier aplicación publicada en AppExchange. La instalación de
una aplicación publicada desde AppExchange es una tarea segura y sencilla:
Examinar
Vea las descripciones, las opiniones y las demostraciones de cualquier aplicación de AppExchange. Con esta
información, podrá elegir la aplicación que mejor se adapte a sus necesidades.
Prueba
Revise una demostración totalmente funcional de la aplicación como usuario de solo lectura y planifique su
implementación.
Instalar
Agregue la aplicación y todos sus componentes al entorno de Salesforce.
Implementar
Dé acceso inmediato a sus usuarios a la aplicación o personalícelo para un grupo escogido de usuarios.
108
Publicación de la aplicación
¿Quién puede utilizar AppExchange?
¿Quién puede utilizar AppExchange?
Cualquiera puede explorar y probar las listas de AppExchange. Los administradores y usuarios de Salesforce que cuenten con
el permiso “Descargar paquetes de AppExchange” pueden instalar aplicaciones de AppExchange. Para poder publicar una
aplicación en AppExchange, un usuario debe tener los permisos “Crear paquetes de AppExchange” y “Cargar paquetes de
AppExchange”.
Gestión de las organizaciones de Salesforce
Decida cómo quiere estructurar sus organizaciones de salesforce.com. Todas sus aplicaciones y listas de servicios deben publicarse
bajo una sola organización de salesforce.com, que será su organización de publicación de AppExchange (APO) principal. La
APO, que casi siempre coincide con la organización que utiliza para gestionar las licencias, es la organización donde va a
gestionar la publicación de AppExchange. Proporciona al perfil detalles que los clientes ven cuando buscan sus listas. Las
organizaciones con Developer Edition donde crea y carga la aplicación deberían estar vinculadas a la APO como organizaciones
secundarias. De este modo, podrá iniciar sesión en la APO para gestionar todos los paquetes (aplicaciones) y las plantillas de
prueba (versiones de ejemplo de su aplicación) que las listas proporcionan, con independencia de la organización que ha utilizado
para crear las aplicaciones.
Como socio de salesforce.com, tiene una APO y todas las organizaciones vinculadas que necesite. Se recomienda utilizar la
misma organización como su APO y su organización de gestión de licencias (LMO). De esta manera, podrá realizar el
seguimiento de los prospectos que la lista genere, así como de los clientes que instalen su aplicación en un lugar.
Para gestionar sus organizaciones, haga clic en la ficha Publicando en AppExchange e inicie sesión. Siga el vínculo Sus
organizaciones (Your Organizations). En esta página, puede hacer lo siguiente:
•
•
•
•
Hacer clic en Cambiar mi organización de publicación de AppExchange e ingresar las credenciales de la organización
que va a designar como su APO. Si ya tiene una APO designada, al efectuar estos pasos la organización y todas sus
organizaciones vinculadas se trasladarán a la APO nueva. Solo puede cambiar su APO si no tiene ninguna lista pública en
AppExchange. Si ya ha publicado una lista, debe registrar un caso en el servicio de atención al cliente de Salesforce para
cambiar la APO. Tenga en cuenta que la organización con Developer Edition donde crea las aplicaciones no debería ser
la APO sino que debería estar vinculada a esta.
Ver una lista de las organizaciones vinculadas si ha iniciado sesión en la APO.
Ver la información de la APO si ha iniciado sesión en una organización vinculada.
Haga clic en Vincular organización nueva (Link New Organization) si ha iniciado sesión en la APO y ha ingresado las
credenciales de la organización que va a agregar.
En la lista de las organizaciones vinculadas se proporciona la información siguiente:
Campo
Descripción
Organización
El nombre de la organización vinculada
Id.
El Id. de la organización vinculada
Edición de Salesforce
La edición de la organización vinculada
Paquetes
El número de paquetes cargados desde la organización
vinculada
Plantillas de prueba (Trial Templates)
El número de plantillas de prueba cargadas desde la
organización vinculada
Fecha de vinculación (Linked On)
La fecha en la que la organización se vinculó a la APO.
109
Publicación de la aplicación
Publicación de la aplicación o el servicio
Publicación de la aplicación o el servicio
Para que su aplicación o servicio de consultoría esté disponible en AppExchange, debe crear una lista del modo siguiente:
1. Inicie sesión en su organización de publicación de AppExchange (APO) o en la organización que designe como su APO
cuando haya iniciado sesión.
2. Cree un perfil de proveedor.
3. Cree una lista nueva.
4. Si su lista es una aplicación y no un servicio, envíe el paquete de la aplicación para que se someta al proceso de revisión de
seguridad.
5. Una vez que la aplicación esté aprobada, haga clic en Clasificar como público para que su lista esté disponible en la
comunidad de AppExchange. Los servicios de consultoría públicos no necesitan someterse a una revisión.
Publicación de aplicaciones en AppExchange
La inclusión de su aplicación en una lista en AppExchange es flexible. No tiene que limitarse a una sola lista. Puede publicar
una aplicación destinada a una necesidad de negocio genérica y también publicar distintas variaciones de la aplicación específicas
para determinados mercados verticales. Una vez que ha creado un perfil de proveedor y cargado su aplicación, puede comenzar
a crear una lista de aplicaciones; para ello, hay que hacer clic en Crear lista nueva (Create New Listing) en la página de inicio
de Publishing.
Las listas constituyen la herramienta de marketing principal para promocionar la aplicación. Cuanta más información agregue
a estas, más probable será que los usuarios la encuentren. Describa su solución, los precios, el servicio de asistencia y otros
detalles para que los posibles clientes puedan determinar si su solución es la adecuada para ellos. Cargue videos informativos,
documentos técnicos y cualquier otro contenido que contribuya a que el cliente conozca con mayor profundidad las funciones
de su aplicación.
Para incluir su aplicación en una lista pública, esta deberá superar la revisión de seguridad de AppExchange. La finalidad de
esta revisión es garantizar que la instalación de la aplicación o la plantilla de prueba es segura para los clientes.
Creación o modificación del perfil de proveedor
El perfil de proveedor que cree para su APO incluye la información sobre la compañía que quiere que esté visible para los
clientes. En las listas la información de perfil se encuentra en la ficha Proveedor (Provider). También puede crear un perfil de
proveedor para sus organizaciones vinculadas aunque este no será público. En estos momentos, puede indicar un servicio por
perfil de proveedor.
Para modificar el perfil, debe iniciar sesión con las credenciales de la organización de destino y hacer clic en la opción Su perfil
de proveedor (Your Provider Profile) que verá en la esquina superior izquierda de la página de Publishing. Puede indicar la
información siguiente:
Campo
Descripción
Nombre de proveedor (Provider Name)
El nombre de su compañía. Este es el único campo obligatorio.
Sitio Web
La URL del sitio Web de su compañía.
Email
El email de contacto de su compañía.
Teléfono
El teléfono de contacto de su compañía.
110
Publicación de la aplicación
Creación o modificación de listas
Campo
Descripción
Oficina central (Headquarters)
La dirección completa de la oficina central de su compañía en
la que no debe faltar la ciudad, el estado (si procede) y el país.
Año de fundación (Year Founded)
El año en que se fundó la compañía.
Empleados
El número de empleados que trabajan en la compañía.
Descripción
Un párrafo o dos breves en los que se hable sobre la compañía.
Asociación con Salesforce.com (Salesforce.com La cuenta de socio de Salesforce.com de la compañía. Este
Partnership)
campo es obligatorio para incluir su aplicación o servicio en
una lista pública en AppExchange. Haga clic en Cambiar
asociación (Change Partnership) para crear un vínculo entre
la cuenta del portal de socios y el perfil de proveedor de
AppExchange. De este modo, la información de certificación,
proyecto, satisfacción de los clientes y los datos del socio se
mostrarán en AppExchange.
Importante: Como solo puede vincular su cuenta
del portal de socios de Salesforce.com una vez,
asegúrese de vincularla a su APO.
Logotipo
El logotipo de su compañía. Ingrese la ubicación de un archivo
o haga clic en Examinar... para buscar el logotipo.
Creación o modificación de listas
Las listas constituyen su herramienta de marketing principal para promocionar su aplicación o servicio de consultoría en
AppExchange. Cuanta más información agregue a estas, más probable será que los usuarios la encuentren. Cree una lista para
cada aplicación o servicio de consultoría. Modifique las fichas siguientes. Se trata de las fichas que los usuarios ven cuando
tienen su lista delante.
•
•
•
•
•
•
•
•
Ficha Básica (Basic): para las aplicaciones y los servicios de consultoría
Ficha Oferta (Offering): para las aplicaciones
Ficha Precios (Pricing): para las aplicaciones
Ficha Especificaciones (Specs): para las aplicaciones
Ficha Soporte: para las aplicaciones
Ficha Experiencia (Experience): para los servicios de consultoría
Ficha Contenido cargado (Uploaded Content): para las aplicaciones y los servicios de consultoría
Ficha Prospectos (Leads): para las aplicaciones y los servicios de consultoría
Ficha Básico
En la ficha Básico (Basic) se incluye información que ayuda a los clientes a encontrar y evaluar su lista.
Campo
Descripción
Título de la lista (Listing Title)
(Obligatorio) El nombre de la lista.
111
Publicación de la aplicación
Ficha Oferta (aplicaciones)
Campo
Descripción
Línea de identificación (Tag Line)
(Obligatorio) Una frase breve que describe la lista.
Categorías
(Obligatorio) Las categorías que los clientes utilizan para
examinar su lista. Si la lista es una aplicación, salesforce.com
asigna las categorías poco después de que la lista se haya hecho
pública. De este modo, aumentan las posibilidades de que los
clientes potenciales encuentren su aplicación. Para cambiar las
categorías de una aplicación, debe registrar un caso en el portal
de socios.
Información de contacto (Contact Information)
(Obligatorio) Email de negocio/marketing: la dirección de
(privada y utilizada con salesforce.com)
email en la que salesforce.com puede hacer contacto con usted
para tratar temas relacionados con el negocio o el marketing.
(Obligatorio) Email técnico: la dirección de email en la que
salesforce.com puede hacer contacto con usted para tratar
temas técnicos o relacionados con la seguridad.
(Obligatorio) Email para opiniones: la dirección de email en
la que desea recibir las notificaciones por email relacionadas
con las opiniones y comentarios sobre su lista.
Las direcciones de email anteriores no se comparten con los
clientes.
Información de contacto (pública)
Email: la dirección de contacto de la compañía para los clientes
potenciales.
Teléfono: el número de teléfono de contacto de la compañía
para los clientes potenciales.
Sitio Web: la URL del sitio Web de la compañía.
Descripción breve (Brief Description)
(Obligatorio) Un resumen de la lista. El número máximo de
caracteres permitidos es de 255.
Aspectos destacados (Highlights)
Funciones clave relativas a su lista.
Descripción completa (Full Description)
Una descripción detallada de la lista. El número máximo de
caracteres permitidos es de 1200.
Ficha Oferta (aplicaciones)
En la ficha Oferta (Offering) debe decidir cómo pueden instalar los clientes su aplicación.
Campo
Descripción
¿Qué tipo de aplicación va a incluir en la
lista? (What kind of application are you
listing?)
Un paquete es el contenedor que reúne todos los objetos y
fichas personalizados y estándares que conforman su aplicación.
Seleccione si la lista utiliza un paquete o la API. En caso de
que la lista incluya un paquete y la API, seleccione la opción
API.
112
Publicación de la aplicación
Elección de la mejor opción de instalación
Campo
Descripción
¿Cómo deberían los usuarios instalar su
aplicación? (How should people install your
application?)
Consulte el apartado Elección de la mejor opción de
instalación.
Habilitar inscripción de prueba gratuita de Marque aquí si quiere permitir a los clientes su inscripción
Salesforce y su aplicación (Enable free trial sign up para una prueba gratuita de 30 días de Salesforce y su
of Salesforce and your application)
aplicación. Para obtener más información, consulte el apartado
¿Cómo puedo ofrecer una prueba gratuita de mi aplicación?
Vincular uno o varios paquetes cargados a
Si su lista incluye un paquete, haga clic en Cambiar paquetes
esta lista (Link one or more of your uploaded (Change Packages) e incluya todas las versiones de la
packages to this listing)
aplicación. Cada versión del paquete se puede asociar
únicamente con una lista cada vez.
Seleccione la versión más reciente de la
Seleccione la versión que quiere que los clientes instalen. La
aplicación (Select the latest version of your información correspondiente a esta versión se muestra en la
application)
ficha Especificaciones (Specs) de la lista. Cada versión del
paquete se puede asociar únicamente con una lista cada vez.
Vincular una o varias plantillas de prueba a Si va a permitir el uso de una prueba gratuita, deberá asociar
esta lista (Link one or more of your trial
al menos una plantilla de prueba.
templates to this listing)
Seleccione la plantilla de prueba de
inscripción (Select the sign-up trial
template)
Seleccione la plantilla que los clientes recibirán cuando se
inscriban en la prueba gratuita. Para obtener más información
sobre las plantillas de prueba, consulte el apartado ¿Cómo
puedo ofrecer una prueba gratuita de mi aplicación?
Prueba
Marque aquí si quiere que los usuarios de Salesforce puedan
probar una versión de solo lectura de su aplicación. Consulte
el apartado Asociación de una prueba con su lista.
Elección de la mejor opción de instalación
Cuanto más fácil sea instalar y probar la aplicación, más probable será que los usuarios se conviertan en clientes de pago. En
AppExchange, los posibles clientes hacen clic en Obtener ahora (Get It Now) en la lista de aplicaciones y responden algunas
preguntas sencillas para guiarles por el proceso de instalación. El flujo depende de la respuesta que dé a la pregunta ¿Cómo
deberían los usuarios instalar su aplicación? cuando cree la lista.
Opción
Consideraciones
Instalarla directamente desde AppExchange
Si su aplicación es un paquete, normalmente es la opción más
sencilla. Permite que los usuarios instalen su aplicación en su
entorno de sandbox o producción de Salesforce a través de la
secuencia de instalación de AppExchange sin que usted tenga
que hacer nada.
(Install it directly from the AppxExchange)
Instalarla directamente desde el sitio Web
Si su aplicación es un cliente que se puede descargar o necesita
de la compañía (Install it directly from your que se instale información adicional, se trata de la mejor
company’s website)
opción. Una vez que se hace clic en el botón Obtener ahora
en la lista de aplicaciones y se aceptan los términos y
condiciones, se pasa al sitio Web para completar el proceso de
113
Publicación de la aplicación
Asociación de una unidad de prueba con su lista
Opción
Consideraciones
instalación. Asegúrese de que en el sitio Web hay instrucciones
claras sobre cómo se descarga la aplicación y realice la
configuración que sea necesaria. Si no se puede instalar la
aplicación sin su ayuda, descarte esta opción.
Contactar con su compañía para ayudarle en
la instalación (Contact your company so you
can help them install it)
Si se requiere ayuda en su instalación o proceso de selección,
esta es la única opción posible. Después de aceptar los términos
y condiciones, avisa al cliente que se pondrá en contacto con
él para ayudarle con la instalación. Asegúrese de que en su
compañía hay los recursos necesarios para ayudar a todos los
posibles clientes.
Habilitar inscripción de prueba gratuita de Esta opción proporciona una prueba gratuita de 30 días de
Salesforce y su aplicación (Enable free trial sign up Salesforce y su aplicación. Para conocer los requisitos, consulte
of Salesforce and your application)
¿Cómo puedo ofrecer una prueba gratuita de mi aplicación?
Asociación de una unidad de prueba con su lista
Los usuarios de Salesforce pueden tener otra oportunidad de probar una versión de solo lectura de su aplicación en una
organización con Developer Edition. Esta organización, que incluye los datos de ejemplo que elija, es tan segura como cualquier
otro entorno de Salesforce. Las unidades de prueba cuentan en la clasificación de popularidad.
Para asociar una unidad de prueba a su lista, haga lo siguiente:
1.
2.
3.
4.
Cuando cree o modifique la lista, en la ficha Oferta (Offering) haga clic en Crear unidad de prueba (Create Test Drive).
Ingrese un título.
Seleccione el paquete. Se instalará en una organización con Developer Edition nueva.
Haga clic en Enviar. Salesforce enviará información sobre la nueva organización con Developer Edition a la dirección de
email de usuario de Salesforce.
5. Cuando reciba la información de inicio de sesión, entre como administrador de la organización nueva y cree datos de
ejemplo o realice otras tareas de configuración.
6. Cuando la organización ya esté lista, retroceda a la página Publishing de AppExchange.
7. Haga clic en Modificar (Edit) en la lista de destino.
8. En la ficha Oferta (Offering), haga clic en Cambiar organización (Change Organization) para especificar la organización
con Developer Edition nueva.
9. Ingrese el inicio de sesión y la contraseña del usuario de evaluación que se le ha enviado junto con las credenciales de
administrador. (La contraseña del usuario de evaluación no puede terminar en #). Tenga en cuenta que el usuario de
evaluación tiene permisos de solo lectura.
10. Haga clic en Aceptar.
Una vez que la lista está publicada, todas las personas que usen la unidad de prueba iniciarán la sesión como el mismo usuario
de evaluación.
Ficha Precios
En la ficha Precios (Pricing) se especifica la información de precios correspondiente a su aplicación. Además, en ella puede
inscribirse en Checkout: un servicio que facilita a los clientes el pago de las aplicaciones directamente en AppExchange. Para
obtener más información, consulte el apartado Uso de Checkout de AppExchange en la página 122.
114
Publicación de la aplicación
Ficha Experiencia
Campo
Descripción
Describa los precios básicos de esta
aplicación (Describe the basic pricing for
this application)
(Obligatorio) Especifique aquí si su aplicación es gratuita o
de pago y si ofrece descuentos para las organizaciones sin fines
de lucro u ONG.
Nota: Algunos de los campos siguientes solo son
pertinentes para las aplicaciones de pago y no se
mostrarán si la suya es gratuita.
¿Cómo quiere facturar y gestionar esta
Especifique si quiere gestionar el pago y la facturación
aplicación? (How do you want to bill for and mediante Checkout o si quiere hacerlo por su cuenta.
manage this application?)
¿Cuándo va a recopilar la información de
pago? (When do you want to collect payment
information?)
Especifique aquí cómo va a recopilar la información de pago.
Puede hacerlo antes de que los clientes instalen la aplicación
o cuando comiencen a usar una prueba gratuita.
Nota: Este campo solo aparece si se ha inscrito en
Checkout y va a utilizarlo para esta lista.
Precio de la lista
Cargo
El precio por unidad de su aplicación. Especifique el
importe y la divisa.
Unidades
La unidad en la que se basan los precios: usuario o
compañía. Si no utiliza Checkout, puede especificar
además unidades personalizadas.
Frecuencia
La frecuencia de la facturación: mensual o única. Si no
utiliza Checkout, también puede facturar precios anuales.
Prueba gratuita
El número de días de vigencia de una prueba gratuita.
Esta opción solo está disponible cuando se utiliza
Checkout y cuando recopila la información de pago antes
de la instalación.
Detalles adicionales
Cualquier dato adicional sobre los precios que quiera
comunicar a los clientes. Dispone de un máximo de 255
caracteres para escribir la información y esta puede incluir
vínculos. Por ejemplo, podría incluir un vínculo a una hoja de
precios completa en el sitio Web.
Ficha Experiencia
Cuando se modifica un servicio, en la ficha Experiencia (Experience) se proporciona la información de la lista relativa a la
región, el idioma y la asociación.
115
Publicación de la aplicación
Ficha Especificaciones
Campo
Descripción
Área geográfica (Geographic Focus)
Las ubicaciones donde presta el servicio. Puede agregar o
cambiar las regiones.
Idiomas ofrecidos (Languages Spoken)
Los idiomas en los que presta el servicio. Puede agregar o
cambiar los idiomas.
Certificaciones, proyecto y satisfacción del Esta información está vinculada a su portal de socios. Para
cliente (Certifications, Projects, and
actualizar su asociación, haga clic en Ir al perfil de proveedor
Customer Satisfaction)
para gestionar este vínculo (Go to Your Provider Profile to
Manage this Link).
Ficha Especificaciones
La ficha Especificaciones (Specs) se utiliza para ingresar la siguiente información sobre su aplicación.
Campo
Descripción
Ediciones de Salesforce (Salesforce Editions)
(Obligatorio) Las ediciones de Salesforce compatibles con su
aplicación. Puede agregar o cambiar las ediciones.
Idiomas admitidos (Supported Languages)
(Obligatorio) Los idiomas que la aplicación admite. Puede
agregar o cambiar los idiomas.
Requisitos del sistema
Los requisitos de su aplicación. Por ejemplo, podría indicar
requisitos de sistema operativo, versiones del navegador u otro
software necesario para que la aplicación funcione
correctamente.
Ficha Soporte
En la ficha Soporte (Support) se proporciona información del servicio de atención al cliente que quiere prestar a los clientes.
Campo
Descripción
Con asistencia (Supported) o Sin asistencia (No
Aquí se indica si la aplicación dispone o no de servicio de
asistencia. En caso de que lo tenga, ingrese la información que
se solicita. En caso contrario, solo tiene que aceptar un acuerdo
de términos y condiciones.
Support)
Número de teléfono
El teléfono de asistencia de su compañía. Indique si en este
número de teléfono se aplican cargos adicionales.
Email
El email de asistencia de su compañía. Indique si en esta
dirección de email se aplican cargos adicionales.
URL del chat online (Online Chat URL)
La dirección del servicio de chat online de su compañía.
Indique si en esta asistencia online se aplican cargos
adicionales.
116
Publicación de la aplicación
Ficha Contenido cargado
Campo
Descripción
URL de base de datos de conocimientos
(Knowledge Base URL)
La dirección de la base de datos de conocimientos de su
compañía. Indique si en el acceso a esta base de datos se aplican
cargos adicionales.
Asistencia disponible las 24 horas de los 7
días de la semana (Support Available 24 hrs
× 7 days)
Indique si el servicio de asistencia está disponible siempre: las
24 horas del día, los siete días de la semana.
Asistencia Premium disponible (Premium
Support Available)
Indique si ofrece un paquete de soporte premium.
Acuerdo de nivel de servicio (Service Level
Agreement)
Indique si ofrece un contrato de prestación de servicios.
Detalles de asistencia (Support Details)
Ingrese información detallada sobre las funciones de la
asistencia.
Términos y condiciones (Terms & Conditions)
Ingrese los términos y condiciones que los clientes deben leer
y aceptar antes de instalar la aplicación. Si ocupan más de
32.000 caracteres, ingrese un acuerdo abreviado y deje el
documento completo como referencia en su sitio Web.
Ficha Contenido cargado
En la ficha Contenido cargado (Uploaded Content) puede agregar o eliminar archivos de su lista, tales como archivos de
logotipos, paneles y videos.
Campo
Descripción
Logotipo
Cargue los logotipos de su lista. Sus logotipos se muestran en
muchos lugares en AppExchange, incluida su lista, en los
resultados de búsqueda y en la página de inicio. Consulte
nuestras directrices para crear un logotipo fantástico. Mientras
su lista sea privada, si no carga ningún logotipo, AppExchange
mostrará logotipos predeterminados. Para que su lista sea
pública, deberá cargar logotipos de pequeño tamaño, en
mosaico y de alta resolución, como puede ver en la descripción
siguiente.
• Logotipo pequeño: cargue un archivo PNG de 100 KB
como máximo. Las medidas deben ser exactamente 60 ×
60 píxeles.
• Logotipo en mosaico: cargue un archivo PNG de 300 KB
como máximo. Las medidas deben ser exactamente 280 ×
205 píxeles.
• Logotipo de alta resolución: cargue un archivo PNG de
alta resolución, con un fondo transparente y 10 MB como
máximo Su uso será únicamente para las tareas de
marketing y no se utilizará en el sitio.
Los efectos, como las sombras, se aplican de forma automática
por lo que no tiene que incluirlos en el logotipo.
117
Publicación de la aplicación
Directrices para el logotipo
Campo
Descripción
Panel (Banner)
Puede cargar un panel para su lista. Este se mostrará en la
página de resumen de la lista. Puede cargar un archivo PNG
de 1 MB como máximo. Las medidas deben ser exactamente
1200 × 300 píxeles.
Video
Proporcione un video sobre su lista. Dispone de dos opciones:
• Especifique una URL para ver un video en una página
nueva. El cliente abandonará la página de su lista pero le
permitirá generar prospectos.
• Incruste un video de YouTube en la misma página. De
este modo, se proporciona una experiencia integrada para
el cliente pero no le permite generar prospectos. Deberá
especificar una leyenda para el video.
Imágenes
Puede cargar hasta ocho imágenes de su lista. En este caso no
hay restricciones en el tamaño de la imagen. Los archivos
deben ser del formato PNG y tener 1 MB como máximo.
Recursos
Puede cargar hasta seis documentos técnicos, testimonios,
estudios de casos, hojas de datos, seminarios Web, guías de
personalización u otros recursos que se puedan alojar en
AppExchange o en otros lugares. Los recursos pueden ser
archivos PDF de 10 MB como máximo.
Directrices para el logotipo
Los logotipos son mucho más que elementos decorativos. Un buen logotipo transmite a sus clientes confianza en su aplicación
o servicio porque ha dedicado tiempo a crear una marca. También comunica los atributos principales de su oferta.
Sugerencias para crear un buen logotipo:
1. Contrate a un diseñador o aproveche los servicios de logotipos de origen social: ambas opciones puede encontrarlas online
y puede establecer el precio que desee pagar por su logotipo.
2. No use simplemente el logotipo de la compañía: que la aplicación o el servicio tenga su propio nombre y logotipo constituye
una plataforma para ampliar la oferta.
3. Utilice imágenes reconocibles: la finalidad es que la gente reconozca su marca al instante, sin tener que descifrar referencias
imposibles.
4. Recurra a la simplicidad: evite usar fotos, palabrería e imágenes complejas.
5. Dedique tiempo a ver lo que han hecho sus competidores y curiosee las aplicaciones más populares: inspírese en el mercado.
6. Pruebe el logotipo en distintos contextos: sobre fondos blancos, negros y junto al logotipo de la compañía.
Ficha Prospectos
En la ficha Prospectos (Leads) puede especificar los escenarios en los que se generan prospectos desde su lista.
118
Publicación de la aplicación
Marca de la aplicación
Campo
Descripción
Enviarme prospectos en la instalación (Send
me leads on install)
En las listas de aplicaciones, se envía un prospecto cuando un
cliente instala su aplicación. Debe seleccionar esta opción si
requiere que los clientes se pongan en contacto con usted para
obtener información sobre la instalación.
Enviarme prospectos cuando pruebe la
aplicación (Send me leads on test drive)
En las listas de aplicaciones, se envía un prospecto cuando un
cliente prueba la aplicación.
Enviarme prospectos en la demostración (Send En las listas de aplicaciones, se envía un prospecto cuando un
me leads on demo)
cliente ve la demostración.
Enviarme prospectos cuando me inscriba en la En las listas de aplicaciones, se envía un prospecto cuando el
prueba gratuita (Send me leads on free trial cliente se inscribe e una prueba gratuita.
sign up)
Enviarme prospectos cuando pulse Más
información (Send me leads on learn more)
En las listas de servicios, se envía un prospecto cuando el
cliente hace clic en Más información en su lista.
Enviarme prospectos al ver el video (Send me En las listas de servicios, se envía un prospecto cuando un
leads on video)
cliente ve el video.
Campaña (Campaign) (opcional)
Si quiere asociar los prospectos que la lista genera con una
campaña, ingrese el Id. de una campaña. Este identificador
comienza por 701 y contiene 15 caracteres.
Enviar prospectos a (Send Leads To)
Haga clic en Cambiar organización (Change Organization)
para especificar la organización de Salesforce a la que quiere
enviar los prospectos de esta lista. La organización debe tener
Prospecto Web habilitado.
Marca de la aplicación
Cuando diseñe las listas de aplicaciones, es importante tener en cuenta la importancia de los elementos de marca. Determine
una marca significativa y potente que pueda usar siempre del mismo modo en AppExchange para que identifique a la aplicación.
Consulte el documento sobre directrices para el uso de las marcas y el logotipo del socio en el contenido del portal de socios donde
se tratan las convenciones para las marcas y el logotipo de la aplicación. Puede llegar a la página Relaciones públicas (Public
Relations) de dos maneras: Inicio > Programas > Programa de consultoría > Orientación al mercado > Relaciones públicas
(Home > Programs > Consulting Program > Go-to-market > Public Relations) o Inicio > Programas > Programa de ISV >
Orientación al mercado > Relaciones públicas (Home > Programs > ISV Program > Go-to-market > Public Relations).
Envío de la lista para su aprobación
Las únicas aplicaciones que se pueden buscar en AppExchange son las que figuran en listas públicas. Para incluir la aplicación
en una lista pública o proporcionar públicamente una plantilla de prueba en AppExchange, esta debe superar larevisión de
seguridad de AppExchange. La finalidad de esta revisión es garantizar que la instalación de la aplicación o la plantilla de prueba
es segura para los clientes. Como proveedor, está obligado a actualizar la información de revisión de seguridad cada vez que
cambie la aplicación o la plantilla de prueba.
Nota: La información proporcionada en esta revisión está disponible para todos los clientes de AppExchange.
119
Publicación de la aplicación
Envío de la lista para su aprobación
Para comenzar la revisión de una aplicación en paquete, efectúe los pasos siguientes
1. Haga clic en Iniciar revisión (Start Review) en la columna Revisión de seguridad (Security Review) del paquete en la
página de inicio de Publicación o en Iniciar revisión en la ficha Oferta cuando edite la lista.
2. Indique si la aplicación es o no gratuita. Las aplicaciones gratuitas deben completar la revisión pero no se aplica la tasa de
revisión.
3. Si va a cobrar por la aplicación, recibirá en un plazo de dos días un email del equipo de operaciones de socios con información
sobre el pago de la revisión. Se trata de un pago anual.
4. Indique si la aplicación está integrada con algún servicio Web fuera de Force.com, incluidos sus propios servidores.
5. Si la aplicación se integra con otros servicios Web, indíquelos en el cuadro Servicios Web utilizados (Webservices
Used). Puede ingresar hasta 1.000 caracteres.
6. Si su aplicación se integra con otros servicios Web, seleccione cómo realiza la autenticación con esos servicios. En el cuadro
pertinente, ingrese los comentarios que puedan ser útiles. Puede ingresar hasta 1.000 caracteres.
7. Indique si la aplicación almacena las credenciales de usuario de salesforce.com fuera de Force.com.
8. Indique si la aplicación almacena los datos de cliente de salesforce.com fuera de Force.com.
9. Si la aplicación almacena datos de cliente de salesforce.com fuera de Force.com, indique todos los objetos de salesforce.com
a los que se accede en el cuadro Objetos a los que se accede. Puede ingresar hasta 255 caracteres.
10. Indique si la aplicación requiere que los clientes instalen componentes de cliente, por ejemplo software o complementos.
11. Si la aplicación requiere componentes de cliente, ingrese los detalles en el cuadro Requisitos (Requirements). Puede
ingresar hasta 1.000 caracteres.
12. Haga clic en Iniciar revisión de seguridad (Start Security Review) para comenzar la revisión de seguridad de AppExchange.
Para no aplicar los cambios y regresar a la página anterior, haga clic en Cancelar (Cancelar).
Importante: En virtud del contrato, debe mantener esta información actualizada. Por ejemplo, si actualiza la
aplicación para utilizar un nuevo servicio Web, debe modificar la información en el envío de revisión de seguridad.
Para modificar la información de envío, haga clic en Modificar revisión (Edit Review) en la ficha Oferta cuando
modifique la lista. Las aplicaciones se revisan de nuevo periódicamente.
Una vez que comience la revisión, un miembro del equipo de operaciones de socios le enviará, en un plazo de dos días laborables,
un email con los pasos siguientes.
Para proporcionar una prueba gratuita de la aplicación y Salesforce, tanto la aplicación (paquete) como su plantilla de Trialforce
deben someterse a una revisión. Para comenzar el proceso de revisión para una plantilla de Trialforce, haga lo siguiente:
1. Asegúrese de que todos los paquetes incluidos en la plantilla de Trialforce ha superado la revisión de seguridad de
AppExchange. No se aplica ningún costo adicional por este proceso.
2. Haga clic en Iniciar revisión en la columna Revisión de seguridad de la plantilla de Trialforce en la página de inicio de
Publicación.
3. Haga clic en Inscribirse mediante plantilla de prueba (Sign Up Using Trial Template).
4. Ingrese el nombre de usuario y el email que desee para la nueva organización. Las credenciales nuevas (nombre de usuario
y contraseña) se enviarán a este email.
5. Haga clic en Enviar.
6. Una vez que reciba el email de inscripción con sus credenciales de usuario, inicie sesión en esa organización y establezca la
contraseña permanente.
7. Regrese a AppExchange y a la página de revisión de seguridad de la plantilla mediante la opción Iniciar revisión que
encontrará en la columna Revisión de seguridad en la página de inicio de Publicación.
8. Haga clic en Cambiar organization (Cambiar organización).
9. Ingrese su nombre de usuario y contraseña para la organización de prueba nueva.
120
Publicación de la aplicación
Registro del paquete y elección de la configuración de la licencia
10. Haga clic en Iniciar revisión de seguridad (Start Security Review) o haga clic en Cancelar (Cancel) para no aplicar los
cambios y regresar a la página anterior. El proceso de revisión de la plantilla lleva varios días. En caso de tener preguntas,
el equipo de revisión se pondrá en contacto con usted.
Registro del paquete y elección de la configuración de la licencia
Si registra el paquete de la aplicación recibirá un registro de licencia cada vez que un cliente instale la aplicación. Las licencias
permiten realizar el seguimiento de las personas que utilizan la aplicación y del tiempo durante el que lo hacen. Para poder
registrar el paquete, deben cumplirse las condiciones siguientes:
•
•
Su aplicación es un paquete gestionado.
Ha instalado la aplicación de gestión de licencias (LMA). La organización donde instala la LMA se denomina Organización
de gestión de licencias (LMO). Normalmente, la LMA y la APO son la misma organización.
Registre el paquete y elija los valores predeterminados de licencias:
1. En la página de inicio de Publishing, haga clic en Gestionar licencias (Manager Licenses) junto al paquete cargado y
gestionado.
2. En la página de registro del paquete cargado, haga clic en Registrar (Register). Si el paquete nunca ha estado asociado con
una LMO, seleccione una. Si ya había una versión anterior del paquete registrada, la configuración de esta aparecerá de
forma automática. Puede modificar esta configuración excepto la LMO. Para cambiar una LMO debe hacer contacto con
salesforce.com.
3. Seleccione si la licencia predeterminada es una licencia de prueba gratuita o una activa. Si se trata de una licencia gratuita,
seleccione Activar (Activar).
4. Si ha seleccionado una licencia de prueba gratuita, ingrese la duración en número de días completos, hasta un máximo de
90. Si ha seleccionado una licencia activa, ingrese la duración en número de días completos. Si la licencia es gratuita o no
caduca, seleccione La licencia no caduca (License does not expire).
5. Ingrese el número de puestos asociados con la licencia predeterminada o seleccione La licencia es para todo el sitio (License
is site-wide) para ofrecer la licencia a todos los usuarios en la organización del instalador.
6. Haga clic en Guardar.
Notificaciones por email
Emails de notificación de instalación
Los suscriptores de la aplicación recibirán una notificación por email 30 días después de su instalación inicial. La finalidad de
esta es agradecer a los usuarios la instalación de la aplicación y animarles a escribir su opinión para compartir sus experiencias
con los demás. La notificación se envía únicamente cuando se cumplen las condiciones siguientes:
•
•
•
Existe una dirección de email válida para ese usuario.
No se ha enviado aún una notificación al usuario.
El usuario no ha publicado aún ningún comentario.
Emails de notificación de comentarios
Cuando los usuarios publican comentarios y opiniones sobre su aplicación y las listas de sus socios de consultoría, se envían
por email notificaciones a las partes interesadas. Existen varios tipos de notificaciones por email que dependen de la función
del usuario en la plática (proveedor, autor o comentarista).
121
Publicación de la aplicación
Tipo de notificación
por email
Uso de Checkout de AppExchange
Enviada a
Detalles
Nueva opinión sobre su Usted como proveedor Enviada únicamente si ha especificado una dirección de email en el campo
lista
Email para opiniones (Reviews Email) en la ficha Modificar lista > Básica
(Edit Listing > Basic).
Nuevo comentario sobre El autor de la opinión
su opinión
Se envía únicamente si otra persona distinta del autor de la opinión hace
un comentario sobre la opinión y siempre cuando el autor haya decidido
en su perfil que desea recibir estas notificaciones por email. Si el autor
responde a la notificación, la respuesta se publica como un comentario
nuevo en la opinión.
También comentado en Las personas que han
la opinión
comentado sobre la
opinión
Se envía a las personas que han comentado sobre una opinión y no son el
autor de la opinión ni de este comentario y, por supuesto, han decidido en
sus perfiles que desean recibir las notificaciones por email. Como mucho
se envía una notificación por email a cada comentarista por cada comentario
nuevo. Si la persona responde a la notificación, la respuesta se publica
automáticamente como un comentario nuevo en la opinión.
Nuevo comentario sobre Usted como proveedor Se envía cada vez que alguien escriba un comentario nuevo sobre una
la opinión de su lista
opinión de su lista. La notificación se envía únicamente si ha especificado
una dirección de email en el campo Email para opiniones en la ficha
Modificar lista > Básica.
Uso de Checkout de AppExchange
Checkout es un servicio de salesforce.com y Recurly que posibilita que los clientes paguen por sus aplicaciones directamente
en AppExchange. El servicio carga el importe directamente en las tarjetas de crédito de los clientes y deposita el dinero en su
cuenta. Si el acceso a su aplicación se vende como una suscripción, el servicio facturará a los clientes con determinada periodicidad.
Checkout le proporciona acceso perfecto a la gestión de facturación y suscripción recurrente sin contacto que proporciona
Recurly. Esto incluye el acceso a la gestión del pago inicial, complementos, reducciones, cancelaciones y renovaciones automáticas.
Además, actualiza automáticamente las licencias en la aplicación de gestión de licencias (LMA). Checkout facilita a los clientes
el pago de su aplicación al tiempo que a usted le ahorra el trabajo de gestionar las facturaciones y las licencias recurrentes.
Para inscribirse en Checkout:
1.
2.
3.
4.
5.
Haga clic en la ficha Publicando (Publishing) en AppExchange.
Haga clic en Modificar lista (Edit Listing) para su aplicación.
Haga clic en la ficha Precios (Pricing) en la página Lista (Listing).
Haga clic en Inscribirse en Checkout (Sign up for Checkout).
Se mostrará una superposición en la que se explica el servicio y que comprueba que utiliza su organización de publicación
de AppExchange (APO) y que ha vinculado la cuenta del socio a su perfil de proveedor de AppExchange. Haga clic en
Inscripción (Sign Up) para continuar.
6. Se mostrará una superposición que contiene los términos y condiciones de Recurly y de salesforce.com. Acéptelos para
continuar.
7. Un mensaje confirmará que se ha inscrito en Checkout. Finalice especificando la información de precios en la ficha Precios
(Pricing) para su aplicación.
Aquí termina el proceso de inscripción en Checkout. Para activar Checkout en su lista, deberá registrarse en Recurly. Para
ello, haga clic en el vínculo Go to Recurly (Ir a Recurly) que se muestra en el mensaje de advertencia de que este es el último
paso. En Recurly, deberá hacer lo siguiente:
122
Publicación de la aplicación
Preguntas más frecuentes sobre Checkout de AppExchange
1. Especificar la información de la pasarela de pago y de la cuenta bancaria comercial.
2. Proporcionar una tarjeta de crédito que se usará para facturarle todos los meses. Se le cobrará el 15 % de sus ingresos
facturados a través de Checkout de AppExchange.
3. Active el servicio.
Para obtener más información sobre estas tareas, visite http://appexchange-docs.recurly.com.
Una vez que haya activado Checkout, a todos los clientes que compren su aplicación en AppExchange se les pedirá los datos
de su tarjeta de crédito. Si continúan el proceso de instalación de su aplicación, se les cobrará según los detalles de pago que
haya especificado.
Preguntas más frecuentes sobre Checkout de AppExchange
Esta sección contiene una lista en orden alfabético de las preguntas más frecuentes planteadas sobre el servicio Checkout de
AppExchange.
•
•
•
•
•
•
•
•
•
•
•
•
•
¿Puedo tener varias listas para una aplicación?
¿Puedo usar mi sistema de procesamiento de cargos en tarjetas de crédito actual junto con Checkout y Recurly?
¿Existen precios que no sean por usuario y mes, por ejemplo, 5.000 $ por año y por instancia de Salesforce?
¿Queda una licencia inactiva de forma automática si se rechaza una tarjeta de crédito?
¿Sustituye Checkout a la LMA? ¿Seguirá la LMA controlando el estado de las licencias (activas/prueba) o las licencias
estarán activas para cualquier compra que se realice a través de Checkout?
¿Permite Checkout el pago en varias divisas?
¿Se aplica el reparto de ingresos a las transacciones que no se procesen con Checkout?
¿Cómo funciona la facturación cuando los clientes agregan o eliminan las licencias durante el mes?
¿Cómo afecta Checkout a los procesos actuales, tales como la gestión de prospectos, Trialforce y las licencias de prueba?
Por ejemplo, ¿cómo interactuará la inscripción en Checkout con el procesamiento de prospectos?
¿Cómo debería tramitar las facturas para mis clientes?
Si se rechaza un cargo, ¿existe algún periodo de gracia antes de que la licencia quede deshabilitada en la LMA?
Si un administrador instala la aplicación, ¿puede otra persona de la compañía ir a su cuenta de AppExchange para comprar
ahora?
¿Hay un reparto de ingresos mínimo? Por ejemplo, si el 15 % es inferior 1,00 $, ¿sigue siendo el reparto de ingresos el
15 %?
¿Puedo tener varias listas para una aplicación?
Puede tener dos listas pero solo si dispone de dos paquetes separados. Un paquete solo puede estar asociado a una lista.
¿Puedo usar mi sistema de procesamiento de cargos en tarjetas de crédito
actual junto con Checkout y Recurly?
Recurly es compatible solo con algunas pasarelas que no sean de Recurly. Para obtener más información, consulte
http://appexchange-docs.recurly.com/payment-gateways/additional.
¿Existen precios que no sean por usuario y mes, por ejemplo, 5.000 $ por
año y por instancia de Salesforce?
No por el momento. Las opciones de precios disponibles actualmente son las siguientes:
123
Publicación de la aplicación
•
•
•
•
¿Queda una licencia inactiva de forma automática si se rechaza
una tarjeta de crédito?
por usuario y mes
por compañía y mes
un solo pago por usuario
un solo pago por compañía
¿Queda una licencia inactiva de forma automática si se rechaza una tarjeta
de crédito?
Si se rechaza una tarjeta de crédito, Recurly intenta realizar el cargo y solicitará al suscriptor la información de pago actualizada.
Si ese proceso falla, Recurly puede cancelar la suscripción o mantenerla activa. Puede especificar el comportamiento en la
configuración de la cuenta de Recurly.
¿Sustituye Checkout a la LMA? ¿Seguirá la LMA controlando el estado de
las licencias o las licencias estarán activas para cualquier compra que se
realice a través de Checkout?
Checkout no sustituye a la LMA sino que funciona junto con ella para controlar si una aplicación está activa o inactiva, así
como para saber cuántas licencias tiene una organización. Checkout crea y actualiza de forma automática los registros de
licencias en la LMA según sea necesario. No puede modificar directamente los registros de licencias creados por Checkout.
Para cambiar alguno de estos registros, actualice antes la información de suscripción correspondiente en Recurly. Después,
Checkout actualizará de forma automática los registros en la LMA.
¿Permite Checkout compras en varias divisas?
Checkout puede aceptar pagos en cualquier divisa compatible con su pasarela de pagos. Cuando se inscribe en Recurly, se elige
una divisa de pago predeterminada basada en el país (por ejemplo, USD si se encuentra en Estados Unidos). Puede habilitar
cualquier otra divisa que la pasarela de pagos acepte; para ello, debe modificar la configuración de cuenta de Recurly. Después,
puede especificar esa divisa en el campo Cambiar de la ficha Precios correspondiente a la lista de su aplicación. Cuando los
clientes compran la aplicación, Checkout les cobra el importe correspondiente en esta divisa y abona el dinero en esta divisa
en su cuenta bancaria comercial.
Nota: En este momento, solo puede seleccionar un valor para la divisa. No puede incluir su aplicación varias veces
en la lista para ofrecerla en varias divisas.
¿Se aplica el reparto de ingresos a las transacciones que no se procesen
con Checkout?
El reparto de ingresos se aplica únicamente a las transacciones de Checkout, es decir a los cargos en su cuenta de Recurly
vinculados a su organización de publicación de AppExchange (APO).
¿Cómo funciona la facturación cuando los clientes agregan o eliminan
las licencias durante el mes?
En el caso de que se agreguen o se eliminen licencias a mitad de mes se cobrará un importe prorrateado para ese mes.
124
Publicación de la aplicación
¿Cómo afecta Checkout a los procesos actuales, tales como la
gestión de prospectos, Trialforce y las licencias de prueba? Por
ejemplo, ¿cómo interactuará la inscripción en Checkout con el
procesamiento de prospectos?
¿Cómo afecta Checkout a los procesos actuales, tales como la gestión de
prospectos, Trialforce y las licencias de prueba? Por ejemplo, ¿cómo
interactuará la inscripción en Checkout con el procesamiento de
prospectos?
Checkout no afecta a la manera en que se le envían los prospectos ni afecta a la configuración de Trialforce. Sin embargo, sí
cambia la manera en que se gestionan las licencias de prueba de AppExchange. Cuando un cliente se inscribe en una prueba
con Checkout, el usuario de dicha prueba se mostrará con el estado de activo en la LMA.
¿Cómo debería tramitar las facturas para mis clientes?
Recurly envía las facturas a los clientes de forma automática. Los clientes también pueden ver las facturas directamente en
AppExchange. Usted solo tiene que crear las facturas para los clientes que no compren a través del servicio Checkout.
Si un administrador instala la aplicación, ¿puede otra persona de la
compañía ir a su cuenta de AppExchange para comprar ahora?
Cualquier usuario con permisos para instalar aplicaciones puede llevar a cabo acciones de Comprar ahora, siempre y cuando
también tengan el permiso “Gestionar facturación”. Se trata del mismo permiso obligatorio para ver la página Mi cuenta o
para comprar aplicaciones a través de Checkout dentro de Salesforce.
Si se rechaza un cargo, ¿existe algún periodo de gracia antes de que la
licencia quede deshabilitada en la LMA?
Sí. El periodo de gracia predeterminado es de 10 días y el cliente recibe dos notificaciones por email antes de que la licencia
quede deshabilitada. En la configuración de la cuenta de Recurly puede cambiar el comportamiento predeterminado.
¿Hay un reparto de ingresos mínimo? Por ejemplo, si el 15 % es inferior
1,00 $, ¿sigue siendo el reparto de ingresos el 15 %?
No hay ningún cargo mínimo para las aplicaciones que se venden a través de Checkout. El reparto de ingresos siempre es el
15 %, incluso si este es menor de 1,00 $.
Trabajo con prospectos de AppExchange
AppExchange recopila la información de contacto cuando los usuarios realizan varias acciones en la lista de aplicaciones o
servicios de consultoría de un proveedor. Esta información se envía a una organización de Salesforce, elegida por el proveedor,
en forma de prospecto. Los proveedores pueden elegir qué acciones serán las que capten prospectos. Las acciones siguientes
se pueden configurar para captar prospectos:
•
•
•
•
Confirmar instalación (solo aplicaciones)
Tomar una unidad de prueba (solo aplicaciones)
Ver una demostración/video
Inscribirse en una prueba gratuita de una aplicación del proveedor y Salesforce (solo aplicaciones)
125
Publicación de la aplicación
•
¿Cómo recibo prospectos desde AppExchange?
Hacer clic en Más información (solo servicios de consultoría)
¿Cómo recibo prospectos desde AppExchange?
Para recibir prospectos desde AppExchange, modifique la lista de AppExchange y haga clic en la ficha Prospectos (Leads).
Especifique las acciones que quiere que capten los prospectos y la organización de Salesforce a la que se enviará la información.
Esta organización debe tener la función Prospecto Web habilitada y debería ser una organización de Salesforce estándar o la
organización CRM para ISV del proveedor. En ningún caso debería ser una organización con Developer Edition. Los socios
de salesforce.com pueden registrar un caso en el portal de socios de Salesforce.com para obtener una organización CRM para
ISV. Además, los proveedores pueden especificar, si lo desean, un Id. de campaña para cada acción de la que quieren recibir
prospectos. Los prospectos creados se asociarán de forma automática con la campaña correcta en la organización de Salesforce
del proveedor.
¿Puedo recibir prospectos correspondientes solo a mi solución principal
en AppExchange y no a las demás listas?
Cada lista se habilita por separado para la recopilación de prospectos. Si no desea recopilar prospectos para una lista determinada,
no especifique una organización que reciba prospectos en la ficha Prospectos (Leads).
¿Cómo sé que este prospecto procede de AppExchange?
Los códigos de origen de prospecto proporcionan información sobre la creación del prospecto y pueden ayudarle a saber cómo
actuar. El código de origen de prospecto siempre adopta la forma SFDC-XX|Nombre de lista o SFDC-dup-XX|Nombre
de lista. Si el código de origen contiene -dup-, AppExchange ya le ha enviado un prospecto para este usuario, lista o
acción en los últimos 180 días. XX identifica la acción que el usuario ha llevado a cabo para generar el prospecto.
¿Puede Salesforce anular la duplicación de prospectos antes de que los
reciba?
La mayoría de los socios a los que hemos consultado han pedido que se les envíe todos los prospectos. Cuando los prospectos
están duplicados en AppExchange lo indicamos del modo siguiente: SFDC-dup-XX|Nombre de lista.
Si el código de origen contiene -dup-, AppExchange ya le ha enviado un prospecto para este usuario, lista o acción en los
últimos 180 días. Por ejemplo, SFDC-dup-DM|VerticalResponse for AppExchange indica que se ha generado un
prospecto duplicado a partir de un usuario que ha hecho clic en el video de demostración en la lista VerticalResponse for
AppExchange.
¿Qué significan los códigos de origen de prospecto de mi lista?
Los códigos de origen de prospecto proporcionan información sobre la creación del prospecto y pueden ayudarle a saber cómo
actuar. El código de origen de prospecto siempre adopta la forma SFDC-XX|Nombre de lista o SFDC-dup-XX|Nombre
de lista. Si el código de origen contiene -dup-, AppExchange ya le ha enviado un prospecto para este usuario, lista o
acción en los últimos 80 días. XX identifica la acción que el usuario ha llevado a cabo para generar el prospecto.
En la tabla siguiente se muestran los códigos de acción y su significado:
126
Publicación de la aplicación
¿Cómo puedo ver más información en el registro de prospecto?
Código de origen de prospecto
Descripción
IN
El usuario ha comenzado el proceso de instalación de su
aplicación a través del botón Obtener ahora (Get It Now) en
su lista, ha aceptado los términos y condiciones y ha hecho
clic en el botón de instalación final en la página de
confirmación. A pesar de ello, es posible que el usuario no
haya completado la instalación o quizás ha desinstalado la
aplicación. Utilice la aplicación de gestión de licencias (LMA)
para realizar el seguimiento de los usuarios que han instalado
su aplicación.
DM
El usuario ha visto la demostración completa o parte de ella.
LM
El usuario ha hecho clic en Más información (Learn More)
en la lista de servicios. Nota: las listas de aplicaciones que antes
tenían botones Más información ahora tienen botones Obtener
ahora y reciben códigos de origen de prospecto con acciones
IN.
TS
El usuario ha hecho clic en Obtener ahora en su lista y ha
decidido comenzar una nueva prueba gratuita de 30 de días
de Salesforce y de su aplicación. Es probable que fuera un
cliente de salesforce.com anteriormente.
TD
El usuario ha optado por la unida de prueba al hacer clic en
Unidad de prueba (Test Drive) en su lista.
¿Cómo puedo ver más información en el registro de prospecto?
En estos momentos, los proveedores no pueden modificar el formulario de prospectos que los clientes deben rellenar cuando
ven una demostración, acceden a la unidad de prueba, instalan una aplicación o hacen clic en Más información. Indique las
mejoras que propone en IdeaExchange.
¿Cuál es la diferencia entre los prospectos y los registros de licencia que
la lista genera?
Al publicar una lista en AppExchange recibirá prospectos y podrá elegir los escenarios en los que se van a generar prospectos.
Si tiene una aplicación de gestión de licencias (LMA) instalada, podrá configurar los ajustes de la licencia predeterminada de
modo que cada vez que un cliente instale la aplicación recibirá un registro de licencia en la organización donde ha instalado la
LMA. Los registros de licencias y de prospectos son completamente independientes entre sí.
¿Qué sucede en mi lista si decido no recibir ningún prospecto de
AppExchange?
Si los proveedores no seleccionan ningún escenario en el que deseen recopilar prospectos, los usuarios no tendrán que rellenar
el formulario de inscripción de prospecto y no se enviará ningún prospecto. Con independencia de la configuración de los
prospectos, los usuarios siguen pudiendo ver la demostración, tomar una unidad de prueba, hacer clic en Más información e
instalar la aplicación.
127
Publicación de la aplicación
Reportes de análisis para publicadores
Reportes de análisis para publicadores
Los reportes de análisis de AppExchange contienen información sobre el desempeño de las listas de aplicaciones públicas o
de socios de consultoría. En ellos, se indican mediciones, efectuadas a lo largo del tiempo, sobre el número de instalaciones y
otras actividades del usuario. Con esta información, puede identificar cuáles son las áreas donde pueda ser necesario realizar
ajustes o mejoras con el fin de atraer a usuarios, que estos participen de forma activa y, en definitiva, aumentar el número de
instalaciones. Para acceder a los reportes, inicie sesión en Publicación de AppExchange y haga clic en el vínculo Reportes
(Reports) asociado a su lista pública. Tenga en cuenta que los reportes no están disponibles para las listas privadas.
Tipos de reporte
Para una lista de aplicaciones, los reportes disponibles son los siguientes:
•
•
•
•
Instalaciones (Obtener ahora) (Installs [Get It Now])
Prospectos
Recursos y promociones (Resources & Promotions)
Pruebas, demostraciones y capturas de pantalla (Test Drives, Demos & Screenshots)
Para una lista de socios de consultoría, los reportes disponibles son los siguientes:
•
•
Prospectos
Más información, videos y capturas de pantallas (Learn Mores, Videos & Screenshots)
Atributos de reportes
Todos los reportes comparten estos atributos comunes.
Nombre de lista
El título de la lista se muestra en la parte superior de todos los reportes.
Vínculo para volver a la página de inicio de Publishing
A través de este vínculo puede volver a la página de inicio de Publishing.
Menú Mostrar (Show)
Permite seleccionar un reporte de entre los disponibles que se muestran en orden alfabético.
Menú Intervalo de fechas (Date Range)
Permite elegir uno de los intervalos de fechas disponibles, entre los que se incluyen Los últimos 30 días (Last 30 Days),
Los últimos 60 días (Last 60 Days), Los últimos 90 días (Last 90 Days), Los últimos 120 días (Last 120 Days) y Los
últimos 180 días (Last 180 Days). La opción seleccionada de forma predeterminada es Los últimos 30 días.
Mediciones
Reporte
Mediciones
Instalaciones (Obtener ahora) (Installs [Get It Now])
Proporción de obtenciones ahora, instalaciones y clics para
instalar
Prospectos
Prospectos únicos, duplicados y totales
Recursos y promociones (Resources & Promotions)
Estudios de casos, hojas de datos, promociones, testimonios
de clientes, seminarios Web, guías de personalización,
documentos técnicos
Pruebas, demostraciones y capturas de pantalla (Test Drives, Pruebas, demostraciones y capturas de pantalla
Demos & Screenshots)
128
Publicación de la aplicación
Reporte Instalaciones (Obtener ahora) (Installs [Get It Now])
Reporte
Mediciones
Más información, videos y capturas de pantallas (Learn
Mores, Videos & Screenshots)
Más información, videos y capturas de pantallas
Gráfico de líneas
Muestra una o varias líneas de cada una de las mediciones que haya seleccionado para ver. Active las casillas de verificación
debajo del gráfico de las mediciones que quiere ver. De forma predeterminada, en el gráfico se incluyen todas las mediciones.
En los reportes las mediciones obtenidas a lo largo del tiempo se agrupan según la fecha de creación. Cuando haga clic
en el gráfico, se mostrarán la fecha y las mediciones seleccionadas correspondientes a ese día. Junto a cada medición, se
muestra el número total de elementos medidos en el intervalo de fechas seleccionado con independencia de si ha elegido
o no incluir el gráfico de esa medición.
Tabla
Todos los reportes incluyen una tabla. La primer columna en todos ellos corresponde a la fecha y las demás columnas
corresponden a las mediciones asociadas con el reporte. En la tabla se muestran 30 filas a la vez. Haga clic en Siguiente
(Next) para ver más datos. De forma predeterminada, la tabla se ordena desde la fecha más antigua a la más actual. Haga
clic en los encabezados de columnas para cambiar el orden. Al hacer clic una segunda vez en la columna de orden
seleccionada, se ordenarán los datos en el sentido contrario. El triángulo pequeño que apunta hacia arriba o hacia abajo
junto al encabezado de una columna indica el sentido que se sigue en el orden al tiempo que marca esa columna como
la columna de ordenación.
Reporte Instalaciones (Obtener ahora) (Installs [Get It Now])
En el reporte Instalaciones (Obtener ahora) (Installs [Get it Now]) se muestra el desempeño de la lista en función del número
de instalaciones.
Las mediciones disponibles son las siguientes:
•
•
•
Clics de obtenciones ahora
Clics de confirmación de instalación
Tasa de conversión: el número total de clics de confirmación de instalación dividido entre el número total de clics de
obtención ahora, mostrado como un porcentaje de dos cifras decimales.
La tabla contiene la información siguiente:
•
•
•
•
Fecha
Obtenciones ahora: el número total de clics de obtención ahora para esta lista en la fecha especificada.
Instalaciones: el número total de clics de instalación para esta lista en la fecha especificada.
Proporción de clics para instalar: el número total de clics de instalación para esta lista en la fecha especificada dividido entre
el número total de clics de obtención ahora en la fecha especificada, mostrado como un porcentaje de dos cifras decimales.
Reporte Prospectos
En el reporte Prospectos (Leads) se muestra el número de prospectos que ha recibido en la lista.
Las mediciones disponibles son las siguientes:
•
•
•
Prospectos únicos: el número total de prospectos, sin incluir los duplicados.
Prospectos duplicados: el número total de prospectos duplicados. Un prospecto duplicado es aquel que se crea cuando la
misma persona realiza la misma acción en la misma lista varias veces en los últimos 180 días.
Número total de prospectos: el número total de prospectos, incluidos los duplicados.
129
Publicación de la aplicación
Reporte Recursos y promociones
La tabla contiene la información siguiente:
•
•
•
•
Fecha
Prospectos únicos
Prospectos duplicados
Número total de prospectos
Reporte Recursos y promociones
En el reporte Recursos y promociones (Resources & Promotions) se muestra el desempeño de la lista en función de los recursos
y las promociones.
Las mediciones disponibles son las siguientes:
•
•
•
•
•
•
•
Estudios de casos: el número total de actividades relacionadas con estudios de casos de la lista por día.
Testimonios de clientes: el número total de actividades relacionadas con testimonios de clientes de la lista por día.
Guías de personalización: el número total de actividades relacionadas con guías de personalización de la lista por día.
Hojas de datos: el número total de actividades relacionadas con hojas de datos de la lista por día.
Seminarios Web: el número total de las actividades de seminarios Web de la lista por día.
Documentos técnicos: el número total de las actividades relacionadas con documentos técnicos de la lista por día.
Promociones: el número total de las actividades de promoción de la lista por día.
La tabla contiene la información siguiente:
•
•
•
•
•
•
•
•
Fecha
Estudios de casos
Testimonios de clientes
Guías de personalización
Hojas de datos
Seminarios Web
Documentos técnicos
Promociones
Reporte Pruebas, demostraciones y capturas de pantalla
En el reporte Pruebas, demostraciones y capturas de pantalla (Test Drives, Demos & Screenshots) se muestra el desempeño
de la lista en función de las actividades de evaluación.
Las mediciones disponibles son las siguientes:
•
•
•
Pruebas: el número total de actividades de pruebas de la lista por día.
Demostraciones: el número total de las actividades de demostración de la lista por día.
Capturas de pantalla: el número total de las actividades de capturas de pantalla de la lista por día.
La tabla contiene la información siguiente:
•
•
•
•
Fecha
Pruebas
Demostraciones
Capturas de pantalla
130
Publicación de la aplicación
Reporte Más información, videos y capturas de pantallas
Reporte Más información, videos y capturas de pantallas
En el reporte Más información, videos y capturas de pantallas (Learn Mores, Videos & Screenshots) se muestra el desempeño
de la lista del socio de consultoría en función del uso que se ha realizado de las opciones de más información, videos y capturas
de pantalla.
Las mediciones disponibles son las siguientes:
•
•
•
Más información: el número total de actividades de búsqueda de más información de la lista por día.
Videos: el número total de las actividades de demostración de la lista por día.
Capturas de pantalla: el número total de las actividades de capturas de pantalla de la lista por día.
La tabla contiene la información siguiente:
•
•
•
•
Fecha
Más información
Videos
Capturas de pantalla
Preguntas más frecuentes sobre AppExchange
Esta sección contiene una lista en orden alfabético de las preguntas más frecuentes planteadas sobre la venta en AppExchange.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
¿Puedo agregar más industrias?
¿Puedo agregar más idiomas?
¿Puedo asociar mi cuenta de socio con varios perfiles de proveedor (organización)?
¿Puedo cambiar el nombre de mi compañía?
¿Puedo crear mi aplicación en un sandbox de Salesforce y cargarla en AppExchange?
¿Puedo editar una opinión?
¿Puedo mantener la misma lista pero cambiar el paquete que proporciona?
¿Puedo actualizar mi aplicación con una versión nueva (parche)?
¿Cómo encontrarán los clientes mi lista?
¿Cómo modifico un paquete después de haber creado una lista?
¿Cómo obtengo un token de API para mi aplicación?
¿Cómo puedo aumentar la popularidad de mi lista?
¿Cómo puedo ofrecer una prueba gratuita de mi aplicación?
¿Cómo veo las listas que Salesforce ha eliminado?
¿Cómo pueden mis clientes actualizar la aplicación a una nueva versión?
¿Qué representan los iconos de mi lista?
¿Qué es una APO?
¿Qué diferencia hay entre una prueba gratuita y una unidad de prueba?
¿Dónde puedo compartir mis ideas?
¿Dónde puedo cargar los testimonios?
¿Dónde puedo escribir una opinión?
131
Publicación de la aplicación
¿Puedo agregar más industrias?
¿Puedo agregar más industrias?
No. Para evitar los abusos, solo puede especificar dos industrias para cada lista. Si abarca más, indíquelas en la descripción
completa o breve de la lista.
¿Puedo agregar más idiomas?
Cuando modifique una lista, puede seleccionar cualquier idioma en la lista Idiomas ofrecidos (Languages Spoken). Si
admite un idioma que no está en la lista, inclúyalo en la descripción breve o completa de la lista.
¿Puedo asociar mi cuenta de socio con varios perfiles de proveedor
(organización)?
Antes de que una lista pueda ser pública en AppExchange, debe asociar el perfil de proveedor en la organización de publicación
de AppExchange (APO) con su cuenta de socio. Para gestionar varias organizaciones de Salesforce bajo su cuenta de socio
puede vincular organizaciones a la APO pero una cuenta de socio solo puede estar asociada directamente con un perfil de
proveedor. Para eliminar la asociación entre la cuenta de socio y una organización, registre un caso en el servicio de atención
al cliente de Salesforce desde el portal de socios.
¿Puedo cambiar el nombre de mi compañía?
Sí, puede cambiar el nombre de la compañía en el perfil de proveedor. Antes de actualizar el perfil de proveedor, debe asegurarse
de que ha iniciado sesión en AppExchange con las credenciales de su organización de publicación de AppExchange (APO),
ya que los visitantes que consulten las listas en AppExchange solo pueden ver el perfil de proveedor que esté asociado a la
APO. Recuerde que debe cambiar también el nombre de la compañía en el portal de socios de salesforce.com.
¿Puedo crear mi aplicación en un sandbox de Salesforce y cargarla en
AppExchange?
No. Aunque puede utilizar un sandbox para instalar y probar la aplicación, deberá crear y cargar esta mediante una organización
con Developer Edition.
¿Puedo editar una opinión?
Puede modificar las opiniones que haya escrito usted. Si no las ha escrito, puede comentarlas.
¿Puedo mantener la misma lista pero cambiar el paquete que
proporciona?
Sí, puede cambiar los paquetes gestionados vinculados a la lista. En la página de inicio de AppExchange, haga clic en la ficha
Publishing e inicie sesión con las credenciales de su organización de publicación de AppExchange (APO). Haga clic en Sus
organizaciones (Your Organizations) y, después, en Vincular organización nueva (Link New Organization). Agregue las
credenciales de la organización Developer Edition donde ha creado el paquete gestionado nuevo. De este modo, todas las listas
y paquetes que haya creado su organización con Developer Edition estarán visibles en su APO.
132
Publicación de la aplicación
¿Puedo actualizar mi aplicación con una versión nueva (parche)?
¿Puedo actualizar mi aplicación con una versión nueva (parche)?
Sí, pero debe enviar la aplicación nueva (paquete) para someterla a la revisión de seguridad de AppExchange y debe registrar
el paquete con su aplicación de gestión de licencias (LMA).
¿Cómo encontrarán los clientes mi lista?
En AppExchange se buscan las aplicaciones y los servicios de consultoría de varias maneras diferentes: mediante términos de
búsqueda, categorías de búsquedas y a través de proveedores de búsquedas externos, como Google. Resulta de gran utilidad
conocer el puesto en que aparece la lista en cada uno de estos escenarios para poder obtener la máxima visibilidad entre los
posibles clientes.
•
La mayoría de las veces, las aplicaciones y los servicios de consultoría se buscan mediante un término (palabra clave) en la
página de inicio de AppExchange. AppExchange devuelve los resultados coincidentes y los ordena según la relevancia de
la palabra clave. Estas son algunas sugerencias para entender su funcionamiento:
◊ Si incluye una palabra clave en cualquier lugar de la lista, esta última aparecerá en los resultados de las búsquedas que
se hagan de esa palabra clave.
◊ Por lo general, la relevancia de una palabra clave aumenta al aparecer antes en la lista.
◊ Por lo general, la relevancia de una palabra clave aumenta al aparecer varias veces en la lista. Tenga en cuenta que aunque
una palabra figure varias veces en una fila, el puesto que ocupa la lista no mejora.
◊ Cuando se buscan dos o más palabras clave, solo se mostrarán las listas que contienen todas las palabras clave en el
mismo orden. Además, las búsquedas de varias palabras clave también encontrarán palabras que intercalen minúsculas
y mayúsculas (por ejemplo, una búsqueda de "Aplicación Fantástica" también encontrará"AplicaciónFantástica").
◊ Las listas que se muestran en los primeros puestos de una búsqueda son las más relevantes tanto desde el punto de vista
de palabra clave como de popularidad (por ejemplo, la que tiene instalaciones más frecuentes, etc).
•
•
•
Cuando se buscan aplicaciones y servicios de consultoría mediante categorías de búsqueda (fichas Inicio, Aplicaciones o
Servicios de consultoría), las listas de una categoría se ordenan según la popularidad obtenido durante los últimos 30 días.
La popularidad sube o baja en función de todas las acciones que pueden llevar a cabo los clientes: instalación de una
aplicación, realización de una prueba, observación de una demostración u otros recursos y clics en el vínculo de más
información. Las actividades con mayor compromiso, tales como la instalación de una aplicación o la realización de una
prueba, tienen un mayor peso específico que aquellas cuyo compromiso es menor, como hacer clic en capturas de pantalla.
Tenga en cuenta que el número de revisiones y el puntuaje medio de una lista no tiene nada que ver con la popularidad de
esta.
Los resultados se pueden ordenar por puntuaje, fecha de publicación, nombre o nombre del proveedor. Los que lo hacen
por puntuaje primero se ordenan por número de estrellas y luego por número de revisiones. Por tanto, una lista con una
revisión y cinco estrellas se situará antes que una lista con 20 revisiones y cuatro estrellas.
Debido a que AppExchange es un sitio Web público, los motores de búsqueda como Google y Bing indexan las páginas
de listas y las muestran en sus resultados de búsquedas. Para mejorar su puesto en los resultados de proveedores de búsqueda
externos, asegúrese de que hace referencia a la URL de su lista en su sitio Web, blog, Facebook y Twitter.
¿Cómo modifico un paquete después de haber creado una lista?
Cuando inicie sesión en la página Publishing de AppExchange con las credenciales de su APO, podrá ver una lista de todos
los paquetes cargados en AppExchange. Desde esta lista, puede hacer lo siguiente:
•
•
Seleccionar Mostrar solo los paquetes no incluidos en listas (Show only unlisted packages) para ver
únicamente las versiones de los paquetes cargados que no ha vinculado aún a una lista.
Hacer clic en Iniciar revisión (Start Review) para comenzar la revisión de seguridad de AppExchange.
133
Publicación de la aplicación
•
•
•
•
¿Cómo obtengo un token de API para mi aplicación?
Hacer clic en Modificar revisión para realizar cualquier cambio en el envío de la revisión de seguridad.
Para los paquetes no incluidos en listas, hacer clic en Incluir en lista (List It) para crear una lista nueva y vincularla a esta
versión de paquete de forma automática.
Para los paquetes incluidos en listas, hace clic en Modificar lista (Edit Listing) para modificar la lista actual.
Para las aplicaciones en paquetes gestionados, hacer clic en Gestionar licencias (Manage Licenses) para actualizar la
configuración de licencias para esta versión de paquete. Podría indicar si la aplicación es gratuita o está a la venta, si caduca
y, en ese caso, cuándo lo hará y el número de personas de la organización del instalador que pueden acceder a la aplicación.
¿Cómo obtengo un token de API para mi aplicación?
Para obtener un token de API para su aplicación con el fin de poder usar las API de SOAP y de REST, es necesario que la
aplicación supere la revisión de seguridad de AppExchange. Después, puede registrar un caso en el portal de socios en la
categoría AppExchange y listas de servicios > Habilitar API de SOAP/REST para organización con GE/PE (AppExchange
and Services Listings > Enable SOAP/REST API for GE/PE Org). Debe especificar el tipo de token (SOAP o API) y si
utiliza OAuth.
Nota: Esta función está disponible a los socios aptos. Para obtener más información sobre el programa de socios,
incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
¿Cómo puedo aumentar la popularidad de mi lista?
La popularidad se basa en la actividad de los clientes en las listas. AppExchange mide todo lo que los usuarios hacen en las
listas: instalar, buscar más información, usar versiones de prueba, ver demostraciones, observar capturas de pantalla, leer
documentos técnicos, hojas de datos, entre otras actividades. AppExchange valora todas estas actividades según su nivel de
importancia como indicaciones de interés e impide los intentos de abusar del sistema.
AppExchange calcula la popularidad todos los días y resume y evalúa los resultados obtenidos durante 30 días. Cuando busca
por categoría, verá las listas ordenadas según su popularidad relativa medida durante los últimos 30 días.
La popularidad no es el resultado de las opiniones de los clientes ni de las puntuaciones que estos den a la lista. Los visitantes
de AppExchange pueden ordenar por puntuación si lo prefieren.
Si quiere mejorar las clasificaciones, siga estos consejos:
•
•
•
•
Incluya una unidad de prueba. A los usuarios les gusta poder probar una aplicación y el número de unidades de prueba
afecta a la popularidad. Además, con ello puede recopilar prospectos.
Agregue imágenes. Una de las primeras cosas que hacen los visitantes es hacer clic en el botón Ver capturas de pantalla
(View Screenshots). Sin estas capturas, muchas personas no se detendrán a ver una lista.
Agregue más recursos, como hojas de datos y documentos técnicos.
Sea claro con respecto a los precios: si no muestra los precios en la lista, los visitantes se mostrarán indiferentes enseguida.
¿Cómo puedo ofrecer una prueba gratuita de mi aplicación?
Cuando cree o modifique una lista para una aplicación, en la ficha Oferta (Offering) deberá indicar si quiere ofrecer una prueba
gratuita de Salesforce y su aplicación. Antes de poder hacerlo, deberá solicitar acceso mediante el registro de un caso en el
portal de socios de salesforce.com. Cuando ya tenga el acceso otorgado, deberá preparar una organización de Salesforce de
ejemplo que incluya la aplicación y los datos de ejemplo. Esta organización será la que cree una plantilla de prueba para los
clientes que seleccionen la opción de prueba. Debe enviar la plantilla de prueba para someterla a la revisión de seguridad y debe
asociarla con la lista de aplicaciones antes de poder hacerla pública. Haga clic aquí para obtener más información sobre las
pruebas gratuitas en AppExchange.
134
Publicación de la aplicación
¿Cómo veo las listas que Salesforce ha eliminado?
¿Cómo veo las listas que Salesforce ha eliminado?
En la página de inicio de Publishing, haga clic en Mostrar solo las listas eliminadas (Show only delisted listings)
para ver las listas privadas que salesforce.com ha eliminado. Normalmente, estas eliminaciones de listas se deben a problemas
de estas en las revisiones de seguridad periódicas.
¿Cómo pueden mis clientes actualizar la aplicación a una nueva versión?
Cree una versión nueva del paquete gestionado y cargue esta versión en estado Editado. Cuando lo haga, podrá compartir la
URL de instalación con los clientes actuales para que estos puedan hacer la actualización. Si solo va a implementar una solución
de error y le gustaría que la actualización fuera automática, consulte “Programación de actualizaciones mediante envío” en la
ayuda online de Salesforce. Puede utilizar la aplicación de gestión de licencias (LMA) para averiguar cuáles son los clientes
que necesitan hacer la actualización.
¿Qué representan los iconos de mi lista?
Cuando los clientes potenciales buscan listas en AppExchange pueden identificar con rapidez las funciones de su aplicación
o servicio gracias a los iconos siguientes.
Icono
Descripción
Significa que se vende la aplicación y no es gratuita.
Significa que presta asistencia técnica para su aplicación.
Significa que se trata de una aplicación nativa. Esta se compila
principalmente en la plataforma Force.com con la posible
excepción de las llamadas efectuadas a los proveedores
siguientes: Google, Facebook o Amazon. Las aplicaciones
nativas proporcionan muchos de los beneficios de Salesforce
CRM y, por eso, gozan de popularidad entre los clientes. Para
que su aplicación se considere "nativa", registre un caso en el
portal de socios de salesforce.com.
Identifica el estado de asociación de salesforce.com como socio
de consultoría registrado.
Identifica el estado de asociación de salesforce.com como socio
de consultoría elegido.
Identifica el estado de asociación de salesforce.com como socio
de consultoría premier.
Identifica el número de individuos certificados de Salesforce
que hay en su organización. Para actualizar la información de
certificación, inicie sesión en el portal de socios de
salesforce.com.
Identifica el número de proyectos finalizados que su compañía
de consultoría ha registrado con salesforce.com. En la página
de listas, se muestra el porcentaje de los clientes satisfechos.
Este se calcula a partir de las respuestas a las encuestas enviadas
135
Publicación de la aplicación
¿Qué es una APO?
Icono
Descripción
desde salesforce.com directamente a los clientes cuando finaliza
un proyecto registrado. Para actualizar la información de
proyectos, inicie sesión en el portal de socios de salesforce.com.
¿Qué es una APO?
Todas sus aplicaciones y listas de servicios deben publicarse bajo una sola organización de salesforce.com, que será su organización
de publicación de AppExchange (APO) principal. Considere la APO como la organización donde efectuará toda la gestión
de AppExchange. Si tiene una organización de gestión de licencias (LMO), se recomienda utilizar la misma organización para
la LMO y la APO. De esta manera, podrá realizar en un solo lugar el seguimiento de los clientes que instalan la aplicación y
de los prospectos que la lista genera. La organización con Developer Edition donde crea las aplicaciones no debería designarse
como la APO.
Solo puede cambiar la APO si no tiene ninguna lista pública en AppExchange. Una vez que haya realizado al menos una lista
pública, solo podrá designar una organización diferente como la APO si registra un caso en el servicio de atención al cliente
de Salesforce desde el portal de socios.
¿Qué diferencia hay entre una prueba gratuita y una unidad de prueba?
Cuando cree o modifique una lista para una aplicación, en la ficha Oferta (Offering) deberá indicar si quiere ofrecer una prueba
gratuita de Salesforce y su aplicación. La prueba gratuita es una organización de Salesforce que no es de producción y que
incluye la aplicación y datos de ejemplo. Si un cliente decide comprar la aplicación en lugar de esperar a que caduque la prueba,
la organización se convierte en una versión de producción. Se recomienda dar a los clientes la opción de eliminar los datos de
ejemplo mediante una secuencia de comandos de limpieza de datos y la inclusión de un botón para tal fin en la aplicación.
Por otro lado, también puede ofrecer una unidad de prueba. Esta es una versión única de la aplicación de solo lectura en la que
inician sesión los clientes que tomen esta unidas de prueba. Al igual que las pruebas gratuitas, las unidades de prueba son
organizaciones con Developer Edition que incluyen datos de ejemplo y la configuración que elija usted.
¿Dónde puedo compartir mis ideas?
Puede compartir sus ideas sobre la mejora de los programas de socios de AppExchange o de salesforce.com en el portal de
socios de salesforce.com. Estas ideas solo las pueden ver salesforce.com y los demás socios. Si quiere que sus ideas sean públicas,
ingréselas en IdeaExchange.
¿Dónde puedo cargar los testimonios?
Cargue los testimonios en la ficha Contenido cargado (Uploaded Content) cuando modifique la lista.
¿Dónde puedo escribir una opinión?
En la página de listas, haga clic en el número de opiniones o escriba la primera. Si ya hay opiniones, se le redireccionará a la
página de opiniones donde puede hacer clic en Escribir una opinión (Write a review). Cada usuario puede escribir únicamente
una opinión por lista.
Importante: No puede escribir una opinión sobre su propia lista. Consulte las condiciones de uso de AppExchange
para obtener más información legal.
136
Capítulo 7
Gestión de licencias y asistencia administrativa
En este capítulo...
•
•
•
•
•
•
•
•
•
Descripción general de la Aplicación
de gestión de licencias (LMA)
Instalación de la LMA
Configuración de la LMA
Asociación de paquetes con su LMO
Uso de la LMA
Integración con ventas y marketing
Mejores prácticas
Preguntas más frecuentes sobre la
Aplicación de gestión de licencias
Solución de problemas
Si ha instalado la Aplicación de gestión de licencias (LMA) puede realizar el
seguimiento de licencias y prospectos, además de proporcionar asistencia
administrativa para sus clientes. Estos temas se han explicado con más detalle
en las secciones siguientes.
Tenga en cuenta que AppExchange constituye un mecanismo estándar para
presentar un acuerdo de licencia al instalador y requiere que se acepte este
acuerdo antes de continuar con la instalación. Si quiere que sea necesario un
acuerdo, pegue el texto del acuerdo de la licencia en el campo de texto Acuerdo
de licencia (License Agreement) en la página de la lista de aplicaciones en
el directorio de AppExchange.
Si la aplicación necesita una negociación de licencia más interactiva, asegúrese
de que en la página de bienvenida de la ficha Acerca de (About) se muestra con
claridad el acuerdo de licencia de usuario final obligatorio y se indica el proceso
recomendado para comenzar a usar la aplicación. En todos los casos,
salesforce.com incluye una renuncia de responsabilidad de la aplicación.
137
Gestión de licencias y asistencia administrativa
Descripción general de la Aplicación de gestión de licencias
(LMA)
Descripción general de la Aplicación de gestión de licencias (LMA)
La Aplicación de gestión de licencias (LMA) ayuda a los desarrolladores y editores a aplicar las licencias a sus aplicaciones de
AppExchange cargadas y registradas. Cada vez que un cliente o un cliente potencial instala su paquete gestionado, en la LMA
se crean un registro de prospecto y uno de licencia. Al especificar los valores predeterminados de los registros de licencia, puede
aplicar licencias para controlar el número de usuarios de la organización del cliente que puede acceder a su paquete y durante
cuánto tiempo. Al utilizar la LMA, puede realizar el seguimiento de cuántos clientes han instalado un paquete y la versión del
paquete están usando. Además, puede utilizarla para gestionar los prospectos asociados con las licencias.
Nota: La LMA está disponible únicamente en inglés.
La LMA es una aplicación que salesforce.com ha desarrollado y ha puesto a disposición de los socios aptos. Para obtener más
información sobre el programa de socios, incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
Concepto de gestión de licencias
El proceso de gestión de licencias comienza cuando alguien instala una aplicación desde AppExchange. A partir de ese momento,
Salesforce realiza de forma automática las acciones siguientes:
•
•
•
Crea una licencia en la organización del instalador. Se guarda una copia de la licencia en la ficha Licencias de la LMA
instalada en la LMO.
Actualiza la versión del paquete con la información de la licencia.
Crea un prospecto con el nombre, la compañía y la dirección de email del instalador. El origen del prospecto del instalador
siempre es la instalación del paquete.
Utilice la LMA para gestionar licencias para los paquetes gestionados. Al modificar los registros de licencias, podrá controlar
el número de usuarios de la organización del cliente que tendrán acceso al paquete y la duración de este privilegio.
Diagrama de relaciones de la entidad
La LMA tiene tres objetos personalizados que están relacionados, directa e indirectamente, con objetos de Salesforce estándares.
Consulte el diagrama de relaciones de la entidad siguiente para conocer cómo se establecen las relaciones de los objetos
personalizados entre sí.
138
Gestión de licencias y asistencia administrativa
•
•
•
•
•
Terminología de LMA
El objeto de paquete actúa de elemento raíz para toda la información de la LMA.
Cada paquete puede tener varias versiones. La versión de paquete mantiene una relación principal-detalle con el objeto de
paquete.
Cada versión de paquete puede tener varias licencias. La licencia mantiene una relación de búsqueda con el objeto de versión
de paquete.
Cada licencia tiene una relación directa con un solo prospecto. La licencia mantiene una relación de búsqueda con el objeto
de prospecto.
El prospecto se puede convertir manualmente en una cuenta y un contacto. Cuando sucede esto, el registro de licencia se
asocia de forma automática con los registros de la cuenta y el contacto convertidos. La licencia mantiene una relación de
búsqueda con los objetos de cuenta y contacto.
Terminología de LMA
Aplicaciones
Un conjunto de componentes de Salesforce como fichas, reportes, tableros y desencadenadores y clases de Apex destinados
a una necesidad concreta del negocio. La aplicación se almacena en un paquete para cargarlo en AppExchange.
Desarrollador
El desarrollador de una aplicación es el usuario de Salesforce que ha creado la aplicación y sus componentes. Puede ser
el propio editor u otra persona diferente.
Instalador
El instalador de una aplicación es la persona que ha instalado la aplicación desde AppExchange de Force.com en su
organización de Salesforce.
Gestor de prospectos
El gestor de prospectos es el usuario responsable del seguimiento de los prospectos que se crean de forma automática
cuando se instala un paquete gestionado. De forma predeterminada, los prospectos nuevos se asignan al gestor de licencias.
El editor (que posee la LMO) utiliza el gestor de prospectos para realizar el seguimiento de los clientes que desinstalan
los paquetes gestionados.
139
Gestión de licencias y asistencia administrativa
Instalación de la LMA
Licencia
Una instalación de un paquete efectuada por una organización de Salesforce. Cada entrada de licencia en la LMA
representa una instalación de un paquete gestionado.
Gestor de licencias
El usuario gestor de licencias se crea de forma automática cuando una organización instala la LMA. En ese momento,
también se crea un perfil Gestor de licencias de paquete correspondiente. Este usuario es el propietario predeterminado
de todos los paquetes gestionados mediante la LMA y todas las licencias creadas para estos paquetes.
Organización de gestión de licencias (LMO)
Una organización de gestión de licencias es la organización de Salesforce que puede utilizar para realizar un seguimiento
de todos los usuarios de Salesforce que instalan su paquete. Una organización de gestión de licencias debe tener instalada
la LMA. Recibe una notificación automáticamente cada vez que se instala o se desinstala su paquete, de manera que
puede notificar fácilmente a los usuarios de las actualizaciones.
Paquete gestionado
Los paquetes gestionados son aquellos paquetes que se pueden actualizar en la organización del instalador. Son distintos
de los no gestionados en que algunos componentes están bloqueados, lo que permite el proceso de actualización.
Paquete
El contenedor de una aplicación y sus componentes. En la LMA, el término paquete se refiere únicamente a los paquetes
gestionados. Un paquete puede contener una aplicación, muchas o ninguna.
Gestor de licencias de paquete
El perfil Gestor de licencias de paquete proporciona a un solo usuario, el gestor de licencias, acceso completo a la LMA.
No puede modificar este perfil ni asignarlo a otros usuarios.
Versión del paquete
Una versión específica de un paquete gestionado. La versión nueva se crea cuando el desarrollador carga el paquete
actualizado desde una organización de desarrollador.
Publicador
El publicador de una aplicación es el usuario de Salesforce o la organización que ha publicado la aplicación en
AppExchange. Después de registrar su aplicación, los publicadores deben registrarse con su información de contacto.
Instalación de la LMA
Antes de instalar la LMA, debe decidir qué organizaciones componen la organización de gestión de licencias (LMO). Como
la LMA es una parte integral de las ventas, facturación y marketing de un paquete gestionado, incluir la LMA en organización
equivocada dificulta la gestión de licencias como parte del proceso de ventas y marketing.
La LMA crea registros de prospectos y licencias cuando los clientes instalan un paquete de prueba. Cuando compran el paquete,
estas licencias se convierten licencias pagadas (por sitio o en función de un número de usuarios). La LMA realiza el seguimiento
de quién ha instalado un paquete de prueba, quién lo utiliza, cuántas licencias se han adquirido, cuándo está lista para la
renovación, etc. Todos estos elementos constituyen partes importantes del proceso de ventas, facturación y marketing que está
en curso en su organización de producción.
Si no ha solicitado aún un CRM para la organización ISV a través del portal de socios, hágalo ahora. CRM para los proveedores
de software independientes está disponible para los socios aptos. Para obtener más información sobre el programa de socios,
incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
140
Gestión de licencias y asistencia administrativa
Configuración de la LMA
Nota: Si tiene una organización con Developer Edition que se usa para crear un paquete gestionado, no utilice esta
organización como la LMO.
Advertencia: Cuando comience a gestionar una licencia del paquete fuera de una LMO específica, no podrá trasladar
esas licencias, prospectos ni ninguna otra información a otra organización. Una vez que instale la LMA, no podrá
desinstalarla. Si desea desinstalar la LMA, deberá hacer contacto con el servicio de asistencia de Salesforce.
Para instalar la LMA, haga lo siguiente:
1. Archive un caso en el portal de socios en la categoría AppExchange y listas de servicios > Solicitar la LMA (AppExchange
and Services Listings > Request the LMA).
2. Cuando se resuelva el caso, recibirá un email con una URL de instalación. Inicie sesión en la organización que va a utilizar
como su LMO y haga clic en el vínculo de LMA que figura en el mensaje de email.
3. Puede leer la reseña sobre la aplicación y hacer clic en Obtener ahora (Get It Now).
4. En la ventana emergente, elija En mi Salesforce de producción (In my production Salesforce).
5. Lea y acepte los términos y condiciones, y haga clic en Instalar (Install).
6. Compruebe su contraseña y haga clic en Enviar (Submit).
7. En la página Detalles de instalación del paquete (Package Installation Details), haga clic en Continuar (Continue).
8. Haga clic en Siguiente, Siguiente e Instalar.
Haga clic en la esquina superior derecha y confirme que tiene la LMA instalada.
Ilustración 15: Aplicación de gestión de licencias
Configuración de la LMA
Permisos de usuario necesarios
Para configurar la LMA, haga lo siguiente:
Perfil Administrador del sistema
Para editar licencias y paquetes:
"Lectura"
Y
"Modificación"
Para ver licencias, paquetes y versiones de paquetes:
"Lectura"
Después de instalar la LMA, configúrela del modo siguiente:
141
Gestión de licencias y asistencia administrativa
Asociación de paquetes con su LMO
1. Asigne un gestor de prospectos. Resulta fundamental que un usuario de la organización sea el propietario de todos los
registros de prospectos creados tras la instalación de paquetes.
2. Establezca los permisos de objeto personalizados.
a. Licencias: la mayoría de los usuarios en su organización no necesitan permisos. Los usuarios que ven licencias necesitan
el permiso de “lectura” y los que modifican registros de licencias necesitan los permisos de “lectura” y “modificación”.
b. Paquetes: solo los usuarios que asignan el gestor de prospectos necesitan permisos de “modificación”. Los demás tendrán
permisos de “lectura” o ningún permiso.
c. Versiones de paquetes: todos los usuarios tienen permisos de “lectura” o ningún permiso, ya que no es necesario crear,
modificar ni eliminar estos registros.
Advertencia:
•
•
Las licencias, los paquetes y las versiones de paquetes gestionados en la LMA son diferentes de la mayoría de
los registros, ya que AppExchange los crea de forma automática. Por este motivo, no deberían modificarse ni
eliminarse los registros de licencia, paquete y versión de paquete.
Los usuarios con el perfil Administrador del sistema pueden crear, modificar y eliminar registros de todos estos
objetos personalizados, ya que tienen el permiso “Modificar todos los datos”.
3. Establezca la seguridad de nivel de campo en los perfiles de usuario o conjuntos de permisos.
a. Licencias: la configuración depende de cómo quiera gestionar estos campos para distintos usuarios en la organización.
b. Paquetes: todos los campos deben ser de solo lectura. Si quiere que los usuarios modifiquen el campo Gestor
de prospectos (Lead Manager), puede hacer que este campo sea modificable.
c. Versiones de paquetes: todos los campos deben ser de solo lectura.
4. Sustituya el botón estándar Modificar (Edit) en el registro de licencia para utilizar la página Modificar licencia (Modify
License) de Visualforce.
5. Agregue listas relacionadas:
•
•
•
Agregue la lista relacionada Licencias (Licenses) al formato de página de prospectos adecuado. Los gestores de licencias
pueden utilizar esta lista en la página de detalles de prospectos para ver las licencias asociadas con un prospecto concreto.
Agregue la lista relacionada Licencias (Licenses) al formato de página de cuentas adecuado. Los usuarios pueden
consultar esta lista e identificar en ella las licencias asociadas con una cuenta concreta.
Agregue la lista relacionada Licencias (Licenses) al formato de página de contactos adecuado. Los usuarios pueden
consultar esta lista e identificar en ella las licencias asociadas con un contacto concreto.
Asociación de paquetes con su LMO
Para recibir registros de prospectos y licencias desde instalaciones de clientes, debe asociar su paquete gestionado con su
Organización de gestión de licencias (LMO), la organización de Salesforce donde está instalada la aplicación de gestión de
licencias.
Advertencia: Una vez que asocie un paquete con una LMO, los prospectos y las licencias de ese paquete deben
gestionarse de forma permanente fuera de la LMO. No puede migrar licencias.
Puede asociar su paquete gestionado con su LMO en AppExchange.
1. Vaya a http://www.appexchange.com.
2. Haga clic en la ficha Publicando (Publishing).
3. Ingrese la organización con Developer Edition donde haya creado el paquete.
142
Gestión de licencias y asistencia administrativa
Valores predeterminados de licencias
4.
5.
6.
7.
8.
9.
Acepte los términos y condiciones.
Rellene un perfil breve, bastará con el nombre.
Haga clic en la ficha Sus paquetes cargados (Your Uploaded Packages) y encuentre la versión del paquete.
Haga clic en el vínculo Gestionar licencias (Manage Licenses) correspondiente a la versión de paquete.
Haga clic en Registrar (Register).
Especifique la LMO con las credenciales de usuario de esa organización y especifique los demás parámetros de licencia
predeterminados.
10. Haga clic en Guardar. Pueden pasar al menos 30 minutos hasta que un registro de paquete aparezca asociado con la LMO.
Nota: Todas las versiones de paquete gestionado se asocian con la misma LMO; por tanto, la LMO estará asociada
solo una vez con el paquete.
Valores predeterminados de licencias
Registre el paquete y elija los valores predeterminados de licencias:
1. En la página de inicio de Publishing, haga clic en Gestionar licencias (Manager Licenses) junto al paquete cargado y
gestionado.
2. En la página de registro del paquete cargado, haga clic en Registrar (Register). Si el paquete nunca ha estado asociado con
una LMO, seleccione una. Si ya había una versión anterior del paquete registrada, la configuración de esta aparecerá de
forma automática. Puede modificar esta configuración excepto la LMO. Para cambiar una LMO debe hacer contacto con
salesforce.com.
3. Seleccione si la licencia predeterminada es una licencia de prueba gratuita o una activa. Si se trata de una licencia gratuita,
seleccione Activar (Activar).
4. Si ha seleccionado una licencia de prueba gratuita, ingrese la duración en número de días completos, hasta un máximo de
90. Si ha seleccionado una licencia activa, ingrese la duración en número de días completos. Si la licencia es gratuita o no
caduca, seleccione La licencia no caduca (License does not expire).
5. Ingrese el número de puestos asociados con la licencia predeterminada o seleccione La licencia es para todo el sitio (License
is site-wide) para ofrecer la licencia a todos los usuarios en la organización del instalador.
6. Haga clic en Guardar.
Cuando un cliente instala el paquete, estos valores predeterminados se utilizan para rellenar los campos Estado (Status),
Fecha de caducidad (Expiration Date) y Puestos (Seats) en el registro de licencias en la LMA y en la organización del
instalador. Si quiere actualizar estos valores, podrá modificar este registro en la LMA.
Nota: Los valores predeterminados se encuentran en el nivel de versión de paquete; por tanto, las diferentes versiones
del mismo paquete pueden tener distintos valores predeterminados.
Uso de la LMA
Permisos de usuario necesarios
Para editar licencias y paquetes:
"Lectura"
Y
"Modificación"
Para ver licencias, paquetes y versiones de paquetes:
"Lectura"
143
Gestión de licencias y asistencia administrativa
Acerca de los prospectos
Utilice la aplicación de gestión de licencias (LMA) para aplicar licencias al paquete gestionado con el fin de controlar el número
de usuarios de la organización del instalador que puede acceder a su paquete y el tiempo durante el que tendrá acceso. Cada
vez que se instala su paquete, se crea un registro de prospecto en la LMA. Puede utilizar esta información para hacer contacto
con el prospecto e intentar que este se convierta en cliente o para informarle sobre las actualizaciones de las aplicaciones.
Acerca de los prospectos
Cuando un instalador instala un paquete gestionado, se crea automáticamente un prospecto en la LMO. Este contiene el
nombre, la compañía y la dirección de email del instalador. El origen del prospecto es de forma predeterminada la instalación
del paquete.
Esta información es importante porque constituye el vínculo de la licencia con un usuario de Salesforce real con el que puede
hacer contacto para notificarle las actualizaciones. Si un instalador desinstala el paquete desde su organización, un especialista
dedicado a conservar los clientes de la organización del desarrollador podría hacer contacto con el instalador. Además, si hubiera
una actualización para un paquete concreto, es posible que el gestor de licencias piense en enviar un email masivo a todos los
instaladores del paquete para que sepan que la actualización está disponible.
Cada LMO debería tener un gestor de prospectos que se responsabilice del seguimiento de todos los prospectos asociados con
las licencias. Cuando se crea un prospecto nuevo tras la instalación de un paquete desde AppExchange, el campo Propietario
del prospecto (Lead Owner) en el registro del prospecto toma como valor predeterminado el gestor de prospectos
especificado para el paquete. En caso de que no exista tal gestor, el propietario predeterminado será el gestor de licencias.
Acerca de los paquetes
Los paquetes en la LMA son los paquetes gestionados que se han cargado en AppExchange. En AppExchange, a estos paquetes
se les llama aplicaciones, sean cuales sean los componentes que contengan. Cada paquete tiene una o varias versiones, para las
que puede haber varias licencias. Una organización con Developer Edition puede contener únicamente un paquete gestionado
cada vez, pero una LMO puede gestionar varios paquetes desde varios desarrolladores.
Haga clic en la ficha Paquetes (Packages) para ver todos los paquetes que un usuario ha consultado recientemente. Para ver
todos los paquetes que la LMO gestiona, seleccione Todos (All) en la vista de lista. Puede hacer clic en el nombre de un
paquete para ver los detalles: fecha de publicación, versión más reciente, propietario y nombre del desarrollador.
Detalles del paquete
En la ficha Paquetes (Packages), haga clic en el nombre de un paquete para ver los detalles de este. La página de detalles de
paquete contiene información sobre el paquete, así como listas relacionadas relevantes. En la lista relacionada Versión del
paquete (Package Version), puede ver todas las versiones del paquete cargadas y registradas en AppExchange. El objeto de la
versión del paquete mantiene una relación principal-detalle con el objeto de paquete.
Importante: No modifique, elimine, duplique ni cree paquetes o versiones de paquetes. No elimine, duplique ni cree
licencias. Estos registros se crean de forma automática y contienen información importante para el seguimiento de
las licencias y los paquetes en la Aplicación de gestión de licencias. No se pueden volver a rellenar.
En esta tabla puede ver los atributos de un paquete.
Campo
Descripción
Creado por
Se toma como valor predeterminado el usuario que actúa de gestor de licencias.
Nombre del desarrollador
(Developer Name)
El nombre de la organización del desarrollador del paquete.
144
Gestión de licencias y asistencia administrativa
Campo
Modificación de los propietarios de paquetes
Descripción
Id. de organización de
El Id. de 18 caracteres de la organización del desarrollador del paquete.
desarrollador (Developer Org
ID)
Autor de la última
modificación
El nombre del usuario que hizo la última modificación del registro. También se indica
la fecha y hora de la actualización del registro.
Versión más reciente (Latest La versión cargada y registrada más reciente del paquete. El desarrollador ingresa esta
Version)
información cuando carga el paquete.
Gestor de prospectos (Lead
Manager)
El usuario de la LMO que se ha convertido automáticamente en el propietario de los
prospectos creados tras la instalación del paquete. El campo Gestor de
prospectos se mostrará en blanco cuando se crea el registro del paquete. Si no
asigna un gestor de prospectos, el usuario que actúe de gestor de licencias será el
propietario de los prospectos.
Propietario
Se toma como valor predeterminado el usuario que actúa de gestor de licencias. Puede
transferir la propiedad en cualquier momento a cualquier usuario de la organización;
para ello, debe hacer clic en Cambiar (Change) junto al nombre del propietario actual.
Id. de paquete (Package ID) El Id. exclusivo global de 18 caracteres que identifica al paquete.
Nombre de paquete
El nombre del paquete, tal y como lo ha especificado el desarrollador.
Fecha de publicación
(Release Date)
La fecha en la que el desarrollador ha cargado este paquete en AppExchange.
Modificación de los propietarios de paquetes
Permisos de usuario necesarios
Para editar licencias y paquetes:
"Lectura"
Y
"Modificación"
De forma predeterminada, el propietario del paquete es el usuario que actúe de gestor de licencias. Puede cambiar el propietario
de un paquete cuando lo desee, siempre y cuando tenga los permisos adecuados.
Nota: Puede asignar la propiedad a cualquier usuario de la organización. Por tanto, es muy importante asegurarse de
que el usuario al que va a transferir la propiedad tiene acceso a la LMA y la aplicación personalizada y que tiene los
permisos de usuario adecuados.
Para cambiar el propietario de un solo paquete, haga lo siguiente:
1.
2.
3.
4.
5.
Haga clic en la ficha Paquetes (Packages).
Seleccione un paquete.
Haga clic en el vínculo Cambiar (Cambiar) situado junto al propietario.
Haga clic en el icono de búsqueda y elija un propietario nuevo.
También puede seleccionar la casilla de verificación Enviar email de notificación (Send Notification Email) para enviar
un email al propietario actual y al nuevo.
145
Gestión de licencias y asistencia administrativa
Modificación del gestor de prospectos para un paquete
6. Haga clic en Guardar.
También puede transferir la propiedad de varios paquetes a un solo propietario; para ello, hay que ir a una vista de lista de
paquetes específica. Para cambiar el propietario de varias licencias, haga lo siguiente:
1.
2.
3.
4.
5.
6.
Haga clic en la ficha Paquetes (Packages).
Seleccione una vista de lista de paquetes.
Seleccione los paquetes que desea modificar.
Haga clic en Cambiar propietario (Change Owner).
Haga clic en el icono de búsqueda y elija un propietario nuevo.
También puede seleccionar la casilla de verificación Enviar email de notificación (Send Notification Email) para enviar
un email al propietario actual y al nuevo.
7. Haga clic en Guardar.
Modificación del gestor de prospectos para un paquete
Permisos de usuario necesarios
Para editar licencias y paquetes:
"Lectura"
Y
"Modificación"
Cuando se crea un prospecto nuevo tras la instalación de un paquete desde AppExchange, el campo Propietario del
prospecto (Lead Owner) en el registro del prospecto toma como valor predeterminado el gestor de prospectos especificado
para el paquete. En caso de que no exista tal gestor, el propietario predeterminado será el gestor de licencias.
Para asignar o modificar el gestor de prospectos de un paquete, haga lo siguiente:
1. Seleccione un paquete desde la ficha Paquetes (Packages).
2. Haga clic en Modificar.
3. Haga clic en el icono de búsqueda situado junto al campo Gestor de prospectos (Lead Manager) para buscar un
usuario.
4. Seleccione un usuario.
5. Haga clic en Guardar.
Acerca de las versiones de paquetes
Las versiones de paquetes son cargas específicas de un paquete. Una versión del paquete puede contener objetos actualizados
o adicionales, o bien puede representar una actualización de un paquete. Un paquete también puede tener una versión nueva
si el paquete se ha cargado originalmente como “Gestionado en versión beta” pero, después, se ha cambiado a “Gestionado y
editado”.
Las licencias representan la versión del paquete que un usuario ha instalado. Todas las versiones de un paquete gestionado se
asocian con la misma LMO. Si ve el detalle de una versión del paquete, podrá ver una lista de todas las licencias que los
instaladores han instalado en esa versión.
Nota: No modifique, elimine, duplique ni cree paquetes o versiones de paquetes. No elimine, duplique ni cree licencias.
Estos registros se crean de forma automática y contienen información importante para el seguimiento de las licencias
y los paquetes en la Aplicación de gestión de licencias. No se pueden volver a rellenar.
146
Gestión de licencias y asistencia administrativa
Detalles de la versión del paquete
Detalles de la versión del paquete
Para acceder a la página de detalles de la versión del paquete, haga clic en el nombre de la versión del paquete en las fichas
Licencias (Licenses), Paquetes (Packages) o Versiones del paquete (Package Versions). En la lista relacionada Licencias verá
todas las licencias asociadas con esta versión del paquete. El objeto de licencia mantiene una relación de búsqueda con el objeto
de versión del paquete.
Nota: No modifique, elimine, duplique ni cree paquetes o versiones de paquetes. No elimine, duplique ni cree licencias.
Estos registros se crean de forma automática y contienen información importante para el seguimiento de las licencias
y los paquetes en la Aplicación de gestión de licencias. No se pueden volver a rellenar.
En esta tabla puede ver los atributos de una versión del paquete.
Campo
Descripción
Beta
Se trata de una versión inicial de un paquete gestionado que se carga en AppExchange
a modo de muestra para que el público objetivo del paquete pueda probarlo.
Creado por
Se toma como valor predeterminado el usuario que actúa de gestor de licencias.
Autor de la última
modificación
El nombre del usuario que hizo la última modificación del registro. También se
indica la fecha y hora de la actualización del registro.
Paquete
El paquete al que corresponde esta versión.
Nombre de la versión del
paquete (Package Version
Name)
El nombre de la versión del paquete, tal y como lo ha especificado el desarrollador
durante la carga.
Fecha de publicación (Release La fecha en la que el desarrollador ha cargado esta versión del paquete en
Date)
AppExchange.
Versión
La versión como la ha especificado el desarrollador durante la carga en AppExchange
de Force.com.
Id. de versión (Version ID)
El Id. de 18 caracteres de esta versión del paquete.
Acerca de las licencias
Cuando se instala una aplicación, Salesforce crea una entrada de licencia en la LMA. Esta licencia estará relacionada directamente
con la versión del paquete que el instalador ha instalado. Haga clic en la ficha Licencias (Licenses) para ver todas las licencias
que un usuario ha consultado recientemente. Para ver todas las licencias de los paquetes que la LMO gestiona, en la lista
desplegable seleccione Todos (All) y haga clic en Ir (Go!).
Nota: No modifique, elimine, duplique ni cree paquetes o versiones de paquetes. No elimine, duplique ni cree licencias.
Estos registros se crean de forma automática y contienen información importante para el seguimiento de las licencias
y los paquetes en la Aplicación de gestión de licencias. No se pueden volver a rellenar.
Detalles de licencias
En la ficha Licencia (License), puede hacer clic en el nombre de una licencia para ver detalles de esta como su estado, la versión
de paquete, el propietario y la fecha de instalación. En esta tabla puede ver los atributos de una licencia.
147
Gestión de licencias y asistencia administrativa
Detalles de licencias
Campo
Descripción
Cuenta
La cuenta de un prospecto convertido.
Contacto
El contacto de un prospecto convertido.
Creado por
Se toma como valor predeterminado el usuario que actúa de gestor de licencias.
Fecha de caducidad
Se muestra la fecha de caducidad o, si la licencia no tiene tal fecha, la indicación No
caduca (Does not expire). El valor predeterminado es No caduca.
Fecha de instalación (Install La fecha en la que el instalador instaló la versión de paquete.
Date)
Autor de la última
modificación
El nombre del usuario que hizo la última modificación del registro. También se
indica la fecha y hora de la actualización del registro.
Prospecto
El prospecto que la LMA ha creado de forma automática cuando se instaló la
aplicación. Este prospecto representa al usuario propietario de la licencia.
Si el prospecto se convierte en una oportunidad, se conserva el mismo nombre pero
se elimina el registro del prospecto. Por tanto, si hace clic en este vínculo, se mostrará
una página donde se indica que el prospecto se ha convertido.
Nombre de licencia (License
Name)
Representa una instancia de una licencia. El nombre de licencia es un número
automático que aumenta de uno en uno según se van agregando licencias.
Puestos con licencia
(Licensed Seats)
Se trata de un campo de fórmula en el que se muestra el número de licencias o
Licencia de sitio (Site License). El valor predeterminado es Licencia de
sitio.
Estado de licencia (License
Status)
Indica el tipo de licencia. Los valores disponibles son Prueba (Trial), Activa
(Active), Suspendido (Suspended) y Desinstalado (Uninstalled).
Tipo de licencia (License
Type)
Indica si se puede modificar la licencia.
Propietario
Se toma como valor predeterminado el usuario que actúa de gestor de licencias. Puede
transferir la propiedad en cualquier momento a cualquier usuario de la organización;
para ello, debe hacer clic en Cambiar (Change) junto al nombre del propietario
actual.
Versión del paquete
Vincula a la página de detalles de la versión del paquete que sea la principal de esta
licencia.
Id. de organización de
suscriptor (Subscriber Org
ID)
Un id. de 15 caracteres exclusivo global que representa la organización del instalador.
Licencias utilizadas
Se muestra el número de usuarios de una organización que tienen licencia para un
paquete. (Solo lectura)
Este campo se mostrará en blanco en las circunstancias siguientes:
•
•
Un cliente ha desinstalado el paquete.
El campo Puestos con licencia se ha establecido en Licencia de sitio.
Tenga en cuenta que esta configuración conlleva que todos los usuarios de una
organización tienen de forma implícita una licencia para el paquete.
148
Gestión de licencias y asistencia administrativa
Modificación de propietarios de licencias
Modificación de propietarios de licencias
Permisos de usuario necesarios
Para editar licencias y paquetes:
"Lectura"
Y
"Modificación"
De forma predeterminada, el propietario de la licencia es el usuario que actúe de gestor de licencias. Puede cambiar el propietario,
siempre y cuando tenga los permisos adecuados. También puede transferir la propiedad de varias licencias a un solo propietario;
para ello, hay que ir a una vista de lista de licencias específica.
Nota: Puede asignar la propiedad a cualquier usuario de la organización. Por tanto, es muy importante asegurarse de
que el usuario al que va a transferir la propiedad tiene acceso a la LMA y la aplicación personalizada y que tiene los
permisos de usuario adecuados.
Para cambiar el propietario de una licencia, haga lo siguiente:
1.
2.
3.
4.
5.
Haga clic en la ficha Licencias (Licenses).
Seleccione una licencia.
Haga clic en el vínculo Cambiar (Cambiar) situado junto al propietario.
Haga clic en el icono de búsqueda y elija un propietario nuevo.
También puede seleccionar la casilla de verificación Enviar email de notificación (Send Notification Email) para enviar
un email al propietario actual y al nuevo.
6. Haga clic en Guardar.
Para cambiar el propietario de varias licencias, haga lo siguiente:
1.
2.
3.
4.
5.
6.
Haga clic en la ficha Licencias (Licenses).
Seleccione una vista de lista de licencias.
Seleccione las licencias que desea modificar.
Haga clic en Cambiar propietario (Change Owner).
Haga clic en el icono de búsqueda y elija un propietario nuevo.
También puede seleccionar la casilla de verificación Enviar email de notificación (Send Notification Email) para enviar
un email al propietario actual y al nuevo.
7. Haga clic en Guardar.
Modificación de licencias
Permisos de usuario necesarios
Para editar licencias y paquetes:
"Lectura"
Y
"Modificación"
Puede modificar las licencias de cada instalador. Para modificar una licencia, haga lo siguiente:
149
Gestión de licencias y asistencia administrativa
Modificación de licencias
1. Haga clic en la ficha Licencias (Licenses).
2. Seleccione la licencia adecuada.
3. Haga clic en Modificar licencia (Modify License).
Nota: Si no ve la opción Modificar licencia, compruebe el formato de la página o haga contacto con el
administrador.
4. Realice los cambios necesarios en los campos modificables.
5. Haga clic en Guardar.
Campos de licencia modificables
Puede modificar los siguientes campos de licencia.
Campo
Descripción
Vencimiento (Expiration)
Ingrese la fecha de caducidad para identificar el último día que
el instalador tendrá acceso al paquete en virtud del acuerdo de
licencia. En caso de que la licencia no caduque, marque No
caduca (Does not expire).
Puestos (Seats)
Ingrese un número positivo para establecer el número de
licencias o marque Licencia de sitio (Site License) para que
el paquete esté disponible para todos los usuarios de la
organización del instalador. El valor predeterminado es
Licencia de sitio.
Estado
Use la lista desplegable para establecer el estado de licencia.
Los valores disponibles son los siguientes:
• Prueba (Trial): establezca el valor en Prueba para que el
instalador disponga de 90 días para probar el paquete. Una
vez que una licencia de prueba se convierte en una licencia
activa, ya no puede volver a ser una licencia de prueba.
• Activa (Active): establezca el valor en Activa para que el
instalador pueda utilizar el paquete según las condiciones
del acuerdo de licencia.
• Suspendido (Suspended): establezca el valor en Suspendido
para prohibir al instalador el acceso al paquete. Es posible
que le interese establece un paquete como Suspendido si
el usuario no paga la licencia.
Nota: Cuando el instalador desinstala el paquete, el
estado será Desinstalado (Uninstalled). El gestor de
licencias no puede establecer ni cambiar este estado.
Una vez desinstalado el paquete, la licencia será de
solo lectura y ya no se podrá modificar. Los cambios
de estado permitidos son los siguientes:
•
•
•
150
De Prueba a Activa
De Activa a Suspendido
De Suspendido a Activa
Gestión de licencias y asistencia administrativa
Integración con ventas y marketing
Integración con ventas y marketing
Puede utilizar la información en la LMA para enviar notificaciones a los clientes.
Advertencia: No cree reglas de flujo de trabajo, desencadenadores ni reglas de validación que requieran campos
personalizados en los objetos de licencia o de prospecto. No imponga condiciones sobre la actualización o la creación
de registros de licencias o prospectos. De lo contrario, la LMA bloqueará la creación de los registros de licencia o
prospecto, lo que daría como resultado la pérdida de datos relativos a los paquetes que instalen sus clientes.
Enviar notificaciones de actualización
Cree una plantilla de email para notificar a los clientes de que existe una actualización disponible.
Enviar notificaciones de caducidad de licencias
Cree una regla de flujo de trabajo que envíe emails de forma automática al representante de ventas o gestor de cuentas antes
de que caduque la licencia. Para ello, cree una plantilla de email para la notificación. Después, cree una regla de flujo de trabajo
con un filtro en la que se especifique un periodo de tiempo (mes) antes de la fecha de caducidad. Por último, asocie esa regla
a una alerta de flujo de trabajo que envíe un email al miembro del equipo adecuado o al representante de ventas. Debería
configurar la regla de tal modo que el representante de ventas y el cliente puedan disponer del tiempo suficiente para conocer
las opciones de renovación del contrato antes del vencimiento de la licencia. También se recomienda enviar emails a los clientes
para avisarles sobre la caducidad de la licencia.
Conservar los clientes
Cree una regla de flujo de trabajo que envíe automáticamente un email al representante del servicio de atención al cliente o al
especialista dedicado a conservar los clientes para avisarle cuando el paquete haya dejado de estar instalado en esa organización.
Para ello, cree una plantilla de email para la notificación. Después, cree una regla de flujo de trabajo con un filtro en la que se
especifique que el estado de la licencia es “Desinstalado”. Por último, asocie esa regla a una alerta de flujo de trabajo
que envíe un email al miembro del equipo adecuado o al especialista dedicado a conservar los clientes.
Utilice la API para encontrar usuarios con licencias
Puede utilizar el método isCurrentUserLicensed para determinar si un usuario tiene licencia para un paquete gestionado.
Para obtener más información, consulte la Guía del desarrollador de Apex.
Mejores prácticas
Evitar los campos obligatorios
No cree campos personalizados obligatorios en los objetos de prospecto, licencia, paquete y versión de paquete.
Evitar los desencadenadores y las reglas de validación before-create
No defina desencadenadores ni reglas de validación before-create en objetos de prospecto, licencia, paquete y versión
de paquete.
Utilizar dominios personalizados
Cuando utilice el acceso a la asistencia de paquete para solucionar problemas de configuración del cliente, es posible que
se cierre su sesión de la LMO. Para evitarlo, utilice un dominio personalizado para su LMO. Para obtener más información,
consulte “Descripción general de Mi dominio” en la ayuda online de Salesforce.
Asegurarse de que el usuario prospecto es un usuario válido y activo
Esta comprobación es necesaria para la creación de prospectos y licencias.
151
Gestión de licencias y asistencia administrativa
Preguntas más frecuentes sobre la Aplicación de gestión de
licencias
Realizar el seguimiento de las licencias
Cree un filtro de consulta en la lista de prospectos para los prospectos que crean los paquetes instalados.
Configure el seguimiento del historial para los campos de licencia.
Enviar notificaciones de caducidad de licencias
Cree una regla de flujo de trabajo que envíe emails de forma automática al representante de ventas o gestor de cuentas
antes de que caduque la licencia. Para ello, cree una plantilla de email para la notificación. Después, cree una regla de
flujo de trabajo con un filtro en la que se especifique un periodo de tiempo (por ejemplo, mes) antes de la fecha de
caducidad. Por último, asocie esa regla a una alerta de flujo de trabajo que envíe un email al miembro del equipo
adecuado o al representante de ventas. Debería configurar la regla de tal modo que el representante de ventas y el cliente
puedan disponer del tiempo suficiente para conocer las opciones de renovación del contrato antes del vencimiento de la
licencia. También se recomienda enviar emails a los clientes para avisarles sobre la caducidad de la licencia.
Enviar notificaciones de actualización
Cree una plantilla de email para notificar a los clientes de que existe una actualización disponible. En la ficha Prospectos
de la LMA existe una lista de todos los clientes.
Utilice la API para encontrar usuarios con licencias
Puede utilizar el método isCurrentUserLicensed para determinar si un usuario tiene licencia para un paquete
gestionado. Para obtener más información, consulte la Guía del desarrollador del código Apex de Force.com.
Conservar los clientes
Si un cliente desinstala un paquete, el estado de la licencia en la LMO cambiará a Desinstalado. Cree una regla de flujo
de trabajo que envíe automáticamente un email al representante del servicio de atención al cliente para avisarle cuando
el paquete haya dejado de estar instalado en esa organización. Para ello, cree una plantilla de email para la notificación.
Después, cree una regla de flujo de trabajo con un filtro en la que se especifique que el estado de la licencia es
“Desinstalado”. Por último, asocie esa regla a una alerta de flujo de trabajo que envíe un email al miembro del equipo
adecuado o al especialista dedicado a conservar los clientes.
Advertencia: No cree reglas de flujo de trabajo, desencadenadores ni reglas de validación que requieran campos
personalizados en los objetos de licencia o de prospecto. No imponga condiciones sobre la actualización o la creación
de registros de licencias o prospectos. De lo contrario, la LMA bloqueará la creación de los registros de licencia o
prospecto, lo que daría como resultado la pérdida de datos relativos a los paquetes que instalen sus clientes.
Preguntas más frecuentes sobre la Aplicación de gestión de
licencias
¿Cómo cambio mi Organización de gestión de licencias?
Haga contacto con el servicio de atención al cliente de salesforce.com. Tenga en cuenta que los registros de licencias en
la Organización de gestión de licencias (LMO, siglas en inglés) no se trasladan a la nueva LMO sino que permanecen
con la LMO original.
¿Por qué no se han creado los registros de prospecto y licencia en mi LMO?
•
•
•
•
Su LMO no se ha asociado a su paquete.
No se ha registrado su versión de paquete.
Puede haber campos personalizados obligatorios en los objetos personalizados de prospecto, licencia, paquete y versión
de paquete.
El gestor de prospectos de la LMO (el propietario de los registros de prospectos) no es un usuario activo válido.
152
Gestión de licencias y asistencia administrativa
•
Solución de problemas
Los desencadenadores del tipo before_ impiden la creación de prospectos.
Para otras posibilidades, consulte la sección Solución de problemas.
¿Por qué no puedo ver el botón Modificar licencia (Modify License)?
Debe personalizar el formato de la página y agregar a esta el botón Modificar licencia.
Un cliente ha instalado mi paquete antes de que lo asociara con mi LMO. ¿Cómo puedo gestionar el registro de
licencia?
Pida al cliente que instale el paquete de nuevo sin desinstalarlo.
¿Qué sucede cuando reduzco el número de licencias por debajo del número actual de usuarios con licencia?
Todos los usuarios seguirán tienen acceso hasta que un administrador del sistema en la organización del instalador revoque
las licencias adicionales.
¿Por qué debería instalar la LMA en mi organización de Salesforce de producción?
La LMA es una parte importante de las ventas, facturación y marketing de un paquete de un socio en la plataforma de
Salesforce. La instalación en otra organización significa que no podrá gestionar las licencias de paquete como parte de
su proceso de ventas y marketing.
La instalación de la LMA en la organización de producción del cliente significa que este puede gestionar el prospecto,
la prueba, las licencias y la facturación como parte de su conjunto de datos global de Salesforce.
¿Puedo automatizar la asignación de licencias de paquetes a los usuarios en la organización del suscriptor?
No. La API no expone las licencias de paquete en la organización del suscriptor.
Solución de problemas
Los problemas más frecuentes se originan cuando no se crean los prospectos o las licencias o cuando se desactiva un usuario
proxy.
No se crean prospectos o licencias
Cuando un suscriptor instala mi paquete, en la LMO no se crean los prospectos o las licencias. Normalmente, el problema se
encuentra en una configuración errónea de la organización donde la LMA se encuentra instalada. Para buscar una solución,
puede hacer las comprobaciones siguientes:
¿Ha instalado el suscriptor realmente el paquete?
AppExchange cuenta la instalación cuando el usuario hace clic en “Obtener ahora” (Get it now) pero puede producirse
un error en la instalación o puede cancelarse esta y, al no haber finalizado la instalación, no se entrega la licencia.
¿Existe un desencadenante en el objeto de prospecto o de licencia en la LMO?
En los prospectos o licencias de la LMO, no debería haber nunca un desencadenante de tipo before_create o
before_update. En su lugar, pruebe a utilizar desencadenantes del tipo after_. O bien, elimine el desencadenante.
Tenga en cuenta que si, por cualquier motivo, se produce un error en el desencadenante, se bloqueará la creación de
licencias.
¿Existe un campo personalizado obligatorio en el registro de prospecto o licencia?
Si es así, elimine el requisito. La LMA no rellena el campo obligatorio y esto puede bloquear la creación de licencias o
de prospectos.
153
Gestión de licencias y asistencia administrativa
Solución de problemas
¿Es el gestor de prospectos de la LMO un usuario activo y válido?
El gestor de prospectos (el propietario de los registros de prospectos) debe ser un usuario activo y válido; de lo contrario,
se bloqueará la creación de licencias o de prospectos.
¿Existe una regla de validación en el registro de prospecto o licencia?
Con frecuencia, las reglas de validación bloquean la creación de registros de prospectos o licencias de la LMA porque el
campo obligatorio no se encuentra ahí.
¿Existe una regla de flujo de trabajo sobre los prospectos o las licencias?
Si existe alguna, podría estar impidiendo la creación de la licencia. Pruebe a eliminar la regla de flujo de trabajo que
exista.
¿Se ha convertido el prospecto en una cuenta?
Cuando los prospectos se convierten en cuentas, dejan de ser prospectos.
Nota: Si el problema se resuelve mediante alguno de los pasos descritos, en pocos días se entregarán a una LMO las
licencias que no se pudieron entregar.
Se ha desactivado un usuario proxy
Si se muestra el mensaje de "usuario proxy desactivado" cuando se modifica una licencia en la LMO, podría bloquearse,
eliminarse o deshabilitarse la organización del suscriptor. Para solucionar el problema, compruebe lo siguiente:
Compruebe que la organización está activa.
Compruebe junto con el administrador de la organización si esta está activa o se ha eliminado. Si se hubiera eliminado,
haga lo mismo con el registro de licencia correspondiente.
Compruebe que el paquete está instalado.
Compruebe junto con el administrador de la organización si el paquete sigue estando instalado. Si la organización está
bloqueado o el paquete ya no está instalado, no se puede actualizar la licencia. El suscriptor deberá reinstalar el paquete.
154
Capítulo 8
Prueba gratuita de la aplicación
En este capítulo...
•
•
•
•
•
•
•
•
•
¿Por qué utilizar Trialforce?
Descripción general de Trialforce
Configuración de Trialforce
Pruebas gratuitas en AppExchange
Pruebas gratuitas en el sitio Web
Modificación de la prueba para una
actualización
Mejores prácticas de Trialforce
Creación de inscripciones usando la
API
Preguntas más frecuentes sobre
Trialforce
Por lo general, a todos nos gusta probar lo que vamos a comprar. Por ello, las
pruebas gratuitas constituyen una oportunidad para que los clientes potenciales
conozcan el producto. Es un modo de llegar a más clientes y lograr la máxima
distribución y adopción de la aplicación. Los socios que facilitan pruebas gratuitas
de sus aplicaciones llegan a duplicar sus prospectos. Para hacerlo, dispone de
varias opciones:
•
•
•
•
En AppExchange puede poner a disposición la aplicación para que la instalen
los prospectos.
En AppExchange puede configurar una prueba.
En AppExchange puede utilizar Trialforce.
En su sitio Web puede utilizar Trialforce.
Trialforce es una tecnología de aprovisionamiento para las organizaciones de
salesforce.com. Permite que los socios de proveedores de software independientes
configuren y gestionen pruebas gratuitas de sus aplicaciones. Con Trialforce,
puede configurar su aplicación de Force.com según sus especificaciones, puede
incluir datos de ejemplo que sean relevantes e incluso puede personalizar el
aspecto de la aplicación para que refleje la marca de su compañía.
Nota: Esta función está disponible a los socios aptos. Para obtener
más información sobre el programa de socios, incluidos los requisitos
de aptitud, visite el sitio Web www.salesforce.com/partners.
155
Prueba gratuita de la aplicación
¿Por qué utilizar Trialforce?
¿Por qué utilizar Trialforce?
Trialforce constituye un modo sencillo de aprovisionar pruebas gratuitas e implementar su aplicación de Force.com desde su
propio sitio Web o desde cualquier otro sitio. Con Trialforce podrá:
•
•
•
•
Ejecutar sus propias campañas de marketing para llegar al mayor número posible de clientes y conseguir la máxima adopción
Personalizar la aplicación, incluidas las marcas, la funcionalidad, el diseño, los datos y la experiencia de la versión de prueba
Gestionar pruebas para varias aplicaciones, versiones y ediciones desde un lugar que resulte cómodo
Permitir que los clientes, que no sean administradores, que no puedan instalar su aplicación puedan usar una prueba de la
aplicación en una organización nueva
Además del aprovisionamiento de una instancia de prueba de su aplicación para cada suscriptor nuevo, Salesforce también
deposita un prospecto en su organización de gestión de licencias.
Descripción general de Trialforce
Una configuración de Trialforce consta de varias partes, configuradas en momentos distintos. Antes de comenzar a utilizar
Trialforce, es importante conocer bien estas partes y la relación entre ellas.
Organización de gestión de Trialforce (TMO, por sus siglas en inglés)
Se trata el punto de inicio para configurar Trialforce y la ubicación central para gestionar Trialforce después de su
configuración. Para recibir este componente, es necesario registrar un caso el portal de socios. Las dos tareas que puede
llevar a cabo en la TMO son: creación de organizaciones de origen de Trialforce y definición de plantillas para el uso de
marcas personalizadas.
Organización de origen de Trialforce (TSO, por sus siglas en inglés)
Esta organización se utiliza para crear una plantilla para las organizaciones de prueba que reciban sus clientes. Debe
crearla a partir de su TMO. Las tareas que puede llevar a cabo en una TSO son: instalación de la aplicación, junto con
datos de ejemplo, especificación de marcas mediante las plantillas creadas previamente en la TMO, configuración de la
TSO para que sea tal y como quiere para sus clientes y generación de una plantilla de Trialforce que se convierta en la
base de todas las organizaciones de prueba.
Plantilla de Trialforce
Se trata de una instantánea o una copia exacta de la TSO en una instancia determinada en el tiempo. Debe crearla a
partir de una TSO después de haber instalado la aplicación y de haber realizado los cambios en la configuración. La
plantilla de Trialforce se especifica en la página de HTML desde la que los clientes se inscriben para las pruebas y define
la organización de prueba que se proporciona cada vez que un cliente se inscribe.
Formulario de inscripción de HTML
Se trata de un formulario de HTML que se utiliza como la página de registro en el sitio Web desde la que los clientes
se inscriben para obtener las pruebas. Debe registrar un caso en el portal de socios para obtener este formulario y, después,
debe personalizarlo con los detalles de su compañía. Se asocia con la plantilla de Trialforce que pretenda utilizar para las
pruebas. Esto garantiza que cada vez que un cliente se inscribe en su sitio Web para una prueba, recibirá una organización
que es una copia exacta de la plantilla de Trialforce elegida.
156
Prueba gratuita de la aplicación
Configuración de Trialforce
Ilustración 16: Relación entre organizaciones utilizada para configurar Trialforce
Las organizaciones TMO y TSO y las plantillas de Trialforce se organizan en una estructura jerárquica según las relaciones
que mantienen entre sí, tal y como se muestra en la ilustración anterior.
•
•
Puede crear varias organizaciones TSO a partir de una TMO determinada. Por ejemplo, si quiere ofrecer pruebas para dos
aplicaciones diferentes, tendría que generar dos organizaciones TSO distintas a partir de la misma TMO, una para cada
aplicación. Esto le permite utilizar la organización TMO como el núcleo central para gestionar las pruebas de todas las
aplicaciones de Force.com que haya producido su compañía.
Puede crear varias plantillas de Trialforce a partir de la misma organización TSO. Por ejemplo, si realiza el lanzamiento
de una versión nueva de su aplicación después de haber comenzado a utilizar Trialforce, podrá instalar la versión actualizada
en la organización TSO anterior y, después, generar una plantilla de Trialforce nueva a partir de ella. Después, si actualiza
su formulario de inscripción de HTML para dirigirlo a la nueva plantilla de Trialforce, todas las organizaciones de prueba
creadas posteriormente tendrán de forma automática la versión nueva del paquete.
Como mejor práctica, se recomienda tener una TMO exclusiva para su compañía, una TSO para cada aplicación y una plantilla
de Trialforce para cada versión o edición de una aplicación. Si se escalona el proceso de configuración en estos niveles, será
más fácil mantener y actualizar las pruebas. De esta manera, cada vez que tenga que cambiar algo, como la versión de una
aplicación, su marca o un detalle de configuración de la organización de prueba, solo será necesario efectuar el cambio en un
nivel de la jerarquía. Como ve, los pasos de configuración serán los mínimos y será más fácil gestionar de forma simultánea
pruebas para varios productos, versiones y ediciones.
Configuración de Trialforce
Permisos de usuario necesarios
Para gestionar Trialforce:
“Personalizar aplicación”
157
Prueba gratuita de la aplicación
Vinculación de un paquete a su organización de publicación
de AppExchange
Para habilitar Trialforce, debe haber firmado un acuerdo ISVforce/OEM. Una vez que ha compilado y probado su aplicación
y que ha superado la revisión de seguridad de AppExchange, efectúe los pasos siguientes:
1. Cree el paquete gestionado.
2. Cree una organización de publicación de AppExchange (APO). La APO, que casi siempre coincide con la organización
que utiliza para gestionar las licencias, es la organización donde va a gestionar la publicación de AppExchange.
3. Vincule su paquete gestionado con la APO.
4. Cree su organización de gestión de licencias (LMO). La LMO es la organización donde va a gestionar el acceso de los
clientes a su aplicación. Debería instalar la aplicación de gestión de licencias en la organización de Salesforce CRM actual
(es obligatorio disponer de Enterprise Edition).
5. Asocie su versión de paquete gestionado a la LMO y establezca los valores predeterminados de la licencia. De este modo
se garantiza que cada vez que un cliente potencial cree una prueba de su aplicación, la LMO recibirá un registro de prospecto
y licencia nuevo.
6. Solicite una organización de gestión de Trialforce (TMO).
7. De forma opcional, cree una página de inicio de sesión con marca personalizada y emails con marca en la TMO.
8. Cree una organización de origen de Trialforce (TSO) desde la TMO.
9. Vincule la TSO con la APO.
10. Instale el paquete gestionado en la TSO y personalícelo para que sea tal y como quiere que los clientes potenciales lo vean
y lo usen. Aquí entra la aplicación de marcas personalizadas, la carga de datos de ejemplo o la creación de perfiles
personalizados.
11. Cree una plantilla de Trialforce nueva desde la TSO.
12. Envíe la plantilla de Trialforce para su revisión y obténgala aprobada.
Ahora puede utilizar esta plantilla para crear pruebas gratuitas de dos maneras, tal y como se explica en las secciones siguientes.
•
•
Pruebas gratuitas en AppExchange
Pruebas gratuitas en el sitio Web
Vinculación de un paquete a su organización de publicación de
AppExchange
Puede vincular el paquete gestionado a su organización de publicación de AppExchange (APO) a través de la consola de
publicación de AppExchange.
1. Inicie sesión en AppExchange con las credenciales de su APO.
2. Haga clic en su nombre que aparece en la esquina superior derecha y, en el menú desplegable, seleccione Consola de
publicación (Publishing Console).
3. Haga clic en la ficha Publicando (Publishing).
4. Haga clic en Sus organizaciones (Your Organizations).
5. Haga clic en Vincular organización nueva (Link New Organization).
6. Ingrese las credenciales de la organización de empaquetado (la organización con Developer Edition en la que ha creado el
paquete gestionado) y haga clic en Guardar.
Podrían pasar 30 minutos o más hasta que la aplicación aparezca como asociada con la APO. Para confirmar que se ha
completado el proceso, regrese a la sección de inicio de la consola de publicación y haga clic en la ficha Sus paquetes cargados
(Your Uploaded Packages). Debería ver su versión del paquete en la lista.
Solo tiene que vincular el paquete a AppExchange una vez. Las versiones nuevas del paquete aparecerán de forma automática
en la consola de publicación.
158
Prueba gratuita de la aplicación
Vinculación de un paquete con la organización de gestión de
licencias
Vinculación de un paquete con la organización de gestión de licencias
Para recibir registros de prospectos y licencias desde instalaciones de clientes, debe vincular su paquete gestionado con su
Organización de gestión de licencias (LMO), la organización de Salesforce donde está instalada la aplicación de gestión de
licencias. Además, como parte de este proceso, puede especificar la configuración de licencias predeterminada para su aplicación.
Nota: Una vez que vincule un paquete con una LMO, los prospectos y las licencias de ese paquete deben gestionarse
de forma permanente fuera de la LMO. No puede migrar licencias a otra organización.
Para vincular un paquete a la LMO y establecer la configuración de licencias predeterminada, haga lo siguiente:
1. Inicie sesión en AppExchange con las credenciales de su organización de publicación de AppExchange (APO).
2. Haga clic en su nombre que aparece en la esquina superior derecha y seleccione Consola de publicación (Publishing
Console).
3. Haga clic en la ficha Sus paquetes cargados (Your Uploaded Packages) y encuentre la versión del paquete.
4. Haga clic en el vínculo Gestionar licencias junto a la versión de paquete.
5. Haga clic en Registrar (Register).
6. Especifique la LMO con las credenciales de usuario de esa organización y especifique los demás parámetros de licencia
predeterminados.
7. Seleccione si la licencia predeterminada es una licencia de Prueba gratuita (Free Trial) o Activa (Active). Si no va a cobrar
nada por una licencia, seleccione Activa.
8. Ingrese la el número de días que dura la licencia. Si la licencia es gratuita o no caduca, seleccione La licencia no caduca
(License does not expire).
9. Ingrese el número de puestos asociados con la licencia predeterminada o seleccione La licencia es para todo el sitio (License
is site-wide) para ofrecer la licencia a todos los usuarios en la organización del instalador.
10. Haga clic en Guardar.
Para comprobar que el paquete está vinculado a la LMO, haga lo siguiente:
1. Inicie sesión en la LMO.
2. Haga clic en la ficha Versiones de paquete (Package Versions).
3. Haga clic en Ir (Go) junto a Ver todos (View All).
Debería ver el nombre de su paquete en la lista.
Nota:
•
•
Todas las versiones de un paquete gestionado se asocian con la misma LMO. Por tanto, solo necesitará asociar el
paquete con la LMO una vez.
Cuando un cliente instala el paquete, estos valores predeterminados se utilizan para rellenar los campos Estado
(Status), Fecha de caducidad (Expiration Date) y Puestos (Seats) en el registro de licencias en la LMA y en la
organización del instalador. Si quiere actualizar estos valores, podrá modificar este registro en la LMA.
Solicitud de una organización de gestión de Trialforce
Permisos de usuario necesarios
Para gestionar Trialforce:
“Personalizar aplicación”
159
Prueba gratuita de la aplicación
Configuración de una marca personalizada para Trialforce
Las pruebas de una aplicación se gestionan en una organización de gestión de Trialforce (TMO). Esto permite crear su
organización de origen de Trialforce (TSO) y especificar los objetos de marca personalizados para su página de inicio de sesión
y sus emails. Para recibir una TMO, debe ser un socio de ISV apto y su aplicación debe haber superado la revisión de seguridad
de AppExchange. La TMO debería ser una organización diferente de la del negocio y de la organización con Developer Edition
en la que ha compilado la aplicación.
Para solicitar una TMO, haga lo siguiente:
1. Inicie sesión en el portal de socios.
2. Si no ha creado ya una organización con Developer Edition (DE) para que sea su TMO, solicite una mediante Crear una
organización de prueba (Create a test org) en la página principal del portal de socios.
3. Una vez que tenga la organización con DE, haga clic en Crear un caso (Create a case) en la página principal del portal de
socios.
4. Especifique la categoría como Solicitud de portal general > Solicitar Organización de gestión de Trialforce (General
Portal Request > Request Trialforce Management Organization).
5. Complete el formulario para crear la petición de una TMO. En la petición indique la información que solicita y los detalles
del paquete y el Id. de la organización con DE que va a utilizar como su TMO.
Nota: Para encontrar el Id. de la organización, en el menú Configuración vaya a Perfil de la compañía >
Información de la compañía (Company Profile > Company Information) y podrá ver los detalles de la organización.
6. Haga clic en Guardar.
Se ha generado la petición que se ha enviado al equipo de operaciones del socio. Este revisará el caso y configurará la organización
con DE para que actúe de TMO, o bien se pondrá en contacto con usted si tiene alguna otra pregunta.
Configuración de una marca personalizada para Trialforce
Permisos de usuario necesarios
Para gestionar Trialforce:
“Personalizar aplicación”
Los desarrolladores de aplicaciones mediante Trialforce para crear nuevas pruebas de sus productos pueden establecer
opcionalmente un sitio de inicio de sesión y emails del sistema con marca. Marcando estas áreas con la apariencia de su
compañía, los usuarios de su aplicación se verán inmersos en su marca desde el inicio hasta el fin de sesión. Las marcas
personalizadas deberían utilizarse únicamente para las aplicaciones que no sean de CRM y no para aquellas que amplíen
Salesforce CRM y necesiten objetos estándares de Salesforce tales como prospectos, oportunidades y casos.
Una página de inicio de sesión con marca le permite modificar su dominio y su sitio de inicio de sesión.
•
•
Los dominios de inicio de sesión finalizan con .cloudforce.com, de modo que si el nombre de su compañía es
“micompañía”, entonces su dominio de inicio de sesión sería micompañía.cloudforce.com.
Su sitio de inicio de sesión personalizado incluye el texto y el logotipo de su compañía, así como versiones simples de Mobile
de su sitio de inicio de sesión.
Los emails marcados le permiten especificar campos en emails generados por el sistema, de modo que el nombre de su compañía,
la dirección y otros detalles pertinentes se utilizan en la correspondencia de email. Puede crear varios conjuntos de emails con
marcas para distintas campañas o segmentos de clientes.
Nota: Para configurar el proceso de marcado, debe iniciar sesión en una Organización de gestión de Trialforce (TMO,
por sus siglas en inglés). Para obtener su TMO, registre un caso en el portal de socios de Salesforce.
160
Prueba gratuita de la aplicación
Creación de emails con imagen de marca
Creación de emails con imagen de marca
Permisos de usuario necesarios
Para gestionar Trialforce:
“Personalizar aplicación”
Puede personalizar la imagen de marca de los emails que envía a los suscriptores de las organizaciones de prueba nuevas.
Para crear un conjunto de emails con imagen de marca, haga lo siguiente:
1. Inicie sesión en su organización de gestión de Trialforce.
2. En Configuración, haga clic en Configuración de aplicaciones > Trialforce > Marca > Conjuntos de emails (App Setup
> Trialforce > Branding > Email Sets).
3. Haga clic en Nuevo conjunto de emails (New Email Set) o en Modificar (Edit) junto a un conjunto de emails existente.
4. Ingrese un nombre para el conjunto de emails y la información de su compañía.
5. En el área Vista previa de emails, haga clic en los distintos tipos de emails generados y asegúrese de que se leen correctamente.
Nota:
La URL de inicio de sesión que se muestra en la vista previa será siempre http://login.salesforce.com incluso si
utiliza una página de inicio de sesión con imagen de marca. Estos dos procesos son distintos.
6. Haga clic en Guardar.
7. Si está preparado para hacer que estos emails estén disponibles en sus organizaciones de origen de Trialforce (TSO), haga
clic en Publicar. De lo contrario, sus cambios se guardarán y los podrá publicar más tarde.
Para asignar un conjunto de emails con imagen de marca a su TSO:
1. En Configuración, haga clic en Configuración de aplicaciones > Trialforce > Organizaciones de origen (App Setup >
Trialforce > Source Organizations).
2. Haga clic en Modificar junto a la TSO.
3. Seleccione el conjunto de emails.
4. Haga clic en Guardar.
5. Haga clic en Iniciar sesión (Login) si desea ver el funcionamiento de la página de inicio de sesión con la imagen de marca.
Creación de una página de inicio de sesión con marca
Permisos de usuario necesarios
Para gestionar Trialforce:
“Personalizar aplicación”
Los clientes suelen iniciar sesión en la aplicación mediante el sitio tradicional login.salesforce.com. Una página de inicio de
sesión adaptada a su imagen de marca permite personalizar este dominio y esta página para que los clientes se identifiquen con
la marca. Su sitio de inicio de sesión personalizado incluye el texto y el logotipo de su compañía, así como versiones simples
de Mobile de su sitio de inicio de sesión.
Para crear una página de inicio de sesión con marca:
1. Inicie sesión en su organización de gestión de Trialforce.
2. En Configuración, haga clic en Trialforce > Marca > Sitio de inicio de sesión.
3. Haga clic en Configurar sitio de inicio de sesión.
161
Prueba gratuita de la aplicación
Creación de una organización de origen de Trialforce
4. Seleccione un subdominio para su sitio de inicio de sesión proporcionando un nombre en el campo provisto. El subdominio
suele ser el nombre de su compañía.
Nota: Los dominios de inicio de sesión finalizan con .cloudforce.com, de modo que si el nombre de su
compañía es “micompañía”, entonces su dominio de inicio de sesión sería micompañía.cloudforce.com.
5. Compruebe la disponibilidad del dominio y, a continuación, acepte las condiciones de uso.
6. Haga clic en Guardar e iniciar editor.
7. Utilice el editor de marca de inicio de sesión para cambiar el aspecto de su página de inicio de sesión. Para obtener más
ayuda acerca del uso del editor, haga clic en Ayuda para esta página.
8. Haga clic en Guardar y Cerrar.
9. Si está preparado para hacer que estos cambios estén disponibles en sus TSO, haga clic en Publicar. De lo contrario, sus
cambios se guardarán y los podrá publicar más tarde.
Creación de una organización de origen de Trialforce
Permisos de usuario necesarios
Para gestionar Trialforce:
“Personalizar aplicación”
Utilice una organización de gestión de Trialforce (TMO, siglas en inglés) para crear una organización de origen de Trialforce
(TSO, siglas en inglés) que actúe como la base para las nuevas organización de prueba. Instale el paquete en la TSO e incluya
también algunos datos para que los prospectos puedan jugar con ellos la primera vez que inicien sesión en su organización de
prueba. La TSO siempre es una organización con Enterprise Edition.
Para crear una TSO nueva, haga lo siguiente:
1.
2.
3.
4.
5.
Inicie sesión en su organización de gestión de Trialforce.
En Configuración, haga clic en Trialforce > Organizaciones de origen (Trialforce > Source Organizations).
Haga clic en Nuevo.
Introduzca un nombre de usuario y una dirección de email nuevos para la cuenta del administrador.
Ingrese un nombre para la TSO y, de forma opcional, especifique el uso de la marca personalizada mediante un conjunto
de emails con marca o un sitio de inicio de sesión con marca.
6. Haga clic en Crear.
Recibirá un email con los detalles de inicio de sesión para su TSO. Después, puede iniciar sesión en la TSO e instalar el paquete
junto con los datos y configuraciones de ejemplo. Además, de forma opcional puede hacer las tareas siguientes:
•
•
•
Crear un perfil personalizado
Crear usuarios nuevos
Crear registros de ejemplo
El objetivo es configurar la TSO exactamente como quiere que la encuentren y la usen los clientes. Después, puede crear una
plantilla de Trialforce que será una instantánea o una copia exacta de la TSO en un momento determinado.
Nota: Tenga en cuenta las consideraciones especiales para trabajar con una TSO que se indican a continuación:
•
•
Asocie siempre un paquete gestionado con su organización de gestión de licencias (LMO) antes de instalar la
aplicación en la TSO. Si no sigue este orden, las organizaciones de prueba aprovisionadas desde la TSO no
generarán prospectos ni licencias en la LMO.
Asegúrese de que el administrador de la TSO tiene una licencia para la aplicación en esa organización antes de
crear la plantilla de Trialforce.
162
Prueba gratuita de la aplicación
•
Vinculación de una organización de origen de Trialforce con
la APO
Puede crear varias organizaciones TSO a partir de su TMO. Esta opción le permite configurar pruebas para
distintos productos, cada una de las cuales con su propia configuración y marcas.
Vinculación de una organización de origen de Trialforce con la APO
Para vincular la organización de origen de Trialforce (TSO) con la organización de publicación de AppExchange (APO), haga
lo siguiente:
1. Inicie sesión en AppExchange con las credenciales de su APO.
2. Haga clic en su nombre que aparece en la esquina superior derecha y, en el menú desplegable, seleccione Consola de
publicación (Publishing Console).
3. Haga clic en la ficha Publicando (Publishing).
4. Haga clic en Sus organizaciones (Your Organizations).
5. Haga clic en Vincular organización nueva (Link New Organization).
6. Ingrese las credenciales de inicio de sesión de su TSO.
7. Haga clic en Aceptar.
Cuando ya se haya hecho la vinculación, las plantillas de Trialforce que cree se mostrarán en el área Sus plantillas (Your
Templates).
Creación de una plantilla de Trialforce
Permisos de usuario necesarios
Para gestionar Trialforce:
“Personalizar aplicación”
Una plantilla de Trialforce es una instantánea, o copia exacta, de su organización de origen de Trialforce (TSO) en una
determinada instancia en el tiempo. Puede crear varias plantillas a partir de la misma organización TSO. Asegúrese de que ha
instalado el paquete en la TSO y lo ha configurado tal y como quiere que los clientes lo vean y lo usen. Para ello, debe haber
incluido los datos, perfiles, usuarios y registros de ejemplo adecuados.
Nota: Solo puede crear una plantilla de Trialforce si el tamaño de la organización de origen de Trialforce es inferior
a 256 MB.
Para crear una plantilla de Trialforce:
1.
2.
3.
4.
Inicie sesión en la TSO.
En Configuración, haga clic en Configuración de aplicaciones > Trialforce (App Setup > Trialforce).
Haga clic en Plantilla nueva de Trialforce.
Especifique una descripción de la plantilla y si desea incluir datos en el diálogo que aparece. La opción predeterminada
debería ser la correcta en la mayoría de los casos.
5. Haga clic en Guardar.
Cuando se haya generado la plantilla, recibirá un email con el Id. de esta. Deberá enviar la plantilla al proceso de revisión antes
de poder utilizarla para inscribirse en organizaciones de prueba. Recuerde que debe generar una plantilla nueva cada vez que
actualice su TSO, para que las pruebas reflejen siempre el estado más reciente.
Cada plantilla de Trialforce tiene un estado con uno de los siguientes valores.
163
Prueba gratuita de la aplicación
Obtención de una plantilla de Trialforce revisada
En curso
Cuando se crea una plantilla de Trialforce por primera vez, siempre tiene este estado. Luego cambia automáticamente
a los estados Error o Correcto.
Correcto
La plantilla de Trialforce se puede utilizar para crear nuevas organizaciones de prueba.
Error
La plantilla de Trialforce no se puede utilizar como algo que pasado a ser un error y que requiere depuración adicional.
Eliminado
La plantilla de Trialforce ya no está disponible para su uso. Las plantillas eliminadas se eliminan automáticamente durante
las actualizaciones del sistema.
Obtención de una plantilla de Trialforce revisada
Para proporcionar una prueba gratuita en AppExchange mediante Trialforce, debe superar una revisión de la plantilla. Antes
de solicitar la revisión de una plantilla, vincule la organización de origen de Trialforce con la organización de publicación de
AppExchange (APO) y cree una plantilla de Trialforce desde su TSO.
Nota: Solo puede solicitar la revisión de una plantilla de Trialforce que tenga al menos un paquete instalado. Todos
los paquetes instalados deben haber superado previamente la revisión de seguridad.
1. Inicie sesión en AppExchange con las credenciales de su APO.
2. Haga clic en su nombre que aparece en la esquina superior derecha y, en el menú desplegable, seleccione Consola de
publicación (Publishing Console).
3. Haga clic en la ficha Plantillas de prueba (Trial Templates).
4. Haga clic en Iniciar revisión (Start Review) junto a la plantilla que desee revisar.
Recibirá un email de confirmación cuando inicie la revisión y otro cuando esta haya finalizado. La revisión es gratuita para los
socios y suele tardar entre 2 y 3 días.
Pruebas gratuitas en AppExchange
Nota: Las pruebas gratuitas solo están disponibles para los socios aptos. Para obtener más información sobre el
programa de socios, incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
Para crear pruebas en AppExchange, su aplicación debe cumplir con las condiciones siguientes:
•
•
•
•
•
Ser un paquete gestionado.
Su gestión se realiza a través de la aplicación de gestión de licencias.
Aprovisionamiento automático: es decir, no debe ser necesario que el usuario interactúe con usted en ningún momento
para obtener la aplicación y ejecutarla.
Haber superado la revisión de seguridad.
Haber superado la revisión de la plantilla de Trialforce.
Puede proporcionar una prueba gratuita en AppExchange de tres maneras diferentes:
•
•
Uso de Trialforce
Configuración de una unidad de prueba
164
Prueba gratuita de la aplicación
•
Proporcionar pruebas gratuitas en AppExchange mediante
Trialforce
Instalación de la aplicación en una organización actual
Proporcionar pruebas gratuitas en AppExchange mediante Trialforce
Nota: Las pruebas gratuitas solo están disponibles para los socios aptos. Para obtener más información sobre el
programa de socios, incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
Para proporcionar pruebas gratuitas en AppExchange mediante Trialforce, haga lo siguiente:
1. Cree una plantilla de Trialforce nueva con su aplicación instalada y configurada tal y como quiere que la vean los clientes
potenciales. Para obtener más información, consulte el apartado Configuración de Trialforce.
2. Envíe la plantilla de Trialforce para su revisión. Este proceso es gratuito y tarda mucho menos tiempo que la revisión de
seguridad de su aplicación. Se le notificará por email una vez que se haya aprobado la plantilla.
3. Vincule la plantilla de Trialforce a la lista de AppExchange.
a.
b.
c.
d.
e.
Inicie sesión en AppExchange con las credenciales de la organización de publicación.
Haga clic en Organizaciones (Organizations) en la parte superior de la página de inicio de Publishing.
Haga clic en Vincular organización nueva (Link New Organization).
Ingrese las credenciales de su organización de origen de Trialforce y haga clic en Guardar.
Regrese a la página de inicio de Publishing y haga clic en la ficha Plantilla de prueba (Trial Templates). Pulse el vínculo
de actualización que verá en la parte inferior de la página. Ahora debería ver su plantilla.
4. Vaya a su lista, haga clic en Modificar y, a continuación, haga clic en la ficha Oferta (Offering).
5. Seleccione Habilitar pruebas (Enable Trials), selecione la plantilla aprobada y haga clic en Guardar.
Ya tiene todo activado. A partir de este momento, cualquier puede acceder a su prueba a través del botón Obtener ahora (Get
It Now) en su lista. También puede dirigir a los usuarios directamente a la URL asociada con su formulario de prospecto de
prueba.
Cuando un usuario hace clic en Obtener ahora en su lista, este puede iniciar una prueba gratuita con su aplicación preinstalada
si no dispone de una cuenta de salesforce.com anterior. Después de hacer esta selección, el usuario deberá ingresar la información
que se suele recopilar para las pruebas gratuitas de Salesforce y aceptar los términos y condiciones, así como nuestro código
MSA. Una vez completado el formulario, el usuario recibirá un email en el que se le pedirá que inicie sesión y restablezca la
contraseña.
Configuración de una unidad de prueba en AppExchange
Una unidad de prueba es una organización con Developer Edition (DE) preconfigurada que permite a los clientes potenciales
probar su aplicación con datos de ejemplo que usted configure. Esta organización tiene ya el paquete cargado e incluye los
datos de ejemplo que elija. Una unidad de prueba es tan seguro como cualquier otro entorno de Salesforce. Las unidades de
prueba cuentan en la clasificación de popularidad.
La unidad de prueba tiene dos usuarios: el administrador y el usuario de evaluación de solo lectura. El usuario administrador
es el que se usa para crear datos de ejemplo y preparar la organización. Cuando los clientes potenciales hacen clic en el botón
Unidad de prueba (Test Drive) en la lista, inician sesión en la unidad de prueba como usuarios de evaluación de solo lectura.
Para configurar una unidad de prueba, haga lo siguiente:
1. Inicie sesión en AppExchange con las credenciales de su organización de publicación de AppExchange (APO).
2. Haga clic en su nombre que aparece en la esquina superior derecha y seleccione Consola de publicación (Publishing
Console).
3. Haga clic en la ficha Sus paquetes cargados (Your Uploaded Packages) y encuentre la versión del paquete.
165
Prueba gratuita de la aplicación
Prueba gratuita en AppExchange disponible cuando se instala
la aplicación
4.
5.
6.
7.
Haga clic en el vínculo Modificar lista (Edit Listing) junto a la versión de paquete.
Haga clic en la ficha Oferta (Offering).
Haga clic en Crear unidad de prueba (Create Test Drive).
En la ventana emergente, ingrese un título. Este debería se run nombre sin espacios, ya que se utilizará para crear el nombre
de usuario.
8. Seleccione el paquete. Se instalará en una organización con Developer Edition nueva.
9. Haga clic en Enviar.
Recibirá un email con las credenciales de inicio de sesión para una organización con DE nueva. Cuando tenga el mensaje,
haga lo siguiente:
1.
2.
3.
4.
Inicie sesión como administrador de la organización nueva y cree datos de ejemplo o realice otras tareas de configuración.
Inicie sesión como usuario de evaluación para definir la contraseña.
Vuelva a iniciar sesión en AppExchange.
En la ficha Oferta, en Unidad de prueba haga clic en Cambiar organización (Change Organization) para especificar la
nueva organización con DE.
5. Ingrese el inicio de sesión y la contraseña del usuario de evaluación que se le ha enviado junto con las credenciales de
administrador. El usuario de evaluación tiene permisos de solo lectura.
6. Haga clic en Aceptar.
7. Haga clic en Guardar.
Prueba gratuita en AppExchange disponible cuando se instala la
aplicación
Puede proporcionar pruebas gratuitas de su aplicación si en la configuración predeterminada de la licencia del paquete habilita
las pruebas gratuitas. Cuando un cliente instala la aplicación en una organización de Salesforce actual, podrá utilizarla durante
el periodo de prueba especificado.
Pruebas gratuitas en el sitio Web
Para proporcionar una prueba gratuita en el sitio Web, efectúe los pasos siguientes:
1.
2.
3.
4.
5.
Configure Trialforce.
Solicite un formulario de registro HTML.
Vincule su plantilla de Trialforce al formulario HTML.
Personalice el formulario HTML.
Aprovisione organizaciones de prueba nuevas.
Ya tiene todo listo. A partir de este momento, cada vez que un usuario potencial ingrese su información y envíe el formulario
correspondiente, salesforce.com aprovisionará una prueba acorde a la plantilla de Trialforce configurada.
Nota: Como alternativa al uso de un formulario Web, también puede crear inscripciones en Trialforce mediante la
API. Esto le ofrece más control sobre el proceso de inscripción y mayor visibilidad sobre los clientes potenciales.
Solicitud de un formulario de inscripción para Trialforce
Los socios que desean utilizar Trialforce deben vincular su sitio Web a un formulario HTML donde se recopila la información
importante sobre la persona que solicita la prueba. Salesforce.com facilita la tarea de solicitud de un formulario HTML de
166
Prueba gratuita de la aplicación
Vinculación de una plantilla de Trialforce con el formulario de
inscripción
ejemplo en el que puede personalizar los elementos de marca para dar una imagen de unidad con el sitio Web. El sistema
también conserva la información necesaria para garantizar que los envíos del formulario aprovisionarán la prueba adecuada.
Para solicitar un formulario de inscripción, haga lo siguiente:
1. Inicie sesión en el portal de socios.
2. Haga clic en el botón para registrar una petición.
3. Seleccione Tengo una pregunta o problema relacionado con un programa de socios de salesforce.com (I have a question
or issue relating to a salesforce.com partner program).
4. Seleccione Trialforce > Solicitar un nombre de formulario para Trialforce (Trialforce > Request a form name for
Trialforce).
5. En el campo de motivo del caso, elija: Pregunta de usuario general (General User Question).
6. En la sección de descripción, indique un nombre de aplicación exclusivo para su prueba.
Recibirá un email con el formulario de inscripción, así como las instrucciones necesarias para modificarlo y garantizar con ello
el aprovisionamiento de la prueba adecuada. Siga las instrucciones del email para realizar los cambios necesarios en el formulario
HTML predeterminado.
Nota: Puede solicitar el formulario de inscripción antes de que la plantilla de Trialforce esté preparada. Como el
formulario no estará vinculado a ninguna plantilla concreta, la organización resultante será una de prueba sencilla que
caducará dos días después. No obstante, será una buena manera de probar el formulario sin necesitar una copia de la
plantilla de Trialforce.
Vinculación de una plantilla de Trialforce con el formulario de inscripción
Puede asociar una plantilla de Trialforce específica con su formulario de inscripción HTML. Esto permite asegurarse de que
cuando los usuarios rellenan el formulario para solicitar una prueba, estos van recibir una organización de prueba nueva con la
aplicación instalada en ella además del contenido o los registros de ejemplo que haya agregado a la plantilla. Si se omite este
paso, los usuarios que rellenen el formulario recibirán una organización de prueba genérica que caducará a los dos días.
Para vincular una plantilla con el formulario de inscripción, haga lo siguiente:
1.
2.
3.
4.
5.
Inicie sesión en su organización de origen de Trialforce.
En Configuración, haga clic en Configuración de aplicaciones > Trialforce (App Setup > Trialforce).
Anote el Id. de la plantilla de Trialforce que va a utilizar. Será similar a este: 0TTi0000000Sxd8.
Anote el valor de Formname en el formulario de inscripción.
Registre un caso para asociar la plantilla de Trialforce con el formulario de inscripción.
a. Inicie sesión en el portal de socios.
b. Haga clic en Crear un caso (Create a Case).
c. Seleccione Tengo una pregunta o problema relacionado con un programa de socios de salesforce.com (I have a
question or issue relating to a salesforce.com partner program).
d. Seleccione Trialforce > Actualización de Trialforce (Trialforce > Trialforce Update).
e. En la descripción, indique el Id. de la plantilla de Trialforce que anotó en el paso 3 y el nombre del formulario de
inscripción del paso 4.
Recibirá un email con la confirmación de que se ha procesado su solicitud. Pruebe que la plantilla se haya asociado correctamente
al formulario de registro. Para ello, rellene el formulario y envíelo. Debería recibir un email cuando se haya aprovisionado la
prueba nueva.
167
Prueba gratuita de la aplicación
Personalización del formulario de registro de HTML
Personalización del formulario de registro de HTML
El formulario de HTML de registro de ejemplo que ha recibido tras registrar un caso en el portal de socios no es más que una
plantilla que debe modificar. Algunos cambios son obligatorios para garantizar que se aprovisiona la prueba adecuada. Si lo
desea, puede modificar el archivo para adaptarlo al aspecto de su sitio Web y su marca.
Deberá asignar los valores de formName y Lead.Partner_Account en el formulario de HTML a los que el equipo de
asistencia para socios le haya proporcionado. Puede encontrarlos en el email que contiene el formulario de registro de HTML
de ejemplo.
1. Abra el archivo HTML del formulario de registro en una herramienta de edición de texto o HTML.
2. Cambie las siguientes líneas de HTML en el formulario de registro para que se refleje esta información mediante la
actualización del atributo de valor. Busque el comentario TODO que le ayudará a encontrar las líneas que debe cambiar.
<!-- TODO: Add Signup Config Item Name of Config record as formName -->
<!-- TODO: Add Partner Account Record Id for Partner Lookup on Lead
(Provided by Salesforce.com-->
<input type="hidden" name="formName" value=""/>
<input type="hidden" name="Lead.Partner_Account__c" value=""/>
3. Busque y modifique otras secciones en el formulario etiquetadas con "TODO". Podrá hacer cosas como especificar logotipos
de la compañía, sobrescribir páginas de error o de proceso correcto, etc.
a. Abra el archivo HTML del formulario de registro en una herramienta de edición de texto o html.
b. Busque el término "TODO".
c. Siga las instrucciones de los comentarios para cambiar la parte adecuada del formulario. Estos son algunos ejemplos de
lo que puede cambiar de este modo:
•
•
•
•
•
un logotipo personalizado
el nombre mostrado de la aplicación (sin espacios)
especificar el nombre de la compañía como entidad de referencia para los prospectos que el formulario genere
especificar las URL personalizadas para los redireccionamientos por éxito o error
actualizar el idioma o la configuración regional del formulario
4. Modifique el HTML y CSS para adaptarlos al aspecto y el formato del sitio Web.
Nota: No realice cambios en JavaScript excepto en las secciones identificadas de forma específica para que el formulario
aprovisione una prueba nueva de forma adecuada.
Una vez que se han realizado los cambios, puede probar el rellenado del formulario y el envío de este para comprobar que se
aprovisionan las nuevas organizaciones de prueba correctamente.
Si no lo ha hecho antes, registre otro caso en el portal de socios para asociar el Id. de instantánea de la plantilla de prueba con
su nombre de formulario. De lo contrario, las pruebas que se aprovisionen mediante el rellenado del formulario serán pruebas
de dos días de Force.com genéricas.
Aprovisionamiento de organizaciones de prueba nuevas
Una vez que haya configurado Trialforce, puede aprovisionar organizaciones de prueba nuevas de una de las dos maneras
siguientes:
168
Prueba gratuita de la aplicación
•
•
Modificación de la prueba para una actualización
Envío: proporciona una prueba en nombre de un cliente al rellenar el formulario de registro con la información del cliente
potencial.
Obtención: los clientes potenciales solicitan ellos mismos una prueba mediante un formulario de registro que rellenan en
su sitio Web público.
1. Cargue el formulario de registro HTML en sus servidores Web públicos.
2. Modifique y publique las páginas HTML adecuadas en el sitio Web de su compañía donde quiera incluir un vínculo al
formulario de registro de Trialforce.
3. Desplácese a la página de registro desde el sitio Web de su compañía.
4. Rellene los campos obligatorios y envíe el formulario.
Todas las personas con acceso al formulario de registro pueden crear manualmente una prueba en nombre de un cliente potencial
sin que sea necesario publicar un formulario de registro en el sitio Web de la compañía. Para ello, inicie el archivo HTML del
formulario de registro en un navegador y rellene los campos en nombre del cliente, después envíe el formulario. El cliente
potencial recibirá un email, que puede incluir elementos de la marca de la compañía con información de esta, para avisarle de
que la prueba nueva está disponible.
Modificación de la prueba para una actualización
Hay ocasiones en las que le puede interesar mantener sus pruebas para reflejar los cambios en su aplicación o en sus elementos
de marca personalizados. Para ello, deberá hacer lo siguiente:
•
•
Cree y publique una versión nueva del paquete gestionado (o un paquete de ampliación) con los cambios efectuados en la
aplicación.
La organización de origen de Trialforce (TSO) deberá cargar el paquete nuevo. Puede volver a utilizar la TSO que ya usó
para crear la plantilla de Trialforce original, o bien puede crear una nueva. Si se decanta por esta última opción, asegúrese
de vincularla a su lista de AppExchange.
Para actualizar la prueba, haga lo siguiente:
1. Instale el paquete gestionado actualizado (o el paquete de ampliación) en la TSO.
2. Realice los cambios que desee en la TSO, como la carga de datos de ejemplo o la actualización de los elementos de marca
personalizados.
3. Cree una plantilla de Trialforce nueva para la prueba.
4. Envíe la plantilla para su revisión.. Si no se han realizado cambios importantes en la aplicación, la revisión debería ser un
proceso bastante rápido.
5. Una vez que obtenga la aprobación, vincule la plantilla nueva al formulario de inscripción HTML.
Cuando haya terminado estos pasos, los envíos nuevos del formulario de inscripción darán como resultado una prueba actualizada.
Mejores prácticas de Trialforce
Las recomendaciones siguientes constituyen las mejores prácticas para usar Trialforce.
•
•
•
•
Cree varias organizaciones de origen de Trialforce (TSO) para las experiencias de prueba personalizadas. Por ejemplo, una
para cada paquete, solución vertical de la industria y país gestionado.
Cargue los datos de ejemplo en la TSO.
Inserte la marca personalizada al formulario de inscripción de prueba, a la página de inicio de sesión y a los mensajes de
email.
Actualice la plantilla de Trialforce cada vez que implemente una versión nueva de la aplicación.
169
Prueba gratuita de la aplicación
•
Creación de inscripciones usando la API
Cuando haya configurado Trialforce, siga el flujo de inscripción para confirmar que todo funciona según lo previsto. Esto
también puede ayudarle a identificar aquellas áreas que pueden mejorarse en el proceso de inscripción.
Aunque Trialforce se diseñó principalmente para activar las pruebas gratuitas, también puede resultar útil en otros contextos.
Por ejemplo, puede utilizarlo para:
•
•
Crear organizaciones de prueba para usarlas en demostraciones comerciales.
Crear organizaciones de prueba con datos de ejemplo para realizar controles de calidad internos.
Creación de inscripciones usando la API
Permisos de usuario necesarios
Para crear o ver solicitudes de inscripción:
"API de solicitudes de inscripción"
Puede usar las llamadas de API al objeto SignupRequest para crear organizaciones de prueba para clientes potenciales. Cuando
se crean organizaciones de prueba (o inscripciones) usando formularios Web, no es posible personalizar el proceso de inscripción
o realizar un seguimiento de su estado. Usando la API, puede recoger y analizar información detallada en todas las inscripciones
de la organización de negocio. Esto le ofrece más control sobre el proceso de inscripción y mayor visibilidad sobre los clientes
potenciales. Por ejemplo, puede:
•
•
•
•
Ejecutar reportes y recoger mediciones, como el número de inscripciones por día o el número de inscripciones en diferentes
países.
Personalizar el objeto SignupRequest para agregar campos de intereses especiales en su compañía.
Crear desencadenadores para iniciar acciones específicas, como el envío de una notificación de email, siempre que se realice
una nueva solicitud de inscripción.
Activar inscripciones desde una amplia variedad de aplicaciones cliente y dispositivos, por lo que tendrá canales adicionales
para la adquisición de clientes.
Nota: Aunque puede crear nuevas inscripciones desde cualquier organización (con los permisos adecuados), se
recomienda hacerlo desde la organización de negocio. De esta forma, podrá integrar fácilmente los datos y mediciones
de todas las inscripciones en los procesos de negocio existentes.
Para empezar a crear nuevas inscripciones usando la API:
1. Cree una organización de origen de Trialforce (TSO) desde la organización de gestión de Trialforce.
2. Instale la aplicación en la TSO, junto con cualquier dato de muestra que pueda ser útil para la prueba.
3. Configure la TSO como quiera que la experimenten sus clientes, incluyendo la especificación de cualquier marca
personalizada.
4. Cree una plantilla de Trialforce desde la TSO.
5. Archive un caso en el portal de socios, especificando el Id. de organización de la TSO y el Id. de plantilla de la plantilla de
Trialforce.
Se le notificará por email una vez que se haya aprobado la plantilla. Entonces podrá utilizarla para crear nuevas inscripciones
haciendo llamadas de API al objeto SignupRequest. Consulte a continuación para obtener más información sobre el objeto
SignupRequest y una muestra de código demostrando su uso.
Nota: Para obtener más información sobre cómo trabajar con objetos, consulte Referencia de objeto para Salesforce y
Force.com.
170
Prueba gratuita de la aplicación
SignupRequest
SignupRequest
Representa una solicitud para una nueva inscripción de Trialforce. Este objeto está disponible en la versión 27.0, y posteriores,
de la API.
Llamadas compatibles
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete()
Campos
Nombre del campo
Detalles
AuthCode
Tipo
cadena
Propiedades
Create, Filter, Group, Sort
Descripción
Un código de autorización de una sola vez que se puede intercambiar para un token de
acceso de OAuth y un token de actualización mediante las API de Salesforce estándares.
Se utiliza junto con ConnectedAppCallbackUrl y ConnectedAppConsumerKey
cuando la aplicación conectada especificada no se ha configurado con un certificado
X.509. Se trata de un campo de solo lectura proporcionado por el sistema una vez
procesada la solicitud de inscripción. Este campo está disponible en la versión 29.0, y
posteriores, de la API.
Company
Tipo
cadena
Propiedades
Create, Filter, Group, Sort
Descripción
Nombre de la compañía que solicita la inscripción de prueba.
ConnectedAppCallbackUrl
Tipo
cadena
Propiedades
Create, Filter, Group, Sort
Descripción
Cuando se utiliza junto con ConnectedAppConsumerKey, especifica una aplicación
conectada que debería aprobarse de forma automática durante la creación de la inscripción.
Este campo está disponible en la versión 28.0, y posteriores, de la API.
ConnectedAppConsumerKey
Tipo
cadena
171
Prueba gratuita de la aplicación
Nombre del campo
SignupRequest
Detalles
Propiedades
Create, Filter, Group, Sort
Descripción
Cuando se utiliza junto con ConnectedAppCallbackUrl, especifica una aplicación
conectada que debería aprobarse de forma automática durante la creación de la inscripción.
Este campo está disponible en la versión 28.0, y posteriores, de la API.
País
Tipo
cadena
Propiedades
Create, Filter, Group, Sort
Descripción
Código ISO-3166 de país de dos caracteres en mayúscula. Puede encontrar la lista
completa de estos códigos diferentes sitios, como:
www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
CreatedOrgId
Tipo
cadena
Propiedades
Filter, Group, Nillable, Sort
Descripción
Id. de la organización de 15 caracteres de la organización de prueba creada. Se trata de
un campo de solo lectura proporcionado por el sistema una vez procesada la solicitud de
inscripción.
CreatedOrgInstance
Tipo
cadena
Propiedades
Filter, Group, Nillable, Sort
Descripción
La instancia de servidor de la nueva organización de prueba, por ejemplo “na8”. Este
campo está disponible en la versión 29.0, y posteriores, de la API.
ErrorCode
Tipo
cadena
Propiedades
Filter, Group, Nillable, Sort
Descripción
Código de error si la solicitud de inscripción no tiene éxito. Se trata de un campo de solo
lectura proporcionado por el sistema que se debe utilizar si se solicita asistencia técnica.
Nombre
Tipo
cadena
172
Prueba gratuita de la aplicación
Nombre del campo
SignupRequest
Detalles
Propiedades
Create, Filter, Nillable, Sort
Descripción
Nombre del usuario administrador para la inscripción de prueba.
Apellido
Tipo
cadena
Propiedades
Create, Filter, Group, Sort
Descripción
Apellido del usuario administrador para la inscripción de prueba.
SignupEmail
Tipo
email
Propiedades
Create, Filter, Group, Sort
Descripción
Dirección de email del usuario administrador para la inscripción de prueba.
Estado
Tipo
lista de selección
Propiedades
Filter, Group, Sort, Update
Descripción
Estado de la solicitud. Los posibles valores son Nuevo, En curso, Error o Correcto.
El valor predeterminado es Nuevo.
Subdomain
Tipo
cadena
Propiedades
Create, Filter, Group, Sort
Descripción
El subdominio de la nueva organización de prueba cuando utiliza un Mi dominio
personalizado. La longitud máxima es 33 caracteres para Developer Edition (DE) y 40
caracteres para todas las demás ediciones (porque se agrega un sufijo a todas las
organizaciones con DE).
SuppressSignupEmails
Tipo
booleano
Propiedades
Filter, Group, Nillable, Sort
173
Prueba gratuita de la aplicación
Nombre del campo
SignupRequest
Detalles
Descripción
Cuando se establece en true, no se envían emails de inscripción cuando se crea la
organización de prueba. Este campo se utiliza para la función Inscripción de proxy y está
disponible en la versión 29.0, y posteriores, de la API.
TemplateId
Tipo
cadena
Propiedades
Create, Filter, Group, Sort
Descripción
Id. de 15 caracteres de la plantilla de Trialforce aprobada base para la inscripción de
prueba. La plantilla es obligatoria y debe estar aprobada por salesforce.com.
TrialDays
Tipo
cualquier tipo
Propiedades
Create, Defaulted on create, Filter, Group, Sort
Descripción
Duración de la inscripción de prueba en días. Debe ser igual o menor que los días de
prueba de la plantilla de Trialforce aprobada. Si no se proporciona, el valor predeterminado
será el de la duración de la prueba especificada para la plantilla de Trialforce.
TrialSourceOrgId
Tipo
cadena
Propiedades
Filter, Group, Nillable, Sort
Descripción
Id. de la organización de 15 caracteres de la organización de origen de Trialforce desde
la que se ha creado la plantilla de Trialforce.
Nombre de usuario
Tipo
cadena
Propiedades
Create, Filter, Group, Sort
Descripción
Nombre de usuario del usuario administrador para la inscripción de prueba. Debe seguir
la convención de direcciones especificada en RFC822: www.w3.org/Protocols/rfc822/#z10
Uso
La clase de Java siguiente utiliza la API de REST para crear un objeto SignupRequest. Realiza la autenticación en la organización
de gestión de Trialforce y, después, publica una solicitud en el objeto SignupRequest.
Las variables siguientes son las que necesita especificar en este ejemplo.
174
Prueba gratuita de la aplicación
•
•
•
•
•
SignupRequest
SERVER: el nombre del servidor del host para la organización de gestión de Trialforce (TMO); por ejemplo,
“na1.salesforce.com”.
USERNAME: el nombre de usuario del administrador para la TMO.
PASSWORD: la concatenación de la contraseña del administrador y el token de seguridad para la organización TMO.
Para obtener un email con el token de seguridad, en su configuración personal en Salesforce, seleccione Restablecer mi
token de seguridad (Reset My Security Token) y haga clic en Restablecer token de seguridad (Reset Security Token).
CLIENT_ID: en el menú Configuración (Setup) de Salesforce, debajo de Aplicaciones conectadas, haga clic en Crear >
aplicaciones (Create Apps) y en Nuevo (New). Ingrese valores en los campos obligatorios (la URL de devolución de
llamada es obligatoria pero inicialmente se especificar cualquier URL válida, ya que no se utiliza), otorgue acceso completo
para los ámbitos de OAuth en el selector "Ámbitos de OAuth seleccionados" (Selected OAuth Scopes) y haga clic en
Guardar (Save). A continuación, copie el valor de “Clave de consumidor” (Consumer Key) y utilícelo para esta variable.
CLIENT_SECRET: en la misma página, haga clic en Haga clic para revelar (Click to reveal). A continuación, copie el
valor de "Pregunta secreta de consumidor" (Consumer Secret) y utilícelo para esta variable.
public class IsvSignupDriver {
private static final String
private static final String
private static final String
private static final String
private static final String
SERVER = server_name:port;
USERNAME = tmo_username;
PASSWORD = tmo_passwordsecurity_token;
CLIENT_ID = consumer_key;
CLIENT_SECRET = consumer_secret;
private static SignupRequestInfo signupRequest = null;
public static String createSignupRequest (SignupRequestInfo sr)
throws JSONException, IOException {
JSONObject createResponse = null;
signupRequest = sr;
JSONObject loginResponse = login(SERVER, USERNAME, PASSWORD);
String instanceUrl = loginResponse.getString("instance_url");
String accessToken = loginResponse.getString("access_token");
createResponse = create(instanceUrl, accessToken);
System.out.println("Created SignupRequest object: " + createResponse + "\n");
return createResponse.toString();
}
/* Authenticates to the TMO using the required credentials */
private static JSONObject login(String server, String username, String password)
throws ClientProtocolException, IOException, JSONException {
String authEndPoint = server + "/services/oauth2/token";
HttpClient httpclient = new DefaultHttpClient();
try {
HttpPost post = new HttpPost(authEndPoint);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("grant_type", "password"));
params.add(new BasicNameValuePair("client_id", CLIENT_ID));
params.add(new BasicNameValuePair("client_secret", CLIENT_SECRET));
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
post.setEntity(new UrlEncodedFormEntity(params, Consts.UTF_8));
BasicResponseHandler handler = new BasicResponseHandler();
String response = httpclient.execute(post, handler);
return new JSONObject(response);
} finally {
httpclient.getConnectionManager().shutdown();
}
}
/* Posts a request to the SignupRequest object */
private static JSONObject create(String instanceUrl, String accessToken)
throws ClientProtocolException, IOException, JSONException {
HttpClient httpClient = new DefaultHttpClient();
try {
175
Prueba gratuita de la aplicación
SignupRequest
HttpPost post = new HttpPost(instanceUrl +
"/services/data/v27.0/sobjects/SignupRequest/");
post.setHeader("Authorization", "Bearer " + accessToken);
post.setHeader("Content-Type", "application/json");
JSONObject requestBody = new JSONObject();
requestBody.put("TemplateId", signupRequest.getTemplateID());
requestBody.put("SignupEmail", signupRequest.getEmail());
requestBody.put("username", signupRequest.getUsername());
requestBody.put("Country", "US");
requestBody.put("Company", signupRequest.getCompanyName());
requestBody.put("lastName", signupRequest.getLastName());
StringEntity entity = new StringEntity(requestBody.toString());
post.setEntity(entity);
BasicResponseHandler handler = new BasicResponseHandler();
String response = httpClient.execute(post, handler);
return new JSONObject(response);
} finally {
httpClient.getConnectionManager().shutdown();
}
}
}
Códigos de error
Si la inscripción no se realiza correctamente, el sistema generará un código de error para que pueda identificar la causa. En
esta tabla se muestran los más importantes.
Código de error
Descripción
C-1007
Nombre de usuario duplicado.
C-1015
Error al establecer la configuración de Mi dominio de la nueva organización. Haga contacto con el
servicio de atención al cliente de salesforce.com para obtener ayuda.
C-1016
Error al configurar la aplicación conectada de OAuth para la inscripción de proxy. Compruebe que
la aplicación conectada tiene una clave de consumidor válida, una URL de devolución de llamada
y un certificado vigente (si fuera aplicable).
C-1018
Valor de subdominio no válido proporcionado durante la inscripción.
C-1019
El subdominio se está utilizando. Elija un valor nuevo.
C-9999
"Error fatal" genérico. Haga contacto con el servicio de atención al cliente de salesforce.com para
obtener ayuda.
S-1006
Dirección de email no válida (no sigue un formato adecuado).
S-2006
Código de país no válido.
T-0001
Id. de plantilla no válido (no sigue el formato 0TTxxxxxxxxxxxx).
T-0002
No se ha encontrado la plantilla. La plantilla no existe (puede haberse eliminado) o no existe con
la versión adecuada.
T-0003
Plantilla no aprobada para su uso por salesforce.com.
176
Prueba gratuita de la aplicación
Inicio de solicitud de inscripción
Inicio de solicitud de inscripción
Permisos de usuario necesarios
Para crear o ver solicitudes de inscripción:
"API de solicitudes de inscripción"
Al hacer clic en la ficha Solicitudes de inscripción, aparece la página de inicio de solicitudes de inscripción. En la sección
Solicitudes de inscripción recientes:
•
•
•
•
Haga clic en Nuevo para crear una nueva inscripción.
Haga clic en el número de cualquier solicitud de inscripción para ver detalles sobre ella, incluidos su historial y el estado
de la aprobación.
Seleccione un elemento de la lista desplegable para mostrar una lista de las solicitudes de inscripción que cumplen los
criterios. En la lista, puede hacer clic en el nombre de la solicitud de inscripción para ir directamente al detalle de la solicitud
de inscripción.
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. Para modificar o eliminar vistas que haya creado, selecciónelas en
la lista desplegable Ver y haga clic en Modificar.
Nota: La plantilla de Trialforce debe estar aprobada, rellenando un cuadro en el portal de socios, para poder crear
nuevas inscripciones desde esta página.
Creación de una solicitud de inscripción
Permisos de usuario necesarios
Para crear o ver solicitudes de inscripción:
"API de solicitudes de inscripción"
1. Seleccione Solicitud de inscripción en la lista desplegable Crear nueva en la barra lateral o haga clic en Nuevo junto a
Solicitudes de inscripción recientes en la página de inicio de solicitudes de inscripción.
2. Introduzca la información para la solicitud de inscripción.
3. Haga clic en Guardar cuando haya terminado o haga clic en Guardar y nuevo para guardar la solicitud de inscripción
actual y añadir otra.
Visualización de los detalles de solicitud de inscripción
Permisos de usuario necesarios
Para crear o ver solicitudes de inscripción:
"API de solicitudes de inscripción"
Desde la página de detalles de la solicitud de inscripción:
•
•
Haga clic en Eliminar para eliminar la solicitud de inscripción
Haga clic en Duplicar para crear una nueva solicitud de inscripción con los mismos atributos que esta
La página de detalles contiene las siguientes secciones.
177
Prueba gratuita de la aplicación
•
•
Agregar campos personalizados a las solicitudes de inscripción
Detalle de solicitud de inscripción
Historial de solicitud de inscripción
Detalle de solicitud de inscripción
En esta sección se muestran los siguientes atributos (en orden alfabético).
Atributo
Descripción
Compañía
Nombre de la compañía que solicita la inscripción de prueba.
País
Código ISO-3166 de país de dos caracteres en mayúscula. Puede encontrar la lista completa
de estos códigos diferentes sitios, como:
www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
Organización creada
Id. de la organización de 15 caracteres de la organización de prueba creada. Se trata de un
campo de solo lectura proporcionado por el sistema una vez procesada la solicitud de
inscripción.
Email
Dirección de email del usuario administrador para la inscripción de prueba.
Código de error
Código de error si la solicitud de inscripción no tiene éxito. Se trata de un campo de solo
lectura proporcionado por el sistema que se debe utilizar si se solicita asistencia técnica.
Nombre
Nombre del usuario administrador para la inscripción de prueba.
Apellidos
Apellido del usuario administrador para la inscripción de prueba.
Organización de origen Id. de la organización de 15 caracteres de la organización de origen de Trialforce desde la que
se ha creado la plantilla de Trialforce.
Estado
Estado de la solicitud. Los posibles valores son Nuevo, En curso, Error o Correcto. El
valor predeterminado es Nuevo.
Plantilla
Id. de 15 caracteres de la plantilla de Trialforce aprobada base para la inscripción de prueba.
La plantilla es obligatoria y debe estar aprobada por salesforce.com.
Descripción de
plantilla
Descripción de la plantilla de Trialforce aprobada base para la inscripción de prueba.
Días de prueba
Duración de la inscripción de prueba en días. Debe ser igual o menor que los días de prueba
de la plantilla de Trialforce aprobada. Si no se proporciona, el valor predeterminado será el
de la duración de la prueba especificada para la plantilla de Trialforce.
Nombre de usuario
Nombre de usuario del usuario administrador para la inscripción de prueba. Debe seguir la
convención de direcciones especificada en RFC822: www.w3.org/Protocols/rfc822/#z10
Historial de solicitud de inscripción
En esta sección aparece la fecha en la que se creó la solicitud de inscripción, el usuario que la creó y las acciones que se han
realizado en ella.
Agregar campos personalizados a las solicitudes de inscripción
Permisos de usuario necesarios
Para crear o ver solicitudes de inscripción:
"API de solicitudes de inscripción"
Puede agregar campos personalizados al objeto SignupRequest tal y como lo hace para cualquier otro objeto estándar.
178
Prueba gratuita de la aplicación
Ejecución de reportes en solicitudes de inscripción
1. En la organización de gestión de Trialforce, en Configuración, haga clic en Personalizar > Solicitudes de inscripción >
Campos (Customize > Signup Requests > Fields).
2. Haga clic en Nuevo.
3. Especifique los detalles del campo personalizado y haga clic en Guardar.
Para ver el campo personalizado en una lista de registros actuales de SignupRequest, cree una vista personalizada que contenga
ese campo en la ficha Solicitudes de inscripción (Signup Requests).
Ejecución de reportes en solicitudes de inscripción
Permisos de usuario necesarios
Para crear o ver solicitudes de inscripción:
"API de solicitudes de inscripción"
Una vez que se han creado algunos registros de SignupRequest, puede ejecutar reportes personalizados en ellos.
1. En la organización de gestión de Trialforce, en Configuración haga clic en Crear > Tipos de reporte (Create > Report
Types) y en Tipos de reportes personalizados (Custom Report Types).
2. Seleccione Solicitudes de inscripción (Signup Requests) como el objeto principal.
3. Ingrese una etiqueta, un nombre, una descripción y guarde todo en una categoría como Reportes administrativos
(Administrative Reports).
4. Finalice el asistente y guarde el tipo de reporte.
5. Configure el reporte con los campos que le interesen y haga clic en Guardar.
6. Seleccione la ficha Reportes (Reports) y haga clic en Reporte nuevo (New Report) para crear un reporte del nuevo tipo.
7. Seleccione el nombre del tipo de su reporte y haga clic Crear.
Cuando haya creado el reporte, podrá ejecutarlo periódicamente para ver las tendencias en los datos.
Uso de desencadenadores con solicitudes de inscripción
Permisos de usuario necesarios
Para crear o ver solicitudes de inscripción:
"API de solicitudes de inscripción"
Puede configurar desencadenadores para iniciar determinadas acciones cada vez que se envía una solicitud de inscripción.
1. En la organización de gestión de Trialforce, en Configuración, haga clic en Personalizar > Solicitudes de inscripción >
Desencadenadores (Customize > Signup Requests > Triggers).
2. Haga clic en Nuevo.
3. Agregue el código del desencadenador y haga clic en Guardar.
Por ejemplo, este desencadenador inserta un prospecto nuevo según la información de la solicitud de inscripción.
trigger SignupRequestTrigger on SignupRequest (after insert) {
private SignupRequest[] sr = Trigger.new;
Lead l = new Lead(
LastName = sr[0].LastName,
FirstName = sr[0].FirstName,
Company = sr[0].Company,
Email = sr[0].SignupEmail,
LeadSource = 'Trial Signup'
);
insert l;}
179
Prueba gratuita de la aplicación
Creación de inscripciones de proxy para acceso de OAuth y a
API
Puede comprobar que se ha creado un registro de prospecto cada vez que crea una SignupRequest. Para encontrar con facilidad
un prospecto específico, puede ordenar los prospectos por email.
Creación de inscripciones de proxy para acceso de OAuth y a API
Permisos de usuario necesarios
Para crear o ver solicitudes de inscripción:
"API de solicitudes de inscripción"
Mediante el uso del objeto SignupRequest, puede crear de forma programática una organización nueva sin que se envíen al
usuario mensajes de email generados por el sistema. Después puede obtener un token de acceso de OAuth para iniciar sesión
en la organización y realizar solicitudes de API desde ella, todo ello sin que el usuario tenga que hacer nada. Este proceso se
denomina is inscripción de proxy porque permite crear y manejar la operación en nombre del usuario, sin que este sepa que
está utilizando Salesforce en segundo plano.
En el proceso de inscripción tradicional, cuando se crea una organización nueva, el usuario recibe un mensaje de email generado
por el sistema que contiene la URL de inicio de sesión y una contraseña inicial para poder iniciar sesión en la organización.
Después, el usuario tiene que iniciar sesión y concederle a usted de forma explícita el acceso a API para que pueda realizar
llamadas a la organización en su nombre. En cambio, con el proceso de inscripción de proxy, no se generan mensajes de email
ni el usuario tiene que hacer nada para proporcionarle acceso a API.
La capacidad de crear y gestionar organizaciones mediante proxy amplía sus opciones para integrar Salesforce con aplicaciones
externas disponibles en otras plataformas. Permite incorporar cualquier función de la plataforma Force.com en su propia
aplicación sin exponer la interfaz de usuario de Salesforce. De hecho, se puede anular la asociación de todas las funciones de
Salesforce de la interfaz de usuario para que estén disponibles para su integración en la ejecución o interfaz de usuario de
cualquier otra aplicación de un modo perfecto e invisible.
Por ejemplo, imagine que un proveedor de software independiente tiene una aplicación Web, compilada en la plataforma
.NET, que ayuda a las compañías a gestionar los reportes y los reembolsos de los gastos de viajes para los empleados. A este
proveedor podría interesarle integrar Chatter en su aplicación para que todos los empleados de la compañía pudieran opinar
con comentarios y sugerencias sobre sus viajes útiles para los demás. El proveedor puede hacer esto mediante el uso de las API
de Salesforce adecuadas para implementar la solución del modo siguiente:
1.
2.
3.
4.
5.
Se utiliza la inscripción de proxy para crear una organización de Salesforce para cada uno de los clientes.
Se crean los usuarios en cada organización de los clientes para todos los empleados de la compañía.
Se configura y actualiza un grupo de Chatter para poder compartir información sobre viajes.
Se monitorean los comentarios que hagan los usuarios en Chatter y se extrae información de las publicaciones individuales.
Se inserta la información en su aplicación y se muestra en la interfaz de usuario existente.
Con este proceso, el proveedor de software independiente proporciona a sus clientes acceso a la funcionalidad Chatter sin que
tenga que desarrollarla desde cero. Los clientes del proveedor utilizan Chatter como si fuera una ampliación natural de la
aplicación existente, en una interfaz que conocen bien y sin que tengan que saber nada de Salesforce ni tengan que iniciar
sesión en este sistema. Este mismo concepto puede aplicarse a cualquier otra función de Salesforce, incluidos los objetos
estándares y personalizados, Apex y Visualforce. En verdad, la inscripción de proxy permite a los proveedores de software
independientes consumir Salesforce como servicio e integrar sus funciones en las aplicaciones de cualquier plataforma sin
exponer la interfaz de usuario de Salesforce. Las aplicaciones posibles donde se puedan integrar las funciones de Salesforce
son tantas como las que pueda imaginar el proveedor.
El procedimiento para crear una inscripción de proxy es el siguiente:
1. Inicie sesión en una organización con Developer Edition (que tiene el permiso de usuario Aplicaciones conectadas [Connected
Apps] activado de forma predeterminada).
180
Prueba gratuita de la aplicación
Creación de inscripciones de proxy para acceso de OAuth y a
API
2. En el menú Configuración (Setup), debajo de Aplicaciones conectadas haga clic en Crear > Aplicaciones (Create Apps)
y en Nuevo (New).
3. Ingrese valores en los campos obligatorios. Debe especificar un certificado X.509 y otorgar acceso completo para los ámbitos
de OAuth en el selector "Ámbitos de OAuth seleccionados" (Selected OAuth Scopes). La URL de devolución de llamadas
es necesaria pero se puede establecer inicialmente en cualquier URL válida siempre que no se utilice. Haga clic en Guardar
(Save) cuando haya terminado.
4. Registre el valor de Clave de consumidor (Consumer Key) en la misma página. Además, haga clic en Haga clic
para revelar (Click to reveal) y registre el valor de Pregunta secreta de consumidor (Consumer Secret).
5. Agregue la aplicación conectada como un componente a un paquete nuevo. Registre el valor de la URL de instalación para
el paquete.
6. Inicie sesión en la organización de gestión de Trialforce y, desde ahí, cree una nueva organización de origen de Trialforce.
7. Inicie sesión en la organización de origen de Trialforce e instale el paquete que contiene la aplicación conectada utilizando
para ello la URL de instalación registrada en el paso 5.
8. Una vez que la aplicación conectada está instalada en la organización de origen de Trialforce, puede personalizarla en
Configuración > Gestionar aplicaciones (Gestionar aplicaciones). Podrá ver la aplicación conectado y podrá modificar
sus atributos. Especifique los perfiles y los permisos adecuados y, en la sección Políticas de OAuth (OAuth policies), elija
la opción “Los usuarios aprobados por el administrador se han autorizado previamente” (Admin approved users are
pre-authorized). De este modo, se garantiza que puede autenticar la organización con estos criterios en nombre de los
usuarios.
9. Una vez que haya configurado la organización de origen de Trialforce según sus requisitos, cree a partir de ella una plantilla
de Trialforce. Seleccione el botón de opción Toda la configuración y todos los datos (All Setup and Data) cuando cree
la plantilla de Trialforce.
10. Archive un caso en el portal de socios para obtener la aprobación que le permite crear inscripciones nuevas con la plantilla.
11. Una vez que la plantilla esté aprobada, podrá inscribir una organización nueva con el objeto SignupRequest. Deberá
especificar los valores de OAuth que sean necesarios para conectarse a la organización recién creada, es decir: Clave de
consumidor y URL de devolución de llamada.
POST https://mycompany-tmo.salesforce.com/services/data/v27.0/sobjects/SignupRequest/
Authorization Bearer
00Dxx0000001gR6!ARoAQAS3Uc6brlY8q8TWrrI_u1THuUGmSAp
XrksSniyjom9kXfDac4UP.m9FApjTw9ukJfKqWuD8pA9meeLaltRmNFvPqUn7
Content-Type application/json Body:
{
"TemplateId":"0TT000000000001",
"SignupEmail":"[email protected]",
"Username":"[email protected]",
"Country":"US",
"Company":"salesforce.com",
"LastName":"Smith",
"ConnectedAppConsumerKey":
"3MVG9AOp4kbriZOLfSVjG2Pxa3cJ_nOkwhxL1J1AuV22u8bm82FtDtWFVV__
Vs6mvqoVbAnwsChp9YT4bfrYu",
"ConnectedAppCallbackUrl":
"https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp" }
Cuando se especifican los campos ConnectedAppConsumerKey y ConnectedAppCallbackUrl en el objeto SignupRequest,
se desencadena un flujo de inscripción de proxy para aprobar de forma automática una aplicación conectada existente para
utilizar en esta organización nueva. En ese flujo, no se envía al usuario ningún mensaje de email relativo a la inscripción. Una
vez que conoce el nombre de usuario del administrador, la clave de consumidor y la pregunta secreta de consumidor, ya dispone
de toda la información que necesita para lo siguiente:
•
•
Realizar solicitudes de API en la organización recién creada como usuario administrador de esta
Solicitar un token de acceso actualizado en cualquier momento
181
Prueba gratuita de la aplicación
Preguntas más frecuentes sobre Trialforce
Preguntas más frecuentes sobre Trialforce
Esta sección contiene una lista de las preguntas más frecuentes planteadas sobre Trialforce.
•
•
•
•
¿Cómo puedo actualizar la prueba a una nueva versión de la aplicación?
¿Puedo ofrecer mi aplicación a través de Trialforce y de AppExchange?
¿En qué se diferencian las pruebas de Trialforce?
¿Se puede instalar otra aplicación en una organización de prueba?
¿Cómo puedo actualizar la prueba a una nueva versión de la aplicación?
Instale la versión nueva del paquete en la organización de origen de Trialforce. Después de la actualización, cree una plantilla
de Trialforce nueva y úsela como la base para su prueba.
¿Puedo ofrecer mi aplicación a través de Trialforce y de AppExchange?
¡Por supuesto! Trialforce y AppExchange son complementarios y juntos constituyen un sistema de distribución eficiente.
Incluso podría anunciar su página de Trialforce en la lista de AppExchange, y viceversa. Por lo general, AppExchange es
eficiente para los clientes de Salesforce CRM mientras que Trialforce es la opción idónea para los clientes nuevos.
¿En qué se diferencian las pruebas de Trialforce?
Las pruebas se administran desde AppExchange mientras que Trialforce se administra desde su propio sitio Web. Para obtener
más información sobre las prueba, consulte Creación de una prueba en AppExchange.
¿Se puede instalar otra aplicación en una organización de prueba?
Sí. La organización principal de Trialforce es una organización de Salesforce con funcionamiento pleno. Su cliente instalará
su aplicación y, posteriormente, podrá instalar otras aplicaciones en la misma organización que quepan. Es como cualquier
otra prueba gratuita de Salesforce.
182
Capítulo 9
Asistencia a sus suscriptores
En este capítulo...
•
•
Ficha Soporte
Consola de compatibilidad del
suscriptor
Los editores de aplicaciones son responsables de la asistencia a los usuarios
finales de todas sus listas. Cuando los usuarios se ponen en contacto con el
servicio de atención al cliente de salesforce.com con una pregunta acerca de su
lista en la fichas Acerca de y Asistencia de su lista. Asegúrese de que sus listas
de AppExchange incluyen información de asistencia.
Si ha instalado la Aplicación de gestión de licencias (LMA) puede iniciar sesión
en la organización de un cliente y proporcionar asistencia administrativa para
sus clientes. Esta función solo está disponible para paquetes gestionados que
han superado la revisión de seguridad. Para obtener más información, consulte
Iniciar sesión en Organizaciones del suscriptor.
183
Asistencia a sus suscriptores
Ficha Soporte
Ficha Soporte
En la ficha Soporte (Support) se proporciona información del servicio de atención al cliente que quiere prestar a los clientes.
Campo
Descripción
Con asistencia (Supported) o Sin asistencia (No
Aquí se indica si la aplicación dispone o no de servicio de
asistencia. En caso de que lo tenga, ingrese la información que
se solicita. En caso contrario, solo tiene que aceptar un acuerdo
de términos y condiciones.
Support)
Número de teléfono
El teléfono de asistencia de su compañía. Indique si en este
número de teléfono se aplican cargos adicionales.
Email
El email de asistencia de su compañía. Indique si en esta
dirección de email se aplican cargos adicionales.
URL del chat online (Online Chat URL)
La dirección del servicio de chat online de su compañía.
Indique si en esta asistencia online se aplican cargos
adicionales.
URL de base de datos de conocimientos
(Knowledge Base URL)
La dirección de la base de datos de conocimientos de su
compañía. Indique si en el acceso a esta base de datos se aplican
cargos adicionales.
Asistencia disponible las 24 horas de los 7
días de la semana (Support Available 24 hrs
× 7 days)
Indique si el servicio de asistencia está disponible siempre: las
24 horas del día, los siete días de la semana.
Asistencia Premium disponible (Premium
Support Available)
Indique si ofrece un paquete de soporte premium.
Acuerdo de nivel de servicio (Service Level
Agreement)
Indique si ofrece un contrato de prestación de servicios.
Detalles de asistencia (Support Details)
Ingrese información detallada sobre las funciones de la
asistencia.
Términos y condiciones (Terms & Conditions)
Ingrese los términos y condiciones que los clientes deben leer
y aceptar antes de instalar la aplicación. Si ocupan más de
32.000 caracteres, ingrese un acuerdo abreviado y deje el
documento completo como referencia en su sitio Web.
Consola de compatibilidad del suscriptor
En la consola de compatibilidad del suscriptor encontrará con facilidad información sobre todos los suscriptores, tal como la
edición de Salesforce que utilizan y si han superado sus límites. Los suscriptores también pueden otorgarle acceso de inicio de
sesión para que solucione problemas directamente desde dentro de la aplicación de la misma manera por la que otorgan acceso
de inicio de sesión a los administradores. Cuando tenga acceso otorgado, podrá iniciar sesión en la organización del suscriptor
y ver directamente su configuración y sus datos que pueden ser de utilidad para solucionar los problemas.
184
Asistencia a sus suscriptores
Visualización de detalles del suscriptor
Nota: Esta función está disponible a los socios de salesforce.com aptos. Para obtener más información sobre el
programa de socios, incluidos los requisitos de aptitud, visite el sitio Web www.salesforce.com/partners.
Visualización de detalles del suscriptor
La página Descripción general del suscriptor, a la que se accede haciendo clic en el nombre de la organización desde la ficha
Suscriptores de la LMA, proporciona información detallada acerca de cada organización del suscriptor. Eso le puede
proporcionar perspectivas acerca de cómo un cliente utiliza su aplicación y le ayuda a solucionar problemas.
En detalles de la organización:
•
•
•
El nombre y la información de contacto se encuentran en Configuración, página Perfil de la compañía > Información de
la compañía de la organización del suscriptor. Esa puede ser diferente a la información que aparece en los registros de
prospecto, cuenta o contacto de su LMA.
El Id. de organización es un Id. único que identifica la organización de Salesforce de este cliente.
La instancia determina en qué centro de datos de salesforce.com reside la organización de este cliente. También determina
cuando se actualizará el cliente con una nueva versión de Salesforce. Consulte trust.salesforce.com durante el periodo de
la versión para comprender qué versión de Salesforce está utilizando el cliente.
La página también incluye estas listas relacionadas.
Límites
Información, en porcentajes, sobre el espacio en el archivo, en los datos y el número de solicitudes de API asociadas a
este cliente.
Acceso de inicio de sesión otorgado
Se trata de una lista de usuarios a los que se les ha otorgado acceso de inicio de sesión y la fecha en la que caducará este
acceso.
Paquetes y licencias
Una lista de todos los paquetes instalados en esta organización y asociados con esta LMA. Para cada paquete, se muestra
la versión de la aplicación que utiliza un cliente, el número total de licencias suministradas al suscriptor y el número que
ha utilizado. Esta información debería coincidir con el registro de licencias del suscriptor en la LMA.
Solicitud de acceso de inicio de sesión
Solicite al usuario que se dirija a su configuración personal y haga clic en Otorgar acceso de inicio de sesión de cuenta o
Otorgar acceso de inicio de sesión, cualquiera que aparezca, para otorgar el acceso. Si el publicador no aparece en esta página,
es por uno de estos motivos:
•
•
•
•
Un administrador del sistema a desactivado la posibilidad de usuarios que no son administradores de otorgar acceso.
El usuario no dispone de una licencia para el paquete.
El paquete tiene licencia para toda la organización. Solo los administradores con el permiso “Gestionar usuarios” activado
en su perfil pueden otorgar el acceso.
Está activada la preferencia de la organización Los administradores pueden iniciar sesión como cualquier usuario.
Nota: A menos que esté activada la preferencia de la organización Los administradores pueden iniciar sesión como
cualquier usuario, el acceso se otorga durante un tiempo limitado, y el suscriptor puede revocar el acceso en cualquier
momento. Cualquier cambio que realice cuando inicia sesión como un suscriptor se registran en el seguimiento de
auditoría.
185
Asistencia a sus suscriptores
Iniciar sesión en Organizaciones del suscriptor
Iniciar sesión en Organizaciones del suscriptor
Permisos de usuario necesarios
Para iniciar sesión en las organizaciones del suscriptor:
“Iniciar sesión en la organización del suscriptor”
Para iniciar sesión, una vez que otro usuario le ha concedido acceso:
1. En la Aplicación de gestión de licencias (LMA), haga clic en la ficha Suscriptores.
2. Para buscar una organización del suscriptor rápidamente, introduzca un nombre del suscriptor o un Id. de organización en
el cuadro de búsqueda y haga clic en Buscar.
3. Haga clic en el nombre de la organización del suscriptor.
4. En la página Detalles de la organización, haga clic en Inicio de sesión junto a un nombre de usuario. Tenga en cuenta que
tiene los mismos permisos que el usuario con el que ha iniciado sesión.
5. Cuando haya finalizado la resolución de problemas, haga clic en Volver a Descripción general del suscriptor para volver
a la organización.
Nota: Únicamente aparecerán en esta lista los suscriptores que han instalado al menos un paquete gestionado vinculado
a su Aplicación de gestión de licencias (LMA).
Mejores prácticas
•
•
•
Cuando accede a una organización del suscriptor, se cierra la sesión de su LMO (Organización de gestión de licencias).
Puede establecer un campo mi dominio, por lo que no se cerrará la sesión de su Organización de gestión de licencias
automáticamente cuando inicia sesión en una organización del suscriptor. Para establecer un dominio propio, en
Configuración, haga clic en Gestión de dominio > Mi dominio (Domain Management > My Domain).
Procure permitir únicamente al personal técnico y de atención al cliente de confianza iniciar sesión en una organización
del suscriptor. Dado que esta función puede incluir el acceso total de lectura/escritura a los datos y las configuraciones del
cliente, es importante preservar su seguridad para mantener su reputación.
Controle quién tiene acceso proporcionando permisos de usuario “Iniciar sesión en la organización del suscriptor” a personal
de asistencia específico a través de un perfil o un conjunto de permisos.
Solución de problemas en Organizaciones del suscriptor
Si inicia sesión como un usuario en una organización del suscriptor, puede crear registros de depuración de Apex que contienen
el resultado de sus paquetes gestionados. Eso incluye inicios de sesión que no se exponen normalmente al suscriptor. Utilizando
esta información de registro, puede solucionar problemas específicos de esa organización del suscriptor.
1. Inicie la Consola de desarrollador desde Su nombre > Consola de desarrollador
2. Realice la operación y vea el registro de depuración con su resultado. Si el usuario tiene acceso, configure un registro de
depuración: desde Configuración, haga clic en Monitoreo > Registros de depuración o Registros > Registros de depuración.
Tenga en cuenta que los suscriptores no podrán ver los registros que ha establecido o creado ya que contienen su código Apex
oculto. Además, puede ver y modificar datos que se contienen en la configuración personalizada protegida desde sus paquetes
gestionados al iniciar sesión como un usuario.
186
Capítulo 10
Actualización de la aplicación
En este capítulo...
•
•
•
Creación y carga de parches
Trabajo con versiones de parche
Versiones del código Apex
Después de cargar una aplicación en paquetes, puede actualizarla para solucionar
problemas o incorporar funcionalidades nuevas. Cuando se actualiza un paquete,
se crea una versión nueva.
Una versión de paquete es un número que identifica el conjunto de componentes
cargados en un paquete. El número de versión tiene el formato
majorNumber.minorNumber.patchNumber (por ejemplo, 2.1.3). Los
números mayor y menor aumentan con cada versión posterior. El patchNumber
se genera y se actualiza solo para una versión de parche. Los paquetes sin
gestionar no se pueden actualizar, de modo que cada versión de paquete es
simplemente un conjunto de componentes que se distribuyen. La versión de
un paquete tiene más importancia en el caso de los paquetes gestionados. Los
paquetes se comportan de modo diferente según la versión. Los editores pueden
utilizar las versiones de paquetes para hacer evolucionar los componentes de
sus paquetes gestionados cómodamente publicando versiones posteriores de
paquetes sin que dicho paquete estropee las integraciones de clientes existentes.
Los números de versión dependen del tipo de publicación de paquete, que
identifica la forma en que se distribuyen los paquetes. Hay de dos tipos:
Edición principal
La edición principal indica que un paquete es Gestionado y editado.
En estas ediciones, los números principales y secundarios de una versión
de paquete aumentan hasta el valor seleccionado.
Versión de parche
La versión del parche solo es válida en caso de que haya distintos parches
de un paquete. Cada versión de parche tiene un número mayor a la del
anterior.
En la tabla siguiente se muestra una secuencia de números de versión de una
serie de cargas:
Secuencia Tipo
de carga
Primera
carga
Número Notas
de
versión
Gestionado 1.0
en
versión
beta
187
La primera carga Gestionado en versión
beta.
Actualización de la aplicación
Secuencia Tipo
de carga
Número Notas
de
versión
Segunda
carga
Gestionado 1.0
y editado
Una carga Gestionado y editado. Observe
que el número de versión no cambia.
Tercera
carga
Gestionado 1.1
y editado
Observe el cambio del segundo número de
la versión en esta carga de tipo Gestionado
y editado. Si carga una nueva versión de
parche, no podrá cambiar el número de
parche.
Cuarta
carga
Gestionado 2.0
en
versión
beta
La primera carga Gestionado en versión beta
del número de versión 2.0. Observe la
actualización del número de la versión.
Quinta
carga
Gestionado 2.0
y editado
Una carga Gestionado y editado. Observe
que el número de versión no cambia.
Cuando un suscriptor existente instala una versión de paquete nueva, sigue
habiendo solo una instancia de cada componente en el paquete aunque los
componentes pueden emular versiones anteriores. Por ejemplo, un suscriptor
puede utilizar un paquete gestionado que contiene una clase de Apex. Si el
editor decide desaprobar un método en la clase de Apex y publicar una versión
de paquete nueva, el suscriptor seguirá viendo solo una instancia de la clase de
Apex después de instalar la versión nueva. Sin embargo, esta clase de Apex
puede seguir emulando la versión anterior de cualquier código que haga
referencia al método desaprobado en la versión anterior.
Consulte también:
Trabajo con versiones de parche
Acerca de las actualizaciones mediante envío
188
Actualización de la aplicación
Creación y carga de parches
Creación y carga de parches
Nota: Las versiones de parche y las actualizaciones mediante envío solo están disponibles para socios de ISV de
Salesforce.
Para crear una versión del parche:
1.
2.
3.
4.
Desde Configuración, haga clic en Crear > Paquetes.
Haga clic en el nombre de su paquete gestionado.
Haga clic en la ficha Organización de parche y, a continuación, en Nueva.
Seleccione la versión del paquete cuyo parche desea crear en la lista desplegable Aplicación de parche a la versión principal.
El tipo de versión debe ser Gestionado y editado.
5. Introduzca un Nombre de usuario para iniciar sesión en su organización de parche.
6. Introduzca una Dirección de email asociada con su inicio de sesión.
7. Haga clic en Guardar.
Nota: Si pierde su información de inicio de sesión, haga clic en Restablecer en la página de detalles del paquete
en Organización de desarrollo de parche para restablecer el inicio de sesión en su organización de desarrollo de
parche.
Cuando haya recibido un email indicando que Salesforce ha creado su organización de desarrollo de parche, puede hacer clic
en Inicio de sesión para empezar a desarrollar su versión de parche.
El desarrollo en una organización de parche está limitado. A continuación se incluye una lista de advertencias:
•
•
•
•
•
•
•
•
No se pueden agregar componentes de paquete.
No se pueden eliminar los componentes de paquete actuales.
Los controles de acceso de API y Apex dinámica no se pueden cambiar para el paquete.
No se puede desaprobar ningún tipo de código Apex.
No se pueden agregar nuevas relaciones de clase de Apex, como extends.
No se pueden agregar nuevos modificadores de acceso de Apex, como virtual o global.
No se pueden añadir nuevos servicios Web.
No se pueden añadir nuevas dependencias de funciones.
Cuando haya terminado de desarrollar su parche, en su organización desarrollo de parche:
1.
2.
3.
4.
5.
Haga clic en Crear > Paquetes y haga clic en el nombre del paquete.
En la página Carga del paquete, haga clic en Cargar.
Ingrese un Nombre de versión. Como práctica recomendada, es muy útil tener una descripción breve y la fecha.
Tenga en cuenta que el Número de versión ha aumentado su Número de parche.
En el caso de paquetes gestionados, seleccione un Tipo de versión:
•
•
Seleccione Gestionados - Editados para cargar una versión que se pueda actualizar. Después de la carga, algunos atributos
de los componentes de Salesforce estarán bloqueados.
Seleccione Gestionado en versión beta si desea cargar una versión de su paquete a una pequeña muestra de su público
con el fin de realizar pruebas. Todavía podrá cambiar los componentes y cargar versiones beta adicionales.
Nota: Los paquetes Beta solo pueden instalarse en organizaciones con Developer Edition o sandbox, y por
lo tanto no pueden pasarse a organizaciones de clientes.
189
Actualización de la aplicación
Trabajo con versiones de parche
6. Cambie la Descripción si fuera necesario.
7. De forma opcional, introduzca y confirme una contraseña para compartir el paquete de forma privada con cualquiera que
tenga contraseña. No introduzca una contraseña si desea que el paquete esté disponible para cualquiera en AppExchange
y compartir el paquete públicamente.
8. Salesforce selecciona automáticamente los requisitos que encuentra. Además, seleccione cualquier otro componente
obligatorio de las secciones Requisitos del paquete y Requisitos del objeto para notificar a los instaladores
de los requisitos de este paquete.
9. Haga clic en Cargar.
Para distribuir el parche puede compartir el vínculo de carga o programar una actualización mediante envío.
Trabajo con versiones de parche
Nota: Las versiones de parche y las actualizaciones mediante envío solo están disponibles para socios de ISV de
Salesforce.
Una versión de parche permite a un desarrollador cambiar la funcionalidad de los componentes existentes en un paquete
gestionado, mientras garantiza a los suscriptores experimentar que no hay cambios visibles en el paquete. Los parches constituyen
actualizaciones menores realizadas en un paquete
Gestionado y editado y solo se utilizan para solucionar problemas o errores.
Las versiones de parece solo se pueden crear para ediciones principales. Los suscriptores pueden recibir actualizaciones de
parches como cualquier otra versión de paquete. Sin embargo, los parches también se pueden distribuir a través de actualizaciones
mediante envío.
Cuando cree un parche, el patchNumber (número de parche) que figura en el número de versión de un paquete aumenta
una unidad. Por ejemplo, imagine que edita un paquete con el número de versión 2.0. Cuando envíe un parche, el número
cambiará a 2.0.1. Tenga en cuenta que este valor no se puede cambiar manualmente.
Organizaciones de desarrollo de parche
Todos los parches se desarrollan en una organización de desarrollo de parche. Esta es la organización donde se desarrollan, se
mantienen y se cargan las versiones de parche. Para iniciar el desarrollo de un parche, tendrá que crear una organización de
desarrollo de parche. Este tipo de organizaciones son necesarias para que los desarrolladores puedan realizar todos los cambios
que quieran en los componentes existentes sin provocar incompatibilidades entre las instalaciones de suscriptores que ya existen.
Una organización de desarrollo de parche puede cargar un número ilimitado de parches y solo puede haber una por cada edición
principal del paquete. De esta manera, una organización de desarrollo de parche que se cree, por ejemplo, para un paquete con
el número de versión 4.2 solo puede funcionar para los parches numerados 4.2.1, 4.2.2, 4.2.3, etc., pero no podrá hacerlo para
los parches de la versión 4.1 o 4.3.
Integración del desarrollo de parche
Si va a desarrollar los paquetes con el IDE de Force.com, puede beneficiarse de los sistemas de control de revisión en Eclipse
para comparar y combinar distintas ramas del proyecto.
Salesforce recomienda utilizar el complemento Subversion. Para instalarlo para el IDE de Force.com, haga lo siguiente:
1. Vaya a http://subclipse.tigris.org para obtener la URL más reciente del sitio de actualización de Eclipse que
sea compatible con su versión de Eclipse.
2. En el IDE de Force.com, desplácese a Ayuda > Actualizaciones de software (Help - Software Updates) y seleccione la
ficha Software disponible (Available Software). Haga clic en Agregar sitio (Add Site) e ingrese la URL del paso anterior.
3. Seleccione el nuevo sitio y haga clic en Finalizar (Finalizar) para buscar y obtener la versión más reciente del complemento
Subclipse. En la lista que se muestre seleccione el complemento Subclipse que necesite.
4. Haga clic en Siguiente (Next), acepte las condiciones y haga clic de nuevo en Siguiente.
190
Actualización de la aplicación
Versiones del código Apex
5. Haga clic en Finalizar para comenzar la instalación y, cuando se le pida, en Instalar todo (Install All). Deberá reiniciar
Eclipse cuando termine la instalación.
Ahora ya ha enlazado su entorno de IDE de Force.com a Subclipse. El paso siguiente es conectar el repositorio al entorno:
1. Abra la perspectiva SVN Repository Exploring en el IDE para llegar a la vista de los repositorios de SVN.
2. Utilice el icono Agregar repositorio de SVN (Add SVN Repository) en el extremo derecho para configurar Subclipse para
acceder al repositorio local. La URL para acceder a su repositorio de forma local es file:///svn_repos.
El repositorio de la versión secundaria controla los cambios efectuados en los proyectos almacenados. Debido a que en el trabajo
con parches se involucran dos ramas diferentes (una organización de desarrollo principal y una de desarrollo de parche) es
necesario combinar los cambios para una edición futura. Para ver las versiones diferentes del paquete:
1. Abra la perspectiva Project Explorer.
2. Desplácese a un archivo en el proyecto de desarrollo principal que quiera comparar y utilice el menu contextual para
seleccionar Comparar con... > Rama/etiqueta... (Compare With... Branch/Tag...).
3. En el campo Comparar con (Compare to), seleccione la versión de parche del archivo.
4. Haga clic en Gráficamente y en Aceptar.
Se mostrarán resaltados los cambios entre el archivo de la organización de desarrollo principal y el archivo almacenado en la
organización de desarrollo de parche. Puede utilizar esta vista para combinar las diferencias entre los dos proyectos.
Para obtener más información sobre el uso del IDE de Force.com, consulte la guía del desarrollador de la plataforma.
Versiones del código Apex
Los desarrolladores de paquetes pueden utilizar una lógica condicional en desencadenadores y clases de Apex que muestren
diferentes comportamientos para diferentes versiones. De esta forma, el desarrollador del paquete puede continuar manteniendo
el comportamiento existente en clases y desarrolladores en versiones anteriores del paquete mientras continúa creando el código.
Cuando los suscriptores instalan varias versiones de su paquete y escriben un código que hace referencia a las clases o
desencadenadores de Apex de su paquete, deben seleccionar la versión a la que está haciendo referencia. En el código Apex al
que se hace referencia en el paquete, puede ejecutar de forma condicional varias rutas de código basadas en la configuración
de versión del código Apex que hace la referencia. La configuración de la versión de paquete del código de llamada se puede
determinar dentro del código de paquete; para ello, hay que llamar al método System.requestVersion. De esta manera,
los desarrolladores de paquetes pueden determinar el contexto de la solicitud y especificar los distintos comportamientos para
las versiones diferentes del paquete.
En el ejemplo siguiente se muestran distintos comportamientos de un desencadenador para diferentes versiones de paquete:
trigger oppValidation on Opportunity (before insert, before update) {
for (Opportunity o : Trigger.new){
// Add a new validation to the package
// Applies to versions of the managed package greater than 1.0
if (System.requestVersion().compareTo(new Version(1,0)) > 0) {
if (o.Probability >= 50 && o.Description == null) {
o.addError('All deals over 50% require a description');
}
}
// Validation applies to all versions of the managed package.
if (o.IsWon == true && o.LeadSource == null) {
o.addError('A lead source must be provided for all Closed Won deals');
}
}
}
191
Actualización de la aplicación
Efectos de la desaprobación de Apex para los suscriptores
Para comparar las diferentes versiones de sus clases de Apex, haga clic en la ficha Definición de clase (Class Definition) cuando
consulte los detalles de la clase.
Para obtener más información sobre el método System.requestVersion, consulte la guía del desarrollador de código Apex
de Force.com.
Efectos de la desaprobación de Apex para los suscriptores
En esta sección se explica cómo afecta la desaprobación de un método de Apex a los suscriptores que instalan el paquete
gestionado. En la tabla se muestra en la primera columna una secuencia habitual de acciones que lleva a cabo un desarrollador
de paquetes y en la segunda columna la secuencia de las acciones que lleva a cabo un suscriptor. Cada fila de la tabla corresponde
a un desarrollador de paquetes o una acción del suscriptor.
Acción del desarrollador de paquetes
Acción del suscriptor
Notas
Instalar la versión 1.0 del paquete.
El número de versión del
paquete es 1.0. El número de
Crear una clase de Apex global,
PackageDevClass, que contiene el método
global m1.
Cargar la versión 1.0 de un paquete gestionado
y editado que contiene PackageDevClass.
primera versión
instalada es el 1.0.
Crear una clase de Apex,
SubscriberClass, que haga referencia a
m1 en PackageDevClass.
Desaprobar m1 y crear un método nuevo, m2.
Cargar como la versión 2.0 gestionada y
editada del paquete.
Instalar la versión 2.0 del paquete.
El número de versión del
paquete es 2.0. El número de
primera versión
instalada sigue siendo el
1.0. SubscriberClass sigue
haciendo referencia a la versión
1.0 del paquete y sigue
funcionando igual que antes.
Modificar la configuración de versión para
que SubscriberClass haga referencia a la
versión 2.0 del paquete. Guardar la clase. Se
mostrará un mensaje de error que indica que
no se puede hacer referencia a m1 en la versión
2.0 del paquete.
Cambiar SubscriberClass para que haga
referencia a m2 en lugar de a m1. Guardar la
clase correctamente.
192
Capítulo 11
Envío de una actualización
En este capítulo...
•
•
•
•
•
•
•
•
Acerca de las actualizaciones
mediante envío
Mejores prácticas en las
actualizaciones mediante envío
Asignación de acceso a los
componentes y campos nuevos
Secuencia de comandos posterior a la
instalación de ejemplo para una
actualización mediante envío
Limitaciones conocidas en las
actualizaciones mediante envío
Programación de actualizaciones
mediante envío
Visualización de detalles de
actualización mediante envío
Visualización del historial de
actualizaciones de una organización
Una actualización mediante envío es un método para actualizar de forma
automática la versión del paquete que tienen los clientes a una nueva. Esta
función solo se puede utilizar con paquetes gestionados y con el fin de asegurarse
de que todos los clientes tienen la misma versión del paquete o la última de este.
Puede enviar una actualización a cualquier número de organizaciones que hayan
instalado el paquete gestionado.
El suscriptor del paquete no tendrá que hacer nada para recibir la actualización
mediante envío. El suscriptor se dará cuenta, después de una actualización
mediante envío correcta, que el número de versión del paquete en la página
Detalles de paquete (Package Detail) ha aumentado. Las actualizaciones que
no se realicen correctamente deberá resolverlas el desarrollador que ha iniciado
el envío.
Las actualizaciones mediante envío reducen al mínimo los riesgos posibles y los
costos de asistencia derivados de tener varios suscriptores ejecutando distintas
versiones de la aplicación. Además, puede automatizar muchos pasos de
configuración posteriores a la actualización con el fin de simplificar aún más el
proceso de actualización para los clientes.
Nota: Esta función está disponible a los socios de salesforce.com aptos.
Para obtener más información sobre el programa de socios, incluidos
los requisitos de aptitud, visite el sitio Web
www.salesforce.com/partners.
193
Envío de una actualización
Acerca de las actualizaciones mediante envío
Acerca de las actualizaciones mediante envío
Puede enviar parches o actualizaciones principales. Los parches contienen solo subsanaciones de errores y mejoras menores.
Por el contrario, las actualizaciones principales pueden incluir mejoras importantes y funciones nuevas que agregan componentes
nuevos. El envío de actualizaciones se resume de un modo básico en los pasos siguientes:
•
•
•
•
•
Actualice el paquete gestionado instalado en la organización de un cliente desde la versión X a la versión Y.
Seleccione una, muchas o todas las organizaciones de clientes para actualizar y seleccionar una versión concreta a la que se
va a actualizar.
Programe la actualización para que comience en una fecha y hora concreta.
Consulte el progreso de las actualizaciones, cancele las actualizaciones en curso o vea el resultado de una actualización
mediante envío.
Junto con el envío, puede utilizar una secuencia de comandos de Apex después de la instalación para automatizar muchas
configuraciones posteriores a la actualización que los clientes podrían haber realizado manualmente antes.
Advertencia:
El envío de una actualización significa que realiza cambios en la organización de un suscriptor sin su consentimiento
explícito. Por ello, es importante planificar el proceso con antelación y extremar el cuidado.
El envío de una actualización principal conlleva un mayor nivel de riesgo, ya que se podría dañar la funcionalidad que ya existe
en la organización de un suscriptor. Esto se debe a que podría haber componentes nuevos en el paquete actualizado que no
estén disponibles para los usuarios existentes del paquete o bien que sobrescriban las personalizaciones de los usuarios. Como
el desarrollador de la aplicación, tiene la responsabilidad de proteger a los usuarios frente a cualquier impacto negativo que
pudiera derivarse de la actualización. Se recomienda encarecidamente que piense bien en todas las posibles consecuencias de
la actualización y haga todo lo necesario para evitar problemas.
Cuando se envía una actualización principal, se recomienda dividir los cambios del paquete en dos categorías:
1. Mejoras en las funciones existentes a las que los usuarios ya tienen acceso: utilice una secuencia de comandos de Apex
posterior a la instalación para asignar de forma automática los componentes relevantes a los usuarios existentes. De este
modo, se asegurará de que todos los usuarios actuales del paquete pueden seguir utilizándolo sin que los administradores
tengan que actuar.
2. Nuevas funciones que se incorporan por primera vez: no utilice una secuencia de comandos de Apex posterior a la instalación
para asignar los componentes de forma automática. De esta manera, los suscriptores podrán decidir si quieren usar las
funciones nuevas y cuándo quieren hacerlo.
Tenga en cuenta las directrices adicionales que se enuncian a continuación a la hora de planificar una actualización mediante
envío.
•
•
•
•
•
Evite los cambios en las reglas de validación, campos de fórmula y errores procedentes de los desencadenadores de Apex,
ya que pueden afectar negativamente a las integraciones de suscriptores.
No haga cambios visibles en los parches de un paquete. Si no se produce un cambio en el número de versión del paquete,
no se notifica a los suscriptores de las actualizaciones mediante envío.
Haga pruebas en el paquete actualizado en varios entornos, replicando en ellas todas las funciones relevantes de las
organizaciones de los clientes, incluidas las ediciones, las personalizaciones, otros paquetes instalados y los conjuntos de
permisos.
Programe actualizaciones mediante envío en las horas de menor carga de trabajo de su cliente y fuera de la ventana de
versión principal de salesforce.com para minimizar el impacto potencial del suscriptor.
Notifique a los suscriptores con antelación sobre la programación de la actualización, sus consecuencias posibles y los pasos
que deben efectuar.
194
Envío de una actualización
Mejores prácticas en las actualizaciones mediante envío
Mejores prácticas en las actualizaciones mediante envío
Actualización mediante envío es una de las funciones más potentes que proporcionamos a nuestra comunidad de socios. Gracias
a ella podrá actualizar a sus clientes aunque es imprescindible que lo haga con precaución. Si hace una actualización mediante
envío sin haber efectuado la planificación y preparación adecuadas, el cliente podría dar muestras de desagrado. Para evitarlo,
se recomienda encarecidamente seguir las mejores prácticas que se explican a continuación.
Planificación, pruebas y comunicación
•
•
•
•
•
•
Comunique, comunique y comunique. Puede suceder que sus clientes no hayan oído hablar de la función de actualización
mediante envío. Algunos incluso pueden mostrarse muy recelosos sobre el envío de cambios a sus organizaciones. Haga
contacto con ellos y explíqueles cómo funciona el modelo de Cloud Computing, cuáles son las ventajas de las actualizaciones
que se realizan sin problemas, cuénteles que sigue unas mejores prácticas para que la actualización sea perfecta y descríbales
el proceso y el compromiso adquirido con ellos con respecto a los plazos y el contenido de las actualizaciones. El éxito de
este programa depende fundamentalmente de que haya una comunicación oportuna y exhaustiva.
Mantenga informados a los clientes sobre el plan y los plazos establecidos para la actualización de modo que ellos sepan
cuándo se van a efectuar las actualizaciones y las frecuencias de estas.
Planifique cuándo quiere enviar las actualizaciones a las organizaciones de los clientes. Tenga en cuenta que la mayoría de
los clientes no quiere que los cambios se lleven a cabo a final de mes, de trimestre, de año ni en los ciclos de auditoría.
¿Conoce si sus clientes tienen otros periodos críticos en los que no quieren que se efectúen cambios en su organización?
Por ejemplo, podría haber determinadas horas en las que no tienen personal disponible para verificar cambios ni realizar
ningún paso necesario después de la instalación.
Programe las actualizaciones mediante envío para que se ejecuten a las horas de menor carga de trabajo, como puede ser a
última hora de la tarde o por la noche. ¿Ha tenido en cuenta las zonas horarias? ¿Tiene clientes fuera de Estados Unidos
para los que las horas de menor carga de trabajo sean otras? Puede programar las actualizaciones mediante envío para varias
organizaciones de clientes a la vez. Para ello, es conveniente agrupar las organizaciones por zonas horarias en caso de que
el horario de oficina difiera bastante dentro de la base de clientes.
No programe actualizaciones mediante envío en los días próximos a los plazos de mantenimiento programados de Salesforce.
En la mayoría de los casos, es aconsejable esperar de 3 a 4 semanas después de la instalación de una versión principal de
Salesforce para realizar actualizaciones mediante envío principales.
Realice pruebas y más pruebas. Debido a que es usted el que envía los cambios a la organización en lugar de que sea el
cliente el que toma los cambios, hay una responsabilidad mayor de garantizar que la versión nueva de la aplicación funciona
correctamente en todas las configuraciones de los clientes.
Organización del envío en etapas
•
•
•
•
No envíe los cambios a todos los clientes de una sola vez. Es importante asegurarse de que tiene recursos suficientes para
manejar los casos de asistencia técnica en caso de que haya problemas. Además, es importante detectar los posibles problemas
antes de que se vea afectada toda la base de clientes.
Antes de nada, envíe las actualizaciones a sus propias organizaciones de prueba para confirmar que el envío se realiza
correctamente. Después de la actualización mediante envío, inicie sesión en su organización de prueba para ver que todo
funciona según lo previsto.
Cuando proceda, haga el envío a las organizaciones de sandbox de sus clientes antes de hacerlo a sus organizaciones de
producción. Durante una semana o más, deje que los clientes prueben y validen la actualización y corrijan los fallos en el
entorno de sandbox antes de enviarla a sus organizaciones de producción.
Inicialmente, envíe las actualizaciones a lotes pequeños de organizaciones de producción de clientes. Por ejemplo, si tiene
1000 clientes, envíe las actualizaciones a 50 o 100 clientes a la vez, al menos las primeras veces. Una vez que se encuentre
tranquilo con los resultados, podrá actualizar los clientes en lotes mayores.
La confianza del cliente es lo importante
•
Usted es el responsable de garantizar que su actualización no afecte negativamente a las organizaciones de los clientes. Para
conseguirlo, evite realizar cambios en el paquete como, por ejemplo, cambios en las reglas de validación o en los campos
195
Envío de una actualización
•
•
•
Asignación de acceso a los componentes y campos nuevos
de fórmula, que podrían romper las integraciones externas que realiza el cliente. Si por algún motivo tuviera que hacerlo,
haga las pruebas pertinentes y comuníquelo al cliente con antelación suficiente. Tenga en cuenta que si envía una actualización
con problemas, podrían verse afectados no solo los metadatos sino también los datos del cliente.
Escriba una prueba de Apex sobre la instalación para realizar pruebas lógicas básicas con el fin de confirmar que la aplicación
actualizada funciona según lo previsto.
Si va a mejorar una función que ya existe, utilice una secuencia de comandos posterior a la instalación para que se asignen
de forma automática los componentes nuevos en los usuarios existentes con permisos.
Si va a agregar una función nueva, no realice la asignación automática de la función a los usuarios existentes. Informe sobre
lo que va a hacer y determine junto con los administradores de la organización de cliente quiénes deberían tener acceso a
la función nueva y el plazo de la implementación.
Asignación de acceso a los componentes y campos nuevos
Si la versión nueva de su paquete incluye componentes nuevos o campos nuevos en los componentes que ya existen, los usuarios
actuales del paquete no tendrán acceso automático a estos tras la actualización. Esto puede impedirles usar las funciones nuevas
agregadas o, como consecuencia, puede ser que las funciones más antiguas dejen de funcionar correctamente. De forma
predeterminada, los componentes nuevos del paquete se asignan únicamente a los administradores. Tiene dos opciones para
asegurarse de que todos los usuarios del paquete tienen acceso a los componentes y campos nuevos:
Notificar a los administradores para que asignen los permisos adecuados a todos los usuarios del paquete
Se recomienda esta opción para todas las funciones nuevas que introduzca. De esta manera, son los administradores los
que deciden si van a poner las funciones nuevas a disposición de los usuarios y cuándo lo van a hacer.
Asignar los componentes nuevos a los usuarios existentes de forma automática a través de una secuencia de comandos
de Apex posterior a la instalación
Se recomienda esta opción para la incorporación de mejoras en funciones que ya existen. De este modo, se asegurará de
que todos los usuarios actuales del paquete pueden seguir utilizándolo sin que los administradores tengan que actuar.
Para asignar automáticamente el acceso a los componentes nuevos, puede usar la siguiente estrategia:
1. Cree conjuntos de permisos nuevos que definan la configuración predeterminada de acceso a todos los componentes y
campos nuevos.
2. Incluya los conjuntos de permisos nuevos en la nueva versión del paquete.
3. Escriba una secuencia de comandos de Apex posterior a la instalación para que se ejecute de forma automática en la
organización del suscriptor después de la actualización del paquete. La secuencia de comandos debe realizar estas tareas.
a. Para cada conjunto de permisos nuevo, elija un componente que ya existe cuya asignación de usuarios deba copiarse.
b. Encuentre todos los perfiles con acceso a ese componente.
c. Asigne los conjuntos de permisos nuevos a todos los usuarios incluidos en esos perfiles.
Nota: No se pueden modificar los conjuntos de permisos predeterminados de todos los perfiles estándar. Por tanto,
la secuencia de comandos posterior a la instalación desencadenará una excepción si intenta actualizar uno de estos
conjuntos. Es importante crear un conjunto de permisos nuevo para asignar el acceso a los componentes nuevos en
el paquete.
Secuencia de comandos posterior a la instalación de ejemplo
para una actualización mediante envío
En esta sección se muestra una secuencia de comandos posterior a la instalación de ejemplo que automatiza la asignación de
componentes nuevos a usuarios actuales de un paquete. Para obtener más información sobre la compilación de una secuencia
196
Envío de una actualización
Secuencia de comandos posterior a la instalación de ejemplo
para una actualización mediante envío
de comandos de Apex posterior a la instalación, consulte Ejecución de Apex en instalación/actualización del paquete en la
página 88.
La secuencia de comandos de ejemplo se ha escrito para un escenario en el que un proveedor de software independiente (ISV)
actualiza suscriptores a una versión de paquete nueva que contiene páginas de Visualforce nuevas y un conjunto de permisos
nuevo que otorga acceso a esas páginas. Después de la actualización, los usuarios actuales del paquete no tendrán acceso a las
páginas nuevas de forma predeterminada. La secuencia de comandos posterior a la instalación resolverá este problema mediante
la identificación de los usuarios con acceso a las páginas de Visualforce en la versión antigua del paquete y les otorgará acceso
a las páginas nuevas. La secuencia de comandos realiza las acciones siguientes:
Obtiene el Id. de las páginas de Visualforce en la versión antigua del paquete.
Obtiene los conjuntos de permisos con acceso a esas páginas.
Obtiene la lista de perfiles asociados a esos conjuntos de permisos.
Obtiene la lista de usuarios con esos perfiles asignados.
Asigna el conjunto de permisos en la paquete nuevo a esos usuarios.
•
•
•
•
•
global class PostInstallClass implements InstallHandler
global void onInstall(InstallContext context) {
{
//Get the Id of the Visualforce pages
List<ApexPage> pagesList =[SELECT Id FROM ApexPage WHERE NamespacePrefix =
'TestPackage' AND Name = 'vfpage1'];
//Get the permission sets that have access to those pages
List<SetupEntityAccess> setupEntityAccessList = [SELECT Id,
ParentId, SetupEntityId, SetupEntityType FROM SetupEntityAccess
where SetupEntityId IN:pagesList];
Set<ID > PermissionSetList = new Set<ID> ();
for(SetupEntityAccess sea : setupEntityAccessList){
PermissionSetList.add(sea.ParentId)};
List<PermissionSet> PermissionSetWithProfileIdList =
[SELECT id,Name,IsOwnedByProfile,Profile.Name,
ProfileId FROM PermissionSet where IsOwnedByProfile = true
AND Id IN :PermissionSetList ];
//Get the list of profiles associated with those permission sets
Set<ID> ProfileList = new
Set<ID> ();
for(PermissionSet per : PermissionSetWithProfileIdList){
ProfileList.add(per.ProfileId);
}
//Get the list of users who have those profiles assigned
List<User> UserList =[SELECT id FROM User where ProfileId IN :ProfileList ];
//Assign the permission set in the new package to those users
List<PermissionSet> PermissionSetToAssignList = [SELECT id,Name
FROM PermissionSet where Name='TestPermSet' AND
NamespacePrefix = 'TestPackage'];
PermissionSet PermissionSetToAssign = PermissionSetToAssignList[0];
Set<ID> UsersSet = new Set<ID> ();
for(User us : UserList){
PermissionSetAssignment psa= new PermissionSetAssignment();
psa.PermissionSetId = PermissionSetToAssign.id;
psa.AssigneeId = us.id;
UsersSet.add(us.id);
}
}
}
// Test for the post install class
@isTest
private class PostInstallClassTest {
197
Envío de una actualización
Limitaciones conocidas en las actualizaciones mediante envío
@isTest
public static void test() {
PostInstallClass myClass = new PostInstallClass();
Test.testInstall(myClass, null);
}
}
Limitaciones conocidas en las actualizaciones mediante envío
Las limitaciones conocidas siguientes condicionan el envío de actualizaciones:
•
•
Los conjuntos de permisos no transfieren la configuración de la visibilidad de fichas. Por tanto, si la actualización requiere
cambios en la configuración de fichas, no podrá implementarlos de forma automática con una secuencia de comandos
posterior a la instalación. En su lugar, tendrá que notificar a los administradores para que ellos se encarguen de hacer el
cambio.
Se producen errores en la actualización mediante envío si el paquete contiene la marca de Visualforce que intenta acceder
a la entidad OpenActivity. Por ejemplo, el código siguiente en el paquete provocará que la actualización mediante envío
no se realice correctamente.
<apex:outputLabel for="taskDate"
value="{!$ObjectType.OpenActivity.fields.ActivityDate.label}" />
Como solución alternativa, no utilice la referencia global ObjectType para obtener la etiqueta de
OpenActivity.ActivityDate mediante la especificación de la etiqueta del modo siguiente:
<apex:outputLabel for="taskDate" value="Date" />
Programación de actualizaciones mediante envío
Permisos de usuario necesarios
Para actualizar un envío:
“Cargar paquetes de AppExchange”
Nota: Las versiones de parche y las actualizaciones mediante envío solo están disponibles para socios de ISV de
Salesforce.
Cuando haya creado una “versión de parche” en la Ayuda de Salesforce de su paquete, puede implementarla automáticamente
a clientes mediante una actualización.
Sugerencia: Salesforce.com recomienda el seguimiento de esta secuencia para actualizaciones de paquete de envío.
1. Envíe la actualización a sus organizaciones para poder ejecutar pruebas y solucionar problemas antes de enviarlo
a los suscriptores.
2. Cuando esté listo y se haya coordinado con sus clientes en su proceso de gestión de cambios, actualice el envío a
un pequeño número de organizaciones de clientes. Pruebe con las organizaciones de Sandbox en primer lugar si
es posible.
3. Una vez esté cómodo con los resultados iniciales, actualice el envío a una base de clientes más amplia, según sus
acuerdos con cada cliente.
4. Desapruebe la versión anterior de su paquete en su organización de desarrollo principal. Sustituya la versión en
AppExchange si fuera necesario y actualice su configuración de Trialforce.
198
Envío de una actualización
Programación de actualizaciones mediante envío
5. Si su actualización es un parche, después de distribuir correctamente la actualización en organizaciones del suscriptor,
vuelva a integrar esos cambios en su organización de desarrollo principal. Para obtener más información sobre la
combinación de parches en su organización de desarrollo principal, consulte Trabajo con versiones de parche en
la página 190.
Consulte “Mejores prácticas de actualizaciones mediante envío y versiones de parche” en la Ayuda de Salesforce para
obtener más información.
Para programar una actualización mediante envío:
1. Inicie sesión en su organización de desarrollo principal.
2. En Configuración, haga clic en Crear > Paquetes, haga clic en el nombre del paquete gestionado cuya actualización desee
enviar. En la página de detalles del paquete, haga clic en la ficha Versiones y, a continuación, haga clic en Actualizaciones
de envío.
3. Haga clic en Programar actualizaciones mediante envío.
4. Seleccione una versión de paquete para enviar en la lista desplegable Versión de parche.
Nota: No es posible enviar versiones beta.
5. Introduzca una Fecha de inicio programado que indique cuándo debe comenzar la actualización mediante envío.
6. En la sección Seleccionar organizaciones de destino, seleccione las organizaciones que reciben su actualización mediante
envío. Las organizaciones que ya hayan recibido una actualización mediante envío para la versión de paquete seleccionada
no aparecerán en esta lista. Puede seleccionar organizaciones:
•
•
•
•
Al introducir un término que filtre en función del nombre o Id. de una organización. Los nombres pueden coincidir
parcialmente, pero los Id. deben coincidir de forma exacta.
Al seleccionar organizaciones de producción y Sandbox en la lista desplegable Organizaciones.
Al seleccionar organizaciones que ya se han instalado en una versión concreta.
Al hacer clic en organizaciones individuales o en las casillas de verificación Seleccionar todo y Anular todas
las selecciones.
Esta sección también incluye la siguiente información sobre la organización (en orden alfabético):
Campo
Descripción
Versión actual
La versión de paquete actual que ha instalado una
organización.
Id de la organización
El Id. que identifica de forma única la organización en
salesforce.com.
Nombre de la organización
Nombre de la organización. Al hacer clic aquí se muestra el
historial de actualizaciones de la organización.
Contacto principal
Nombre del usuario que instaló el paquete.
7. Haga clic en Programar.
Mientras una actualización mediante envío se está procesando, puede hacer clic en Cancelar para detenerla.
En la página anterior de las actualizaciones mediante envío, la tabla enumera las actualizaciones mediante envío programadas
más recientes del paquete.
199
Envío de una actualización
Visualización de detalles de actualización mediante envío
Visualización de detalles de actualización mediante envío
Permisos de usuario necesarios
Para ver los detalles de actualizaciones mediante envío:
“Cargar paquetes de AppExchange”
Nota: Las versiones de parche y las actualizaciones mediante envío solo están disponibles para socios de ISV de
Salesforce.
Para obtener información sobre una actualización mediante envío específica de su organización, en Configuración, haga clic
en Crear > Paquetes, seleccione el nombre del paquete que desea ver y, a continuación, haga clic en actualizaciones mediante
envío. Al hacer clic en el nombre de un Destino accede a la página de detalles de actualización mediante envío, que tiene
información sobre el trabajo de envío y cada organización que se envía.
La sección Detalles del trabajo tiene la siguiente información sobre la actualización mediante envío general (en orden alfabético):
Campo
Descripción
Fecha de finalización
Fecha y hora a las que terminó la actualización mediante envío.
Ignorar fallos de la prueba de Apex
Si se han ignorado los fallos de la prueba de Apex que pueden
causar que la aplicación instalada no funcione adecuadamente.
Programado por
Nombre del usuario que inició la actualización mediante envío.
Fecha de inicio
La hora y fecha de inicio programado de la actualización
mediante envío.
Estado
El estado de la actualización mediante envío, programada, en
proceso, completada, cancelada o completado con fallos.
Versión
El número de versión del paquete que se ha enviado.
En la sección Organizaciones, puede obtener una lista de todas las organizaciones que reciben una actualización mediante
envío. Puede filtrar las organizaciones mediante el cuadro de búsqueda e introduciendo un término que filtre en función del
nombre o Id. de una organización. Los nombres pueden coincidir parcialmente, pero los Id. deben coincidir de forma exacta.
Desde la lista desplegable, también puede filtrar por estado de la actualización mediante envío.
La lista contiene la siguiente información específica para cada organización (en orden alfabético):
Campo
Descripción
Duración
Cantidad de tiempo que tardó la actualización mediante envío.
Tipo de fallo
Enumera el tipo de fallo que se ha producido (si lo hay). Si la
actualización mediante envío ha fallado, se ofrece una
explicación posible en la sección contraíble. Si la actualización
mediante envío no se ha realizado correctamente, haga clic en
Reintentar para intentarlo de nuevo.
Id de la organización
El Id. que identifica de forma única la organización en
salesforce.com.
200
Envío de una actualización
Visualización del historial de actualizaciones de una
organización
Campo
Descripción
Nombre de la organización
Nombre de la organización. Al hacer clic aquí se muestra el
historial de actualizaciones de la organización.
Inicio
La hora y fecha de inicio programado de la actualización
mediante envío.
Estado
El estado de la actualización mediante envío, programada, en
proceso, completada, cancelada o completado con fallos.
Visualización del historial de actualizaciones de una organización
Permisos de usuario necesarios
Para ver el historial de actualizaciones mediante envío:
“Cargar paquetes de AppExchange”
Nota: Las versiones de parche y las actualizaciones mediante envío solo están disponibles para socios de ISV de
Salesforce.
Para obtener más información sobre una organización específica que haya recibido actualizaciones mediante envío, en
Configuración, haga clic en Crear > Paquetes, seleccione el nombre del paquete que desea ver y, a continuación, haga clic en
Destino. Al hacer clic en una organización de la lista de destino se ofrecen los siguientes detalles (en orden alfabético):
Campo
Descripción
Versión actual
La versión de paquete actual que ha instalado una organización.
Id de la organización
El Id. que identifica de forma única la organización en
salesforce.com.
Nombre de la organización
Nombre de la organización.
Contacto principal
Nombre del usuario que instaló el paquete.
Email de contacto principal
La dirección de email del editor del paquete.
Estado
El estado de la actualización mediante envío, programada, en
proceso, completada, cancelada o completado con fallos.
En Historial de actualizaciones mediante envío aparece la siguiente información (en orden alfabético):
Campo
Descripción
Acción
Al hacer clic en Ver detalles vuelve a los detalles del trabajo
de esa actualización.
Fecha de inicio
La hora y fecha de inicio programado de la actualización
mediante envío.
Estado
El estado de la actualización mediante envío, programada, en
proceso, completada, cancelada o completado con fallos.
Versión
El número de versión del paquete que se ha enviado.
201
Apéndices
Apéndice
A
Desarrollo y distribución de paquetes no gestionados
Los paquetes no gestionados se han utilizado siempre para distribuir proyectos de código abierto a desarrolladores o como una
distribución única de aplicaciones que requieren personalización tras su instalación. No debería utilizar nunca paquetes no
gestionados para la migración desde un entorno Sandbox a uno de producción. Para hacer esta migración, utilice el IDE de
Force.com o la herramienta de migración de Force.com. Si utiliza Enterprise Edition, Unlimited Edition o Performance
Edition, consulte la sección sobre “conjuntos de cambios” en la Ayuda de Salesforce.
Consulte también:
Componentes disponibles en paquetes no gestionados
Componentes disponibles en paquetes no gestionados
No todos los componentes se pueden incluir en paquetes para su distribución. En la tabla siguiente se muestran los componentes
disponibles en un paquete sin gestionar, se indica cómo está incluido el componente en el paquete y si el componente permite
el cambio de nombre automático.
Incluido en paquete de forma explícita o implícita
Los componentes se pueden agregar de forma explícita o implícita. Los explícitos deben incluirse directamente en el
paquete mientras que los implícitos se agregan de forma automática. Por ejemplo, si crea un campo personalizado en un
objeto estándar, debe agregar de forma explícita el campo personalizado al paquete. Sin embargo, si se crea un objeto
personalizado y se agrega un campo personalizado, el campo se agregará de forma implícita al paquete cuando agregue
el objeto personalizado.
• De forma explícita: el componente debe agregarse de forma manual al paquete.
• De forma implícita: el componente se agrega automáticamente al paquete cuando se agrega otro componente
dependiente, normalmente un objeto personalizado.
Cambio de nombre automático
Salesforce puede resolver los conflictos de nombres automáticamente en la instalación.
• No: si se produce un conflicto de nombres, se bloquea la instalación.
• Sí: si se produce un conflicto de nombres, Salesforce puede cambiar opcionalmente el nombre del componente que
se instala.
202
Desarrollo y distribución de paquetes no gestionados
Componentes disponibles en paquetes no gestionados
Componente
Incluido en paquete de forma explícita Cambio de nombre automático
o implícita
Instantánea analítica
De forma explícita
Sí
Clase de Apex
De forma explícita
No
Razón de colaboración de Apex
De forma implícita
No
En una extensión: De forma explícita
Nuevo cálculo de colaboración de Apex De forma implícita
Desencadenador de Apex
No
En un objeto estándar o de extensión: De No
forma explícita
En un objeto en el paquete: De forma
implícita
Aplicación
De forma explícita
No
Botón o vínculo personalizado
En un objeto estándar: De forma
explícita
No
En un objeto personalizado: De forma
implícita
Campo personalizado
En un objeto estándar: De forma
explícita
No
En un objeto personalizado: De forma
implícita
Etiqueta personalizada
De forma implícita
No
Objeto personalizado
De forma explícita
No
Tipo de reporte personalizado
De forma explícita
No
Configuración personalizada
De forma explícita
No
Tablero
De forma explícita
Sí
En una carpeta: De forma implícita
Documento
De forma explícita
Sí
En una carpeta: De forma implícita
Plantilla de email
De forma explícita
Sí
En una carpeta: De forma implícita
Carpeta
De forma explícita
Sí
Componente de la página de inicio
De forma explícita
No
Formatos de página de inicio
De forma explícita
No
Membrete
De forma explícita
Sí
203
Desarrollo y distribución de paquetes no gestionados
Componentes disponibles en paquetes no gestionados
Componente
Incluido en paquete de forma explícita Cambio de nombre automático
o implícita
Vista de lista
En un objeto estándar: De forma
explícita
Sí
En un objeto personalizado: De forma
implícita
Formato de página
En un objeto estándar: De forma
explícita
No
En un objeto personalizado: De forma
implícita
Tipo de registro
En un objeto estándar: De forma
explícita
No
En un objeto personalizado: De forma
implícita
Reporte
De forma explícita
Sí
En una carpeta: De forma implícita
S-Control
De forma explícita
No
Recurso estático
De forma explícita
No
Tabulador
De forma explícita
No
Traducción
De forma explícita
No
Regla de validación
En un objeto estándar: De forma
explícita
No
En un objeto personalizado: De forma
implícita
Componente de Visualforce
De forma explícita
No
Página de Visualforce
De forma explícita
No
Alerta de email de flujo de trabajo
De forma explícita
No
Actualización del campo de flujo de
trabajo
De forma explícita
No
Mensaje saliente de flujo de trabajo
De forma explícita
No
Regla de flujo de trabajo
De forma explícita
No
Tarea del flujo de trabajo
De forma explícita
No
Consulte también:
Los componentes se agregan automáticamente a paquetes
204
Desarrollo y distribución de paquetes no gestionados
Creación y carga de un paquete no gestionado
Creación y carga de un paquete no gestionado
Utilice el procedimiento siguiente para cargar un paquete no gestionado.
1. Cree el paquete:
a.
b.
c.
d.
Desde Configuración, haga clic en Crear > Paquetes.
Haga clic en Nuevo.
Rellene los detalles del paquete.
Haga clic en Guardar.
2. Agregue los componentes:
a.
b.
c.
d.
e.
Haga clic en Agregar componentes (Add Components).
En la lista desplegable, seleccione el tipo de componente.
Seleccione los componentes que desea agregar.
Haga clic en Agregar a paquete.
Repita estos pasos hasta que haya agregado todos los componentes que desee al paquete.
Nota: Algunos componentes relacionados se incluyen automáticamente en el paquete incluso cuando no puedan
mostrarse en la lista Componentes del paquete. Por ejemplo, al agregar un objeto personalizado a un paquete, sus
campos personalizados, formatos de página y relaciones con objetos estándar se incluyen de forma automática.
3. Haga clic en Cargar.
Cuando haya cargado el paquete correctamente, recibirá un email con un vínculo de instalación. Espere unos momentos antes
de hacer clic en el vínculo de instalación o de distribuirlo a otros, ya que podrían pasar unos minutos hasta que esté activo.
205
Apéndice
B
Comparación de licencias de usuario de ISVforce
Introducción
En las tablas siguientes se comparan los accesos a objetos, los permisos de usuario y las funciones, así como los límites en las
organizaciones para las siguientes licencias:
•
•
Administrador de Force.com: una licencia de Salesforce estándar con capacidad de personalización completa. La restricción
contractual prohíbe crear, leer, actualizar y eliminar prospectos, oportunidades, productos, casos, soluciones y campañas.
Una licencia de la plataforma Salesforce estándar con acceso a cuentas, contactos y objetos personalizados. La utilizan
quienes no son administradores.
En las tablas se utilizan los símbolos siguientes:
•
•
•
•
•
•
•
: incluido en la licencia
C: acceso de creación en el objeto
R: acceso de lectura en el objeto
U: acceso de actualización en el objeto
D: acceso de eliminación en el objeto
$: disponible como un complemento por una tasa adicional
X: incluido en la licencia
Objeto al que se accede
Objeto al que se accede
Administrador de Force.com
Force.com
EE
UE/PXE
EE
UE/PXE
Cuentas
CRUD
CRUD
CRUD
CRUD
Actividades, tareas
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
Contactos
CRUD
CRUD
CRUD
CRUD
Contenido
CRUD
CRUD
CRUD
CRUD
Activos
Campañas
Calendario, Eventos
Casos
Contratos
206
Apéndice B: Comparación de licencias de usuario de ISVforce
Objeto al que se accede
Administrador de Force.com
Force.com
EE
UE/PXE
EE
UE/PXE
Objetos personalizados
CRUD
CRUD
CRUD
CRUD
Documentos
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
CR
CR
CRUD
CRUD
Asignaciones
Ideas
Prospectos
Oportunidades
Productos y listas de precios
Preguntas y respuestas
Presupuestos
Soluciones
Funciones del usuario
Funciones del usuario
Exportaciones de Jigsaw
Administrador de Force.com Force.com
EE
UE/PXE
EE
UE/PXE
$
$
$
$
$
$
$
Knowledge
Envío de email masivo
Móvil (completo)
$
Móvil parcial
Offline
Visual Workflow
$
Permisos de usuario
Permisos de usuario
Administrador de Force.com Force.com
EE
Crear y personalizar reportes
Ejecutar reportes
Crear y personalizar tableros
Ver tableros*
Compartir con usuarios
207
UE/PXE
EE
UE/PXE
Apéndice B: Comparación de licencias de usuario de ISVforce
Permisos de usuario
Administrador de Force.com Force.com
EE
UE/PXE
EE
UE/PXE
Límite de aplicaciones personalizadas
10
UNL
10
UNL
Límite de fichas personalizadas
25
UNL
25
UNL
Límite de objetos personalizados**
200
2.000
200
2.000
Inicio de sesión único
Miembro de colas
Chatter (grupos, archivos y perfiles)
Escribir código Apex y Visualforce
Enviar aprobaciones de flujo de trabajo
* El usuario que ejecuta de un tablero debe ser usuario de Force.com o usuario de Force.com One App para poder ver el tablero.
Otros tipos de licencias de Force.com no pueden ver los tableros que usan el administrador de Force.com.
** Límite restringido por contrato para Force.com One App y Chatter Plus.
Otros límites de la organización
Otros límites de la organización (agregados por usuario)
Administrador de Force.com Force.com
EE
UE/PXE
EE
UE/PXE
Almacenamiento de datos (MB)
20
120
20
120
Almacenamiento de archivos (MB)
612
612
612
612
Llamadas a API (por día y usuario)
1.000
1.000
1.000
1.000
208
Apéndice
C
Comparación de licencias de usuario de OEM
Introducción
En las tablas siguientes se comparan los accesos a objetos, los permisos de usuario y las funciones, así como los límites en las
organizaciones para las siguientes licencias:
•
•
•
OEM incrustado: una licencia de Force.com completa con restricciones contractuales. Prohíbe crear, leer, actualizar y
eliminar prospectos, oportunidades, productos, casos, soluciones, campañas y contratos.
Portal de ISV: una licencia de sitio Web autenticada con opciones básicas de uso compartido de datos (no se permite el
uso compartido manual con usuarios ni la participación en grupos compartidos). El usuario solo puede iniciar sesión a
través de sitios de Force.com. Se recomienda utilizarlo cuando se espera que el número de usuarios sobrepase los 100.000.
Portal ISV con uso compartido: una licencia de gestión del portal de clientes con capacidad completa para compartir. El
usuario solo puede iniciar sesión a través de sitios de Force.com. Se recomienda utilizarlo cuando se espera que el número
de usuarios no llegue a los 100.000 y sea necesario el acceso granular a la seguridad.
Los usuarios finales no pueden desarrollar aplicaciones ni ampliar aplicaciones mediante la creación de otros objetos
personalizados. Sin embargo, pueden tener acceso a otras aplicaciones siempre y cuando estas se vendan con una licencia
incrustada o de ISVforce.
Las licencias de portales no se pueden utilizar para el acceso a otras aplicaciones o funcionalidades excepto a aquella con la que
se ha vendido la aplicación.
En las tablas se utilizan los símbolos siguientes:
•
•
•
•
•
•
: incluido en la licencia
$: disponible como un complemento por una tasa adicional
C: acceso de creación en el objeto
R: acceso de lectura en el objeto
U: acceso de actualización en el objeto
D: acceso de eliminación en el objeto
Objeto al que se accede
Objeto al que se accede
OEM incrustado
Cuentas
CRUD
Actividades, tareas
CRUD
Activos
Portal de ISV
Portal de ISV
con uso
compartido
CRU
CRU
209
Apéndice C: Comparación de licencias de usuario de OEM
Objeto al que se accede
OEM incrustado
Calendario, Eventos
CRUD
Portal de ISV
Casos
Portal de ISV
con uso
compartido
CRU
Contactos
CRUD
CRU
Contenido
CRUD
R
Objetos personalizados
CRUD
CRUD
CRUD
Documentos
CRUD
R
R
Asignaciones
Ideas
CRU
CR
CR
CR
Productos y listas de precios
R
R
Preguntas y respuestas
CR
CR
Soluciones
R
Funciones del usuario
Funciones del usuario
OEM incrustado
Knowledge
Portal de ISV Portal de ISV
con uso
compartido
R
Envío de email masivo
Móvil (completo)
$
Móvil parcial
Offline
Visual Workflow
Permisos de usuario
Permisos de usuario
OEM incrustado
Crear y personalizar reportes
Ejecutar reportes
Crear y personalizar tableros
Ver tableros*
210
Portal de ISV Portal de ISV
con uso
compartido
Apéndice C: Comparación de licencias de usuario de OEM
Permisos de usuario
OEM incrustado
Portal de ISV Portal de ISV
con uso
compartido
Límite de aplicaciones personalizadas
10
N/A
N/A
Límite de fichas personalizadas
100
100
100
Límite de objetos personalizados
400**
400
400
Compartir con usuarios
Inicio de sesión único
Miembro de colas
Chatter (grupos, archivos y perfiles)
Enviar aprobaciones de flujo de trabajo
* El usuario que ejecuta de un tablero debe ser usuario de Force.com o usuario de Force.com One App para poder ver el tablero.
Otros tipos de licencias de Force.com no pueden ver los tableros que usan el administrador de Force.com.
** El limite de 400 objetos personalizados se aplica a la oferta de aplicación principal. Los suscriptores no pueden crear sus
propios objetos personalizados.
Límites de almacenamiento
Otros límites de la organización (agregados por usuario)
OEM incrustado
Portal de ISV Portal de ISV
con uso
compartido
Almacenamiento de datos (MB)
20
0
2
Almacenamiento de archivos (MB)
612
0
0
Cada organización con OEM inscrustado recibe una capacidad mínima de almacenamiento de datos y de archivos. También
recibe una cantidad de almacenamiento por usuario multiplicada por el número de usuarios si el resultado es mayor que la
capacidad mínima de almacenamiento. Ejemplo del uso de almacenamiento de datos: una organización con OEM incrustado
con 600 usuarios recibiría 12.000 MB (12 GB) de almacenamiento de datos, porque 20 MB por usuario, multiplicado por 600
usuarios es igual a 12.000 MB. Una organización con OEM incrustado más pequeña, por ejemplo, una con 20 usuarios,
recibiría 1 GB de almacenamiento de datos, porque 20 MB por usuario multiplicado por 20 son solo 400 MB, que es menos
del mínimo de 1 GB permitido a todas las organizaciones con OEM incrustado.
Edición de Salesforce
Almacenamiento de datos
mínimo por organización
Almacenamiento de archivos Asignación de
mínimo por organización
almacenamiento por licencia
de usuario
OEM incrustado
1 GB, más 5 MB para cada
licencia de Socio Oro
11 GB
20 MB de almacenamiento de
datos y 612 MB de
almacenamiento de archivos
Límites de la API
En la siguiente tabla se enumeran los límites de solicitudes (llamadas) a la API totales durante un periodo de 24 horas para
una organización con OEM incrustado:
211
Apéndice C: Comparación de licencias de usuario de OEM
Edición de Salesforce
Llamadas a la API por tipo de licencia
Mínimo
Máximo
OEM incrustado
1000
5.000
1.000.000
Los límites se aplican al conjunto de todas las llamadas a la API que realice la organización en un periodo de 24 horas: los
límites no se calculan según cada usuario individual. Cuando una organización supera un límite, todos los usuarios de la
organización pueden tener temporalmente bloqueada la posibilidad de hacer llamadas adicionales. Las llamadas se bloquearán
hasta que el uso de las 24 horas precedentes caiga por debajo del límite.
212
Glosario
Los términos y definiciones siguientes describen conceptos y funciones clave de paquetes y aplicaciones:
Aplicación
Una colección de componentes, como fichas, reportes, tableros y páginas de Visualforce, destinados a una necesidad
concreta del negocio. Salesforce proporciona aplicaciones estándar como Ventas y Centro de llamadas. Puede personalizar
las aplicaciones estándar para que se adapten a su forma de trabajar. Además, puede combinar una aplicación y cargarla
en AppExchange junto con otros componentes relacionados como campos, fichas y objetos personalizados. A continuación,
puede hacer que la aplicación esté disponible para otros usuarios de Salesforce desde AppExchange.
AppExchange
AppExchange es una interfaz de colaboración de salesforce.com que le permite explorar y compartir aplicaciones y
servicios para la plataforma Force.com.
Beta, paquete gestionado
En el contexto de los paquetes gestionados, un paquete gestionado beta es una versión previa de un paquete gestionado
distribuido a una muestra del público al que va dirigido para que lo pruebe.
Implementar
Mover funcionalidad desde un estado inactivo a otro activo. Por ejemplo, al desarrollar funciones nuevas en la interfaz
de usuario de Salesforce, debe seleccionar la opción “Implementado” para que la funcionalidad esté visible a otros usuarios.
El proceso por el que una aplicación u otra funcionalidad se mueve desde el desarrollo a la producción.
Mover componentes de metadatos desde un sistema de archivos local a una organización de Salesforce.
Para las aplicaciones instaladas, la implementación pone a disposición de los usuarios de la organización los objetos
personalizados en la aplicación disponible. Antes de implementar un objeto personalizado, solo está disponible para los
administradores y para los usuarios que tengan el permiso “Personalizar aplicación”.
Aplicación de gestión de licencias (LMA)
Una aplicación AppExchange gratuita que permite realizar el seguimiento de prospectos y cuentas de ventas de todos
los usuarios que descargan un paquete gestionado (aplicación) desde AppExchange.
Organización de gestión de licencias (LMO)
La organización de Salesforce que se utiliza para realizar el seguimiento de todos los usuarios de Salesforce que instalan
el paquete. Una organización de gestión de licencias debe tener instalada la Aplicación de gestión de licencias (LMA).
Recibe una notificación automáticamente cada vez que se instala o se desinstala su paquete, de manera que puede notificar
fácilmente a los usuarios de las actualizaciones. Puede especificar cualquier organización con Enterprise Edition, Unlimited
Edition, Performance Edition y Developer Edition como su organización de gestión de licencias. Para obtener más
información, vaya a http://www.salesforce.com/docs/en/lma/index.htm.
213
Glosario
Edición principal
Edición importante de un paquete. En estas ediciones, los números mayor y menor de una versión de paquete aumentan
hasta el valor seleccionado.
Paquete gestionado
Un conjunto de componentes de aplicación publicados como unidad en AppExchange y que están asociados a un espacio
de nombre y, posiblemente, a una organización de gestión de licencias. Para admitir actualizaciones, un paquete debe
estar gestionado. Una organización puede crear un único paquete gestionado que muchas organizaciones diferentes
pueden descargar e instalar. Los paquetes gestionados se diferencian de los paquetes no gestionados en que algunos
componentes están bloqueados, lo que permite la actualización posterior del paquete gestionado. Los paquetes no
gestionados no incluyen componentes bloqueados y no se pueden actualizar. Además, los paquetes gestionados confunden
ciertos componentes (como Apex) en las organizaciones suscriptoras para proteger la propiedad intelectual del desarrollador.
Ampliación de paquete gestionado
Cualquier paquete, componente o conjunto de componentes que agrega funcionalidad a un paquete gestionado. No
puede instalar una extensión antes de instalar su paquete gestionado.
Prefijo de espacio de nombres
En un contexto de paquetes, un prefijo de espacio de nombres es un identificador alfanumérico de entre uno y 15 caracteres
que distingue su paquete y su contenido de los paquetes de otros desarrolladores en AppExchange. Los prefijos de espacio
de nombres no distinguen entre minúsculas y mayúsculas. Por ejemplo, ABC y abc no se reconocen como elementos
únicos. Su prefijo de espacio de nombres debe ser totalmente único en todas las organizaciones de Salesforce. Mantiene
su paquete gestionado bajo su control exclusivo.
Paquete
Un grupo de componentes y aplicaciones de Force.com que se han puesto a disposición de otras organizaciones a través
de AppExchange. Utilice paquetes para agrupar una aplicación junto con los componentes relacionados de modo que
pueda cargarlos conjuntamente en AppExchange.
Dependencia de paquete
Se crea cuando un componente hace referencia a otro componente, permiso o preferencia que se necesita para que el
componente sea válido. Los componentes pueden incluir (sin limitar la generalidad de la lista siguiente):
• Campos estándar o personalizados
• Objetos estándar o personalizados
• Páginas de Visualforce
• Código Apex
Los permisos y preferencias pueden incluir (sin limitar la generalidad de la lista siguiente):
• Divisiones
• Varias divisas
• Tipos de registro
Instalación de paquete
La instalación incorpora el contenido de un paquete en su organización de Salesforce. Un paquete de AppExchange
puede incluir una aplicación, un componente o una combinación de ambos. Después de instalar un paquete, es posible
que necesite implementar componentes en el paquete para que esté disponible de un modo general para los usuarios de
la organización.
214
Glosario
Versión del paquete
Una versión de paquete es un número que identifica el conjunto de componentes cargados en un paquete. El número de
versión tiene el formato majorNumber.minorNumber.patchNumber (por ejemplo, 2.1.3). Los números mayor y
menor aumentan con cada versión posterior. El patchNumber se genera y se actualiza solo para una versión de parche.
Los paquetes sin gestionar no se pueden actualizar, de modo que cada versión de paquete es simplemente un conjunto
de componentes que se distribuyen. La versión de un paquete tiene más importancia en el caso de los paquetes gestionados.
Los paquetes se comportan de modo diferente según la versión. Los editores pueden utilizar las versiones de paquetes
para hacer evolucionar los componentes de sus paquetes gestionados cómodamente publicando versiones posteriores de
paquetes sin que dicho paquete estropee las integraciones de clientes existentes. Consulte también Parche y Organización
de desarrollo de parche.
Parche
Un parche permite a un desarrollador cambiar la funcionalidad de los componentes existentes en un paquete gestionado,
mientras garantiza a las organizaciones suscriptoras que no hay cambios de comportamiento visibles en el paquete. Por
ejemplo, puede agregar nuevas variables o cambiar el cuerpo de una clase de Apex, pero no puede agregar, desaprobar o
eliminar ninguno de sus métodos. Un Número de parche agregado a cada versión del paquete realiza un seguimiento
a los parches. Consulte además Organización de desarrollo de parche y Versión del paquete.
Organización de desarrollo de parche
La organización en la que se desarrollan, se mantienen y se cargan las versiones del paquete. Las organizaciones de
desarrollo de parche se crean automáticamente para una organización de desarrollador cuando solicitan crear un parche.
Consulte también Parche y Versión del paquete.
Versión de parche
Una actualización menor a un paquete gestionado. Cada versión de parche tiene un número mayor a la del anterior.
Publicador
El publicador de un listado de AppExchange es el usuario u organización de Salesforce que ha publicado el listado.
Actualización mediante envío
Un método para distribuir actualizaciones que envía las actualizaciones de un paquete gestionado instalado a todas las
organizaciones que han instalado el paquete.
Suscriptor
El suscriptor de un paquete es un usuario de Salesforce con un paquete instalado en su organización de Salesforce.
Prueba
Una prueba es una organización de Salesforce totalmente funcional que contiene una aplicación y todos los registros de
muestra agregados por el editor para un paquete concreto. Permite que los usuarios experimenten una aplicación como
usuario de solo lectura en AppExchange utilizando una interfaz de Salesforce conocida.
Paquete no gestionado
Un paquete que no se puede actualizar ni su desarrollador puede controlar.
Actualización
Una actualización de un paquete es el proceso de instalar una nueva versión. Salesforce admite actualizaciones para
paquetes gestionados que no son beta.
Carga
La carga de un paquete en Salesforce ofrece una URL de instalación para que otros usuarios puedan instalarla. La carga
también permite que tu paquete se pueda publicar en AppExchange.
215
Índice
Índice
A
Actualización de paquetes 187
actualizaciones mediante envío
detalles de organización 201
detalles de trabajo 200
programación 198
actualizar 135, 182
análisis de listas
Instalaciones (Obtener ahora), reporte 129
Más información, videos y capturas de pantallas, reporte 131
Prospectos, reporte 129
Pruebas, demostraciones y capturas de pantalla, reporte 130
Recursos y promociones, reporte 130
Apex
comportamiento en paquetes 191
efectos de la desaprobación 192
Apex dinámico
compatibilidad con varias ediciones 47
API de REST
acceso en Group Edition 45
acceso en Professional Edition 45
aplicación
actualizaciones de parche (versión) 133
aplicaciones nativas 135
envío para aprobación de seguridad 119
opciones de instalación 113
optimización de la búsqueda 133
publicar 110
vender 110
Aplicación conectada
control de acceso en 59–60
creación 55
crear 54
desinstalación 63
detalles 59
eliminación 58
empaquetado 58
gestión 60
instalación 59
modificación 58–60
monitoreo del uso 62
restricciones de direcciones IP para 59–60
URL de inicio 59–60
Aplicación de gestión de licencias
terminología 139
uso 143
Aplicaciones
carga 86, 205
aplicaciones nativas 135
APO
asociar con cuenta de socio 110
crear perfil de proveedor 110
definición 108
APO (continuación)
designar o cambiar 109
AppExchange
ayuda personalizada 51
creación de paquetes 88, 90–93, 196, 198
desarrollo de documentación de aplicaciones 51
diseño de 52
marca 160–161
marca de email 162–163
paquetes en versión beta 77
proporcionar una prueba gratuita 164
tipos de versión de paquete gestionado 87
versiones de paquetes gestionados 87
AppExchange, descripción general 108
Asistencia al usuario 183
Asistencia para usuarios finales 183
Atributos 20
Ayuda personalizada
aplicaciones de AppExchange 51
C
Carga de paquetes 86, 205
Carga de paquetes en versión beta 78
Carga de parches 189
Chatter en paquetes 50
Checkout 114, 122–125
Checkout de AppExchange 114, 122–125
Ciclo de vida de desarrollo 2
comentarios 136
Compatibilidad con varias ediciones 47
Compatibilidad del suscriptor 184–186
Componentes 20
Configuración 141
Configuración de paquetes 81
Configuración de perfil 52
Conjuntos de permisos 52
control de acceso en aplicaciones conectadas 59–60
creación de inscripciones para acceso de OAuth y a API 180
creación de inscripciones usando la API 170
Creación de paquetes 86, 205
Creación de parches 189
creación de una aplicación conectada 54–55
cuenta de socio 132
D
Dependencias 49
Desarrollo
paquetes no gestionados 202
WSDL de socio 63
Descripción general 138
Desinstalación de paquetes 84
desinstalación de una aplicación conectada 63
216
Índice
Diseño
aspecto de Salesforce coincidente 51
E
Ediciones 79, 140
Ediciones compatibles 138
eliminación de una aplicación conectada 58
empaquetado de una aplicación conectada 58
G
gestión de acuerdos de licencia 137
Gestión de licencias
descripción general 138
gestión de una aplicación conectada 60
Group Edition
acceso a la API de REST 45
control de acceso 44
límites 43
paquetes 42–44, 46
uso de Apex 44
I
iconos 135
ideas 136
idiomas 132
Implementación 81
industrias 132
Inicio de sesión 184–186
inscripción de proxy 180
Instalación 140
Instalación de paquete 79
Instalación de paquetes 79
instalación de una aplicación conectada 59
Intervalos de direcciones IP con aplicaciones conectadas 58
Intervalos de direcciones IP de lista blanca en aplicaciones conectadas
58
L
licencias
elegir configuración 121
y prospectos, configuración 127
Licencias
campos modificables 150
detalles 147
modificación 149
modificación de propietario 149
lista
agregar categorías 111, 118, 121
agregar una unidad de prueba 114, 125
análisis 128
definición 108
eliminado de la lista por Salesforce 135
lista (continuación)
envío para aprobación de seguridad 119
precios 114
Logotipo 119
Logotipo del socio 119
M
Marca 119
Marketing 151
Mejores prácticas 151
modificación de una aplicación conectada 58–60
monitoreo del uso de una aplicación conectada 62
N
nombre de compañía 132
Nombre de dominio
descripción general de la configuración 68
Núcleo de entorno
activación del inicio de sesión único 73
adición de usuario vinculado 73–74
conectar una organización 69
desctivación del inicio de sesión único 74
modificar los detalles de la organización 72
visualización de los detalles de la organización 70
O
Objetos
SignupRequest 171
opinión
escribir 136
modificar 132
optimización de la búsqueda 133
Organización de gestión de licencias
asociación de un paquete gestionado 142
organizaciones vinculadas
definición 108
vincular a APO 109
P
Paquete
actualizaciones mediante envío, programación 198
asociación con LMO 142
ciclo de vida 2
paquete gestionado
cambiar 132
cambiar una lista 133
registrar 121
Paquetes
acerca de 1, 20
asistencia al usuario 183
ayuda personalizada 51
carga 86, 205
Chatter 50
217
Índice
Paquetes (continuación)
componentes que se pueden incluir en paquetes 21, 31, 202
comportamiento del componente 25, 33
concepto 20
configuración 81
creación 86, 88, 90–93, 196, 198, 205
dependencias 49
desarrollo 20
desarrollo de documentación de aplicaciones 51
desinstalación mediante la API 85
detalles 144
diseño 19
disponibilidad de componentes 81
distribución 107
Ediciones 20
errores en la instalación 83
estado 20
gestionado 20
instalación de paquetes 48
instalación mediante la API 85
marca 160–163
modificación de propietario 145
modificación del gestor de prospectos 146
no gestionado 20
protección de la propiedad intelectual 64
secuencia de comandos de desinstalación 91–92
secuencia de comandos posterior a la instalación 88, 90, 196, 198
solución de problemas 83
terminología 20
versiones 146–147
Paquetes de ampliación 46
Paquetes en versión beta
carga 78
desinstalación 84
Paquetes gestionados
actualización 187
actualizaciones mediante envío 193–196, 198
beta 77
compatibilidad con varias ediciones 46–47
componentes que se pueden incluir en paquetes 21, 31, 202
comportamiento del componente 25, 33
configuración 81
disponibilidad de componentes 81
estado 20
Group Edition 42–44, 46
límites para Group Edition 43
límites para Professional Edition 43
planificación 20
prefijo de espacio de nombres 77
Professional Edition 42–44, 46
tipos de versión 87
versión de parche 190
versiones 87
Paquetes no gestionados
componentes que se pueden incluir en paquetes 31, 202
comportamiento del componente 33
Paquetes no gestionados (continuación)
desarrollo 202
parches 133
perfil de proveedor
crear o modificar 110
y cuentas de socio 132
Perfiles personalizados
creación 52
Permisos necesarios 138
plantilla de prueba
descripción 102, 134
envío para aprobación de seguridad 119
vínculo a la lista 112
popularidad 134
Preguntas más frecuentes
LMA 152
Professional Edition
acceso a la API de REST 45
control de acceso 44
límites 43
paquetes 42–44, 46
uso de Apex 44
Propiedad intelectual
protección 64
Propietario de licencia
modificación 149
prospectos
códigos de origen 126–127
escenarios de prospectos escogidos 118
y licencias, registros 127
Prospectos
modificación del gestor de prospectos 146
prueba gratuita
crear 102, 134
y unidad de prueba 136
Pruebas 76, 79
pruebas de AppExchange
diferencia con Trialforce 182
publicar
crear una unidad de prueba 114, 125
hacer que la lista sea pública 110
R
recursos 101
Relaciones de la entidad 138
relevancia 134
Restricciones de direcciones IP para aplicaciones conectadas 59–60
revisión de seguridad
envío de aplicaciones y plantillas de prueba 119
errores 104
requisitos 119
Revisión de seguridad
aplicación móvil 100
cuestionario 97
paquete de extensión 101
218
Índice
S
Sandbox 132
servicios
optimización de la búsqueda 133
publicar 110
vender 110
Servicios externos
aprovisionamiento 63
trabajo con 63
SignupRequest, objeto 171
socio de consultoría
Más información, videos y capturas de pantallas, reporte 131
Solicitud de inscripción
crear 177
Solicitudes de inscripción
página de inicio 177
visualización de detalles 177
Solución de problemas 83, 153
T
Terminología
Aplicación de gestión de licencias 139
testimonios 136
token de API
solicitud 134
Trialforce
aprovisionamiento de organizaciones de prueba 168
crear una organización de prueba 170, 178–179
inscripción 170, 178–179
instalación de otra aplicación 182
mejores prácticas 169
modificación de una prueba 169
Trialforce (continuación)
personalización del formulario de HTML 168
proporcionar pruebas gratuitas en AppExchange 165
vincular plantilla a formulario HTML 167
Tutoriales 3
U
unidad de prueba
crear o modificar 114, 125
y prueba gratuita 136
URL de inicio en aplicaciones conectadas 60
uso de Apex dinámico 46–47
uso de paquetes de ampliación 46
V
Valores predeterminados
configuración 143
Ventas 151
Versiones de paquetes
comportamientos diferentes según la versión de Apex 191
desaprobación de Apex 192
detalles 147
Versiones de parche
carga 189
carga de parches 190
creación 189
creación de parches 190
W
WSDL de socio 63
219

Documentos relacionados