cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Regular Visitor

365 Benutzername als Parameter für eine MSSQL Verbindung

Hallo, 

ich bin noch recht neu bei den Power Apps und will in einer App den Datenzugriff auf MSSQL Server Tabellen von einem Parameter / Variable abhängig machen. Ich habe folgende Rahmenbedingungen:

Die APP soll für das Büro 365er Benutzer meine Firma freigegeben werden.

Die App soll auf unterschiedlichen Endgeräten (IOS / Android) laufen.

Ich gehe aus , dass der Benutzer an der APP mit seinem 365er Konto anmelden muss..

Die APP soll diese angemeldete Benutzer erkennen.

Beim Abruf von Daten einer bestehenden MSSQL Tabelle / Query soll nun NUR die Datensätze ausgegeben werden, die für DIESEN Benutzer bestimmt sind. Die Zuordnung über ein Datenfeld in der Tabelle (Benutzername)

 

WIE kann ich das mit den POWER Apps realisieren ? 

(MSSQL Datenverbindung steht / Zugriff auf die 365er funktioniert Benutzer auch..)

Ich hoffe das hier helfen kann, denn diese Info ist für den weiteren Betrieb sehr wichtig.

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Super User III
Super User III

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

Hi @CSFOBS ,

Your message

I have the feeling to be close to the goal but unfortunately the data query fails because of small things.
The vUserName variable works! (onstart)
I have renamed the comparative data field to "user account".
the query string now looks like this:

SortByColumns(
   Filter(
      [@ '[dbo]. [Qry_pos_betreuer]']; 
      'User account' = vUserName && 
      If(
         IsBlank(TextSearchBox2.Text), 
         true, 
         Keyword in TextSearchBox2.Text
      )
   ); 
   "Keyword"; 
   If(
      SortDescending1; 
      Descending; 
      Ascending
   )
)
 
However, no data is displayed. The entry in the data field 'User account' matches the display of the User () - i.e. the variable vUserName.
In the Power App environment, two digits (parenthesis and comma) are displayed as incorrect. I have already passed the comma; replaced but somehow I can't get ahead ..
Can it be that the syntax differs in the locale Europa / Germany ??
Unfortunately, I find no other information about the correct syntax - so I am very grateful for the help!
The displayed error messages can be seen in the system

Try the below

SortByColumns(
   Filter(
      [@'[dbo].[qry_pos_betreuer]'];
      'Benutzerkonto'=vUserName &&
      If(
         IsBlank(TextSearchBox2.Text);
         true;
         TextSearchBox2.Text in Stichwort
      )
   );
   "Stichwort";
   If(
      SortDescending1;
      Descending;
      Ascending
   )
)

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

View solution in original post

8 REPLIES 8
Highlighted
Super User III
Super User III

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

Hi @CSFOBS ,

Firstly your question in English

Spoiler
Hello, I'm still quite new to the Power Apps and want to make data access to MSSQL server tables dependent on a parameter / variable in an app. I have the following framework: The APP should be released for the office 365 users of my company. The app should run on different devices (IOS / Android). I assume that the user has to log in to the APP with his 365 account. The APP should recognize these registered users. When retrieving data from an existing MSSQL table / query, ONLY the data records intended for THIS user should now be output. The assignment via a data field in the table (user name) HOW can I do this with the POWER Apps? (MSSQL data connection is established / Access to the 365 works, users also ..) I hope that can help here, because this information is very important for the further operation.

To broadly answer your questions, yes all of that is possible in Power Apps - it runs on Android, IOS and Windows and has built-in parameters identifying the logged-in user as long as the user's name or email address is stored in your data. You will need some different connector options depending on where your SQL is located.

Spoiler
Um Ihre Fragen allgemein zu beantworten: Ja, all dies ist in Power Apps möglich. Es läuft unter Android, IOS und Windows und verfügt über integrierte Parameter, die den angemeldeten Benutzer identifizieren, solange der Name oder die E-Mail-Adresse des Benutzers in Ihren Daten gespeichert sind . Je nachdem, wo sich Ihr SQL befindet, benötigen Sie verschiedene Connector-Optionen.

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Highlighted
Super User III
Super User III

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

Hi @CSFOBS ,

Just checking if you got the result you were looking for on this thread. Happy to help further if not.

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Highlighted
Regular Visitor

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

Hallo Warren, zunächst vielen Dank für die schnelle Antwort . Ich habe im Testbetrieb eine App erstellt und bin  bisher sehr positiv eingestellt. Jetzt stehe ich vor dem konkreten Problem: 

Die Verbindung zum externen MSSQL Server funktioniert. Im App-Formular werden die Daten mit dieser Anweisung angezeigt: 

SortByColumns(Search([@'[dbo].[qry_pos_betreuer]']; TextSearchBox2.Text; "Stichwort"); "Stichwort"; If(SortDescending1; Descending; Ascending))

Nun sollen NUR die Datensätze gezeigt werden, die in der qry_pos_betreuer im Datenfeld 'Benutzer' dem 365er Konto : test@firma.ag entsprechen. Es handelt sich bei diesem Konto um das in der APP angemeldete Userkonto. 

Wie muss ich die Anweisung formulieren ?? 

Leider habe ich in den bisherigen Threads noch nichts zu diesem Thema gefunden...

 

Highlighted
Super User III
Super User III

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

Hi @CSFOBS ,

First in English

Hello Warren, 

first of all thank you for the quick answer. I created an app in test mode and have been very positive so far. Now I'm facing the specific problem:

The connection to the external MSSQL server works. The data is shown in the app form with this instruction:

SortByColumns (
   Search (
      [@ '[dbo]. [Qry_pos_betreuer]']; 
      TextSearchBox2.Text; 
      "Keyword"
   ); 
   "Keyword"; 
   If (
      SortDescending1; 
      Descending; 
      Ascending
   )
)

Now ONLY the data records should be shown which correspond to the 365 account in the qry_pos_betreuer in the data field 'User': test@firma.ag. This account is the user account registered in the APP.

How do I have to formulate the instruction?

Unfortunately I haven't found anything on this topic in previous threads ...

Set a Variable at App OnStart

Set(vUserName,User().FullName)

Then your Filter

SortByColumns (
   Filter(   
      [@ '[dbo]. [Qry_pos_betreuer]']; 
      'User'=vUserName &&
      If(
         IsBlank(TextSearchBox2.Text,
         true,
         Keyword in TextSearchBox2.Text
      )
   ); 
   "Keyword"; 
   If (
      SortDescending1; 
      Descending; 
      Ascending
   )
)

 Also, User is not a good name for a field - it is a Reserved Word in Power Apps.

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Highlighted
Regular Visitor

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

ich habe das Gefühl kurz vor dem Ziel zu sein aber leider scheitert die Datenabfrage noch an Kleinigkeiten.

Die vUserName Variable funktioniert ! ( onstart )

Das vergleichende Datenfeld habe ich in "Benutzerkonto" umbenannt. 

der Abfragestring sieht nun so aus : 

SortByColumns (Filter([@'[dbo].[qry_pos_betreuer]'];'Benutzerkonto'=vUserName && If(IsBlank(TextSearchBox2.Text,true,Stichwort in TextSearchBox2.Text)); "Stichwort";If (SortDescending1; Descending; Ascending))

 

Trotzdem werden keine Daten angezeigt. Der Eintrag im Datenfeld 'Benutzerkonto' stimmt mit der Anzeige des User() - also der variable vUserName überein. 

In der Power App Umgebung werden zwei Stellen ( Klammervermerk und Komma ) als fehlerhaft angezeigt. Ich habe das Komma schon durch ; ersetzt aber irgendwie komme ich nicht weiter .. 

Kann es sein, dass die Syntax  sich im Gebietsschema Europa / Germany unterscheidet ??

 

Leider finde ich sonst keine Hinweise auf die korrekte Syntax - daher bin ich für die Hilfe sehr dankbar !

In der Anlage sind die angezeigten Fehlermeldungen zu sehen. 

Highlighted
Super User III
Super User III

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

Hi @CSFOBS ,

Your message

I have the feeling to be close to the goal but unfortunately the data query fails because of small things.
The vUserName variable works! (onstart)
I have renamed the comparative data field to "user account".
the query string now looks like this:

SortByColumns(
   Filter(
      [@ '[dbo]. [Qry_pos_betreuer]']; 
      'User account' = vUserName && 
      If(
         IsBlank(TextSearchBox2.Text), 
         true, 
         Keyword in TextSearchBox2.Text
      )
   ); 
   "Keyword"; 
   If(
      SortDescending1; 
      Descending; 
      Ascending
   )
)
 
However, no data is displayed. The entry in the data field 'User account' matches the display of the User () - i.e. the variable vUserName.
In the Power App environment, two digits (parenthesis and comma) are displayed as incorrect. I have already passed the comma; replaced but somehow I can't get ahead ..
Can it be that the syntax differs in the locale Europa / Germany ??
Unfortunately, I find no other information about the correct syntax - so I am very grateful for the help!
The displayed error messages can be seen in the system

Try the below

SortByColumns(
   Filter(
      [@'[dbo].[qry_pos_betreuer]'];
      'Benutzerkonto'=vUserName &&
      If(
         IsBlank(TextSearchBox2.Text);
         true;
         TextSearchBox2.Text in Stichwort
      )
   );
   "Stichwort";
   If(
      SortDescending1;
      Descending;
      Ascending
   )
)

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

View solution in original post

Highlighted
Regular Visitor

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

Es funktioniert !!

Vielen Dank für die Unterstützung. Es scheint tatsächlich einen Unterschied in der Syntax zu geben. Ein Zeichen (true,) musste ich noch durch ein Semikolon (true;) ersetzen und schon funktioniert alle so wie geplant. 

 

 

 

 

Highlighted
Super User III
Super User III

Re: 365 Benutzername als Parameter für eine MSSQL Verbindung

Good to hear @CSFOBS ,

For the benefit of the forum

It works !!

Many thanks for the support. There actually seems to be a difference in syntax. I had to replace a character (true,) with a semicolon (true;) and everything works as planned.

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Power Platform ISV Studio

Power Platform ISV Studio

ISV Studio is designed to become the go-to Power Platform destination for ISV’s to monitor & manage published applications.

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Tech Marathon

Maratón de Soluciones de Negocio Microsoft

Una semana de contenido con +100 sesiones educativas, consultorios, +10 workshops Premium, Hackaton, EXPO, Networking Hall y mucho más!

Top Solution Authors
Top Kudoed Authors
Users online (9,015)