Lotus Notes / Domino Sonstiges > Help-Desk Applikation !!Help!!
Trouble Ticket System gesucht...
sky-diver:
dein wunsch war mir ein befehl ...leider funzt es immer noch nicht ;-(( Immer noch der fehler object varibale not set ..
Das mit der TT# kann ich umgehen idem ich die benachrichtigung abschalte, sonst bekommt der user immer zwei mails eine ohne TT# und das zweite mit ...
eknori (retired):
irgend etwas stimmt bei deiner DB grundsätzlich nicht.
Kannst du mir das Ding bitte mal zippen und an webmaster@eknori.de schicken? Dann kann ich mir das direkt anschauen.
sky-diver:
ist schon weg ;-)
eknori (retired):
Merci, damit konnte ich das Problem beim Erstellen eines Tickets aus einer Mail heraus lokalisieren
Gehe ich Recht in der Annahme, daß du die HilfeMail nicht von einem Notes Client aus gestartet hast ?
OK, knackpunkt ist die Funktion
Function CreatenewTicket(me_db As NotesDatabase, me_doc As notesdocument) As Boolean
%REM
#########################################
Goal: This function creates a new Ticket out of a mailed document
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arguments: Description:
me_db Notesdatabase The Calling Notes DB
me_doc Notesdocument the document that is worked on
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Return:
boolean true or false if there was an error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Example:
ok = CreatenewTicket(db,doc)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VERSION / WHEN / WHO / CHANGES
1.0/24.03.2005/Thomas Schulte/none
'###################################################################################
%END REM
Dim newticket As NotesDocument
Dim item As NotesItem
Dim rtitem As NotesRichTextItem
Dim problem As String
Dim plainText As String
Const NEW_LINE = Uchr$(13)
On Error Goto ErrorHandler
createnewticket = True
Set NewTicket = New NotesDocument( me_db )
Set item = me_doc.GetFirstItem( "From" )
Call item.CopyItemToDocument ( NewTicket, "User")
'Set item = me_doc.GetFirstItem( "CopyTo" )
'Call item.CopyItemToDocument ( NewTicket, "OtherUsers")
'Set item = me_doc.GetFirstItem( "Body" )
'Problem = Left$(item.Text,100)
Set rtitem = me_doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
plainText = rtitem.GetFormattedText( False, 0 )
End If
Problem = Left$(plainText,100)
Call item.CopyItemToDocument ( NewTicket, "Body")
Set item = me_doc.GetFirstItem ("Subject")
Set item = NewTicket.ReplaceItemValue("problem", item.Text & NEW_LINE & NEW_LINE & Problem)
Set item = me_doc.GetFirstItem( "DeliveredDate" )
Call item.CopyItemToDocument ( NewTicket, "DateCreated")
Set item = NewTicket.ReplaceItemValue ("Form", "BugReport")
Set item = NewTicket.ReplaceItemValue ("Status", "0")
Set item = NewTicket.ReplaceItemValue ("Rerouted", "0")
Set item = NewTicket.ReplaceItemValue ("transformed", "1")
Call NewTicket.Save (True,True)
TheEnd:
Exit Function
ErrorHandler:
CreatenewTicket = False
Print "CreatenewTicket: " & Trim$(Str$(Err)) & " on line " & Cstr(Erl) & ": " & Error$
Resume TheEnd
End Function
Zum Einen konnte das Feld CopyTo in der ursprünglichen Mail nicht gefunden werden, zum Anderen halte ich das von Thomas codierte Handling des "Body" ('Set item = me_doc.GetFirstItem( "Body" )) für so nicht richtig.
Als Workaround kannst du den abgebildeten Code in die LS Lib lib.appl.functions übernehmen.
Dann sollte das Erstellen des Tickets kein Problem mehr sein.
Und ich mache mich dann an die Arbeit, das errorhandling noch einwenig zu verfeinern . ;D
eknori (retired):
Function CreatenewTicket(me_db As NotesDatabase, me_doc As notesdocument) As Boolean
%REM
###################################################################################
Goal: This function creates a new Ticket out of a mailed document
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arguments: Description:
me_db Notesdatabase The Calling Notes DB
me_doc Notesdocument the document that is worked on
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Return:
boolean true or false if there was an error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Example:
ok = CreatenewTicket(db,doc)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VERSION / WHEN / WHO / CHANGES
1.0/24.03.2005/Thomas Schulte/none
1.1/4.04.2005/eknori/ErrorHandling for fields
'###################################################################################
%END REM
Dim newticket As NotesDocument
Dim item As NotesItem
Dim rtitem As NotesRichTextItem
Dim rtBodyNewTicket As NotesRichTextItem
Dim problem As String
Dim plainText As String
Const NEW_LINE = Uchr$(13)
On Error Goto ErrorHandler
createnewticket = True
Set NewTicket = New NotesDocument( me_db )
If me_doc.HasItem("From") Then
Set item = me_doc.GetFirstItem( "From" )
Call item.CopyItemToDocument ( NewTicket, "User")
End If
If me_doc.HasItem("CopyTo") Then
Set item = me_doc.GetFirstItem( "CopyTo" )
Call item.CopyItemToDocument ( NewTicket, "OtherUsers")
End If
If me_doc.HasItem("Body") Then
Set rtitem = me_doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
plainText = rtitem.GetFormattedText( False, 0 )
End If
Problem = Left$(plainText,100)
Set rtBodyNewTicket = New NotesRichTextItem ( NewTicket, "Body" )
Call rtBodyNewTicket.AppendRTItem( rtitem)
End If
If me_doc.HasItem("Subject") Then
Set item = me_doc.GetFirstItem ("Subject")
Set item = NewTicket.ReplaceItemValue("problem", item.Text & NEW_LINE & NEW_LINE & Problem)
End If
If me_doc.HasItem("DeliveredDate") Then
Set item = me_doc.GetFirstItem( "DeliveredDate" )
Call item.CopyItemToDocument ( NewTicket, "DateCreated")
End If
Set item = NewTicket.ReplaceItemValue ("Form", "BugReport")
Set item = NewTicket.ReplaceItemValue ("Status", "0")
Set item = NewTicket.ReplaceItemValue ("Rerouted", "0")
Set item = NewTicket.ReplaceItemValue ("transformed", "1")
Call NewTicket.Save (True,True)
TheEnd:
Exit Function
ErrorHandler:
CreatenewTicket = False
Print "CreatenewTicket: " & Trim$(Str$(Err)) & " on line " & Cstr(Erl) & ": " & Error$
Resume TheEnd
End Function
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln