-
CPYFRMSTMF für DESADV-Datei
Hallo,
ich erhalte eine EDIFACT-Datei (DESADV), die zur Trennung der einzelnen Segmente kein WRZL enthält.
Ich benutze CPYFRMSTMF mit ENDLINFMT(*FIXED) um in eine Datenbankdatei zu kopieren.
Nun möchte ich aber zur besseren Lesbarkeit der Daten beim CPYFRMSTMF gleich einen Satz pro Segment erzeugen.
Der "Satzbegrenzer " ist das Hochkomma (X"7D").
Geht das ?
-
Hallo,
hast du es schon mal mit dem Befehl CPYFRMIMPF probiert?
Damit kannst du auch einen sog. Satztrenner angeben.
-
Hallo Azaron,
der Tip mit CPYFRMIMPF ist gut, aber ich scheidere bisher mit meinen Versuchen.
Wie muss ich im Parameter RCDDLM angeben, dass mein Satztrenner das Hochkomma (HEX 7D) ist.
Weder X'7D' noch ''' helfen mir.
-
Du verwechselst aber nicht den Parameter RCDDLM mit dem Parameter STRDLM?
Wir verarbeiten auch EDI-Daten, allerdings hatten wir noch kein Format bei dem eine Zeile mit dem Hochkomma beendet wurde.
Eine Beispiel vom Aufbau wäre zur Problemlösung sicher hilfreich.
-
An einem Beispiel kann man das wirklich besser erklären :
UNB+UNOC:3+4015792000004:14+4314392000002:14+07031 2:1523+00000000000014+++++EANCOM+1'UNH+0000000001+ DESADV :96A:UN:EAN005'BGM+351
0070312:102'RFF+DQ:2555'DTM+2:20070313:102'NAD+BY+ 4314392963840::9'NAD+DP+4314392000002::9'NAD+SU+40 15792000004::9'CPS+1'LIN+1++44
2::PCE'LIN+2++4400016501366:EN'QTY+12::PCE'LIN+3++ 4400016505340:EN'QTY+12::PCE'LIN+4++4015792058500: EN'QTY+12::PCE'LIN+5++44000165
'LIN+6++4400016505524:EN'QTY+12::PCE'LIN+7++440001 6510146:EN'QTY+12::PCE'LIN+8++4400016510214:EN'QTY +12::PCE'LIN+9++4400016510221:
0++4400016501601:EN'QTY+12::PCE'CNT+2:10'UNT+31+00 00000001'UNH+0000000002+DESADV :96A:UN:EAN005'BGM+351::9+2556+9'DTM+137:2007031
M+2:20070313:102'NAD+BY+4314392963918::9'NAD+DP+43 14392000002::9'NAD+SU+4015792000004::9'CPS+1'LIN+1 ++4400016500307:EN'QTY+12::PCE
3:EN'QTY+12::PCE'LIN+3++4400016502035:EN'QTY+12::P CE'LIN+4++4400016502042:EN'QTY+12::PCE'LIN+5++4400 016500314:EN'QTY+12::PCE'LIN+6
TY+12::PCE'LIN+7++4400016500598:EN'QTY+12::PCE'LIN +8++4400016502141:EN'QTY+12::PCE'LIN+9++4400016502 578:EN'QTY+12::PCE'LIN+10++440
::PCE'LIN+11++4015792211035:EN'QTY+12::PCE'LIN+12+ +4015792211028:EN'QTY+12::PCE'LIN+13++401579221109 7:EN'QTY+12::PCE'LIN+14++40157
PCE'LIN+15++4015792050252:EN'QTY+12::PCE'CNT+2:15' UNT+41+0000000002'UNZ+2+00000000000014'
****** DATENENDE ******
Warum jetzt in der Datei die Smileys stehen , weiß ich nicht.
Dort steht in der Datei ein Doppelpunkt und ein D !
Ich möchte die Segmente (UNB, UNH, BGM ...) in je 1 Datensatz haben .
Das Trennzeichen zwischen den Segmenten ist das Hochkomma.
Ein Feldtrennzeichen gibt es nicht.
-
Wir verarbeiten auch EDI-Daten, allerdings hatten wir noch kein Format bei dem eine Zeile mit dem Hochkomma beendet wurde.
Jedes Segment wird bei EDI mit einem Hochkomma beendet. Wahrscheinlich habt Ihr einen Konverter, der das bereits herausfiltert.
Ich denke auch, dass das weder mit CPYFRMIMPF noch mit CPYFRMSTMF zu lösen ist. Beim CPYFRMIMPF kann man kein Hochkomma als Satzbegrenzer angeben. Man könnte bestenfalls die Textdatei per CPYFRMSTMF als einen langen Datensatz in eine physische Datei kopieren und diesen Satz dann mit SCAN- und SUBST-Befehlen zerlegen und weiterverarbeiten.
Am besten benutzt Du gleich die entsprechenden IFS-APIs und schreibst Dir ein kleines Programm dafür, das das erledigt. Dann kannst Du Dir den CPYFRMSTMF sparen.
Gruß,
KM
-
Hallo,
da gibt es ein Serviceprogramm INSTREAM auf meiner Open Source Seite, das hat eine Prozedur readLine, die man leicht auf einstellbare Delimiter erweitern könnte.
mfg
Dieter Bender
 Zitat von KM
Jedes Segment wird bei EDI mit einem Hochkomma beendet. Wahrscheinlich habt Ihr einen Konverter, der das bereits herausfiltert.
Ich denke auch, dass das weder mit CPYFRMIMPF noch mit CPYFRMSTMF zu lösen ist. Beim CPYFRMIMPF kann man kein Hochkomma als Satzbegrenzer angeben. Man könnte bestenfalls die Textdatei per CPYFRMSTMF als einen langen Datensatz in eine physische Datei kopieren und diesen Satz dann mit SCAN- und SUBST-Befehlen zerlegen und weiterverarbeiten.
Am besten benutzt Du gleich die entsprechenden IFS-APIs und schreibst Dir ein kleines Programm dafür, das das erledigt. Dann kannst Du Dir den CPYFRMSTMF sparen.
Gruß,
KM
-
Stimmt, erledigt bei uns wahrscheinlich einer der Konverter. Ein Glück!
Similar Threads
-
By mk in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 21-12-06, 08:56
-
By wrkas400 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 19-12-06, 09:23
-
By deni87991 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 19-10-06, 13:55
-
By jogisarge in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 15-05-06, 13:47
-
By PGMR in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 15-06-05, 15:37
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks