Das Notes Forum

Lotus Notes / Domino Sonstiges => Projekt Bereich => Help-Desk Applikation !!Help!! => Thema gestartet von: pur_berger am 22.08.07 - 17:01:35

Titel: Übernahme von Mails aus anderen als der eigenen Mailbox
Beitrag von: pur_berger am 22.08.07 - 17:01:35
So - keine Angst - ich beschäftige mich eh schon selber damit ...

Also - ich habe mal versucht das zu tun (und zu verstehen) was mir so erklär wurde ...

-> die Function wird im lib.appl.functions aufgerufen - unter "InsertFullEmail"
-> Orginal heißt es
        Set dbMail = New NotesDatabase("","")
   Call dbMail.OpenMail
   If Not dbMail.IsOpen Then Error 1001, "Could not open user's mailfile"
-> wenn ich es richtig verstehe müßte ich lediglich New Notes Database ("","") gegen New Notes Fabase ("","unser Pfad zum File") tauschen

So - zum testen hab ich das mal direkt versucht - in der Annahme das dann der Button schon diese Funkzion ausführt  ... nada.

Dann hab ich mal versucht den BUtton zu finden - sind das die "Transform Mail" Button?

Um ein neues Object in die Library einzufügen - reicht es da z.B. den Inhalt aus InsertFullEmail in zum Beispiel Terminate zu kopieren, einen neuen Namen zu geben und zu sichern (so hab' ich es zumindest versucht)

Pfrrrr - ich find nicht mehr weiter ...

Also - konkret:

Bitte

- wo in welcher View sind die Mail >> Ticket Buttons definiert?
- lauf ich komplett falsch in meinem Vorgehen?
- die alte IT Support Datenbanl arbeited mit standardViews und $Inbox

Ich weiß  ist nervig - nur für uns ist das wirklich wichtig umd die Datenbank vernünftig zu benutzen ...

Besten Dank
Titel: Re: Übernahme von Mails aus anderen als der eigenen Mailbox
Beitrag von: eknori am 22.08.07 - 17:18:28
Hier ein QuickHack:

Fuege folgenden Code in die Lib LS.Ticket hinter der letzten Funktion ein.

Code
Public Function CreateFromMailOther ( strView As String ) As Boolean
		
		CreateFromMailOther = False
		
		Dim uiws As New NotesUIWorkspace 
		Dim s As New NotesSession 
		Dim dbThis As NotesDatabase 
		Dim item As NotesItem
		Dim rtitem As NotesRichTextItem 		
		Dim dbMail As NotesDatabase 
		Dim docMail As NotesDocument 
		Dim docTicket As NotesDocument
		Dim collMail As NotesDocumentCollection 
		Dim namesfield As Variant
		
		Set dbThis = s.CurrentDatabase 
		Set dbMail = Nothing 
		
		Set dbMail = New NotesDatabase("[b]DeinServer[/b]","[b]DieDatenbank[/b]") 
		'Call dbMail.OpenMail 
		If Not dbMail.IsOpen Then Error 1001, "Could not open user's mailfile" 
		
		Set collMail = uiws.PickListCollection ( PICKLIST_CUSTOM, False, dbMail.Server, dbMail.FilePath, _ 
		strView, "Transform Mail To Ticket", "Please select an e-Mail: ") 
		If collMail.Count = 0 Then Exit Function  'No document selected 
		Set docMail = collMail.GetFirstDocument    
		Set docTicket = Me.Create
		
		Set item = docTicket.ReplaceItemValue ( "TransformMail", "1" )
		Set item = docTicket.ReplaceItemValue ( "EnteredBy", "0" )
		Set item = docMail.GetFirstItem( "Subject" )
		Set item = docTicket.ReplaceItemValue ( "Problem", item.text )
		Set item = docMail.GetFirstItem( "From" ) 
		Set item = docTicket.ReplaceItemValue ( "user", item.text )
		
		' build the reader and the authors field if necessary
		If Ucase(Me.GetConfiguration("LockDocumentsgeneral"))="YES" Then
		' create the readers field
			namesfield = CreateNamesField(docTicket,"LockDocumentsTicketReaders")
			If Isarray( namesfield) = True Then
				Set item = docTicket.ReplaceItemValue("AReaders",namesfield)
				item.IsReaders = True
			End If
		' create the authors field
			namesfield = CreateNamesField(docTicket,"LockDocumentsTicketAuthors")
			If Isarray( namesfield) = True Then
				Set item = docTicket.ReplaceItemValue("AAuthors",namesfield)
				item.IsAuthors = True
			End If
		End If		
		
		Dim AppendMailAsReponse As Boolean 
		AppendMailAsReponse = False
		If Me.GetConfiguration ( "CREATE_FROM_MAIL_APPEND" ) = "YES" Then
			' CREATE_FROM_MAIL_APPEND ( DEFAULT = NO )
			AppendMailAsReponse = True
		End If
		
		If docMail.HasItem ( "Body" ) And Not AppendMailAsReponse  Then
			Set rtItem = New NotesRichTextItem (docTicket, "Body" )
			Call rtItem.AppendRTItem (docMail.GetFirstItem( "Body" )) ' Get Mail Body
			Call docTicket.Save (True, True ) 
		Else
			Call docTicket.Save (True, True ) 
			Dim newmaildocUNID As String
			newmaildocUNID = MoveToOtherDocument( dbthis, docMail, docTicket.UniversalID ) 
		End If
		
		
		
		CreateFromMailOther = True
	End Function


Set dbMail = New NotesDatabase("DeinServer","DieDatenbank")

an den fett markierten Stellen must du entspechende Werte eintragen.

Dan aenderst du den Aufruf in der ShearedAction "TransformMail" in

Code
Sub Click(Source As Button)
	Dim ok As Boolean
	Dim t As New Ticket ' Create BE Ticket Object
	ok = t.CreateFromMailOther ( "($inbox)" )
End Sub

Fertig ...
Titel: Re: Übernahme von Mails aus anderen als der eigenen Mailbox
Beitrag von: pur_berger am 22.08.07 - 19:10:43
Jo - Du bist mein Hero ;) - ich geh' heut in den Stephansdom und spende Dir ein Kerzerl - hat auf anhieb geklappt!

Danke Danke Danke!