Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: redspawn am 22.03.05 - 12:09:32

Titel: @MailSend wird nicht ausgeführt
Beitrag von: redspawn am 22.03.05 - 12:09:32
Hallo zusammen,

zuerst kurz die Beschreibung der Situation.

Es besteht eine Maske in der neue Mitarbeiter eingetragen werden. Um die entsprechenden Abteilungen über den Eintritt/Austritt zu informieren wird per @MailSend automatisch eine Email an entsprechende Personen verschickt! Jetzt soll eben je nach dem ob es ein Ein- oder Austritt eines MAs ist, verschiedene Subjects in der Email stehen.

Jetzt habe ich das Problem, dass in der letzten If-Schleife weder der eine noch der andere Befehl ausgeführt wird. Wenn ich eine pauschal Email mit dem gleichen Subject verschicke geht es. Nur wenn ich das @MailSend innerhalb der If-Schleife ausführen will, streikt er!!!

Hier ist der Formel-Code:

_Title1 := "Mitarbeiter Eintritt von " + Name + "," + Vorname + "am : " + comingdate;
_Title2 := "Mitarbeiter Austritt von " + Austritt_Name+ "am : " + comingdate;
_Msg1 := "Bitte bearbeiten Sie folgendes Dokument";
_Empfaenger := @Unique(SendVerwaltung : SendAdmin);

REM {"Email wird nur verschickt wenn Dok neu ist und gespeichert wurde};
@If(!@IsDocBeingSaved; @Return(""); _Continue);
@If(!@IsNewDoc; @Return(""); _Continue);


@If(Aktion = 0; @MailSend(_Empfaenger; ""; ""; _Title1; _Msg1;""; [IncludeDoclink]);@MailSend(_Empfaenger; ""; ""; _Title2; _Msg1;""; [IncludeDoclink]));

Vielleicht kann mir ja mal jemand sagen warum und wieso. Ist zwar wahrscheinlich nur ne Kleinigkeit aber da ich noch nicht ganz so fit in der Sache bin steh ich grad ziemlich auf dem Schlauch...

Hoffe mir kann jemand weiterhelfen.

Greetz
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: Driri am 22.03.05 - 12:37:07
Sind Vorgabe-Ansicht und -Maske in der Datenbank definiert ? Ist häufig das Problem, wenn MailSend etc. nicht funktioniert.
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: koehlerbv am 22.03.05 - 12:43:59
Nö, das kann es diesmal nicht sein, Ingo - Peter hat ja geschrieben, dass @MailSend ausserhalb von @If funktioniert.

An der Formel kann ich jedenfalls mit blossem Auge nix böses entdecken. Ob R6 jetzt ein Problem mit @MailSend in @Ifs hat, vermag ich nicht zu sagen.

Bau doch einfach einen Workaround, Peter:
_Title := @If (Aktion = 0; "Mitarbeiter Eintritt von " + Name + "," + Vorname + "am : " + comingdate; "Mitarbeiter Austritt von " + Austritt_Name+ "am : " + comingdate);

Dann brauchst Du keine Verzweigung mehr für @MailSend.

Bist Du Dir sicher, das in Aktion wirklich eine Zahl steht und kein String ?

Bernhard
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: klaussal am 22.03.05 - 13:09:27
Auch meine Vermutung, in Aktion steht "0"....
Mal mit @prompt anzeigen lassen.
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: koehlerbv am 22.03.05 - 13:23:31
Hm, dann müsste Notes eine Fehlermeldung unterdrücken, dass Zahl erwartet wurde ... Das wäre unschön, aber an sich nix neues.

Wegen der Lesbarkeit des Codes würde ich aber wegen der vielen Parameter trotzdem auf Verschachtelungen im Zusammenhang mit @MailSend verzichten.

Bernhard
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: redspawn am 22.03.05 - 13:23:37
Zuerst mal Danke für eure schnellen Antworten.

An Bernhard:

ich hab jetzt mal deine Version implementiert. Leider funktioniert auch das nicht richtig, er verschickt wieder keine Mail. Sobald ich aber das If-Konstrukt um das Aktion-Textfeld rausnehme oder auskommentiere macht er es wie ich es will.

Wenn es in Anzahl keine Zahl sondern ein String ist, müsste ich doch theoretisch um die Null nur Anführungszeichen setzen um den String vergleichen zu können. Ausprobiert habe ich das mit den "" schon. Leider ohne Erfolg. Oder hab ich da wieder zu einfach gedacht und es geht nicht Strings so zu vergleichen???

Für weitere Vorschläge bin ich äusserst dankbar...

Gruß Peter

Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: koehlerbv am 22.03.05 - 13:29:13
ich hab jetzt mal deine Version implementiert. Leider funktioniert auch das nicht richtig, er verschickt wieder keine Mail. Sobald ich aber das If-Konstrukt um das Aktion-Textfeld rausnehme oder auskommentiere macht er es wie ich es will.

Moment, wenn Du meine Variante verwendest, brauchst Du um @MailSend doch gar kein @If mehr ...

Was für ein Feld (oder eine temp. Variable) Aktion ist, musst Du schon selber wissen. Wenn es ein Textfeld ist, dann muss der Vergleich lauten: Aktion = "0". Ist es ein Zahlfeld, Aktion = 0.

Bernhard
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: redspawn am 22.03.05 - 13:32:35
Ja hast du recht, das hab ich ja auch gemacht. Das @MailSend steht jetzt komplett nackt da.

Zur Verdeutlichung:

_Title := @If (Aktion = "0"; "Mitarbeiter Eintritt von " + Name + "," + Vorname + "am : " + comingdate; "Mitarbeiter Austritt von " + Austritt_Name+ "am : " + comingdate);

_Msg1 := "Bitte bearbeiten Sie folgendes Dokument";
_Empfaenger := @Unique(SendVerwaltung : SendDominoAdmin : SendUtensilien : SendUrlaub : SendDocHouse : SendHardware);

REM {"Email wird nur verschickt wenn Dok neu ist und gespeichert wurde};
@If(!@IsDocBeingSaved; @Return(""); _Continue);
@If(!@IsNewDoc; @Return(""); _Continue);

@MailSend(_Empfaenger; ""; ""; _Title; _Msg1;""; [IncludeDoclink]);

Leider tut es immer noch nicht. So langsam bin ich sprachlos...

Gruß Peter
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: max.power am 22.03.05 - 13:44:33
Hi,

also ich denke, dass das

@If(!@IsDocBeingSaved; @Return(""); _Continue);

immer das @Return ausführt. @IsDocBeingSaved liefert True, wenn das Dokument gerade eben(!) gespeichert wird, und nicht "irgendwann mal" gespeichert wurde.
Kommentiere doch mal dieses eine IF aus.... ist mal so ne Vermutung :)

LG,
Max
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: koehlerbv am 22.03.05 - 13:52:06
Das kann sehr gut sein, Max. Die Stelle hatte ich mir noch gar nicht angeschaut. Wo befindet sich der Code denn überhaupt ?

Bernhard
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: redspawn am 22.03.05 - 14:02:49
Ich hab ganz unten auf der Maske ein Textfeld erstellt, das ganz einfach berechnet wird. Das Feld ist verborgen damit niemand zufällig draufklickt oder was ändert.

Das komische daran ist ja wenn ich die IF-Abfrage rauslasse funzt die Sache ja. Nur wenn ich die Aktion abfrage tut sich nix mehr.
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: koehlerbv am 22.03.05 - 14:09:03
Dann ist auch das @IsDocBeingSaved okay.

Wie füllst Du denn Aktion ? Was ist das für ein Feldtyp ? Was mich wundert ist, dass auch der Else-Zweig nicht ausgeführt wird ...

Bernhard
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: redspawn am 22.03.05 - 14:11:18
Das Feld Aktion ist eine Optionsschaltfläche mit den Auswahlmöglichkeiten:

Eintritt|0
Austritt|1


Gruß Peter
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: klaussal am 22.03.05 - 14:16:55
Also Aktion = "0"....
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: koehlerbv am 22.03.05 - 14:19:26
Auch das sieht sauber aus, und wie Klaus schon sagt, ist dort ein String gespeichert.

Bau doch mal ein @Prompt nach dem @If ein und lass Dir anzeigen, was in _Title steht. Und verschiebe dann den Prompt peu à peu, bis klar ist, wo nun wirklich abgebrochen wird.

Bernhard (stehe jetzt auch vor einem Rätsel, für das es bestimmt eine ganz simple Erklärung gibt)
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: koehlerbv am 22.03.05 - 14:24:03
Was ich jetzt gerade sehe: Ist comingdate ein Datumsfeld ? Dort muss dann @Text drumrum. Und die Fehlermeldung steht natürlich in Deinem berechneten Feld. Mach das kurzfristig mal sichtbar - dann siehst Du, was los ist  ;)

Bernhard
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: redspawn am 22.03.05 - 14:34:45
Leute ihr seid meine Rettung!!! Es funktioniert, muss wohl an dem Datumsfeld gelegen haben... wobei ich das ganz am Anfang noch gar nicht drin hatte!!!

Aber egal... jetzt scheint es zu gehen!!!

Nochmals vielen Dank.

Ich denke ich meld mich beizeiten mal wieder... Ich glaub so schnell gehen mir die Probleme nämlich nicht aus!!!  ;)

Also Danke nochmal an alle die mitgeholfen haben!!!

Gruß Peter
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: koehlerbv am 22.03.05 - 14:37:11
Das lag hundertpro an dem Datumsfeld, denn Text plus Datum gibt einen Type mismatch. Und vorher wird dann wohl noch ein anderer Fehler drin gewesen sein.

Bernhard
Titel: Re: @MailSend wird nicht ausgeführt
Beitrag von: klaussal am 22.03.05 - 14:38:10
Zitat
Es funktioniert, muss wohl an dem Datumsfeld gelegen haben...

Das find ich geil: ich weiss zwar nicht warum es jetzt funzt, aber egal Karl.....  ;D