Créer des fonctions globales
Les fonctions globales sont utilisées pour encapsuler la logique métier autour des services Web afin de pouvoir les utiliser facilement dans d'autres emplacements.
OCMCreateRepositoryCollectionFunction
Pour créer la fonction globale de création de collecte de référentiel OCM qui sera utilisée pour accéder au service Web OCMCreateRepositoryCollectionService :
- Sélectionnez Configuration commune, puis Fonctions globales dans le menu de navigation de gauche.
- Sur la page Fonctions globales, cliquez sur l'icône Ajouter une fonction globale.
- Dans la page Create Global Function, renseignez les champs suivants :
- Dans le champ Nom de fonction, indiquez le nom de la fonction en tant que OCMCreateRepositoryCollectionFunction.
- Sélectionnez Chaîne dans le menu déroulant Retours.
- Dans le champ Description, entrez le texte "Creates a new OCMCollectionName within the specified OCMRepositoryId and return the new created Collection Id".
- Dans la section Paramètres, cliquez sur l'icône Ajouter un paramètre et ajoutez les champs suivants :
Nom Type OCMRepositoryId Chaîne OCMCollectionName Chaîne - Dans le champ Edit Script, collez le script suivant :
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) }
- Cliquez sur Enregistrer et fermer.
OCMGetDocumentsByFolderIdFunction
Pour créer la fonction globale Obtenir les documents par ID de dossier OCM dans une nouvelle page Créer une fonction globale qui sera utilisée pour accéder au service Web OCMGetDocumentsByFolderIdService, renseignez les champs suivants :
Remarque :
Cette fonction globale n'est requise que si l'objet métier Oracle Sales and Service a l'option de résolution et a été configuré avec l'intégration de document OCM. Pour plus d'informations sur l'intégration de documents, reportez-vous à En savoir plus sur l'extension des objets métier Oracle Sales and Service avec la collaboration sur les documents.- Dans le champ Nom de fonction, indiquez le nom de la fonction en tant que OCMGetDocumentsByFolderIdFunction.
- Sélectionnez Liste dans le menu déroulant Retours.
- Dans le champ Description, entrez le texte "Renvoie une liste des ID de document OCM en fonction de la valeur OCMFolderId spécifiée (y compris les dossiers enfant).".
- Dans la section Paramètres, cliquez sur l'icône Ajouter un paramètre.
Dans le champ Nom, indiquez le nom OCMFolderId et sélectionnez String dans le menu déroulant Type.
- Dans le champ Edit Script, collez le script suivant :
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) }
- Cliquez sur Enregistrer et fermer.
OCMCopyDocumentsToRepositoryCollectionFunction
Pour créer la fonction globale Copier des documents dans une collection de référentiel OCM dans une nouvelle page Créer une fonction globale qui sera utilisée pour accéder au service Web OCMBulkOperationsService, renseignez les champs suivants :
Remarque :
Cette fonction globale n'est requise que si l'objet métier Oracle Sales and Service a l'option de résolution et a été configuré avec l'intégration de document OCM. Pour plus d'informations sur l'intégration de documents, reportez-vous à En savoir plus sur l'extension des objets métier Oracle Sales and Service avec la collaboration sur les documents.- Dans le champ Nom de fonction, indiquez le nom de la fonction en tant que OCMCopyDocumentsToRepositoryCollectionFunction.
- Sélectionnez Booléen dans le menu déroulant Retours.
- Dans le champ Description, entrez le texte "Copie la liste spécifiée OCM de OCMDocumentIds dans le fichier OCMCollectionId indiqué dans le fichier OCMRepositoryId indiqué".
- Dans la section Paramètres, cliquez sur l'icône Ajouter un paramètre et ajoutez les champs suivants :
Nom Type OCMRepositoryId Chaîne OCMCollectionId Chaîne OCMDocumentIds Liste - Dans le champ Edit Script, collez le script suivant :
// 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 }
Remarque :
La valeur Type du script ci-dessus doit correspondre au nom du type de ressource que vous avez créé précédemment. - Cliquez sur Enregistrer et fermer.
OCMIsRepositoryCollectionSharedAsContributorFunction
Pour créer la fonction globale OCM Is Repository Collection Shared As Contributor dans une nouvelle page Créer une fonction globale qui sera utilisée pour accéder au service Web OCMRepositoryCollectionPermissionsService, renseignez les champs suivants :
- Dans le champ Nom de fonction, indiquez le nom de la fonction en tant que OCMIsRepositoryCollectionSharedAsContributorFunction.
- Sélectionnez Booléen dans le menu déroulant Retours.
- Dans le champ Description, entrez le texte "Renvoie la valeur True si l'élément OCMUserName indiqué a été partagé avec l'élément OCMCollectionId indiqué dans l'élément OCMRespositoryId indiqué avec au moins un rôle Contributeur".
- Dans la section Paramètres, cliquez sur l'icône Ajouter un paramètre et ajoutez les champs suivants :
Nom Type OCMRepositoryId Chaîne OCMCollectionId Chaîne OCMUserName Chaîne - Dans le champ Edit Script, collez le script suivant :
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 }
- Cliquez sur Enregistrer et fermer.
OCMShareCollectionFunction
Pour créer la fonction globale OCM Share Collection dans une nouvelle page Créer une fonction globale qui sera utilisée pour accéder au service Web OCMPermissionOperationsService, renseignez les champs suivants :
- Dans le champ Nom de fonction, indiquez le nom de la fonction en tant que OCMShareCollectionFunction.
- Sélectionnez Booléen dans le menu déroulant Retours.
- Dans le champ Description, entrez le texte "Shares the specified OCMCollectionId in OCM with the OCMUserName and OCMRole specified".
- Dans la section Paramètres, cliquez sur l'icône Ajouter un paramètre et ajoutez les champs suivants :
Nom Type OCMCollectionId Chaîne OCMUserName Chaîne OCMRole Chaîne - Dans le champ Edit Script, collez le script suivant :
// 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 }
- Cliquez sur Enregistrer et fermer.