de:cobi.wms:berechtigungsverwaltung
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
de:cobi.wms:berechtigungsverwaltung [2025/10/21 14:55] – Translation page created thuth | de:cobi.wms:berechtigungsverwaltung [2025/10/22 09:40] (current) – [Lizenzen importieren] thuth | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Berechtigungsverwaltung | + | ===== Berechtigungsverwaltung ===== |
+ | |||
+ | |||
+ | Die COBI.wms Management-Datenbank kann in **On-Premises- oder Private-Cloud-Umgebungen** installiert werden, in denen Sie direkten Zugriff auf den Datenbankserver haben und dort eigene Datenbanken erstellen können. | ||
+ | Die Management-Datenbank ermöglicht es Ihnen, zentral Verbindungen zu SAP-Business-One-Datenbanken, | ||
+ | |||
+ | ===== Erstellen der Datenbank ===== | ||
+ | |||
+ | Wenn Sie MS SQL Server verwenden, führen Sie den Inhalt der folgenden Datei im SQL Server Management Studio aus: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Wenn Sie SAP HANA verwenden, führen Sie stattdessen Folgendes im **HANA Studio** aus: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Firmenverbindungen ===== | ||
+ | |||
+ | Sie müssen SAP-Business-One-Datenbankverbindungen definieren, indem Sie Datensätze in die Tabelle **companies** einfügen. | ||
+ | |||
+ | In der Regel müssen nur die folgenden Spalten ausgefüllt werden: | ||
+ | |||
+ | ^ Spalte | ||
+ | | CompanyID | ||
+ | | SQLDB | Text | Name der SAP-Business-One-Datenbank | | ||
+ | | APIType | ||
+ | | APIURL | ||
+ | | APIID | Text | Für SL: identisch mit SQLDB; für IF: Firmen-ID im IF-SLD | | ||
+ | | APIUsername | ||
+ | | APIPassword | ||
+ | |||
+ | **Tipp:** Sie können die Zeichenfolge **'' | ||
+ | |||
+ | **Tipp:** *(nur für Service Layer)* | ||
+ | Wenn Sie möchten, dass Lagerbenutzer sich mit individuellen Logins anmelden, können Sie die Felder '' | ||
+ | |||
+ | **Hinweis: | ||
+ | Wenn der '' | ||
+ | Dies wird jedoch **nicht empfohlen**, | ||
+ | Die Spalte '' | ||
+ | |||
+ | Weitere Informationen: | ||
+ | |||
+ | Beispiel für das Hinzufügen einer **Produktiv-** und einer **Testverbindung** in einer On-Premises-Umgebung mit unverschlüsselter Service-Layer-Kommunikation (kein SSL-Zertifikat erforderlich): | ||
+ | |||
+ | <code sql> | ||
+ | insert into companies (companyId, sqlDb, apiType, apiUrl, apiId, apiUsername, | ||
+ | ('01 - PROD', ' | ||
+ | |||
+ | insert into companies (companyId, sqlDb, apiType, apiUrl, apiId, apiUsername, | ||
+ | ('02 - TEST', ' | ||
+ | |||
+ | **Hinweis: | ||
+ | Die obigen Beispiele verwenden **'' | ||
+ | Dies bedeutet, dass die Kommunikation mit dem Service Layer **unverschlüsselt** erfolgt und die App den **Load Balancer überspringt**, | ||
+ | |||
+ | Wenn Sie **verschlüsselte Kommunikation** mit dem Service Layer wünschen oder **Performanceprobleme** durch das Umgehen des Load Balancers auftreten, müssen Sie sicherstellen, | ||
+ | |||
+ | ==== Optionale Spalten ==== | ||
+ | |||
+ | Die folgenden Spalten der Tabelle **companies** sollten in der Regel leer bleiben ('' | ||
+ | |||
+ | ^ Spalte | ||
+ | | DBType | ||
+ | | SQLHost | ||
+ | | SQLPort | ||
+ | | SQLUser | ||
+ | | SQLPass | ||
+ | | SQLDomain | ||
+ | | HANAProxyHost | ||
+ | | HANAProxyPort | ||
+ | | Profile | ||
+ | | PrintService | ||
+ | |||
+ | Die Spalten '' | ||
+ | Die Spalte '' | ||
+ | |||
+ | '' | ||
+ | '' | ||
+ | |||
+ | Die Spalte '' | ||
+ | |||
+ | Die Spalte '' | ||
+ | Wenn sie hier nicht gesetzt ist, muss sie direkt auf jedem Android-Gerät in den [[Print Settings]] der App hinterlegt werden. | ||
+ | Bei Verwendung des Standardports genügt die Angabe des Hostnamens oder der IP-Adresse. | ||
+ | Bei einem abweichenden Port geben Sie den Wert im Format '' | ||
+ | |||
+ | ===== Geräte und Benutzer ===== | ||
+ | |||
+ | ==== COBI.wms-Geräte ==== | ||
+ | |||
+ | Geräte registrieren sich automatisch, | ||
+ | |||
+ | Jedes Gerät erhält eine **numerische ID** beginnend bei 1. Diese ist im Login-Bildschirm der App unten rechts unterhalb des Login-Buttons sichtbar. | ||
+ | |||
+ | Ein Gerät kann über die Prozedur **'' | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec removeDevice 1; | ||
+ | |||
+ | -- SAP HANA | ||
+ | call removeDevice(1); | ||
+ | |||
+ | ==== COBI.wms-Benutzer ==== | ||
+ | |||
+ | Dieser Abschnitt ist **optional** – die App kann auch **ohne definierte COBI.wms-Benutzer** in der Management-Datenbank verwendet werden. | ||
+ | |||
+ | Sie können jedoch COBI.wms-Benutzer hinzufügen, | ||
+ | Die Felder „Username“ und „Password“ erscheinen in der App nur, wenn mindestens ein COBI.wms-Benutzer vorhanden ist. | ||
+ | |||
+ | Zum Hinzufügen eines Benutzers verwenden Sie die Prozedur **'' | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec addUser ' | ||
+ | |||
+ | -- SAP HANA | ||
+ | call addUser(' | ||
+ | |||
+ | |||
+ | Der Erste Parameter: Benutzer-ID (gleichzeitig der Login-Name). Kann z. B. „alice“, | ||
+ | |||
+ | Zweiter Parameter: Passwort. Darf nicht NULL sein, kann aber ein leerer String sein (''< | ||
+ | |||
+ | Dritter und vierter Parameter: Veraltet, bitte '' | ||
+ | |||
+ | Letzter Parameter: Vollständiger Name oder Beschreibung des Benutzers, kann auch '' | ||
+ | |||
+ | Das Passwort eines Benutzers kann mit der Prozedur '' | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec resetPassword ' | ||
+ | |||
+ | -- SAP HANA | ||
+ | call resetPassword(' | ||
+ | |||
+ | Benutzer können mit '' | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec removeUser ' | ||
+ | |||
+ | -- SAP HANA | ||
+ | call removeUser(' | ||
+ | |||
+ | ==== Separater Login pro Benutzer ==== | ||
+ | |||
+ | Sie können für jeden COBI.wms-Benutzer oder jedes Gerät einen **separaten SAP-Business-One-Login** hinterlegen. | ||
+ | Dadurch kann im SAP-Änderungsprotokoll nachvollzogen werden, **welcher Benutzer oder welches Gerät** einen Beleg gebucht oder geändert hat. | ||
+ | |||
+ | Zum Hinterlegen des Logins führen Sie folgenden SQL-Befehl in der Management-Datenbank aus: | ||
+ | |||
+ | <code sql> | ||
+ | update users | ||
+ | set apiUser = ' | ||
+ | apiPass = ' | ||
+ | where userId = ' | ||
+ | </ | ||
+ | |||
+ | Wenn Sie keine COBI.wms-Benutzer verwenden, können Sie denselben Ansatz für Geräte nutzen. | ||
+ | Jedes registrierte Gerät erstellt automatisch einen speziellen COBI.wms-Benutzer namens '' | ||
+ | Sie können diesen Benutzern individuelle SAP-Business-One-Logins zuweisen: | ||
+ | |||
+ | <code sql> | ||
+ | update users | ||
+ | set apiUser = ' | ||
+ | apiPass = ' | ||
+ | where userId = ' | ||
+ | |||
+ | update users | ||
+ | set apiUser = ' | ||
+ | apiPass = ' | ||
+ | where userId = ' | ||
+ | -- usw. </ | ||
+ | |||
+ | Nachdem Sie die **users**-Tabelle entsprechend aktualisiert haben, starten Sie die COBI.wms-App neu. | ||
+ | Bei der nächsten Anmeldung wird die Änderung aktiv. | ||
+ | Sie können eine Testbuchung durchführen und anschließend im SAP-Änderungsprotokoll prüfen, ob der korrekte Benutzer aufgeführt wird. | ||
+ | |||
+ | **Warnung: | ||
+ | Wenn Sie das SAP-Business-One-Passwort im Feld '' | ||
+ | Dies stellt in der Regel kein Risiko dar, solange keine unbefugten Personen Zugriff auf den Server haben. | ||
+ | Falls dies dennoch ein Problem für Sie darstellt, siehe den folgenden Abschnitt. | ||
+ | |||
+ | ==== Vermeidung von Klartext-Passwörtern in der Datenbank ==== | ||
+ | |||
+ | Normalerweise muss das Passwort eines SAP-Business-One-Benutzers entweder in der Spalte **'' | ||
+ | |||
+ | (Technischer Hinweis: Eine Verschlüsselung dieser Spalten wäre sinnlos, da der Schlüssel zum Entschlüsseln in der App enthalten sein müsste und somit ausgelesen werden könnte. Eine Speicherung als Hash ist ebenfalls nicht möglich, da das Passwort im Klartext an den Service Layer übermittelt werden muss.)* | ||
+ | |||
+ | Um dies zu vermeiden, kann folgende Strategie verwendet werden: | ||
+ | |||
+ | - Lassen Sie die Felder '' | ||
+ | - Erstellen Sie COBI.wms-Benutzer mit denselben Benutzernamen und Passwörtern wie in SAP Business One. | ||
+ | |||
+ | Wenn Sie sich in der App anmelden, nutzt COBI.wms zunächst diese Zugangsdaten für den COBI.wms-Login. | ||
+ | Danach prüft die App, ob für den Service Layer ein Passwort in '' | ||
+ | Sind diese Felder leer, werden einfach dieselben Zugangsdaten aus dem COBI.wms-Login verwendet, um sich beim Service Layer anzumelden. | ||
+ | |||
+ | Wenn also Benutzername und Passwort identisch mit denen des SAP-Benutzers sind, funktioniert die Anmeldung automatisch. | ||
+ | |||
+ | (Technischer Hinweis: Das Passwort eines COBI.wms-Benutzers wird nicht im Klartext, sondern als sicherer Hashwert gespeichert, | ||
+ | |||
+ | Hier ist der Text in gut lesbarem, wiki-tauglichem Deutsch übersetzt: | ||
+ | |||
+ | ==== Lizenzmodell ==== | ||
+ | |||
+ | Jeder parallele Zugriff auf COBI.wms erfordert eine eigene Lizenz. | ||
+ | Wenn beispielsweise maximal drei Personen COBI.wms gleichzeitig nutzen sollen, werden drei Lizenzen benötigt. | ||
+ | |||
+ | Dabei können Sie selbst entscheiden, | ||
+ | |||
+ | Sie können Ihre Lizenzen beispielsweise drei Geräten zuweisen. In diesem Fall kann jede Person diese Geräte verwenden – unabhängig davon, ob sie über einen COBI.wms-Benutzer verfügt oder nicht. | ||
+ | |||
+ | Alternativ können Sie die Lizenzen drei COBI.wms-Benutzern zuweisen. Diese Benutzer können sich dann mit ihrem Login auf beliebig vielen Android-Geräten anmelden und COBI.wms nutzen. | ||
+ | |||
+ | Es ist auch möglich, beide Modelle zu kombinieren. | ||
+ | Beispielsweise können Sie zwei Lizenzen Geräten zuweisen, damit diese von jedem genutzt werden können, und die dritte Lizenz einem Benutzer, damit dieser sich von beliebigen Android-Geräten aus anmelden kann. | ||
+ | |||
+ | ==== Lizenzen importieren ==== | ||
+ | |||
+ | Lizenzen können ganz einfach durch das Ausführen von INSERT-Befehlen importiert werden: | ||
+ | |||
+ | <code sql> | ||
+ | -- Ersetzen Sie LICENSE_1, LICENSE_2 usw. durch die tatsächlichen Lizenzschlüssel, | ||
+ | insert into licenses (license) values (' | ||
+ | insert into licenses (license) values (' | ||
+ | insert into licenses (license) values (' | ||
+ | </ | ||
+ | |||
+ | Die Tabelle licenses enthält außerdem eine optionale Spalte '' | ||
+ | Dies ist beispielsweise nützlich, wenn Sie sowohl COBI.wms-Lizenzen als auch COBI.ppc-Lizenzen in derselben Datenbank verwalten und diese voneinander unterscheiden möchten. | ||
+ | Oder wenn Sie Testlizenzen importieren, | ||
+ | |||
+ | Beispiele: | ||
+ | |||
+ | <code sql> | ||
+ | insert into licenses (license, notes) values (' | ||
+ | insert into licenses (license, notes) values (' | ||
+ | insert into licenses (license, notes) values (' | ||
+ | </ | ||
+ | |||
+ | ==== Lizenzen Zuordnen ==== | ||
+ | |||
+ | === Massenbearbeitung der Tabelle LICENSES === | ||
+ | |||
+ | Die Information, | ||
+ | Wenn Sie eine größere Anzahl von Änderungen vornehmen möchten, ist es oft am einfachsten, | ||
+ | |||
+ | Beispielsweise können Sie im MS SQL Server Management Studio mit der rechten Maustaste auf die Tabelle LICENSES klicken und „Edit Top 200 Rows“ (Oberste 200 Zeilen bearbeiten) auswählen. | ||
+ | Dort können Sie die Spalten UserID oder DeviceID jeder Lizenz direkt bearbeiten. | ||
+ | (Hinweis: Für jede Lizenz darf immer nur eine dieser beiden Spalten gefüllt sein – die andere muss auf NULL stehen.) | ||
+ | |||
+ | === Verwendung von gespeicherten Prozeduren === | ||
+ | |||
+ | Zum Zuweisen von Lizenzen an Geräte oder Benutzer können Sie auch die gespeicherten Prozeduren | ||
+ | '' | ||
+ | Diese prüfen automatisch, | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec assignDeviceLicense 1; -- Weist Gerät 1 eine freie Lizenz zu | ||
+ | -- oder | ||
+ | exec assignUserLicense ' | ||
+ | |||
+ | -- SAP HANA | ||
+ | call assignDeviceLicense(1); | ||
+ | -- oder | ||
+ | call assignUserLicense(' | ||
+ | |||
+ | Zum Entziehen von Lizenzen können Sie die Prozeduren | ||
+ | '' | ||
+ | Dadurch wird die aktuell verwendete Lizenz des entsprechenden Geräts oder Benutzers wieder freigegeben und kann anschließend einem anderen Benutzer oder Gerät zugewiesen werden: | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec revokeDeviceLicense 1; -- Entzieht Gerät 1 die Lizenz | ||
+ | -- oder | ||
+ | exec revokeUserLicense ' | ||
+ | |||
+ | -- SAP HANA | ||
+ | call revokeDeviceLicense(1); | ||
+ | -- oder | ||
+ | call revokeUserLicense(' | ||
+ | |||
+ | Alle Module der App sind standardmäßig für **alle Geräte und Benutzer aktiviert** und müssen **manuell gesperrt** werden, wenn Sie dies ändern möchten. | ||
+ | |||
+ | Die Einstellungen für **Benutzer** haben Vorrang vor den Einstellungen für **Geräte**. | ||
+ | Beispielsweise können Sie bestimmte Module für ein Gerät sperren – wenn sich jedoch ein Benutzer auf diesem Gerät anmeldet, der für diese Module explizit Berechtigungen erhalten hat, kann er diese Module trotzdem verwenden. | ||
+ | Umgekehrt gilt: Wenn ein Benutzer explizit für bestimmte Module gesperrt ist, stehen diese Module für diesen Benutzer **auf keinem Gerät** zur Verfügung. | ||
+ | |||
+ | Sie können die Nutzung der App **ohne COBI.wms-Benutzerlogin effektiv blockieren**, | ||
+ | (Dies kann auch erreicht werden, indem in der Tabelle '' | ||
+ | |||
+ | Um Module für Geräte oder Benutzer zu aktivieren bzw. zu sperren, verwenden Sie die Prozeduren '' | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec setDevicePermission 1, ' | ||
+ | exec setUserPermission ' | ||
+ | |||
+ | -- SAP HANA | ||
+ | call setDevicePermission(1, | ||
+ | call setUserPermission(' | ||
+ | |||
+ | Der **erste Parameter** ist die Geräte- oder Benutzer-ID, | ||
+ | der **zweite Parameter** ist die Modul-ID, | ||
+ | und der **dritte Parameter** gibt den Status an: | ||
+ | **1** bedeutet **erlaubt**, | ||
+ | |||
+ | Im obigen Beispiel ist also das Modul „MODULE_ID“ für Gerät 1 gesperrt, aber für den Benutzer „user1“ ausdrücklich freigegeben. | ||
+ | |||
+ | Nachfolgend finden Sie eine Liste der verfügbaren Modul-IDs: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Zur Vereinfachung finden Sie hier eine Vorlage, um die Prozedur '' | ||
+ | Sie können diesen Code direkt in SQL Server Management Studio oder HANA Studio einfügen und anpassen: | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | exec setUserPermission ' | ||
+ | |||
+ | -- SAP HANA | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | call setUserPermission(' | ||
+ | |||
+ | Ersetzen Sie '' | ||
+ | und ändern Sie die **1** am Ende in eine **0**, um einzelne Module zu deaktivieren. | ||
+ | |||
+ | Dasselbe gilt für Geräte: | ||
+ | |||
+ | <code sql> | ||
+ | -- MS SQL Server | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | exec setDevicePermission deviceID, ' | ||
+ | |||
+ | -- SAP HANA | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | call setDevicePermission(deviceID, | ||
+ | |||
+ | Ersetzen Sie '' | ||
+ | und ändern Sie die **1** am Ende in eine **0**, um bestimmte Module für dieses Gerät zu deaktivieren. | ||
de/cobi.wms/berechtigungsverwaltung.1761051330.txt.gz · Last modified: by thuth