PDA

View Full Version : Dateifeld vergroessern



Harald.Kurzboeck
16-10-13, 15:58
Hallo,

ich soll unsere Kundennummer von 6,0 auf 7,0 erweitern.
Dieses Problem hat die Firma nur 3 Jahre vor sich hergeschoben.

Leider sind die Felder(ca. 600) in den vielen Dateien nicht referenziert worden.

Wie sollte ich das Problem angehen?

Meine Vorgehensweise wäre fürs erste Referenzen einbauen(ohne Verlängerung)
DSPF prüfen ob hinter dem Feld genügend Platz ist.
Referenzen anheben auf 7,0

Gibt es eigentlich Tools die ihr mir empfehlen könnt?
Bin für jeden input sehr dankbar.

Danke

Robi
16-10-13, 16:55
Mach ein neues Feld in die Datei
fülle das per Trigger aus dem alten Feld.
Stelle alle Pgmme nach und nach auf das neue Feld um.
Dabei wird Schritt für Schritt auf neue LF umgestellt.

Im Pgm dann auch Referenzen verwenden.

haben wir schon öfter mal gemacht.
(Wenn's 3 Jahre Zeit hatte, hättest du das (fast) nebenbei machen können)

Robi

dschroeder
16-10-13, 17:00
Hallo Harald,

wir hatten vor ein paar Jahren ein ähnliches Problem. Damals sollte ein häufig verwendetes Feld von 3,0 auf 4,0 vergrößert werden. Unser Problem bestand dann darin, herauszufinden, welche Programme und DSPF das Feld verwenden.

Wir haben dann folgendes gemacht:

1. Zunächst haben wir die Entscheidung getroffen, das Feld nicht nur auf 4 Stellen, sondern auf 5 Stellen zu vergrößern. Dort wo 5 Stellen nicht gewünscht waren, haben wir dann die Bildschirmeingabe auf 4 Stellen begrenzt. Aber alle Programme sehen intern 5 Stellen vor. Das heißt, wenn das Feld doch nochmal größer werden muss, haben wir die meiste Arbeit bereits getan. Du solltest überlegen, ob du das Feld wirklich nur um 1 Stelle vergrößerst, wenn du schon daran gehst.

2. Wir haben versucht, das Feld folgendermaßen zu identifizieren: Wir haben Source-Roboter geschrieben, die alle Programme anfassen und in die QTEMP wandeln und dabei eine Wandlungsliste erzeugen. In der Wandlungsliste findet man dann ja einen Abschnitt, in der die verwendeten Felder aufgeführt werden. Der Roboter hat die Feldnamen, Feldtypen und Feldgrößen aus der Wandlungsliste zusammen mit dem Programmnamen in eine Datenbanktabelle geschrieben.

3. Die Tabelle haben wir dann mit Programmen (es geht aber vielleicht auch einfach mit SQL) weiter selektiert. Bei uns wussten wir, dass das Feld 3,0 numerisch ist und dass der Feldname mit Sicherheit die Zeichenfolge "VR" enthält. Damit konnten wir die betroffenen Programme schon mal gewaltig eingrenzen.

4. Die selektierten Programme haben wir dann in einer Testumgebung manuell angepasst.

5. Das ganze hat ziemlich reibungslos geklappt.


Alternativ glaube ich, dass es fertige Tools gibt, die Sourceanalysen durchführen können. Ich weiß, dass z.B. PKS ein Tool namens PAAS anbietet. Das könnte vielleicht helfen.

Dieter

Fuerchau
16-10-13, 17:19
Mitunter ist das auch nur die halbe Wahrheit.
Schließlich werden auch gerne Arbeits- und Hilfsfelder irgendwo definiert.
In RPG dann mit ebenso fester Definition da nicht referenzierbar.
Paremterschnittstellen (PARM) mit ebenso bezugsloser Namensgebung.
Da helfen auch viele Tools nicht.
Unschön ist dann auch noch, dass viele bei Feldübertragungen einfach nur MOVE statt Z-ADD kodiert haben, wird der Inhalt dann auch noch gekürzt weitergegeben und keiner merkts.
Bei Z-ADD hätte es wenigstens einen MCH12xx gegeben.
Erste wenn Kunde 4711 statt 1004711 eine Rechnung bekommt ist der Aufschrei riesengroß.

Tools können einem zwar die Massenarbeit abnehmen, aber eine qualifizierte End-/Detailkontrolle ist da vonnöten.

KM
17-10-13, 08:23
Hallo,

da dieses Thema hier schon angesprochen wurde, möchte ich mich auch gleich mal einklinken. Ich bin nämlich auch auf der Suche nach einem Analysetool.
Und zwar muss ich feststellen in welchen Programmen (RPG und SQLRPG) ein bestimmtes Datenbankfeld verwendet wird. Natürlich kann man z.B. im SEU mit Auswahl 25 alle Sourcen nach einer Zeichenkette durchsuchen. Aber das hilft mir nur sehr bedingt, weil das ja ein Teilstring sein kann oder ein Text, der z.B. in einem Kommentar vorkommt. Außerdem könnten die Felder der Datei ja prefixed sein. Dann würde ich das Feld auch nicht mehr finden.
Diese Analyse muss ich für Hunderte von Feldern machen.

Wie kann ich das am besten anstellen? Welche Tools könnte ich hierfür nutzen?

Vielen Dank,
KM

Robi
17-10-13, 09:16
Wir haben vor Jahren mal, als AZUBI Projekt, eine solche Auswertung
geschrieben (vom Azubi schreiben lassen:) ).

Unser grober Ablauf.
der letzte Spool einer Wandlung wird aufgehoben und nachts ausgewertet.
Das sieht dann so aus
Sch... das hochladen einer 118 kb großen PNG geht nicht)

also hier (http://www.bilder-upload.eu/show.php?file=599d3f-1381997457.png)

Da wir sehr strenge Namensregeln haben, zeigt die Auswertung auch welche Fehlernachricht wo verwendet wird.

Ob das für Euch so verwendbar ist, kann ich nicht sagen.
Evtl. mal ne PM an mich und an einem WE vorbeikommen und es ausprobieren

Robi

Fuerchau
17-10-13, 11:02
SEU hilft da wirklich nicht, da ja durch Copy's, Includes (nun auch vom IFS) sowie externe Strukturen jede Menge Definitionen und Namensgebungen vorkommen können.

Ob es da tatsächlich Tools gibt, die das vollständig können, wage ich zu bezweifeln.

Wie soll auch ein Tool solche Sachen finden?

MOVE MYKDNR WKN060 60
:
MOVE WKN060 YYPP01
CALL
PARM YYPP01
:
MOVE YYPP01 WKN060
:
MOVE WKN060 MYKDNR

Und sowas gibts leider zu hauf.

Pikachu
17-10-13, 11:28
Eine andere Möglichkeit wäre vielleicht auch, die ganzen Karteileichen zu entfernen. ;)