Ankündigung

Einklappen
Keine Ankündigung bisher.

Datensatzansicht über Shortlink ohne STRID

Einklappen
X

Datensatzansicht über Shortlink ohne STRID

Einklappen
  • Filter
  • Zeit
Alles löschen
neue Beiträge

  • Datensatzansicht über Shortlink ohne STRID

    Ich versuche eine Datensatzansicht über einen Shortlink ohne Verwendung der STRID (hässlich) mit einem anderen Segment (eindeutiges Datenfeld, z.B. mit dem Wert "Marmorkuchen") zu ermöglichen.

    Ich will also:
    mein.server.de/rezepte/Marmorkuchen

    statt:
    mein.server.de/rezepte/85021...FEF076E23F2D29

    Dazu habe ich der Anzeigeseite einne Shortlink "rezepte" verpasst, einen Parameter und ein dazu passendes Segment zu einem Datenfeld (darin steht z.B. "Marmorkuchen").

    Dem Parameter STRID der Anzeigeseite gebe ich einen Fallbackwert als Velocity, das aus dem Segment per SQL-Abfrage die STRID ermittelt.

    STRID-Ermittlung funktioniert (zumindest in einem Textfeld mit Programmierung), aber offenbar erhält die Seite keine gültige STRID, denn es werden keine Inhalte angezeigt. Aber auch keine Fehler. (Gebe ich eine passende STRID als statischen Fallback-Wert mit, geht es.)

    Geht das überhaupt? Oder wäre ein anderer Weg besser, um "schöne" shortlinks zu erhalten?

  • #2
    Genau dazu hätte ich auch eine Frage! ;-) Wir hatten bisher Shortlinks via URL Rewrite im ISS "gehandelt".

    Für das Inventar haben wir Aufkleber mit einem QR-Code produziert, welcher eine URL wie www.holdrion.com/inventar/12343212, wobei die Zahl die LID in Hex ist. Nun sind diese Aufkleber auf dem Inventar angebracht. Mit der langen, ordentlichen URL, waren die QR-Codes in einer bestimmten Grösse unlesbar geworden.

    Mit der neuen Intrexx-Version lassen sich ja wunderbar Shortlinks erzeugen, aber eben kann ich nur LID angeben und nicht mitgeben, dass diese in HEX sein soll, was heisst, dass alle QR-Codes auf den Klebern nicht mehr funktionieren.

    Gibt es eine Möglichkeit, bei den Shortlinks zusätzliche Angaben zu machen? Oder einen anderen Ansatz, damit die Kleber nicht ersetzt werden müssen?

    Besten Dank für Hinweise! ;-)

    Kommentar


    • #3
      Ich habe das nun mit einem doppelten Shortlink gelöst.

      Ich springe mit der schönen URL auf eine Seite, die den mitgelieferten Parameter nutzt, um per SQL die GUID zu ermitteln, die dann erneut als Parameter an die eigentliche Anzeigeseite weiter gegeben wird.

      Das sieht dann ungefähr so aus:

      Code:
      ## STRID aus Shortlink ermitteln
      #set($statement = $PreparedQuery.prepare($DbConnection, "SELECT STRID FROM DATAGROUP('85***29') WHERE STR_SHORTLINK = ?"))
      $statement.setString(1, $!Request.get("shortlink"))
      #set($result = $statement.executeAndGetScalarValue(0))
      
      ## Basis URL erstellen
      #set($base = $UrlBuilder.createAbsoluteBaseUrl($ProcessingConte xt).asString())
      
      ## Weiterleiten an Anzeigeseite per 2. Shortlink
      <script>
      window.location="${base}abcd/$result";
      </script>
      $statement.close()

      Kommentar


      • #4
        Hänge mich hier mal mit an. Laut Vorstellung des neuen Features sollte das doch irgendwie ganz einfach ohne Code machbar sein. Ich hätte erwartet, dass ich bei der Auswahl "Segment hinzufügen" (Shortlinks->Hinzufügen->Segment hinzufügen) auch andere Datenfelder in der Dropdown angeboten bekomme. In der 21.03. Intrexx Onlinehelp ist das neue Feature beispielhaft mit " /Seminare/${Kategorie} " erklärt. Das wäre dann quasi mein.server.de/rezepte/kuchen. (Anzeige mehrerer passender Datensätze) Ich hatte das an verschiedenen Stellen ausprobiert (Ansichtsseiten mit Tabellen, mit freigest. Tabellen, Ansichtsseiten innerhalb der Datengruppe). Ich bekomme in der Auswahl immer nur maximal den Primärschlüssel angeboten. Wie bekomme ich denn da andere Datenfelder eingebunden?

        Kommentar


        • #5
          An sich werden da keine Datenfelder verknüpft, sondern die Parameter der Seite auf die der Shortlink platziert wird.
          Die meisten Seiten haben lediglich die STRID als Paraemter vordefiniert, weil man über die STRID/LID einen Datensatz aufruft.
          Man kann aber weitere Parameter in den Eigenschaften einer Seite hinzufügen, um bspw. eine Tabelle auf der Seite nach einer Kategorie zu filtern oder ein Eingabefeld mit einem Wert vorzubelegen.

          Diese Parameter stehen dann anschließend in der Konfiguration der Shortlinks zur Verfügung.

          Kommentar


          • #6
            Danke für den Hinweis. Aber ich sehe das richtig, dass für eine "normale" Ansichtsseite das gewünschte Verhalten "schöner" Shortlinks nicht hinzubekommen ist, da beim Seitenaufruf die STRID da sein muss, um den gewünschten Datensatz anzuzeigen. Im Vorgang des Seiteaufrufens die STRID aus dem Parameter zu ermitteln will mir jedenfalls nicht gelingen. (Bzw. es gelingt, wird auch angezeigt, aber die geladene Seite zeigt keinen Datensatz sondern nur den Parameter und die dazu ermittelte STRID.)

            Falls das so ist, wäre dann nur der Weg über meine Bastelei oben (oder Varianten davon mit neu laden usw.) oder über eine Ansichtsseite, die eine frei gestaltete Tabelle aufruft, die nach dem Parameter gefiltert ist und dann nur einen Datensatz anzeigt (gehen da mittlerweile Tabellen in Tabellen, denn das wäre bei mir so)?

            Kommentar


            • #7
              Tabellen in Tabellen gehen nach wie vor nicht.
              Bist du sicher, dass der Datensatz nicht geladen wird, wenn du die STRID selbst ermittelst?
              Ich habe das jetzt mit einer LID versucht ud da hat es geklappt.

              Ich habe in einer leeren App die VBLUSER als Fremddatengruppe eingebunden und eine Ansichtsseite hinzugefügt.
              Die Ansichtsseite hat den Parameter LID, der erstmal "Erforderlich" ist und nur für bestehende Datensätze gilt.
              Das "Erforderlich" habe ich rausgenommen und einen Fallbackwert hinzugefügt.
              Der Fallbackwert ist die Benutzer ID des aktuellen Benutzers.
              Jetzt habe ich einen Shortlink "myprofile" zur Seite hinzugefügt, ohne LID.
              Wenn ich den shortlink im Browser aufrufe lande ich auf der Datensatz-Seite.
              Mir wird also nicht nur der Parameter angezeigt sondern auch der rest des Datensatzes.

              Kommentar


              • #8
                Ich habe halt ein paar Schlaufen mehr drin und es will nicht klappen:

                Die Seite hat die STRID als Parameter, diese mit Velocity-Fallback, das aus dem zweiten Parameter kuerzel die STRID (mithilfe einer SQL) ermittelt.

                server.de/shortlink/kuerzel liefert mir also die Seite, aber ohne Daten.

                Das Velocity auf der Seite ermittelt die STRID korrekt.

                Lasse ich mir die Ergebnisse des Velocity aus dem Fallback auf der Seite anzeigen, kommt 0. Das Velocity ermittelt also nicht das richtige Ergebnis als STRID, daher auch kein Datensatz. Auch der Parameter scheint nicht zur Verfügung zu stehen.

                Spielt die (nicht änderbare) Parameterreihenfolge eine Rolle? Oben steht STRID, darunter erst mein kuerzel, das ja benutzt wird, um per Fallback die STRID zu ermitteln.

                Ich vermute abermals, ohne Zwischenseite komme ich nicht hin.

                Kommentar

                Lädt...
                X