# Integration in vorhandene Lösungen

Anpassungsanleitungen für DOCUMENTS Systeme mit bereits vorhandenen Lösungen.

# otris Contract

Anleitung zur Integration von DEXPRO Invoice (ab 1.0) in ein DOCUMENTS System mit bestehender otris Contract Lösung.

### Version 4.2

Der Installationsanleitung von DEXPRO Invoice ist Folge zu leisten.

Im Folgenden werden die Unterschiede im Installationsverlauf beschrieben.

#### XML-Importe / globale Eigenschaften

Die Documents Eigenschaften ("*01 Optional - Documents Settings.xml"*) dürfen nicht per XML-Import importiert werden.  
Die folgenden globalen Eigenschaften müssen hinzugefügt werden:

[![image-1606846654737.png](https://docs.squeeze.one/uploads/images/gallery/2020-12/scaled-1680-/image-1606846654737.png)](https://docs.squeeze.one/uploads/images/gallery/2020-12/image-1606846654737.png)

Bei den Mappentypen muss der Invoice Mappentyp einzeln importiert werden, da die Benutzer- und Benutzergruppen Mappentypen in contracts bereits vorhanden sind! Der Invoice Mappentyp wird mit ausgeliefert.

Nach dem Import der Administrations-Outbars ("*7 b) Outbar Administration + SubOutbars + Folders.xml")* muss über den DOCUMENTS Manager eine neue Outbar "Administration\_Contract" unter der Ober-Outbar "Administration\_Main" eingerichtet werden. Auf der neu erstellten Outbar muss noch die Eigenschaft `renderRootNode=true` gesetzt werden.  
Auch der Icon sollte auf `entypo:cog;color:#1A8199` gesetzt werden.  
Der öffentliche Ordner "otrAdministration" muss an der neu erstellten Outbar hinterlegt werden.  
Schlussendlich muss bei der Outbar "Administration" der Haken bei "Freigegeben" entfernt werden.

[![image-1606846092278.png](https://docs.squeeze.one/uploads/images/gallery/2020-12/scaled-1680-/image-1606846092278.png)](https://docs.squeeze.one/uploads/images/gallery/2020-12/image-1606846092278.png)

In den Documents Einstellungen müssen noch der Standard- und Job-Benutzer hinterlegt werden.

- Standard-Benutzer: standard
- Job-Benutzer: job

#### DOCUMENTS Benutzer

Folgende Benutzer müssen noch angepasst werden, damit die Funktionstüchtigkeit erhalten bleibt.

##### Redakteur (lcmAdmin)

Der Redakteur muss zusätzlich Mitglied der folgenden Gruppen sein:

- Invoice
- BusinessManagement (nicht zwingend notwendig)
- Validation
- TechAccessProfile
- WorkflowRulesError
- WorkflowError
- Administration

##### Job-Benutzer (job)

Der Job-Benutzer muss in allen Contracts Gruppen des Redakteurs (lcmAdmin) Mitglied sein.

#### Skripte

Das Script zur Erweiterung der Anzeige der Einstellungen `DEXPRO_GadgetStart_AddtionSettings` kann nicht als Eigenschaft hinterlegt werden, da das äquivalente contract Script `lcmAdditionalSettingsScript` verschlüsselt ist.  
Daher müssen die `entries` aus dem DEXPRO Script im contract Callback `lcmAdditionalSettings_CALLBACK_Contract` hinzugefügt werden.

```JavaScript
/**
 * @file Öffentliche Callbacks für die Einträge im Settings-Menü.
 * @copyright 2018-2020 otris Software AG
 **/

/**
 * Öffentliche Callbacks für die Einträge im Settings-Menü.
 * @namespace
 */
var lcmAdditionalSettings_CALLBACK_Contract = (function() {

	"use strict";

	/**
	 * Funktion zum Hinzufügen von weiteren Einträgen zum des Menüs
	 * für die Benutzereinstellungen.
	 * @memberof lcmAdditionalSettings_CALLBACK_Contract
	 * @param {Array.<object>} entries - Mapping-Objekt
	 * @throws {Error} wenn bei der Ausführung des Callbacks ein Fehler auftritt
	 * @example
	 * // Objekt mit id-Feld und Referenzregel für den Mappentyp 'filetypeName'
	 * function addEntries(entries) {
	 *   entries.push({
	 *     name: "Gadget_SampleSettings",
	 *     label: context.getFromSystemTable("Gadget_SampleSettings"),
	 *     action: {
	 *       gadgetDialog: true,
	 *       gadgetScript: "Gadget_SampleSettings",
	 *       gadgetAction: "gadgetSampleSettings"
	 *     }
	 *   });
	 * }
	 */
	function addEntries(entries) {
		// to be implemented
		entries.push({
			name: "Gadget_DEXPRO_UserSettings",
			label: context.getFromSystemTable("ChangeUserSettings"),
			action: {
				gadgetDialog: true,
				gadgetScript: "Gadget_DEXPRO_UserSettings",
				gadgetAction: "openUserSettings"
			}
		});

		entries.push({
			name: "Gadget_DEXPRO_GrantAccessRights",
			label: context.getFromSystemTable("GrantAccessRights"),
			action: {
				gadgetDialog: false,
				gadgetScript: "Gadget_DEXPRO_GrantAccessRights",
				gadgetAction: "grantAccessRights"
			}
		});

		return JSON.stringify(entries);
	}

	// Veröffentlichung von Funktionen
	return {
		addEntries: addEntries
	};
})();

if (typeof module !== "undefined") {
	module.exports = lcmAdditionalSettings_CALLBACK_Contract;
}
```