Autor Thema: Item ändern mit Aktion  (Gelesen 12801 mal)

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: Item ändern mit Aktion
« Antwort #20 am: 10.01.12 - 15:32:06 »
Ich fühl mich jetzt gar nicht mehr so doof! ;D

So, dann geh ich das mal produktiv "testen". Man möge mir die Daumen drücken.

Danke an alle, die mir bisher geholfen haben. Heute hab ich doch sehr viel von der Konstruktion LS verstehen lernen können. Da kommt kein Buch hin...

Geri

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Item ändern mit Aktion
« Antwort #21 am: 10.01.12 - 15:41:14 »
Warum testest Du das nicht erstmal in einer SpielDB (wenn Deine Testumgebung noch down ist)? Leere Kopie Deiner DB (oder komplette, however), zwei Dokumente markieren und nachschauen, was passiert.

Bernhard

PS: Tipp, weil ja immer etwas schief gehen kann. Füge in Deinen Code gleich ein ErrorHandling ein, mindestens sowas simples hier:

Nach den Declarations in Deiner Sub:
On Error Goto ErrorRoutine


Vor End Sub setzt Du noch ein Exit Sub und anschliessend (immer noch vor End Sub)
ErrorRoutine:
Messagebox Error$ & " (" & Cstr (Err) & ") in line " & Cstr (Erl)

Wenn es mal scheppert, wirst Du diesen drei Zeilen sehr dankbar sein ;-)

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: Item ändern mit Aktion
« Antwort #22 am: 10.01.12 - 15:52:24 »
Warum testest Du das nicht erstmal in einer SpielDB (wenn Deine Testumgebung noch down ist)? Leere Kopie Deiner DB (oder komplette, however), zwei Dokumente markieren und nachschauen, was passiert.
Geht nicht. Da hat der Hersteller sein Finger mit Lizenzschlüsseln drauf, die Replik-ID abhängig sind und weiß der Teufel noch prüft. Lokal ist auch nicht. Die Testumgebung hat der Hersteller eingerichtet (der Hinweis, nur, damit sich keiner wundert).




Zitat
PS: Tipp, weil ja immer etwas schief gehen kann. Füge in Deinen Code gleich ein ErrorHandling ein, mindestens sowas simples hier:

Nach den Declarations in Deiner Sub:
On Error Goto ErrorRoutine


Vor End Sub setzt Du noch ein Exit Sub und anschliessend (immer noch vor End Sub)
ErrorRoutine:
Messagebox Error$ & " (" & Cstr (Err) & ") in line " & Cstr (Erl)
Danke für den Hinweis, bzw. Code, das hatte ich nicht mehr auf dem Schirm. Das sieht ja fast wie in "meiner" Programmiersprache aus.

Zitat
Wenn es mal scheppert, wirst Du diesen drei Zeilen sehr dankbar sein ;-)
Absolut, das wissen sogar meine Kollegen zu schätzen, wenn ich mal nicht da bin und meine anderen Programme raus fliegen. ;D
Geri

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Item ändern mit Aktion
« Antwort #23 am: 10.01.12 - 15:59:31 »
Geht nicht. Da hat der Hersteller sein Finger mit Lizenzschlüsseln drauf, die Replik-ID abhängig ...

Herrjeh, wer macht denn sowas? Die Einhaltung von Lizenzbestimmungen lassen sich nun wirklich anders anders und adminfreundlicher handhaben.
Wenn es Dir diese Replik mal zerhaut, dann kannst Du ja nicht mal mehr einen Reparaturversuch mittels einer Kopie probieren. Und Archiv-DBs sind so auch nicht machbar.

Aber egal - das hat mit diesem Thread ja nichts zu tun.

Bernhard

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: Item ändern mit Aktion
« Antwort #24 am: 10.01.12 - 16:23:00 »

Herrjeh, wer macht denn sowas?
Die Firma kennst Du ganz sicher vom Namen her. ;)

Zitat
Wenn es Dir diese Replik mal zerhaut, dann kannst Du ja nicht mal mehr einen Reparaturversuch mittels einer Kopie probieren.
Wenn der Verhau nicht gerade im Cluster repliziert wird - sonst bleibt nur Rücksicherung.


Zurück zum Thema:

Das Errohandling hat angeschlagen.
Zitat
Type mismatch (13) in Line...

Und zwar in dieser Zeile:
Zitat
Kostenstelle_alt=doc.Kostenstelle

Sehe ich mir das Item über die Eigenschaften an, ist das Text. Im Debugger sagt man mir bei dem Item als Type 1280 / Long. Wo liegt mein Denkfehler?
« Letzte Änderung: 10.01.12 - 16:25:29 von smokyly »
Geri

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Item ändern mit Aktion
« Antwort #25 am: 10.01.12 - 16:35:26 »
Items sind immer (ausser RTIs) immer Arrays! Daher musst Du (in diesem Fall, da Du einen skalaren Wert erhalten möchtest) wie folgt notieren:
Kostenstelle_alt=doc.Kostenstelle (0)

Bernhard

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: Item ändern mit Aktion
« Antwort #26 am: 10.01.12 - 17:02:54 »
Items sind immer (ausser RTIs) immer Arrays! Daher musst Du (in diesem Fall, da Du einen skalaren Wert erhalten möchtest) wie folgt notieren:
Kostenstelle_alt=doc.Kostenstelle (0)

Bernhard
Bernhard, ich hoffe, Du schickst mir nicht irgendwann ne gepfefferte Rechnung in Form von "Jetzt lies endlich das Buch durch!" :-X.
Vielen Dank für die Info.
Ich war schon im Buch vertieft und hatte mit "Dim blabla Liste as String" probiert, hat dann aber auch nicht funktioniert.

Die Änderung wurde gemacht, das Mail aber nicht versendet, weil da auch ein Type Mismatch kommt.

Zitat
Sub Sendmail(Source As NotesDocument, P_Kostenstelle_agent As String)
...
Dim oDoc            As NotesDocument
...
Set oDoc            = Source.Document--> da kracht es

Das ist aber nicht mein Code, sondern aus der funktionierenden Teilmaske. Einzig die Sub-Definition habe ich geändert. Original ist das hier:

Zitat
Sub Postsave(Source As Notesuidocument)

Wieso spielt das da eine Rolle, ob das Quelldokument aus dem Back- bzw. Frontend kommt?


Geri

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Item ändern mit Aktion
« Antwort #27 am: 10.01.12 - 17:11:23 »
Hallo Geri,

wenn Ihr mal bezahlbare / bezahlte Unterstützung braucht: Immer gerne. Du hast ja meine Mailadresse  ;)

Zu Deinem Problem:
NotesDocument und NotesUIDocument sind durchaus sehr unterschiedliche Dinge. Simpel gesprochen: Das eine liegt auf der Platte, das andere lümmelt sich in Deinem Speicher und auf dem Bildschirm.

Wenn also SendMail ein NotesDocument erwartet (was sinnhaft ist) und PostSave Dir ein NotesDocument als Source liefert, dann musst Du den Backend-Teil vom NotesUIDocument an SendMail übergeben, also
Source.Document

Sehr sinnhaft ist es aber nicht, in SendMail den Parameter vom Typ NotesDocument als "Source" zu bezeichnen, da in allen Events, die Notes so mitliefert und die sich auf Dokumente beziehen, diese jeweils NotesUIDocuments sind. Aber das ist ja nicht Deine Party.

Was ich aber gerade beim genaueren Lesen fragend feststelle: Dein Zitat aus dem Code von SendMail ist das Original vom Hersteller? Das würde aber niemals funktieren, da Source As NotesDocument keine property Document hat!

HTH,
Bernhard

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: Item ändern mit Aktion
« Antwort #28 am: 10.01.12 - 17:44:18 »
Hallo Geri,

wenn Ihr mal bezahlbare / bezahlte Unterstützung braucht: Immer gerne. Du hast ja meine Mailadresse  ;)
Sobald ich ein Projekt habe, welches sich für eine Schulung eignet, melde ich mich selbstverständlich.

Das hier ist nur ne Übungsaufgabe, bzw. ich will dem Benutzer einen Gefallen tun.


Zitat
Zu Deinem Problem:
NotesDocument und NotesUIDocument sind durchaus sehr unterschiedliche Dinge. Simpel gesprochen: Das eine liegt auf der Platte, das andere lümmelt sich in Deinem Speicher und auf dem Bildschirm.
Soweit war mir das bekannt. Danke für die Bestätigung.

Zitat
Wenn also SendMail ein NotesDocument erwartet (was sinnhaft ist) und PostSave Dir ein NotesDocument als Source liefert, dann musst Du den Backend-Teil vom NotesUIDocument an SendMail übergeben, also
Source.Document

Sehr sinnhaft ist es aber nicht, in SendMail den Parameter vom Typ NotesDocument als "Source" zu bezeichnen, da in allen Events, die Notes so mitliefert und die sich auf Dokumente beziehen, diese jeweils NotesUIDocuments sind. Aber das ist ja nicht Deine Party.



HTH,
Bernhard
Äh, das hab ich nun nicht wirklich verstanden. Aber ich glaube, da liegt auch ein Mißverständnis vor.
Ich habe mir aus dem Postsave den Code für den Mailversand heraus gesucht, als meine Sub "Sendmail" gespeichert und halt statt "Source as NotesUIDocument" "Source as NotesDocument" in meiner Sub geändert. Ansonsten ist an dem Code für den Mailversand nichts hinzugefügt, sondern nur überflüssiges heraus genommen (die WF-Geschichte).


Das Sub "PostSave" kommt im Agenten nicht vor.

Zitat
Was ich aber gerade beim genaueren Lesen fragend feststelle: Dein Zitat aus dem Code von SendMail ist das Original vom Hersteller? Das würde aber niemals funktieren, da Source As NotesDocument keine property Document hat!
Nein, ebend nicht vom Hersteller, sondern auf meinem Mist gewachsen. :P
Aber jetzt hat es Klick gemacht!

Super! Es funktioniert!
Ich falle mal kurz auf die Knie und sende Dir ein "Ich bin unwürdig! Ich bin unwürdig!" :knuddel:

Danke nochmals vielmals! Solltest Du mal Ärger mit PL/SQL haben... ;)
Geri

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Item ändern mit Aktion
« Antwort #29 am: 10.01.12 - 17:56:03 »
Sobald ich ein Projekt habe, welches sich für eine Schulung eignet, melde ich mich selbstverständlich.
...
Super! Es funktioniert!
Ich falle mal kurz auf die Knie und sende Dir ein "Ich bin unwürdig! Ich bin unwürdig!" :knuddel:

Danke nochmals vielmals! Solltest Du mal Ärger mit PL/SQL haben... ;)

Hallo Geri,

da kann ich jetzt in Punkten antworten:
1. Ich mache *auch* Schulungen, bin aber in erster Linie Entwickler für schwierige Fälle. Wenn Ihr also mal "Zeit ist Geld" sparen wollt ... Trainings on the job natürlich auch immer gerne!
2. Du musst nicht auf die Knie fallen! Und Du bist nicht "unwürdig", sondern Du startest gerade etwas Neues und bist zwangsläufig "Newbee". Und das waren wir *alle* (!!!) mal!
3. Das ist notiert. Ich komme darauf gerne zurück!

Beste Grüsse,
Bernhard

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: Item ändern mit Aktion
« Antwort #30 am: 10.01.12 - 17:57:57 »
Eines noch:

Soweit ich das sehe, kann ich im Script nicht abfangen, ob der Benutzer auf "Abbrechen" in der InputBox geklickt hat?!

Dann wäre meine Idee, einen seltsamen Default mit zu geben und wenn dann dafür Empty zurück kommt, oder der Default (bei OK ohne Eingabe), breche ich die Verarbeitung ab.
Den Abbruch der Verarbeitung bekommt man doch sicher sauberer hin, als die Schleife durch ein goto zu verlassen, oder? O0 Käse...

Schönen Abend noch!
« Letzte Änderung: 10.01.12 - 18:02:35 von smokyly »
Geri

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Item ändern mit Aktion
« Antwort #31 am: 10.01.12 - 19:03:04 »
Inputbox$ ist eine "Simpel-Dialog ". Abbrechen geht da nicht (andere Speachen - nicht nur VB - bieten ja auch ähnlich einfache Konstrukte für "wenn es mal schnell gehen muss". Logischerweise trennt man sich von sowas mit zunehmender Erfahrung (wieviele zigtausend Programmzeilen sind von mir derzeit von Bukarest bis Karup, von Iwaki bis Georgia / U.S.A. derzeit im Einsatz? Nie gezählt ... Aber Inputbox kommt da nicht vor).

Du bist ja aber am Anfang, und mir scheint auch Dein Zweck derzeit dieses Mittel zu heiligen. Also: Ruhig angehen, bestimmte Kompromisse akzeptieren (aber nicht verinnerlichen), der Rest kommt!

Was Du erstmal machen kannst, um einen Abbruch zu ermöglichen:
- Return value von InputBox$ auf = "" abfragen
- Messagebox anschliessend als Function einsetzen ("Sie haben grzmcnfuh eingegeben? Soll dieser Wert wirklich übernommen werden?")

Wenn Du schon mal nach anderen Methoden Ausschau halten willst - beide gehören zur NotesUIWorkspace-Klasse:
- Prompt: Simple (wie in Formelsprache). Ein Abbruch wird hier signalisiert.
- Dialogbox: Da geht noch erheblich mehr, zum Beispiel Mehrfachabfragen. Das Erkennen des Abbruchs ist auch hier gegeben.

Bernhard

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: Item ändern mit Aktion
« Antwort #32 am: 11.01.12 - 10:22:23 »
Danke Bernhard,

das Ding läuft jetzt fast perfekt, wobei ich erstmal mit InputBox und MsgBox gewerkelt habe. Einzig eine Eingabevalidierung auf existierende Kostenstellen fehlt, aber da komm ich so nicht ran, da hat sich der Hersteller ein eigenes Konstrukt geschaffen. Rein von der Funktion her tut das Ding schon mehr, als ich zu Anfang vor hatte.

Beste Grüsse
Geri

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz