[gelöst]Datumsfilter im Dataport

Bild Microsoft Dynamics NAV 5.xx

[gelöst]Datumsfilter im Dataport

Beitragvon DaggiLiehr » 24. Februar 2017 18:03

Hallo zusammen,
ich möchte in einem Dataport vor dem Export anhand des Warenausgangsdatums einen Datumsbereich filtern.
Ich möchte alle Aufträge ausgeben, deren Warenausgangsdatum zwischen morgen und dem nächsten Arbeitstag liegen.
NextWorkDate ist eine Variable vom Typ Date.
Bei Dataport - OnInitDataport() wird die Variable NextWorkDate auch korrekt ermittelt.
Das DataItem SalesHeader hat als Eigenschaft DataItemTableView: SORTING(Filterstatus,Shipment Date).

Nun habe ich im DataItem SalesHeader im Trigger Sales Header - OnBeforeExportRecord() folgendes angegeben:
SETRANGE("Shipment Date", TODAY+1, NextWorkDate);

Es funktioniert im Prinzip auch alles richtig, nur schummelt sich ein Datensatz immer wieder dazu, obwohl dieser herausgefiltert werden mĂĽsste :roll:
Beispiel:
Es gibt diese Aufträge:
Zähler Nr. Warenausg.-Datum
01 A148565 24.02.2017
02 A148848 27.02.2017
03 A148984 27.02.2017
04 A149081 27.02.2017
05 A149086 27.02.2017
07 A148868 27.02.2017

08 A148903 28.02.2017
09 A148995 27.02.2017
10 A149055 28.02.2017

Dann soll mein Dataport diese Datensätze ausgeben: 02-07 und 09.
Aber der erste Datensatz (01) kommt mit, egal, was ich mache.
Habe es auch mit Setfilter probiert, gleiches Ergebnis.

Als Lösung habe ich mir nun damit beholfen ( im Trigger Sales Header - OnBeforeExportRecord() ):
IF "Sales Header"."Shipment Date" <= TODAY THEN
CurrDataport.SKIP;

Das funktioniert, aber ich wĂĽrde sehr gerne verstehen, warum mein Filter nicht funktioniert :-(

LG,
Daggi
Zuletzt geändert von DaggiLiehr am 26. Februar 2017 15:10, insgesamt 1-mal geändert.
Benutzeravatar
DaggiLiehr
 
Beiträge: 19
Registriert: 16. Januar 2015 12:01
Wohnort: Geilenkirchen
Realer Name: Daggi Liehr
Arbeitsort: Geilenkirchen
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 5.01

Re: Datumsfilter im Dataport

Beitragvon JRenz » 24. Februar 2017 20:17

Hallo Daggi,
ich habe zwar derzeit (am privaten Rechner) kein NAV verfügbar, aber ich denke, dass der OnBeforeExport-Triger zu spät kommt, um dort einen Filter für das DataItem zu setzen.
Zu diesem Zeitpunkt bzw. bei Verarbeitung des Triggers dürfte NAV diesen Datensatz schon in der Hand haben und dann kommt der Filter, der dann aber erst nach dem nächsten Trigger für deine Verarbeitung wirksam wird.
Ich meine, es gibt beim Dataport auch ein OnPreDataItem-Trigger - meiner Meinung nach, wäre dies die richtige Stelle zum Filtern.
GruĂź
Jörg
JRenz
Microsoft Partner
Microsoft Partner
 
Beiträge: 478
Registriert: 27. April 2007 09:22
Arbeitsort: Neu-Ulm
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x bis BC 365

Re: Datumsfilter im Dataport

Beitragvon DaggiLiehr » 25. Februar 2017 02:35

Hallo Jörg,

wenn der Filter an der Stelle zu spät käme, dann müssten die Datensätze 08 und 10 eigentlich auch mit ausgegeben werden, diese werden jedoch weg gefiltert (was ja auch gewünscht ist).
Das ich den Filter an diese Stelle setze habe ich einem Tipp von Natalie entnommen aus diesem Beitrag: http://www.msdynamics.de/viewtopic.php?f=7&t=7194&p=33747&hilit=dataport+workdate+filter#p33747

Wenn gar nicht gefiltert werden wĂĽrde, dann wĂĽrde ich es ja verstehen, aber ich erkenne keine Logik hinter der Ausgabe :roll:

Naja, vielleicht mag Navision mich heute einfach nicht ;-)
LG,
Daggi
Benutzeravatar
DaggiLiehr
 
Beiträge: 19
Registriert: 16. Januar 2015 12:01
Wohnort: Geilenkirchen
Realer Name: Daggi Liehr
Arbeitsort: Geilenkirchen
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 5.01

Re: Datumsfilter im Dataport

Beitragvon SilverX » 25. Februar 2017 08:54

Jörg hat schon Recht. OnBeforeExportRecord() wird ausgeführt nachdem der Record geholt ist. Wird dann ein Filter gesetzt, gilt der für alle folgenden Datensätze. Deshalb ist der erste falsch, alle folgenden korrekt. OnPreDataItem() wird ausgeführt BEVOR der erste Datensatz gelesen wird. Dort sollte der Filter gesetzt werden.
Cheers
Carsten


This post is my own opinion and does not necessarily reflect the opinion or view of my employer.
SilverX
Microsoft Partner
Microsoft Partner
 
Beiträge: 1252
Registriert: 16. September 2006 14:07
Realer Name: Carsten Scholling
Arbeitsort: GĂĽtersloh
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013+

Re: Datumsfilter im Dataport

Beitragvon DaggiLiehr » 26. Februar 2017 15:10

Ohoh... hab das Brett vorm Kopf weg gesägt und bin auch vom Schlauch aufgestanden :oops:
Ihr habt natĂĽrlich recht!
Benutzeravatar
DaggiLiehr
 
Beiträge: 19
Registriert: 16. Januar 2015 12:01
Wohnort: Geilenkirchen
Realer Name: Daggi Liehr
Arbeitsort: Geilenkirchen
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 5.01


ZurĂĽck zu NAV 5.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast