Configurar integración de objeto de negocio específico

En esta última sección, realizará los pasos necesarios para agregar la interfaz de usuario de la carpeta embebida de OCM dentro de un objeto de negocio específico de la aplicación Oracle Sales and Service.

En esta sección, volveremos a utilizar oportunidades, pero cualquier objeto de negocio se puede actualizar siguiendo estos pasos, como solicitudes de servicio, campañas, eventos, etc. Esto implica la creación de un campo personalizado en la oportunidad para almacenar el ID de carpeta de OCM único. Estos pasos también agregarán el separador Documentos a la página de detalles de la oportunidad que expone la interfaz de usuario de la carpeta embebida de OCM a través de un Mashup mediante el ID de carpeta de OCM específico de la oportunidad.

Crear un campo personalizado

Un campo personalizado es específico del objeto de negocio en el que se crea. Estas variables son únicas para cada instancia de los objetos de negocio que se crean.

Para crear un campo personalizado que contenga el ID de carpeta de OCM único relacionado con el elemento de oportunidad específico:
  1. Para volver a entrar en Application Composer, haga clic en Herramientas en la esquina superior izquierda de la página y, a continuación, seleccione Application Composer en la lista desplegable.
  2. Seleccione Objetos, Objetos estándar, Oportunidad y, a continuación, Campos en el menú de navegación izquierdo.
  3. En la página Campos, seleccione el separador Personalizado y haga clic en el icono Crear un campo personalizado.
  4. En el cuadro de diálogo Seleccionar tipo de campo, seleccione la opción Texto y haga clic en Aceptar.
  5. En la página Crear campo de texto, haga lo siguiente:

    1. En el campo Etiqueta de visualización, especifique el nombre como OCMFolderId. El campo Nombre se rellena automáticamente según el valor especificado en el campo Etiqueta de visualización.
    2. En el campo Descripción, introduzca el texto "Variable personalizada para el objeto de oportunidad específico para almacenar el ID de carpeta único que se utiliza en la integración de OCM - Colaboración de oportunidades".
    3. Haga clic en Guardar y cerrar.

Ampliar el objeto de negocio

Los objetos de negocio se pueden ampliar mediante un mashup (como el que hemos creado anteriormente) para exponer una aplicación externa como OCM dentro de la interfaz de usuario de objeto de negocio.

Para crear un nuevo diseño de página de oportunidad para incluir la integración de OCM:
  1. Seleccione Objetos estándar, Oportunidad y, a continuación, Páginas en el menú de navegación izquierdo.
  2. En la página Oportunidad: Páginas, en la sección Diseños de página de detalles, haga clic en Duplicar diseño de página de detalles.

    Nota:

    Si ya se ha creado una página personalizada, dicha página se puede utilizar para la integración de OCM en lugar de crear una nueva y se puede omitir el paso 3.
  3. En el cuadro de diálogo Duplicar diseño, complete los siguientes campos:

    1. En el campo Nuevo nombre de diseño, especifique el nombre como OCMEmbeddedUIIntegration.
    2. En el campo Diseño de origen, seleccione Diseño estándar en el menú desplegable.
    3. Haga clic en Guardar y editar.
  4. En la página Diseño de detalles, seleccione el icono Agregar en la parte inferior del menú de navegación izquierdo en la sección Región de subseparadores para agregar la interfaz de usuario embebida de OCM.
  5. Seleccione la opción Contenido de purga. Haga clic en Siguiente.
  6. En la página siguiente, seleccione la opción OCMEmbeddedFolderUIMashup que se creó anteriormente y haga clic en Insertar.
  7. En la página siguiente, rellene los siguientes campos:

    1. En el campo Etiqueta de visualización, introduzca Documentos.
    2. En Mostrar icono, haga clic en Cambiar icono para que se muestre un icono con aspecto de documento en la IU de oportunidades como separador.
    3. En el campo Editar script, pegue el siguiente script:
      println("Opportunity Documents Tab Selected: " + Name)
      // Get the current user security context
      def secCtx = adf.context.getSecurityContext()
      // Get the current OCM user id based off the current Oracle Sales and Service User
      def OCMUserId = adf.util.OCMSearchUserFunction(secCtx.getUserName())
      // Now check to see if the OCM user has been shared to this folder
      boolean isFolderShared = adf.util.OCMIsFolderSharedFunction(OCMFolderId_c, OCMUserId)
      if (!isFolderShared) {
        // Share the current user as a Manager to the OCM Folder associated to this item
        adf.util.OCMShareFolderFunction(OCMFolderId_c, OCMUserId, "manager")
      }
      println("Loading OCM Embedded Docs UI")
      return OCMFolderId_c +'?options={"documentsView":{"layout":"grid","header":{"create":{"folder":true},"upload":true,"trash":true},"actions":{"open":{"file":true},"uploadNewVersion":true,"download":true,"delete":true,"shareLink":true,"members":true}},"documentViewer":{"actions":{"download":true,"uploadNewVersion":true,"shareLink":true},"sidebar":{"conversation":true}}}'
      

      Nota:

      Este script asigna automáticamente el rol de gestor a cada usuario que accede a la carpeta. Podría acotarse aún más para otorgar al propietario de la oportunidad el rol de gestor al mismo tiempo que otorga a otros usuarios el rol de contribuyente.
    4. Haga clic en el botón Next (Siguiente).
    5. Haga clic en Guardar y cerrar.

Adición de disparadores de eventos

Un disparador de evento comprueba un evento y, cuando se produce, ejecuta el código asociado al disparador.

OCMCreateFolderTrigger

Para agregar un disparador de objeto de script de servidor para crear la carpeta de OCM relacionada cuando se crea la oportunidad:

  1. Seleccione Objetos estándar, Oportunidad y, a continuación, Scripts de servidor en el panel de navegación izquierdo.
  2. En la página Oportunidad de scripts del servidor, seleccione el separador Disparadores.
  3. En la sección Disparadores de objeto, haga clic en Agregar un nuevo disparador.
  4. En la página Create Object Trigger, complete los siguientes campos:

    1. En el menú desplegable Activador, seleccione Antes de Insertar en Base de Datos.
    2. En el campo Nombre de disparador, especifique el nombre del disparador como OCMCreateFolderTrigger.
    3. En el campo Descripción, introduzca el texto "Crear la carpeta de OCM asociada a la oportunidad que se está creando".
    4. En el campo Editar script, pegue la siguiente secuencia de comandos, sustituyendo <OCMRootFolderId> por el ID de carpeta raíz de OCM real que se capturó en OCM en los pasos iniciales anteriores (por ejemplo, F572711F9E557436A646AEC295F044A3C39B0):
      println("Opportunity.BeforeInsert(OCMCreateFolderTrigger): " + Name)
      def OCMParentFolderId = "<OCMRootFolderId>"
      // Create a new OCM folder under the parent folder based off the item name
      println("Create OCM Opportunity Folder under Pararent Folder Id: " + OCMParentFolderId)
      def OCMFolderId = adf.util.OCMCreateFolderFunction(OCMParentFolderId, Name)
      // and assign that new folder id to the OCMFolderId item variables
      setAttribute("OCMFolderId_c", OCMFolderId)
    5. Haga clic en Guardar y cerrar.

OCMDeleteFolderTrigger

Para agregar un disparador de objeto de script de servidor, en una nueva página Crear disparador de objeto, para eliminar la carpeta de OCM relacionada cuando se suprime la oportunidad:

Nota:

El implantador puede optar por no implementar este paso si se da cuenta de que cualquier contenido colocado en la carpeta de oportunidades de OCM debe conservarse incluso después de suprimir la oportunidad.


  1. En el menú desplegable Activador, seleccione Antes de Suprimir en Base de Datos.
  2. En el campo Nombre de disparador, especifique el nombre del disparador como OCMDeleteFolderTrigger.
  3. En el campo Descripción, introduzca "Eliminar la carpeta de OCM asociada a la oportunidad que se va a suprimir".
  4. En el campo Editar script, pegue el siguiente script:
    println("Opportunity.BeforeDelete(OCMDeleteFolderTrigger): " + Name + "(" + OCMFolderId_c + ")")
    // Make sure that we have a folder to delete
    if (OCMFolderId_c != null) {
      adf.util.OCMDeleteFolderFunction(OCMFolderId_c)
    } else {
      println("Warning: No OCMFolderId associated to the Opportunity?")
    }
  5. Haga clic en Guardar y cerrar.