Anmelden

View Full Version : RENAME / PREFIX Hilfe



boonkelz
13-02-13, 14:51
HI
Ich habe folgendes Problem:
Bei mir ist der Name der Datei, das Satzformat und der Feldname gleich (DTLOHNP)

Ich habe RENAME und PREFIX verwendet

FDTLOHNP UF E DISK RENAME(DTLOHNP: DTLOHNDAT)

DS1 E DS extname(DTLOHNP) prefix(L_)


Felder befüllen funktioniert:
Pos1 = %scan(L_DTLOHNP :'+');

und Update funktioniert
Update DTLOHNDAT


ABER Er kompiliert nicht, da folgende Fehlermeldung kommt:
Art des extern beschriebenen Felds stimmt nicht mit der vorherigen Definition überein; die Bestimmung wird ignoriert.
und
Der Name kann nicht als Feld definiert werden, da er bereits definiert wurde; die Bestimmung wird ignoriert.

Bitte um Hilfe !!!!!!!!!!!!!
Vielen Dank Hannes

mk
13-02-13, 15:18
Hi,

Du kannst den Prefix auch bei der Datei und nicht bei der EDS
durchführen

Gruß
Michael

kitvb1
13-02-13, 15:32
Versuch dies:
DS1 E DS extname(DTLOHNP) qualified

Fuerchau
13-02-13, 15:38
Achtung:
Zwischen den Feldnamen der Dateidefinition (implizit definiert) und der E-DS gibt es keinen Bezug!
Der Read befüllt die Felder nicht und der Update nimmt die Felder nicht.

Wie oben schon beschrieben, musst du den Prefix bei der F-Bestimmung zusätzlich angeben, damit der Bezug zu deiner DS gewähleistet ist da du sonst unterschiedliche Feldnamen hast (sieh dir den Spool an).

Qualified auf der DS trennt dir die Felder wieder, es sei denn, du gibst beim Prefix auf Dateiebene "DSName.L_" wieder an.

Was die Compilermeldung angeht so hast du 2 unterschiedlich definierte Felder mit dem selben Namen (auch hier hilft nur der Spool).

camouflage
13-02-13, 16:12
Hi,

Eine Alternative:



FDTLOHNP UF E DISK RENAME(DTLOHNP: DTLOHNDAT)
DDS1 DS LIKEREC(DTLOHNDAT)

chain (myKey) DTLOHNP DS1;

Pos1 = %scan(DS1.DTLOHNP :'+');
update dtlohndat ds1; V7R1M0

Vielleicht hilfts.

Pikachu
13-02-13, 16:40
Oder die externe Datenstruktur komplett raus und einen PREFIX(...) zur Datei dazu, um die Felder der Datei umzubenennen:


FDTLOHNP UF E DISK RENAME(DTLOHNP:DTLOHNDAT)
F PREFIX(L_)

boonkelz
14-02-13, 07:58
Guten Morgen

Super, funktioniert und vielen Dank für die zahlreichen Lösungsmöglichkeiten von Euch.

Liebe Grüße aus Wien und Danke nochmals !!!!
Hannes :D