22. Oktober 2012 14:17
		
			
			Hallo Zusammen
Ich bin noch etwas neu in Navision und habe folgende Frage. Beim Migrieren von Codeteilen aus NAV2009 nach NAV2013 hab ich die Funktion ShorUserID (Codeunit Login Management CU418) entdeckt und kann nicht ganz folgen was diese macht:
IF STRPOS(UserID,'\') IN [0,STRLEN(UserID)] THEN
  IF STRLEN(UserID) <= 20 THEN
    EXIT(UserID)
  ELSE
    EXIT('')
ELSE
  EXIT(COPYSTR(UserID,STRPOS(UserID,'\') + 1,20));[/i][/i]
Sollte die nicht eher folgendermassen aussehen?
IF STRPOS(UserID,'\') IN [0,STRLEN(UserID)] THEN
  EXIT(COPYSTR(UserID,STRPOS(UserID,'\') + 1));
ELSE
  IF STRLEN(UserID) <= 20 THEN
    EXIT(UserID)
  ELSE    EXIT('') [/i]
Für Hinweise und Erklärungen bin ich euch sehr dankbar!
Liebe Grüsse
			
				
Zuletzt geändert von martin77 am 24. Oktober 2012 14:24, insgesamt 2-mal geändert.
					
				
			
		 
	 
	
        
        22. Oktober 2012 14:26
		
			
			Hallo,
die macht aus 'Domäne\Userid' nur 'UserId'.
Gruß, Fiddi
			
		
	 
	
        
        22. Oktober 2012 14:33
		
			
			Hallo Fiddi 
Vielen Dank für Deine rasche Antwort. Dass Sie das macht denke ich mir, aber was ich nicht verstehe ist der Aufbau der Funktion...
Die erste Zeile prüf ob ein '\' vorkommt....falls keines vorkommt macht Sie die letzte Zeile...EXIT(COPYSTR(UserID,STRPOS(UserID,'\') + 1,20))...das geht ja dann gar nicht, oder sehe ich das falsch?
Danke für Deine Unterstützung im Voraus!
IF STRPOS(UserID,'\') IN [0,STRLEN(UserID)] THEN
  IF STRLEN(UserID) <= 20 THEN
     EXIT(UserID)
 ELSE
   EXIT('')
ELSE
 EXIT(COPYSTR(UserID,STRPOS(UserID,'\') + 1,20));[/i][/i]
			
		
	 
	
        
        22. Oktober 2012 14:42
		
			
			falls keines vorkommt macht Sie die letzte Zeile
Nein, falls 
eines vorkommt geht er in die letzte Zeile. Den true Teil führt er nur aus, wenn Strpos(UserId,'\') =0 (nicht vorhanden) oder Strlen(UserId) (das letzte Zeichen ist, sprich nur die Domäne ist)
Gruß, Fiddi
			
		
 
	 
	
        
        22. Oktober 2012 14:48
		
			
			Manchmal dauert es etwas länger...
aber jetzt hab ich's verstanden 
 Vielen Dank!
Gruss, Martin
			
		
 
	 
	
        
        22. Oktober 2012 14:56
		
			
			Muss mal blöd fragen: Wofür brauch man das?
Ist es nicht eher problematisch nur auf den Usernamen ohnen Domain zu kürzen? Im AD kann man ja schließlich Vertrauensstellungen aufbauen, womit theoretisch zwei User mit gleichem Namen aber unterschiedlicher Domain (Dom1\hmeier und dom2\hmeier) aufgrund von Gruppenrechten Rechte in einem AD/SQL-Server/NAV haben könnten und somit nicht mehr zu unterscheiden wären.
Oder besteht da keine Gefahr?
Volker
			
		
	 
	
        
        22. Oktober 2012 14:58
		
			
			Muss mal blöd fragen: Wofür brauch man das?
das war in 2009 aber noch anders.
Gruß, Fiddi
			
		
 
	 
	
        
        22. Oktober 2012 15:10
		
			
			vsnase hat geschrieben:Muss mal blöd fragen: Wofür brauch man das?
Ist es nicht eher problematisch nur auf den Usernamen ohnen Domain zu kürzen? Im AD kann man ja schließlich Vertrauensstellungen aufbauen, womit theoretisch zwei User mit gleichem Namen aber unterschiedlicher Domain (Dom1\hmeier und dom2\hmeier) aufgrund von Gruppenrechten Rechte in einem AD/SQL-Server/NAV haben könnten und somit nicht mehr zu unterscheiden wären.
Oder besteht da keine Gefahr?
Volker
Ein Geschäft mit mehr als einer Domäne (mal DMZ aussen vor) sind wohl für NAV zu groß ;)
			
		
 
	 
	
        
        23. Oktober 2012 08:26
		
			
			Also ich finde das nicht ganz so weit hergeholt. Es gibt ja wohl genug Firmen, die international arbeiten und deshalb schon mehrere Standorte haben, was manche auch über verschiedene Domains lösen. Dann gibt es ja auch noch Firmenkäufe/-zusammenschlüsse, bei denen (wenigstens zeitweise) mehrere bestehende Domains verbunden werden müssen. Das soll man mit NAV nicht machen können? Oder dafür ist NAV zu klein bzw. die Firma zu groß? Nach meinem Kenntnisstand wird NAV ja auch bei Firmen mit mehreren Mrd. Umsatz eingesetzt. Da paßt was nicht.
Volker
			
		
	 
	
        
        23. Oktober 2012 09:25
		
			
			@vsnase:
Das Problem tritt ja nur auf, wenn du Benutzer 'Domäne1\Müller' und 'Domäne2\Müller' hast.
Gruß,Fiddi
			
		
	 
	
        
        23. Oktober 2012 09:26
		
			
			fiddi hat geschrieben:@vsnase:
Das Problem tritt ja nur auf, wenn du Benutzer 'Domäne1\Müller' und 'Domäne2\Müller' hast.
Gruß,Fiddi
Deswegen werden in größeren Unternehmen öfters die Domänenzugehörigkeit im Accountnamen selbst integriert. Somit verhindert man diese Art von "Kollision".
			
		
 
	 
	
	
	    
	        Powered by phpBB © phpBB Group.
		
		
		    phpBB Mobile / SEO by Artodia.