Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: Programming > XML-Filter zur Anzeige von Datensätzen für berechtigte Benutzer

XML-Filter zur Anzeige von Datensätzen für berechtigte Benutzer

Hallo,

ich möchte Berechtigungen für den Zugriff auf Datensätze organisieren.
Es gibt einen Werkstattbeitrag: Rechteabhängiger Datenzugriff , auf dessen Basis ich versucht habe das Ganze umzusetzen:

Struktur:

1. Datengruppe: Postbucheintraege: ... ErstellerID ...
2. Datengruppe: Postbuchsichtbarkeit: ... RefAufBenutzerID ...
2.1 Unterdatengruppe: Postbuchsichtbarkeit_Verteiler: ... FKLID, STR_VERTEILER

Jeder Benutzer darf in der Datengruppe 2: Postbuchsichtbarkeit genau EINEN Eintrag machen.(Werkstattbeitrag: Beschränken des Einfügens auf einen Datensatz )
Dieser Eintrag ermöglicht über eine Mehrfachauswahl, dass der Benutzer festlegen kann, wer SEINE Einträge (ErstellerID) sehen darf.

Über einen Tabellenfilter auf Postbucheintraege sollen nun nur die Datensätze an angezeigt werden, die dem Benutzer von anderen Benutzern erlaubt wurden.

Die folgende Abfrage ermittelt die richtigen Datensätze:


<!--
NAME>>Postbucheintraege<<: XDATAGROUP00D1A218
NAME>>Postbuchsichtbarkeit<< : XDATAGROUP68B8154B
NAME>>Postbuchsichtbarkeit_Verteiler<< : XDATAGROUP87856334
*/

SELECT * FROM XDATAGROUP00D1A218 T0
WHERE T0.LUSERIDINSERT IN (
SELECT TA1.REF_1135FEC3 FROM XDATAGROUP68B8154B TA1
Where TA1.LID in (
Select TA3.FKLID From XDATAGROUP87856334 TA3
Left outer JOIN VBLUSER TA2 ON (TA3.STR_VERTEILER = TA2.STRGUID) ))
ORDER BY T0.STR_LFDNR ASC

-->


Ich habe nun versucht das für einen Filter einer Ansichtstabelle in XML zu formulieren:
( Mit den richtigen GUIDs natürlich [ oder hoffentlich])


<filter guid="GUID1>>NeuErzeugenLassen<<">
<exp op="" type="in">
<arg content="GUID2>>Postbucheintraege.ErstellerID<<" type="fieldguid"/>
<arg type="statement">
<select content="GUID3>>Postbuchsichtbarkeit<<" type="tableguid">
<field content="GUID4>>Postbuchsichtbarkeit.RefAufBenutzerID<<" type="fieldguid"/>
<conc op="and">
<exp op="" type="in">
<arg type="statement">
<select content="GUID5>>Postbuchsichtbarkeit_Verteiler<<" type="tableguid">
<field content="GUID6>>Postbuchsichtbarkeit_Verteiler.FKLID<<" type="fieldguid"/>
<conc op="and">
<exp op="" type="in">
<arg content="GUID7>>Postbuchsichtbarkeit_Verteiler.STR_Verteiler<<" type="fieldguid"/>
<arg content="orgstruct" type="userattribute"/>
</exp>
</conc>
</select>
</arg>
</exp>
</conc>
</select>
</arg>
</exp>
</filter>


Wenn ich mir per getQuery ansehe was Intrexx aus dem XML-Ding macht, dann kommt folgendes raus:


SELECT * FROM XDATAGROUP00D1A218 T0
WHERE (T0.LUSERIDINSERT IN (
SELECT TA1.REF_1135FEC3 FROM XDATAGROUP68B8154B TA1 LEFT OUTER JOIN VBLUSER TA2
ON (TA1.REF_1135FEC3 = TA2.LID) ) )
ORDER BY T0.STR_LFDNR ASC


Da fehlt doch irgendwie das vorletzte SELECT, oder ?
Außerdem wird nicht STR_VERTEILER sondern die Referenz für den Join genommen !
Was mache ich falsch ?
21.03.2016 16:10 von TMAASS
Wenn ich das recht sehe, hat das EXP da nur ein ARG
21.03.2016 16:16 von MartinW
ohne dir jetzt helfen zu können, weil ich mich mit diesen Filtern auch immer sehr schwer tue, wie und wo kann man denn das getQuery anwenden um zu sehen was intrexx aus der XML-Anweisung macht?
22.03.2016 09:06 von falkh
Hallo

(at)MartinW:

vielen Dank für den Hinweis, manchmal sieht man den Wald vor lauter Bäumen nicht ...

Für alle die es interessiert, so klappt es:


<filter guid="GUID1>>NeuErzeugenLassen<<">
<exp op="" type="in">
<arg content="GUID2>>Postbucheintraege.ErstellerID<<" type="fieldguid"/>
<arg type="statement">
<select content="GUID3>>Postbuchsichtbarkeit<<" type="tableguid">
<field content="GUID4>>Postbuchsichtbarkeit.RefAufBenutzerID<<" type="fieldguid"/>
<conc op="and">
<exp op="" type="in">
<arg content="GUID5>>Postbuchsichtbarkeit.ID<<" type="fieldguid"/>
<arg type="statement">
<select content="GUID6>>Postbuchsichtbarkeit_Verteiler<<" type="tableguid">
<field content="GUID7>>Postbuchsichtbarkeit_Verteiler.FKLID<<" type="fieldguid"/>
<conc op="and">
<exp op="" type="in">
<arg content="GUID8>>Postbuchsichtbarkeit_Verteiler.STR_Verteiler<<" type="fieldguid"/>
<arg content="orgstruct" type="userattribute"/>
</exp>
</conc>
</select>
</arg>
</exp>
</conc>
</select>
</arg>
</exp>
</filter>


(at)falkh:

Expert Attribut der Ansichtstabelle: getQuery: ja


MfG
TM
22.03.2016 09:40 von TMAASS
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg