Autor Thema: Zugriff auf Dokumente einer anderen DB  (Gelesen 5871 mal)

Offline FI/AW

  • Frischling
  • *
  • Beiträge: 15
Zugriff auf Dokumente einer anderen DB
« am: 24.11.08 - 09:17:32 »
Hallo,

ich bin neu in der Notes-Entwicklung und habe auch gleich ein erstes Problem von dem ich hoffe, dass Ihr mir dabei weiterhelfen könnt.

Folgendes:

Ich versuche per Lotus Script beim Speichern eines Dokuments (Querysave) ein Dokument einer anderen Datenbank(CountDB) anzusprechen und von diesem Dokument (CountDoc) den Inhalt eines Feldes (Nummer) zu bekommen.
Allerdings bekomme ich immer nur "" zurück. Obwohl der Inhalt des Feldes die Zahl 500 sein müsste.

So sieht mein Code aus ->

Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	
	Dim TaskID As Variant
	Dim Opened As Boolean
	Dim CountDB As New NotesDatabase("","")
	Opened = CountDb.Open("", "C:\Notes\Data\CounterDb.nsf")
	Dim CountDoc As New NotesDocument(CountDB)
	
	Set CountDoc = CountDB.GetDocumentByURL("Notes:///C12575080027C6A9/17AFFE032704214FC125750400332702/F4C3A85F6ED2E3A7C12575080028A090")
	TaskID =  CountDoc.Nummer
	
End Sub

Das Zieldokument sieht so aus ->

Name: DEV Aufgaben
Nummer: 500

Was mich auch wundert ist, dass mit der Debugger anzeigt dass in der Datenbank zwei Dokumente wären, ich aber nur ein einziges erstellt habe...

Hoffe mir kann einer helfen.

Schonmal vielen Dank.  :)
« Letzte Änderung: 24.11.08 - 09:20:36 von FI/AW »

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #1 am: 24.11.08 - 09:32:41 »
wenn Du die UniqueID des Dokumentes schon hast, dann gehe direkt per
set CountDoc = CountDB.UniversalID("F4C3A85F6ED2E3A7C12575080028A090")
auf das Dokument.

Was zeigt der Debugger im Feld Nummer im Dokument CountDoc?
Haben die User ausreichend Rechte auf die CountDB und das CountDoc?
Gruß
Dirk

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #2 am: 24.11.08 - 09:35:03 »
TaskID =  CountDoc.Nummer(0)
du erhältest sonst einen Array zurück, und ich nehme an, due willst nur den ersten Wert des Arrays ermitteln

Ist Nummer ein Zahlen- oder ein Textfeld?

Haben die beiden Dokumente denn die gleiche ID?
Woran siehst du, dass es die gleichen Dokumente sind?
Wenn es 2 Dokumente sind, welche Werte haben sie jeweils in diesem Feld/Item?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Driri

  • Gast
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #3 am: 24.11.08 - 09:43:24 »
Wenn das zur Generierung von laufenden Nummern oder so genutzt werden soll, empfehle ich Dir mal die Forensuche. Da gibt es nämlich einige Fallstricke, die man bei so was beachten sollte.

Offline FI/AW

  • Frischling
  • *
  • Beiträge: 15
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #4 am: 24.11.08 - 10:37:44 »
Danke für die schnellen Antworten!

Was zeigt der Debugger im Feld Nummer im Dokument CountDoc?
Es scheint dieses Feld garnicht zu geben  :-:
Ich sehe nur folgendes ->

CountDoc -> Items ->

["$Created", 1024, 10, False, False, True,...]
["WebRefreshFailed", 1280, 3, False, False,...]
["LastRefreshed", 1024, 10, False, False, True,...]
["HTTPStatus", 1280, 5, False, False, True,...]
["Status", 1280, 5, False, False, True, False,...]
usw...

aber nichts von Nummer...

Nummer ist aber definitiv ein Feld in diesem Dokument.



Haben die User ausreichend Rechte auf die CountDB und das CountDoc?
Tut nichts zur Sache da ich das ganze ja erstmal bei mir lokal teste, und da hab ich ja alle Rechte.

Ist Nummer ein Zahlen- oder ein Textfeld?
Ein Zahlenfeld

Haben die beiden Dokumente denn die gleiche ID?
Woran siehst du, dass es die gleichen Dokumente sind?
Wenn es 2 Dokumente sind, welche Werte haben sie jeweils in diesem Feld/Item?
Öhhhm... keine Ahnung also ich hab halt gesehn dass bei

CountDB-AllDocuments->Count 2

steht. Und das kann eigentlich nicht sein denn ich habe in dieser Datenbank nur ein Dokument erstellt.

Wenn das zur Generierung von laufenden Nummern oder so genutzt werden soll, empfehle ich Dir mal die Forensuche. Da gibt es nämlich einige Fallstricke, die man bei so was beachten sollte.
Okay vielen dank


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
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #5 am: 24.11.08 - 10:43:46 »
Haben die User ausreichend Rechte auf die CountDB und das CountDoc?
Tut nichts zur Sache da ich das ganze ja erstmal bei mir lokal teste, und da hab ich ja alle Rechte.
Rotfl. Das meinst Du. Ich wäre mir da an Deiner Stelle nicht so sicher. Aber bitte.

Zitat
Haben die beiden Dokumente denn die gleiche ID?
Woran siehst du, dass es die gleichen Dokumente sind?
Wenn es 2 Dokumente sind, welche Werte haben sie jeweils in diesem Feld/Item?
Öhhhm... keine Ahnung also ich hab halt gesehn dass bei

CountDB-AllDocuments->Count 2

steht. Und das kann eigentlich nicht sein denn ich habe in dieser Datenbank nur ein Dokument erstellt.
a) Kann sein.
b) Haben die Docs nun die gleiche ID, ... ?
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 FI/AW

  • Frischling
  • *
  • Beiträge: 15
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #6 am: 24.11.08 - 10:59:51 »
Zitat
Rotfl. Das meinst Du. Ich wäre mir da an Deiner Stelle nicht so sicher. Aber bitte.
Ich entschuldige mich zutiefst, dass ich mich
1. erst seit einer Woche in der LotusNotes Welt bewege
und
2. mich erdreiste hier auch noch um Hilfe zu posten

;)

Keine Ahnung ich seh ja nur das eine Dokument das ich per URL angewählt habe.

Ah ich weiss warum das 2 Dokumente waren. Eins wurde erstellt ohne jeglichen Inhalt 0.o.
Okay das wäre geklärt.
TaskID ist aber immernoch "" =(
« Letzte Änderung: 24.11.08 - 11:10:40 von FI/AW »

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
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #7 am: 24.11.08 - 11:04:32 »
Zitat
Rotfl. Das meinst Du. Ich wäre mir da an Deiner Stelle nicht so sicher. Aber bitte.
Ich entschuldige mich zutiefst, dass ich mich
1. erst seit einer Woche in der LotusNotes Welt bewege
und
2. mich erdreiste hier auch noch um Hilfe zu posten
Pöser Pursche! Auf den Poden mit Ihm!

Ist ja kein Problem. Nur wäre ich als Newbie mit Aussagen wie "da hab ich ja alle Rechte" etwas vorsichtiger, da Notes doch etwas anders als das PHP/Java/.Net .... Umfeld ist, das Du ev. schon kennst.

ACL/xACL/Reader bzw. Autorenfelder usw. können Deinen Zugriff auch "lokal" beeinflussen.
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 FI/AW

  • Frischling
  • *
  • Beiträge: 15
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #8 am: 24.11.08 - 11:07:33 »
Zitat
da Notes doch etwas anders als das PHP/Java/.Net .... Umfeld ist, das Du ev. schon kennst.
Korrekt... von dort komme ich.  ;D


Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #9 am: 24.11.08 - 11:08:37 »
Woher weisst du, dass in dem Item Nummer 500 steht, wenn das Item im Debugger nicht angezeigt wird?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline FI/AW

  • Frischling
  • *
  • Beiträge: 15
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #10 am: 24.11.08 - 11:12:07 »
Weil ich das Dokument ja in der ganz normalen Ansicht sehe wenn ich die Datenbank in Lotus Notes öffne.
Sorry wenn ich verwirrend bin aber ich bin selbst so verwirrt von Lotus Notes ???

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
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #11 am: 24.11.08 - 11:23:30 »
Ist das Feld ev. "Computed for Display" oder so?
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 FI/AW

  • Frischling
  • *
  • Beiträge: 15
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #12 am: 24.11.08 - 11:27:09 »
Ne. Ist halt ein ganz normales Feld das in einer Maske liegt mit der ich ein Dokument erstellen kann...
Diese Maske hat nur 2 Felde... Name und Nummer.
« Letzte Änderung: 24.11.08 - 11:29:19 von FI/AW »

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #13 am: 24.11.08 - 11:36:54 »
Weil ich das Dokument ja in der ganz normalen Ansicht sehe wenn ich die Datenbank in Lotus Notes öffne.
Sorry wenn ich verwirrend bin aber ich bin selbst so verwirrt von Lotus Notes ???

Wenn du es in er ansicht siehst, heisst das nicht, dass der Wert auch im Dokument steht. Schliesslich kannst du die Spaltenanzeige ja einstellen, vielleicht zeigt deine Spalte immer 500?

Wenn du mit rechtem Mausklick auf das Dok gehst, dann Document--> Properties gehst, 2. Reiter, und links dein Item suchst, was steht dann dort als Wert?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline FI/AW

  • Frischling
  • *
  • Beiträge: 15
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #14 am: 24.11.08 - 11:38:41 »
Da steht:

Feldname: Nummer
Datentyp: Zahl
Datenlänge: 8 Byte
Seq.-Num.: 1
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY

500

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #15 am: 24.11.08 - 11:47:31 »
Gut, wenn dir der Debugger das Feld nicht anzeigt (siehe dein Posting oben) stehst du sehr wahrscheinlich auf einem anderen Dokument.

Vergleich dann doch bitte einmal die UNID des Dokumentes im Debugger mit der des 'richtigen' Dokumentes.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

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
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #16 am: 24.11.08 - 11:48:37 »
OI!
ROTFL!
LOL!

Ich hab mir jetzt mal das erste Posting durchgelesen. So KANN das ja gar nicht funktionieren. Schau mal genau, DAU-in! ;)

Lieber FI-Schalter1 aus Aruba2,

"GetDocumentByURL" dienst dazu, eine Webseite über das Internet abzurufen und als Notes-Dokument zur Verfügung zu stellen und nicht dazu, aus einer anderen Notes-Datenbank ein Dokument zu laden. Damit ist auch klar, warum der Debugger die beiden Felder nicht anzeigt.

Wie Dir Dirk bereits im zweiten Posting dieses Threads geschrieben hat, gibt es für die von Dir benötigte Funktionalitäten anderen Methoden.

Des weiteren willst/solltest Du "TaskID" nicht als Variant, sonder als Integer oder Double definieren. Damit fällt Dir dann nämlich auch auf, dass CountDoc.Nummer bzw. dessen Äquivalent CountDoc.GetItemValue("Nummer") zumeist ein Array zurückliefert.

Und wenn sich die Datenbank im Notes-Data Verzeichnis befindet (worauf der Code schließen lässt), reicht beim Open() der Pfad AB dem Notes-Data Verzeichnis. In Deinem Falls also "CounterDb.nsf".


All das steht auch wunderschön in der Designer-Hilfe, die Du WIRKLICH lesen solltest.

Und wenn Du dann auch noch zumindest Deinen Vornamen in Deine Signatur schreiben würdest (siehe Forumsregeln), steigt sicherlich auch noch mal die Bereitschaft aller, Dir zu helfen.

Bevor wir also weiterraten, beherzige mal diese Änderungstips und poste, falls sich weitere Fragen ergeben, dann bitte den neuen, verbesserten Code.




1 ... F für Fehler, I als Formelzeichen des elektrischen Stromes
2 ... aw ist die TLD für Aruba
« Letzte Änderung: 24.11.08 - 11:51:08 von m3 »
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 DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Zugriff auf Dokumente einer anderen DB
« Antwort #17 am: 24.11.08 - 11:51:36 »
OI!
ROTFL!
LOL!

Ich hab mir jetzt mal das erste Posting durchgelesen. So KANN das ja gar nicht funktionieren. Schau mal genau, DAU-in! ;)


 :-[
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz