[CC]Inventur mit einem Scanner

3. Februar 2020 16:32

Hallo zusammen,

folgendes Szenario:
- Wir haben Scanner die NAV per Terminalserver nutzen.
- Geöffnet wird NAV mit eigens dafür entworfene Forms
- Gescannt wird ein Barcode und die Menge wird händisch eingegeben
- Die gescannten und eingegebenen Daten werden in eine extra Tabelle gespeichert. Nachdem das Formulat mit OK bestätigt wurde.

Folgendes Problem
- Teilweise kommen die gescannten Werte nicht in die Tabelle an.

Der Betriebsleiter behauptet nun, es liegt an Navision.
Warum wieso wesshalb.. weil die Verbindung zwischendurch abbricht.

Meinem Verständnis von einem Terminalserver nach, dürfte ein Verbindungsabbruch nicht dazu führen, dass eine Buchung während des Buchungsvorgangs verloren geht?!
All meine Tests waren positiv und haben nie zu einem Verlust von Daten geführt.

Habt ihr eine Idee, wie ich das Problem weiter eingrenzen kann?
Ich vermute stark, dass es an der Art und Weise der Bedienung des Scanners liegt.
Aber der Betriebsleiter behauptet steif und fest, dass seine Leute keine Fehler machen :/

Re: [CC]Inventur mit einem Scanner

3. Februar 2020 16:45

Hallo,

Inventur mit einem MDE- Scanner ist immer ein Problem, das hier immer eine große Menge an Daten in kurzer Zeit verarbeitet werden müssen. Dabei verlassen sich die Bediener darauf, das die Daten, die sie erfassen auch im NAV ankommen. D.h. man geht davon aus das der Scannvorgang erfolgreich war, und gibt die Menge ein, ohne den Artikel zu prüfen (das dauert zu lange).

Jetzt kann es natürlich vorkommen, dass der Scanner die Daten nicht überträgt, oder überträgt, während das Eingabefeld noch auf der Menge ist. ( gibt dann hässliche Inventurmengen und Beträge, wenn man das nicht prüft).
Und ja, wenn man die Daten mit einem Funk- MDE erfasst kommt es zu Funklöchern (unten im Regal, oder in der letzten Ecke), die eine Übertragung verhindern und zu solchen Merkwürdigkeiten führen können.

Abhilfe schaffen kann man da nur mit einem WLAN- Repeater, den man per Kabeltrommel in die Reihe mit nimmt, in der man gerade arbeitet, man benutzt eine VT100- Lösung (nicht unbedingt ADCS), die mit einer Geräte und Serversoftware arbeitet, die mit Funklöchern umgehen kann (Daten werden zwischen gespeichert und bei Netzverfügbarkeit übertragen), oder man benutzt Offline MDEs, die das Problem nicht haben.

Gruß Fiddi

Re: [CC]Inventur mit einem Scanner

3. Februar 2020 16:56

Diese Offlinelösung wäre mein Favorit.

Aber gut, danke für die Info. Hätte nicht gedacht, dass beim Terminalserver Verbindungsabbrüche dazu führen können.
Dachte, dann ist einfach nur die Verbindung weg aber die Daten sind schon im Rechenzentrum. Ausser.. es wird in dem Moment auf ok geklickt, wenn die Verbindung abbricht.

so lernt man nie aus.

Re: [CC]Inventur mit einem Scanner

3. Februar 2020 17:10

Die Offlinelösung hat aber meistens das Problem, dass Sie keine Artikel kennt und einfach nur den Barcode und die Menge erfasst, das macht das Ganze auch nicht unbedingt einfacher.

Gruß Fiddi

Re: [CC]Inventur mit einem Scanner

26. Februar 2020 17:01

Ich habe einen neuen Sachverhalt, der aber sicher zu diesem Thema passt.

Es handelt sich wieder um eine Funktion die mittels Scanner und Citrix gelöst wurde.
Waren werden in die Produktionshalle verbracht.
Am Abend werden die Reste wieder zurück ins Lager gebracht und per Scan "eingebucht".
Während des Scanvorgangs wird auch ein "Retouren" Etikett gedruckt.
Ab und an wird aber der Bericht nicht ausgeführt und es kommt kein Etikett aus dem Drucker.

Der Code ist wie folgt

Code:
Funktion ReturnConsumption()
  InsertLoggingFct(1,USERID,1);
  IF ScanFunctions.UndoReservedQty(Lot,DesiredBoxQtyRet,DesiredRemQtyRet,EmptyFields,Messagex) THEN BEGIN
    InsertLoggingFct(2,USERID,2);
    Lot.SETRECFILTER;
    CLEAR(RepLotReturn);
    RepLotReturn.SETTABLEVIEW(Lot);
    RepLotReturn.SetParams(DesiredBoxQtyRet,DesiredRemQtyRet);
    InsertLoggingFct(3,USERID,3);
    RepLotReturn.RUNMODAL;
    InsertLoggingFct(4,USERID,7);
    MESSAGE('Scan Gebucht');
  END
  ELSE
  BEGIN
    IF EmptyFields THEN
      DIALOG.MESSAGE(Messagex)
    ELSE
      ERROR(Messagex);
  END;
END;

IF EmptyFields THEN
  ClearFields();


Die "InsertLoggingFct" Einträge habe ich erstellt um zu ermitteln, welche Schritte durchlaufen werden.
Der Bericht besteht aus einem Dataitem und dort logge ich OnPreDataItem, OnAfterGetRecord und OnPostDataItem mit.

Ab und an wird der Bericht nicht ausgeführt und ich kann mir nicht erklären, warum das so ist.

Habt ihr ein Idee oder ein Hinweis, wo ich mal nachschauen könnte?

Re: [CC]Inventur mit einem Scanner

27. Februar 2020 11:57

wenn du schon Logging-Funktionen schreibst und verwendest, dann kannst du uns doch sicherlich sagen, ob die auch ausgeführt werden.
Also sicherlich wird
Code:
InsertLoggingFct(1,USERID,1);

ausgeführt und
Code:
InsertLoggingFct(2,USERID,2);

nicht, oder?
dann müsstest du hier suchen:
Code:
ScanFunctions.UndoReservedQty(Lot,DesiredBoxQtyRet,DesiredRemQtyRet,EmptyFields,Messagex)


da ja
Code:
RepLotReturn.RUNMODAL;

der Bericht ist, der nicht ausgeführt wird, oder?

Re: [CC]Inventur mit einem Scanner

27. Februar 2020 15:06

Ich würde das Logging in den Bericht hinein erweitern.
Eventuell wird der Bericht ausgeführt, bleibt aber hängen, oder hat keine Daten.

Re: [CC]Inventur mit einem Scanner

16. März 2020 14:01

Hallo zusammen,

ich hatte das logging in den Bericht hinein erweitert. Es sieht so aus, als würde der Bericht Teilweise übersprungen.

Code:
Funktion ReturnConsumption()
  InsertLoggingFct(1,USERID,1); //Wird ausgeführt
  IF ScanFunctions.UndoReservedQty(Lot,DesiredBoxQtyRet,DesiredRemQtyRet,EmptyFields,Messagex) THEN BEGIN
    InsertLoggingFct(2,USERID,2); //Wird ausgeführt
    Lot.SETRECFILTER;
    CLEAR(RepLotReturn);
    RepLotReturn.SETTABLEVIEW(Lot);
    RepLotReturn.SetParams(DesiredBoxQtyRet,DesiredRemQtyRet);
    InsertLoggingFct(3,USERID,3); //Wird ausgeführt
    RepLotReturn.RUNMODAL; //Wird nicht ausgeführt
    InsertLoggingFct(4,USERID,7); //Wird ausgeführt
    MESSAGE('Scan Gebucht');
  END


Im Bericht selber habe ich jeweils im OnPreDataItem, OnAfterGetRecord und OnPostDataItem ein logging geschrieben.
Diese Einträge werden im Fehlerfall nicht geschrieben.

*EDIT: Quellcode in den Block Code eingefügt
Zuletzt geändert von LandorCaeyran am 16. März 2020 14:26, insgesamt 1-mal geändert.

Re: [CC]Inventur mit einem Scanner

16. März 2020 14:24

Hi,
bitte ändere dein Posting so, dass der Quellcode im Code-Block steht.

Wenn der Code "teilweise" übersprungen wird, hast du ggf. vorher Filter gesetzt oder so?

Re: [CC]Inventur mit einem Scanner

16. März 2020 15:41

sweikelt hat geschrieben:...Wenn der Code "teilweise" übersprungen wird, hast du ggf. vorher Filter gesetzt oder so?

m_schneider hat geschrieben:... oder hat keine Daten.

Ja das meinte ich.

@LandorCaeyran: Hast du mal OnPreReport versucht. Bei OnPreDataItem, kann eventuell schon zu spät sein.

Ich habe noch eine Idee. Ich hatte mal das Phänomen eines nicht gedruckten Etiketts, weil der Druckdialog "Bericht wird gedruckt" einen "Abbrechen"-Button hat.
Dieser ist standardmäßig aktiv. Wenn ich jetzt (bewusst oder unbewusst) nochmal scanne, dann sorgt das abschließende "Enter" für einen Abbruch.
Das lässt sich verhindern, indem du im Bericht die Eigenschaft "ShowPrintStatus" auf "No" setzt.

Re: [CC]Inventur mit einem Scanner

16. März 2020 15:50

Danke für die Hinweise.

Ich erweiter mal das loggin und schaue dann.