Create simple websites and forms directly from Navision
In Navision, the Infocenter provides you with a fully encapsulated function with which you can easily output various elements, e.g.
Lists (e.g. article lists, deliveries, backlogs)
Links (e.g. parcel tracking, open orders, stock levels)
Cards (detail pages e.g. for extended article information, customer data)
Symbols (such as OK, error, cancel)
Input fields / input lists (e.g. for assembly times, quick orders, recording times, quantities or amounts)
Menus and cross-references are also generated directly in the Navison code!
This means you can easily generate additional "web pages" yourself and implement further functions without having to change a single line of code in the web frontend!
And: All user input is first interpreted by your Navison program, without exception. This means that the interface is completely immune to SQL injections and similar attacks. What your C/AL program does not understand will at worst result in an "unknown call", but never in successful attacks on your Navison structure.
Navision controls PHP directly
The call is made from any browser to the address [domain]. A normal index.html with reference to the index.php is stored there, or the index.php is specified as the start page in the web server.
In short: The (supplied) PHP script initiates a call (trigger) in the Navision NAS, which then starts to calculate and return data. This data can be a login screen or even a menu or finished data. Every call from the website is already pre-filtered on the server side by the PHP_Script, and even this pre-filtered data is interpreted again step by step by Navision. Therefore, the intranet/Navision site is absolutely safe from e.g. SQL injections or other attacks. If a command/command/data combination is not recognized by the Navision program in the application server, no further triggers are triggered and therefore no data is returned.
C/Side commands for a login
Send(‚$$$Login;Anmelden am Infocenter‘); Send(‚Kundennr.:|$TXT_Kundennr~10~‘); Send(‚Kennwort:|$TXT_Kennwort~10~‘); Send(‚ ‚); |
The authentication already takes place in the code unit, so that you can control yourself whether a certain URL already performs an authentication or whether the data should simply be delivered without authentication. Interesting e.g. for machine information, blanket statuses or similar where confidentiality is not important, in-house solutions. $TXT_CustomerNo~10~ creates a form field whose TeXT content is returned to Navision in the variable CustomerNo with the maximum number of digits 10.
Create menu from Navision
This creates a simple, freely expandable Internet menu (also with multiple columns):
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(‚ ‚); |
The text "Offers" is displayed as bold text (_Mark). If the user clicks on this entry, the AB command with the Q parameter is returned to Navision.
List display via 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; |
The number of lines is again displayed as a link, which is returned to Navision with the command SHIPLINES and the parameter "delivery note number" when it is clicked.
External links with Navision program code
Tracking leads to an external website:
while the number of delivery note lines leads to an internal link in the Infocenter:
The article number becomes a link again, so any depth of information can be nested in the Infocenter without having to create a single website or similar on the Internet:
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; |
Graphic buttons/links are also easily possible:
Clicking on the red X again starts the function for deleting a delivery address via a freely programmable internal link, clicking on the text link "Map" calls up an external online map display, clicking on the green tick transfers this delivery address to the order record. For data protection reasons, the addresses have been made illegible here.
Further options for the Infocenter:
- Give your sales representative the information for "I am in Poststrasse in Cologne, which customers do I have within a radius of 30 kilometers who a) have bought from me in the last year or b) have not bought from me in the last year".
- Have your driver quickly enter his activity while on the road: "I have now unloaded the delivery for Müller" (which can then flow directly back into the Navision database: Delivery bill 123456 and 123457 delivered, invoice can be written).
- Backorder information and parcel tracking for your customers
- Simple recording of technician times simply in the browser on the smartphone, without any additional software / app
- Route plans for your drivers
Without remote desktop, without Citrix client, without direct dial-in to the company network. The database can deliver ready-prepared figures directly to the management via a suitably coded link alone. What backlogs are there? Current sales figures? Which employees are off sick today?
Save yourself maintenance work! Let suppliers actively maintain their purchase prices, availability and delivery dates for overdue goods. Let your customers correct their delivery addresses themselves.