cardo4.COM

cardo.COM dient der Fernsteuerung von cardo4 durch URL-Aufrufe von Dritten. Ziel der Schnittstelle ist es, die Aktionen in einer bereits geöffneten cardo4-Instanz auszuführen.

Hinweis: Diese Ausführungen beziehen sich auf cardo4, für cardo3 steht eine ähnliche Schnittstelle zur Verfügung. Diese ist hier dokumentiert.

Alle Aufrufe werden dabei über http://IhrServer/net4/icom.ashx initiiert.

Die Aktion wird mit dem obligatorischem Parameter action angegeben, dann folgen die aktionsspezifischen Werte.

Es können mit einem Aufruf mehrere Aktionen ausgeführt werden. Dazu kann mehrmals der action-Parameter angeben werden. Einer Aktion werden jeweils die Parameter bis zur nächsten Aktion zugeordnet.

Hinweis: Alternativ dazu gibt es noch die Möglichkeit über Hashtags den Aufruf eines neuen Fensters zu starten. Diese Möglichkeit ist hier dokumentiert.

Problembehandlung

Folgende spezielle Argumente können übergeben werden:

  • startDebugger=true: Fügt in das interne Script "debugger" mit ein
  • reset=true: Leert den Local-Store
  • preventAutoClose: Unterdrückt das Schließen des Zwischenfensters

Die "Leere Seite"

cardo stellt immer einen Frame mit den Name IDUIT.Cardo4.{PROJECT} zur Verfügung. Dieser kann als Target eines Links angegeben werden ({PROJECT} = der Name des cardo-Projektes).

Bsp.:

<a href="http://ihrCardo/net4/icom.ashx?action=select&layer=L34&field=id&value=2" target="IDUIT.Cardo4.REF">Test</a>

In diesem Fall wird beim 1. Mal die neue Seite verwendet um das cardo dort hineinzuladen (wenn nicht bereits eine cardo-Instanz geöffnet ist). Die folgenden Aufrufe gehen dann immer in das bestehende Fenster.

Beachten Sie bitte, dass es aktuell so gut wie nicht mehr möglich ist, das Fenster in den Vordergrund zu bringen.

Diese Option funktioniert so nur bei einer Browser-zu-Browser-Kommunikation. Eine 100%-ig funktionierende Lösung auch bei Aufrufen über Programmgrenzen hinweg kann mit dem cardo4 Launcher erzielt werden.

Standardaktionen

Einige Standardaktionen sind in jeder cardo - Installation verfügbar, weitere können über die Schnittstelle IduIT.cardo.Core.CoreModules.Com.ComHandler selber definiert werden.

Eigene cardo4.com-Handler registrieren

Das Registrieren einer Aktion muss im Laufzeit-Code erfolgen, i.d.R. bietet sich hier die Implementierungsdatei einer Anwendungsklasse an. Beachten Sie, dass dort evtl. noch nicht alle Scripte der Anwendung selbst geladen sind.

Die Registrierung erfolgt dann an der Methode registerAction des globalen com-Handlers IduIT.cardo.Core.CoreModules.Com.

Übergeben werden müssen:

  • der Name der Aktion (name)
  • die Start-Funktion
  • die Resolver für die Argumente/Datentypen

Beachte: Der Name einer Aktion muss global eindeutig sein. Verwenden Sie keine zu allgemeinen Bezeichner.

namespace IduIT.App.Sample.Application.SampleActions
{
  interface __ISampleActionArgs
  {
    alknr: string;
  }
  /**
   * Beispiel-Registierung
   */
  // Registriert die Selektions-Aktion
  IduIT.cardo.Core.CoreModules.Com.registerAction<__ISampleActionArgs>({
    name: 'sampleAction',
    fn: args =>
    {
      let d = IduIT.Core.Web.Promise.Deferred.create<void>();
      if (Kiss.Lang.String.isNullOrEmpty(args.alknr))
      {
        d.reject(new Core.Web.Error("Eine AlkNr muss übergeben werden."));
      }
      else
      {
        //Todo: Etwas Tolles mit der Alk-Nr machen....
        alert(args.alknr);

        //Promise auflösen ...
        d.resolve(null);
      }
      return d;
    },
    converters: {
      alknr: (v) => v
    }
  });
}

Zum Aufruf dieses Bsp.s kann http://IhrCardo/net4/icom.ashx?action=sampleAction&alkNr=0815 verwendet werden.


Zuletzt geändert: 21.03.2024 09:46:21 (erstmals erstellt 05.02.2018)