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:

  1. Escolha Configuração Comum e Funções Globais no menu de navegação esquerdo.
  2. Na página Funções Globais, clique no ícone Adicionar uma Função Global.
  3. Na página Criar Função Global, preencha os seguintes campos:

    1. No campo Nome da Função, especifique o nome da função como OCMCreateRepositoryCollectionFunction.
    2. Selecione String no menu drop-down Retorna.
    3. No campo Descrição, informe o texto "Cria um novo OCMCollectionName dentro do OCMRepositoryId especificado e retorna o ID de Coleta recém-criado".
    4. Na seção Parâmetros, clique no ícone Adicionar Parâmetro e adicione os seguintes campos:
      Nome Tipo
      OCMRepositoryId String
      OCMCollectionName String
    5. 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)
      }
    6. 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.


  1. No campo Nome da Função, especifique o nome da função como OCMGetDocumentsByFolderIdFunction.
  2. Selecione Lista no menu suspenso Retorna.
  3. 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).".
  4. 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.

  5. 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)
    }
    
  6. 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.


  1. No campo Nome da Função, especifique o nome da função como OCMCopyDocumentsToRepositoryCollectionFunction.
  2. Selecione Booliano no menu drop-down Retorna.
  3. No campo Descrição, informe o texto "Copia a lista especificada do OCM de OCMDocumentIds para o OCMCollectionId especificado dentro do OCMRepositoryId especificado".
  4. Na seção Parâmetros, clique no ícone Adicionar Parâmetro e adicione os seguintes campos:
    Nome Tipo
    OCMRepositoryId String
    OCMCollectionId String
    OCMDocumentIds Lista
  5. 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.
  6. 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:



  1. No campo Nome da Função, especifique o nome da função como OCMIsRepositoryCollectionSharedAsContributorFunction.
  2. Selecione Booliano no menu drop-down Retorna.
  3. 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".
  4. Na seção Parâmetros, clique no ícone Adicionar Parâmetro e adicione os seguintes campos:
    Nome Tipo
    OCMRepositoryId String
    OCMCollectionId String
    OCMUserName String
  5. 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
    }
  6. 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:



  1. No campo Nome da Função, especifique o nome da função como OCMShareCollectionFunction.
  2. Selecione Booliano no menu drop-down Retorna.
  3. No campo Descrição, digite o texto "Compartilha o OCMCollectionId especificado no OCM com o OCMUserName e o OCMRole especificados.".
  4. Na seção Parâmetros, clique no ícone Adicionar Parâmetro e adicione os seguintes campos:
    Nome Tipo
    OCMCollectionId String
    OCMUserName String
    OCMRole String
  5. 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 
    }
    
  6. Clique em Salvar e Fechar.