ich möchte einen Infotypen auslesen und dabei den aktuellsten Datensatz selektieren. Bis jetzt habe ich das über den FuBa HR_READ_INFOTYPE gemacht und dann einen Loop. In der Regel steht der aktuellste datensatz, also BEGDA/ENDDA ganz unten. Da beim Loop, indem mehrere Datensätze gefunden werden, der letzte genommen wird, passt das meistens.
Sollte aber dochmal ganz unten ein alter Datensatz liegen, stimmt das natürlich nicht mehr.
Ein ähnliches Verhalten gibt es wenn man den Infotyp mit einem einfachen Select ausliest.
Wie kann ich also am einfachsten das Coding anpassen (Kombination HR_READ_INFOYTPE und Loop über die Ergebnisstabelle oder auch bei einem Select) um nur den aktuellsten Datensatz zu selektieren?
Also wie würdet ihr einen Infotypen für eine bestimmte Personalnummer durchsuchen, bei der es meherere Datensätze gibt und nur der aktuellste Datensatz selektiert werden soll. MIt dem Tagesdatum komme ich hier nicht weiter, weil es durchaus Datensätze geben kann, bei denen der aktuellste Datensatz z.B. von 2009 ist.
Hier ein Beispiel:
Inhalt des Infotypen:
PERNR-----BEGDA
1234_____01.02.2001
1234_____01.02.2003
1234_____01.02.2004
1234_____01.02.2005
1234_____01.02.2011
1234_____01.02.2002
Er gibt mir nun nach meiner Methode den 1.2.2002 aus. Er soll aber den 1.2.2011 ausgeben. Wie mache ich das?
@ostpower: Zeig doch mal die Originaldaten aus dem Feld BEGDA für alle Zeilen.
In unserem System (was nichts zu bedeuten hat, da hier weit und breite keine Experten zu sehen sind), hat dieses Feld BEGDA immer 31.12.9999 im aktuellsten Record stehen.
Darf ich mal eine Vermutung äußern? Kann es sein, dass Du einen Infotyp auswertest, der unterschiedliche Subtypen hat? Dann werden die Zeilen standardmäßig zuerst nach Subtyp und dann nach Datum sortiert. Das kannst Du mit einem expliziten SORT-Befehl incl. Angabe der Felder aber so ändern, wie Du das haben möchtest...