Vorschlagswerte IT0700

Getting started ... Alles für einen gelungenen Start.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Vorschlagswerte IT0700

Beitrag von trinawyna (ForumUser / 4 / 0 / 0 ) »
Hallo zusammen,

kurz zu mir: ich habe keinerleit Programmier-Erfahrung und passe nur ab und an bestehendes Coding an, habe also genau genommen nur wenig bis gar keine Ahnung von der Marterie.

Zu meinem Problem:
ich möchte beim Anlegen des IT0700, Subtyp DXA1 Vorschlagswerte anlegen lassen.
Folgenden Code habe ich schon aus einem bestehenden Coding abwandeln können, nur leider funktioniert es dennoch nicht.

Ich möchte verschiedene Vorschlagswerte definieren, exemplarisch habe ich unten im Code versucht das Feld FLAG_PRECONDITIONS ("Gesetzliche Voraussetzungen für die Antrastellung sind erfüllt") mit einem Häkchen zu versehen.

Erweiterung PBAS0001
Funktionsexit EXIT_SAPFP50M_001
Include ZXPADU01

Code: Alles auswählen.

DATA: I0700 LIKE P01_0700_DXA1_181.

CLASS CL_HR_PNNNN_TYPE_CAST DEFINITION LOAD.
   CASE INNNN-INFTY.
    WHEN '0700'.
   CASE INNNN-SUBTY.
    WHEN 'DXA1'.
   CASE INNNN-BEGDA.
    WHEN '01072019'.
   CASE INNNN-ENDDA.
     WHEN '31129999'.
      CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
        EXPORTING
          PRELP = INNNN
        IMPORTING
          PNNNN = I0700.
      I0700 = INNNN.
      I0700-FLAG_PRECONDITIONS = 'X'.
      MOVE 'X' TO I0700-FLAG_PRECONDITIONS.
      CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_PRELP
        EXPORTING
          PNNNN = I0700
        IMPORTING
          PRELP = INNNN.
     ENDCASE.
     ENDCASE.
     ENDCASE.
     ENDCASE.
Das Beginn- und Endedatum musste ich reinsetzen, weil ich ohne diesen CASE direkt auf einen Error gestoßen bin.

Wo ist der Fehler?

Schöne Grüße
Nina

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Vorschlagswerte IT0700

Beitrag von LostDarkness (ForumUser / 87 / 15 / 6 ) »
Guten Morgen,

ich kenne mich leider mit der Funktionalität nicht so aus, aber kann ja wenigstens etwas auf den Codeblock eingehen, vielleicht hilft dies ja auch schon etwas weiter.

Ist es notwendig das Datum so explizit auf Beginn und Ende abzufragen, oder willst du wissen ob das Gültigkeitsdatum zwischen diesen
Zeiträumen gültig sei? Dann wäre vielleicht ein " Gültigkeitsdatum < INNNN-ENDDA AND Gültigkeitsdatum > INNNN-BEGDA " die bessere Lösung, oder alternativ mit dem Keyword "BETWEEN".

Grundsätzlich würde ich an dieser Stelle aber auch eher mit einem einfachen IF-Statement arbeiten anstatt der vielen CASE-Anweisungen:

Code: Alles auswählen.

IF INNNN-INFTY = '0700' AND INNNN-SUBTY = 'DXA1' 
                        AND INNNN-BEGDA = '01072017' 
                        AND INNNN-ENDDA = '31129999'.

 CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
        EXPORTING
          PRELP = INNNN
        IMPORTING
          PNNNN = I0700.
      I0700 = INNNN.
      I0700-FLAG_PRECONDITIONS = 'X'.
      MOVE 'X' TO I0700-FLAG_PRECONDITIONS.
      CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_PRELP
        EXPORTING
          PNNNN = I0700
        IMPORTING
          PRELP = INNNN.
ENDIF.

Beste Grüße
Gerrit
“You should name a variable using the same care with which you name a first-born child.”
― Robert C. Martin

Re: Vorschlagswerte IT0700

Beitrag von trinawyna (ForumUser / 4 / 0 / 0 ) »
Danke Gerrit,

so ist es auf jeden Fall schon mal hübscher, der Vorschlagswert wird dennoch leider weiter nicht gezogen. Ich bin also weiterhin dankbar über jeden Tipp!

Schöne Grüße
Nina

Re: Vorschlagswerte IT0700

Beitrag von trinawyna (ForumUser / 4 / 0 / 0 ) »
Hallo Gerrit,

so ist es auf jeden Fall schon einmal hübscher - danke dir.
Der Fehler selbst bleibt jedoch bestehen, der Vorschlagswert wird nicht gezogen.
Ich bin also weiterhin sehr dankbar über jede Hilfe.

Schöne Grüße
Nina

Re: Vorschlagswerte IT0700

Beitrag von LostDarkness (ForumUser / 87 / 15 / 6 ) »
Hallo Nina,

hast du das denn schon einmal gedebuggt und geguckt ob er überhaupt bei der Anweisung ankommt? :)

Beste Grüße
Gerrit
“You should name a variable using the same care with which you name a first-born child.”
― Robert C. Martin

Re: Vorschlagswerte IT0700

Beitrag von trinawyna (ForumUser / 4 / 0 / 0 ) »
Hallo Gerrit,

ich weiß zwar, wie ich den Debugger aktiviere, aber dann hört mein Verständnis auch schon auf.
Auf die Gefahr hin, dass ich es nicht korrekt bedient habe, hier dennoch mein Vorgehen:
ich habe gerade mal mit vielen Klicks bis zum Aufruf der Zielmaske den Debugger laufen lassen und festgestellt, dass er nicht in den User Exit abgesprungen ist.
Ich vermute, das bedeutet, dass er bei der Anweisung nicht ankommt...?

Schöne Grüße
Nina

Re: Vorschlagswerte IT0700

Beitrag von LostDarkness (ForumUser / 87 / 15 / 6 ) »
Ich vermute das du richtig vermutest.

Wenn du im Debugger mal, wenn du bei der Eröffnung der IF-Struktur ankommst mal versuchen könntest einen Doppelklick auf die
Variablen für INNNN-BEGDA und INNNN-ENDDA zu machen, könntest du nachvollziehen was dort für Werte enthalten sind
und überprüfen ob die mit der gewünschten IF-Bedingung übereinstimmen.

Ich gehe wie zuvor schon einmal angesprochen einmal davon aus das die Abfrage der expliziten Datumswerte an dieser Stelle das Problem ist.

Beste Grüße
Gerrit
“You should name a variable using the same care with which you name a first-born child.”
― Robert C. Martin

Re: Vorschlagswerte IT0700

Beitrag von DeathAndPain (Top Expert / 1933 / 252 / 410 ) »
Leute, nicht im Modul HCM zu Hause zu sein ist keine Schande. Aber die Fehler hier hättet ihr schon sehen können. 😉 Das mit den Datümern ist schon richtig, aber da ist noch viel mehr.

Der krasseste Bug liegt in dem Codeabschnitt

Code: Alles auswählen.

CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
       EXPORTING
         PRELP = INNNN
       IMPORTING
         PNNNN = I0700.
I0700 = INNNN.
Da wird also das Feld I0700 aus der Methode geholt und anschließend gleich mit einem anderen Wert überschrieben. Dann braucht man auch die Methode nicht aufrufen.

Auch

Code: Alles auswählen.

I0700-FLAG_PRECONDITIONS = 'X'.
MOVE 'X' TO I0700-FLAG_PRECONDITIONS.
ist etwas suboptimal, da doppelt gemoppelt.

War hier aber alles nicht die entscheidende Ursache. Die Fragestellerin ist eine Ex-Kollegin von mir, und ich habe das Problem mit ihr erörtert. Der IT 0700 ist schwer zu user-exiten, da er seine Daten in gepackter Form enthält. Da müsste man erst man nachforschen, wie man die Werte auspackt, damit man sie verändern, wieder packen und dann zurückschreiben kann. Wenn man im Internet forscht oder den Debugger bemüht, wird man es vermutlich rausfinden können, aber so einfach wie hier abgebildet geht es bei diesem Infotyp auf keinen Fall.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
9469
Views
2
Antw.
2146
Views
IT 2007 / Abwesenheitkontingente -Vorschlagswerte definieren
von Nicole_80 » 02.02.2006 18:00 • Verfasst in Human Resources
3
Antw.
7718
Views
mehrere Einzelwerte bei select-option als Vorschlagswerte
von thomasxy » 01.02.2008 08:23 • Verfasst in ABAP® für Anfänger
1
Antw.
1146
Views
RFC-Baustein: Optionale Parameter/Übernahme der Vorschlagswerte
von Thomas R. » 15.11.2019 15:59 • Verfasst in ABAP® Core
1
Antw.
1477
Views
QQMA0013: Vorschlagswerte beim Hinzufügen einer Maßnahme
von kiaa » 29.04.2015 11:25 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.