Index: /trunk/data/konvert/postnas_0.6/konv_batch.sh
===================================================================
--- /trunk/data/konvert/postnas_0.6/konv_batch.sh	(revision 112)
+++ /trunk/data/konvert/postnas_0.6/konv_batch.sh	(revision 113)
@@ -29,4 +29,6 @@
 ##
 ##  ##  2011-07-25 PostNAS 06, Umbenennung
+##  ##  2011-09-20 Verarbeiten der delete-Eintraege bei Aktualisierung.
+##                 Siehe http://trac.wheregroup.com/PostNAS/wiki/SchrittfuerSchritt
 ##
 ## Konverter:   /opt/gdal-1.9/bin/ = GDAL 1.9 / PostNAS 0.6
@@ -87,4 +89,8 @@
 layer=""
 # leer = alle Layer
+#
+# DB-Connection
+con="-p 5432 -d ${DBNAME} "
+#
   echo "Datenbank-Name . . = ${DBNAME}"
   echo "Ordner NAS-Daten . = ${ORDNER}"
@@ -96,11 +102,17 @@
   echo "Dateien in " ${ORDNER} " (ls) :"
   ls
+  # Alte delete-Eintraege (vorangegangener Abbruch?) loeschen, oder abarbeiten?
+  echo 'TRUNCATE table "delete";' | psql $con -U ${DBUSER}
+  #
 # for zipfile in ${ORDNER}/*.xml.zip ; do 
   for zipfile in *.zip               ; do 
     echo " "
-    echo "*******"
+    echo "*********"
     echo "* Archiv: " $zipfile
     rm ../temp/*.xml
     unzip ${zipfile}  -d ../temp
+ 
+    # Es sollte eigentlich immer geneu ein XML-File in jedem ZIP-File stecken,
+    # aber es geht auch anders.
     for nasdatei in ../temp/*.xml ; do 
       echo "* Datei:  " $nasdatei
@@ -109,13 +121,42 @@
       # Groesse und Datum anzeigen
       #ls -l ${nasdatei}
-      /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \
-        PG:"dbname=${DBNAME} user=${DBUSER} password=${DBPASS} host=localhost port=5432" \
-        -a_srs EPSG:25832  ${nasdatei}  ${layer}  2>> $errprot
-      # Abbruch bei Fehler?
-      nasresult=$?
-      echo "* Resultat: " $nasresult " fuer " ${nasdatei}
+      if [ $UPD = "e" ]
+      then
+        # E R S T L A D E N
+        /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \
+           PG:"dbname=${DBNAME} user=${DBUSER} password=${DBPASS} host=localhost port=5432" \
+           -a_srs EPSG:25832  ${nasdatei}  ${layer}  2>> $errprot
+        # Abbruch bei Fehler?
+        nasresult=$?
+        echo "* Resultat: " $nasresult " fuer " ${nasdatei}
+      else
+        # A K T U A L I S I E R U N G
+        echo "- 1. Nur delete-Layer auswerten" 
+        /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \
+           PG:"dbname=${DBNAME} user=${DBUSER} password=${DBPASS} host=localhost port=5432" \
+           -a_srs EPSG:25832  ${nasdatei}  delete  2>> $errprot
+        nasresult=$?
+        echo "* Resultat: " $nasresult " fuer delete aus " ${nasdatei}
+        #
+        # Durch die Funktion 'deleteFeature' in der Datenbank die delete-Objekte abarbeiten
+        echo "- 1a. delete-Layer abarbeiten:"
+        psql $con -U ${DBUSER}  < /data/konvert/postnas_0.6/delete.sql
+        #
+        echo "- 2. alle Layer auswerten"
+        /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \
+          PG:"dbname=${DBNAME} user=${DBUSER} password=${DBPASS} host=localhost port=5432" \
+          -a_srs EPSG:25832  ${nasdatei}  ${layer}  2>> $errprot
+        nasresult=$?
+        echo "* Resultat: " $nasresult " fuer " ${nasdatei}
+        #
+        echo "- 2a. delete-Layer nochmals leoeschen:"
+        echo 'TRUNCATE table "delete";' | psql $con -U ${DBUSER}
+      fi
     done
+    # Ende Zipfile
+    echo "*********"
   done
   rm ../temp/*.xml
+  echo " "
   echo "** Ende Konvertierung Ordner ${ORDNER}"
   echo "Das Fehler-Protokoll wurde ausgegeben in die Datei " $errprot
Index: /trunk/data/konvert/postnas_0.6/delete.sql
===================================================================
--- /trunk/data/konvert/postnas_0.6/delete.sql	(revision 113)
+++ /trunk/data/konvert/postnas_0.6/delete.sql	(revision 113)
@@ -0,0 +1,25 @@
+-- ==============
+-- ALKIS  PostNAS
+-- ==============
+
+-- Verarbeiten der NAS-Loeschsaetze bei Aktualisierung
+-- Siehe http://trac.wheregroup.com/PostNAS/wiki/SchrittfuerSchritt
+
+--  2011-09-20 PostNAS 0.6
+
+
+-- Vorbereitung der Spalte featureid 
+UPDATE "delete" 
+   SET featureid = substring(featureid from 1 for 16);
+
+-- Löschen der Einträge aus den Tabellen und der Beziehungen aus alkis_beziehungen 
+SELECT deleteFeature(typename, featureid) AS deletefeature 
+FROM   delete 
+GROUP BY deletefeature;
+
+-- Löschen der Einträge der Tabelle delete
+-- (Truncate erfordert, dass der ausfuehrende User der Owner ist.)
+TRUNCATE table "delete";
+
+
+-- END --
