[Gelöst] Erstellen einer Verknüpfung

18. Juli 2008 14:49

Wir wollen aus Navision Emails versenden, die eine Verknüpfung zur angegeben Form und zum angegebenen Datensatz hat. Also equivalent zur Funktion Datei/senden/verknüpfung durch Email. Weiß einer wie diese funktion aufgerufen werden kann oder wie wir so einen Verknüpfung erstellen und diese per Mail versenden können. CU 397 ist bekannt und wird schon für andere Zwecke benutzt.

MFG

Sven
Zuletzt geändert von Dreistein am 21. Juli 2008 10:41, insgesamt 1-mal geändert.

18. Juli 2008 16:31

ich bin auch gerade bei so einer Funktion und bin so weit:

Codeunit 400 und die dazugehörige DLL (aus NAV 5.0) besorgen. CreateMessage Funktion nutzen und HTML anstellen und einen Hyperlink in die Message bauen (<a href="www.web.de">web.de</a>). Aber nun wuerde quasi der Link in die DB fehlen... dafuer gibt es den Befehl ContextURL nur verweisst er "nur" auf die Datenbank, nicht jedoch auf ein Objekt...dafuer fehlen noch Parameter.

18. Juli 2008 18:37

Der einfachste Weg ist, dass du dir manuell einen Link zu der Form auf den Desktop sendest und die Verknüpfung Stück für Stück analysierst, um den Aufbau zu verstehen.

Beispiel (Verkaufsauftrag 101005:
Code:
navision://client/run?servername=navserver%26database=Standard50SP1%26company=CRONUS%20AG%26target=Form%2042%26view=SORTING(Field1,Field3)%20WHERE(Field5796=1(''..23.01.08))%26position=Field1=0(1),Field3=0(101005)%26servertype=MSSQL

Nehmen wir die URL doch mal auseinander:
  • navision://client/run?
    Konstanter Wert, der immer am Anfang stehen muss.
  • servername=navserver
    Name des NAV-Servers (IP-Adresse oder Domain)
  • database=Standard50SP1
    Name der zu öffnenden NAV-Datenbank (nur bei SQL-Server notwendig)
  • company=CRONUS%20AG
    Name des zu öffnenden Mandanten
  • target=Form%2042
    Objektart und ID des zu öffnenden Objektes
  • view=SORTING(Field1,Field3)%20WHERE(Field5796=1("..23.01.08))
    String für den View mit der aktuellen Sortierung sowie den gesetzten Filtern.
    In diesem Fall: Sortierung nach Belegart,Nr. und Datumsfilter = Filter "..23.01.08"
  • position=Field1=0(1),Field3=0(101005)
    Anzuzeigender Datensatz, identifiziert durch die Primärschlüsselfelder.
    In diesem Fall: Belegart=Const(Auftrag), Nr.=Const(101005)
  • servertype=MSSQL
    Handelt es sich um einen MS SQL-Server (MSSQL) oder Navision Database Server (NAVISION)?
    Entscheidend, da entweder die finsql.exe oder die fin.exe aufgerufen werden muss.

Die ganzen Parameter werden mit %26 (also dem &) verkettet. (Das erste Element ist kein Parameter, daher folgt danach auch kein %26!

Wie man sieht, ist es kein Hexenwerk, man muss sich nur zu helfen wissen.
Ich kenne den Aufbau der URL auch nicht auswendig und habe diesen Trick gerade verwendet, um die notwendigen Parameter zu beschreiben.

18. Juli 2008 21:16

schaut mal bei MiBuso unter Tips und Tricks.
Da hab ich die komplette Lösung vor langer Zeit mal gepostet.

Ich glaub timo wollte das damals sogar in seine "Toolbox" aufnehmen. ODer war das was anderes :shock:

19. Juli 2008 04:12

Der einfachste Weg ist, dass du dir manuell einen Link zu der Form auf den Desktop sendest und die Verknüpfung Stück für Stück analysierst, um den Aufbau zu verstehen.

das war Plan B, hatte die Hoffnung das es ne Funktion gibt die das selbe wie CONTEXTURL macht nur genauer!
Aber danke fuer deine Analyse schonmal!

19. Juli 2008 17:42

Sorry wegen doppelpost aber mir is grade mal was aufgefallen:

Ich hab zurzeit nur nen 5.0 Client aber hier gibts doch die Proptery:
"CurrForm.URL"

die gibt genau den Wert aus.... man brauchs soweit ich das gesehen habe nicht selbst zusammen zu bauen :)

19. Juli 2008 17:44

gibts auch unter 4

20. Juli 2008 11:34

MatthiasKönig hat geschrieben:Ich hab zurzeit nur nen 5.0 Client aber hier gibts doch die Proptery:
"CurrForm.URL"

die gibt genau den Wert aus.... man brauchs soweit ich das gesehen habe nicht selbst zusammen zu bauen :)

Ist zwar kein Property, sondern eine Funktion, aber wurscht.
Sie liefert genau das, was hier gesucht wird, und die Online-Hilfe dazu liefert sogar sämtliche möglichen Parameter inkl. der jeweils möglichen Werte.

Wieso bin ich nicht selbst darauf gekommen?

20. Juli 2008 11:37

@Timo: weil man meist sowas weis, es aber leider manchmal nicht abrufen kann, weil es irgendwo hinten im grauen "Stübchen" verstaut ist ;-)

21. Juli 2008 10:42

Vielen Dank ersteinmal. Mein Kollge wird sich damit dann noch beschäftigen. Sollten doch noch Probleme auftauchen melde ich moch nochmal.

Vielen Dank für die Unterstützung.

Sven

Re: [Gelöst] Erstellen einer Verknüpfung

29. September 2008 10:03

@garak
ich konnte deine Lösung bei Mibuso leider nicht finden.
Kannst du mir einen Link schicken?


Wäre auch für jede andere Hilfe dankbar.
Ich bekomme einfach keinen funktionsfähigen Link gebastelt.

Wir nutzen noch kein Outlook. Deshalb müß ich den Link / URL in ein File schreiben und das dann als Anhang an die Mail hängen.
Wenn ich die entsprechende Funktion im Client aufrufe, passiert genau das selbe. Es geht eine neue Mail auf, an der eine .url Datei dran hänge.

Danke schonmal.

Re: [Gelöst] Erstellen einer Verknüpfung

29. September 2008 10:09

hast du dir die Funktion "CurrForm.URL" nun schon abgeschaut?

Re: [Gelöst] Erstellen einer Verknüpfung

29. September 2008 10:20

Ja klar.
Aber wenn ich die URL so wie sie von der Funkion geliefert wird in eine Mail reinstecke (natürlich erst nach einer ASCII to ANSI Konvertierung), ist sie nicht funktionsfähig.