Autor Thema: Scriptbibliotheken  (Gelesen 6605 mal)

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Scriptbibliotheken
« am: 25.02.07 - 22:17:09 »
Moin,moin,

befasse mich seit eben mit dem Thema Scriptbibliotheken. Diese bieten m. E. die Funtkion, die Agenten nicht bieten, nämlich eine direkte Parameterübergabe.

Jetzt meine Frage: Ist es möglich auf die Scriptbibliotheken anderer Datenbanken zuzugreifen?

Hintergrund ist, dass ich eine zentrale Datenbank mit den gängigen Scriptbibliotheken füllen würde und die Funktionen aus jeder x-beliebigen Datenbank nutzen könnte.

Gruß
Demian
Gruß
Demian

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #1 am: 25.02.07 - 22:27:30 »
Nein

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #2 am: 25.02.07 - 22:29:39 »
Hallo Bernhard,

naja, werde ich halt eine Datenbank machen, in der ich die Bibliotheken pflege und die geänderte Fassung dann jeweils in die Datenbanken reinkopiere.

Geht nicht zufällig per Agent das Kopieren, oder?

Gruß
Demian
« Letzte Änderung: 25.02.07 - 23:01:10 von Demian »
Gruß
Demian

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #3 am: 25.02.07 - 23:30:47 »
Doch, das Kopieren geht auch per Agent. ScriptLibraries sind auch "nur" Notes-Dokumente. Wenn Du aber weit genug in diese Regionen vorgestossen bist, wirst Du feststellen: Das wäre dann auch nicht der Weisheit letzter Schluss,

Da Du jetzt gerade erst ScriptLibraries und Subs und Functions entdeckt hast, kann ich mir nicht vorstellen, dass Du damit schon ein logistisches Problem hast. Halt auf dieser Ebene also erstmal den Ball flach.

Als eine einfache Möglichkeit für den Anfang: Denke mal über %INCLUDE nach - und sorge für eines effizientes Verfahren zur zentralen Speicherung Deiner ScriptLib-Exports. Und immer danach denken: Nach einem derartigen Austausch müssen ggf. alle Design-Elemente rekompiliert werden.

Bernhard

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #4 am: 26.02.07 - 00:11:34 »
Moin Bernhard,

das mit %include hatte ich auch schon überlegt. Da es aber recht komplexer Code mit vielen Deklaration für die einzelnen Funktionen ist, würde ich mit Textdateien oder ähnlichem glaube ich wieder den Überblick verlieren. Finde es ja gerade gut, dass man alles schön übersichtlich in den Bibliotheken ordnen kann (bis auf die Tatsache, dass die Funktionen nicht alphabetisch sortiert sind ::)).

Gruß
Demian
Gruß
Demian

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #5 am: 26.02.07 - 00:19:12 »
Hä? Unübersichtlich? Viele Deklarationen? Andererseits aber gerade erst die Möglichkeit der Parameterübergabe entdeckt? Was nun?
Und man exportiert sowieso erst, wenn man den Code robust in einer Test- oder Life-DB verifiziert hat. Den exportierten Code schaut man sich dann niemals an (zumindest nicht in dem Sinn, den Du verstanden hast).

Bernhard

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #6 am: 26.02.07 - 00:30:51 »
das Prinzip der Parameterübergabe kenne ich aus Office. Dachte in Notes gebe es nur die Agenten, denen man nur auf Umwegen Parameter übergeben kann.

die Bibliothek enthält folgenden Code:


Deklarationen
'==========================================================
'Allgemein
Dim s As NotesSession
Dim db As NotesDatabase
'Namenstrennung
Dim Zaehler As Integer
'==========================================================
'Benutzerdaten für Funktion "Benutzer_Auslesen"
Public Benutzer_Vorname As String
Public Benutzer_Nachname As String
Public Benutzer_UnterschriftsName As String
Public Benutzer_UnterschriftsZusatz As String
Public Benutzer_Straße As String
Public Benutzer_Ort As String
Public Benutzer_Telefon As String
Public Benutzer_EMail As String
Public Benutzer_Telefax As String
Public Benutzer_Abteilung As String
'==========================================================
'Arbeitnehmerdaten für Funktion "Arbeitnehmer_Auslesen"
Public Arbeitnehmer_Anrede As String
Public Arbeitnehmer_Vorname As String
Public Arbeitnehmer_Nachname As String
Public Arbeitnehmer_Straße As String
Public Arbeitnehmer_Ort As String
Public Arbeitnehmer_Austritt As String
Public Arbeitnehmer_PersNr As String
'==========================================================



Initialize
Set s = New NotesSession
Set db = s.CurrentDatabase



Function Arbeitnehmer_Auslesen(Arbeitnehmer As String)
  Dim work As New NotesUIWorkspace   
  Dim uidoc As NotesUIDocument      
  Dim view As NotesView
  Dim doc As NotesDocument   
   
  'Keys auslesen
  Set uidoc = work.CurrentDocument
   
  If uidoc.FieldGetText("Mitarbeiter") = "" Then
    Msgbox "Es wurde kein/e Mitarbeiter/in ausgewählt!",,"Musterfirma"
    Exit Function
  End If
   
  'Arbeitnehmername
  Zaehler = Instr ( 1,uidoc.FieldGetText("Mitarbeiter") , "," )
 Arbeitnehmer_Vorname = Right$(uidoc.FieldGetText("Mitarbeiter"),Lenc(uidoc.FieldGetText("Mitarbeiter")) - Zaehler -1)
 Arbeitnehmer_Nachname= Left$(uidoc.FieldGetText("Mitarbeiter"),Zaehler - 1)
   
 'Anschrift
 Set view = db.GetView("Personal - " & uidoc.FieldGetText("Bereich"))
 Set doc = view.GetFirstDocument

 For i = 1 To view.AllEntries.Count
   If Arbeitnehmer_Vorname = doc.Vorname(0) Then
      If Arbeitnehmer_Nachname = doc.Nachname(0) Then            
            Arbeitnehmer_Anrede = doc.Anrede(0)
            Arbeitnehmer_Straße = doc.Straße(0)            
            Arbeitnehmer_Ort = doc.PLZ(0) &  " " & doc.Ort(0)
            Arbeitnehmer_PersNr = doc.PersNr(0)
            Arbeitnehmer_Austritt = doc.Austritt(0)
            Exit For
         End If
      End If
      Set doc = view.GetNextDocument(doc)
   Next i
End Function



Function Benutzer_Auslesen(Benutzername As String)
   '===============================================================================
   'Dieser Code liest die Benutzerdaten aus seinem Personendokument im NAB
   'und speichert diese in globalen Variablen, die in Prozeduren zur Schriftverkehrerstellung
   'benötigt werden.
   '===============================================================================
   'Allgemein
   Dim Quelldb As NotesDatabase
   Dim Quellview As NotesView
   Dim Quelldoc As NotesDocument      
   '===============================================================================
   'Vorbereitungen   
   Set Quelldb = s.GetDatabase("Server","names.nsf")
   Set Quellview = Quelldb.GetView("_Personen")   
   Set Quelldoc = Quellview.GetFirstDocument
   
   'Benutzername
   Zaehler = Instr(Benutzername," ")   
   Benutzer_Vorname = Mid(Benutzername,4,Zaehler - 4)   
   Zaehler = Instr(Benutzername,"/") - Zaehler - 1   
   Benutzer_Nachname = Mid(Benutzername,Len(Benutzer_Vorname)+5,Zaehler)   
   
   'alle weiteren Benutzerdaten
   For i = 1 To Quellview.AllEntries.Count
      If Quelldoc.Firstname(0) = Benutzer_Vorname Then
         If Quelldoc.LastName(0) = Benutzer_Nachname Then
            Benutzer_Straße = Quelldoc.OfficeStreetaddress(0)
            Benutzer_Ort = Quelldoc.OfficeZIP(0) & " " & Quelldoc.OfficeCity(0)
            Benutzer_Telefon = quelldoc.OfficePhoneNumber(0)
            Benutzer_Telefax = quelldoc.OfficeFAXPhoneNumber(0)
            Benutzer_Email = quelldoc.InternetAddress(0)
            Benutzer_Abteilung = quelldoc.Department(0)
            Benutzer_Unterschriftsname = quelldoc.AltFullNameSort(0)
            Benutzer_UnterschriftsZusatz = quelldoc.JobTitle(0)
            Exit For
         End If
      End If
      Set Quelldoc = Quellview.GetNextDocument(Quelldoc)
   Next i
End Function



so untereinander weggeschrieben wird das ganze unübersichtlich finde ich. Zumal es ja sicher nicht weniger Funktionen werden.

Gruß
Demian

PS: Mit dem Thema Telefon und Telefax muss ich mich noch auseinandersetzen, was das Trennen angeht.
« Letzte Änderung: 26.02.07 - 00:33:31 von Demian »
Gruß
Demian

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Scriptbibliotheken
« Antwort #7 am: 26.02.07 - 08:33:55 »
Agenten haben natürlichen auch zumindest Möglichkeiten der (sagen wir) Wahrnehmung des dynamischen Kontext.
Aus dem Code gestartete Agenten kann eine NoteID übergeben werden: notesAgent.RunOnServer( [ noteID$ ] )
Webagenten können sogar alle per HTTP-GET oder HTTP-POST übergebenen Parameter roh auslesen
(notesSession.DocumentContext).

Für die Zentralisierung von datenbankübergreifenden Skriptbibliotheken kannst du auch an dem - sagen wir - Build und Deployment Prozess über Schablonen einiges schrauben.
Hint: Eine Datenbank kann auch von mehr als einer Schablone Gestaltungselemente beziehen.
Aber: Es ist sehr schwer kohäsive Skriptbibliotheken zu erstellen und über die Zeit zu pflegen. Versuchs mit einem Review Prozess.
Komplexere Build und Deployment Prozesse über Schablonen UNBEDINGT GUT DOKUMENTIEREN.

Das ist ein Thema, für das es unbedingt EINE VERBINDLICHE, ORGANISATIONSWEITE POLITIK geben muss, auf die sich alle commiten. Ist auf der Ebene des IT-Leiters aufgehängt.

Ich bin in diesem Bereich auch stark mit Java beschäftigt und in Vergleich zu Maven, Ant & Eclipse Deployment find ich Notes Deployment nicht besonders selbstdokumentiert. Deshalb unbedingt gut beschreiben wie das Deployment funktioniert. Und nicht zu kompliziert machen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #8 am: 26.02.07 - 13:03:44 »
Hallo Axel,

das mit runonserver war das was ich meinte mit "über Umwege". Bin noch ziemlicher Laie, arbeite erst seit gut nem Jahr überhaupt mit Notes, von daher sind deine anderen Anmerkungen für mich etwas verwirrend. Build und Deployment-Prozess habe ich z. B. noch nie gehört.

Gruß
Demian
Gruß
Demian

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Scriptbibliotheken
« Antwort #9 am: 26.02.07 - 13:18:43 »
Build und Deployment hat überhaupt nichts mit Notes an und für sich zu tun. Sondern einfach nur mit der Frage wie man eine Anwendung baut (Build) und verteilt (Deployed).

Klassisches Fachchinesisch ....  >:D Sorry Axel aber der musste sein.
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 Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #10 am: 26.02.07 - 16:46:24 »
Dann bin ich ja beruhigt...  ;D

Gruß
Demian

Offline klaussp

  • Aktives Mitglied
  • ***
  • Beiträge: 184
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #11 am: 27.02.07 - 10:09:34 »

andere Idee, damit die Libs in allen DB's immer gleich sind wäre eine zentrale Schablone dafür zu erstellen, die nur Dinge enthält, die in allen Datenbanken vorkommen. Diese Masterschablone ziehst Du dann über jede neue Schablone erstmal drüber und lässt die Funktionen updaten!
Klaus

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Scriptbibliotheken
« Antwort #12 am: 27.02.07 - 10:23:17 »
Klassisches Fachchinesisch ....  >:D Sorry Axel aber der musste sein.
Das sind plattformübergreifende Fach-Begriffe.
Fachbegriffe erleichtern die Kommunikation, indem ein komplexeres Entity EINEN Bezeichner bekommt.
Ich finde diese Begriffe im Umfeld von Ruby on Rails, .NET und Java. Vermutlich auch in PHP. Ich seh keinen Grund, warum sie nicht jedem, der in diesem Bereich arbeitet, geläufig sein sollten.

« Letzte Änderung: 27.02.07 - 10:27:34 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #13 am: 27.02.07 - 12:19:56 »
Aber für jemand wie mich, der sich quasi neben dem Hauptberuf mit PRogrammierung befasst und sich nur mit Büchern und eurer Hilfe sein Wissen aneignet, sind diese Begriffe größtenteils unbekannt (gewesen).

Gruß
Demian
Gruß
Demian

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Scriptbibliotheken
« Antwort #14 am: 27.02.07 - 12:45:13 »
Warum lagerst du denn nicht alle deine Scriptbibliotheken, die du in mehreren Datenbanken einsetzen willst nicht in ein Template aus und lässt die DB-Templates wiederum auf diese verweisen?

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #15 am: 27.02.07 - 16:10:16 »
wie geht das denn genau mit dem Verweisen.
Gruß
Demian

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Scriptbibliotheken
« Antwort #16 am: 27.02.07 - 16:14:03 »
Ganz normal wie mit allen Templates.

Du erstellst ein DB mit den Scriptbibliotheken und machst ein Template draus.
Alle weiteren Templates (für deine DBs) basieren auf diesem Template.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #17 am: 27.02.07 - 16:16:56 »
Wenn es differenzierter sein soll:
- Du kopierst eine ScriptLib aus dem Template in die neue DB. Dabei wirst Du schon gefragt, ob diese Lib weiterhin auf dem Template XY bestehen soll.
- Du öffnest die Propertybox Deiner Lib und trägst dort den Schablonennamen ein.

Bernhard

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Scriptbibliotheken
« Antwort #18 am: 27.02.07 - 16:36:45 »
Achso, mit verweisen war die Gestaltungsaktualisierung gemeint. Naja, ist ja eigentlich das wo ich ursprünglich drauf hinaus wollte, dass man die "Quellbibliothek" nur in einer Datenbank hat und ändern muss.

Vielen Dank für die Tipps.

Gruß
Demian
Gruß
Demian

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Scriptbibliotheken
« Antwort #19 am: 27.02.07 - 17:19:24 »
Wenn es differenzierter sein soll:
- Du kopierst eine ScriptLib aus dem Template in die neue DB. Dabei wirst Du schon gefragt, ob diese Lib weiterhin auf dem Template XY bestehen soll.
- Du öffnest die Propertybox Deiner Lib und trägst dort den Schablonennamen ein.
Nochmal: Wenn Datenbanken nur bestimmte Gestaltungselemente aus einem Template beziehen sollen (und darauf läuft Bernhards Lösung hinaus), sollte das gut dokumentiert werden. Weil das kann zu sehr viel Verwirrung in der Zukunft sorgen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz