Hochfrequenz / migmose

A parser to extract the information from the docx MIG files from edi@energy
MIT License
0 stars 0 forks source link

2 - Create the template files #77

Open hf-krechan opened 5 months ago

hf-krechan commented 5 months ago

Next to the .tree files there are also .template files. These contain the structure of a MIG.

To be able to create these .template files, we need to scrape the tables which come after the diagram section.

Example

Here an example where to place the information from the MIG table

image

In short

                <field name="Vorgangsnummer" ref="IDE:2:0" meta.id="7402" />

In context

<?xml version="1.0" ?>
<UTILMD>
    <class name="Dokument" ref="/" key="UNB:5:0">
        <field name="Absender" ref="UNB:2:0" ahbName="Absender.Code" />
        <field name="Absender_Code_UNB" ref="UNB:2:1" ahbName="Absender.Codeliste" />
        <field name="Empfaenger" ref="UNB:3:0" ahbName="Empfänger.Code" />
        <field name="Empfaenger_Code_UNB" ref="UNB:3:1" ahbName="Empfänger.Codeliste" />
        <field name="Dokumentendatum" ref="UNB:4:0" />
        <field name="Dokumentenuhrzeit" ref="UNB:4:1" />
        <field name="Datenaustauschreferenz" ref="UNB:5:0" />
        <class name="Nachricht" ref="UNH" key="UNH:1:0" max="9999" meta.type="group">
            <field name="Nachrichten-Referenznummer" ref="UNH:1:0" meta.id="0062" />
            <field
            name="Kategorie"
            migName="Beginn der Nachricht"
            meta.id="1001"
            ref="BGM:1:0"
            groupBy="Beginn der Nachricht"
            meta.help="Hier wird die Kategorie der gesamten Nachricht für alle Vorgänge angegeben."
            meta.type="repository"
            meta.typeInfo="Kategorierepository"
            />
            <field name="BGMKey" migName="Beginn der Nachricht" meta.id="1004" ref="BGM:2:0" ahbName="Dokumentennummer" groupBy="Beginn der Nachricht" groupKey="true" />
            <field name="Nachrichtendatum" ref="DTM:1:1[1:0=137]" meta.id="2380" meta.format="203" />
            <field name="Gueltigkeit" ref="DTM:1:1[1:0=157^1:2=610]" meta.id="2380" meta.format="610" ahbName="Gültigkeit,Beginndatum" />
            <field name="Referenz Anfrage" ref="RFF:1:1[RFF:1:0=AAV]" meta.id="1154" ahbName="Referenz auf eine vorangegangene Anfrage" />
            <class name="Absender_NAD" migName="MP-ID Absender" max="1" ref="SG2" key="NAD:2:0[1:0=MS]" ahbName="MP-ID Absender" meta.type="group" meta.objType="Marktpartner">
                <field name="ID" ref="NAD:2:0" ahbName="MP-ID" meta.id="3039" />
                <field name="Codeliste" ref="NAD:2:2" meta.id="3055" />
                <class name="Ansprechpartner" ref="SG3" max="1">
                    <class name="Kontakt" ref="CTA" key="CTA:2:1" meta.virtualKey="Ansprechpartner" max="5" meta.virtual="true">
                        <field name="Name" ref="CTA:2:1" meta.id="3412" />
                    </class>
                    <class name="Kommunikationsverbindung" ref="COM" max="5">
                        <field name="ID" ref="COM:1:1" meta.id="3148" ahbName="Art des Kommunikationsmittels" />
                        <field name="Adresse" ref="COM:1:0" meta.id="3155" ahbName="Nummer / Adresse" />
                    </class>
                </class>
            </class>
            <class name="Empfaenger_NAD" migName="MP-ID Empfänger" max="1" ahbName="MP-ID Empfänger" ref="SG2" key="NAD:2:0[1:0=MR]" meta.objType="Marktpartner">
                <field name="ID" ref="NAD:2:0" ahbName="MP-ID" meta.id="3039" />
                <field name="Codeliste" ref="NAD:2:2" meta.id="3055" />
            </class>
            <class name="Vorgang" ref="SG4" key="IDE:2:0" max="99999" meta.type="group" groupKey="Vorgangsnummer">
                <field name="Vorgangsnummer" ref="IDE:2:0" meta.id="7402" />
                <field name="Identifikationslogik" ref="IMD:3:0[2:0=Z36]" meta.id="7009" />
                <field name="Lieferdatum" ref="DTM:1:1[1:0=76]" meta.format="102" meta.id="2380" meta.type="date-time" ahbName="Datum zum geplanten Leistungsbeginn" />
...