Autor Thema: Einladungsprozess Outlook  (Gelesen 14386 mal)

Offline L0ren2

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Einladungsprozess Outlook
« am: 29.02.16 - 15:50:20 »
Hallo, ich bin neu hier und habe so gut wie keine Ahnung von LN :D

Habe folgendes Problem. Möchte die Zeit und das Datum über eine Maske einlesen und dann automatisch
eine Mail an die Person schicken. Ich hoffe ihr wisst was ich meine.
Nun liegt in Zeile 23 bzw. 24 mein Fehler. kann ich da gar keine Variablen reinschreiben oder hab ich da was falsch gemacht mit den |

Wenn dieses Thema schonmal besprochen wurde gerne melden :)

Ich hab hier mal meinen Code:




Private const VCALENDAR = |BEGIN:VCALENDAR
X-LOTUS-CHARSET:UTF-8
VERSION:2.0
PRODID:-//Lotus Development Corporation//NONSGML Notes 7.0//EN
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:W. Europe
BEGIN:STANDARD
DTSTART:19501029T020000
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;BYMINUTE=0;BYHOUR=2;BYDAY=-1SU;BYMONTH=10
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19500326T020000
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
RRULE:FREQ=YEARLY;BYMINUTE=0;BYHOUR=2;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID="W. Europe": | & Startgesamt |
DTEND;TZID="W. Europe":| & Endgesamt |
TRANSP:OPAQUE
DTSTAMP:20111207T192505Z
SEQUENCE:0
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED
;CN="Lorenz Faber/DE/GEBERIT";RSVP=FALSE
:mailto:mail@domain.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE
:mailto:mail@domain.com
CLASS:PUBLIC
SUMMARY:Testerminh
ORGANIZER;CN="Lorenz Faber/DE/GEBERIT":mailto:lorenz.faber@geberit.com
UID:0DDCB88622E1298CC125795F006A9DA1-Lotus_Notes_Generated
X-LOTUS-BROADCAST:FALSE
X-LOTUS-UPDATE-SEQ:1
X-LOTUS-UPDATE-WISL:$S:1;$L:1;$B:1;$R:1;$E:1;$W:1;$O:1;$M:1
X-LOTUS-NOTESVERSION:2
X-LOTUS-NOTICETYPE:I
X-LOTUS-APPTTYPE:3
X-LOTUS-CHILD_UID:0DDCB88622E1298CC125795F006A9DA1
END:VEVENT
END:VCALENDAR
|
'/**
' * Diese Klasse dient zum Erstellen von Multipart-Related Mime-Items
' * @author: Roland Praml/01/int/FOCONIS
' */
Public Class MultipartRelatedMime
Private doc As NotesDocument
Private itemName As String
Private session As NotesSession
Private oldCvtMime As Integer
Private rootMime As NotesMIMEEntity
Private contentMime As NotesMIMEEntity
Private rootheader As NotesMIMEHeader
'/**
' * Erzeuge ein neues Objekt dieser Klasse. Im Anschluss können mittels
' * "attach" beliebig viele Attachments angelegt werden. Will man diese
' * im HTML anzeigen, so muss man sich den Rückgabewert von Attach merken
' * und als srv-URL im IMG-Tag verwenden (siehe Beispiel)
' * @param doc das Dokument, auf dem das MIME-Processing statt findet
' * @param itemName das MIME-Item (Normalerweise Body)
' * @return ein Objekt vom Typ MultipartRelatedMime
' */
Public Sub New(doc As NotesDocument, itemName As String)
Set me.doc = doc
Me.itemName = itemName
If doc.Hasitem(Itemname) Then ' Sicherheitsprüfung
Error 1000, "The Item " + itemName +" already exists."
End If
Set session = New NotesSession
oldCvtMime = session.convertMime ' alte Einstellung merken
session.convertMime = False ' Konvertierung abschalten
' -- Anlegegen des Root-Mimes
Dim stream As NotesStream
Set rootMime = doc.CreateMIMEEntity(itemName)
Set stream = session.CreateStream()
Call stream.WriteText("This is a multipart message in MIME format.")
Call rootMime.SetContentFromText(stream, "multipart/alternative", ENC_NONE )
' anlegen des root headers
Set rootheader = rootMime.CreateHeader("content-class")
Call rootheader.SetHeaderVal("urn:content-classes:calendarmessage")
' !! Es wird auch gleich ein Dummy-content angelegt, denn wenn man
' !! das Dokument jetzt speichert, dann wird es korrupt
Set contentMime = rootMime.Createchildentity()
Call stream.truncate()
Call stream.WriteText("empty")
Call contentMime.SetContentFromText(stream, "text/plain", ENC_NONE )
Call stream.Close()
End Sub
'/**
' * Destruktor, erledigt noch ein paar Aufräumarbeiten.
' * !! Achtung, danach ist die MIME-Konvertierung wieder aktiviert. !!
' */
Public Sub Delete
Call closeMime() ' sicherheitshalber nochmals close aufrufen
session.Convertmime = oldCvtMime '
End Sub
'/**
' * Diese Methode beendet die MIME-Verarbeitung, erst danach darf wieder
' * auf das Dokument zugegriffen werden.
' */
Public Function closeMime()
If Not doc Is Nothing Then
Set rootMime = Nothing
Set contentMime = Nothing
Call doc.Closemimeentities(True, itemName)
Set doc = Nothing
End If
End Function
'/**
' * "attach" hängt eine Datei an das MIME an. Die FileData werden idR.
' * binär oder base64-codiert übergeben. Gibt man einen Filenamen an,
' * so erscheint die Datei als Attachment, andernfalls erscheint bei
' * Bildern, welche im HTML referenziert werden, kein zusätzliches
' * Attachmentsymbol/"Büroklammer"
' * @param fileData Die Filedaten
' * @param encoding Das Enoding, z.B. ENC_BASE64
' * @param filename Der Dateiname, kann auch leer sein, s.o.
' * @param contentType z.B.: gif/jpeg
' * @return content-identifier
' */
Public Function attach(fileData As NotesStream, encoding As Integer, _
filename As String, ByVal contentType As String) As String
' -- es wird ein neues Kind angelegt
Dim mimePart As NotesMIMEEntity
Set mimePart = rootMime.CreateChildEntity()
If contentType = "" Then
contentType = "application/octet-stream" ' Default
End If
If filename <> "" Then
' Wichtig: Dateinamen sollten nicht doppelt vorkommene und
' dürfen keine Sonderzeichen enthalten. Dies wird hier aber
' nicht geprüft. Dateiname ggf. nach RFC2047 codieren.
Call mimePart.CreateHeader("Content-Disposition"). _
SetheaderValAndParams({attachment; filename="} +filename + {"})
End If
' -- eine zufällige Content-ID erzeugen
Dim cid As String
Dim randomGenerator As New NotesDocument(doc.Parentdatabase)
cid = randomGenerator.Universalid+"@mydomain"
Call mimePart.CreateHeader("Content-ID")._
SetheaderValAndParams("<" + cid + ">")
' -- und die Daten schreiben
Call mimePart.SetContentFromText(fileData, contentType, encoding)
attach = "cid:" + cid
End Function
End Class
'/**
' * Diese Prozedur erstellt ein neues Dokument, erzeugt mit obiger Klasse ein MIME-Item und versendet das Dokument dann
' */
Sub Initialize
Dim session As New NotesSession
Dim stream As NotesStream
Dim doc As New NotesDocument(session.Currentdatabase)
Dim cid As String
Dim Startdatum, Enddatum As String
Dim Startgesamt, Endgesamt As String
Dim Jahr, Monat, Tag As String
Dim Startzeit As String
Dim Endzeit As String
Startdatum = (doc.VDatum(0))'Datum & Zeit auslesen
Enddatum = (doc.VDatum(0))
Startzeit = ("T" & doc.VZeit1(0))
Endzeit= ("T" & doc.VZeit2(0))
Startdatum = CStr(Replace(Enddatum,".",""))'Punkte und Kommas entfernen
Enddatum = CStr(Replace(Enddatum,".",""))
Startzeit = CStr(Replace(Startzeit,":",""))
Endzeit= CStr(Replace(Endzeit,":",""))
Jahr = Right(Startdatum,4)'Datum in richtiges Format bringen
Startdatum = CStr (Replace(Startdatum,"2015",""))
Startdatum = CStr (Replace(Startdatum,"2016",""))
Monat = Right(Startdatum,2)
Tag = Left(Startdatum,2)
Startdatum = (Jahr)+(Monat)+(Tag)
Enddatum = Startdatum
Startgesamt = (Enddatum )& (Startzeit)
Endgesamt = (Enddatum) & (Endzeit)
doc.Subject = "Dies ist ein Termin"
Dim mime As New MultipartRelatedMime(doc, "Body") ' Klasse anlegen
Set stream = session.createStream
Call stream.Writetext(VCALENDAR)
cid = mime.attach(stream, ENC_NONE, "", |text/calendar; method=REQUEST; name="subject.ics"|) ' Kalender anhängen und CID merken
Call stream.close()
Call mime.closeMime()
Call doc.send(False,"mail@domain.com") ' Mail senden
End Sub


ich hoffe auf schnelle Antwort

l0ren2  ;)
« Letzte Änderung: 29.03.16 - 09:31:36 von L0ren2 »

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Einladungsporzess Outlook
« Antwort #1 am: 29.02.16 - 16:34:59 »
Hallo,

Wenn im Dominoforum mal genausoviel stehen wuerde wie hier.


Andreas

Offline L0ren2

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Re: Einladungsporzess Outlook
« Antwort #2 am: 29.02.16 - 17:11:29 »
Hallo :D

Ja das istmir erst später aufgefallen, jedoch kann ich im Domino forum den Eintrag nicht mehr bearbeiten. Geht das nur eine gewisse Zeit? :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Einladungsporzess Outlook
« Antwort #3 am: 29.02.16 - 19:26:52 »
Geht das nur eine gewisse Zeit? :)

Das interessiert uns eher weniger. Und solange wir *hier* nicht erfahren, was Du ggf. schon im Dominoforum erfahren oder selbst an weiteren Infos gegeben hast, wird hier auch kaum jemand irgendwelche Initiativen für Dich ergreifen.

Bernhard

Offline L0ren2

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #4 am: 29.02.16 - 19:40:23 »
Hallo koehlerbv,
tut mir leid, dann bleibe ich jetzt mal sachlich.

also ich will eben eine Kalendereinladung an eine vordefinierte Mailadresse schicken von Lotus Notes an Outlook und LN.
 Nun habe ich eben dieses Zeitproblem. Ich will über eine Maske zeit (Von bis) und das Datum eintragen. Soviel zu meinem Problem.
Und ja ich bin ein Anfänger und kenne mich halt noch nicht so gut aus

Lorenz

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #5 am: 01.03.16 - 08:04:59 »
Mal abgesehen davon, dass Du den Wink auf die Forumsregeln über Crosspostings nicht verstanden hast, versuchst Du in eine Konstante Variablen einzufügen, und das geht nicht, weil es ja eine Konstante ist.

Private const VCALENDAR = |BEGIN:VCALENDAR ...

Probier mal

Privat VCALENDAR As String
VCALENDAR = |BEGIN:VCALENDAR .... 


Offline L0ren2

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #6 am: 01.03.16 - 08:13:04 »
Hi,

Dankeschön dann versuche ich das mal :) und ja tut mir leid

Lorenz

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #7 am: 01.03.16 - 08:14:50 »
Hallo

@Peter
Das mit der Konstanten funktioniert schon.

Alles was innerhalb der beiden || steht, wird als Wert der Konstanten zugewiesen.

Was ich allerdings nicht verstehe ist die Tatsache, dass er unbedingt fuer seine einfache Anforderung
das Rad neu erfinden will.

Wie es taurec im Dominoforum auch geschrieben hat.

Kalendereintrag erstellen, Daten eingeben, Empfaenger eintragen und dann versenden.

Alles andere uebernimmt doch dann der Domino fuer ihn.


Andreas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #8 am: 01.03.16 - 08:27:35 »
@Peter
Das mit der Konstanten funktioniert schon.

Alles was innerhalb der beiden || steht, wird als Wert der Konstanten zugewiesen.
...
Hast Du das auch schon mal wirklich probiert, oder glaubst Du das nur?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #9 am: 01.03.16 - 08:33:12 »
Noch ein Fehler

DTSTART;TZID="W. Europe": | & Startgesamt |
DTEND;TZID="W. Europe":| & Endgesamt |

Korrekt

DTSTART;TZID="W. Europe": | & Startgesamt & |
DTEND;TZID="W. Europe":| & Endgesamt & |


Offline L0ren2

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #10 am: 01.03.16 - 08:36:08 »
Hi

Peter so habe ich dass auch erst egmacht aht aber bei mir nichts gebracht. Kam die gleiche Meldung aber danke :)

Lorenz

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #11 am: 01.03.16 - 08:36:13 »
@Peter,

Ok.

Ich hatte nur einen Teil des Codes mal so schnell kopiert.
So lange es ohne die weiteren |- und &-Zeichen laeuft, gibt es keine Probleme.

Also
Code
Private Const VCALENDAR = |Begin:
....
End
|


Andreas


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #12 am: 01.03.16 - 08:41:19 »
Hi

Peter so habe ich dass auch erst egmacht aht aber bei mir nichts gebracht. Kam die gleiche Meldung aber danke :)

Lorenz
Klar, war ja da wohl auch noch eine Konstante. Nimm eine Variable, wie beschrieben, und schreibe dann eine korrekte Syntax zur Einbindung der beiden Zeitvariablen

Offline L0ren2

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #13 am: 01.03.16 - 08:43:06 »
Hi,

also kann ich das mit den '||' und '&' machen? Dass das dann als Wert angesehen wird?

Lorenz

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #14 am: 01.03.16 - 08:49:29 »
Also

So etwas
Code
Private Const TEST = |Dies ist ein Test & Startdatum & es geht trotzdem & noch|
schon.

Aber nicht
Code
Private Const TEST = |Dies ist ein Test | & Startdatum & | es geht trotzdem noch|


Andreas

Offline L0ren2

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #15 am: 01.03.16 - 09:04:15 »
Hi,

aber wenn ich dass one || mache dann wird dass doch gar nicht als Wert anerkannt? also so sieht es halt aus weil sich die farbe nict ändert

Lorenz

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #16 am: 01.03.16 - 09:58:36 »
Lies meine Antwort #5, da habe ich geschrieben, wie Du es machen musst, dann kannst Du auch die Variablen mit | & variable & | einfügen

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #17 am: 01.03.16 - 10:04:26 »
Hallo,

Um das Ganze nochmals zusammenzufassen.

Du willst eine Einladung an Notes-Benutzer und Outlook-Benutzer versenden.

1. Wo soll der Code denn implementiert werden?

In einer Mailbox und du willst dann nur noch ein ein "Knoefchen" druecken, die Maske geht auf, die definierte Adresse steht bereits drin und dann willst du blos noch Startdatum, Startzeit, Endedatum und Endezeit eintragen, um dann auf ein weiteres "Knoepfchen zu druecken, damit das ganze dann auch versendet wird.

2. Sollen die "Empfaenger" dieser Einladung dann auch noch etwas machen koennen, wie z.B. die Einladung annehmen, ablehnen, ...?


Andreas

Driri

  • Gast
Re: Einladungsprozess Outlook
« Antwort #18 am: 01.03.16 - 12:28:31 »
Korrigiert mich bitte, wenn ich falsch liege. Ich meine doch, daß wenn man aus Notes heraus eine Besprechungseinladung versendet und diese an einen externen Empfänger geht, daß Domino dann daraus automatisch eine iCal generiert. Empfänger mit z.B. Exchange können solche Einladungen meiner Erfahrung nach zumindest verarbeiten.

Ich verstehe nicht, was mit dem ganzen geposteten Code erreicht werden soll.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Einladungsprozess Outlook
« Antwort #19 am: 01.03.16 - 12:34:34 »
@Driri,

Das ist ja auch meine Rede.

Warum das Rad nochmals neu erfinden, wenn ich doch schon alles mit den "normalen" Bordmitteln erreichen kann.


Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz