Useranlage automatisieren

30. April 2012 09:01

Guten morgen,

ich steh momentan vor einer Frage...und zwar haben wir öfter mal hier, das ein neuer user in NAV angelegt wird.
Da das ein immer gleicher Ablauf einer Checkliste ist, haben wir überlegt diesen Vorgang nun zu automatisieren.

Ansich denke ich keine so schwere Sache, allerding nur wenn ich irgendwie Zugriff auf die Tabellen hätte, die dahinter liegen.
In folgenden Bereichen müssten Einträge gemacht werden:
- Zugriffsrechte
- Benutzer einrichten (z.B. Druckerzuordnung)
- Navigationsbereich einrichten (zuweisung was der User sieht)

Habe ich in den oben genannten Bereichen eine Tabelle auf die ich zugreifen kann, um dort Daten zu ergänzen.

Vielen Dank schonmal

Ciao
OcchiX

Re: Useranlage automatisieren

2. Mai 2012 10:16

Guten Morgen,

gibt es keine Möglichkeit mein oben beschriebenes Problem zu lösen? :-(

Güße
OcchiX

Re: Useranlage automatisieren

2. Mai 2012 10:26

Hallo,

deine Anforderung betrifft mehrere Tabellen, und müsste in jedem Fall individuell für euch programmiert werden.

Gruß, Fiddi

Re: Useranlage automatisieren

2. Mai 2012 10:43

Hallo fiddi,

die Programmierung würde ich auf jeden Fall übernehmen können.
Was ich als Info bräuchte, wären die Tabellen. Konnte leider nix finden...

Ciao
OcchiX

Re: Useranlage automatisieren

2. Mai 2012 11:07

arbeitet ihr mit SQL-DB oder Native-DB, mit Windows-Usern oder NAV- Usern?

Die Drucker findest du in tabelle 78, Benutzer und Benutzerrechte im 2000000000er Bereich. Wenn du mit Windows Benutzern arbeitest, ist ein Wenig mehr zu tun, Ebenfalls, wenn ihr einen SQL-Server einsetzt.

Gruß, Fiddi

Re: Useranlage automatisieren

2. Mai 2012 11:16

OcchiX hat geschrieben:- Zugriffsrechte
- Benutzer einrichten (z.B. Druckerzuordnung)
- Navigationsbereich einrichten (zuweisung was der User sieht)


Für Native und DB-Anmeldung:

In der Tabelle 2000000002 "User" muss der neue Benutzer und Passwort angelegt werden.
In der Tabelle 2000000003 "Member Of" sind die Zugriffsrechte pro Nutzer.
In der Tabelle 78 "Printer Selection" ist die Druckerauswahl pro User.
In der Tabelle 2000000061 "User Menu Level" pro Benutzer unter "Benutzereinschränkg." die sichtbaren Bereiche im Navigationsbereich.

Wenn ich das umsetzen müsste, wäre mein Ansatz zu versuchen eine Art Kopierfunktion zu bauen.
Also unter Angabe des neuen Benutzers und Passworts noch einen Referenz-Benutzer anzugeben, von dem dann die Rechte und Einstellungen aus den oben angegeben Tabellen kopiert werden sollen.

mfg,
winfy

Re: Useranlage automatisieren

2. Mai 2012 11:27

In der Tabelle 2000000002 "User" muss der neue Benutzer und Passwort angelegt werden.
In der Tabelle 2000000003 "Member Of" sind die Zugriffsrechte pro Nutzer.
In der Tabelle 2000000061 "User Menu Level" pro Benutzer unter "Benutzereinschränkg." die sichtbaren Bereiche im Navigationsbereich.


das funktioniert aber nur bei DB-Usern, bei Windows Usern klappt das so nicht.

Gruß, Fiddi

Re: Useranlage automatisieren

2. Mai 2012 11:29

fiddi hat geschrieben:das funktioniert aber nur bei DB-Usern, bei Windows Usern klappt das so nicht.

Gruß, Fiddi


Ja, das meinte ich mit "Für Native und DB-Anmeldung:".

mfg,
winfy

Re: Useranlage automatisieren

2. Mai 2012 11:33

@fiddi
In der Tat arbeiten wir mit Windows-Usern und mit NAV-Usern...und mit einer SQL DB.
Im 20000000000er Bereich hab ich schon geschaut, auch mit dem Befehl "AllObj", konnte aber so auch nix finden.

@winfy
Okay...Tabelle "User" und "Member Of" und "Printer Selection" wären schonmal das was mir weiterhlefen würde.
Bei der "User Menu Level" hatte ich auch bereits reingeschaut, doch kann ich dort leider nix ersehen für den jeweiligen User.
Ein Beispiel wäre da(ID=A1; ID-Typ=Datenbank; Ebene=Benutzereinschränkg.; Objekt=*; Geändert=22.4.12) oder
(ID=Domain/User; ID-Typ=Windows; Ebene=Benutzereinschränkg.; Objekt=*; Geändert=22.4.12).

Wie kann ich dort die sichtbaren Bereiche bearbeiten?

Ciao
OcchiX

Re: Useranlage automatisieren

2. Mai 2012 11:40

OcchiX hat geschrieben:Wie kann ich dort die sichtbaren Bereiche bearbeiten?


Das ist im BLOB Feld gespeichert.
Ich würde das an deiner Stelle nicht versuchen zu bearbeiten, sondern wie oben schon vorgeschlagen von einem anderen Benutzer zu kopieren.

mfg,
winfy

Re: Useranlage automatisieren

2. Mai 2012 11:45

Nun in dem Blob- Feld "Objekt" steht die Konfiguration drin, du kannst Sie nur von einem anderen User kopieren.

Tabelle 2000000053 Windows Access Control
Tabelle 2000000054 Windows Login

enthalten die Informationen für Windows- Anmeldungen.

Damit kannst du aber keine SQL-Server- Benutzer (NAV- DB- Benutzer) anlegen, und auch die Synchronisierung zwischen NAV und SQL- Server nicht starten.

Gruß, Fiddi

Re: Useranlage automatisieren

2. Mai 2012 11:59

@winfy
okay, dann werde ich das mal mit dem einfachen kopieren des Blob-Fields versuchen.

@fiddi
Der SQL-User wird direkt auf der DB angelegt...es geht dann nurnoch um die Konfiguration des Users.
Nach dem das ganze aber Konfiguriert wurde, muss die "kleine" Sync durchgeführt werden.

Dies werde ich mal über die beiden Tabellen testen, die du mir gerade geschrieben hast.

Vielen Dank schonmal, ich denke damit kann ich erstmal arbeiten :-)

Gebe hier auf jeden Fall nochmal eine Rückmeldung, sobald ich dahingehend was erreicht habe.

Ciao
OcchiX

Re: Useranlage automatisieren

2. Mai 2012 12:06

fiddi hat geschrieben:Nun in dem Blob- Feld "Objekt" steht die Konfiguration drin, du kannst Sie nur von einem anderen User kopieren.


Es soll wohl auch Programmierer geben die da hart reinschreiben, aber das würde ich auch nicht empfehlen.
Damit könnte man sich meiner Meinung nach auch die Datenbank verkorksen. (Link)

mfg,
winfy

Re: Useranlage automatisieren

29. Juni 2012 11:05

Hallo zusammen,

bin nach längerer Zeit nun endlich dazu gekommen das Programm zu schreiben.
Ich bekomme alles kopiert, auch in der Tabelle "User Menu Level" das Blob-Field.
Beim Testen des Logins sind aber leider alles Menüfelder für den User sichtbar.

Da ich eigentlich auch dagegen bin, das Blob-Field zu bearbeiten...weil wegen risiko wie von winfy betont...
Und weil ich auch erstmal garkeine ahnung davon hätte...

Gibts irgendwie jemanden hier, der sowas schon gemacht hat und mir evtl. noch ein tipp geben könnte?

Ciao
OcchiX

Re: Useranlage automatisieren

29. Juni 2012 13:14

Hallo Cristian,

wie hast du denn den Datensatz kopiert?

Falls du die Felder einzeln kopiert hast brauchst du bei BLOB-Feldern noch ein CALCFIELDS.

mfg,
winfy

Re: Useranlage automatisieren

29. Juni 2012 13:22

Falls du die Felder einzeln kopiert hast brauchst du bei BLOB-Feldern noch ein CALCFIELDS.


Wenn die NAV- Hilfe stimmt, benötigst du das auch bei Transferfields und wahrscheinlich auch bei der direkten Zuweisung des Records.

Gruß, fiddi

Re: Useranlage automatisieren

29. Juni 2012 13:31

fiddi hat geschrieben:Wenn die NAV- Hilfe stimmt, benötigst du das auch bei Transferfields und wahrscheinlich auch bei der direkten Zuweisung des Records.

Gruß, fiddi


Auch bei Record.COPY(FromRecord) ?

mfg,
winfy

Re: Useranlage automatisieren

29. Juni 2012 13:48

Auch bei Record.COPY(FromRecord) ?


Hab's nicht getestet.:-?

Gruß, Fiddi

Re: Useranlage automatisieren

29. Juni 2012 13:51

fiddi hat geschrieben:Hab's nicht getestet.:-?

Gruß, Fiddi


Klappt da auch ohne! :-)

Ich hatte das wohl bei mir im Kopf falsch abgespeichert.
Man braucht auch da ein CALCFIELDS, zumindestens als ich das gerade in unserer nativen TestDB getestet habe. :-?

Testcode:
Code:
RefUser:='MEIER';
NewUser:='SCHULZE';

IF USERMENULEVEL.GET(RefUser,USERMENULEVEL."ID Type"::Database,USERMENULEVEL.Level::"User Restrictions") THEN BEGIN
  USERMENULEVEL.CALCFIELDS(Object); //braucht man wohl doch.
  USERMENULEVEL2.COPY(USERMENULEVEL);
  USERMENULEVEL2.ID := NewUser;
  USERMENULEVEL2.INSERT;
END;


mfg,
winfy

Re: Useranlage automatisieren

29. Juni 2012 15:20

Hi,

ich mache ein TRANSFERFIELDS aber vorher auch das CALCFIELDS.
Ich sehe auch, das in dem Blob-Field ein "*" drin steht, das bedeutet für mich ja eigentlich, das diese Feld nun Inhalt hat.
Aber die Menüs vom RefUser und vom NewUser sind leider nicht identisch :-(

Code:
//NAV Menu einrichten
tblUserMenu.SETRANGE(tblUserMenu.ID,VergleichbarerWinUser);
IF tblUserMenu.FIND('-') THEN REPEAT
  tblNeuesUserMenu.RESET;
  tblNeuesUserMenu.INIT;
  tblNeuesUserMenu.TRANSFERFIELDS(tblUserMenu);
  tblNeuesUserMenu.ID := txtWinUserID;
  tblUserMenu.CALCFIELDS(Object);
  tblNeuesUserMenu.Object := tblUserMenu.Object;
  tblNeuesUserMenu."ID Type" := tblUserMenu."ID Type"::Windows;
  tblNeuesUserMenu.INSERT;
UNTIL tblUserMenu.NEXT=0;


Ciao
OcchiX
Zuletzt geändert von OcchiX am 29. Juni 2012 15:22, insgesamt 1-mal geändert.

Re: Useranlage automatisieren

29. Juni 2012 15:22

Habe es gerade bei mir getestet und bei mir hat es geklappt.

Hast du auch die Zeile mit "User Restrictions" kopiert?

mfg,
winfy

Re: Useranlage automatisieren

29. Juni 2012 15:25

ist denn bei meinem Quellcode irgendwas falsch?

Re: Useranlage automatisieren

29. Juni 2012 15:52

OcchiX hat geschrieben:ist denn bei meinem Quellcode irgendwas falsch?


Nein, dein Code klappt auch! :wink:
Ich habe den auch gerade bei mir getestet.

Hast du evtl. die Gross/Kleinschreibung bei der ID anders?

mfg,
winfy