[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2005
    Beiträge
    131

    Question PRTF: Feld ab Stelle 100 verschoben

    Hallo zusammen,

    wir haben in einer PRTF das Problem, dass ein Feld (6,0 zoned) nicht an der Stelle in der Spooldatei steht, wo es laut Dafinition stehen sollte.
    Sowohl in der Source als auch im Objekt (laut DSPFFD) ist das Feld für die Startposition 103 vorgesehen. Im Spool erscheint es aber erst bei 104.
    Festgestellt haben wir es, weil eine Software an dieser Position (103 - 108) eben den Wert erwartet und entsprechend verarbeitet. So wurde die letzte Stelle leider ignoriert...ärgerlich und FALSCH.

    Was uns wundert, und was wir nicht verstehen, ist, dass es erst ab der Position 100 passiert in Kombination mit dem Attribut >CPI(15)<. Habe ich das Feld auf 99 oder noch weiter vorne, klappt es einwandfrei.
    Hinweis: im Satzformat selber steht >CPI(10)<

    Woran liegt das?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wie wird es denn gedruckt?
    Bei AFPDS zu SCS (CPYSPLF) kann es durchaus mal zu Berechnungsfehlern (Rundungen) führen, da du ja CPI15 verwendest.
    Bei SCS kann man CPI nur auf PRTF angeben, bei AFPDS auf Feld/Satzebene.
    Wenn es ein AFPDS-Spool ist, sollte die Software eben die AFPDS-API's zum Auslesen der Daten verwendet.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Dec 2005
    Beiträge
    131
    Es wird gar nicht gedruckt, sondern von unserer (Archiv-)Software verarbeitet.
    Diese sucht über fest vorgegebene Parameter die Werte an bestimmten Stellen in der Spooldatei.
    Und an eben dieser 103 erwartet sie die sechsstellige Lieferscheinnummer.
    Beim Erstellen der PRTF verwenden wir DEVTYPE(*SCS).

  4. #4
    Registriert seit
    Jan 2007
    Beiträge
    905
    Hast Du schon mal probiert das numerische Feld als char Feld auszugeben?
    kf

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Mit dem Drucken meine ich ja nur, das Ergebnis der Positionierung bei der Ausgabe zu prüfen.
    Wenn diese stimmt, kommt eben der CPYSPLF auf einen Rundungsfehler.
    Da dies wohl kein neuer Fehler ist und die Dokumente nicht jetzt auf einmal den Fehler anzeigen, würde ich pragmatisch einfach die Position verschieben oder der Archivsoftware die Ausgabeposition nennen.
    Und wo wirds im Spool angezeigt?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Dec 2005
    Beiträge
    131
    Bis zu der Nachfrage noch nicht, jetzt schon - es ändert nichts daran.
    Auch ein 6A-Feld kommt nicht auf Position 100 an - entweder 99 oder ab 100 um eins verschoben.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dann liegts an der Berechnung per CPI15, dass ab 100 eben um 1 Stelle aufgerundet wird.
    Wo ist das Problem, die Position an Hand der Ausgabe zu bestimmen?
    Ggf. wird bei 200 oder 300 ähnliches passieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Dec 2005
    Beiträge
    131
    Es gibt kein Problem, das umzustellen.
    Wenn die Begründung "Berechnungsfehlern (Rundungen)" das einzige ist, können wir damit leben.
    Es war uns nur nicht bewusst, dass es zu so etwas kommen kann.
    Natürlich ist es bei einer normalen Ausgabe relativ egal - Overlays kann man entsprechend der echten Ausgabe ja anpassen. Nur bei den Schlüsselwerten haben wir uns auf die Theorie verlassen und wunderten uns nun. Es gab ja nichtmal einen Fehler, sondern es wurde nur eine Stelle ignoriert, da der Wert als solches ja valide war.
    Ich hatte gedacht, es sei ein klares, technisches Problem, wo es sogar eine nicht gefundene Erklärung der IBM gibt.

    Wir passen es nun an und wissen für die Zukunft um solche Sachen Bescheid. Danke!

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn der Spool ja nicht gedruckt werden muss, kannst du doch CPI15 weglassen und in CPI10 ausgeben. Dann sollte es doch stimmen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Dec 2000
    Beiträge
    281
    Hi kann es sein dass da ein Vorzeichen vorangestellt ist ? Schau mal in der PRTF ob da eine Aufbereitung angegeben ist.
    Programmierung

  11. #11
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Unwarscheinlich, es liest sich wie ein ext. Prtf. Dann ist die Startpos. angegeben.

    wenn mehrere CPI in einer Zeile verwendet werden, passt das unserer Erfahrung nach nicht.
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

Similar Threads

  1. Problem USC2 Feld über SQL Bender TOOL in MS SQL NVARCHAR Feld
    By labm in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 07-07-21, 08:37
  2. SQL - Zeichen an bestimmte Stelle schreiben
    By programmer400 in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 20-07-18, 06:40
  3. input/output feld dspf --> automatisch aus Feld springen
    By _MG_ in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 15-09-17, 15:02
  4. DTAQ-Eintrag Stelle 49-52
    By Andreas Herzfeldt in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 22-02-02, 11:00
  5. Char-Feld 4-stellig, per SQL nur 1. Stelle ändern
    By LGALF in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 05-07-01, 17:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •