Laden...

Aufwandsschätzung für und Vorgehensweise bei Projekt mit Outlook/SMS Zugriff

Erstellt von hur vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.459 Views
H
hur Themenstarter:in
8 Beiträge seit 2011
vor 13 Jahren
Aufwandsschätzung für und Vorgehensweise bei Projekt mit Outlook/SMS Zugriff

Liebes Forum, liebe Programmierer

Ein Freund von mir bat mich ihm bei einem kleinen Problem für seine Handelswarenfirma zu helfen. Und zwar will er über Outlook (Exchange Server) Aufträge als Termine eintragen und 2 Stunden bevor der Termin eintreten würde, sollte eine SMS an die beteiligte Person beim Termin gesendet werden.

Sprich:
C# Programm liest Outlook Termine aus.
C# Programm vergleicht den Zeitwert. Wenn Zeitwert ≤ 2H vor Terminbeginn
C# Programm liest die SMS Nummer des Kontaktes im Termin aus.
C# Programm verbindet sich mit einem SMS Gateway und schickt so eine SMS ab

Fragen:
Wie schwer zu realisieren ist folgendes Projekt?
Was für einen Arbeitsaufwand schätzt Ihr für das Projekt?
Habt Ihr Erfahrungen mit C# und einem SMS Gateway?
Wie komplex wird der Outlook-Teil werden?
Was muss ich beachten?

Danke für alle Infos bezüglich diesem Thema 😃

Schöne Grüße und ein schönes Wochenende!!

1.029 Beiträge seit 2010
vor 13 Jahren

Hallo,

bei den SMS kann ich leider nicht weiterhelfen.

Aber bist du dir sicher, dass Outlook der geeignete Zugriffspunkt auf Termine ist ?

Exchange Web Services (EWS), wozu es auch eine managed API gibt wäre jedenfalls bei
sowas der Kandidat meiner Wahl...

Pc muss nich an sein, Outlook muss nich gestartet sein...

Nur als Anregung 😉

Gruß
Achim

H
hur Themenstarter:in
8 Beiträge seit 2011
vor 13 Jahren

Hallo,

Du meinst also direkt auf den Exchange Server zugreifen und die Termine dort auslesen?

M
402 Beiträge seit 2005
vor 13 Jahren

Hi,

das mit dem SMS-Versand sollte aus meiner Sicht kein Problem sein.
Wir setzen sowas auch ein.

Es gibt dafür eigene Firmen die komplette SMS-Solutions anbieten,
aber auch Webhoster haben teilweise kleine SMS-Pakete im Angebot.
Der Funktionsumfang reicht hierbei von einfachem SMS-Versand bis
zu komplexen Lösungen mit Mehrwert-Diensten,...

Mit denen arbeiten wir z.b. zusammen: http://www.mms.ag/
Setzen aber derzeit nur den einfachen SMS-Versand ein.

Funktionieren tut das ganze so dass einfach ein HTTP-GET-Request
an das SMS-Service der Firma abgesetzt wird. Für komplexere
Aufgaben werden XML-Files ausgetauscht... (HTTP-POST afaik)

lg

H
hur Themenstarter:in
8 Beiträge seit 2011
vor 13 Jahren

Da's bei meinem Freund nur ne einfache SMS sein muss, reicht ja ein SMS Gateway für ein paar Euro + entsprechende AT Befehle oder?

1.029 Beiträge seit 2010
vor 13 Jahren

Zum Thema Exchange:

Direktzugriff: auf jeden Fall (soweit möglich / Exchange ab 2007)
Ist Outlook zwecks Daten meist vorzuziehen 😉

Und man mag's nicht glauben - aber es ist SEHR einfach 😉

Gruß
Achim

H
hur Themenstarter:in
8 Beiträge seit 2011
vor 13 Jahren

Hallo,

sry für die späte Antwort.
Handelt sich um einen Exchange 2003 Server.
Gehts nun auch mit nem Direktzugriff?

1.029 Beiträge seit 2010
vor 13 Jahren

Hi,

Exchange 2003 bietet leider keine WebServices ...

Bleibt dir somit die Wahl zwischen Outlook (falls sinnvoll möglich - eig. halt mehr zur Fernsteuerung gedacht) und Direktzugriff via Redemption (Mapi-Kapselung, was Direktzugriff ermöglichen würde).

Bei Outlook wirst du halt leider Geschwindigkeitsprobleme haben - je nach OL-Version auch noch Warnmeldungen (speziell bei Datenzugriff...)

Ich persönlich würde anfangen mich in Redemption einzuarbeiten.
--> Selbst noch keine Erfahrung damit

Viel Glück

Gruß
Achim

H
hur Themenstarter:in
8 Beiträge seit 2011
vor 13 Jahren

hm alles klar.
denkst du es wird schwer über redemption?
hab selber leider 0 erfahrung mit sowas...

Z
24 Beiträge seit 2009
vor 13 Jahren

Hoi hur

Würde dir auch Redemption ans Herz legen. Habe damit einen Absenzenservice erstellt der anhand Terminen/Serientermine aus Exchange die Umleitungen einer VOIP-Anlage steuert.

Der Zugriff über Redemption auf Exchange ist recht einfach gehalten. Stolpersteine können Serientermine sein, die man anhand eines "Pattern" und dem (Start-)Termin selber berechnen muss. Kann mir aber vorstellen, dass Serientermine in deinem Fall keine Rolle spielen.

Gruss
David

H
hur Themenstarter:in
8 Beiträge seit 2011
vor 13 Jahren

Ja Serientermine wären für mich ohne Bedeutung 😃

Hättest du mir eventuell ein paar Codebeispiele die den Zugriff von Redemption auf Exchange und einen Termin beschreiben?

Bin leider in dem Bereich absoluter Neuling 😉

Danke.

Z
24 Beiträge seit 2009
vor 13 Jahren

Hoi hur


//Session initialisieren
RDOSession oSession = RDOSession();

//Mit Exchange connecten
oSession.LogonExchangeMailboxEx(this.exUser, this.exServer, false, false, false, false);

if (oSession.ExchangeConnectionMode == rdoExchangeConnectionMode.olOnline)
{
   //Enddatum setzen
   DateTime eDate = new DateTime();
   eDate = DateTime.Today.AddDays(1).AddSeconds(-1);

   //Kalender
   RDOFolder oCalendar = oSession.GetDefaultFolder(rdoDefaultFolders.olFolderInbox);
   oCalendar.Items.Sort("Start", "false");

   //Normale Termine
   string filter = "[Start] < '" + eDate.ToString("s") + 
                   "' And [End] > '" + DateTime.Now.ToString("s") + 
                   "' And [IsRecurring] = 'False'";

   foreach (RDOAppointmentItem oAppt in oCalendar.Items.Restrict(filter))
   {  //Alle Termine von jetzt bis Mitternacht lesen
      string subject = oAppt.Subject;
      ...
      ..
      .
   }
}

//Session schliessen
 if (this.oSession.LoggedOn) { this.oSession.Logoff(); }

Marshal.ReleaseComObject(oSession);

Gruss
David

H
hur Themenstarter:in
8 Beiträge seit 2011
vor 13 Jahren

Danke 😃

Werd das mal studieren 😉

By the way:
Da ich das Teil eigentlich als Dienst auf dem Exchange Server laufen lassen will, nehme ich an, dass ich den Teil:


LogonExchangeMailboxEx(...)

mit den richtigen Authentifizierungsdaten (User, Passwort, Mailbox) abändern muss?

Schöne Grüße

Z
24 Beiträge seit 2009
vor 13 Jahren

Du muss nur folgendes angeben:


oSession.LogonExchangeMailboxEx(this.exUser, this.exServer, false, false, false, false);

this.exServer enthält den Namen des Exchange-Servers und
this.exUser den Namen des freigegebenen Kalenders.

Natürlich braucht der User unter dem der Service läuft die entsprechenden Berechtigungen (auf Exchange/Outlook) um den Kalender zu lesen.

Die Beschreibung aller Objekte, Methoden; Properties und Events findest du unter Redemption Data Objects

Gruss
David

Hinweis von herbivore vor 13 Jahren

Das geht schon sehr ins Detail. Laut Titel geht es hier aber nur um die "Aufwandsschätzung für und [die grobe] Vorgehensweise bei Projekt mit Outlook/SMS Zugriff". Detailfragen gehören in extra Threads mit spezifischem Titel. Dieser Thread hier soll nicht zum Sammel-Thread für alle anfallenden Fragen und auftretenden Probleme werden.

H
hur Themenstarter:in
8 Beiträge seit 2011
vor 13 Jahren

Alles klar!

Vielen Dank für alles 😃