Da kann der SAP – Berater in der Tat lange suchen. Dem Kunden kann man das wohl kaum erklären, geschweige denn in Rechnung stellen. Ich selbst stand neulich vor dem gleichen Problem und es hat mich echt viel Zeit gekostet hier eine Lösung zu finden.
Googeln hat leider nicht viel geholfen, debuggen und tracen leider auch erst recht spät.
Das Problem:
Bei einer Datenmigration sollten Equipmentpläne mit Langtexten auf Positionsebene eingelesen werden:
In diesem Bildschirmabgriff sehen wir 2 markierte Stellen. Einmal in der Positionszeile einen Haken, der bedeutet, dass dort ein Langtext hinterlegt ist. Die 2. Markierung betrifft dann den Stift oberhalb der Zeilen. Hier kann man sich den Langtext bei markierter Zeile ansehen, oder man kann ihn ändern.
Will man jetzt den Text migrieren, dann kann man das machen wie üblich mit dem Funktionsbaustein SAVE_TEXT. Dazu braucht man natürlich den Schlüssel zum Langtext, ist auch kein Problem, geht mit Springen–>Kopf:
Den Text kann man dann auch wieder ansehen mit dem Funktionsbaustein READ_TEXT. Don verblüfft stellt man fest, dass sich das Langtextkennzeichen leider nicht setzt. Und hier fangen wir an zu suchen. Sie ersparen sich möglicher Weise viel Zeit, wenn Sie einfach hier nachsehen:
Programm SAPLCPDI Include LCPDIFO1
Form OPR_LST_LOOP_GET
* Satz in Vorgangs Belegtabelle nachlesen
*=======================================================================
CALL FUNCTION ‚CP_BT_PLPO_READ_WITH_INDEX‘
EXPORTING
flg_clas = const-flg_yes
index = lst-index_plpo
sttag = rc27s-sttag
aennr = rc271-aennr
flg_bzw = const-flg_yes
flg_kla = const-flg_yes
flg_time_dep_data = const-flg_yes
IMPORTING
plpod_exp = plpod
rcr01_exp = rcr01.
______________________________________________
Programm SAPLCPDI Include LCPDIFL1
Form LST_LOOP_GET_PBO
* Bei Referenz darf Satz nur angezeigt werden
*=======================================================================
IF NOT lst-flg_ref IS INITIAL.
rc27s-flg_show = const-flg_yes.
ENDIF.
* Langtextkennzeichen bestimmen
*=======================================================================
IF NOT plpod-txtsp IS INITIAL.
MOVE const-flg_yes TO rc270-txtkz.
ELSE.
CLEAR rc270-txtkz.
ENDIF.
Wir stellen also fest, dass das Langtextkennzeichen TXTKZ nicht in der Datenbank zu finden ist, sondern SAP selbiges dann erzeugt, wenn in der Tabelle PLPO das Sprachenkennzeichen im Feld TXTSP gefüllt ist. Gefüllt heißt also Langtextkennzeichen ist gesetzt und leer heißt es ist kein Langtext vorhanden.
Nach dem Einlesen der Texte muss dann dieses Kennzeichen noch gesetzt werden.
So, ich hoffe ich konnte in diesem Fall zur Aufklärung beitragen.