Lotus Notes / Domino Sonstiges > Help-Desk Applikation !!Help!!

Trouble Ticket System gesucht...

<< < (90/119) > >>

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