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á:
- pre objekty typu Meraný bod, Event, Databáza, Tabuľka, Počítaný bod, Alarm, Vzdialený objekt, Archivovaná hodnota
- pre iné typy objektov (napr. Linka, Stanica) za predpokladu, že rodičovský proces (napr. KOM) je zastavený. Pokiaľ je rodičom objektu priamo proces (napr. pre objekty typu Linka), musí byť zastavený pôvodný aj nový proces
- 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: