Autor Thema: Frage zum Autorenfeld  (Gelesen 4285 mal)

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Frage zum Autorenfeld
« am: 28.06.13 - 15:25:37 »
Hallo Zusammen,

noch eine Frage stellt sich mir, die mir nicht klar ist...

Im QuerySave eine Dokuemts wird eine Art Zähldokument erzeugt...
Der holt sich das Dokument aus einer View und schaut rein, welche ID zuletzt erzeugt wurde.

Nehmen wir also an, da steht die 1 drin.
Dann updated er diese 1 auf eine 2 speichert dieses "ID" Dokument und übernimmt die 2 in das gerade zu speichernde Info Dokument...

Die User haben nur Autorenrechte... Wenn kein ID Dokument existiert, gibt es keinen Fehler.
Existiert jedoch eins, welches geupdated werden soll, dann kommt folgender Fehler:

Zitat
you cannot update or delete the document since you are not listed as an allowable author

Gut dachte ich, schau es dir mal an...

Für mich sieht das nicht falsch aus...

Da ist ein feld für die ID drin...
Und ein Autorenfeld, welches auf berechnet steht.

Der Wert für die Berechnung ist eine Gruppe aus dem DD, welcher der User angehört...

Schau ich mir in der View das Dokument an, taucht das Autorfeld gar nicht in der Feldansicht auf.
Geht man in das Dokument rein, dann schon...

Was mache ich hier falsch?

GLG,
Thomas

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #1 am: 28.06.13 - 15:29:43 »
Hallo,

Und das 'Autorenfeld' steht auch wirklich auf "Berechnet" und nicht auf "Berechnet zur Anzeige"

Und was sagen die Dokumenten-Eigenschaften (Feldeigenschaften des Autorenfeldes) des Zaehldokumentes.
(aufgerufen aus der Ansicht und nicht wenn das Dokument geoeffnet ist)


Andreas

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Re: Frage zum Autorenfeld
« Antwort #2 am: 28.06.13 - 15:31:58 »
Hallo,

Und das 'Autorenfeld' steht auch wirklich auf "Berechnet" und nicht auf "Berechnet zur Anzeige"


Ja 100% sicher. Gerade noch einmal geprüft.

Zitat
Und was sagen die Dokumenten-Eigenschaften (Feldeigenschaften des Autorenfeldes) des Zaehldokumentes.
(aufgerufen aus der Ansicht und nicht wenn das Dokument geoeffnet ist)

Aus der View heraus aufgerufen, sehe ich das Autorenfeld gar nicht in den Eigenschaften.

Mach ich das Dokument aber auf, dann sehe ich es in den Eigenschaften.

Edit:
Die entsprechende Gruppe ist in der ACL aber auch mit Autorenrechten eingetragen und hat das Create Document recht.

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #3 am: 28.06.13 - 15:35:21 »
Kann es sein, dass das Feld eingeführt wurde, nachdem das Dokument angelegt wurde ? Und das Dokument wurde seither nie mehr im UI gespeichert ?

Mach doch mal das Dokument im Änderungsmodus auf, speicher es ab und mach es zu. Jetzt sollte das Feld da sein.


Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Re: Frage zum Autorenfeld
« Antwort #4 am: 28.06.13 - 15:40:06 »
Hallo,

selbst wenn ich alle Dokumente lösche und das ganze dann neu erstellen lasse zeigt er es nicht an.
In den bearbeiten Modus komm ich auch nicht rein...

Wenn ich das ID Dokument manuell erzeugt, dann kappt es... Hab ich gerade mal getestet.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #5 am: 28.06.13 - 15:47:50 »
Du wirst im Querysave das Zähldokument suchen. Ist keines vorhanden, erstellst Du es per Script, was funktioniert, da das Dokument neu ist, erstellst aber das Dokument ohne Autoritem (Set item = New NotesItem (doc, "Autor", "DEINE GRUPPE", AUTHORS)). Der nächste User fällt dann auf die Nase, weil das Zähldokument kein Autorenitem hat.

Völlig logisch. Du kannst in der Maske tausend Autorenfelder definieren, als berechnet, berechnet beim Anlegen oder sonstwas. Wenn Du per Script ein Dokument im Backend erstellst, ist diesem Dokument die Definition in der Maske sch...egal, und das ist auch gut so.

Dass das Item im geöffneten Zustand da ist, ist ebenfalls logisch, denn die Maske hat die Felddefinition und legt das Item dann an. Speicherst Du das Dokument nicht, ist es natürlich im geschlossenen Zustand weg.

Jetzt das Dokument zu bearbeiten und zu speichern ist doktern an den Symptomen und macht Dich nur temporär glücklich. Die nächste Datenbank aus der gleichen Schablone knallt an der gleichen Stelle wieder.

Langer Rede kurzer Sinn: Ergänze im Querysave an der Stelle, an der Du das Zähldokument neu anlegst, die Erstellung des Autorenitems wie oben beschrieben. Das existierende Dokument kannst Du allerdings mit Bearbeiten und Speichern korrigieren (wobei die Berechnungsformel in der Maske fast überflüssig ist, da Du dieses Dokument vermutlich sowieso nie öffnest).


Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Re: Frage zum Autorenfeld
« Antwort #6 am: 28.06.13 - 16:08:26 »
Zitat
Völlig logisch. Du kannst in der Maske tausend Autorenfelder definieren, als berechnet, berechnet beim Anlegen oder sonstwas. Wenn Du per Script ein Dokument im Backend erstellst, ist diesem Dokument die Definition in der Maske sch...egal, und das ist auch gut so.

Das war mir z.B. überhaupt gar nicht klar...
Ich war der Meinung selbst ein Backend Dokument muss sich, wenn Felder definiert sind an diese halten... Das man Felder hinzufügen, entfernen oder bearbeiten kann, das war schon klar...

Wieder was dazu gelernt...

Vielen Dank. :)

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Re: Frage zum Autorenfeld
« Antwort #7 am: 28.06.13 - 16:15:00 »
Aber noch eine Frage: Wenn ich das so mache. Werden dann nicht in dem ID Dokument nachher 1000000 Items erzeugt?

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #8 am: 28.06.13 - 16:19:02 »
Hallo,

Nein.
Zum Einen solltest Du die beschriebene Variante ja nur verwenden, wenn noch KEIN ID-Dokument vorhanden ist.

Zum Andern solltest Du vorab pruefen, ob es ein entsprechendes Feld bereits im Dokument gibt.


Andreas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #9 am: 28.06.13 - 16:19:46 »
Niemand zwingt Dich, bei einem im Backend erzeugten Dokument das Item "Form" anzulegen und/oder mit einem (gültigen) Wert zu füllen, welche Maske sollte dann berücksichtigt werden? Es kann nicht oft genug gesagt werden, dass die Unabhängigkeit von Dokument und Maske eines der wichtigsten strukturellen Themen in Notes ist, das man verinnerlicht haben sollte.

Du bist da aber bei weitem nicht alleine ;)

Offline weal

  • Frischling
  • *
  • Beiträge: 2
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #10 am: 28.06.13 - 16:22:14 »
Ich war der Meinung selbst ein Backend Dokument muss sich, wenn Felder definiert sind an diese halten... Das man Felder hinzufügen, entfernen oder bearbeiten kann, das war schon klar...


Du könntest mit ComputeWithForm erzwingen, dass alle Felder aus der Maske in dem frisch erstellen Dokument erzeugt werden und mit dem eingestellten Default bzw. der Berechnung versehen werden:

Code
	Dim S As New NotesSession
	
	Dim doc_New As New NotesDocument( S.CurrentDatabase )
	doc_New.Form = "BA"
	Call doc_New.ComputeWithForm( False, False )
	Call doc_New.Save( True, False )

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #11 am: 28.06.13 - 16:23:44 »
Aber noch eine Frage: Wenn ich das so mache. Werden dann nicht in dem ID Dokument nachher 1000000 Items erzeugt?

Du wirst doch innerhalb der Routine prüfen, ob es das Zähldokument gibt. Da setzt Du das Item

Also Script auf Deutsch:

Wenn Zähldokument nicht vorhanden
   Zähldokument erstellen
   Form eintragen
   ID auf 0 setzen
   Autorenfeld eintragen
End Wenn
ID erhöhen
Dokument speichern

Dann brauchst Du auch im Nachhinein nicht zu testen, ob das Item da ist, denn es wird BEI DER ANLAGE erstellt.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #12 am: 28.06.13 - 16:28:34 »
Ich war der Meinung selbst ein Backend Dokument muss sich, wenn Felder definiert sind an diese halten... Das man Felder hinzufügen, entfernen oder bearbeiten kann, das war schon klar...


Du könntest mit ComputeWithForm erzwingen, dass alle Felder aus der Maske in dem frisch erstellen Dokument erzeugt werden und mit dem eingestellten Default bzw. der Berechnung versehen werden:

Code
	Dim S As New NotesSession
	
	Dim doc_New As New NotesDocument( S.CurrentDatabase )
	doc_New.Form = "BA"
	Call doc_New.ComputeWithForm( False, False )
	Call doc_New.Save( True, False )

So geht es auch, aber wenn dann die Maske nicht da ist? M.E. zu umständlich für diesen Fall. Ich würde vermutlich überhaupt keine Maske dafür erstellen, bzw. nur eine mit den Feldern, die ich zur Anzeige des relevanten Inhalts des Dokuments (in einer Adminansicht?) benötige. Die Steuerung des Autorenfeldes würde ich jedenfalls nicht in der Maske vornehmen, denn damit zerfleddere ich mir den Code. Anlage des Dokuments per Script, Definition des Autors in einem berechneten Feld. Wozu?

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Re: Frage zum Autorenfeld
« Antwort #13 am: 28.06.13 - 16:31:03 »
Vielen Dank dafür...
Ich versuch eigentlich immer erst selbst dahinter zu kommen...

Ich muss ganz ehrlich aber auch sagen, dieses "Know-How" in den bisherigen Schulungen eigentlich null komma gar nix vermittelt wurde... Eigentlich schade...

Weil das scheinen ja doch eher Basics zu sein, wenn man das so liest.

Grüße,
Thomas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Frage zum Autorenfeld
« Antwort #14 am: 28.06.13 - 17:09:44 »
Basics hin oder her, vieles ist einfach nur durch Erfahrung zu verstehen. Würde man das alles in eine Schulung packen, versteht nachher keiner mehr was. Das ist immer der Spaghat des Lehrenden, zeigt man zuviel oder zuwenig?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz