Criar Funções Globais
As funções globais são usadas para encapsular a lógica de negócios nos serviços Web para que possam ser facilmente usadas em outros locais.
OCMCreateRepositoryCollectionFunction
Para criar a função global Criar Coleção de Repositório do OCM que será usada para acessar o web service OCMCreateRepositoryCollectionService:
- Escolha Configuração Comum e Funções Globais no menu de navegação esquerdo.
- Na página Funções Globais, clique no ícone Adicionar uma Função Global.
- Na página Criar Função Global, preencha os seguintes campos:
- No campo Nome da Função, especifique o nome da função como OCMCreateRepositoryCollectionFunction.
- Selecione String no menu drop-down Retorna.
- No campo Descrição, informe o texto "Cria um novo OCMCollectionName dentro do OCMRepositoryId especificado e retorna o ID de Coleta recém-criado".
- Na seção Parâmetros, clique no ícone Adicionar Parâmetro e adicione os seguintes campos:
Nome Tipo OCMRepositoryId String OCMCollectionName String - No campo Editar Script, cole o seguinte script:
println("Create OCM Collection " + OCMCollectionName + " within the Asset Repository Id: " + OCMRepositoryId); def params = [:] params.name = OCMCollectionName def OCMCollection = [:] try { def OCMCreateRepositoryCollectionService = adf.webServices.OCMCreateRepositoryCollectionService OCMCreateRepositoryCollectionService.requestHTTPHeaders = ['X-Requested-With': 'XMLHttpRequest'] OCMCollection = OCMCreateRepositoryCollectionService.POST(OCMRepositoryId, params) println("OCM Collection Created: " + OCMCollection) return OCMCollection.id } catch (Exception e) { println("OCM Create Respository(" + OCMRepositoryId + ") Collection(" + OCMCollectionName + ") Error: " + e) }
- Clique em Salvar e Fechar.
OCMGetDocumentsByFolderIdFunction
Para criar a função global Obter Documentos por ID de Pasta do OCM em uma nova página Criar Função Global que será usada para acessar o web service OCMGetDocumentsByFolderIdService, preencha os seguintes campos:
Observação:
Essa função global só será necessária 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 campo Nome da Função, especifique o nome da função como OCMGetDocumentsByFolderIdFunction.
- Selecione Lista no menu suspenso Retorna.
- No campo Descrição, digite o texto "Retorna uma lista de IDs de Documento OCM com base no OCMFolderId especificado (isso inclui pastas filho também).".
- Na seção Parâmetros, clique no ícone Adicionar Parâmetro.
No campo Nome, especifique o nome como OCMFolderId e selecione String no menu drop-down Tipo.
- No campo Editar Script, cole o seguinte script:
def response = [:] def items = [] try { response = adf.webServices.OCMGetDocumentsByFolderIdService.GET(OCMFolderId) for(item in response.items){ items.add(item["id"]) } println("OCM Get Documents By Folder Id " + OCMFolderId + " Result(" + items.size() + "): " + items) return items } catch (Exception e) { println("Get OCM Documents By Folder Id Error: " + e) }
- Clique em Salvar e Fechar.
OCMCopyDocumentsToRepositoryCollectionFunction
Para criar a função global Copiar Documentos OCM para Coleta do Repositório em uma nova página Criar Função Global que será usada para acessar o web service OCMBulkOperationsService, preencha os seguintes campos:
Observação:
Essa função global só será necessária 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 campo Nome da Função, especifique o nome da função como OCMCopyDocumentsToRepositoryCollectionFunction.
- Selecione Booliano no menu drop-down Retorna.
- No campo Descrição, informe o texto "Copia a lista especificada do OCM de OCMDocumentIds para o OCMCollectionId especificado dentro do OCMRepositoryId especificado".
- Na seção Parâmetros, clique no ícone Adicionar Parâmetro e adicione os seguintes campos:
Nome Tipo OCMRepositoryId String OCMCollectionId String OCMDocumentIds Lista - No campo Editar Script, cole o seguinte script:
// Create the structure required for the list of documents that will be used in the payload below def documents = [] for(OCMDocumentId in OCMDocumentIds) { def document = [ externalId: OCMDocumentId, // NOTE: The type value must match the name of the Asset Type that you created during the installation type: "Service-Request-Asset", collections: [ data: [OCMCollectionId] ] ] documents.add(document) } // Create the payload required to make the addToRepository bulk operation call def payload = [ operations: [ addToRepository: [ connectorId: "Documents", repositoryId: OCMRepositoryId, externalItems: documents ] ] ] try { def OCMBulkOperationsService = adf.webServices.OCMBulkOperationsService OCMBulkOperationsService.requestHTTPHeaders = ['X-Requested-With': 'XMLHttpRequest'] OCMBulkOperationsService.POST(payload) println("OCM Documents Copied To Repository: " + OCMRepositoryId + "(" + OCMCollectionId + "): (" + OCMDocumentIds + ")") return true } catch (Exception e) { println("Copy OCM Documents To Repository Error: " + e) return false }
Observação:
O valor Tipo no script acima deve corresponder ao nome do tipo de ativo criado anteriormente. - Clique em Salvar e Fechar.
OCMIsRepositoryCollectionSharedAsContributorFunction
Para criar a função global OCM É Coleta de Repositório Compartilhada como Colaborador em uma nova página Criar Função Global que será usada para acessar o web service OCMRepositoryCollectionPermissionsService, preencha os seguintes campos:
- No campo Nome da Função, especifique o nome da função como OCMIsRepositoryCollectionSharedAsContributorFunction.
- Selecione Booliano no menu drop-down Retorna.
- No campo Descrição, informe o texto "Retorna verdadeiro se o OCMUserName especificado tiver sido compartilhado com o OCMCollectionId especificado dentro do OCMRespositoryId especificado com pelo menos uma atribuição de Colaborador".
- Na seção Parâmetros, clique no ícone Adicionar Parâmetro e adicione os seguintes campos:
Nome Tipo OCMRepositoryId String OCMCollectionId String OCMUserName String - No campo Editar Script, cole o seguinte script:
def response = [:] try { response = adf.webServices.OCMRepositoryCollectionPermissionsService.GET(OCMRepositoryId, OCMCollectionId) def responseItems = [:] responseItems = response.items for (item in responseItems) { // Ignore case as these could be different between the two security systems even though it is the same user if ((item['id'] as String).toLowerCase() == OCMUserName.toLowerCase()) { // If found make sure the user also has at least the contributor role if (item['roleName'] == 'contributor' || item['roleName'] == 'manager') { println("OCM User(" + OCMUserName + ") was found with enough role permissions to the repository collection: " + OCMRepositoryId + "(" + OCMCollectionId + ")") return true } else { println("OCM User(" + OCMUserName + ") was found but without enough role permissions to the repository collection: " + OCMRepositoryId + "(" + OCMCollectionId + ")") return false } } } println("OCM User(" + OCMUserName + ") does not have permissions to the repository: " + OCMRepositoryId) return false } catch (Exception e) { println("OCM Is Repository Collection Shared As Contributor Error: " + e) return false }
- Clique em Salvar e Fechar.
OCMShareCollectionFunction
Para criar a função global Coleta de Compartilhamento do OCM em uma nova página Criar Função Global que será usada para acessar o web service OCMPermissionOperationsService, preencha os seguintes campos:
- No campo Nome da Função, especifique o nome da função como OCMShareCollectionFunction.
- Selecione Booliano no menu drop-down Retorna.
- No campo Descrição, digite o texto "Compartilha o OCMCollectionId especificado no OCM com o OCMUserName e o OCMRole especificados.".
- Na seção Parâmetros, clique no ícone Adicionar Parâmetro e adicione os seguintes campos:
Nome Tipo OCMCollectionId String OCMUserName String OCMRole String - No campo Editar Script, cole o seguinte script:
// Create the payload required to make the permissions operation call def payload = [ operations: [ share: [ resource: [ id :OCMCollectionId, type :"collection", ], roles: [[ name :OCMRole, users: [[ name :OCMUserName, type :"user", ]], ]], ], ] ] def response = [:] try { def OCMPermissionOperationsService = adf.webServices.OCMPermissionOperationsService OCMPermissionOperationsService.requestHTTPHeaders = ['X-Requested-With': 'XMLHttpRequest', 'content-type': 'application/json'] response = OCMPermissionOperationsService.POST(payload) // Check the response to make sure we do not have a failure def hasFailedRoles = response?.operations?.share?.failedRoles if (hasFailedRoles == null) { println("OCM Collection Shared: " + OCMCollectionId + "(" + OCMUserName + ":" + OCMRole + ")") return true } else { println("Share OCM Collection Failed: " + response) return false } } catch (Exception e) { println("Share OCM Collection Error: " + e) return false }
- Clique em Salvar e Fechar.