Autor Thema: Probleme mit SE-Sync ... Code-"Übersetzung" bitte ;-)  (Gelesen 1455 mal)

Offline Dr.Domino

  • Senior Mitglied
  • ****
  • Beiträge: 287
  • Geschlecht: Männlich
  • LN since 1996 ...
Hallo,

kann jemand dieses kurze C Programm vielleicht in ein LotusScript Progrämmchen/
Agenten übersetzen?

Hintergrund: Sync-Problem mit einem Sony Ericsson wahrscheinlich auf Grund
defekter Kalendereinträge ... Code und Idee ist aus Notes.net.
Workflow:
  -> Meetings-Fodler druchlaufen
  -> Überprüfen auf fehlenden oder zero-sized Body
  -> Diesen dann reparieren und einen Nootzitext einfügen (FIXSync)
  -> während des Laufen Treffer anzeigen

Leider habe ich keinen C-Compiler :-(

Vielen Dank im Voraus!



#include <stdlib.h>
#include <stdio.h>
#include <lncppapi.h>

void main( int argc, char *argv[] )
{
LNNotesSession session; // create session object on stack
LNDatabase db; // Create LNDatabase object
LNViewFolder view; // Create LNViewFolder object
LNVFEntry entry; // Working entry
char *call= "None"; // Current call
int count;
int c;
int fix = 0;

if (argc == 2 && !strcmp(argv[1], "-fix"))
fix = 1;

LNSetThrowAllErrors(TRUE);

try
{
call = "Init";
session.Init();

call = "GetDatabase";
session.GetDatabase("c:\\Lotus\\Notes\\Data\\<your database here>.nsf", &db);

call = "Database Open";
db.Open();

call = "GetViewFolder";
db.GetViewFolder("Meetings", &view);

call = "View Open";
view.Open();

call = "View GetEntryCount";
count = view.GetEntryCount();

if (count != 0)
{
call = "GotoFirst";
view.GotoFirst(&entry);

for (c = 0; c < count; ++c)
{
LNDocument doc;
LNText text;

call = "Entry GetDocument";
entry.GetDocument(&doc);
call = "Document Open";
doc.Open();

call = "Document HasItem";
if (!doc.HasItem("Body") || doc.GetItemType("Body") != LNITEMTYPE_RICHTEXT)
{
LNString str;

call = "Document GetItem Subject";
doc.GetItem("Subject", &text);
call = "Text GetText";
text.GetText(&str);

printf("Found missing body item %d \"%s\"", c, (const char *)str);

if (fix)
{
LNRichText rtext;

call = "rtext SetValue";
rtext.SetValue("FIXSYNC1");
call = "CreateItem";
doc.CreateItem("Body", rtext, LNITEMFLAGS_AUTO_SUMMARY, LNITEMOPTION_DELETE_APPEND);
printf(" FIXED");
}

printf("\n");
}
else if (doc.HasItem("Body") && doc.GetItemType("Body") == LNITEMTYPE_RICHTEXT)
{
LNRichText rtext;

doc.GetItem("Body", &rtext);

if (rtext.GetValueSize() == 0)
{
LNString str;

call = "Document GetItem Subject";
doc.GetItem("Subject", &text);
call = "Text GetText";
text.GetText(&str);

printf("Found empty body item %d \"%s\"", c, (const char *)str);

if (fix)
{
rtext.SetValue("FIXSYNC2");
printf(" FIXED");
}
printf("\n");
}
}

if (fix)
{
call = "Document Save";
doc.Save();
}

call = "Document close";
doc.Close();

call = "View GotoNext";
view.GotoNext(&entry);
}
}

call = "View Close";
view.Close();

call = "Database close";
db.Close();

call = "Session term";
session.Term();
}
catch(LNSTATUS error)
{
char errorBuf[LNERROR_MESSAGE_LENGTH];
LNGetErrorMessage(error, errorBuf);
printf("Error: [%s] %s\n", call, errorBuf);
}
}
« Letzte Änderung: 30.09.05 - 15:22:34 von Dr.Domino »
VG,
Markus

IBM Domino 9.0.1, Lotus Domino 8.5.3 (QuickR), CentOS 6, Win64)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: "Übersetzung" bitte ;-)
« Antwort #1 am: 30.09.05 - 15:10:15 »
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Probleme mit SE-Sync ... Code-"Übersetzung" bitte ;-)
« Antwort #2 am: 01.10.05 - 00:57:30 »
kann jemand dieses kurze C Programm vielleicht in ein LotusScript Progrämmchen/
Agenten übersetzen?

Cool. "Dr. Domino" (Domino ist in C / C++ geschrieben !) kann kein C ...

Weiterhin: Der gepostete Code ist unvollständig.

Und ja: Das kann man mit hoher Wahrscheinlichkeit (Rest des Codes vorausgesetzt) in LS übersetzen. Frage an "Dr. Domino": Welchen Stundensatz akzeptierst Du ?

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Probleme mit SE-Sync ... Code-"Übersetzung" bitte ;-)
« Antwort #3 am: 05.10.05 - 09:31:51 »
Nimm den Code, kopier ihn in einen Agenten, und pass die Syntax überall da, wo's rot wird, an die LotusScript- Syntax an. Du musst nicht mal viel übersetzen (ausser dem Try-Catch-Block, das wird ein on error Statement).

Wenn Du das nicht selbst hinkriegst, dann stimme ich Bernhard zu: dann musst Du Dir das nötige Wissen einkaufen. Wir können hier den Denkanstoss in die richtige Richtung geben, auch teillösungen präsentieren, aber da viele von uns selbst Dienstleister sind, und von genau solchen Dingen leben, wirst Du (wahrscheinlich, es sei denn, es gibt einen guten Samariter) niemanden finden, der Dir so ne komplettlösung für lau strickt.

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz