Configurar integración de objeto de negocio específico
En esta última sección, realizará los pasos necesarios para agregar la interfaz de usuario del repositorio de activos incrustados 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 las solicitudes de servicio, pero cualquier objeto de negocio se puede actualizar siguiendo estos pasos, como oportunidades, campañas, eventos, etc. Esto implica campos personalizados en la solicitud de servicio para almacenar el ID de repositorio de activos base de OCM, así como el ID de recopilación de OCM único. Estos pasos también agregarán un separador Assets a la página de detalles de la solicitud de servicio que expone la interfaz de usuario del repositorio de activos embebida de OCM a través de un mashup mediante el ID de recopilación de OCM específico de la solicitud de servicio. Y una vez que se haya resuelto una solicitud de servicio, cualquier documento de OCM relacionado también se copiará en la recopilación del repositorio de activos de OCM.
Crear campos personalizados
Un campo personalizado es específico del objeto de negocio en el que se crea. El objeto de negocio puede acceder a estas variables y puede ser único para cada instancia de los objetos de negocio que se crean.
ID de recopilación de OCM
Un campo personalizado es específico del objeto de negocio en el que se crea. El objeto de negocio puede acceder a estas variables y puede ser único para cada instancia de los objetos de negocio que se crean.
- 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.
- Seleccione Objetos, Objetos estándar, Solicitud de servicio y, a continuación, Campos en el menú de navegación izquierdo.
- En la página Campos, seleccione el separador Personalizado y haga clic en el icono Crear un campo personalizado.
- En el cuadro de diálogo Seleccionar tipo de campo, seleccione la opción Texto y haga clic en Aceptar.
- En la página Crear campo de texto, rellene los siguientes campos:
- En el campo Etiqueta de visualización, especifique el nombre como OCMCollectionId. El campo Nombre se rellena automáticamente según el valor especificado en el campo Etiqueta de visualización.
- En el campo Descripción, introduzca el texto "Variable personalizada para el objeto de solicitud de servicio específico para almacenar el ID de recopilación de repositorio de activos único que se utiliza en la integración de OCM Asset Repository Records Management".
- Haga clic en Guardar y en Cerrar.
ID de repositorio base de OCM
- En el campo Etiqueta de visualización, especifique el nombre como OCMBaseRepositoryId. El campo Nombre se rellena automáticamente según el valor especificado en el campo Etiqueta de visualización.
- En el campo Descripción, introduzca el texto "Variable personalizada que contiene el ID de repositorio base de OCM que se utiliza como ubicación para la que se crearán las recopilaciones para la integración de OCM Asset Repository Records Management".
- En la sección Restricciones, anule la selección de Actualizable.
- En el campo Valor fijo, introduzca el valor del ID del repositorio de activos base de OCM que se guardó anteriormente (por ejemplo, 12424F28875F405FB2144A6FD4DD9FC).
- 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.
- Seleccione Objetos, Objetos estándar, Solicitud de servicio y, a continuación, Páginas en el menú de navegación izquierdo.
- En la página Solicitud de servicio: Páginas, en la sección Diseños de página de detalles, haga clic en el icono 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 activos de OCM en lugar de crear una nueva y se puede omitir el paso 3. - En el cuadro de diálogo Duplicar diseño, complete los siguientes campos:
- En el campo Nuevo nombre de diseño, especifique el nombre como OCMEmbeddedUIIntegration.
- En el campo Diseño de origen, seleccione Diseño estándar en el menú desplegable.
- Haga clic en Guardar y editar.
- 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.
- Seleccione la opción Contenido masivo. Haga clic en Siguiente.
- En la página siguiente, seleccione la opción OCMEmbeddedAssetsUIMashup que se creó anteriormente y haga clic en Insertar.
- En la página siguiente, rellene los siguientes campos:
- En el campo Etiqueta mostrada, introduzca Activos.
- Para el icono de visualización, haga clic en Cambiar icono si desea cambiar el icono por defecto que aparece en la IU de solicitud de servicio como un separador.
- En el campo Editar script, pegue el siguiente script:
println("Service Request Assets Tab Selected: " + SrNumber) // Get the current user security context def secCtx = adf.context.getSecurityContext() // Check to see if the OCM user has been shared to this Repository Collection // NOTE: The user must already be manually shared as at least a contributor to the Base Repository either directly or indirectly through a group for this integration to work boolean isCollectionShared = adf.util.OCMIsRepositoryCollectionSharedAsContributorFunction(OCMBaseRepositoryId_c, OCMCollectionId_c, secCtx.getUserName()) if (!isCollectionShared) { // If not then share the current user as a Contributor to the OCM Collection associated to this item adf.util.OCMShareCollectionFunction(OCMCollectionId_c, secCtx.getUserName(), "contributor") } println("Loading OCM Embedded Assets UI") return '?options={"assetsView":{"select":"single","layout":"grid","sort":"relevance","header":{"add":{"upload":true,"documents":true},"collections":true},"filter":{"bar":{"capsules":false},"repositories":["' + OCMBaseRepositoryId_c + '"],"collections":["' + OCMCollectionId_c + '"]},"filterValue":{"repositoryId":"' + OCMBaseRepositoryId_c + '","collectionId":"' + OCMCollectionId_c + '","includeChildCategories":false},"sidebar":{"categories":true,"conversation":true,"properties":true},"actions":{"open":true,"download":true,"uploadNewVersion":true,"delete":true},"card":{"status":false}},"assetViewer":{"header":{"annotate":true,"fullScreen":true,"close":true},"actions":{"download":true,"uploadNewVersion":true,"makeCurrent":true},"sidebar":{"categories":true,"conversation":true,"properties":true,"renditions":true}},"dialogs":{"addToRepository":{"sidebar":{"categories":true},"default":{"collections":["' + OCMCollectionId_c + '"]}}}}'
Nota:
Este script asigna automáticamente el rol de contribuyente a cada usuario que accede a la recopilación de repositorios de activos específica. Esto podría perfeccionarse aún más, por ejemplo, para otorgar al propietario de la solicitud de servicio el rol de mánager mientras otorga a otros usuarios el rol de contribuyente. - Haga clic en el botón Next (Siguiente).
- Haga clic en Guardar y cerrar.
Adición de disparadores de eventos
Un disparador de eventos comprueba si se produce un evento y, cuando este se produce, ejecuta el código asociado al disparador.
OCMCreateCollectionTrigger
Para agregar un disparador de objeto de script de servidor para crear la recopilación de repositorios de activos de OCM relacionada cuando se crea la solicitud de servicio:
- Seleccione Objetos, Objetos estándar, Solicitud de servicio y, a continuación, Scripts del servidor en el panel de navegación izquierdo.
- En la página Server Scripts Service Request, seleccione el separador Disparadores.
- En la sección Disparadores de objeto, haga clic en Agregar un nuevo disparador.
- En la página Create Object Trigger, complete los siguientes campos:
- En el menú desplegable Disparador, seleccione Antes de insertar en la base de datos.
- En el campo Nombre de disparador, especifique el nombre del disparador como OCMCreateCollectionTrigger.
- En el campo Descripción, introduzca el texto "Crear la recopilación de repositorios de activos de OCM asociada a la ServiceRequest que se está creando".
- En el campo Editar script, pegue el siguiente script:
println("ServiceRequest.BeforeInsert(OCMCreateCollectionTrigger): " + SrNumber); // Create a new Collection within the specified Asset Repository Id based off the item SrNumber def OCMCollectionId = adf.util.OCMCreateRepositoryCollectionFunction(OCMBaseRepositoryId_c, SrNumber); setAttribute("OCMCollectionId_c", OCMCollectionId);
- Haga clic en Guardar y cerrar.
OCMCopyDocumentsToCollectionTrigger
Para agregar un disparador de objeto de script de servidor en una nueva página Crear disparador de objeto para copiar los documentos de una carpeta de OCM relacionada y sus carpetas secundarias en la recopilación de repositorios de OCM cuando se resuelva la solicitud de servicio, complete los siguientes campos:
Nota:
Este disparador solo es necesario si el objeto de negocio de Oracle Sales y Service tiene la opción de resolución y se ha configurado con la integración de documentos de OCM. Consulte Obtenga información sobre cómo ampliar los objetos de negocio de Oracle Sales y Service con la colaboración en documentos para obtener más información sobre la integración de documentos.- En el menú desplegable Disparador, seleccione Antes de actualizar en la base de datos.
- En el campo Nombre de disparador, especifique el nombre del disparador como OCMCopyDocumentsToCollectionTrigger.
- En el campo Descripción, introduzca el texto "Cuando se marque como resuelto, copie los documentos de la carpeta de OCM relacionada y sus carpetas secundarias en la recopilación relacionada para gestión de registros".
- En el campo Editar script, pegue el siguiente script:
// If the status has been changed then copy all the associated documents to the associated repository collection if (isAttributeChanged('StatusCd')) { println("ServiceRequest.BeforeUpdate(OCMCopyDocumentsToCollectionTrigger): " + SrNumber + ":" + StatusCd + "(" + OCMFolderId_c + ":" + OCMCollectionId_c + ")") if (OCMFolderId_c == null) { println("WARNING: Associated OCM Folder for this Service Request (" + SrNumber + ") does not exist.") return false } if (OCMCollectionId_c == null) { println("WARNING: Unable to copy OCM Documents as there is no associated OCM Collection for this Service Request(" + SrNumber + ").") return false } // Get the Documents from the associated OCM Folder that need to be copied to the Collection def documents = (java.util.List)adf.util.OCMGetDocumentsByFolderIdFunction(OCMFolderId_c) if (documents.size() > 0) { // Copy the documents adf.util.OCMCopyDocumentsToRepositoryCollectionFunction(OCMBaseRepositoryId_c, OCMCollectionId_c, documents) } return true }
- Haga clic en Guardar y cerrar.