0

Nutzerfeld per E-Mail Wert setzen

Ich möchte gern ein Nutzerfeld beschreiben. Per API erhalte ich nur die E-Mail Adresse des Nutzers. Das Nutzerfeld benötigt aber den Nutzernamen um zu funktionieren.

Es gibt zwar eine Funktion userEmail(), welche mit die E-Mail Adresse eines Nutzers ausgibt, aber nicht umgekehrt. Ich würde gern den Nutzernamen zu einer E-Mail wissen, um dann das Nutzerfeld zu schreiben.

Habt Ihr eine Lösung dafür (ohne eine separate Nutzertabelle zu führen)?

11 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Interessante Frage. Ist mit "Nutzerfeld" das gleichnamige Auswahlfeld von Ninox gemeint, in dem alle Nutzer (-namen) angezeigt werden? Um das per Script zu befüllen, bedarf es m. W. der userId(). Man könnte die Ids aller Nutzer in ein Array schreiben und dieses dann mit der E-Mail-Adresse abgleichen. Bspw. so:

    for i in users() do
        if userEmail(i) = EMAIL then Nutzer := userId(i) end
    end
    

    Wobei EMAIL für das Feld mit der übermittelten Adresse steht.

      • Dirk_Spannaus
      • vor 1 Jahr
      • Gemeldet - anzeigen

       nice! Name geht auch - aber mit userId() ist es eindeutiger.

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Mit userName() geht es bei mir nicht.

      • Dirk_Spannaus
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Nope - ich meinte ich schreib den Nutzernamen direkt ins Nutzerfeld. Das setzt auch den Nutzer korrekt. ID ist aber besser, weil eineindeutig!

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Ich weiß immer noch nicht, was du mit "Nutzerfeld" meinst. Ich meinte das Standardfeld namens "Nutzer" (siehe Screenshot), welches alle User des Teams in einer Combo-Box anzeigt. In diesem Feld per Script einen Eintrag auszuwählen, geht m. E. nur über die userId().

      Wenn es sich aber um ein normales Daten- oder Formelfeld handelt, kann man da natürlich jeden beliebigen Wert reinschreiben bzw. anzeigen lassen: userId(), userName(), userFirstName(), userLastName(), userFullName(), userEmail(), userRole() ...

      • Dirk_Spannaus
      • vor 1 Jahr
      • Gemeldet - anzeigen

       genau dieses meine ich. Git ja kein anderes "Nutzer"Feld ;)
      Ich meine, ich hab das schon mit "Nutzername" anstelle mit userId beschrieben und es hatte funktioniert. Aber Dein Weg ist deutlich eleganter und sicherer.

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Also, ich hab's gerade ausprobiert: Mit userName() o. ä. funktioniert's leider nicht. Nur mit userId(). Es geht mir dabei aber nicht um "meine" Lösung, sondern um eine sicher funktionierende. Für all jene, die nur mitlesen oder später über eine entsprechende Stichwortsuche auf das Thema stoßen. Ich mag keine Threads, bei denen man sich am Ende fragt: Ja, wie denn jetzt? 😉

      • Dirk_Spannaus
      • vor 1 Jahr
      • Gemeldet - anzeigen

       OK - ich habe nicht die userName() Funktion genutzt, sondern einfach den String "Vorname Nachname" direkt in das Nutzer-Feld geschrieben. Dann funktionierte das Matching wenn der Name des Nutzers gleich war.

      Du kannst ja da reinschreiben was du willst. Auch E-Mail Adressen. Die sind dann in der Tabellenübersicht und im Export sichtbar, im Record selbst im Feld jedoch nicht (weil kein Match).

      Mein Fazit zum Thread wäre:

      • Wenn die fremde E-Mail (via API o.ä.) direkt matched, dann deinen beschriebenen Weg nutzen.
      • Wenn nur ein Name vorliegt und dieser entspricht dem Nutzernamen in Ninox, dann geht das auch.
      • Ansonsten braucht es eine extra Tabelle, die eine eindeutige Zuordnung zwischen Ninox Nutzer und Fremdschlüssel vornehmen kann. 
      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Ich weiß auch nicht alles und lerne gerne dazu, deshalb wäre ich sehr interessiert an der Lösung, wie du anhand des Strings "Max Mustermann" den gleichnamigen User in einem Nutzerfeld ausgewählt bekommst. Bei mir funktioniert nämlich immer nur userId(). Nicht Name, nicht FullName, nicht LastName und auch nicht Email. Nur Id. Kann man mit obigem Script ja ganz einfach ausprobieren, in dem man userId() durch andere user-Funktionen ersetzt.

      • Dirk_Spannaus
      • vor 1 Jahr
      • Gemeldet - anzeigen

       OK - leg Dir ein Nutzerfeld "User" an und einen Button. Verwende zum Beispiel diesen Code und verwende echte vorhandene Nutzer aus Deiner Organisation. Et voila - jetzt kannst Du per Skript auch mit dem Nutzernamen as User-Feld einstellen. Zweitbeste Lösung, weil eben nicht per Definition eindeutig.

      switch true do
      case true:
          User := user("Vorname Nachname")
      default:
          User := user("AndererVorname AndererNachname")
      end
      
      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Ok, danke für das Beispiel, jetzt erkenne ich das Problem. Die Angabe "Name Vorname" ist missverständlich, weil das per Definition dem userFullName() entspräche. Man muss zwischen den verschiedenen user()-Funktionen unterscheiden. Als Beispiel für mögliche Werte eines Ninox-Nutzers:

      • userId() = Interne ID des Benutzers, z. B. "sChtuWZ45RK34LkmiZu"
      • userName() =  Benutzername, z. B. "Max M."
      • userFirstName() = Vorname des Benutzers, z. B. "Max"
      • userLastName(): = Nachname des Benutzers, z. B. "Mustermann"
      • userFullName() = Voller Name des Benutzers, z. B. "Max Mustermann"
      • userEmail() = Bei Ninox hinterlegte E-Mail-Adresse, z. B. "max@mustermann.de"

      Die Zuweisung im Nutzerfeld funktioniert nur mit userName() und userId(). Für alle anderen User-Infos benötigt man zur Identifikation ein Script wie das obige.

      Natürlich kann in userName() auch ein Wert nach dem Muster "Name Vorname" stehen, z. B. "Max Mustermann", wenn der Nutzer das bei sich so eingetragen hat, aber das wäre eher ein Zufall. Mein Benutzername bspw. lautet "planox.pro".

Content aside

  • Status Answered
  • vor 1 JahrZuletzt aktiv
  • 11Antworten
  • 50Ansichten
  • 2 Folge bereits