XML Import prebieha v nasledujúcich krokoch:
- Načítanie XML súborov.
- Prvé parsovanie XML dát.
- Párovanie objektov a referencií s cieľovou konfiguráciou :
- párovanie importovaných objektov s cieľovou konfiguráciou
- priradenie ID novým objektom (insert), ak sa rezervácia ID nepodarila, alebo ID bolo nulové
- párovanie objektových referencií s cieľovou konfiguráciou
- kontrola zhody rodičov menených objektov (update), pričom zmena je povolená iba pre objekty typu Meraný bod, Event, Databáza alebo Tabuľka
- párovanie stĺpcových referencií s cieľovou konfiguráciou
- Čítanie binárnych súborov.
- Druhé parsovanie XML dát.
- Spustenie importu XML dát.
Parsovanie XML dát
Každý XML súbor, spolu s príslušnými binárnymi súbormi, predstavuje konfiguráciu objektu určeného na import.
Podmienky úspešného parsovania:
- štruktúra XML súboru musí byť korektná
- v rezervovanej sekcii <REFERENCES> musí mať každá objektová referencia <HOBJ_REF>:
- vyplnené meno <name>
- jedinečné meno <name> a <uid> (ak je vyplnené) v rámci tejto sekcie
- v rezervovanej sekcii <REFERENCES> musí mať každá stĺpcová referencia <COL_REF>:
- vyplnené meno <col_name>
- jedinečné meno <col_name> a <col_idx> (ak je vyplnené) v rámci tejto sekcie
- <col_idx> nesmie nadobúdať hodnotu vyššiu ako MAX_VALID_COL_IDX = 7777
- v rezervovanej sekcii <CFGRECORDS> musí byť uvedená ako prvá štruktúra <tObjItemData>
- štruktúra musí mať vyplnené meno <Name>
- ak má objekt v referenciách referenciu na seba, musí mať zhodné meno a uid
Ak počas parsovania časti <CFGRECORDS> nájde objektovú alebo stĺpcovú referenciu, ktorú podľa mena nenájde vo vopred pripravených referenciách zo sekcie <REFERENCES>, automaticky si ju tam doplní. To znamená, že referencie zo sekcie <REFERENCES> sú len akýmsi predpisom, ktorý primárne berie do úvahy, ale nie sú nevyhnutnosťou na to, aby prebehol import. Po skončení tejto fázy prebieha kontrola, či všetky objekty bolo možné previesť z XML reprezentácie do reprezentácie pamäťovej. Táto fáza teda zahŕňa iba kontrolu správnosti objektov ako samostatných prvkov bez ohľadu na ich príslušnosť ku konkrétnej konfigurácii.
Párovanie importovaných objektov s cieľovou konfiguráciou
Spôsob párovania objektov zobrazuje schéma párovania objektov.
Prioritný údaj pri párovaní je element uuid v štruktúre TObjItemData.
Sekundárny údaj pri párovaní je element Name v štruktúre TObjItemData.
Upozornenia, ktoré môžu počas párovania nastať:
- ide o aktualizáciu objektu cez NAME po tom, čo zadané UID objektu sa nenašlo (4. a 5. prípad v schéme),
- ide o aktualizáciu objektu a objekt má iný typ hodnoty ako objekt v cieľovej konfigurácii,
- ide o vloženie objektu a nebolo možné rezervovať zadané ID objektu v cieľovej konfigurácii.
Chyby, ktoré môžu počas párovania nastať:
- hodnota UID alebo NAME je zhodná s hodnotou iného importovaného objektu,
- objekt, ktorý má byť importovaný sa viaže na objekt, ktorý bol práve zmazaný z cieľovej konfigurácie,
- načíta také UID z cieľovej konfigurácie, ktoré sa už vyskytuje medzi importovanými objektmi (2. alebo 4. prípad v schéme),
- premenovanie mena objektu, pričom také NAME už v cieľovej konfigurácii patrí inému objektu (7. prípad v schéme),
- import nového objektu s menom, ktoré už v cieľovej konfigurácii patrí inému objektu (6. prípad v schéme),
- objekt určený na aktualizáciu je iného typu ako typ objektu v cieľovej konfigurácii,
- importovaný objekt nemá nastavený rodičovský objekt,
- objekt určený na aktualizáciu má iný rodičovský objekt ako importovaný objekt (okrem prípadu, kedy sa jedná o objekt typu Meraný bod, Event, Databáza alebo Tabuľka (lebo tie zmenu povoľujú).
Párovanie objektových referencií s cieľovou konfiguráciou
Spôsob párovania objektových referencií zobrazuje schéma párovania objektových referencií.
Prioritný údaj pri párovaní je element uid v štruktúre HOBJ_REF.
Sekundárny údaj pri párovaní je element name v štruktúre HOBJ_REF.
Pri zapnutom parametri IGNR_REFS sa párovanie
môže vykonať iba cez sekundárny údaj.
Upozornenia, ktoré môžu počas párovania nastať:
- odlišný názov, typ, alebo typ hodnoty objektu v objektovej referencii ako v objekte, na ktorý odkazuje,
- objekt referencie je vyhľadávaný cez NAME po tom, ako nebolo možné referenciu napojiť cez UID (možné len ak je importovací parameter UID_STRICT = OFF).
Chyby, ktoré môžu počas párovania nastať:
- nie je možné nájsť objekt, na ktorý objektová referencia ukazuje
Párovanie stĺpcových referencií s cieľovou konfiguráciou
Spôsob párovania stĺpcových referencií zobrazuje schéma párovania stĺpcových referencií.
Prioritný údaj pri párovaní je element col_idx v štruktúre COL_REF.
Sekundárny údaj pri párovaní je element col_name v štruktúre COL_REF.
Pri zapnutom parametri IGNR_REFS sa párovanie môže vykonať iba cez sekundárny údaj.
Upozornenia, ktoré môžu počas párovania nastať:
- odlišný názov alebo typ hodnoty stĺpca v stĺpcovej referencii ako v stĺpci, na ktorý odkazuje
Chyby, ktoré môžu počas párovania nastať:
- nemožno nájsť stĺpec, na ktorý stĺpcová referencia ukazuje
Súvisiace stránky:
Pridať komentár