Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Teamplay am 09.06.04 - 15:37:22
-
Hallo,
wenn ein Benutzer (mit Rolle "User") versucht den Button mit dem u.g. Code zu betätigen, kommt die o.g. Fehlermeldung.
Bei einem Supporter (mit Rolle "Helpdesk") funktioniert alles einwandfrei.
Wo könnte das Problem liegen? Wo wird die Rolle überprüft?
(Ubrigens, bei der Button-Variante mit der Formel-Sprache - siehe ganz unten - funktioniert alles.)
Danke im Voraus!
Gruß
Leo
------------------------
Sub Click(Source As Button)
Dim ws As New notesuiworkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim UIDoc As notesuidocument 'Aktuelles Dokument im Frontend
Dim doc As notesdocument 'Aktuelles Dokument im Backend
Dim TicketNr, UserTech, Subject, UserReg, Priority As String
Set UIdoc=ws.CurrentDocument
Call uidoc.Save
Set doc=uidoc.Document
Set db= session.CurrentDatabase
Set Message=New NotesDocument(db) 'Mail erstellen
Set rtitem = New NotesRichTextItem( Message, "Body" )
TicketNr=uidoc.FieldGetText("RequestNumber")
UserTech=uidoc.FieldGetText("User_Tech")
Subject=uidoc.FieldGetText("Subject")
UserReg=uidoc.FieldGetText("User_Req")
Priority=uidoc.FieldGetText("Priority")
Message.Form="Memo"
Message.Principal="ServiceDesk/Domain"
' erstellt das erste Mail an den Ticket Ersteller
If doc.warn_usr_req(0)="Y" Then
Message.SendTo=UserReg
Message.Subject = "Ticket: " & TicketNr & "erstellt (Prio:" & Priority & ") für " & UserReg
Call rtitem.AppendText( "Ihre Anforderung wurde zugewiesen an: " & UserTech)
Call rtitem.AddNewLine( 1 )
Call rtitem.AppendText("Die Ticket-Nummer lautet: " & TicketNr)
Call rtitem.AddNewLine( 1 )
Call rtitem.AppendText("Thema: " & Subject)
Call rtitem.AddNewLine( 1 )
Call rtitem.AppendText("Link zum Ticket --> ")
Call rtitem.AppendDocLink( doc, "" )
Call Message.Send( False )
End If
If doc.warn_usr_tech(0)="Y" Then
' erstellt das zweite Mail an den Zuständigen
Message.body=""
Set rtitem = New NotesRichTextItem( Message, "Body" )
Message.SendTo=UserTech
Message.Subject = "Ticket: " & TicketNr & " - neu! (Prio: " & Priority & ") für " & UserReg
Call rtitem.AppendText( "Anforderung für: " & UserTech)
Call rtitem.AddNewLine( 1 )
Call rtitem.AppendText("Thema: " & Subject)
Call rtitem.AddNewLine( 1 )
Call rtitem.AppendText("Link zum Ticket --> ")
Call rtitem.AppendDocLink( doc, "" )
Call Message.Send( False )
End If
'Messagebox "Mails wurde verschickt"
Call uidoc.Close
End Sub
----------------------------------------------------------------
ABER DIES FUNKIONIERT(!):
D_Priority := @If(Priority ="1"; "niedrige Prio" ; Priority ="2"; "normale Prio" ; Priority="3"; "hohe Prio" ; Priority="4"; "Notfal!" ; Priority="5"; "Katastrophe!!!" ; "");
@If( @Command([FileSave]); "";@Return(""));
@If(Warn_Usr_Tech = "Y" ;
@MailSend (User_Tech; ""; ""; "Ticket: "+ @Text(Nb_Req) +" - neu! (" +D_Priority+") für " + @Name([CN];User_Req); "";
"Anforderung für : " + @Name([CN];User_Req) +@NewLine+ "Thema : " + Description + @NewLine + "Bitte anklicken -> "; [ReturnReceipt]:[IncludeDoclink]);"");
User_Assigned := @Implode(User_Tech; " and ");
@If( Warn_Usr_Req = "Y" ; @MailSend (User_Req; ""; ""; "Ticket: "+ @Text(Nb_Req) +" erstellt (" +D_Priority+") für " + @Name([CN];User_Req); "";
"Ihre Anforderung wurde zugewiesen : "+ @Name([CN];User_Assigned) + "." + @NewLine +
"Die Ticket-Nummer lautet : "+ @Text(Nb_Req) +@NewLine+ "Thema : " + Description + @NewLine + "Link zum Ticket --> "; [ReturnReceipt]:[IncludeDoclink] ) ;"");
@PostedCommand([FileCloseWindow])
-
Wo könnte das Problem liegen? Wo wird die Rolle überprüft?
Habe mir jetzt den Code nicht näher angesehen, aber Gegenfrage: Was sagt der Debugger?
-
Ubrigens, bei der Button-Variante mit der Formel-Sprache - siehe ganz unten - funktioniert alles
na ja, möglicherweise hat der "User" nicht die erforderlichen Zugriffsrechte; solltest du als der Entwickler der Helpdesklösung eigentlich schon auseinanderhalten können.
Ist das Dokument den n überhaupt im Edit Mode ?? FieldGetText ??, da war doch mal was mit Backend und Frontend und Westend oder so ??
!!!!! LEO, ...... vertraue der MACHT ......... lerne sie zu kontrollieren .... !!! wurd ewohl mein alder Weggefährte Dark Coder sagen ;D
Ulrich
P.S. Hätteste mir das Teil mal zugeschickt; per Mail ( wie von dir angekündigt)
-
sag halt wenigstens, in welcher Zeile der Fehler kommt.
Du wirst kaum gute Hilfe bekommen können, wenn du hier 50 Zeilen unkommentierten Code hinklatschtst. Also zumindest ich habe keine Lust dazu, mich da erstmal einzulesen und Stellen zu suchen, an denen es knallen könnte. Ich denke, einigen anderen gehts genauso ;)
-
Hi,
ohne mir den Code genauer angesehen zu haben, würde ich, genau wie eknori vermuten, dass das ein Rechteproblem ist. Was hat denn der User mit der Rolle User für Rechte. Gibt es im Dokument ein Autorenfeld und steht da die Rolle drin.
Ich glaube nicht dass es am Script liegt. Aber trotzdem, lass mal den Entwanzer dran und schau wo er sich verabschiedet. Lass uns das Ergebnis wissen. Dann können wir leichter helfen.
Übrigens: ??? ???
Ich habe gesehen, dass du in der Button - Variante mit Formeln auch Script-Anweisungen hast. Ist das ein neues Feature von R6?
Axel
-
...Ich habe gesehen, dass du in der Button - Variante mit Formeln auch Script-Anweisungen hast. Ist das ein neues Feature von R6?
1. VIELEN DANK an ALLE, die den Code gelesen haben!
2. Sorry, ich hatte meine o.g. Nachricht in Eile geschrieben und die beiden Codes durcheinander kopiert. Ich habe es erst jetz bemerkt und korrigiert.
3. Das Problem habe ich inzwischen gelöst. Nachdem ich eine Ansicht (!!!) für Role "User" freigeschaltet hatte, ging alles prima.
4. Danke auch an ALLE, die beantwortet haben.
Gruß
Leo
-
...Gegenfrage: Was sagt der Debugger?
Andere Gegenfrage: wie starte ich ihn?
-
....solltest du als der Entwickler der Helpdesklösung eigentlich schon auseinanderhalten können...
ich bin kein echter entwickler, sondern mädchen für alles (notes, windows, pc, netzwerk, hardware, software, drucker etc)
wenn ich wie du 10 jahre nur notes programiert hätte, würde ich auch gerne lachen
-
für den engl. Client kann ichs dir sagen.
Menü File->Tools->Debug Lotus Script
damit kannst du rausfinden, an welcher Stelle deines Scripts der Fehler steckt
-
...Du wirst kaum gute Hilfe bekommen können, wenn du hier 50 Zeilen unkommentierten Code hinklatschtst. Also zumindest ich habe keine Lust dazu...
der eine sagt, ich helfe dir erst, wenn du zuerst selbst den code schreibst und hier zeigst
der andere sagt, kein bock deinen code zu lesen, hilft dir hier damit keiner
na so was... ;)
-
...Du wirst kaum gute Hilfe bekommen können, wenn du hier 50 Zeilen unkommentierten Code hinklatschtst. Also zumindest ich habe keine Lust dazu...
der eine sagt, ich helfe dir erst, wenn du zuerst selbst den code schreibst und hier zeigst
der andere sagt, kein bock deinen code zu lesen, hilft dir hier damit keiner
na so was... ;)
hmm, ich meinte nicht, dass du überhaupt keinen Code posten sollst. Evtl. haben wir uns hier missverstanden.
was ich meine ist, dass es sehr schwierig sein kann, nur anhand des Codes den Fehler zu finden.
Das beste ist, du gibst mit dem Code auch die Stelle an, an der der Fehler auftritt.
Das ist natürlich nicht so einfach, wenn du nicht weißt, dass du dein Script debuggen kannst. Wenn du den Debugger anschaltest, dann zeigt der dir genau die Zeile an, in der der Fehler auftrat.
Naja, jetzt weißt du es ja. Ich hoffe, du verstehst meine Sichtweise... ;)
-
der eine sagt, ich helfe dir erst, wenn du zuerst selbst den code schreibst und hier zeigst
der andere sagt, kein bock deinen code zu lesen, hilft dir hier damit keiner
Leo, es gibt ein paar Basics, die hab ich vorhin in einem anderen Thread schon mal gestartet. Was ich vergessen hatte: "Immer Script Debugger nutzen".
Es steht da bisher u.a. "Code kommentieren" und "Option Declare".
Ich empfehle Dir ernsthaft, dass Du Dir ein Buch kaufst, Vorschläge z.B. hier:
http://www.atnotes.de/index.php?board=15;action=display;threadid=16039
Code hilft uns wirklich weiter um Dir zu helfen, aber dann brauchen wir noch die Fehlerzeile, wo das Script hängt.
-
das hat sich jetzt leicht mit Thomas' Posting überschnitten :-)
Egal.
Wir haben es ja beide geschrieben: Nenn uns die Zeile und wir können besser helfen ;)
-
der eine sagt, ich helfe dir erst, wenn du zuerst selbst den code schreibst und hier zeigst
der andere sagt, kein bock deinen code zu lesen, hilft dir hier damit keiner
Nö, nö - das passt schon, Leo. Den Code brauchen wir, aber eben auch alle Infos, die sonst noch so zur Verfügung stehen. Sonst suchen wir uns den Wolf (dazu haben wir auch keine Zeit) oder betreiben Kaffeesatzleserei.
Was bei LS-Problemen (run-time errors) immer unabdingbar ist: Die Aussagen des Debuggers (hier noch der Aufruf für die deutsche Version: Datei - Extras - Debug LotusScript oder kurz Alt-D-X-D).
Interessehalber: War es die Default view, in der die Rechte fehlten, die Du nachgetragen hast ?
Bernhard
PS: Leo, Du bist wirklich herzlich willkommen hier im Forum. Wir brauchen halt eben nur gewisse Infos, um überhaupt die Chance zur Hilfe zu haben. Wenn der Ton mal "rau klingt" - sei Dir sicher: Das klingt nur so ;-)
-
Guys,
THANKS A LOT!
Leo
-
Interessehalber: War es die Default view, in der die Rechte fehlten, die Du nachgetragen hast?
:o ???
Ja!
Aber wie kommst du darauf?
Es kostete mich die ganze Stunde, den Fehler zu finden...
-
You're welcome :-)
Bist Du irgendwie weitergekommen, jetzt?
-
Bist Du irgendwie weitergekommen, jetzt?
Ja, es war doch das Problem mit der Ansicht, das Bernhard (nachträglich :) ) irgendwie erraten hat...
-
Mails können per LS nur verschickt werden (aber eigentlich gilt das auch für @functions - aber da habe ich jetzt keine Zeit, diesen Code-Teil von Leo zu untersuchen), wenn eine default view festgelegt ist. Wenn es diese zwar gibt, aber der entsprechende User darauf keinen Zugriff hat - bumm !
Bernhard
PS: Für Deine verlorene Stunde bin ich keiner Weise verantworlich, Leo ;D
-
Für Deine verlorene Stunde bin ich keiner Weise verantworlich, Leo ;D
Man sieht sich, Bernhard...
:P :D ;D ;)
Leo
-
Übrigens...
Etwas dagegen?
Oder dafür?... ;)
*********
Call uidoc.Save
Msgbox "Here"
Set Message=New NotesDocument(db)
Msgbox "Here1"
*********
-
Deinen beiden letzten Beiträgen konnte ich jetzt nicht ganz folgen ... Gibt es da noch einen Nachtrag ?
Bernhard
-
Der vorletzte war ein Versuch zu scherzen.
Der letzte war ein Versuch zu erfahren, was man hier von noch einer Möglichkeit zu debuggen denkt, die ich gerade per E-Mail bekommen hatte.
Gruß
Leo