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:
- Wählen Sie im linken Navigationsmenü die Optionen Allgemeines Setup und dann Globale Funktionen aus.
- Klicken Sie auf der Seite "Globale Funktionen" auf das Symbol Globale Funktion hinzufügen.
- Füllen Sie auf der Seite "Globale Funktion erstellen" die folgenden Felder aus:
- Geben Sie im Feld Funktionsname den Namen der Funktion als OCMCreateRepositoryCollectionFunction an.
- Wählen Sie Zeichenfolge aus dem Dropdown-Menü Rücksendungen aus.
- Geben Sie im Feld Beschreibung den Text "Erstellt eine neue OCMCollectionName innerhalb des angegebenen OCMRepositoryId und gibt die neu erstellte Collection-ID zurück."
- 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 - 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) }
- 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.- Geben Sie im Feld Funktionsname den Namen der Funktion als OCMGetDocumentsByFolderIdFunction an.
- Wählen Sie Liste aus dem Dropdown-Menü Rücksendungen aus.
- 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)."
- 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.
- 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) }
- 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.- Geben Sie im Feld Funktionsname den Namen der Funktion als OCMCopyDocumentsToRepositoryCollectionFunction an.
- Wählen Sie Boolesch aus dem Dropdown-Menü Rücksendungen aus.
- Geben Sie im Feld Beschreibung den Text "Kopiert die angegebene OCM-Liste von OCMDocumentIds in die angegebene OCMCollectionId innerhalb der angegebenen OCMRepositoryId." ein.
- 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 - 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. - 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:
- Geben Sie im Feld Funktionsname den Namen der Funktion als OCMIsRepositoryCollectionSharedAsContributorFunction an.
- Wählen Sie Boolesch aus dem Dropdown-Menü Rücksendungen aus.
- 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.
- 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 - 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 }
- 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:
- Geben Sie im Feld Funktionsname den Namen der Funktion als OCMShareCollectionFunction an.
- Wählen Sie Boolesch aus dem Dropdown-Menü Rücksendungen aus.
- Geben Sie im Feld Beschreibung den Text "Freigeben der angegebenen OCMCollectionId in OCM mit den angegebenen Werten OCMUserName und OCMRole" ein.
- 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 - 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 }
- Klicken Sie auf Speichern und schließen.