Autor Thema: Übernahme von Feldwerten per Lotus Script  (Gelesen 9452 mal)

Offline tinchen222

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Weiblich
Übernahme von Feldwerten per Lotus Script
« am: 27.10.09 - 10:21:40 »
Hallo ANotes Gemeinde,

ich habe folgendes Problem, zu dem ich bisher hier im Forum nichts vergleichbares finden konnte:

In unserer Firma werden in einer Datenbank alle Eigenschaften eingetragen, die ein neu zu produzierendes Produkt haben muß. Das nennen wir hier "Lastenheft". Verschiedene Abteilungen prüfen dann nacheinander ob das neue Produkt diese Eigenschaften erfüllen kann. Das Problem beginnt bei der ersten Abteilung - der Vertrieb - der für alle anderen die Vorgaben macht. In einer Maske habe ich für jede Abteilung einen Reiter angelegt und wird dann das Dokument an die erste zu prüfende Abteilung weitergegeben, werden alle Werte, die der Vertrieb eingegeben hat, auf die anderen Reiter in der gleichen Maske auf die entsprechenden Abteilungen verteilt. Da es sich bei dieser Übernahme von Feldwerten um ca. 350 Felder handelt, dauert es - mit meiner Programmierung - entsprechend lange bis alles gespeichert wurde. Die Anwender sind daher genervt, weil sie während dessen nicht weiter in Notes arbeiten können. Verständlich.
Die Feldübernahme realisiere ich wie folgt:

doc.FeldA = getItemValue("FeldB")(0)

Bei 350 Feldern warten die Anwender gut und gerne 8 Minuten. Ich bin der Meinung, dass das nicht effizient ist und besser gehen muß, aber da ich leider auch kein professioneller Programmierer bin wollte ich mal fragen ob jemand zu diesem Problem eine Idee hat. Dazu noch folgender Hinweis: Die Feldübernahme habe ich nicht mit berechneten Feldern lösen können, weil die Felder von den zu prüfenden Abteilungen bearbeitbar sein sollen. Die aus dem Vertrieb kommende Vorgabe muß also überschreibbar sein.

Für alle Ideen schon mal im voraus Danke.

Tina
« Letzte Änderung: 02.11.09 - 13:52:32 von tinchen222 »
Lotus Domino Server 8.5.3 FP6 - Lotus Notes 8.5.3 FP6

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: Übernahme von Feldwerten per Lotus Script
« Antwort #1 am: 27.10.09 - 11:07:56 »
Ich würde keine Tabs machen sondern eigene Dokumente, dann könntest Du mit "notesDocument.CopyAllItems()" arbeiten.

Ansonsten poste mal ein bissl mehr von dem Codeteil, in dem Du kopierst. 8 Minuten kommt mir schon sehr lange vor, ev. hast Du wo einen Gedankenknoten. ;)

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 tinchen222

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Weiblich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #2 am: 27.10.09 - 13:21:42 »
Das mit den Tabs ist vom Vertrieb extra gewünscht. Man soll in einem Dokument alle Informationen beisammen haben und nicht nochmal in ein extra Dokument springen müssen. Deshalb auch kein "CopyAllItems", was mir stundenlange Programmierarbeit erspart hätte. :)
Ich kann unmöglich das gesamte Coding der Schaltfläche einstellen, denn dieses umfasst zu viele Zeilen. Anbei deshalb ein Auszug, der hoffentlich ausreichend ist (Punkte sollen kennzeichnen, dass es in analoger Weise weitergeht):

Sub Click(Source As Button)
   Dim thisws As New NotesUIWorkspace   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   …
   
   Dim protokoll As String
   Dim autor As String
   Dim vpruefer As String      'vorhergehender Prüfer
   Dim npruefer As String      'nächster Prüfer
   Dim qw As String
   Dim entwicklung As String
   …

   Set thisdb = thisws.CurrentDatabase
   Set thisdoc = thisws.CurrentDocument
   Set db = session.CurrentDatabase
   Set doc = thisdoc.document
   Set maildoc = New NotesDocument( db )
   Set link = New NotesRichtextItem( maildoc, "Body")
   
   
   'Globale Werte aus Feldern auslesen
   entwurf = doc.GetItemValue("entwurf")(0)
   status = doc.GetItemValue("status")(0)   
   Pruefer_QW = doc.GetItemValue("Pruefer_QW")(0)   
   Pruefer_Entwicklung = doc.GetItemValue("Pruefer_Entwicklung")(0)
      Pruefer_Produktion = doc.GetItemValue("Pruefer_Produktion")(0)   
   Pruefer_Druck = doc.GetItemValue("Pruefer_Druck")(0)   
   Pruefer_Dispo = doc.GetItemValue("Pruefer_Dispo")(0)   
   Pruefer_Einkauf = doc.GetItemValue("Pruefer_Einkauf")(0)   
   Pruefer_Etikettierung = doc.GetItemValue("Pruefer_Etikettierung")(0)   
   Pruefer_Vertrieb = doc.GetItemValue("Pruefer_Vertrieb")(0)   
   Materialbeschreibung = doc.GetItemValue("Materialbeschreibung")(0)   
   
   currentuser = session.username   
   berechtigung = "false"
   j=0
   
   'Prüfung ob lokal oder am Server gearbeitet wird (Außendienstler)
   If ( db.Server = "" ) Then
      Set nab = New NotesDatabase ("", "unseradressbuch.nsf")                            'Lokale hbnames.nsf
   Else
      Set nab = New NotesDatabase ("servername", "names.nsf")   
   End If            
   
   Set view = nab.GetView ("Groups")     
   Set viewentry = view.GetEntryByKey("ZHB_Lastenheft_Vertrieb")
   Set person = viewentry.Document
   
   
   Forall item In person.GetItemValue("members")
      user(i)=item
      If user(i) = currentuser Then
         berechtigung = "true"
      End If         
      
   End Forall
   
   
   If berechtigung = "false" Then
      Messagebox "Sie sind nicht berechtigt ein Dokument zur Prüfung einzureichen",64,"Achtung"
      Exit Sub
   Else
      continue = True
   End If
   
   
      
   
   'Pfichtfelder prüfen  --------------
   Print "Status des Dokuments wird überprüft ..."
   
   If status = "vertrieb" Then   
      Print "Pflichtfelder für Vertrieb werden geprüft ..."
      
      Forall item In doc.GetItemValue("UmweltaspekteVertrieb")
         UmweltaspekteVertrieb (j) = item
         j=j+1
      End Forall
      
   …
      
   End If

   'Prüfung Pflichtfelder Ende ----------
   
   'Feldwerte in andere Bereiche überführen

   Print "Felder werden in andere Bereiche übertragen ... Bitte warten..."
   
   doc.DLastenheft1 =  doc.GetItemValue("Lastenheft1")(0)
   doc.ELastenheft1 = doc.GetItemValue("Lastenheft1")(0)
   
   doc.DLastenheft2 = doc.GetItemValue("Lastenheft2")(0)
   doc.ELastenheft2 = doc.GetItemValue("Lastenheft2")(0)
   
   doc.DZeichung = doc.GetItemValue("Zeichung")(0)
   doc.EZeichung = doc.GetItemValue("Zeichung")(0)
   
   …
   
      
   'QW
   doc.QualitaetHygieneText1 = doc.GetItemValue("VQualitaetHygieneText1")(0)
   doc.QualitaetHygieneText2 = doc.GetItemValue("VQualitaetHygieneText2")(0)
   doc.QualitaetHygieneText3 = doc.GetItemValue("VQualitaetHygieneText3")(0)
   
   'Entwicklung
   doc.Schrumpffolie = doc.GetItemValue("VSchrumpffolie")(0)
   doc.MonaxialBiaxial = doc.GetItemValue("VMonaxialBiaxial")(0)
   …
         
   'Druck
   doc.dpfd =  doc.GetItemValue("pfd")(0)
   doc.ppfd =  doc.GetItemValue("pfd")(0)
   …


   'Produktion
   doc.MaschinenNrP =  doc.GetItemValue("VMaschinenNr")(0)
   doc.DMaschinenNrP =  doc.GetItemValue("VMaschinenNr")(0)
   …
   
   'Disposition
   doc.DNadelperforation2 =  doc.GetItemValue("VNadelperforation2")(0)
   doc.DPerforationsart2 =  doc.GetItemValue("VPerforationsart2")(0)
   doc.DLochung2 =  doc.GetItemValue("VLochung2")(0)
   …
   
      
   'Feldwerte in andere Bereiche übertragen Ende -------
   
   'Entwurfsmodus des Dokuments beenden
   Call doc.Replaceitemvalue("entwurf", "nein")
   
   'Das Protokollfeld füllen
   autor = doc.GetItemValue("Display_Autor")(0)   
   protokoll = "Zur Prüfung eingereicht am " + Now() + " von " + session.CommonUserName
   materialnummer = doc.GetItemValue("Materialnummer")(0)
   i=0
   
   'Den ersten Prüfer ermitteln
   qw =    doc.GetItemValue("Pruefer_QW")(0)   
   entwicklung = doc.GetItemValue("Pruefer_Entwicklung")(0)   
   produktion = doc.GetItemValue("Pruefer_Produktion")(0)   
   …
   
   thisdoc.EditMode = True
   
   
   'Nächsten Prüfer ermitteln
   Print "Prüfer werden ermittelt ..."
   If qw <> "Keine Prüfung" Then
      npruefer = "ZHB_Lastenheft_QW"
      status = "qw"
      recipients = "ZHB_Lastenheft_QW"
   Elseif entwicklung <> "Keine Prüfung" Then
      npruefer = "ZHB_Lastenheft_Entwicklung"
      status = "entwicklung"
      recipients = "ZHB_Lastenheft_Entwicklung"
   Elseif produktion <> "Keine Prüfung" Then
      …
      
   End If
   
   'Felder setzen
   Call doc.Replaceitemvalue("vpruefer", "ZHB_Lastenheft_Vertrieb")
   Call doc.Replaceitemvalue("npruefer", npruefer)
   Call doc.Replaceitemvalue("status", status)
   
   
   'Protokoll ausfüllen
   Print "Protokoll ausfüllen..."
   Forall item In doc.GetItemValue("protocol")
      neuesProtokoll(i)=item
      i=i+1
   End Forall
   
   neuesProtokoll(i) = protokoll    
   
   Call doc.Replaceitemvalue("protocol", neuesProtokoll)
   Call thisdoc.Save
   Call thisdoc.Close
   
   
     'Mailversand
   maildoc.Form = "Memo"
   maildoc.Subject = "Ein Lastenheft liegt für Sie zur Bearbeitung vor (" + Materialbeschreibung + ")"
   maildoc.SendTo = recipients
   Call link.AppendText("Das folgende Lastenheft liegt für Sie zur Bearbeitung vor!")
   Call link.AddNewLine( 2 )
   Call link.AppendText("Hier ein direkter Link = > ")
   Call link.AppendDocLink(doc, doc.Subjekt (0))
   maildoc.Send( False)   
   
   
   'Infobox
   Messagebox "Dokument wurde zur Prüfung eingereicht",64, "Hinweis"
   Call thisdoc.Close
   
End Sub
Lotus Domino Server 8.5.3 FP6 - Lotus Notes 8.5.3 FP6

Glombi

  • Gast
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #3 am: 27.10.09 - 13:34:34 »
Erstmal musst Du das AutoReload des Dokuments verhindern, denn sonst aktualisiert Notes nach jedem Feldsetzen die Darstellung des Dokuments und das kann dauern.


Also
Set thisdoc = thisws.CurrentDocument
thisdoc.AutoReload = false
...

Andreas


Offline tinchen222

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Weiblich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #4 am: 27.10.09 - 13:59:08 »
Das hört sich doch schon mal nach einem guten Tipp an. Von der Funktion habe ich bisher noch nie was gehört. Hab´s jetzt eingebaut und werde es die Anwender testen lassen. Aber: Wenn es wirklich so einfach war die Wartezeit zu reduzieren, dann wird es echt peinlich für mich :(.

Trotzdem erstmal danke. Weitere Infos folgen nach dem Test.

Tina
Lotus Domino Server 8.5.3 FP6 - Lotus Notes 8.5.3 FP6

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: Übernahme von Feldwerten per Lotus Script
« Antwort #5 am: 27.10.09 - 14:10:47 »
1) Erst selber testen, dann User testen lassen.  :-P

2) Um die Übersichtlichkeit zu erhöhen  ;), würde ich solch ein Konstrukt vorschlagen. Damit sollte der Code deutlich kürzer und lesbarer werden :
Code
	Dim Abt1strs As String
	Dim Abt2strs As String
	Dim fieldlistAbt1 As Variant
	Dim fieldlistAbt2 As Variant
	
	Abt1Strs = "A1Lastenheft1 A1Lastenheft2 A1Zeichung A1VQualitaetHygieneText1 " & _
                          "A1VQualitaetHygieneText2 A1VQualitaetHygieneText3 A1VSchrumpffolie " & _
                          "A1VMonaxialBiaxial A1pfd A1VMaschinenNr A1VNadelperforation2 A1VLochung2"
	Abt2Strs = "A2Lastenheft1 A2Lastenheft2 A2Zeichung A2VQualitaetHygieneText1 " & _ 
                          "A2VQualitaetHygieneText2 A2VQualitaetHygieneText3 A2VSchrumpffolie " & _
                          "A2VMonaxialBiaxial A2pfd A2VMaschinenNr A2VNadelperforation2 A2VLochung2"
	
	fieldlistAbt1 = Split(Abt1Strs)
	fieldlistAbt2 = Split(Abt2Strs)
	
	Dim i As Integer
	For i = 0 To UBound(fieldlistAbt1)
		Call doc.Replaceitemvalue(fieldlistAbt2(i), doc.Getitemvalue(fieldlistAbt1(i))(0) )
	Next 
	
Das "Aufbohren" des Codes auf x Abteilungen wird den Lesern als Übungsaufgabe überlassen. ;)
Natürlich könnte man die Feldnamen auch in einem Profil/Konfigurationsdokument als Multivaluefeld speichern, dann wird es noch flexibler.


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 tinchen222

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Weiblich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #6 am: 27.10.09 - 14:58:59 »
Hallo m3,

zu 1) Grundsätzlich ist das vollkommen richtig und wird normalerweise auch so von mir praktiziert. In diesem Fall sind Tests nicht so gut, denn durch das weitergeben zu den Abteilungen wird jedes Mal eine Mail versendet. Wenn ich so 20 Tests mache sind die User total genervt oder können nichts damit anfangen. Wenn ich alternativ den Mailversand abschalte und jemand erfasst ein neues Dokument wundert er sich warum kein Mail verschickt wird. ***Dilemma***

zu 2) Ich würde es sehr begrüssen den Programmcode übersichtlicher gestalten zu können, habe aber glaube ich deinen Vorschlag nicht ganz verstanden. Die Variablen Abt1Strs und Abt2Strs nehmen meine ganzen Feldnamen auf, richtig?  Aber warum die Hochkommata und die Verbindung mit dem & Operator? Die Split Funktion kenne ich auch nicht, aber die wird wohl die Variablen teilen und in ein Array (fieldlistAbt1 und fieldlistAbt2) setzen. Dann die For-Schleife, die die Felder aus der Feldliste ersetzt. Soweit richtig? Wird mir das einen deutlichen Geschwindigkeitsvorteil beim speichern bringen?

Ist ein enormer Aufwand das so umzubauen, werde ich mir auf jeden Fall überlegen. Vielen Dank.


Tina
Lotus Domino Server 8.5.3 FP6 - Lotus Notes 8.5.3 FP6

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: Übernahme von Feldwerten per Lotus Script
« Antwort #7 am: 27.10.09 - 15:06:41 »
Das "& _" Konstrukt ist nur, damit die Zeile nicht ewig nach rechts läuft.

Den Ablauf hast Du korrekt verstanden. Und wie gesagt, das ist nicht so sehr eine Geschwindigkeits, als viel mehr eine Wartbarkeits- und Übersichtssache.
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 ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #8 am: 27.10.09 - 15:13:01 »
Hallo,

Zitat
In diesem Fall sind Tests nicht so gut
Wie willst Du denn dann herausfinden, ob Deine Aenderungen effektiv etwas bewirken oder nicht?

Zitat
denn durch das weitergeben zu den Abteilungen wird jedes Mal eine Mail versendet. Wenn ich so 20 Tests mache sind die User total genervt oder können nichts damit anfangen.
Mach Dir doch eine Arbeitsumgebung zum Testen, die auf ein lokales Mailfile verweist. (Offline)
Somit werden die zu versendenden Mails auch in der lokalen Mail.box abgelegt. Und solange Du nicht replizierst und dabei die augehenden Mails mit versendest, bleiben diese doch auch hier liegen und die Anwender bekommen von Deinen Test kein bisschen mit.

Andreas

Offline tinchen222

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Weiblich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #9 am: 27.10.09 - 16:02:01 »
@ ascabg

wie ich bereits sagte werden normalerweise bei uns immer erst alle Datenbanken getestet bevor sie freigegeben werden. Die Erfahrung zeigt:
  • Ich als alleiniger Entwickler kann unmöglich alles testen
  • Wenn man die Anwender und ihre Wünsche einbezieht fühlen sie sich ernstgenommen  ;)
  • Wenn die Datensätze "krum" werden weil ich Tests gemacht habe ist das ziemlich kritisch, denn speziell bei dieser Datenbank geht es um Produktneuentwicklungen

Deine Idee mit der Testumgebung und einem lokalen Mailfile finde ich hingegen gut. Darauf hätte ich ja auch schon mal kommen können.

@glombi
Die Anwender wollten soeben Dokumente erstellen und an die erste Abteilung weitergeben. Das hat aber nicht funktioniert. Der Programmcode wird ganz normal durchgegangen, aber die Felder  werden nicht gesetzt. Sobald ich die AutoReload Zeile auskommentiere funktioniert alles ohne Probleme. Ideen?

Tina
Lotus Domino Server 8.5.3 FP6 - Lotus Notes 8.5.3 FP6

Driri

  • Gast
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #10 am: 27.10.09 - 16:06:32 »
Du setzt AutoReload am Ende wieder auf True ? Das müßtest Du vor der letzten Änderung des Backend-Dokumentes machen, weil sonst das Dokument im Frontend nicht aktualisiert wird.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #11 am: 27.10.09 - 16:14:06 »
Zitat
Ich als alleiniger Entwickler kann unmöglich alles testen
Ich biete gerne meine Hilfe an.  ;)

Zitat
Wenn man die Anwender und ihre Wünsche einbezieht fühlen sie sich ernstgenommen.
Bestaetige ich. Es ging mir ja auch nur um Deine ersten Tests.

Zitat
Wenn die Datensätze "krum" werden weil ich Tests gemacht habe ist das ziemlich kritisch, denn speziell bei dieser Datenbank geht es um Produktneuentwicklungen
Testet ihr etwa auf der produktiven Db oder in produktiven Systemen?
Ich hoffe doch nicht.

Andreas

Offline tinchen222

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Weiblich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #12 am: 27.10.09 - 17:37:09 »
Hallo zusammen,

das mit dem AutoReload werde ich in 2 Tagen erneut ausprobieren, denn ich bin erstmal nicht mehr im Büro. Und Ascagb: Ja, wir testen in produktiven DBs auf produktiven Systemen.  :o
Ich weiß, das ist für viele gar nicht vertretbar und ich versuche meinem Vorgesetzten auch immer wieder klar zu machen, dass wir Testumgebungen brauchen. Wir sind halt eine kleine Firma und müssen mit nur 2 Leuten die gesamte IT (inländische und ausländische Töchter dazu) managen. Es ist daher nicht nur eine Geldfrage sondern auch eine Zeitrage alles ausführlich durchzutesten. Soviel dazu.

Nochmal danke an alle für die Anregungen und Ideen.

Tina
Lotus Domino Server 8.5.3 FP6 - Lotus Notes 8.5.3 FP6

BigWim

  • Gast
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #13 am: 27.10.09 - 18:29:49 »
Hallo Tina,

vielleicht helfen Dir ja meine WürgArounds  :-\

Zitat
Wenn die Datensätze "krum" werden weil ich Tests gemacht habe ist das ziemlich kritisch, denn speziell bei dieser Datenbank geht es um Produktneuentwicklungen
Zitat
Testet ihr etwa auf der produktiven Db oder in produktiven Systemen?
Ich hoffe doch nicht.
Zumindest mache ich eine Kopie der Datenbank. Wenn man keine Testumgebung hat, ist das oftmals die einzige Möglichkeit mit den produktiven Dokumenten zu testen ohne Schaden anzurichten ...

Zitat
Wenn ich so 20 Tests mache sind die User total genervt oder können nichts damit anfangen. Wenn ich alternativ den Mailversand abschalte und jemand erfasst ein neues Dokument wundert er sich warum kein Mail verschickt wird. ***Dilemma***
Ja, kenne ich auch. In diesen Fällen habe ich mir eine Abfrage vor dem Versenden oder Mailempfänger eingebaut.

Also entweder ich schicke keine Mail oder die Mail geht grundsätzlich an mich. Sinngemäß so für keine Mail

if session.username <> "BigWim" then
  docmail.send...
endif

bzw Mail an mich
if session.username = "BigWim" then
  docmail.Sendto = "BigWim"
endif


Markus

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #14 am: 27.10.09 - 21:16:20 »
Und wie findest Du *sicher* nach der Testphase derartige Code-Teile wieder, Markus?

Das mit den Testumgebungen ist ein ewiger Kampf. Was ich da schon erlebt habe ... Wernn ich kann, wie ich will (das geht meistens) und vor allem, wenn der Code sowieso aus meinem hause stammt, ist es ja ganz einfach: Da stehen genügend Umgebungen zur Verfügung, die nun alle mit den Produktivsystemen nichts zu tun haben. Aber was mir bei Code-Schrott bei Kunden schon untergekommen ist, die diesen von dubiosen "Dienstleistern" untergeschoben wurden ... Letzter Fall: Sämtliche Beziehungen zwischen verbundenen Datenbanken waren hard-coded. Irgendein sauberer Test ausserhalb der Produktivumgebung erforderte also erstmal eine tiefgreifende Änderung des Gesamt-Konstrukts, damit die lieben Admins (des Kunden) überhaupt ihre Selbstbestimmung ausüben durften und sagen konnten: "Du zeigst dorthin, und Burschi, Du holst Dir die Daten von dieser Datenbank."
Die Härte ist - und das habe ich auch schon erleben "dürfen": Da spielen x Datenbanken miteinander, und in Datenbank A werden embedded views aus Datenbank B und C und D verwendet. Tolle Wurst - das ist nun die wirklich *absolute* Hardverdrahtung (die wir auch der IBM zu verdanken haben - eine Schnapsidee von denen!) ... Hier hilft dann nur noch ein komplett neues System.

Wie Du aber schon schreibst: Oft hilft zumindest schon eine lokale Kopie der DB und eine von jeglichen Servern entkoppelte Arbeitsumgebung. Das ist dann zumindest schon mal eine Arme-Leute-Lösung - insofern der Code es zulässt (siehe oben).

Bernhard

BigWim

  • Gast
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #15 am: 28.10.09 - 08:38:58 »
Hallo Bernhard,

Zitat
Und wie findest Du *sicher* nach der Testphase derartige Code-Teile wieder, Markus?
Gar nicht ::)

Zitat
Letzter Fall: Sämtliche Beziehungen zwischen verbundenen Datenbanken waren hard-coded
aber in Duisburg warst Du nicht, hoffe ich :)


Ich denke, wenn ich die Programmierung professionell betreiben würde, geht es nur so wie Du beschrieben hast. Aber Theorie und Praxis liegen leider zu weit auseinander.

Ich denke auch, dass Tina und ich so in etwa in der gleichen Kreisklasse spielen. Ich bin hier auch der einzige Entwickler, habe ihr jetzt aber eine Testumgebung voraus. Und uns wird eigentlich keine Zeit zum Testen gegeben und in der Regel ist die Begeisterung bei den Testern auch wieder schnell verpflogen.

Letztendlich läuft es !!!leider!!! immer wieder auf eine Operation am lebenden Herzen hinaus. Und deshalb entferne ich meine Hintertürchen auch nicht. Das geht eher so weit, dass ich jetzt auf Umwegen eine zentrale Konfigurationsdatenbank einführen konnte, und ich so die Möglichkeit von "Konfigurationsdokumenten" habe ....

Mittlerweile habe ich auch kein schlechtes Gewissen mehr. An den Ausbau meiner Talente spart der Arbeitgeber. Es soll aber laufen, egal wie und möglichst für noppes. Und wenn ich dann mal nicht mehr bin, habe ich Dir genug Arbeit verschafft, die Du dann hoffentlich gebührend in Rechnung stellen wirst ....

Markus

Offline tinchen222

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Weiblich
Re: Übernahme von Feldwerten per Lotus Script
« Antwort #16 am: 02.11.09 - 13:50:28 »
Hallo an alle,

ich bin diesem Forum noch eine Antwort schuldig  :).

Ich habe den Vorschlag von Driri mal umgesetzt und die Auto Reload Funktion vor der letzten Änderung wieder auf "True" gesetzt. Außerdem habe ich mir eine lokale Kopie der DB gezogen, weil die Anwender mal wieder zu testfaul waren und ich aber auch nicht 2 Wochen auf ein Ergebnis warten wollte.

Und was soll ich sagen: Das Leben kann so einfach sein, wenn man weiß wie´s geht! Das ganze funktioniert super. Die Wartezeit beträgt jetzt ca. 5 Sekunden beim speichern und ich denke: Das ist vertretbar  :D.

Vielen vielen Dank an alle - auch für die nette Diskussion hinsichtlich dem Sinn und Unsinn von Testumgebungen - für diesen äußerst hilfreichen Tipp. Das wird einige Anwender hier sehr glücklich machen  ;)

Gruß

Tina
Lotus Domino Server 8.5.3 FP6 - Lotus Notes 8.5.3 FP6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz