Autor Thema: Frage an die Profis - brauche Hilfe für SetFiueld:=...  (Gelesen 10470 mal)

Offline pur_berger

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Hallo!

Ich kämpf mich gerade durch scripting und Co durch (schreibe an eine Inventurdatenbank - und da ist man mit normalen Notes Formeln bald am Ende der Möglichkeiten ...) allerdings - finde ich keine vernünftige Möglichkeit das Folgende in Lotus Script umzuschreiben:

@Command( [FileSave] );
oprincipal:=Principal;
ofrom:=From;
osendto:=SendTo;
osubject:=Subject;
FIELD From:=@V3UserName;
FIELD SendTo:=oprincipal;
FIELD Principal:="";
FIELD Subject:=Z_Status;
@Command( [ToolsRefreshSelectedDocs] );
@Command( [FileSave] );
@MailSend;
FIELD From:=ofrom;
FIELD SendTo:=osendto;
FIELD Subject:=osubject;
FIELD Principal:=oprincipal;
FIELD SaveOptions:="0";
@Command( [ToolsRefreshSelectedDocs] );
@Command( [FileSave] );
@Command( [FileCloseWindow] )

Ich find nur leider absolut keine Funktion die dieser Logik entsprechen würde ....

Besten Dank im voraus!

botschi

  • Gast
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #1 am: 29.05.08 - 12:59:53 »
Du suchst ja hoffentlich keine Funktion, die das alles macht?  ;)
Das sind ja viele verschiedene Dinge bei... Mail senden, Speichern, Refresh, Fenster schließen usw.

Matthias

klaussal

  • Gast
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #2 am: 29.05.08 - 13:01:16 »
Zitat
Ich find nur leider absolut keine Funktion die dieser Logik entsprechen würde ....

Ich auch nicht......









Was willst Du überhaupt machen ?


PS:
Zitat
Am liebsten ist es uns, wenn Du Deinen richtigen Namen, oder wenigstens Deinen richtigen Vornamen verwendest.
Wenn Du einen Phantasienamen gewählt hast, wäre es schön, wenn Du in Deiner Signatur Deinen (Vor-)Namen angibst. Dein Phantasiename muss neutral sein.
« Letzte Änderung: 29.05.08 - 13:09:48 von klauss »

Offline pur_berger

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #3 am: 29.05.08 - 13:18:36 »
OK - also - schön langsam ...

Sichern und senden und schliesen sind ja nicht wirklich das Problem - das hab ich und das efunzt auch.

oprincipal:=Principal;
ofrom:=From;
osendto:=SendTo;
osubject:=Subject;
FIELD From:=@V3UserName;
FIELD SendTo:=oprincipal;
FIELD Principal:="";
FIELD Subject:=Z_Status;

Dieser Teil dient dazu ein bissal was zu faken. Hintergrund: Der User erhält ein Confirmationamail welches er bestätigen oder ablehnen kann. dannach sendet er über eine Button (der eben diese Funktionen enthält) das Mail retour. Sprich - Die vorhandenen Felder From, SendTo, Principal und Subject wedren ersetzt. Die drei Funtionen davor (ofrom:=From) dienen nur dazu das der orginalinhalt nicht verloren geht.

So - weiter

@Command( [ToolsRefreshSelectedDocs] );
@Command( [FileSave] );
@MailSend;

Refreshen und verschicken - eh klar

FIELD From:=ofrom;
FIELD SendTo:=osendto;
FIELD Subject:=osubject;
FIELD Principal:=oprincipal;

Und jetzt geben wir den Feldern die Orginalwerte zurück

FIELD SaveOptions:="0";

Ändern den Status

@Command( [ToolsRefreshSelectedDocs] );
@Command( [FileSave] );
@Command( [FileCloseWindow] )

Rfreshen alles nochmals, speichern und schließen.

So - jetzt hat der User in seiner Inbox in Blatt mit den INfos welche er zurückgeschickt hat, keine Editfunktion und keine Sendoption. Sprich - "Das hab ich doch garnicht geschickt" gibts ned.

Prinzipiell brauche ich im Script einerseits die Möglichkeit

ofrom:=From

abzubilden und weiters

FIELD SendTo:=osendto

durchzuführen ... und da find ich aber garnichts was mir hilft.

Set item=doc.ReplaceItemValue( "Subject","Z_Status1") hab ich's versucht - aber das haut irgendwie nicht hin ...

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #4 am: 29.05.08 - 13:26:23 »
Was haut nicht hin?

Kommt eine Fehlermeldung, steht der falsche Text im Subject?

Haut irgendwie nicht hin ist keine Aussage.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline pur_berger

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #5 am: 29.05.08 - 13:39:27 »
der fehler den ich bekomm ist

Variant does not contain an object.

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: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #6 am: 29.05.08 - 13:40:24 »
Die Meldung hat aber nix mit dem geposteten Formelcode zu tun.
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

klaussal

  • Gast
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #7 am: 29.05.08 - 13:56:10 »
Bitte den ganzen Code, sonst bringt das nix.

Offline pur_berger

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #8 am: 29.05.08 - 13:59:56 »
Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   
   Dim WarningMessage As String
   Dim YesOrNo As Integer
   
   If uidoc.FieldGetText( "Z_Status" ) = "Handout has been declined by " And uidoc.FieldGetText( "CMRemarks" ) = "" Then
      Messagebox( "*** You have to provide a reason for Declination ***" ), 0 + 16
      Call uidoc.GotoField( "CMRemarks" )
      Continue = False
      Exit Sub
   End If
   Call uidoc.Save
   Dim doc As NotesDocument
   Dim item As NotesItem   
        Dim user As String
        user = session.UserName
   Set item=doc.ReplaceItemValue( "From",user)

Und da steigt mir das script mit diesem Fehler aus. Sprich - die eigentlich Frage ist nach wie vor - wie kann ich im Lotus Script einem Feld den Wert eines anderen Feldes zuweisen. Bzw, kann man im Script ähnlich wie indet Formularlanguage temporäre Felder erzeugen um Werte zwischenzuspeichern ...

Also so sieht das script aus bis zu dem Wert wo der Fehler kommt -

und da requested - hier der ganze Code:

Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   
   Dim WarningMessage As String
   Dim YesOrNo As Integer
   
   If uidoc.FieldGetText( "Z_Status" ) = "Handout has been declined by " And uidoc.FieldGetText( "CMRemarks" ) = "" Then
      Messagebox( "*** You have to provide a reason for Declination ***" ), 0 + 16
      Call uidoc.GotoField( "CMRemarks" )
      Continue = False
      Exit Sub
   End If
   Call uidoc.Save
   Dim doc As NotesDocument
   Dim item As NotesItem
   Dim user As String
   user = session.UserName
   Set item=doc.ReplaceItemValue( "From",user)
   Set item=doc.ReplaceItemValue( "SendTo","Principal")
   Set item=doc.ReplaceItemValue( "Principal","")
   Set item=doc.ReplaceItemValue( "Subject","Z_Status1")
   Call uidoc.Refresh
   Call uidoc.Send
   Set item=doc.ReplaceItemValue( "From","OFrom")
   Set item=doc.ReplaceItemValue( "SendTo","OSendTo")
   Set item=doc.ReplaceItemValue( "Principal","OPrincipal")
   Set item=doc.ReplaceItemValue( "Subject","OSubject")
   Set item=doc.ReplaceItemValue( "SaveOptions",0)
   Call uidoc.Refresh
   Call uidoc.save
   Call uidoc.close(True)
End Sub
   

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #9 am: 29.05.08 - 14:02:44 »
Hallo

Wo wird doc initialisiert?

Ersetze Set item=doc.ReplaceItemValue( "From",user)
durch call doc.ReplaceItemValue( "From", session.UserName )
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #10 am: 29.05.08 - 14:06:28 »
Und ein Fehlerhandling wäre auch nicht schlecht
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

klaussal

  • Gast
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #11 am: 29.05.08 - 14:08:17 »
... und hätte man das mal im Debugger laufen lassen, dann hätte man auch gesehen, das "doc" nicht initialisiert wird......

Aber wir wollen ja jetzt mal nicht kleinlich sein....  ;)

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #12 am: 29.05.08 - 14:09:30 »
Zitat
Und ein Fehlerhandling wäre auch nicht schlecht

Sowieso  8)

und evtl. Fehler vorher abfangen ala:

if doc is Nothing Then
  Msgbox "Uuups, da ist mir was passiert..." , 16 , "Abbruch"
  goto EXIT_ME
end if
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #13 am: 29.05.08 - 14:14:15 »
Ein Option Declare ist manchmal aus sehr hilfreich.

Hilft aber nur gegen nichtdeklarieren und nicht gegen nichtinitialisieren...
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline pur_berger

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #14 am: 29.05.08 - 14:14:37 »
Ahm - Freunde - wenn ich so gut wäre würde ich hier nicht fragen ...

klaussal

  • Gast
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #15 am: 29.05.08 - 14:19:14 »
Is schon klar, wir geben ja nur Tipps für die Zukunft bzw, wie man es besser machen kann. Das ist nicht persönlich gemeint.

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #16 am: 29.05.08 - 14:19:27 »
Darum geben wir ja die Hinweise
 
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #17 am: 29.05.08 - 14:27:23 »
Das ganze dient nur der zukünftigen Fehlerminimierung  :)

Und ist wie Klaus sagt nicht persönlich gemeint.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline pur_berger

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #18 am: 29.05.08 - 14:29:33 »
So - dann stell ich mal witer blöde Fragen und laß mich nacher "Hinweisen" - Ich dachte eigentlich

Dim doc As NotesDocument

wäre die Initiailiserung?

Ahm - und bevor ich wieder mit kryptischen Hinweisen knofrontiert werde - ich beherrsche keine höherer Programmiersprache ... und die Lotus Hilfe ist nur mäßig hilfreich ....

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Frage an die Profis - brauche Hilfe für SetFiueld:=...
« Antwort #19 am: 29.05.08 - 14:31:01 »
Dim "definiert" eine Variable

Du musst ein Set verwenden:

Set doc = uidoc.Document '(Als Beispiel)

...
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz