Einfache Webseiten und Formulare direkt aus Navision erzeugen

In Navision steht Ihnen dafür mit dem Infocenter eine fertig gekapselte Funktion zur Verfügung, mit der Sie verschiedene Elemente leicht ausgeben können, z.B.
Listen (z.B. Artikellisten, Lieferungen, Rückstände)
Links (z.B. Paketverfolgung, offene Aufträge, Lagerbestände)
Karten (Detailseiten z.B. für erweiterte Artikelinformationen, Kundendaten)
Symbole (wie OK, Fehler, Abbruch)
Eingabefelder / Eingabelisten (z.B. für Montagezeiten, Schnellbestellungen, Zeiten, Mengen oder Beträge erfassen)


Auch Menüs, Querverweise werden direkt im Navison-code erzeugt!

So können Sie einfach selber weitere „Webseiten“ generieren, weitere Funktionen implementieren, ohne das Sie am Web-Frontend auch nur eine Zeile Code ändern müssen!
Und: Alle Eingaben eines Benutzers werden ausnahmslos erst durch ihr Navison-programm interpretiert. Somit ist die Schnittstelle gänzlich immun gegen SQL-Injections und vergleichbare Angriffe. Was Ihr C/AL Programm nicht versteht, sorgt schlimmstenfalls für ein „Unbekannter Aufruf“, aber niemals zu erfolgreichen Angriffen auf Ihre Navisonstruktur.

Navision steuert direkt PHP an

Der Aufruf erfolgt durch einen beliebigen Browser auf die Adresse [domain]. Dort wird eine normale Index.html mit Verweis auf die index.php hinterlegt, oder gleich die index.php als Startseite im Webserver angegeben.
Kurz gefasst: Das (mitgelieferte) PHP-Script initiiert einen Aufruf (Trigger) im Navision-NAS, welcher somit anfängt Daten zu berechnen und zurück zu liefern. Diese Daten können eine Anmeldemaske sein oder auch direkt ein Menü oder fertige Daten. Jeglicher Aufruf von der Internetseite wird bereits Serverseitig durch das PHP_Script vorgefiltert, und selbst diese vorgefilterten Daten werden noch einmal von Navision Schritt für Schritt interpretiert. Daher ist die Intranet/Navisionseite absolut sicher vor z.B. SQL-Injections oder anderen Angriffen. Wird ein Befehl/Befehl/Datenkombination nicht von dem Navisionprogramm in dem Application Server erkannt, so werden auch keine weiteren Trigger ausgelöst und somit keine Daten zurück geliefert.

C/Side Befehle für ein Login

Send(‚$$$Login;Anmelden am Infocenter‘); 
Send(‚Kundennr.:|$TXT_Kundennr~10~‘);
Send(‚Kennwort:|$TXT_Kennwort~10~‘);
Send(‚ ‚);

Die Authentifizierung findet bereits in der Codeunit statt, so das Sie selber steuern können ob eine bestimmte URL schon eine Authentifizierung vornimmt, oder ob die Daten einfach so ohne Authentifizierung ausgeliefert werden sollen. Interessant z.B. für Maschineninformationen, pauschale Zustände o.ä. wo es nicht auf Geheimhaltung ankommt, Inhouse-Lösungen. $TXT_Kundennr~10~ erstellt dabei ein Formularfeld, dessen TeXT- Inhalt in der Variable Kundennr mit der maximalen Stellenzahl 10 an Navision zurück geliefert wird.

Menü aus Navision erzeugen

Ein einfaches, beliebig erweiterbares Internet-Menü (auch mehrspaltig) wird so erzeugt:


Send(“);//Weil kein Formular: erst eine Leerzeile 
Send(‚[_head1]Infocenter‘);
Send(‚—‚);
Send(‚[_mark]Angebote$AB;Q‘);
Send(‚[_mark]Auftraege$AB;O‘);
Send(‚[_mark]Lieferungen$SHIPMENT‘);
Send(‚[_mark]Ordersatz$ORDERLISTADR;M‘);
Send(‚ ‚);

Dabei wird der Text „Angebote“ als fett markierter Text (_Mark) angezeigt. Wenn der Benutzer diesen Eintrag anklickt, wird an Navision der Befehl AB mit dem Parameter Q zurück geliefert.

Listendarstellung per C/AL

IF ShipHeader.FINDSET THEN BEGIN  //Überschrift
  Send(‚[[_tablehead]]Belegnr.|Ihre Belegnr.|Auftragsdatum|Positionen|Lieferdatum|PLZ|Tracking‘);
  REPEAT
    TrackLink := ShipHeader.GetTrackinglink; //URL für Navision Pakettracking bei UPS, DPD, Transoflex bauen
    IF TrackLink <> “ THEN //externen Link (eLink) erzeugen, wird in einem neuen Fenster geöffnet
      TrackLink := ‚[_elink]’+ ShipHeader.“Package Tracking No.“ +’$’+ TrackLink;
    ShipLines.RESET;
    ShipLines.SETRANGE(„Document No.“,ShipHeader.“No.“);
    ShipLines.SETRANGE(Type,ShipLines.Type::Item);
    ShipLines.SETFILTER(„No.“,'<>%1′,“);
    //“Tabelierpapier“ (Lining[x]) erzeugen
    Send(Lining(1) + ShipHeader.“No.“ +’|’+ ShipHeader.“Your Reference“ +’|’+
      FORMAT(ShipHeader.“Order Date“) +’|’+
      FORMAT(ShipLines.COUNT)+’$SHIPLINES;’+ShipHeader.“No.“ +’|’+
      FORMAT(ShipHeader.“Posting Date“) +’|’+ ShipHeader.“Ship-to Post Code“ +’|’+
      TrackLink);
  UNTIL ShipHeader.NEXT = 0;
  SendBackLink;

Dabei wird die Anzahl der Zeilen wieder als Link dargestellt, welcher mit dem Befehl SHIPLINES und dem Parameter „Lieferscheinnummer“ zurück an Navision gegeben wird wenn darauf geklickt wird.

Externe Links mit Navision-Programmcode

Das Tracking führ zu einer externen Website:

Navision Tracking über DPD im Infocenter

während die Anzahl der Lieferscheinzeilen zu einem internen Link im Infocenter führt:


Die Artikelnummer wird dabei wieder zu einem Link, so können beliebige Informationstiefen im Infocenter verschachtel werden, ohne das eine einzige Website o.ä. im Internet erstellt werden muss:

Send(‚[_mark]Artikelnr.:|’+Item.“No.“);
Send(‚[_mark]Beschreibung:|’+Item.Description);
Send(‚[_mark]Beschreibung 2:|’+Item.“Description 2″);
Send(‚[_mark]Einheit:|’+Item.“Sales Unit of Measure“);
SendBackLink;

Auch grafische Buttons/Links sind einfach möglich:

Infocenter zeigt eine Artikelliste mit Links zu Unterseiten an

Ein klick auf das rote X startet wieder über einen frei programmierbaren internen Link die Funktion zum Löschen einer Lieferadresse, ein Klick auf den Text-Link „Karte“ ruft eine externe Online-Kartendarstellung auf, ein Klick auf den grünen Haken übernimmt diese Lieferadresse in den Ordersatz. Aus Datenschutzgründen sind die Adressen hier unleserlich gemacht worden.

Weitere Möglichkeiten für das Infocenter:

  • Geben Sie Ihren Außendienstler die Informationen für  „Ich bin in der Poststraße in Köln, welche Kunden habe ich im Umkreis von 30 Kilometer die a) im letzten Jahr bei mir gekauft haben oder b) im letzten Jahr nicht bei mir gekauft haben“.
  • Lassen Sie Ihren Fahrer schnell mal von unterwegs seine Aktivität eintragen: „Ich habe jetzt die Lieferung für Müller abgeladen“ (was dann direkt zurück in die Navisiondatenbank fließen kann: Lieferschein 123456 und 123457 ausgeliefert, Rechnung kann geschrieben werden).
  • Rückstandsinfo und Pakettracking für Ihre Kunden
  • Einfache Erfassung von Monteurszeiten einfach nur im Browser auf dem Smartphone, ohne jede zusätzliche Software / App
  • Tourenpläne für ihre Fahrer

Ohne Remote Desktop, ohne Citrix client, ohne direkte Einwahl in das Firmennetz. Alleine über einen passend codierten Link kann die Datenbank direkt fertig aufbereiteten Zahlen für die Geschäftsführung ausliefern. Welche Rückstände gibt es? Aktuelle Umsatzzahlen? Welche Mitarbeiter sind heute krank?

Sparen Sie sich Pflegearbeit! Lassen Sie Lieferanten aktiv ihre Einkaufspreise, Verfügbarkeiten und Liefertermine für rückständige Waren pflegen. Lassen Sie Ihre Kunden selber ihre Lieferadressen korrigieren.