Parameter für tic://

  • Moin Experten,


    ich habe in der Vergangenheit bereits mit dem tic-Befehl gearbeitet, um dem User Emails zu präsentieren, die dieser dann versenden kann. Aber ich frage mich, ob es da noch feinere Einstellungsmöglichkeiten gibt als die standardmäßigen Eigenschaften wie Empfänger, Betreff und Mailtext. Interessant wäre zum Beispiel, ein bestimmtes Template schon anzugeben.


    Ich habe leider keine Ahnung, wo ich überhaupt die Parameter des tic-Befehls nachsehen kann. Sind die Möglichkeiten mit den Parametern


    type (=email)

    to

    cc

    Bcc

    subject

    bodytext

    attachment

    ignoreTemplate


    bereits ausgereizt? Oder gibt es da noch mehr? Wo finde ich die entsprechende Dokumentation dazu?



    Beste Grüße,


    Jan

    • Offizieller Beitrag

    Hallo Jan,


    schau mal hier:



    Mittlerweile heißt der Kontextmenü Eintrag david® Objekt-Verknüpfung kopieren.


    Dann noch ein Link zur alten Tobit KnowledgeBase

    Tobit.Software


    Und ein direkter Link zu einem passenden Eintrag

    Tobit.Software


    Viele Grüße
    Jens

  • Mann mann mann,


    der Tag, an dem Teardrop nicht mehr in diesem Forum weilt, wird ein schwarzer Tag. Unfassbar, wie gut Du Dich immer auskennst.


    Danke für die Links.


    Schade, dann scheint das TIC-Protokoll doch keine weiteren Möglichkeiten mehr zu haben. Ich hatte gehofft, übergeben zu können, dass Template XY benutzt werden soll. Aber es scheint nur zu gestatten, die Standardvorlage zu verwenden.

    • Offizieller Beitrag

    Hi Jan,


    vielen Dank für die Blumen. Und keine Sorge, wenn ich mal nicht mehr hier bin, dann wirds wohl das Forum auch nicht mehr geben. ;)


    Hattest Du den Beitrag im verlinkten Thread weiter unten von der_dreh gesehen?


    Dazu gibt es in der KB auch einen Eintrag, vieleicht kommst Du damit weiter. Damit kannst Du auf jeden Fall eine Vorlage öffnen.

    Tobit.Software


    Viele Grüße
    Jens

  • Hi Jens,


    Du hast in dem Artikel selbst geschrieben, dass dies bei Dir nur die Standardvorlage öffnet, deshalb hatte ich es gar nicht in Betracht gezogen. Mein jetziger Test bestätigt dies jedoch - auch bei mir wird nur die Standardvorlage geöffnet, statt das übergebene Template.


    Schön wäre gewesen, per TIC-Befehl das zu verwendende Template mitzugeben, aber das Protokoll ist ganz schön eingeschränkt.


    Warum eigentlich: Bisher erstellen wir unsere Mails über die API. Durch den Bug der Schnittstelle, die ID des neuen Objektes nicht mitzuteilen, vergleichen wir die vor der Erstellung ermittelte letzte ID mit der aktuellen. Speichert die API die neue Mail, stellen wir die neue ID fest und öffnen diese dann über "DVWIN32.exe {Archiv} /SA34 /POS={ID}". Leider dauert das immer ein paar Sekunden, was sehr lästig ist. Daher die Idee, TIC dafür zu verwenden.

    • Offizieller Beitrag

    Hi Jan,


    hast Recht, hatte ich auch getestet und gesehen, aber irgendwie hab ichs dann wohl beim Schreiben und raussuchen des KB Links wieder vergessen... :/


    Was für ein Bug ist das denn genau?


    Hab schon länger nichts mehr mit der API gemacht, aber hab mal in meinen Codes gekramt.

    Hab leider keine Beispiel für eine E-Mail sondern nur für einen Kalendereintrag, würde mich aber wundern, wenn das bei der E-Mail nicht auch ginge. Der gezeigt Codeausschnitt ist aus unserem TSS-Work4AllConnector (Sync von Terminen und Adressen zwischen David und dem MSSQL basierten CRM/ERP System work4all) der immer noch im Einsatz ist.


    Wie Du dort sehen kannst, wird ein CalenderItem gespeichert und anschließend über die ID des neuen CalenderItem ein MessageItem2 erstellt.
    Das es sich um ein neues CalenderItem handelt ist hier nicht zu sehen, habe ich aber gerade im Code geprüft



    Viele Grüße
    Jens

  • Hallo Jens,


    der Bug ist, dass die ID immer -1 ist - vor und nach dem Speichern. Dass das ein bekannter Fehler ist, habe ich in einem anderen Artikel irgendwo hier gesehen. Ich verwende Delphi.


    Daher bleibt mir nur der umständliche Weg, an die ID zu kommen :/

    • Offizieller Beitrag

    Hi Jan,


    hab das gerade mal getestet. Beim Verwendung des MailItem ist das in der Tat so (und vermutlich allen Klassen die vom MessageItems Objekt abstammen), beim MessageItem2 jedoch nicht!


    Da wo es geht hab ich das MessageItem2 immer bevorzugt, da die Verarbeitung nach damaligen Tests ca. 10x schneller ist als mit den vom MessageItems Objekt abgeleiteten Klassen.


    Du könntest die neue Nachricht mit dem MessageItem2 erzeugen und dann, wenn nötig auf das MailItem "switchen" (neues MailItem aus der vorhandenen ID oder FileName erzeugen). Bei normalen Mails solltest Du das MailItem aber nicht benötigen, das sollte sich auch alles über die Fields abbilden lassen. Ich meine nur bei Items wie Calendar und Task muss man dann über die speziellen Klassen gehen.


    Viele Grüße
    Jens

  • Waaaaaaas bei MessageItem2 geht das?!


    Okay, ran ans Werk.


    > Wie Du dort sehen kannst, wird ein CalenderItem gespeichert und anschließend über die ID des neuen CalenderItem ein MessageItem2 erstellt.


    Das geht in meinem Fall ja nicht, denn mein MailItem hat ja immer die ID -1, also kann ich kein MessageItem2 abrufen.



    Code
    objMail := tobArchive.NewItem(DvEMailItem) as MailItem; // das geht
    
    objMessageItem := tobArchive.NewItem(DvEMailItem) as MessageItem; // das geht
    
    objMessageItem2 := tobArchive.NewItem(DVEMailItem) as MessageItem2; // das geht nicht; "Interface nicht unterstützt"
    
    objMessageItem2 := objMessageItem as MessageItem2; // das geht nicht; Interface nicht unterstützt


    Hast Du noch eine Idee?

    • Offizieller Beitrag

    >> Wie Du dort sehen kannst, wird ein CalenderItem gespeichert und anschließend über die ID des neuen CalenderItem ein MessageItem2 erstellt.

    > Das geht in meinem Fall ja nicht, denn mein MailItem hat ja immer die ID -1, also kann ich kein MessageItem2 abrufen.


    Das war ja noch vom Posting davor, allerdings hatte ich im letzten Posting auch nicht ganz korrekt formuliert bzw. nicht richtig nachgedacht. Das Problem scheint nur beim MailItem zu bestehen, nicht bei jeder vom MessageItems Objekt abgeleiteten Klasse.



    Hab es gerade in meinem API-Testprojekt noch mal mit dem CalendarItem getestet, da klappt es auch.


    Ich melde das mal an Tobit. Keine Ahnung ob es was bringt, aber kann ja nicht schaden. :)


    Bzgl. Deines Problems mit dem MessageItem2:

    Hast Du die API Doku vorliegen, die DvAPI32.chm Datei? Da gibt es ein Beispiel Create IMessageItem2 entry in the personal archive In, schau Dir das mal an. Die Datei kannst Du hier runterladen: https://david3.dev (Client API)


    Um ein MessageItem2 zu erzeugen musst Du die Methode CreateArchiveEntry verwenden, NewItem erzeugt nur MessageItem Objekte. Siehe dazu auch das Archive-Object unter Objects in der Doku.



    Viele Grüße

    Jens

  • Ich werd verrückt... es funktioniert!


    Ich wäre nie auf die Idee gekommen,

    Code
    oMessageItem2 = oArchive.CreateArchiveEntry(DvItemTypes.DvEMailItem);


    zu verwenden, statt oArchive.NewItem...


    Vielen Dank Dir, Du hast gerade eine Menge Mitarbeiter an langsamen Rechner sehr glücklich gemacht :)

    • Offizieller Beitrag

    FYI: Hab das Thema mal an Tobit gemeldet, sie schauen es sich an. Wenn ich eine Rückmeldung bekomme, gebe ich hier Bescheid.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!