BCM – Projektaufgabe mittels PHP erstellen

  • #1
R

robin24

Neues Mitglied
Themenersteller
Dabei seit
29.07.2010
Beiträge
1
Reaktionspunkte
0
Hallo, ich hoffe ihr könnt mir bei meinem Problem evtl. weiterhelfen.
Sollte es das falsche Forum sein, bitte verschieben, danke.

Mein Ziel ist es im Grunde, über ein Webbrowser mittels HTML/PHP im Business Contact Manager von Outlook ein Geschäftsprojekt und eine Projektaufgabe zu erstellen.
Dies funktioniert an sich sogar schon, bis auf die Tatsache, dass die Projektaufgabe in 90% der fällen erst dann zu sehen ist, wenn Outlook neu gestartet wird.
Also es läuft so ab: Über den Webbrowser füllt man ein Formular aus, mit dem Namen des Geschäftsprojekts, Name der Projektaufgabe, Betreff, Kommentar, etc. Der Rest wie z.B. Startdatum, Priorität, etc. wird automatisch mitgefügt. (Genaueres siehe Quellcode).
Das Formular besteht aus 4 Seiten.
Auf Seite 1 werden die Formulardaten fürs Geschäftsprojekt (Infos über den Kunden) eingegeben.
Auf Seite 2 werden diese ausgewertet, der Kunde angelegt und neue Formulardaten werden eingegeben, für das Geschäftsprojekt.
Auf Seite 3 werden die Formulardaten für das Projekt ausgewertet und das Projekt wird erstellt. Danach wieder ein Formular zum Ausfüllen für die Projektaufgabe.
Auf Seite 4 werden diese ausgewertet und die Projektaufgabe angelegt.
Begibt man sich nach Seite 4 nun in den BCM, erscheint das Projekt meist erst gar nicht, oder wenn es (hin und wieder) erscheint, dann ist der Betreff sowie Kommentar (also das Wichtigste) leer. Nach dem Neustart hat er dann alles wunderbar übernommen.
Das ist so das größte Problem, wo ich nicht weiter komme, hoffe ihr könnt mir da ein Paar infos zu geben.

Zweites Problem: Meine Projektaufgaben sind nach Fälligkeitsdatum gruppiert. Allerdings erstellt er für über PHP erstellte Aufgaben eine neue Gruppierung mit aber demselben Datum.
Beispiel: Ich erstelle eine Aufgabe über BCM direkt, dann gruppiert er das zum 29.07.2010. Mache ich am selben Tag dann eine Aufgabe mit dem PHP Programm, wird dieses neu Gruppiert, sodass ich am Ende 2x eine Gruppierung für den 29.07.2010 habe, anstatt dass er s zur vorhandenen hinzufügt.

Würde mich über jegliche Gedankengänge freuen!
Code:
<-- SEITE 1 -->

$con = odbc_connect('DRIVER={SQL Server};SERVER=SERVER\MSSMLBIZ;Database=ss24','','');

//Wenn die Verbindung erfolgreich aufgebaut wurde, dann...
if($con) {
    $new_user=odbc_exec($con, USE [ss24]
                              DECLARE    @return_value int
                EXEC    @return_value = [dbo].[AddContact]
                    @p_EntryGUID = NULL,
                    @p_ParentEntryGUID = NULL
                SELECT   ->Return Value' = @return_value);


<-- Hier befindet sich Formular 1: Informationen über Kunde werden eingegeben -->

Code:
<-- SEITE 2 -->

<-- Hier findet die Auswertung des Formulars (Seite1) statt, um Kunde anzulegen -->


$con = odbc_connect('DRIVER={SQL Server};SERVER=SERVER\MSSMLBIZ;Database=ss24','','');

if($con) {
    //Die zuletzt hinzugefügte ID wird ausgewählt
    $catch_id=odbc_exec($con, SELECT MAX(ContactServiceID) FROM ContactMainTable);

    //ID wird ausgelesen und dann werden in jede Tabelle die nötigen Daten mit einem Update Befehl geschrieben
    while($result = odbc_fetch_array($catch_id)) {
        $id = odbc_result($catch_id,->');
        $name_table = odbc_exec($con, UPDATE ContactDetailsTable SET FirstName='.$vorname.', LastName='.$name.', Prefix='.$anrede.',HomeAddressStreet='.$adresse.', HomeAddressCity='.$ort.', HomeAddressCountry='Deutschland', HomeAddressZip='.$plz.', WorkAddressCity='.$ort.', WorkAddressCountry='Deutschland', WorkAddressZip='.$plz.', WorkAddressStreet='.$adresse.', AssignedTo='SS24\Parvahan' WHERE (ContactServiceID='.$id.'));
        $main_table = odbc_exec($con, UPDATE ContactMainTable SET CompanyName='.$firma.', MessageFlags=1, FullName='.$fullname.', FileAs='.$file_as.', Subject='.$fullname.', WorkPhoneNum='.$telefon_geschaeft.', HomePhoneNum='.$telefon_privat.', MobilePhoneNum='.$mobil.', BusinessFaxNum='.$fax.', IrisSubType='0' WHERE (ContactServiceID='.$id.'));
    }

    //Die generierte ID wird ausgewählt
    $catch_id2=odbc_exec($con, SELECT FileAs FROM ContactMainTable WHERE ContactServiceID='.$id.');

    //Dieser Schritt wird für das Geschäftsprojekt benötigt
    while($result2 = odbc_fetch_array($catch_id2)) {
        $nn = odbc_result($catch_id2,->FileAs');
    }

    //Die EntryGUID wird vom benötigen Datensatz bezogen
    $catch_id3=odbc_exec($con, SELECT EntryGUID FROM ContactMainTable WHERE (ContactServiceID='.$id.'));

    //EntryGUID wird gefiltert, um dann ein Geschäftsprojekt zu erstellen
    while($result3 = odbc_fetch_array($catch_id3)) {
        $id3 = odbc_result($catch_id3,->EntryGUID');

        $new_project=odbc_exec($con, USE [ss24]
                                     DECLARE    @return_value int
                   EXEC    @return_value = [dbo].[AddProject]
                       @p_EntryGUID = NULL,
                       @p_ParentEntryGUID =->.$id3.'
                   SELECT   ->Return Value' = @return_value);
    }


<-- Hier befindet sich Formular 2: Eingabe der Daten für das Geschäftsprojekt -->

Code:
<-- SEITE 3 -->

<-- Hier befindet sich die Aufwertung des Formulars (Seite2) um mit den Daten das Geschäftsprojekt anzulegen -->


$con = odbc_connect('DRIVER={SQL Server};SERVER=SERVER\MSSMLBIZ;Database=ss24','','');

if($con) {
    //Letzte hinzugefügte ID auslesen
    $catch_id=odbc_exec($con, SELECT MAX(ContactServiceID) FROM ContactMainTable);

    //Mit Hilfe der ID die Geschäftsprojektfelder in der Datenbank schreiben
    while($result = odbc_fetch_array($catch_id)) {
        $id = odbc_result($catch_id,->');
        $project_main_table = odbc_exec($con, UPDATE ContactMainTable SET ParentContactServiceID='.$id_name.', Subject='.$subject_name.', ParentType='1', MessageFlags='1', IconIndex='-1', SideEffects='81' WHERE (ContactServiceID='.$id.'));
        $project_table = odbc_exec($con, UPDATE ContactDetailsTable SET ProjectStatus='nicht gestartet' WHERE (ContactServiceID='.$id.'));
    }

    $catch_id2=odbc_exec($con, SELECT EntryGUID, ParentEntryID FROM ContactMainTable WHERE (ContactServiceID='.$id.'));

    while($result2 = odbc_fetch_array($catch_id2)) {
        $kunden_id = odbc_result($catch_id2,->EntryGUID');
        $projekt_id = odbc_result($catch_id2,->ParentEntryID');

        $project_task=odbc_exec($con, USE [ss24]
                                         DECLARE    @return_value int
                                         EXEC    @return_value = [dbo].[AddActivity]
                                         @p_EntryGUID =->.$projekt_id.',
                                         @pActivityType = 23,
                                         @p_ParentGUID =->.$kunden_id.',
                                         @p_ActivityGUID = NULL
                                         SELECT   ->Return Value' = @return_value);
    }

<-- Eingabeformular für die Projektaufgabe -->


Code:
<-- SEITE 4 -->

<-- Hier befindet sich die Auswertung des Formulars (Seite3) um mit den Daten die Projektaufgabe zu erstellen -->


$con = odbc_connect('DRIVER={SQL Server};SERVER=SERVER\MSSMLBIZ;Database=ss24','','');

if($con) {
    //Kundendaten aus txt holen
    $datei = ../txt/new_user2.txt; // Name der Datei
    $array = file($datei); // Datei in ein Array einlesen

    //Letzte hinzugefügte ID auslesen
    $catch_id=odbc_exec($con, SELECT MAX(ActivityID) FROM ActivitiesTable);

    //Mit Hilfe der ID die Geschäftsprojektfelder in der Datenbank schreiben
    while($result = odbc_fetch_array($catch_id)) {
        $id = odbc_result($catch_id,->');
        $task_activ = odbc_exec($con, UPDATE ActivitiesTable SET ActivityStatus='nicht gestartet', ActivityStartTime='.$datum.'->.00:00:00.', ActivityEndTime='.$datum.'->.00:00:00.', ActivityPriority='SOFORT', IconIndex='-1', MessageFlags='1' WHERE (ActivityID='.$id.'));
        $fehlerbeschreibung = odbc_exec($con, UPDATE ActivitiesTable SET ActivityNote='.$error.' WHERE(ActivityID='.$id.'));
        $betreff = odbc_exec($con, UPDATE ActivitiesTable SET Subject='.$topic.' WHERE(ActivityID='.$id.'));
        $task_project = odbc_exec($con, UPDATE ProjectTaskTable SET GmtDueDate='.$datum.'->.23:00:00.', GmtStartDate='.$datum.'->.23:00:00.', Complete='False', TaskStatus='0', PercentComplete='0', TotalWork='0', ActualWork='0', CommonStart='.$datum.'->.23:00:00.', AssignedTo='SS24\Parvahan' WHERE (ActivityID='.$id.'));
    }
 
Thema:

BCM – Projektaufgabe mittels PHP erstellen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben