[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jun 2015
    Beiträge
    334

    HTML-File einlesen mit XML-INTO

    Hallo zusammen,
    ich möche mit XML-INTO ein HTML-File einlesen, was nur zum Teil funktioniert.
    Ich weiss, daß man das mit qualifizierten Strukturen gebacken bekommt.
    Das HTML ist wie folgt aufgebaut:
    Ein Block mit Info-Feldern, dann folgt auf der selben Stelle ein Block mit Auftragskopfdaten und dann innerhalb der Kopfdaten ein Block mit Auftragspositionen (für 1 - n Positionen).
    Ich bekomme einwandfrei ausgelesen die Auftragskopfdaten und die Positionen. Nur den
    1. Block mit den Infofeldern bekomme ich nicht ausgelesen obwohl definiert. Was mache ich
    falsch ? Für eine Info wäre ich dankbar.
    Gruss A61

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Dafür benötigst du 2 XML-Into, da nur 1 hierarchische Struktur eingelesen werden kann.
    Dafür gibst du den Pfad der 1. oder 2. Hauptstruktur zum einlesen an.
    Un da du das schon weißt, du benötigst qualifizierte und hierarchische DS'n.
    Schau dir hierzu diesen Beitrag an:
    http://newsolutions.de/forum-systemi...Datei-einlesen
    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
    Jun 2015
    Beiträge
    334
    danke schon mal für die Info. Ich probiere es aus !

  4. #4
    Registriert seit
    Jun 2015
    Beiträge
    334
    so sieht also das HTML aus. Und da reichen dann 2XML-INTO ?
    einlesen kann ich die Daten vom Acknowledge-Block und Orderline-Block.
    Den Document-Block nicht und die Daten aus dem Transactions-Block bekomme ich
    auch nicht eingelesen.

    <?xml version="1.0" encoding="utf-8"?>
    <SHARK-ERP>
    <Document>
    <Type>SHARKLINEACK</Type>
    <Date>2019-08-21 15:09:04</Date>
    <Sender>SHARKLINK</Sender>
    <Receiver>HOST</Receiver>
    <DocNumber>583</DocNumber>
    </Document>
    <Acknowledge>
    <Status>OK</Status>
    <OrderTypeID>17</OrderTypeID>
    <OrderType>6</OrderType>
    <OrderNumber>KM#0000000011</OrderNumber>
    <DeliveryDate>2019-08-21 15:09:03.877</DeliveryDate>
    <Owner />
    <DeliveryNoteNumber />
    <Misc1 />
    <Misc2 />
    <Misc3 />
    <Misc4 />
    <Misc5 />
    <Misc6 />
    <Misc7 />
    <Misc8 />
    <Misc9 />
    <Misc10 />
    <OrderLine>
    <Status>OK</Status>
    <LineNumber>1</LineNumber>
    <ArticleNumber>00305397</ArticleNumber>
    <QtyOrdered>10.00</QtyOrdered>
    <Qty>10.00</Qty>
    <CostCenter />
    <CostCenterText />
    <User>adm</User>
    <Time>2019-08-21 15:09:03</Time>
    <Misc1 />
    <Misc2 />
    <Misc3 />
    <Misc4 />
    <Misc5 />
    <Transactions>
    <Transaction>
    <Qty>10.00</Qty>
    <LocationAddress>A2-1-A1</LocationAddress>
    <Zone>A</Zone>
    <User>adm</User>
    <BatchNumber />
    </Transaction>
    </Transactions>
    </OrderLine>
    </Acknowledge>
    </SHARK-ERP>

  5. #5
    Registriert seit
    Jun 2015
    Beiträge
    334
    haut irgendwie nicht hin !

  6. #6
    Registriert seit
    Jun 2015
    Beiträge
    334
    Hallo zusammen, muss leider nochmals stören :-)

    wenn ich also jetzt 2 XML-INTO brauche, da in meinem HTML 2 Blöcke auf höchster Hierarchie vorhanden sind, wie sähen denn dann die Aufrufe aus ?

    ich habe in meinem Programm bisher folgendes codiert:

    XML-INTO SHARK_ERP %xml(XMLName : XMLOption);

    SHARK_ERP ist wie folgt definiert:

    SHARK_ERP DS Qualified
    Acknowledge Likeds(Acknowledge)

    Acknowledge ist einer der Blöcke auf der höchsten Ebene. Darunter sind noch Unterstrukturen. Die Daten dort werden aber allesamt korrekt ausgelesen (auch die in den Unterstrukturen).

    Der andere Block heisst Document und steht ebenfalls auf höchster Ebene (ohne Unterstrukturen, nur mit ein paar Feldern). Das will ich aber auch ausgelesen haben.

    wie muss ich also die 2 XML-INTO codieren. Für Infos besten Dank und schönes WE.

    Alex

  7. #7
    Registriert seit
    Jun 2015
    Beiträge
    334
    und dann habe ich noch eine Frage:

    wenn ich im HTML einen langen Feldnamen habe, den ich im Programm nicht unterbekomme, was kann ich dann tun (Editor mault) ?

    Beispiel (Alternativearticlenumber):

    D Article DS Qualified
    D ID 30
    D Articlenumber 30
    D Alternatvivearticlenumber 30

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Wenn Du Fix-Format D-Bestimmungen verwendest musst Du eine Fortsetzungszeile verwenden.
    Der Umbruch wird durch 3 aufeinanderfolgende Punkte gekennzeichnet.

    Beispiel:
    Code:
    D AlternativeArtikelNr...                   
    D                 S             10A         
    D DerLangeName...                           
    D   kannAuchUeber...                        
    D   MehrereZeilen...                         
    D   Umgebrochen...                          
    D   Werden        S             10A
    Ich würde Dir allerdings Free-Format D-Bestimmungen empfehlen:
    Code:
      DCL-S  AlternativeArtikelNr    Char(10);
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  9. #9
    Registriert seit
    Jun 2015
    Beiträge
    334
    ganz lieben Dank für die Antwort. Toll, das ging schon mal !!

    Hast Du evtl. auf die Frage vorher auch eine Info :-) ?

    Wenn ja, vielleicht einen kurzen Rat nur. Ich sage schon mal danke und ein schönes WE

    Alex

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Du brauchst eine DS "Transactions", die ein Array von "Transaction"-DS'n enthält.
    Transaction selber besteht nur aus Feldern ohne weitere Strukturen.
    RPGLE unterscheidet nicht zwischen Knoten und Attributen.
    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

  11. #11
    Registriert seit
    Jun 2015
    Beiträge
    334
    Hallo und erstmal danke für die Antwort. Aber ich verstehe sie leider nicht. Die Daten unter Transaction bekomme ich doch einwandfrei ausgelesen. Du hattest gestern gesagt, wenn in einem XML z.B. 2 Blöcke auf einer Stufe stehen (wie in meinem Beispiel oben Block Document und Block Acknowledge brauch ich 2 XML-INTO.
    ich habe in meinem Programm bisher folgendes codiert:

    XML-INTO SHARK_ERP %xml(XMLName : XMLOption);

    SHARK_ERP ist wie folgt definiert:

    SHARK_ERP DS Qualified
    Acknowledge Likeds(Acknowledge)

    Acknowledge ist der 2. der Blöcke auf der höchsten Ebene. Unter Acknowledge sind noch Unterstrukturen. Die Daten dort werden aber allesamt korrekt ausgelesen (auch die in den Unterstrukturen).

    Der andere oder 1. Block heisst Document und steht ebenfalls auf höchster Ebene (ohne Unterstrukturen, nur mit ein paar Feldern). Das will ich aber auch mit ausgelesen haben.

    wie muss ich also den zweiten XML-INTO codieren.

    einen habe ich so codiert:
    XML-INTO SHARK_ERP %xml(XMLName : XMLOption);

    und den anderen ?

    hier nochmals mein Coding:
    =======================================
    Document DS Qualified
    Type 30
    Date 30
    Sender 30
    Receiver 30
    Docnumber 30

    Acknowledge DS Qualified
    Status 30
    Ordertypeid 30
    Ordertype 30
    Ordernumber 30
    Deliverydate 30
    Owner 30
    Deliverynotenr 30
    Misc1 30
    Misc2 30
    Misc3 30
    Misc4 30
    Misc5 30
    Misc6 30
    Misc7 30
    Misc8 30
    Misc9 30
    Misc10 30
    OrderLine Likeds(OrderLine) dim(003)

    CntOrderLine 5I 0 (Zähler)

    OrderLine DS Qualified
    Status 30
    LineNumber 30
    ArticleNumber 30
    Qtyordered 30
    Qty 30
    Costcenter 30
    Costcentertext 30
    User 30
    Time 30
    Misc1 30
    Misc2 30
    Misc3 30
    Misc4 30
    Misc5 30
    Transactions Likeds(Transactions)

    Transactions DS Qualified
    Transaction Likeds(Transaction)

    Transaction DS Qualified
    Qty 30
    Locationaddress 30
    Zone 30
    User 30
    Batchnumber 30

  12. #12
    Registriert seit
    Jun 2015
    Beiträge
    334
    will natürlich auch nicht ausschliessen, daß ich irgendwie auf der Leitung stehen ;-)

Similar Threads

  1. HTML-Code per SQL aus DB-Feld entfernen
    By schwatzen in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 18-01-17, 14:43
  2. MD5-Hash Code auf Datenbank-File oder IFS-File
    By CaddyMajor in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 07-04-15, 13:07
  3. HTML Dokumente aus dem IFS im Internetexplorer
    By AndreasH in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 13-06-03, 16:22
  4. Neu! Native EXCEL, PDF, HTML verarbeiten
    By andigoering in forum Archiv NEWSblibs
    Antworten: 0
    Letzter Beitrag: 08-11-02, 16:27
  5. SPOOL in HTML
    By Andreas Herzfeldt in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 19-01-02, 10:19

Berechtigungen

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