Drucksteuerung im Navision 2009

25. Februar 2010 00:58

Hallo Forum,

das ist mein erster Beitrag und ich hoffe das ich mein Problem gut beschreiben kann!

Wir haben eine Virtuelle 2008 Umgebung (bestehend aus DC, Datenbankserver, Exchange, Terminalserver, und einem eigenen Navisionserver). Alles woweit gut!
Der DC wird benutzt als Printserver, der die Drucker in der AD veröffentlicht.
Das Problem das ich habe ist folgendes: Ich möchte auf dem Navisionserver zentral einstellen aus welchem Drucker und Schacht ein Bericht gedruckt wird. Dabei möchte ich nicht darauf achten müssen, das bei dem gerade angemeldeten User/Client der Drucker mit der richtigen Schachteinstellung installiert und eingestellt ist.
Es muss doch eine Lösung geben, mit der ich sicherstellen kann, dass die Druckereinstellungen die ich über den Server vorgebe, beibehalten werden. Auch wenn ein User einen Drucker mal verstellt, löscht oder dieser ganz auf dem Client fehlt. Rechnungen und Lieferscheine, etc. sollen jeweils auf spezielles Papier gedruckt werden, welches ich verschiedenen Fächern im Drucker zugewiesen habe.

Beispiel:--> Egal wie und wo ich mich anmelde, eine "Rechnung" soll grundsätzlich aus dem "Fach 2" gedruckt werden. Ein "Lieferschein" immer aus dem "Fach 1" gedruckt werden. Die Rechnungskopie soll dann nicht auf das Logo-Papier in Fach 2 sondern auf normales Papier (ggf. Fach 3) gedruckt werden.

Im Forum wird oft vom NAS gesprochen, ist das meine Lösung?

Danke für eure Hilfe.
Gruß Oliver

Re: Drucksteuerung im Navision 2009

25. Februar 2010 09:58

schau doch mal hier.

Gruß, Fiddi

Re: Drucksteuerung im Navision 2009

25. Februar 2010 10:51

Damit die Drucker auf jedem Client im Netz vorhanden sind, bietet sich noch an diese per GPO zu verteilen.

Volker

Re: Drucksteuerung im Navision 2009

25. Februar 2010 23:52

Hallo Volker Hallo Fiddi,
danke für die guten anregungen.
Mit den Gruppenrichtlinien ist eine gute sache, aber ich möchte vieleicht nicht alle Drucker den Benutzern bereitstellen.
Mit den Schachtnummern ist eine super Tipp, so kann ich steuern wo der Druck rauskommt, auber auch bei der Lösung muss ich auf jedem Client die Drucker Installiert haben.
Ich suche eine Lösung, wo ich auf den Navserver die Drucker installiere und der User nichts davon mitbekommt!
Der User Bucht und Druckt eine Rechnung und Navision weiss wo die Rechnung gedruckt werden muss ohne das der User eine ertscheidung treffen muss.

Gruss Oliver

Re: Drucksteuerung im Navision 2009

26. Februar 2010 00:05

Also wohin NAV drucken soll kannst du in der Tabelle 77 oder 78 (ich kann mir die immer nicht merken :-( ) kannst du einstellen auf welchen Drucker bei welchem User ein Report gedruckt wird.
Aber um die Installation des Treibers kommst du dabei nicht herum.

Einfacher wird es, wenn du deine Benutzer auf einen Terminalserver schickst, dann musst du die Drucker nur einmal installieren.

Gruß, fiddi

Re: Drucksteuerung im Navision 2009

26. Februar 2010 04:11

Hallo Fiddi,

wir arbeiten mit einer Terminalumgebung 2008 R2 super sache :-D
Reicht es Navision, nur den Treiber Installiert zu haben ohne den Drucker ?
Und wo greifft die Tabelle?
Wenn ich die Einstellung auf dem Navisionserver durchführe mit Installiertem Treiber reicht das?
Das heisst:
1. Installation Treiber auf dem Navisionserver
2. Zuweisen der Berichte zum Drucker in Tabelle 77 oder 78 auf dem Navisionserver
3. Setzen der Parameter in den Berichten welcher Schacht genutzt werden soll.
Fertig ???

ich versuche mein Problem einmal an einem Beispiel zu erleutern:

Wir haben auf dem Navisionserver einen PDF Drucker installiert der Fa. piiiiiiip, dieser Drucker wird benutzt, wenn wir aus Navision Mails oder Faxe versenden (Angebote,ABs, Lieferscheine, Bestellungen usw) dieser Drucker wird über einen Connector angesteuert und erzeugt in einem bestimmten Verseichniss ein PDF.Zusätzlich wir durch ein Installiertes Plugin unser Firmenlogo hinter dem Bericht gebunden.
Diesen Drucker braucht keiner der User, zusätzlich währe auch noch die gefahr das ein User die einstellung des Druckers verändert und somit nicht mehr Faxen und Mailsen kann. Der Administrative aufwand ist sehr hoch.

Jetzt kenne ich die vorgehensweise der Konkurrenz im ERP umfeld mit den drei buchstaben S.. dort ist es egal was ich auf meinen Clients für Drucker Installiert habe. Die Drucken einfach mit einem eigenem Treiber auf die IP des Druckers und fertig.
Ich stelle mir nur vor, in einer umgebung mit 500 Usern oder mehr mit einer Logistik mit Hochregalstapler die Etiketten drucken usw. wer soll da noch durchblicken auf welchem Client welcher Drucker Installiert ist?

Gruss Oliver

Re: Drucksteuerung im Navision 2009

26. Februar 2010 09:57

Also mit Treiber installieren ist das bei NAV leider nicht getan, du musst schon einen Drucker installieren, den du in der Tabelle einträgst.
Wir haben in unserer Branchenlösung eine Funktonalität, dass man den Drucker-Dialog ausblenden kann, d.h. wenn der Anwender auf Drucken geht, dann wird der Report ohne zu Fragen auf dem eingestellten Drucker gedruckt. Vielleicht kannst du ja etwas ähnliches implementieren. Hierbei musst du allerdings beachten, dass das Requestform nicht angezeigt wird, was bei einigen Belegen zu Problemen führen kann.

Gruß, Fiddi

Re: Drucksteuerung im Navision 2009

26. Februar 2010 18:26

Hallo Fiddi,

ja die Funktionalität mit dem Druckerdialog kenne ich, und es wird bei uns auch eingesetzt.
Leider ist das noch nicht die Endlösung die ich suche, aber dein Hinweis mit den Schächten hat mich ein Stück näher gebracht ans Ziel.
Danke dafür.
Gibt es im Forum noch weitere Anregungen zu diesem Team?
Ich sehe aufgrund der Klicks ist das wohl ein sehr beliebtes Tema!

Gruss Oliver

Re: Drucksteuerung im Navision 2009

8. März 2010 16:52

Dieses Thema löst ja direkt heftigste Diskussionen aus, aber wen wundert´s bei dem spärlichen Drucker-Management
von Navision. Wir haben das gleiche Problem gehabt, wobei hier auch die User alle Nase lang von Platz zu Platz springen.

1. Problem
Wechselt jemand den Platz, nimmt er die gemappten Drucker vom Print-Server, die er sich über "hinzufügen" angelegt hat quasi mit,
will sagen; Nach der Anmeldung am anderen System sind wieder die vorher gemappten netzwerk-Drucker vorhanden.
Wo da bei Windows der Sinn liegt, ist mir bis heute verborgen geblieben. Auf jeden Fall ist das blöd, wenn z.B. jemand die Etage oder
das Gebäude wechselt.

Abhilfe:
Ein VB Script das über die GPOs bei der Anmeldung eines users ausgeführt wird. Da wir nur 80 User haben, ist dies hier noch die "faule"
Lösung, wo die Zuodnungen für jeden Arbeitsplatz einfach einmalig hart in dem Script kodiert werden, wenn ein neuer Computer eingerichtet
wird. Hier nur mal die prizipielle Vorgehensweise:

Code:
  Select Case WshSysEnv("CLIENTNAME")
   .....
   .....
    CASE "WS-IT4"
          RemNetPrinter()
          net.AddWindowsPrinterConnection "\\MBMISC01\PDF_DRUCKER"          
          net.AddWindowsPrinterConnection "\\MBPS01\LOKAL_IT"       
          net.AddWindowsPrinterConnection "\\MBPS01\RG_LOKAL_IT"
           net.SetDefaultPrinter "\\MBPS01\LOKAL_IT"                


Damit hat jeder User, der sich auf irgendeinem Rechner anmeldet, immer die Drucker gemappt, die auch in der Nähe dieses Rechners
stehen.

2. Problem
Bei uns ist es so, dass jeder User bestimmte Belege wie Rechnungen auf Firmenpapiert in Schacht 2 und andere Dinge auf weißes
Papier in Schat 3 drucken können muss (HP Laser). Nun haben wir uns gar nicht den Streß gemacht, mit der Drucker-Steuerung
zu experimentieren, sondern auf dem Print-Server für jeden physischen Drucker je 2 Printserver-Drucker eingerichtet - einen fest
auf Schacht 2 und einen fest auf Schacht 3 eingestellt.
Nun muss aber auf einem Print-Server jeder Drucker einen anderen Namen haben, was mir in Verbindung mit Navision sowieso schon immer
ein Problemchen zu sein scheint. Schließlich kann ich so nicht jedem Report fest einen Drucker mit einem KONKRETEN NAMEN zuordnen.

Also arbeiten wir mit einer Namens-Basis:
Der Drucker für Schacht 2 (rechnungen etc.) heißt immer RG_LOKAL_<abteilung> und der Drucker für das weiße Papier in Schacht 3
heißt immer LOKAL_<abteilung>. Also z.B. RG_LOKAL_IT und LOKAL_IT

In der Navision Drucker-Verwaltung ist dann hinterlegt, dass beispielweise der Report für den Rechnungs-Druck immer den Drucker
"RG_LOKAL" verwendet. Selbstverständlich würde dies so nicht funktionieren, wenn man nicht etwas in der Navision Drucker-Steuerung
rumfummelt, also in Codeunit 1.

Dort wurde einfach eine Schleife implementiert, die in der Tabelle mit den verfügbaren Drucker den Drucker sucht, der mit der hinterlegten
Namens-Basis matcht:

Code:
IF NOT RecPrinterSelection.GET(USERID, ReportID) THEN
    IF NOT RecPrinterSelection.GET('', ReportID) THEN
      IF NOT RecPrinterSelection.GET(USERID,0) THEN
        IF RecPrinterSelection.GET('',0) THEN;

  IF RecPrinterSelection.Druckername2 <> '' THEN BEGIN
     LängeNameDruckerauswahl := STRLEN(RecPrinterSelection.Druckername2);

     drucker.RESET;
     REPEAT
     UNTIL (drucker.NEXT = 0) OR
           (UPPERCASE(COPYSTR(drucker.ID, 1, LängeNameDruckerauswahl)) = UPPERCASE(RecPrinterSelection.Druckername2));

     IF (UPPERCASE(COPYSTR(drucker.ID, 1, LängeNameDruckerauswahl)) = UPPERCASE(RecPrinterSelection.Druckername2)) THEN
       EXIT(drucker.ID)
     ELSE
       EXIT('');
  END ELSE
    EXIT(RecPrinterSelection."Printer Name");

Beispiel: Bei mir würde der Report 50085 den Drucker Basisnamen "RG_LOKAL" an die CU1 übergeben. Die Schleife würde dann
in der temporären Tabelle von Navision, in die beim Start alle vorhandenen Drucker geladen werden, den ersten Eintrag suchen,
der mit RG_LOKAL beginnt, und diese ID an den Report zurückgeben, so dass auf genau diesen Drucker gedruckt wird.

Und das ist es dann auch schon - läuft seit Jahren, und ohne jegliche Probleme. Wie alles kann auch hier verbessert werden, und
das VBScript könnte die Mappings beispielweise auch aus einer Datenbank lesen ...

Pidi

Re: Drucksteuerung im Navision 2009

20. März 2010 12:55

Hallo Pidi,

danke für deine Hife.
Was du schreibst hört sich richtig aufwendig an :roll:
mein Ziel ist es einfach das auf dem Navisionserver für die einzelnen Berichte Drucker eingestellt sind die der Benutzer nicht sieht und verstellen kann.
Ich möchte den usern nicht alle Drucker die er zum Drucken der Berichte braucht installieren.

1 Beispiel: Hochregalsteuerung Versandlabel kein Benutzer braucht diesen Drucker für den Normalen Druck, nur beim Buchen im Lager soll aus dem Drucker das Label ausgedruckt werden.

2 Beispiel: Im Vertrieb wird eine wird ein Auftrag angelegt, und in der Logistik soll der Kommissionierauftrag gedruckt werden.

3 Beispiel: der Kommissionierer Bucht den Auftrag und bekommt den Lieferschein gedruckt in der Buchhaltung wird die Rechnung gedruckt.

Gruss Oliver

Re: Drucksteuerung im Navision 2009

20. März 2010 15:18

Vielleicht etwas Aufwand, aber wenn man die Ausdrucke alle mit einm PDF-Printer in passende Verzeichniss auf den Server "druckt" und der Server je nach Verzeichnis bei eintreffen einer Datei an die entsprechenden Drucker übergibt sollte es doch gehen. Mit eurer Faxlösung macht Ihr es doch auch so.

Volker

Re: Drucksteuerung im Navision 2009

20. März 2010 18:25

Für das, was Volker als Beispiele aufführt, muss man natürlich nicht soviel Aufwand treiben, wie den von mir beschriebenen.
Kompliziert ist das allerdings überhaupt nicht. Es sind nur wenige Code-zeilen in der CU 1 und ein VB-Script in dem sich die
Zuordnung der Drucker für jeden PC mehr oder weniger individuell wiederholt. Dann muss man noch die Drucker auf dem Print-
Server einrichten.

Wenn aber ein Navision Report immer nur einen Drucker als Ziel hat, kann man sich das sparen. Sobald aber wie bei mir 50 User
eine Rechnung über den gleichen Navision Report drucken, der dann immer unmittelbar an deren Arbeitsplatz ausgedruckt werden
soll, auch wenn dieser user "wandert", dann würde ich diese Vorgehensweise als sinnvoll erachten.
Alles zentral auf einem Server als .pdf zu drucken, und dann zu verteilen ist im Aufwand letzlich auch nicht einfacher ... oder?

Aber bitte - immer, was man braucht. Ich wollte damit auch zeigen, dass diese überobersimple Implementierung der Report-Drucker
Steuerung vom Nav Standard in der CU 1 sehr vielfältig ausgebaut werden kann. Ich gehe z.B. auch hin, und nutze eine Single Instance
Codeunit so, dass sie über Funktionen ein Äquivalent zu PUBLIC Variablen bereit stellt. So gibt es dort auch eine "Variable" um einen
Drucker festzulegen, dies aber immer nur für den folgenden Druckjob:
Code:
           CuPublics.SetPrinter(RecReportSelections."Printer Name Base");
           REPORT.RUN(RecReportSelections."Report ID",FALSE,FALSE,RecInvSalesHeader);
Diese Information wird dann in der CU1 quasi "abgefangen", und hat eine höhere Priorität als der in der Navision Druckereinrichtung
hinterlegte Drucker.

Code:
// Die GetPrinter() Funktion löscht gleichzeitig den Drucker in der PUBLIC Variablen!
FestgelegterDrucker := CuPublics.GetPrinter();

IF FestgelegterDrucker <> '' THEN BEGIN
  // Wenn die PUBLIC Variable mit einem Drucker belegt wurde, wird dieser Bevorzugt verwendet!
   LängeNameDruckerauswahl := STRLEN(FestgelegterDrucker);

   drucker.RESET;
   REPEAT
   UNTIL (drucker.NEXT = 0) OR
         (UPPERCASE(COPYSTR(drucker.ID, 1, LängeNameDruckerauswahl)) = UPPERCASE(FestgelegterDrucker));

   IF (UPPERCASE(COPYSTR(drucker.ID, 1, LängeNameDruckerauswahl)) = UPPERCASE(FestgelegterDrucker)) THEN
     EXIT(drucker.ID)
   ELSE
     EXIT('');
END ELSE BEGIN
  IF NOT RecPrinterSelection.GET(USERID, ReportID) THEN
    IF NOT RecPrinterSelection.GET('', ReportID) THEN
      IF NOT RecPrinterSelection.GET(USERID,0) THEN
        IF RecPrinterSelection.GET('',0) THEN;

     Standard-Druckerbehandlung
END;


Man hat also auch bei Nav viele Möglichkeiten der Drucker Steuerung , wobei auch ich bisher zu faul war, hier etwas für die
Schacht-Steuuerung zu bauen, und mir lieber 2 Treiber-Instanzen pro Drucker auf dem Print-Server anlege ... alles läßt sich
verbessern ...

Pidi

Re: Drucksteuerung im Navision 2009

20. März 2010 22:47

Hallo Pidi,
verstehe ich das Richtig das die Drucker nur auf dem Printserver angelegt sein müssen und nicht auf jedem Client.

Gruß Oliver

Re: Drucksteuerung im Navision 2009

21. März 2010 00:24

Das ist korrekt - die Drucker werden ausschließlich auf einem 2003er Print Server angelegt.

Genau diese Drucker werden dann aber weder von der IT Abteilung noch von den Anwendern über "Drucker hinzufügen"
aud die Arbeitsstation gemappt, sondern genau das macht mein VB script. In diesem script sind das dann eigentlich
sehr simple Befehle mit denen der Name des PC abgefragt und die entsprechenden Drucker gemappt werden. Ein Code
Beispiel hatte ich ja bereits zuvor in diesem Thread gezeigt.

Da das script über die Gruppenrichtlinien bei jeder Benutzer Anmeldung ausgeführt wird, hat immer jeder Benutzer auf
jedem PC an den er sich setzt, sofort nach der Anmeldung die passenden Netzwerk-Drucker des erwähnten Print-Servers
zur Verfügung.

Alles eigentlich sehr simpel, gleichzeitig aber auch sehr dynamisch ...

Pidi

Re: Drucksteuerung im Navision 2009

21. März 2010 14:10

@Pidi,

das mappen der Drucker auf den Client ist aber genau das installieren der Drucker auf dem lokalen Client. Sofern stimmt deine Aussage, das Drucker nicht lokal installiert werden müssen, leider nicht.

Du machst das ganze zwar für die Anwender bzw. dein Script sehr einfach in dem du alle Drucker einmal auf eurem Printserver zentral anlegst, und diese dann nur noch mit dem Script oder per Mausklick auf die Freigabe installiert werden. (dass dem so ist, kann man bei manchen Druckern daran merken, dass beim Mappen keinen passenden Treiber gefunden wurde, und man diesen von Hand installieren möge).
Aber trotzdem gilt auch hier: ohne lokalen Drucker, kein Ausdruck :wink:

Gruß, Fiddi

Re: Drucksteuerung im Navision 2009

21. März 2010 15:17

@fiddi

OK - das ist richtig. Dabei könnte man jetzt noch diskutieren, ob ich den Drucker installiere, oder ob hier implizit
und einmalig pro Version die Treiber der Drucker lokal installiert werden. Aber ist das ein Problem ...?

Mir ging es aber nur um diese Punkte:
Kein Eingrifff durch den User, der damit sowieso überfordert wäre
Keine zusätzliche Arbeit für die IT-Abteilung
Das Navision Druckermanagement ist quasi beliebig ausbaubar

Bis heute ist mir nicht klar, warum innerhalb einer Windows Domäne ein Benutzer die per "Drucker hinzufügen" gemappten
Netzwerk-Drucker über sein Profil auf einen andere rechner mit nimmt. Und mit sind bisher nur 2 Lösungen eingefallen:
alle Drucker auf jedem PC lokal installieren
die beschriebene dynamische Zuweisung bei der Anmeldung

Und wenn ich mich dafür entscheide, über den Print-Server zu arbeiten, dann muss ich wohl das Navision Drucker-Management
aufbohren, wenn ein und der selbe Report z.B. Rechnungen auf bis zu 40 verschiedene Drucker im Unternehmen drucken soll,
denn diese Drucker können auf dem Print Server nun mal nicht gleich heißen.

Pidi