[PostNAS] doppelte gml_id auf "ax_grenzpunkt"

"Jäger, Frank (KRZ)" F.Jaeger at KRZ.DE
Don Okt 13 10:16:51 EDT 2011


 
> -----Original Message-----
> From: Ralf Suhr [mailto:Ralf.Suhr at itc-halle.de] 
> Sent: Thursday, October 13, 2011 3:55 PM
> To: nas at lists.osgeo.org
> Cc: Jäger, Frank (KRZ)
> Subject: Re: [PostNAS] doppelte gml_id auf "ax_grenzpunkt"
> 
> Hallo Herr Jäger,
> 
> schauen Sie mal woher das Objekt kommt. Aus einem WFS:Delete 
> oder einem WFSEXT:Replace. Bei letzterem wäre das zu 
> erwarten, da dieses zwei INSERT erzeugen würde. In der 
> "delete" Tabelle und der Tabelle ax_grenzpunkt.
> 
> Setzen Sie einen Trigger auf die "delete" Tabelle, der den 
> Eintrag in der Tabelle ax_grenzpunkt automatisch löscht. Dann 
> kann das zweite INSERT nicht mehr kollidieren.
> 
> MfG
> Ralf Suhr
> 


Hallo,
so wie ich das sehe, steht diese gml_id "DENW17AL0000SfRK" (Beispiel) innerhalb eines "Insert" (NAS unten).
Ein Trigger würde also nichts nutzen.
Der Trigger würde auf etwas elegantere Weise das gleiche tun, wie jetzt das Script:
 1. nur "delete" konvertieren
 2. Tabelle delete mit function auf die Tabellen anwenden
 3. Tab. Delete löschen
 4. alle Layer konvertieren
 5. Tab. Delete noch mal löschen

Das habe ich hiernach gebaut:
 http://trac.wheregroup.com/PostNAS/wiki/SchrittfuerSchritt#ImportvonFortf%C3%BChrungsdatens%C3%A4tzen

Und hier abgelegt: http://trac.wheregroup.com/PostNAS/browser/trunk/data/konvert/postnas_0.6/konv_batch.sh
Siehe bei "# A K T U A L I S I E R U N G"


Auszug aus NAS:
---------------

#Zeile 19:
  <geaenderteObjekte>
    <wfs:Transaction version="1.0.0" service="WFS">
      <wfs:Insert>
...
#Zeile 2599:
        <AX_Grenzpunkt gml:id="DENW17AL0000SfRK">
          <gml:identifier codeSpace="http://www.adv-online.de/">urn:adv:oid:DENW17AL0000SfRK</gml:identifier>
          <lebenszeitintervall>
            <AA_Lebenszeitintervall>
              <beginnt>2011-09-22T05:22:01Z</beginnt>
            </AA_Lebenszeitintervall>
          </lebenszeitintervall>
          ....
        </AX_Grenzpunkt>
...
#Zeile 4979:
      </wfs:Insert>
      <wfsext:Replace vendorId="AdV" safeToIgnore="false">
....

Schieben wir es mal der abgebenden Software in die Schuhe   ;-)
Die liefert einfach kein Delete obwohl dieser Grenzpunkt schon vorhanden war.

Mit freundlichen Grüßen
F. Jäger