Crea funzioni globali

Le funzioni globali vengono utilizzate per eseguire il wrapping della business logic intorno ai servizi Web in modo che possano essere utilizzate facilmente in altre posizioni.

OCMCreateRepositoryCollectionFunction

Per creare la funzione globale OCM Create Repository Collection che verrà utilizzata per accedere al servizio Web OCMCreateRepositoryCollectionService, effettuare le operazioni riportate di seguito.

  1. Scegliere Impostazione comune, quindi Funzioni globali dal menu di navigazione a sinistra.
  2. Nella pagina Funzioni globali, fare clic sull'icona Aggiungi una funzione globale.
  3. Nella pagina Crea funzione globale, completare i campi riportati di seguito.

    1. Nel campo Nome funzione specificare il nome della funzione come OCMCreateRepositoryCollectionFunction.
    2. Selezionare Stringa dal menu a discesa Restituzioni.
    3. Nel campo Descrizione immettere il testo "Crea un nuovo OCMCollectionName all'interno del OCMRepositoryId specificato e restituisce l'ID raccolta appena creato".
    4. Nella sezione Parametri, fare clic sull'icona Aggiungi parametro e aggiungere i campi riportati di seguito.
      Nome Type
      OCMRepositoryId Stringa
      OCMCollectionName Stringa
    5. Nel campo Modifica script incollare lo script seguente:
      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. Fare clic su Salva e chiudi.

OCMGetDocumentsByFolderIdFunction

Per creare la funzione globale OCM Ottieni documenti per ID cartella in una nuova pagina Crea funzione globale che verrà utilizzata per accedere al servizio Web OCMGetDocumentsByFolderIdService, completare i campi riportati di seguito.

Nota:

Questa funzione globale è obbligatoria solo se il business object Oracle Sales and Service dispone dell'opzione di risoluzione ed è stato configurato con l'integrazione dei documenti OCM. Per ulteriori informazioni sull'integrazione dei documenti, vedere Informazioni su come estendere i business object Oracle Sales and Service con la collaborazione sui documenti.


  1. Nel campo Nome funzione specificare il nome della funzione come OCMGetDocumentsByFolderIdFunction.
  2. Selezionare Elenco dal menu a discesa Restituzioni.
  3. Nel campo Descrizione immettere il testo "Restituisce un elenco di ID documento OCM basato sull'OCMFolderId specificato (incluse anche le cartelle figlio).".
  4. Nella sezione Parametri, fare clic sull'icona Aggiungi parametro.

    Nel campo Nome, specificare il nome come OCMFolderId e selezionare Stringa dal menu a discesa Tipo.

  5. Nel campo Modifica script incollare lo script seguente:
    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. Fare clic su Salva e chiudi.

OCMCopyDocumentsToRepositoryCollectionFunction

Per creare la funzione globale Copia documenti in raccolta repository OCM in una nuova pagina Crea funzione globale che verrà utilizzata per accedere al servizio Web OCMBulkOperationsService, completare i campi riportati di seguito.

Nota:

Questa funzione globale è obbligatoria solo se il business object Oracle Sales and Service dispone dell'opzione di risoluzione ed è stato configurato con l'integrazione dei documenti OCM. Per ulteriori informazioni sull'integrazione dei documenti, vedere Informazioni su come estendere i business object Oracle Sales and Service con la collaborazione sui documenti.


  1. Nel campo Nome funzione specificare il nome della funzione come OCMCopyDocumentsToRepositoryCollectionFunction.
  2. Selezionare Booleano dal menu a discesa Restituzioni.
  3. Nel campo Descrizione immettere il testo "Copia l'elenco OCM specificato di OCMDocumentIds nel OCMCollectionId specificato all'interno del OCMRepositoryId specificato".
  4. Nella sezione Parametri, fare clic sull'icona Aggiungi parametro e aggiungere i campi riportati di seguito.
    Nome Type
    OCMRepositoryId Stringa
    OCMCollectionId Stringa
    OCMDocumentIds Elenco
  5. Nel campo Modifica script incollare lo script seguente:
    // 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 
    }

    Nota:

    Il valore Tipo nello script precedente deve corrispondere al nome del tipo di asset creato in precedenza.
  6. Fare clic su Salva e chiudi.

OCMIsRepositoryCollectionSharedAsContributorFunction

Per creare la funzione globale OCM Is Repository Collection Shared as Contributor in una nuova pagina Crea funzione globale che verrà utilizzata per accedere al servizio Web OCMRepositoryCollectionPermissionsService, completare i campi riportati di seguito.



  1. Nel campo Nome funzione specificare il nome della funzione come OCMIsRepositoryCollectionSharedAsContributorFunction.
  2. Selezionare Booleano dal menu a discesa Restituzioni.
  3. Nel campo Descrizione immettere il testo "Restituisce vero se il valore OCMUserName specificato è stato condiviso con il valore OCMCollectionId specificato all'interno del valore OCMRespositoryId specificato con almeno un ruolo Collaboratore".
  4. Nella sezione Parametri, fare clic sull'icona Aggiungi parametro e aggiungere i campi riportati di seguito.
    Nome Type
    OCMRepositoryId Stringa
    OCMCollectionId Stringa
    OCMUserName Stringa
  5. Nel campo Modifica script incollare lo script seguente:
    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. Fare clic su Salva e chiudi.

OCMShareCollectionFunction

Per creare la funzione globale Raccolta condivisione OCM in una nuova pagina Crea funzione globale che verrà utilizzata per accedere al servizio Web OCMPermissionOperationsService, completare i campi riportati di seguito.



  1. Nel campo Nome funzione specificare il nome della funzione come OCMShareCollectionFunction.
  2. Selezionare Booleano dal menu a discesa Restituzioni.
  3. Nel campo Descrizione immettere il testo "Condivide il valore OCMCollectionId specificato in OCM con il valore OCMUserName e OCMRole specificato".
  4. Nella sezione Parametri, fare clic sull'icona Aggiungi parametro e aggiungere i campi riportati di seguito.
    Nome Type
    OCMCollectionId Stringa
    OCMUserName Stringa
    OCMRole Stringa
  5. Nel campo Modifica script incollare lo script seguente:
    // 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. Fare clic su Salva e chiudi.