[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2008
    Beiträge
    74

    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
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bildschirmfoto 2020-03-04 um 11.37.19.png 
Hits:	17 
Größe:	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
    18.475
    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: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2007
    Beiträge
    591
    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
    18.475
    Stimmt, den Hauptknoten haben meine 4 Augen nicht wahrgenommen;-).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

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

Ähnliche Themen

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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •