[Allegro] Update Manipulation

Thomas Berger ThB at Gymel.com
Mi Dez 21 14:36:19 CET 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Manecke,

> Die neuen Sätze sollen jeweils eine #00 bekommen, die mit se beginnt
> und fünfstellig gezählt ist. Also sorge ich beim Import dafür, dass
> es eine
> #00 se?5
> gibt.
> Update starte ich mit -fm41. Werden (über die PICA-Produktionsnummer
bzw. über die ISBN) vorhandene Dubletten entdeckt, soll die alte #00
jedoch nicht überschrieben werden.
> Also ändere ich die Importparameter so, dass:
> #00 ~se?5
> herauskommt. 
> Es passiert das Gewünschte: #00 bleibt unangetastet, die neue #00
> wird zur #002. Diese möchte ich allerdings gleich wieder los werden. Dazu
> lade ich beim Update eine zusätzliche Parameterdatei (-eman1/nul).
> In dieser meinte ich nun, mit 
> #nr p"#002" e4 M
> die neu gebildete #002 gleich wieder löschen zu können. 
> Das klappt aber leider nicht. Es wird statt dessen ein #002 ohne Inhalt eingefügt.
> 
> Wo ist mein Denkfehler? Gibt es eventuell einen einfacheren Weg?

Eigentlich sollte die Loeschung mit
#nr p"#002 " e5 M
gehen, wenn ja, bitte nicht weiterlesen.

Die GM ist nach meiner Erinnerung jedoch etwas allergisch gegen
Loeschungen an "der" Identnummernkategorie (oder war es die erste im
Datensatz?), so dass es moeglicherweise trotzdem nicht funktioniert.


> (Update mit -fm31 scheidet leider aus, denn alle anderen Kategorien
> sollen sehr wohl ersetzt werden.)

So gehe ich in dieser Situation vor (ziemlich aufwendig, das habe ich
jetzt gerade heruntergekocht von einer Loesung, die auch bei -fm41
andere Kategorien "schuetzen" kann bzw. auch in der Lage ist,
gewisse vorhandene Kategorien zu losechen, wenn sie im Neusatz nicht
mehr vorhanden sind).

Hierarchische Saetze koennen uebrigens so nicht verarbeitet werden, vgl.
http://www.gymel.com/bugzilla/show_bug.cgi?id=383

viele Gruesse
Thomas Berger


...
   -------- Anweisungsteil
- --------------------------------------------------

  % Dies wird vor dem Updaten durchlaufen, und zwar nur,
  % wenn der Satz bereits vorhanden ist
  % Nachladen koennen wir nicht, der neue Satz kommt vor dem alten.

  % bzgl. weggefallener Kategorien:
  % 1. neue Form (Manipulationsmoeglichkeit)
  % 2. alte Form (keine Moeglichkeit)
  % 3. GM
#uzh +#J0a Z

  %
  % 1. Update-Satz
  %
#nr p"neu|" e"|" =zh
...
#nr +#J0z Z

  %
  % 2. vorhandener Satz
  %
#J0a
#nr p"alt|" e"|" =zh
...

#J0z
  % bzgl. Identnummer
  % drei Moeglichkeiten:
  % 1. Satz vorher nicht vorhanden
  %    => Exportabschnitt wird nicht durchlaufen
  %       Vorbelegung von #00 wird expandiert
  %
  % 2. Satz vorher vorhanden, ohne #00
  %    => Exportabschnitt wird leer durchlaufen
  %       Problem allerdings: #00 wird nicht expandiert. Pech
  %
  % 3. Satz vorher vorhanden und hat gueltige #00
  %    => Exportabschnitt merkt alte #00
  %       Wird wieder eingesetzt beim abspeichern

  % Also: #udn leer    ->  #00 beibehalten
  %       #udn gesetzt ->  #00 spaeter damit wiederbelegen
#00 +# c"[?]" Z             % ist also der Neusatz
#00 +# ddn adn Z            % Altsatz mit #00: retten!
#+#

  % 3. Globale Manipulation:
  % beim Abspeichern des Satzes wird ggfls. #95ff ergaenzt
  % sowie #xn repariert.

#-#
#udn ddn p"#00 " M             % falls #00 gerettet => wieder einsetzen
...
#nr dzh Z                      % wichtig: neu/alt-Merker zuruecksetzen
#+#
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDqVpTENVh3bB0lwMRAtDnAJ9WOQDPrGztxWEoFI+SQajSBNyXSgCfT0SS
r0N1jpZMLbcmH2kjLqkIdlw=
=WZEw
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro