Spezifische Geschäftsobjektintegration konfigurieren
In diesem letzten Abschnitt führen Sie die erforderlichen Schritte aus, um die UI des eingebetteten OCM-Asset-Repositorys in einem bestimmten Oracle Sales and Service-Anwendungsgeschäftsobjekt hinzuzufügen.
In diesem Abschnitt werden wir wieder Serviceanfragen verwenden, aber alle Geschäftsobjekte können mit diesen Schritten wie Verkaufsprojekte, Kampagnen, Veranstaltungen usw. aktualisiert werden. Dies umfasst benutzerdefinierte Felder in der Serviceanfrage zum Speichern der OCM-Basisasset-Repository-ID sowie der eindeutigen OCM-Collection-ID. Mit diesen Schritten wird auch eine Registerkarte "Anlagen" zur Seite mit den Serviceanfragedetails hinzugefügt, auf der die UI des eingebetteten OCM-Asset-Repositorys über ein Mashup mit der spezifischen OCM-Collection-ID für die Serviceanfrage bereitgestellt wird. Nachdem eine Serviceanfrage gelöst wurde, werden auch zugehörige OCM-Dokumente in die OCM-Asset-Repository-Sammlung kopiert.
Benutzerdefinierte Felder erstellen
Ein benutzerdefiniertes Feld ist spezifisch für das Geschäftsobjekt, in dem es erstellt wird. Diese Variablen sind für das Geschäftsobjekt zugänglich und können für jede Instanz der erstellten Geschäftsobjekte eindeutig sein.
OCM-Collection-ID
Ein benutzerdefiniertes Feld ist spezifisch für das Geschäftsobjekt, in dem es erstellt wird. Diese Variablen sind für das Geschäftsobjekt zugänglich und können für jede Instanz der erstellten Geschäftsobjekte eindeutig sein.
- Um den Application Composer erneut einzugeben, klicken Sie in der oberen linken Ecke der Seite auf Extras, und wählen Sie Application Composer aus der Dropdown-Liste aus.
- Wählen Sie Objekte, Standardobjekte, Serviceanfrage, Felder im linken Navigationsmenü.
- Wählen Sie auf der Seite "Felder" die Registerkarte Benutzerdefiniert aus, und klicken Sie auf das Symbol Benutzerdefiniertes Feld erstellen.
- Wählen Sie im Dialogfeld "Feldtyp auswählen" die Option Text aus, und klicken Sie auf OK.
- Füllen Sie auf der Seite "Textfeld erstellen" die folgenden Felder aus:
- Geben Sie im Feld Anzeigelabel den Namen OCMCollectionId an. Das Feld Name wird basierend auf dem im Feld Anzeigelabel angegebenen Wert automatisch ausgefüllt.
- Geben Sie im Feld Beschreibung den Text "Benutzerdefinierte Variable für das spezifische Serviceanfrageobjekt zum Speichern der eindeutigen Asset-Repository-Collection-ID, die für die OCM Asset Repository Records Management-Integration verwendet wird" ein.
- Klicken Sie auf Save und Close.
OCM-Basis-Repository-ID
- Geben Sie im Feld Anzeigelabel den Namen OCMBaseRepositoryId an. Das Feld Name wird basierend auf dem im Feld Anzeigelabel angegebenen Wert automatisch ausgefüllt.
- Geben Sie im Feld Beschreibung den Text "Benutzerdefinierte Variable, die die OCM-Basis-Repository-ID enthält, die als Speicherort verwendet wird, an dem die Collections für die Integration von OCM Asset Repository Records Management erstellt werden."
- Heben Sie im Abschnitt "Constraints" die Auswahl von Aktualisierbar auf.
- Geben Sie im Feld Fester Wert den Wert der oben gespeicherten OCM-Basisasset-Repository-ID ein (Beispiel: 12424F28875F405FB2144A6FD4DD9FC).
- Klicken Sie auf Speichern und schließen.
Geschäftsobjekt erweitern
Geschäftsobjekte können mit einem Mashup (wie dem oben erstellten) erweitert werden, um eine externe Anwendung wie OCM in der Geschäftsobjekt-UI bereitzustellen.
- Wählen Sie Objekte, Standardobjekte, Serviceanfrage, Seiten aus dem linken Navigationsmenü.
- Klicken Sie auf der Seite "Serviceanfrage: Seiten" im Abschnitt "Detailseitenlayouts" auf das Symbol Detailseitenlayout duplizieren.
Hinweis:
Wenn bereits eine benutzerdefinierte Seite erstellt wurde, kann diese Seite für die OCM-Anlagenintegration verwendet werden, anstatt eine neue Seite zu erstellen, und Schritt 3 kann übersprungen werden. - Füllen Sie im Dialogfeld "Layout duplizieren" die folgenden Felder aus:
- Geben Sie im Feld Neuer Layoutname den Namen OCMEmbeddedUIIntegration an.
- Wählen Sie im Feld Quelllayout im Dropdown-Menü die Option Standardlayout aus.
- Klicken Sie auf Speichern und bearbeiten.
- Wählen Sie auf der Seite "Detaillayout" unten im linken Navigationsmenü im Abschnitt "Unterregisterkarten" das Symbol Hinzufügen, um die eingebettete OCM-UI hinzuzufügen.
- Wählen Sie die Option Mashupinhalt aus. Klicken Sie auf Weiter.
- Wählen Sie auf der nächsten Seite die zuvor erstellte Option OCMEmbeddedAssetsUIMashup aus, und klicken Sie auf Einfügen.
- Füllen Sie auf der nächsten Seite die folgenden Felder aus:
- Geben Sie im Feld Anzeigelabel Anlagen ein.
- Klicken Sie für das Anzeigesymbol auf Symbol ändern, wenn Sie das Standardsymbol ändern möchten, das in der Serviceanfrage-UI als Registerkarte angezeigt wird.
- Fügen Sie im Feld Skript bearbeiten das folgende Skript ein:
println("Service Request Assets Tab Selected: " + SrNumber) // Get the current user security context def secCtx = adf.context.getSecurityContext() // Check to see if the OCM user has been shared to this Repository Collection // NOTE: The user must already be manually shared as at least a contributor to the Base Repository either directly or indirectly through a group for this integration to work boolean isCollectionShared = adf.util.OCMIsRepositoryCollectionSharedAsContributorFunction(OCMBaseRepositoryId_c, OCMCollectionId_c, secCtx.getUserName()) if (!isCollectionShared) { // If not then share the current user as a Contributor to the OCM Collection associated to this item adf.util.OCMShareCollectionFunction(OCMCollectionId_c, secCtx.getUserName(), "contributor") } println("Loading OCM Embedded Assets UI") return '?options={"assetsView":{"select":"single","layout":"grid","sort":"relevance","header":{"add":{"upload":true,"documents":true},"collections":true},"filter":{"bar":{"capsules":false},"repositories":["' + OCMBaseRepositoryId_c + '"],"collections":["' + OCMCollectionId_c + '"]},"filterValue":{"repositoryId":"' + OCMBaseRepositoryId_c + '","collectionId":"' + OCMCollectionId_c + '","includeChildCategories":false},"sidebar":{"categories":true,"conversation":true,"properties":true},"actions":{"open":true,"download":true,"uploadNewVersion":true,"delete":true},"card":{"status":false}},"assetViewer":{"header":{"annotate":true,"fullScreen":true,"close":true},"actions":{"download":true,"uploadNewVersion":true,"makeCurrent":true},"sidebar":{"categories":true,"conversation":true,"properties":true,"renditions":true}},"dialogs":{"addToRepository":{"sidebar":{"categories":true},"default":{"collections":["' + OCMCollectionId_c + '"]}}}}'
Hinweis:
Dieses Skript weist jedem Benutzer, der auf die bestimmte Asset-Repository-Collection zugreift, automatisch die Rolle des Mitwirkenden zu. Dies könnte möglicherweise weiter verfeinert werden, z.B. um dem Verantwortlichen für die Serviceanfrage die Managerrolle zu erteilen, während anderen Benutzern die Rolle des Mitwirkenden erteilt wird. - Klicken Sie auf die Schaltfläche Next (Weiter).
- Klicken Sie auf Speichern und schließen.
Ereignistrigger hinzufügen
Ein Ereignis-Trigger prüft, ob ein Ereignis vorliegt. Wenn dieses Ereignis eintritt, führt er den mit dem Trigger verknüpften Code aus.
OCMCreateCollectionTrigger
So fügen Sie einen Serverskriptobjekt-Trigger hinzu, um die zugehörige OCM-Asset-Repository-Collection zu erstellen, wenn die Serviceanfrage erstellt wird:
- Wählen Sie Objekte, Standardobjekte, Serviceanfrage, Serverskripte im linken Navigationsbereich.
- Wählen Sie auf der Seite "Serviceanfrage für Serverskripte" die Registerkarte Trigger.
- Klicken Sie im Abschnitt "Objekt-Trigger" auf Neuen Trigger hinzufügen.
- Füllen Sie auf der Seite "Objekt-Trigger erstellen" die folgenden Felder aus:
- Wählen Sie im Dropdown-Menü Trigger die Option Vor Einfügen in Datenbank aus.
- Geben Sie im Feld Triggername den Namen des Triggers als OCMCreateCollectionTrigger an.
- Geben Sie im Feld Beschreibung den Text "Erstellen Sie die OCM-Asset-Repository-Collection, die der erstellten ServiceRequest zugeordnet ist." ein.
- Fügen Sie im Feld Skript bearbeiten das folgende Skript ein:
println("ServiceRequest.BeforeInsert(OCMCreateCollectionTrigger): " + SrNumber); // Create a new Collection within the specified Asset Repository Id based off the item SrNumber def OCMCollectionId = adf.util.OCMCreateRepositoryCollectionFunction(OCMBaseRepositoryId_c, SrNumber); setAttribute("OCMCollectionId_c", OCMCollectionId);
- Klicken Sie auf Speichern und schließen.
OCMCopyDocumentsToCollectionTrigger
Um einen Serverskriptobjekt-Trigger auf einer neuen Seite "Objekt-Trigger erstellen" hinzuzufügen, um die Dokumente in einem zugehörigen OCM-Ordner und dessen untergeordneten Ordnern bei der Auflösung der Serviceanfrage in die OCM-Repository-Collection zu kopieren, füllen Sie die folgenden Felder aus:
Hinweis:
Dieser Trigger 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.- Wählen Sie im Dropdown-Menü Trigger die Option Vor Aktualisierung in Datenbank aus.
- Geben Sie im Feld Triggername den Namen des Triggers als OCMCopyDocumentsToCollectionTrigger an.
- Geben Sie im Feld Beschreibung den Text "Wenn als gelöst markiert, kopieren Sie die Dokumente im zugehörigen OCM-Ordner und den zugehörigen untergeordneten Ordnern in die zugehörige Sammlung für die Datensatzverwaltung." ein.
- Fügen Sie im Feld Skript bearbeiten das folgende Skript ein:
// If the status has been changed then copy all the associated documents to the associated repository collection if (isAttributeChanged('StatusCd')) { println("ServiceRequest.BeforeUpdate(OCMCopyDocumentsToCollectionTrigger): " + SrNumber + ":" + StatusCd + "(" + OCMFolderId_c + ":" + OCMCollectionId_c + ")") if (OCMFolderId_c == null) { println("WARNING: Associated OCM Folder for this Service Request (" + SrNumber + ") does not exist.") return false } if (OCMCollectionId_c == null) { println("WARNING: Unable to copy OCM Documents as there is no associated OCM Collection for this Service Request(" + SrNumber + ").") return false } // Get the Documents from the associated OCM Folder that need to be copied to the Collection def documents = (java.util.List)adf.util.OCMGetDocumentsByFolderIdFunction(OCMFolderId_c) if (documents.size() > 0) { // Copy the documents adf.util.OCMCopyDocumentsToRepositoryCollectionFunction(OCMBaseRepositoryId_c, OCMCollectionId_c, documents) } return true }
- Klicken Sie auf Speichern und schließen.