[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jul 2008
    Beiträge
    76

    Question XML into - dann leere Tabelle im Programm

    Hallo Forum,


    Ich komme hier leider nicht weiter. Die ersten Felder (Kopfdaten (keine Tabelle)) sind nach dem XML into im Programm verfügbar, die Adresstabelle ist aber leer.


    Entferne ich das all allowmissing=yes, gibt es eine Laufzeitfehler
    Das XML-Dokument entspricht nicht der RPG-Variablen; Ursachencode 4.
    Ursache . . . . : Beim Parsing eines XML-Dokuments hat der Parser
    festgestellt, dass das XML-Dokument nicht der RPG-Variablen "edi_pdf_export"
    entspricht und die Optionen dies nicht zulassen. Der Ursachencode ist 4. Das
    Unterfeld, für das der Fehler festgestellt wurde, ist
    "edi_pdf_export.kopfdaten.adressdaten". ……


    XML
    Click image for larger version. 

Name:	Bildschirmfoto 2020-03-04 um 11.37.19.png 
Views:	22 
Size:	107,0 KB 
ID:	557



    Definition im Programm
    0010.00 // Root .................................................. ......
    0011.00 dcl-ds Edi_pdf_export qualified;
    0012.00 Kopfdaten likeds(Kopfdaten);
    0013.00 end-ds;
    0014.00
    0015.00 // Template Kopfdaten......................................... ..
    0016.00 dcl-ds Kopfdaten template qualified;
    0017.00 WS_Auftrags_Nr char(20);
    0018.00 Kunden_Bestelldatum char(10);
    0019.00 Kunden_Liefertermin char(10);
    0020.00 Kunden_Kommission char(10);
    0021.00 Adressdaten likeds(Adressdaten);
    0022.00 end-ds;
    0023.00
    0024.00 // Template Adressdaten....................................... ..
    0025.00 dcl-ds Adressdaten template qualified;
    0026.00 Adresse likeds(Adresse) dim(04);
    0027.00 Cnt_Adresse int(10);
    0028.00 end-ds;
    0029.00
    0030.00 // Template Adresse........................................... ..
    0031.00 dcl-ds Adresse template qualified;
    0032.00 //*** AdressType char(20);
    0033.00 Name char(20);
    0034.00 Strasse char(20);
    0035.00 PLZ char(20);
    0036.00 Ort char(20);
    0037.00 AdressGLN char(20);
    0038.00 end-ds;
    0039.00

    Vielen Dank für einen Tip.

    Grüss von Franco


  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Du must den XML-Into 2x kodieren, jeweils mit dem PATH zum Hauptknoten, 1x Kopfdaten, 1x Adressdaten.
    XML-INTO kann nur 1 Knoten in eine DS auflösen.
    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
    Jan 2007
    Beiträge
    905
    Hi,

    Folgendes, ich hab mittlerweile Uebung:
    Fehler: Du hast die Adressdaten in die Kopfdaten eingebettet.

    Richtig wäre:
    Code:
    dcl-ds Edi_pdf_export qualified;
      Kopfdaten      likeds(t_Kopfdaten);
      Adressdaten  likeds (t_Adressdaten);
     dim(4);
    end-ds;
    
     // Template Adresse........................................... ..
    dcl-ds t_Adresse template qualified;
      AdressType char(20); 
      Name char(20);
      Strasse char(20);
      PLZ char(20);  
      Ort char(20);
      AdressGLN char(20);
     Cnt_Adresse int(10);
    end-ds;
    
    Die DS der Kopfdaten (definiere die DS analog der Adresse: t_Kopfdaten) hab ich nicht aufgeführt.
    
    Dann:
            dcl-c  options 'doc=file +
                            ccsid=best +
                            ns=remove +
                            case=any +
                            allowmissing=yes +
                            allowextra=yes +
                            countprefix=cnt_ +
                            path=Edi_pdf_export'; 
    
            monitor;
              xml-into Order
                       %xml(%trim(InpFile):options);
              on-Error;
              ...  ;                                                         //XML-INTO fails
              return;
            endmon;
    Es ist möglich ein ganzes EDi XML Dokument mit einem einzigen INTO einzulesen. Allerdings müssen die Knoten genaustens definiert sein.

    Noch was mach die Felder gross genug.
    kf

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Stimmt, den Hauptknoten haben meine 4 Augen nicht wahrgenommen;-).
    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

  5. #5
    Registriert seit
    Jul 2008
    Beiträge
    76
    Vielen Dank. Das funktioniert jetzt. Der Knoten war wohl in meinem Kopf. Franco

Similar Threads

  1. SQL leere Spalten auffüllen
    By MO1602 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 10-07-18, 08:31
  2. Programm aus QRPLOBJ wird dem echten Programm vorgezogen
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 30-01-17, 13:36
  3. Hp Laserjet pro 400 M401dne leere seite
    By Dihske in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 24-10-14, 11:59
  4. SAVF per E-Mail und dann zurück auf AS/400
    By JonnyRico in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 14-11-02, 09:25
  5. Leere Dokumente kopieren
    By elmar in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-07-01, 13:22

Berechtigungen

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