Configurar Integração de Objeto de Negócios Específica
Nesta última seção, você executará as etapas necessárias para adicionar a UI do repositório de ativos incorporados do OCM em um objeto de negócios específico do aplicativo Oracle Sales and Service.
Nesta seção, mais uma vez usaremos solicitações de serviço, mas qualquer objeto de negócios pode ser atualizado usando essas etapas, como oportunidades, campanhas, eventos etc. Isso envolve campos personalizados na solicitação de serviço para armazenar o ID do repositório de ativos base do OCM, bem como o ID de coleta exclusivo do OCM. Essas etapas também adicionarão uma guia Ativos à página de detalhes da solicitação de serviço que expõe a interface do usuário do repositório de ativos incorporados do OCM por meio de um Mashup usando o ID de coleta do OCM específico da solicitação de serviço. E depois que uma solicitação de serviço tiver sido resolvida, todos os documentos OCM relacionados também serão copiados para a coleta do repositório de ativos do OCM.
Criar Campos Personalizados
Um campo personalizado é específico do objeto de negócios no qual ele é criado. Essas variáveis podem ser acessadas pelo objeto de negócios e podem ser exclusivas de cada instância dos objetos de negócios criados.
ID da Coleção do OCM
Um campo personalizado é específico do objeto de negócios no qual ele é criado. Essas variáveis podem ser acessadas pelo objeto de negócios e podem ser exclusivas de cada instância dos objetos de negócios criados.
- Para informar novamente o compositor do aplicativo, clique em Ferramentas no canto superior esquerdo da página e selecione Application Composer na lista drop-down.
- Escolha Objetos, Objetos Padrão, Solicitação de Serviço e Campos no menu de navegação esquerdo.
- Na página Campos, selecione a guia Personalizado e clique no ícone Criar um campo personalizado.
- Na caixa de diálogo Selecionar Tipo de Campo, selecione a opção Texto e clique em OK.
- Na página Criar Campo de Texto, preencha os seguintes campos:
- No campo Label de Exibição, especifique o nome como OCMCollectionId. O campo Nome é preenchido automaticamente com base no valor especificado no campo Rótulo de Exibição.
- No campo Descrição, informe o texto "Variável personalizada para o objeto de Solicitação de Serviço específico para armazenar o Id de Coleta do Repositório de Ativos que está sendo usado na integração do Gerenciamento de Registros do Repositório de Ativos do OCM".
- Clique em Salvar e Fechar.
ID do Repositório Base do OCM
- No campo Label de Exibição, especifique o nome como OCMBaseRepositoryId. O campo Nome é preenchido automaticamente com base no valor especificado no campo Rótulo de Exibição.
- No campo Descrição, digite o texto "Variável personalizada que contém o ID do Repositório Base do OCM que está sendo usado como local para onde as Coleções serão criadas para a integração do Gerenciamento de Registros do Repositório de Ativos do OCM".
- Na seção Restrições, desmarque Atualizável.
- No campo Valor Fixo, digite o valor do ID do repositório de ativos base do OCM que foi salvo acima (por exemplo, 12424F28875F405FB2144A6FD4DD9FC).
- Clique em Salvar e Fechar.
Estender o Objeto de Negócios
Os Objetos de Negócios podem ser estendidos usando um Mashup (como o que criamos acima) para expor um aplicativo externo, como o OCM, na IU do Objeto de Negócios.
- Escolha Objetos, Objetos Padrão, Solicitação de Serviço e Páginas no menu de navegação esquerdo.
- Na página Solicitação de Serviço: Páginas, na seção Layouts de Página de Detalhes, clique no ícone Layout da Página de Detalhes Duplicados.
Observação:
Se uma página personalizada já tiver sido criada, essa página poderá ser usada para a Integração de Ativos do OCM, em vez de criar uma nova e a etapa 3 poderá ser ignorada. - Na caixa de diálogo Duplicar layout, preencha os seguintes campos:
- No campo Novo Nome de Layout, especifique o nome como OCMEmbeddedUIIntegration.
- No campo Layout de Origem, selecione Layout padrão no menu drop-down.
- Clique em Salvar e Editar.
- Na página Layout de Detalhes, selecione o ícone Adicionar na parte inferior do menu de navegação esquerdo na seção Região de Subguias para adicionar a UI incorporada do OCM.
- Selecione a opção Conteúdo de Caixa. Clique em Próximo.
- Na próxima página, selecione a opção OCMEmbeddedAssetsUIMashup que foi criada anteriormente e clique em Inserir.
- Na próxima página, preencha os seguintes campos:
- No campo Exibir Rótulo, digite Ativos.
- Para o Ícone Exibir, clique em Alterar Ícone se quiser alterar o ícone padrão que aparece na IU da solicitação de serviço como uma guia.
- No campo Editar Script, cole o seguinte 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 + '"]}}}}'
Observação:
Este script atribui automaticamente a função de colaborador a cada usuário que acessa a coleção específica do repositório de ativos. Isso pode ser ainda mais refinado, por exemplo, para conceder ao proprietário da solicitação de serviço a função de gerente, dando a outros usuários a função de colaborador. - Clique no botão Próximo.
- Clique em Salvar e Fechar.
Adicionar Triggers de Eventos
Um trigger de evento verifica se há um evento e quando esse evento ocorre, ele executa o código associado ao trigger.
OCMCreateCollectionTrigger
Para adicionar um trigger de objeto de script do servidor para criar a coleta relacionada do repositório de ativos do OCM quando a solicitação de serviço é criada:
- Escolha Objetos, Objetos Padrão, Solicitação de Serviço e Scripts de Servidor no painel de navegação esquerdo.
- Na página Solicitação de Serviço de Scripts do Servidor, selecione a guia Acionadores.
- Na seção Triggers de Objeto, clique em Adicionar um novo Trigger.
- Na página Criar Acionador de Objeto, preencha os seguintes campos:
- No menu drop-down Acionador, selecione Antes de Inserir no Banco de Dados.
- No campo Nome do Trigger, especifique o nome do trigger como OCMCreateCollectionTrigger.
- No campo Descrição, digite o texto "Criar a Coleta do Repositório de Ativos do OCM associada ao ServiceRequest que está sendo criado".
- No campo Editar Script, cole o seguinte 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);
- Clique em Salvar e Fechar.
OCMCopyDocumentsToCollectionTrigger
Para adicionar um trigger de objeto de script do servidor em uma nova página Criar Acionador de Objeto para copiar os documentos em uma pasta OCM relacionada e suas pastas filhas para a coleção de repositórios do OCM quando a solicitação de serviço for resolvida, preencha os seguintes campos:
Observação:
Este trigger só será necessário se o objeto de negócios Oracle Sales and Service tiver a opção de resolução e tiver sido configurado com a integração do Documento OCM. Consulte Saiba Mais Sobre como Estender Objetos de Negócios do Oracle Sales and Service com Colaboração de Documentos para obter mais informações sobre a Integração de Documentos.- No menu drop-down Acionador, selecione Antes de Atualizar no Banco de Dados.
- No campo Nome do Trigger, especifique o nome do trigger como OCMCopyDocumentsToCollectionTrigger.
- No campo Descrição, informe o texto "Quando marcado como resolvido, copie os Documentos na Pasta OCM relacionada e suas Pastas filhas para a Coleta relacionada do Gerenciamento de Registros".
- No campo Editar Script, cole o seguinte 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 }
- Clique em Salvar e Fechar.