Globale Funktionen erstellen

Globale Funktionen werden verwendet, um Geschäftslogik um die Webservices herum zu wrappen, damit sie einfach an anderen Orten verwendet werden können.

OCMCreateRepositoryCollectionFunction

So erstellen Sie die globale OCM-Funktion "Repository-Collection erstellen", die für den Zugriff auf den Webservice OCMCreateRepositoryCollectionService verwendet wird:

  1. Wählen Sie im linken Navigationsmenü die Optionen Allgemeines Setup und dann Globale Funktionen aus.
  2. Klicken Sie auf der Seite "Globale Funktionen" auf das Symbol Globale Funktion hinzufügen.
  3. Füllen Sie auf der Seite "Globale Funktion erstellen" die folgenden Felder aus:

    1. Geben Sie im Feld Funktionsname den Namen der Funktion als OCMCreateRepositoryCollectionFunction an.
    2. Wählen Sie Zeichenfolge aus dem Dropdown-Menü Rücksendungen aus.
    3. Geben Sie im Feld Beschreibung den Text "Erstellt eine neue OCMCollectionName innerhalb des angegebenen OCMRepositoryId und gibt die neu erstellte Collection-ID zurück."
    4. Klicken Sie im Abschnitt "Parameter" auf das Symbol Parameter hinzufügen, und fügen Sie die folgenden Felder hinzu:
      Name Type
      OCMRepositoryId Zeichenfolge
      OCMCollectionName Zeichenfolge
    5. Fügen Sie im Feld Skript bearbeiten das folgende Skript ein:
      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. Klicken Sie auf Speichern und schließen.

OCMGetDocumentsByFolderIdFunction

Um die globale Funktion "Dokumente nach Ordner-ID abrufen" in einer neuen Seite "Globale Funktion erstellen" zu erstellen, die für den Zugriff auf den Webservice OCMGetDocumentsByFolderIdService verwendet wird, füllen Sie die folgenden Felder aus:

Hinweis:

Diese globale Funktion ist nur erforderlich, wenn das Oracle Sales and Service-Geschäftsobjekt die Auflösungsoption aufweist und mit der OCM-Dokumentintegration konfiguriert wurde. Weitere Informationen zur Dokumentintegration finden Sie unter Informationen zur Erweiterung von Oracle Sales and Service-Geschäftsobjekten mit Dokumentzusammenarbeit.


  1. Geben Sie im Feld Funktionsname den Namen der Funktion als OCMGetDocumentsByFolderIdFunction an.
  2. Wählen Sie Liste aus dem Dropdown-Menü Rücksendungen aus.
  3. Geben Sie im Feld Beschreibung den Text "Gibt eine Liste der OCM-Dokument-IDs basierend auf dem angegebenen OCMFolderId zurück (einschließlich untergeordneter Ordner)."
  4. Klicken Sie im Abschnitt "Parameter" auf das Symbol Parameter hinzufügen.

    Geben Sie im Feld Name den Namen OCMFolderId an, und wählen Sie im Dropdown-Menü Typ die Option Zeichenfolge aus.

  5. Fügen Sie im Feld Skript bearbeiten das folgende Skript ein:
    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. Klicken Sie auf Speichern und schließen.

OCMCopyDocumentsToRepositoryCollectionFunction

Um die globale Funktion "Dokumente in Repository-Collection kopieren" auf einer neuen Seite "Globale Funktion erstellen" zu erstellen, die für den Zugriff auf den Webservice OCMBulkOperationsService verwendet wird, füllen Sie die folgenden Felder aus:

Hinweis:

Diese globale Funktion ist nur erforderlich, wenn das Oracle Sales and Service-Geschäftsobjekt die Auflösungsoption aufweist und mit der OCM-Dokumentintegration konfiguriert wurde. Weitere Informationen zur Dokumentintegration finden Sie unter Informationen zur Erweiterung von Oracle Sales and Service-Geschäftsobjekten mit Dokumentzusammenarbeit.


  1. Geben Sie im Feld Funktionsname den Namen der Funktion als OCMCopyDocumentsToRepositoryCollectionFunction an.
  2. Wählen Sie Boolesch aus dem Dropdown-Menü Rücksendungen aus.
  3. Geben Sie im Feld Beschreibung den Text "Kopiert die angegebene OCM-Liste von OCMDocumentIds in die angegebene OCMCollectionId innerhalb der angegebenen OCMRepositoryId." ein.
  4. Klicken Sie im Abschnitt "Parameter" auf das Symbol Parameter hinzufügen, und fügen Sie die folgenden Felder hinzu:
    Name Type
    OCMRepositoryId Zeichenfolge
    OCMCollectionId Zeichenfolge
    OCMDocumentIds Liste
  5. Fügen Sie im Feld Skript bearbeiten das folgende Skript ein:
    // 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 
    }

    Hinweis:

    Der Wert Typ im obigen Skript muss mit dem Namen des zuvor erstellten Assettyps übereinstimmen.
  6. Klicken Sie auf Speichern und schließen.

OCMIsRepositoryCollectionSharedAsContributorFunction

Um die globale Funktion "OCM Ist Repository-Collection als Mitwirkender" auf einer neuen Seite "Globale Funktion erstellen" zu erstellen, die für den Zugriff auf den Webservice OCMRepositoryCollectionPermissionsService verwendet wird, füllen Sie die folgenden Felder aus:



  1. Geben Sie im Feld Funktionsname den Namen der Funktion als OCMIsRepositoryCollectionSharedAsContributorFunction an.
  2. Wählen Sie Boolesch aus dem Dropdown-Menü Rücksendungen aus.
  3. Geben Sie im Feld Beschreibung den Text "Gibt True zurück, wenn der angegebene OCMUserName mit dem angegebenen OCMCollectionId innerhalb des angegebenen OCMRespositoryId mit mindestens einer Rolle "Mitwirkender" geteilt wurde." ein.
  4. Klicken Sie im Abschnitt "Parameter" auf das Symbol Parameter hinzufügen, und fügen Sie die folgenden Felder hinzu:
    Name Type
    OCMRepositoryId Zeichenfolge
    OCMCollectionId Zeichenfolge
    OCMUserName Zeichenfolge
  5. Fügen Sie im Feld Skript bearbeiten das folgende Skript ein:
    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. Klicken Sie auf Speichern und schließen.

OCMShareCollectionFunction

Um die globale Funktion "OCM Share Collection" auf einer neuen Seite "Globale Funktion erstellen" zu erstellen, die für den Zugriff auf den Webservice OCMPermissionOperationsService verwendet wird, füllen Sie die folgenden Felder aus:



  1. Geben Sie im Feld Funktionsname den Namen der Funktion als OCMShareCollectionFunction an.
  2. Wählen Sie Boolesch aus dem Dropdown-Menü Rücksendungen aus.
  3. Geben Sie im Feld Beschreibung den Text "Freigeben der angegebenen OCMCollectionId in OCM mit den angegebenen Werten OCMUserName und OCMRole" ein.
  4. Klicken Sie im Abschnitt "Parameter" auf das Symbol Parameter hinzufügen, und fügen Sie die folgenden Felder hinzu:
    Name Type
    OCMCollectionId Zeichenfolge
    OCMUserName Zeichenfolge
    OCMRole Zeichenfolge
  5. Fügen Sie im Feld Skript bearbeiten das folgende Skript ein:
    // 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. Klicken Sie auf Speichern und schließen.