携帯電話と PC の TODO リストの同期用に、数行のコードを書きました。
702NK/Nokia 6630 のPIM ソフト AquaCalender と、職場と自宅の Lotus Notes を同期させて使っています。GTD 信者としては、TODO には「@office」「@home」などのコンテクストを指定したい。Lotus Notes ではカテゴリとして指定できます。Aquacalender でもカテゴリ指定できます。ところが、カテゴリは同期できない。
Aquacalender で「@home」とカテゴリ指定すると、Notes の Subject の後ろに [@home] という文字列が追加されます。まあ、これでもいいんですけどね。Lotus Notes でしょぼいエージェントを作りました。
ひとつめは、「ほげほげ[@home]」という件名を見つけたら、カテゴリを @home に指定します。汎用性なし。職場に着いて、同期して、その後これを走らせます。
SELECT @All;
@For(i:=1; i<=5; i := i+1;
@Set("context"; @Select(i; "@home"; "@maybe"; "@office"; "@project"; "@errand"));
@If(@Contains(Subject; context); @SetField("Categories"; context); @true));
ふたつめは、カテゴリが @home だったら、件名に [@home] を追加するエージェント。これを走らせて、同期して、退社します。
SELECT @All;
@For(i:=1; i<=5; i := i+1;
@Set("context"; @Select(i; "@home"; "@maybe"; "@office"; "@project"; "@errand"));
@If(@Contains(Categories; context); @SetField("Subject"; @LeftBack(Subject; "[")+"["+context+"]");@True))
ただ、AquaCalender 側でカテゴリ変更したとき、Nokia PC Sync が変更があったことに気づかないらしく、Notes のデータが更新されません。先は長い。
関係ないのですが、この Lotus Notes の @関数と似たのを使ったことがあります。QMAIL (qmailに非ず)というメールソフトです。当時は変わったマクロだなあと思っていたのですが、知らないだけで、一般的な文法なのかも知れません。