[Gelöst] Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 15:10

Hallo alle zusammen,

ich plane ein technisches Update von Navision 2.6 auf 5.xx - wegen OS Umstellung (WIN7 Pro.). Eigentlich ist die Testphase schon fast abgeschlossen, nur leider habe ich zu guter letzt noch einen Kompatibilitätsfehler der Individualanpassung für Easy Archiv gefunden. Über folgenden Quellcode-Teil haben wir in der Vergangenheit aus einem Auftrag heraus die entsprechende Archivmappe geöffnet (Funktioniert tadellos):


Code:
Acode := 'WL' + FORMAT(Auftragsdatum,0,'<Year4>');
-------
ArchivCode := AC;
ADoc.SETRANGE(Belegnr,"Nr.");
ADoc.SETRANGE(Code,ArchivCode);
IF ADoc.FIND('+') THEN BEGIN
  IF ADoc."Dokumenten Id" <> '' THEN BEGIN
    Einr.GET;
    IF EXISTS(Einr."EASY Programmpfad" + '\EZCBDF32.EXE') THEN BEGIN
      Datei.QUERYREPLACE(FALSE);
      Datei.TEXTMODE(TRUE)  ;
      Datei.CREATE(Einr."Temp Verzeichnis"+ '\' + USERID + '.EQE');
      Datei.WRITE(ADoc.Lagerort + '\' + ADoc.Archiv);
      Datei.WRITE('0=');
      Datei.WRITE('1001=' + ''); {Beleg}
      Datei.WRITE('1002=' + '');  {Kunde}
      Datei.WRITE('101=#' + ADoc."Dokumenten Id");   {Mappe}
      Datei.CLOSE;

      Comm := Einr."EASY Programmpfad" + '\EZCBDF32.EXE /A:' +
              ADoc.Lagerort + '\' + ADoc.Archiv + ' /QRY:@' + Einr."Temp Verzeichnis"+ '\' +
              USERID + '.EQE' + ' /STARTQRY /NONAV';
      SHELL(Comm);
    END;
  END ELSE BEGIN
    MESSAGE('Dieses Dokument wurde nicht archiviert!');
  END;
END ELSE BEGIN
  ERROR('Dieses Dokument ist noch nicht\'+
        'ins Archiv übernommen!');
END;


Nach dem technischen Update in Navi 5.xx erscheint die Fehlermeldung (Siehe Anhang)!? Wenn ich den in der Fehlermeldung generierten Pfad über eine Verknüpfung manuell öffne, komme ich in die gewünschte Auftrags-Mappe (Archiv). Demnach muss der Pfad richtig sein...!?

Ich würde mich sehr über uere Lösungsansätze freuen...


Chris
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von chris-navi am 23. Mai 2011 14:35, insgesamt 2-mal geändert.

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 15:18

Herzlich willkommen bei uns im Forum!

Vielen Dank für deine detaillierte Beschreibung.
Es wäre sehr nett von dir, wenn du uns die Lesbarkeit deutlich vereinfachen würdest, indem du:

  • Quelltext zwischen zwei sog. Code-Tags schreibst, Beispiel
    [code]Dein Quelltext[/code]. So bleiben alle Einrückungen erhalten und der Quelltext ist kopierbar.
  • Fehlermeldungen in NAV kannst du einfach per Strg+C kopieren und hier im Beitragstext einfügen. Dies erspart uns den Download der PDF-Datei und im Forum kann nach diesem Fehlertext gesucht werden.

Vielen Dank für deine Mithilfe!

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 15:24

Hallo und vielen Dank für den Hinweis! ...gesagt getan.

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 15:29

chris-navi hat geschrieben:Hallo und vielen Dank für den Hinweis! ...gesagt getan.

Die Fehlermeldung seh ich zwar noch immer nicht im Beitragstext, aber will mal nicht so sein ;-)

In Win7 haben sich die Pfade geändert.
C:\Programme gibt es nicht mehr, das heißt jetzt C:\Program Files (wird aber als C:\Programme angezeigt).
Falls es für das Archiv einstellbare Pfade gibt (sehe grad: Einr."EASY Programmpfad"), aktualisiert diese. Dann sollte es wieder funktionieren.

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 15:35

Die Pfade sind nicht das Problem, da ich die erste Testphase auf einer VM unter XP tese. Anderenfalls könnte ich den Pfad ja auch nicht manuell öffnen.

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 15:54

Was ist mit
Code:
ADoc.Lagerort + '\' + ADoc.Archiv
- hast du auch auf diese Zugriff innerhalb der VM?

Ansonsten:
Möglicherweise hat sich zwischen den beiden NAV-Versionen der Aufruf der SHELL-Funktion geändert.
http://msdn.microsoft.com/en-us/library/dd355282.aspx
So wird es normalerweise zumindest in NAV 2009 erwartet:
Code:
ret := SHELL('C:\windows\notepad.exe C:\MyFile.txt');

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 16:35

Hallo Chris,

wir hatten damals auch Probleme, ich weiß die Fehlermeldung leider nicht mehr. Ich weiß nur noch es war nicht sehr sprechend und am Ende war es nur die Zeichenlänge des Strings den wir in der Shell geöffnet haben.

Ich habe dann eine Batch-Datei erstellt, die ich mit dem Archivlagerort und Archivnamen gefüllt habe.

BePetra
ispiel
@%1 /BAT /A:%2\%3 /QRY:@%4

nun habe ich in Navision den Aufruf folgendermaßen gesteuert

shell('easy.bat', Exe-Datei, Lagerort, Archivname, eqe-Datei);

Gruß

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 16:54

Hallo Petra69,

Danke für Deinen Hinweis! Stimmt, ich habe mal davon gehört, "Shell" dass die Befehllänge in älteren Versionen nicht länger sein darf als 80 Zeichen!? Könntest Du mit das mit der Batchdatei mal genauer erläutern. Beispiel Batchdatei + C/AL-Code?? Wäre klasse. Alternativ könntest Du ,ir ja mal den aktuellen Code zusenden, damit ich ein wenig abkupfern kann..

Chris

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 16:57

Die Frage ist dann ja wohl nur wie folgender Code nach einem Technischen Update aussehen muss:

Code:
Comm := Einr."EASY Programmpfad" + '\EZCBDF32.EXE /A:' +
              ADoc.Lagerort + '\' + ADoc.Archiv + ' /QRY:@' + Einr."Temp Verzeichnis"+ '\' +
              USERID + '.EQE' + ' /STARTQRY /NONAV';
      SHELL(Comm);


...oder ob er ev. wirklich zu lang ist und nach einer alternative gesucht werden muss. Wie gesagt inter 2.6 und Easy 3.4 läuft alles tadellos.

Chris

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

5. Mai 2011 18:32

Die Fehlermeldung besagt, dass der SHELL-Inhalt ein ungültiges Zeichen enthält. Ich hätte dies zu identifizieren versucht.

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

6. Mai 2011 10:12

Natürlich ist die Fehlermeldung eine andere. Aber man kann ja auch mal andere Sachen ausprobieren. Ich finde nicht dass die Fehlermeldungen immer wirklich richtig sind.

Hatte ja im ersten Beitrag schon ein Beispiel gemacht, dass man ja anpassen könnte.

Code:
 
BatchDatei z.B. C:\Easy.bat:
%1 /A:%2\%3 /QRY:@%4 /STARTQRY /NONAV

eqe-Datei als Text einrichten
exe-Datei als Text einrichten

eqe-Datei := Einr."Temp Verzeichnis"+ '\' + USERID() + '.EQE'
exe-Datei := Einr."EASY Programmpfad" + '\EZCBDF32.EXE'

Shell('C:\Easy.bat', exe-Datei, ADoc.Lagerort, ADoc.Archiv, eqe-Datei);


Vielleicht kannst Du aber ja auch schon den Programmpfad in die Batch-Datei schreiben.
Ist nur ein Lösungsansatz, den ich natürlich nicht testen kann. Vielleicht hat Natalie ja auch recht.

Gruß Petra

Re: Techn. Update 2.6 => 5.xx (Problem Easy Archiv)

23. Mai 2011 14:31

Leider bin ich jetzt erst zur weiteren Fehlersuche gekommen. Natalie bzw die Navision-Fehlermeldung hatte recht. Der ursprüngliche Quellcode-Teil:

Code:
Comm := Einr."EASY Programmpfad" + '\EZCBDF32.EXE /A:' +
              ADoc.Lagerort + '\' + ADoc.Archiv + ' /QRY:@' + Einr."Temp Verzeichnis"+ '\' +
              USERID + '.EQE' + ' /STARTQRY /NONAV';
SHELL(Comm);


muss nach dem Techn.-Update wie folgt aussehen :idea: :

Code:
SHELL(Einr."EASY Programmpfad" + '\EZCBDF32.EXE',' /A:' +
  ADoc.Lagerort + '\' + ADoc.Archiv + ' /QRY:@' + Einr."Temp Verzeichnis"+ '\' +
  USERID + '.EQE' + ' /STARTQRY /NONAV')


wobei dieser Codeteil auch ausreicht :idea: :

Code:
SHELL(Einr."EASY Programmpfad" + '\EZCBDF32.EXE',' /QRY:@'
  + Einr."Temp Verzeichnis"+ '\' +
  USERID + '.EQE' + ' /STARTQRY /NONAV')


..denn "/A: + ADoc.Lagerort..." macht eigentlich keinen Sinn. Ich gehe davon aus, dass A: ein altes Netzlaufwerk zum Easy-Srv bezeichnet. Aber ist ja auch egal denn beide Versionen funktionieren. Verwenden werde ich allerdings die zweite Variante, denn in der generierten "USER.EQE" Datei wird der Lagerort mit übergeben.

Noch einmal ein Dickes DANKE an alle die mir auf die Sprünge geholfen haben.
SUPER Forum :-D