Ansicht
Dokumentation
ISU_O_METERREAD_INPUT1 - INTERN: Prüft und übernimmt Eingaben
TXBHW - Original Tax Base Amount in Local Currency Fill RESBD Structure from EBP Component StructureDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
1. Aufgabe
Der Check-Input führt folgende Prüfungen durch
formale Prüfungen (z.B. Format Zählerstand)
unabhängige Plausiblitätsprüfungen
abhängige Plausiblitätprüfungen
Tritt ein Fehler auf erscheint im Dialogfall eine Fehlermeldung am Bildschirm. Im Batch wird eine ensprechende Fehlermeldung ins Protokoll geschrieben und dann das nächste Ableseergebnis weiterverarbeitet
2. Aufbau
Es werden zuerst alle Einträge der Tabelle OBJ-I_REABLD bzw. kann auch eine Untermenge der OBJ-I_REABLD (XT_REABLD) direkt übergeben werden untersucht. Im Anschluß daran werden die unabhängigen Prüfungen durchgeführt. Die Zählerstände, für die keine Fehler aufgetreten sind, werden dann in die Tabelle OBJ-IEABL übertragen.
PROGRAMMCODING:
Fülle lokale LT_REABLD Tabelle (unter bestimmten Umständen z.B. Korrekturschirm abhängige Prüfungen wird nur eine Teilmenge der OBJ-I_REABLD geprüft)
SPEC_TREAT_DEPVAL: initialisiere Abhängige Prüfungen, wenn Zählerstand entfernt wurde
LOOP über LT_REABLD
SKIP_WHEN_NOENTRY_OR_CHANGES: übergehe Ablesergebnis, wenn Prüfung bereits erfolgt oder Ableseergebnis leer
MASSENTRY: Schnellerfassung: lese Ablesebelegnummer und fülle sie ins Table Control
alle eingabefelder leer ? (entrynum, ablhinw, zwstand, pruefz) wurden Felder überschrieben mit Bllank lösche EABL aus Objekt
Erfassungsnummer initial, andere Felder gefüllt -> Fehler
Lese EABL zur Erfassungsnummer
Füge neuen EABL zum Objekt hinzu
Fülle REABLD-Daten
Prüfe Prüfzahl
CHECK_SINGLE_REABLD: prüfe Eintrag auf formale Fehler und führe
Unabhängige Prüfungen durch
*** Erklärung nachfolgend
passe REABLD an (modify)
ENDLOOP
CALL_DEPENDENT_VALIDATION: Aufruf der abhängigen Pausiblitäts-rüfungen
**** Erklärung nachfolgend
DELETE_EMPTY_TC_LINES: bei Schnellerfassung leere Zeilen löschen
TRANSFER_DYNPRODAT: übertrage REABLD-Daten in die OBJ-IEABL Daten. Loop über LT_REABLD Ablesebelegnr leer (bei Fehler wird die Ablesebelegnr gelöscht) -> skip Ablesebelegnr gefüllt: Lese entsprechenden EABL-Satz aus Objekt und übernehme änderbare Felder
*** Form CHECK_SINGLE_REABLD Aufruf ISU_CHECK_SINGLE_REABLD1
Ableseergebnisbearbeitung im Dialog:
D1) CHECK_INPUT_CHANGED
Durch Vergleich mit den OLD-Daten wird erkannt, ob eine Änderung stattgefunden hat (z.B. Reabld-Zwstand und Reabld-Zwstand_old); findet für alle Inputdaten statt. Je nachdem, welche Änderungen durchgeführt wurden werden Daten wie Verbrauch etc angepaßt. Dies wird durch das Setzen der Flags: f_compt_new, y_compt_new, y_adat_new, y_reset_istablart und y_changed gesteurt.
Ableseergebnisvearbeitung im Batch
Setze f_mrdiff_new, f_adat_check, f_changed
D2) INIT_INPUTDATA
setze alle unabhängigen Prüfungen auf ungeprüft
setze alle abhängigen Prüfungen auf ungeprüft
initialisiere check-flag (formale Prüf, abh. Prüfung)
führe Hinweise aus
initialisiere message-Daten
übertrage Daten ind OLD-Daten des REABLDs
D3) FORMAL_CHECKS: formale Prüfungen
Schnellerfassung: Existiert EABL bereits auf dem Schirm, prüfe Prüfzahl
Prüfe Ablesedatum: initial, adatmax, vor techn. Einbau, nach Ausbau, in Abrechnungsperiode, alle Ergebnisse zum gleichen Adat erfaßt, Zukunftsbetrachtung
Prüfe Format des Zählerstandes
Prüfe Istableseart
Wurde Verbrauch verändert (Korrekturbildschirm) Formatierung
Prüfe Ableser
setze Prüfflag formale Prüfungen auf durchgeführt
D4) ACTUALIZE_VALDATA: aktualisiere Prüfungsdaten wie z.B. Vorablesestand (evt. Bei Adat-änderung), erw. Verbrauch (bei adatänderung), Verbrauch (bei Zwst.Änderung) und ZwSt.differenz.
D4) FORMAL_VALCHECKS: fixe Plausiblitätsprüfungen (Festwertabw., Rückstellzählwerk, unplausbiler Vorablesestand)
LOOP über durchzuführende (fixe) Prüfungen (OBJ-I_VALID)
führe Prüfung durch (Fuba in EPU1): Prüfung kann mit Erfolg beendet werden (sy-subrc = 0) mit PLAUSI_ERROR (sy-subrc), mit PLAUSI_ERROR_NOCOR(sy-subrc = 2) oder anderem Fehler (sy-subrc >2)
Bei Fehler (sy-subrc>2) -> Raise Exception
Bei Erfolg oder Plausierror)-> setze Ablesestatus (berücksichtige auch Fehlerklasse), setze Prüfung auf durchgeführt obj-i_valid-f_checked, ermittle Dynpro (je nach Andwendung), setze Cursordaten (für externe Aufrufer z.B. Geräteverwaltung)
Raise Exception
ENDLOOP
Ist Zählwerk in Zählwerksbeziehung involviert, muß Status auf 5 (unabhängig geprüft gesetzt werden)
D5) VALIDATION_SPECIFIC: siehe D4
Rückkehr aus Funktionsbaustein ISU_CHECK_SINGLE_REABLD1
D6) MSG_HANDLE_INPUT_SINGLE
Batchverarbeitung: bei Fehler
TREAT_ERROR_UPLOAD: Bei echten Fehlern wird die Fehlermeldung
ins Objekt (OBJ-IEMSG) übernommen und die Ablesebelegnummer des
wa_reabld gecleart (-> später kein Transfer in OBJ-IEABL). Übernehme
wa_reabld in obj-i_reabld. Kontrolldaten werden initialisiert (clear Flag
Fehler ist aufgetreten und Cursorposition)
Dialogverarbeitung bei Fehler
case
input_error,,Raise message
not_valid: ,,Raise message
plausi_error: übernehme WA_REABLD in OBJEKT-I_REABLD, setze
Flag plausi_error in Kontrolldaten des Objekt und merke die
Zeile (die Zeile wird rot unterlegt angezeigt).
Raise message
plausi_error_nocor: (bei unplausibler Vorablesung) siehe plausi_error
not_complete (bei abhängigen Prüfungen) siehe plausi_error
system_error,,raise message
others ,,,,raise message
kein Fehler: übernehme wa_reabld in obj-i_reabld
*** Form call_dependent_validation
E1) DETERM_INVOLVED_INDEXNR: bestimmte betroffende Zählwerksbeziehungen zu Ableseergebnisse in LT_REABLD und schriebe sie in LT_EASTIH
LOOP at LT_EASTIH
E2 ) FUBA ISU_VALIDATION_DEPENDENT
- Loop über alle abhängigen Prüfungen (obj-i_valid_dep) zur Indexnummer.
- Lese alle beteiligten REABLDs. und merke sie in OBJ-I_CORR_REABLD.
Prüfe, ob es Zählerstände in allen beteiligten REABLDs gibt. Ist für keinen
REABLD ein Zählerstand angelegt, verlasse Prüfung. Gibt es nur teilweise
Zählerstände, raise error not_complete.
- Rufe entsprechenden Fuba (EPA1) in Abhängigkeit vom Popcode auf
E3) PROCESS_RESULT_DEPVAL: Weiterverarbeitung nach erfolgter Prüfung
bei echten Fehler raise entsprechende Message
setze Ablesestatus für jeden beteiligten REABLD, schreibe message in jeden beteiligten REABLD, setze Prüfung auf durchgeführt (obj-i_valid_dep), übertrage beteiligte REABLDs obj und raise message
E4) MSG_HANDLE_INPUT_DEP
!!!!! müßte eigentlich so ablaufen wie die unabhängigen Prüfungen, ist aber nicht so stimmig !!!!
ENDLOOP.
Beispiel
Hinweise
Weiterführende Informationen
Parameter
XYT_REABLDXY_OBJ
X_CORRECT
X_MAXERROR
X_ONLY_FORMAL_CHECKS
X_TE444
X_VALDEP_PARTLY
Y_SUBSCR_CURSPOS
Ausnahmen
INDEP_IMPLAUSIBLEINPUT_ERROR
NOT_AUTHORIZED
NOT_COMPLETE
NOT_VALID
PLAUSI_ERROR
PLAUSI_ERROR_NOCOR
SYSTEM_ERROR
Funktionsgruppe
EL01Vendor Master (General Section) General Data in Customer Master
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 9667 Date: 20240523 Time: 151216 sap01-206 ( 102 ms )