Autor Thema: Feldname bzw. Item mit Steuerzeichen erzeugt - Wie wieder loswerden?  (Gelesen 6328 mal)

Offline 2Consultants

  • Aktives Mitglied
  • ***
  • Beiträge: 165
  • Geschlecht: Männlich
  • Don't worry be happy!
Hallo,
mir ist etwas passiert was ich in 19 Jahren Notes noch nicht erlebet habe.
Mit einem @Setfield wurde ein Feld gefüllt und dabei enthielt der Feldname im Setfield vesehentlich ein Steuerzeichen, genauer ein TAB. In den Dokumenteigenschaften erscheint das Feld mit Feldname[] in NotesPeek mit Feldname\t. Ich bekomme das Feld nicht mehr gelöscht, leider stellt es sich in den Weg bei allen Funktionen wo es um das richtige Feld geht. Es existiert also zweimal im Dokument, mit und ohne Sonderzeichen. Hat jemand eine Idee wie ich das faslsche Item löschen kann? @DeleteField löscht zum Beispiel das Feld ohne Sonderzeichen selbst wenn ich das mit angebe.

Gruß
Christian
IBM Lotus Notes & Domino Senior Consultant

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
LOL. Schräg. Über die Note-ID ist auch nix zu machen?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline 2Consultants

  • Aktives Mitglied
  • ***
  • Beiträge: 165
  • Geschlecht: Männlich
  • Don't worry be happy!
Hm, ja danke für das Mitgefühl  :'(
Es sind leider 19.000 Dokumente die jetzt diesen Schaden haben.
IBM Lotus Notes & Domino Senior Consultant

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Wie wäre es durch alle Items des Dokumentes zu iterieren und beim "falschen" ein item.remove auszuführen ?

Gruß

André

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... du benötigst bei 2 Feldern des gleichen namens 2 @DeleteField-Aufrufe...

Toni
Grüßle Toni :)

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Anton, ich vermute einmal ,das er im Originalfeld Werte hat die er nicht unbedingt auch noch wegwerfen will.

Alternativ ist das in Script ein Agent mit 25 Zeilen. Andres Tip funktioniert.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... die Inhalte kann er doch vor dem Wegwerfen in eine Variable nehmen und dann neu zuweisen. Solange es nicht RichText-Felder sind, dürfte es keine Probleme machen...
Grüßle Toni :)

Offline 2Consultants

  • Aktives Mitglied
  • ***
  • Beiträge: 165
  • Geschlecht: Männlich
  • Don't worry be happy!
Moin und Danke für die Tipps.
Die Werte in dem Feld brauche ich nicht mehr, ist immer der gleiche bei allen 19.000 Adressen. Mit @DeleteField läßt sich das "illegale" Feld nicht löschen. Man kann so etwas mit @Setfield zwar erzeugen aber danach ist es nicht mehr greifbar. Das mit den zwei @DeleteField hatte ich auch schon probiert.
IBM Lotus Notes & Domino Senior Consultant

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
PMR? Was meint IBM dazu?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline 2Consultants

  • Aktives Mitglied
  • ***
  • Beiträge: 165
  • Geschlecht: Männlich
  • Don't worry be happy!
An die IBM habe ich das noch nicht gemeldet...

Läßt sich übrigens schön reproduzieren:
@SetField("FeldnameTAB-TASTE";"Text")
Das Item ist dann nicht mehr greifbar  ???
IBM Lotus Notes & Domino Senior Consultant

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
hast du es schon mit LS versucht?

Toni
Grüßle Toni :)

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Code
Declarations

Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument

Dim removed As boolean


Sub Initialize()
	Set session = New NotesSession
	Set db = session.currentdatabase
	Set dc = db.Unprocesseddocuments
	
	Removed = False
	
	If dc.count > 0 Then
		Set doc = dc.getfirstdocument
		Do While Not doc Is Nothing
			ForAll v In doc.Items
				If v.name = "fldSometext	" Then
					Print "Hab ich dich erwischt ... Du hast folgenden Wert " + v.text + " und jetzt bist du weg"
					Call v.remove
					Removed = true
				End If
			End ForAll
			If Removed = True Then
				Call doc.save(True,False)
				removed = false
			End If
			Set doc = dc.getnextdocument(doc)
		Loop
	End If
End Sub

Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline 2Consultants

  • Aktives Mitglied
  • ***
  • Beiträge: 165
  • Geschlecht: Männlich
  • Don't worry be happy!
Danke an Thomas, das Script funktioniert in meiner Test-DB. Ob es in der Adress-DB funktioniert wird sich zeigen. Da wird das Item nämlich nicht als "Feldname " angezeigt sondern als "Feldname[]". ALso nicht wirklich die eckigen Klammern sondern das Kästchensymbol.
IBM Lotus Notes & Domino Senior Consultant

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... er wird funktionieren...

Toni  ;D
Grüßle Toni :)

Offline 2Consultants

  • Aktives Mitglied
  • ***
  • Beiträge: 165
  • Geschlecht: Männlich
  • Don't worry be happy!
Setzt aber voraus das das Steuerzeichen wirkjlich ein TAB ist. Ansonsten muß ich im Script genau das Steuerzeichen im Feldnamen einfügen welches im Itemnamen vorkommt.
IBM Lotus Notes & Domino Senior Consultant

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Da nimmst du dir das Tool ScanEZ von Ytria und kopierst den Feldnamen da raus und in dein Script rein. Dann funktioniert das.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline FriFra

  • Senior Mitglied
  • ****
  • Beiträge: 397
  • Geschlecht: Männlich
Du kannst mit @SetField auch @DeleteField zuweisen ;D

Code
@SetField("Feldname"+@Char(9);@DeleteField)
« Letzte Änderung: 06.02.10 - 09:38:03 von FriFra »
Gruß
Michael


IBM Certified Advanced Application Developer (PCLP AD 8.5,8,7,6,5)
IBM Certified Associate System Administrator (CLS SA 8.5)
Domino 10.0.1 (Windows Server 2016)
Inventor of the 00.00.200x?

Offline Pyewacket

  • Senior Mitglied
  • ****
  • Beiträge: 310
  • Geschlecht: Männlich
Der Code von Thomas passt prinzipiell, nur den Feldnamen musst du dir selber zusammenbauen.

If v.name = "Feldname"+Chr(9) Then

Den falschen Feldnamen per cut and paste in das Script zu kopieren dürfte nicht gehen da der Editor
das Tab gleich interpretiert.
ATOS.org - Feel the music!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz