Hallo,
ich soll bei einem Viewcluster eine Prüfung vor dem Sichern durchführen. Wenn ein Fehler gefunden wurde, setze ich vcl_stop = 'X' und gebe einen Fehler aus. Den Cursor hätte ich gerne auf dem fehlerhaften Feld. Weiß jemand, wie das funktioniert?
Zeitpunkt 04 - Quellcode:
* ---------------------------------------------------
*1. Kopfdaten einlesen
PERFORM vcl_set_table_access_for_obj USING kopf_gc
CHANGING error.
* Prüfen Eingabe
kopf_lt[] = <vcl_extract>.
LOOP AT kopf_lt ASSIGNING <kopf>
WHERE NOT action IS initial AND action <> 'L'.
IF <kopf>-seqna IS INITIAL.
* -------------> Cursor auf FELD setzen!!!!!!!!!!!
vcl_stop = x_gc.
* Fehlermeldung ausgeben
PERFORM vcl_process_message
USING 'XXX' 'S' 'S'
010 msgv1_lv msgv2_lv msgv3_lv msgv4_lv.
EXIT.
endif.
* ---------------------------------------------------
Wenn Du die Datensätze in dieser Form prüfen willst, dass bestimmte Inhalte geprüft und verworfen werden, scheint mir der gewählte Zeitpunkt 04 (gemäß Doku) nicht der Richtige zu sein.
Daher scheint eher der Zeitpunkt 05 der gewünschte zu sein, wobei Du dann per MESSAGE Exxx zur Pflege des betroffenen Eintrags kommen müsstest.
PS:
so etwas habe ich selbst noch nie gemacht, also immer mal in der Doku nachschauen. Die scheint zum Thema gen. Tabellenpflege recht ausführlich zu sein.
PPS:
ich unterstelle, dass die generierte Tabellenpflege und nicht die View-Cluster-Pflege gemeint ist, da ich Entsprechendes von der View-Cluster-Pflege nicht kenne.
Gruß
Ereglam
May the Force be with your code || .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .
Wenn die Prüfung tatsächlich nur auf eine Tabelle innerhalb des VCL beschränkt ist, dann würde ich tatsächlich die Prüfung lieber im Pflegeview machen.
Zeitpunkt 21 "Versorgen von verborgenen Feldern" eignet sich hierfür gut. Der wird sowohl beim Anlegen als auch beim Kopieren eines Eintrags durchlaufen.
Wegen der Positionierung im Viewcluster: Das wird wohl ohnehin nicht so einfach... Du musst nämlich evtl. den Eintrag (oder die Einträge), um den es geht, definieren und dann auch noch die relevanten Einträge markieren.
Ich denke, das ist ziemlich aufwändig.
Ansonsten musst du mal beim Navigieren in deinem Viewcluster einen Breakpoint bei Anweisung "Call Function" setzen. Vielleicht fällt dir da was auf, was du verwenden könntest.