Bei der 1-Klick-Wartung werden zwar Fehler in Versorgungsnetzwerkmodellen angezeigt, nicht jedoch, welche Objekte konkret betroffen sind.
Eine mögliche Meldung kann sein, dass Objekte einen "schlechten" F_Klasse_ID_Attr-Wert hätten.
Sollte die Fehlermeldung wirklich auf das Feld F_CLASS_ID_ATTR in der Geometrie-Tabelle abzielen, kämen folgende Abfragen in Betracht:
Fehlt ein Wert?
select fid from el_point where f_class_id_attr is null;
Verweist der Wert auf eine Objektklasse, die es nicht gibt?
select fid from el_point where not f_class_id_attr in (select f_class_id from tb_dictionary);
Verweist der Wert auf eine Objektklasse, die nicht zur Topologie der elektrischen Leiter gehört?
select fid from el_point where not f_class_id_attr in (select
attr_value from tb_topology_fc_split where topology_def_id in (select id
from tb_topology_def where topology_id in (select id from tb_topology
where name = 'EL') and def_type='F' and f_class_id in (select f_class_id
from tb_dictionary where f_class_type = 'P')));
Führen Sie die Abfragen im SQL-Sheet in der Stromfachschale aus.
Wenn Ergebnisse auftauchen, dass sind es FIDs aus der Tabelle EL_POINT.
Für andere Versorgungsnetze sind die Abfragen an den kursiv geschriebenen Stellen entsprechend anzupassen.
Weitere Abfragen:
-- Leitungsabschnittgeometrieobjekte ohne zugehöriges Attributobjekt
select fid from el_line where fid_attr is null;
-- Leitungsabschnittgeometrieobjekte ohne Geometrie
select fid from el_line where geom is null;
-- Leitungsabschnittgeometrieobjekte ohne Verweis auf Zielobjektklasse
select fid from el_line where f_class_id_attr is null or not f_class_id_attr in (select f_class_id from tb_dictionary where f_class_name = 'EL_CONDUCTOR');
-- Leitungsabschnittgeometrieobjekte mit nicht mehr vorhandenen FIDs von Attributobjekten
select l.fid from el_line l left join el_conductor c on c.fid = l.fid_attr where c.fid is null;
-- Leistungsabschnittattributobjekt ohne Geometrieobjekt
select s.fid from el_conductor s left join el_line l on l.fid_attr = s.fid where l.fid is null;
-- Elektro-Punkt ohne Attributobjekt-FID
select fid from el_point where f_class_id_attr is null;
-- Verweist der Wert auf eine Objektklasse, die es nicht gibt
select fid from el_point where not f_class_id_attr in (select f_class_id from tb_dictionary);
-- Verweist der Wert auf eine Objektklasse, die nicht zur Topologie der elektrischen Leiter gehört
select fid from el_point where not f_class_id_attr in (select attr_value from tb_topology_fc_split where topology_def_id in (select id from tb_topology_def where topology_id in (select id from tb_topology where name = 'EL') and def_type='F' and f_class_id in (select f_class_id from tb_dictionary where f_class_type = 'P')));
-- Verweist der Wert auf eine FID eines Attributobjekts, das nicht mehr existiert?
-- 1. Schritt: Objektklassen suchen:
select listagg('select fid from '||f_class_name,' union ') within group (order by f_class_name) from tb_dictionary where f_class_id in (select attr_value from tb_topology_fc_split where topology_def_id in (select id from tb_topology_def where topology_id in (select id from tb_topology where name = 'EL') and def_type='F' and f_class_id in (select f_class_id from tb_dictionary where f_class_type = 'P')));
-- 2. Schrift FIDs suchen
select fid from el_point where fid_attr is not null and not fid_attr in (select fid from EL_ATTACHMENT_DEVICE union select fid from EL_BREAKER union select fid from EL_BUS_BAR union select fid from EL_CAPACITOR union select fid from EL_CURRENT_CONVERTER union select fid from EL_CURRENT_REGULATOR union select fid from EL_DISCHARGER union select fid from EL_FAULT_THROWER union select fid from EL_FEEDER union select fid from EL_FUSE union select fid from EL_GENERATOR union select fid from EL_GROUND union select fid from EL_ISOLATOR union select fid from EL_JUNCTION union select fid from EL_LIGHT union select fid from EL_LIGHTNING_ARRESTER union select fid from EL_METER union select fid from EL_MINOR_CONSUMER union select fid from EL_MOTOR union select fid from EL_RECLOSER union select fid from EL_REGULATOR union select fid from EL_RISER union select fid from EL_SECONDARY_RELAY union select fid from EL_SECTIONALIZER union select fid from EL_SERVICE_POINT union select fid from EL_SLEEVE union select fid from EL_SWITCH union select fid from EL_TERMINATION union select fid from EL_TRANSFORMER union select fid from EL_UEBERSP_ABLEITER union select fid from EL_VOLTAGE_CONVERTER);
-- Trassengeometrieobjekte ohne zugehöriges Attributobjekt
select fid from el_str_line where fid_attr is null;
-- Trassengeometrieobjekte ohne Geometrie
select fid from el_str_line where geom is null;
-- Trassengeometrieobjekte ohne Verweis auf Zielobjektklasse
select fid from el_str_line where f_class_id_attr is null or not f_class_id_attr in (select f_class_id from tb_dictionary where f_class_name = 'EL_SEGMENT');
-- Trassengeometrieobjekte mit nicht mehr vorhandenen FIDs von Attributobjekten
select l.fid from el_str_line l left join el_segment c on c.fid = l.fid_attr where c.fid is null;
-- Trassenattributobjekte ohne Geometrieobjekt
select s.fid from el_segment s left join el_str_line l on l.fid_attr = s.fid where l.fid is null;
-- Bauwerk-Punkt ohne Attributobjekt-FID
select fid from el_str_point where f_class_id_attr is null;
-- Verweist der Wert auf eine Objektklasse, die es nicht gibt
select fid from el_str_point where not f_class_id_attr in (select f_class_id from tb_dictionary);
-- Verweist der Wert auf eine Objektklasse, die nicht zur Topologie der elektrischen Leiter gehört
select fid from el_str_point where not f_class_id_attr in (select attr_value from tb_topology_fc_split where topology_def_id in (select id from tb_topology_def where topology_id in (select id from tb_topology where name = 'EL_STR') and def_type='F' and f_class_id in (select f_class_id from tb_dictionary where f_class_type = 'P')));
-- Verweist der Wert auf eine FID eines Attributobjekts, das nicht mehr existiert?
-- 1. Schritt: Objektklassen suchen:
select listagg('select fid from '||f_class_name,' union ') within group (order by f_class_name) from tb_dictionary where f_class_id in (select attr_value from tb_topology_fc_split where topology_def_id in (select id from tb_topology_def where topology_id in (select id from tb_topology where name = 'EL_STR') and def_type='F' and f_class_id in (select f_class_id from tb_dictionary where f_class_type = 'P')));
-- 2. Schrift FIDs suchen
select fid from el_str_point where fid_attr is not null and not fid_attr in (select fid from EL_ACCESS_POINT union select fid from EL_ANCHOR union select fid from EL_ANTENNA union select fid from EL_ARRESTOR union select fid from EL_CONNECTOR union select fid from EL_FEEDER_PILLAR union select fid from EL_FUSE_BANK union select fid from EL_HANDHOLE union select fid from EL_INTERMEDIATE_POINT union select fid from EL_INTERMEDIATE_STRUCTURE union select fid from EL_LINK_BOX union select fid from EL_LV_BOARD union select fid from EL_MANHOLE union select fid from EL_PAD union select fid from EL_PEDESTAL union select fid from EL_POLE union select fid from EL_SUBSTATION union select fid from EL_TOWER union select fid from EL_TRAFO_STATION union select fid from EL_TRANSFORMER_BANK union select fid from EL_VAULT union select fid from EL_WARNING_LIGHT);