URL eine geöffneten Datensatzes auslesen

Hallo


für eine Abfrage die ich in Access realisieren möchte und über IFrame öfnnen möchte, brauche ich die ID des aktuell geöffneten Datensatzes.


Die Id wird mir in der URL des geöffneten Datensatzes angezeigt.


Doch wie kann ich die URL in eine Tabelle oder so bringen?


Jemand eine Idee?



AW: URL eine geöffneten Datensatzes auslesen

?


Also wir sind in der Access-Anwendung? Du hast das IE-Control eingebunden, was den CRM-Datensatz aufruft? Access soll jetzt die URL bzw. die ID des Parameters auslesen?



AW: URL eine geöffneten Datensatzes auslesen

Ja, ich bin in der Access-Anwendung.


Ich weis nicht, was du mit IE-Control meinst. Aber vielleicht wäre das was mich auf den richtigen Weg bringt. Kannst du mir erklären, was der IE-Control macht und wie ich den sinnvoll (in Access?) einbinde?


Ich möchte folgende Situation (halbwegs "automatisch") realisieren:


CRM sieht einen Besitzer für einen Datensatz (Firma/Kontakt) vor. Ich brauche aber Zugriff für drei Mitarbeiter, die im Erfassungsformular als zuständige Vertreter eingetragen werden.
Ich möchte nun die Funktion TEILEN nutzen. Allerdings möchte ich nicht, dass der Erfasser auch teilen muss/darf, zumindest nicht mit der typischen Zuteilungsfunktion von CRM. Doch der Datensatz sollte sofort nach der Speicherung auch den übrigen zwei mitarbeitern zu verfügung stehen.


Mein möglicher Lösungsweg:


In der Tabelle dbo_PrincipalObjectAccess (CRM-Datenbank) stehen die Rechte, die beim Teilen vergeben werden. Das System, das dahinter steckt habe ich soweit verstanden und könnte dies auch über eine (mehrere) Access-Abfragen lösen. Diese Access Datei (zuteilen) möchte ich dem Benutzer über ein I-Frame zum Aufrufen bereit stellen (Funktioniert auch soweit). Der Bunutzer öffnet diese Datei, Makros rufen die nörigen Abfragen auf und schliessen diese Datei wieder. Somit hat der Benutzer keinen Spielraum in der Rechtevergabe (Lesen, schreiben, weiter Benutzer usw.)


Das Problem: Wie bekomme ich die ID des aktuell geöffneten/angelegten Datensatzes ausgelesen?
Habe zunächst versucht durch die Abfrage des letzten angelegten Datensatzes (MAX von createdon) an den Datensatz zu kommen. Hat auch funktioniert. Doch was ist, wenn in der Zwischenzeit (im schlimmsten Falle einige Minuten) bereits ein Datensatz von einem anderen Benutzer angelegt wurde? Dann wird ja dieser Datensatz ausgelesen, weil die jetzt das MAX von cratedon ist. Und da ist der Fehler.
Ich brauche Die eine Datensatz ID, die gerade geöffnet ist.



AW: URL eine geöffneten Datensatzes auslesen

Hallo,


ich hab´ da mal ein paar grundsätzliche Fragen: Die zwei zusätzlichen "Vertreter" befinden sich in der gleichen Organisationseinheit wie auch der "Besitzer"?


Was genau wird denn hier unter ZUGRIFF verstanden?


Hier werden massive Eingriffe per Access auf die Benutzerrechte/Rechtevergabe angedeutet. Welche Spezialrechte müssen denn hier vergeben werden, die "automatisiert" werden sollen?


Gruß



AW: URL eine geöffneten Datensatzes auslesen

Hallo,


Ja, die zwei zusätzlichen Vertreter befinden sich in der gleichen Organisationseinheit wie auch der Besitzer.


Die Rechte sind in der Sicherheitsrolle folgendermaßen Vergeben:


Erstellen:      Benutzer
Lesen:         Unternehmenseinheit
Schreiben:   Benutzer
Anfügen:      Unternehmenseinheit
Anfügen an:   Unternehmenseinheit


Somit hätte der Besitzer die Rechte zu Erstellen, Lesen, Schreiben, Anfügen und Anfügen an.
Die übrigen Mitglieder der der Unternehmenseinheit nur die Rechte zu Lesen, Anfügen und Anfügen an. Ich möchte aber den im Formular (der Firma/des Kontaktes) angegeben (Pciklist) zwei zusätlichen Mitarbeitern die selben Rechte geben, wie der Besitzer (quasi drei Besitzer des Datensatzes). Die Freigabe wie CRM es zur Verfügung stellt möchte ich aber nicht dem Anleger des Datensatzes erlauben, weil er dadurch erstens doppelte Arbeit hat und zweitens die volle Möglichkeiten der Freigabemaske nutzen kann.


Ich möchte per Access-Abfrage die Tabelle PrincipalObjectAccess "befüllen".
Habe rausfinden können, welche Felder mit welchen Werten befüllt werden müssen.
Diese Access-Abfrage möchte ich per I-Frame öffnen.


Doch wie bringe ich die ID des aktuell geöffneten Datensatzes mit in die Abfrage?
In der URL des IFrames wird ja die ID mitübertragen.



AW: URL eine geöffneten Datensatzes auslesen

oha...verstanden, was du vorhast. Ich bin mir grad nicht sicher, ob es etwas'unsupporteteres' gibt, als die Berechtigung direkt in die CRM-DB zu schreiben... ;)


Der sinnvollere Weg wäre hier eine eigene kleine asp/aspx-Seite, die das SQL-Statement ausführt. Die SQL-Anweisung hast du ja, kleines Beispiel für den Verbindungs-Aufbau aus der ASP-Seite zur Datenbank kann ich die zukommen lassen, wenn Bedarf.


Mal nebenbei: Wie startest du die Access-DB denn in dem IFrame?


 


Achja, die Datensatz-ID auslesen geht dann mit 'Request.QueryString("oId")' bzw. 'Request.QueryString["oId"]' in aspx.



AW: URL eine geöffneten Datensatzes auslesen

Leider habe ich NULL Ahnung von asp/aspx und SQL.
Kann aber relativ gut mit Access umgehen.
Die Access-Datei starte ich durch einen Link im IFrame (ist glaube ich auch direkt im IFrame möglich) der Benutzer wird dann gefragt, ob er die Datei öffnen will. Durch das Öffnen laufen einige Makros und Abfragen aus, die die Tabelle (ODBC-Verknüpfung) demensprechend befüllen. Danach wird die Datei durch ein Makro geschlossen. Der Benutzer sieht während der Laufzeit höchstens ein Formular.


Wenns keine Umstände macht kannst du mir dieses Beispiel per E-mail zukommen lassen


hmichaelis[at]softexpress.de


Danke für die Mühe



AW: URL eine geöffneten Datensatzes auslesen

Hallo,


also, auch meinem Verständnis nach ist hier viel "unsupported" und höchst kritisch einzustufen / auch im Punkto Offline-Funktionalität.


Warum arbeitest Du beispielsweise nicht mit 2 zusätzlichen Entitäten á la Vertreter des eigentlichen Besitzers? Oder warum nicht 2 zusätzliche Lookup-Felder per iFrame schaffen (Jürgen beschreibt ausführlich im Posting wie es funktioniert) und die zusätzlichen Mitarbeiter dann in das Formular aufnehmen?


Die Freigabe wiederum würde ich via Workflow-Monitor und einem OnChange-Ereignis auf 2. 3. Mitarbeiter auslösen und damit mit "Boardmitteln" von CRM arbeiten.


Zugegeben mit dem Workflow-Monitor muss etwas überlegt werden, wie die Datensätze freigegeben werden, aber 1 - 2 Tage Implementierungszeit reichen für so etwas aus.


Noch dazu lässt sich hiermit bei Update auf Titan im kommenden Jahr viel Anpassung an Individualentwicklung verhindern, insbesondere dann, wenn auf Rechteebene die ein oder andere Zusatzfunktion in das Rechtemanagement einfließt.


Ich tät´ das Vorhaben noch einmal überdenken...


Gruß