Autor Thema: @Promt Fehlermeldung  (Gelesen 3599 mal)

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
@Promt Fehlermeldung
« am: 10.04.07 - 17:03:11 »
Hallo zusammen,

ich möchte das ausfüllen eines Urlaubscheines in Notes bereitstellen.
Das ganze muß nicht sehr Aufwendig sein, es soll nur den schriftlichen Urlaubsschein ersetzen.

Unter anderm gibt es 4 Felder:
Name, Typ: Autoren, Berechnet beim anlegen
User1, Typ: Namen, Bearbeitbar
User11; Typ: Namen, Berechnet - @SetField ("User11"; User1), verborgen
Genehmigt: Typ: Namen, Bearbeitbar

Es gibt 2 Aktionen:
Senden Antragsteller -

_mailempfaenger := User1; SendTo;

@MailSend(_mailempfaenger; ""; ""; "Urlaubsantrag"; "Sie erhalten soeben einen neuen Urlaubsantrag."
      + @NewLine +
            "Bitte klicken Sie auf die Verknüpfung um das Dokument zu öffnen."; "";
      [IncludeDoclink]);
@PostedCommand([FileSave]);
@PostedCommand([FileCloseWindow])


Senden Vorgesetzter -

_mailempfaenger := Name; SendTo;

@MailSend(_mailempfaenger; "xxxxxxxxxxx"; ""; "Urlaubsantrag"; "Sie erhalten soeben die Bestätigung od. Ablehnung Ihres Urlaubsantrages."
      + @NewLine +
            "Bitte klicken Sie auf die Verknüpfung um das Dokument zu öffnen."; "";
      [IncludeDoclink]);
@PostedCommand([FileSave]);
@PostedCommand([FileCloseWindow])

Im Feld „User1“ trägt der Antragsteller den Namen des Empfängers (Vorgesetzer) ein und klickt dann auf „Senden Antragsteller“.

Der Empfänger (Vorgesetzter), trägt im Feld „Genehmigt“ seinen Namen ein und klickt auf „Senden Vorgesetzter“. Die Mail geht zurück an den Absender (Feld "Name"), eine Kopie wird dabei an die Buchhaltung gesendet (der Empfänger ist vorgegeben).
So weit, so gut. So funktioniert´s.

Ich möchte noch prüfen, ob in den Feldern „User1“ und „User11“ auch wirklich 2x der selbe Name steht und erweitere die Formel der Aktion „Senden Vorgesetzter“:

@If (User11 != User1; @Return (@Prompt ([Ok]; "Info"; "Sie sind nicht Unterschriftsberechtigt, da Sie nicht der richtige Empfänger dieser Mail sind !"));

_mailempfaenger := Name; SendTo;

@MailSend(_mailempfaenger; "xxxxxxxxxxxxx"; ""; "Urlaubsantrag"; "Sie erhalten soeben die Bestätigung od. Ablehnung Ihres Urlaubsantrages."
      + @NewLine +
            "Bitte klicken Sie auf die Verknüpfung um das Dokument zu öffnen."; "";
      [IncludeDoclink]);
@PostedCommand([FileSave]);
@PostedCommand([FileCloseWindow]))

Obwohl die Namen in beiden Feldern übereinstimmen, kommt die Promt-Meldung!  ???

Jetzt dachte ich mir, als Test soll die Meldung erscheinen, wenn beide Namen stimmen.
@If (User11 = User1;.........

Die Fehlermeldung: Falscher Datentyp für Operator oder @Funcktion: Zahl erwartet  ???

Wo bitte mache ich einen Fehler?

Vielen Dank schon mal für Eure Hilfe.

Gruß Siggi
« Letzte Änderung: 10.04.07 - 22:39:53 von macom111 »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Promt Fehlermeldung
« Antwort #1 am: 10.04.07 - 17:16:41 »
Warum setzt Du "User1" in Anführungszeichen?
Laut Deinem Code vergleichst Du den Inhalt des Feldes User11 mit dem String "User1" (der mit dem Inhalt des gleichnamigen Feldes soviel zu tun hat wie ein Atom-Uboot mit einer Knoblacuhzehe).

Bernhard

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Promt Fehlermeldung
« Antwort #2 am: 10.04.07 - 17:27:15 »
Anführungszeichen weg!
Funktioniert aber auch nicht.
Auch hier die Fehlermeldung: Falscher Datentyp für Operator oder @Funcktion: Zahl erwartet

Was für eine Zahl ???

Gruß Siggi
« Letzte Änderung: 10.04.07 - 17:29:06 von macom111 »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Promt Fehlermeldung
« Antwort #3 am: 10.04.07 - 17:34:12 »
Und was steht laut Document properties in den Items User 1 und User11? Das ist schwer von hier aus zu beurteilen ...

Bernhard

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Promt Fehlermeldung
« Antwort #4 am: 10.04.07 - 17:52:58 »
Da ich nicht weiss, wie der aktuelle Code jetzt aussieht: Mit höchster Wahrscheinlichkeit hat das mit dem Fehler nichts zu tun, aber

Code
_mailempfaenger := User1; SendTo
ist falsch! SendTo erwartet Text oder eine Textliste, also entweder
User1
oder
User1 : SendTo

Die DesignerHelp ist da nun wirklich sehr hilfreich.

Bernhard

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Promt Fehlermeldung
« Antwort #5 am: 10.04.07 - 22:41:23 »
Und was steht laut Document properties in den Items User 1 und User11? Das ist schwer von hier aus zu beurteilen ...

Es steht in beiden Items der selbe Name.

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Promt Fehlermeldung
« Antwort #6 am: 10.04.07 - 22:44:43 »
Ich bitte vielmals um Entschuldigung, aber ich habe in meinem ersten Posting was falsch beschrieben. Auch habe ich noch was ergänzt, was vielleicht "sachdienlich" sein könnte.
Bitte nochmal durchlesen.

Vielen Dank.

Gruß Siggi

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Promt Fehlermeldung
« Antwort #7 am: 10.04.07 - 23:16:15 »
Bitte nochmal durchlesen.

Also ich werde das jetzt ganz bestimmt nicht erneut durchflöhen, um aus der Erinnerung die Unterschiede zu erkennen.

Wenn Du Hilfe brauchst, postet Du am besten folgendes:
- Genau die eine Codezeile (komplett!), in der der Fehler gemeldet wird.
- Die exakten Inhalte der Felder User1 und User11
Und der Fehler sollte genau durch diesen Einzeiler nachvollziehbar sein - hierzu also bitte einen entsprechenden Agent bauen, der nur auf dem fehlerprovozierenden Code basiert und nichts anderes posten.

Bernhard

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: @Promt Fehlermeldung
« Antwort #8 am: 10.04.07 - 23:22:13 »
1) Bitte nicht Postings modifizieren, wenn schon darauf bezug genommen wurde, da kommen alle durcheinandern. Besser nochmal posten, wenn Du Änderungen vorgenommen hast.

2) Poste bitte RICHTIGEN Code. Der von Dir muss schon bei einem Speicherversuch der Maske im Designer einen Fehler schmeissen.

a) Das If-Statement für den Prompt:
@If ( User11 != User1;
        @Return (
            @Prompt ( [Ok]; "Info";
                      "Sie sind nicht Unterschriftsberechtigt, da Sie nicht der richtige Empfänger dieser Mail sind !"
                    )
                );

Hier fehlt
i) Der Else-Zwieg des @If
ii) Die schließende Klammer des @If

b) _mailempfaenger := Name; SendTo;
Sollte _mailempfaenger einen Multivaluewert enthalten, müssen die Werte durch ":", nicht durch ";" getrennt werden.
Wenn Du in _mailempfaenger einen String speichenr willst und in diesem die Werte von name und SendTo durch ein ";" getrennt werden soll, musst Du ein paar Stringoperationen "drüberstreuen".

c) Vergleich "User11 != User1"
Wenn User1 oder User11 Multivalue-felder ist/sind, funktioniert der Vergleich so nicht.


So, vergiss alles, was ich da oben gschrieben habe. Mir graut fürchterliches.
Kann es sein, dass Du "früher" C oder VB oder so etwas programmiert hast? Dann bist Du vermutlich Konstrukte wie
Code
If total = firstnum + secondnum And Val(sum.Text) <> 0 Then
    correct.Visible = True
    wrong.Visible = False
Else
    correct.Visible = False
    wrong.Visible = True
End If
gewohnt, bei denen man unterhalb des IF bzw. ELSE mehrere Statements anbringen kann.

Dem ist in @-Formelsprache nicht so. Für die Aktion im IF bzw. ELSE Fall ist genau EINE Aktion vorgesehen.
Dein Plan, das
Code
_mailempfaenger := Name; SendTo;
@MailSend...
in den "ELSE" Zweig zu hängen, kann IMHO so nicht klappen. Dafür willst Du Dir @Do ansehen.

Oder Du ziehst alle "Berechnungen", die Du für das @MailSend brauchst aus dem @ELSE-Zweig vor das @IF.
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 macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Promt Fehlermeldung
« Antwort #9 am: 12.04.07 - 18:02:34 »

So, vergiss alles, was ich da oben gschrieben habe. Mir graut fürchterliches.
Kann es sein, dass Du "früher" C oder VB oder so etwas programmiert hast?


Leider NEIN. Bin froh, wenn ich mit den @Funktion zurechtkomme!

Poste jetzt nochmal neu und hänge eine TestDB an.
Der Fehler ist vermutlich ganz einfach, aber ich sehe ihn einfach nicht.

Gruß Siggi

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Promt Fehlermeldung
« Antwort #10 am: 12.04.07 - 18:05:38 »
Also,

hier nochmal das ganze mit einer TestDB im Anhang (ich denke, das ist wohl das beste) und der richtigen Erklärung:

Unter anderm gibt es 4 Felder:
Name, Typ: Autoren, Berechnet beim anlegen
User1, Typ: Namen, Bearbeitbar
User11; Typ: Namen, Berechnet - @SetField ("User11"; User1)
Genehmigt: Typ: Namen, Bearbeitbar

Es gibt 2 Aktionen:

Senden Antragsteller -    Funktioniert einwandfrei!


Senden Vorgesetzter -

Im Feld „User1“ trägt der Antragsteller den Namen des Empfängers (Vorgesetzer) ein und klickt dann auf „Senden Antragstellter“.

Der Empfänger (Vorgesetzter), trägt im Feld „Genehmigt“ seinen Namen ein und klickt auf „Senden Vorgesetzter“. Die Mail sollte zurück an den Absender gehen (Feld "Name").

Die Fehlermeldung: Falscher Datentyp für Operator oder @Funcktion: Zahl erwartet 

Lasse ich die Anweisung

@If (User11 != User1; @Return (@Prompt ([Ok]; "Info"; "Sie sind nicht Unterschriftsberechtigt, da Sie nicht der richtige Empfänger dieser Mail sind !"));

weg, funktioniert´s.

Wo bitte mache ich den Fehler?

Vielen Dank schon mal für Eure Hilfe.

Gruß Siggi

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Promt Fehlermeldung
« Antwort #11 am: 12.04.07 - 18:09:13 »
Wo ist denn in der Zeile (ohne die es klappt) zum @If der Else-Zweig? Schweinerei, das der R6-Designer das abnimmt, aber ...

@If (User11 != User1; @Return (@Prompt ([Ok]; "Info"; "Sie sind nicht Unterschriftsberechtigt, da Sie nicht der richtige Empfänger dieser Mail sind !"); "");
wäre syntaktisch korrekt.

Bernhard

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Promt Fehlermeldung
« Antwort #12 am: 12.04.07 - 18:55:58 »
Stehe gerade im Badezimmer beim Umziehen und dabei kommt mir ein schrecklicher Gedanke:  ???

Und tatsächlich.... meine Vermutung hat sich bestätigt:

In der Aktion Vorgesetzter stehht

@If (User11 != User1; @Return (@Prompt ([Ok]; "Info"; "Sie sind nicht Unterschriftsberechtigt, da Sie nicht der richtige Empfänger dieser Mail sind !"));

_mailempfaenger := Name; SendTo;

@MailSend(_mailempfaenger; "Tobias Roth/GRUMA/DE"; ""; "Urlaubsantrag"; "Sie erhalten soeben die Bestätigung od. Ablehnung Ihres Urlaubsantrages."
      + @NewLine +
            "Bitte klicken Sie auf die Verknüpfung um das Dokument zu öffnen."; "";
      [IncludeDoclink]);
@PostedCommand([FileSave]);
@PostedCommand([FileCloseWindow]))


_mailempfaenger := Name; SendTo;
muß in der ersten Zeile stehen und nicht wie bei mir nach der @IF - Anweisung.

So was blödes auch  >:(

Danke Euch trotzdem für Eure Bemühungen!

Gruß Siggi

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Promt Fehlermeldung
« Antwort #13 am: 12.04.07 - 21:15:01 »
Irgendwie kommt hier immer mehr syntaktisch falsches zum Vorschein!

Code
_mailempfaenger := Name; SendTo;

Das sind zwei getrennte Formel-Terme! Das Zeichen ";" trennt Parameter (hier nicht erforderlich und daher komplett falsch).
Ich vernmute mal, dass der Inhalt der Felder "Name" und "SendTo" der Variablen "_mailempfaenger" zugewiesen werden sollen.

Und das müsste dann heissen:

_mailempfaenger := Name: SendTo;

Ich empfehle das gründliche Studium der DesignerHelp.

Bernhard

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: @Promt Fehlermeldung
« Antwort #14 am: 12.04.07 - 23:50:11 »
So, ich hab mir das jetzt mal im Detail herausgeholt:

Code
01 @If( User11 != User1; 
02            @Return (@Prompt ([Ok]; "Info"; "Sie sind nicht Unterschriftsberechtigt, da Sie nicht der richtige Empfänger dieser Mail sind !"));
03     _mailempfaenger := Name; 
04            SendTo;
05     @MailSend(_mailempfaenger; ""; ""; "Urlaubsantrag"; "Sie erhalten soeben die Bestätigung od. Ablehnung Ihres Urlaubsantrages." + @NewLine + "Bitte klicken Sie auf die Verknüpfung um das Dokument zu öffnen."; ""; [IncludeDoclink]);
06            @PostedCommand([FileSave]);
07     @PostedCommand([FileCloseWindow])
08   )

Dieses @IF-Konstrukt ist durchaus "valide", Bernhard, auch wenn dies a) nur durch Zufall und b) haarstäubend ist.

Es besagt nämlich aus, dass
a) Wenn User11 != User1 (Zeile 01) ist, der @Return Befehl in Zeile 02 ausgeführt wird
b) Wenn die ZUWEISUNG "_mailempfaenger := Name;" in Zeile 03 erfolgreich ist, "das Feld SendTo 'ausgeführt'" wird (Zeile 04, was immer dann auch passiert)
c) Wenn der @MailSend-Befehl in Zeile 05 erfolgreich war, wird @PostedCommand([FileSave]); (Zeile 06)ausgeführt
d) Wenn das alles nicht klappt, wird - als ELSE - @PostedCommand([FileCloseWindow]) in Zeile 07 ausgeführt.

Syntaktisch korrekt, inhaltlich komplett gaga.  ;D  ;)


« Letzte Änderung: 12.04.07 - 23:52:43 von m3 »
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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Promt Fehlermeldung
« Antwort #15 am: 13.04.07 - 00:01:06 »
Danke, Martin. Mir war das zwar klar, dass Fehler 1 nur durch Fehler 2 und der durch Fehler 3 kompensiert worden sein könnte, aber ich hatte heute einfach nicht die Zeit, das durchzusehen und die konkrete Stelle auch noch herauszusuchen. Daher habe ich immer auf DIE fehlerhafte Zeile gepocht, die ja Siggi gezwungen hätte, den Code mal wirklich auseinander zu nehmen.

Irgendwie bin ich mir mittlerweile sicher, dass Siggi (und seine Firma) seit langer Zeit aus prinzipiellen Fehlern nichts lernt. Man kann doch nicht ewig friggeln ...

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz