Lotus Notesの価値を高めるLotus Symphony

統合オフィスソフトであるLotus Symphony をLotus Notes と連携させて利用するアプリケーション開発手法を紹介します

IBM Lotus Symphony はIBMが提供する統合オフィスソフトウェアで、ワードプロセッサ、表計算、プレゼンテーションの機能を持っています。Lotus Symphonyの Web サイトからダウンロードして無償で利用することができます。Lotus SymphonyはオープンソースコミュニティであるOpenOffice.orgのモジュールを基に開発され、Open Document Format (ODF)のような標準フォーマットに対応しているだけではなく、マイクロソフト・オフィスのファイルを読み書きできるなど、業務利用に十分な機能を持っています。また動作環境としてEclipse Rich Client Platform (RCP) を採用しているので、製品自体を柔軟に拡張することもできます。

Lotus Notesを使っていれば、その中にLotus Symphonyを組み込んで使用することもできるので、Lotus Notesの業務環境の中でスムースにオフィス文書の編集ができます。さらにLotus Notesと同じプラットフォームで動作するという特徴を生かして、LotusScript やJava、あるいはコンポジットアプリケーションの機能を利用して、Lotus NotesアプリケーションとLotus Symphonyのデータを連携することも可能です。

この記事ではLotus Notesとの連携という観点からLotus Symphonyのアーキテクチャや機能を紹介するとともに、Lotus Notesアプリケーションと連携するための様々な開発方法についてご紹介します。

小峯 宏秋, Lotus ビジネスパートナー技術支援, Lotus テクノロジー開発,ソフトウェア開発研究所, IBM

小峯 宏秋の写真小峯 宏秋は日本アイ・ビー・エム株式会社のソフトウェア開発研究所、Lotusテクノロジー開発に所属し、ユニファイドコミュニケーションやソーシャルソフトウェアを絡めたアプリケーションやソリューションの開発に取り組んでいます。 大学では理論量子力学を専攻し、外資系ミニコンメーカーとロータス株式会社を経てIBMに入社しました。



2011年 7月 15日

はじめに

Lotus Symphony はIBMが提供する統合オフィスソフトウェアで、ワードプロセッサ、表計算、プレゼンテーションの機能を持っています。Lotus Symphony の Web サイトからダウンロードして無償で利用することができます。またLotus Notesのユーザーであれば、インストール時にLotus Symphonyの機能を組み込み、Lotus Notesと密接に連携させて利用することができます。

Lotus SymphonyはIBMから無償で提供されている製品ですが、無償でありながらも統合オフィスソフトウェアとして必要となる機能を十分に含んでいます。さらに、Lotus Notesと組み合わせて使用することで、業務効率を上げるための様々な連携機能が利用できます。

なお、この記事はLotus Notes 8.5.2の機能を元に作成し動作確認をしました。


Lotus Symphony とは

Lotus Symphonyの概要

Lotus Symphonyは、ビジネスで必要とされる以下のようなオフィスソフトウェアの機能から構成されます。

  • Lotus Symphony Documents ・・・・・ ワードプロセッサ
  • Lotus Symphony Presentations ・・・・・ プレゼンテーション
  • Lotus Symphony Spreadsheets ・・・・・ 表計算

Lotus SymphonyはOpenOffice.orgをベースにしており、本記事の執筆時点でリリースされているLotus Symphony 3ではOpenOffice.org 3 のモジュールに基づいています。対応している文書のフォーマットはOpen Document Format (ODF)はもちろん、マイクロソフト社のオフィス製品のファイルの読み書きもできます。またアドビ社のPDFフォーマットでの出力も可能です。

Lotus Symphonyの実行環境にはJavaで実装されたEclipse Rich Client Platform(RCP)を採用しており、動作するオペレーティングシステムとしてはWindowsだけではなく、LinuxやMac OSもサポートしています。

このように幅広い環境で動作し、業務に必要十分な機能を備えている統合オフィスソフトウェアであるLotus Symphonyは、無償でIBM Lotusから提供されており、Lotus Symphonyの製品ページからLotus Symphony 製品のインストールキットはもちろん、オフィス文書の作成に利用できるテンプレートやクリップアート、さらにLotus Symphony 製品自体を機能拡張するための様々なプラグインがダウンロードできます。

またLotus Symphonyが採用しているEclipse Rich Client Platform (RCP) は、Lotus Notesのクライアント実行環境としても採用されています。そして、Lotus Notes製品にもLotus Symphonyが同梱されており、Lotus Notes上でLotus Symphonyを利用することもできます。

Lotus Symphonyの特徴

Lotus Symphonyはその動作環境、機能、拡張性など様々な点で優れた製品です。Lotus Symphonyの特徴をまとめると以下のようになります。

  • オープンスタンダードな技術の採用
  • オープンプラットフォームへの対応
  • オープンなプログラミングモデルの採用
  • オープンソースのソフトウェアとの協力
  • 様々な開発環境、ツール、APIによる高い拡張性
  • IBMのコラボレーション製品との連携

オープンスタンダードな技術の採用

Lotus Symphony では広く普及しつつあるOpen Document Format(ODF)を採用しています。ODFとはOASIS(構造化情報標準促進協会)で認定された、オフィスソフトウェア用のXMLをベースとしたファイルフォーマットです。ODFは、オープンソースの統合オフィスソフトウェアを提供しているOpneOffice.orgで採用されているばかりではなく、商用の統合オフィス製品を含め、様々な統合オフィスソフトウェアに採用されています。

また、Lotus Symphonyの実行環境としてはEclipse Rich Client Platform(RCP)を採用しています。Eclipseはもともと、Javaなどのアプリケーション開発に使用される統合開発環境(Integrated Development Environment: IDE)として生まれたクライアントソフトウェアです。Eclipseにはプラグインによって様々な機能を組み込む仕組みが用意されており、Java開発環境自体もEclipseのランタイムに対するプラグインとして提供されています。IBM Lotusではクライアントアプリケーションの動作環境に、この拡張性の高いEclipse ランタイムである Eclipse RCPを採用し、IBM独自の拡張を加えてLotus Expeditorという製品として提供しています。Lotus SymphonyはこのLotus Expeditor上に構築されており、Lotus Expeditorを通してEclipseの技術を利用しています。

オープンなプラットフォームへの対応

Lotus Symphonyではオープンな技術を採用するとともに、動作環境としても多様なオペレーティングシステムに対応しています。Lotus Symphony はWindows、Linux、Mac OSで動作します。

オープンソースとの協力とオープンなプログラミングモデルの採用

Lotus Symphonyの機能は、OpenOffice.orgの提供するモジュールをベースに、Eclipseによるプラグイン拡張モデルを利用してJavaのプラグインとして実装されています。Lotus Symphony.として提供している機能には、IBM Lotusが独自に実装した機能と、OpenOffice.orgやEclipse Foundation によって提供された機能が含まれています。またIBMはこれらのオープンソースに対して貢献しており、オープンソースの発展に協力しています。

様々な開発環境、ツール、APIによる高い拡張性

すでに述べたようにLotus SymphonyはEclipseプラグインモデルを採用しています。そのためEclipseの開発手法に従ってLotus Symphonyアプリケーション自体を拡張して様々な機能を追加することができます。さらにLotus Symphony自身やLotus Notesに統合されたLotus Symphonyが提供している様々なAPIを使うことで、Lotus Symphonyアプリケーションを拡張したり、新しい機能を実装したりすることができます。

Lotus Symphonyでは以下のような様々なAPIや機能拡張の仕組みが利用できます。これらは組み合わせて利用できるものもあります。

  • Lotus Expeditor による拡張(Eclipse プラグインモデルを含む)

    Lotus Symphonyは、Eclipse RCPをベースとするLotus Expeditor上に開発されています。
    EclipseプラグインモデルやLotus Expeditorの提供する拡張機能を利用することで、Lotus Symphony自身を拡張することができます。たとえばメニューやプリファレンスに機能を追加したり、サイドバーに別のアプリケーションを追加したりといったことが可能です。

  • Java API

    Lotus Symphony Java APIは単体のLotus Symphony製品でも、Lotus Notesに統合されたLotus Symphonyでも利用できます。プラグインの中でLotus Symphonyの機能を呼び出すことができ、様々な外部データとLotus Symphonyのデータを連携させたり、操作を自動化することなどができるようになります。
    本記事の後半でJava APIの利用例を紹介します。

  • Universal Network Object (UNO) API

    Universal Network Object (UNO) APIは、Lotus Symphonyが利用しているOpenOffice.orgモジュールが提供しているAPIです。これはJava APIの中から呼び出すことが可能です。UNO APIの機能はJava APIでラップされていますが、Java APIだけでは処理できないオフィス文書のデータをプログラムから直接操作したい時には、UNO APIが利用できます。

  • LotusScript API

    Lotus Notesに統合されたLotus Symphonyでは、LotusScriptによってLotus Symphonyのデータを操作することができます。LotusScriptはLotus Notesアプリケーションの開発言語として広く普及しており、Lotus Notesアプリケーション開発者が使い慣れた開発言語を利用してLotus NotesアプリケーションのデータとLotus Symphonyのデータを連携するなどといったことに利用できます。
    本記事の後半でLotusScript APIの利用例を紹介します。

  • Lotus NotesのコンポジットアプリケーションでのLotus Symphony Spreadsheetコンテナの利用

    Lotus Notesに統合されたLotus Symphonyでは、コンポジットアプリケーションのコンポーネントとしてLotus Symphonyのスプレッドシートが利用できます。コンポジットアプリケーションの仕組みはLotus Expeditorが提供するものですが、複雑なプログラミングなしに簡単にLotus NotesのビューやフォームとLotus Symphonyのスプレッドシートを画面上に組み合わせてデータ連携する仕組みとして、コンテナフレームワークと呼ばれる仕組みがLotus Notesでは提供されています。
    本記事の後半でLotus Symphony Spreadsheetコンテナの利用例を紹介します。

IBMのコラボレーション製品との連携

Lotus SymphonyはIBM Lotusの提供する様々な製品とも連携する仕組みを提供しています。

すでに述べたように、Lotus Symphonyは、Eclipse RCPをベースとするLotus Expeditorをクライアントアプリケーションのプラットフォームとして採用しており、Lotus Symphony自身もプラグインとしてLotus Expeditorをベースとしたアプリケーションで利用できるようになっています。Lotus NotesにはLotus Symphonyが統合されていますが、それは単に同じアプリケーション環境で動作するというだけではなく、LotusScriptやコンテナフレームワークでLotus NotesとLotus Symphonyの間で双方向のデータ連携が可能となっています。

Lotus QuickrはLotus Symphonyへのプラグインとして、Lotus Quickr Connector for Lotus Symphonyを提供しています。Lotus Quickr Connectorを組みこんだ、Lotus Symphonyからは、Lotus Quickr内の作業空間であるプレースに接続してライブラリに登録されている文書をそのまま開いたり、更新することができます。

またIBM Lotusの提供するSaaSでのコラボレーション環境であるLotusLiveでも、Lotus Symphonyが利用できるよう準備を進めており、本記事執筆の段階でLotusLive Symphonyとして、LotusLive Labの中で技術プレビュー版を公開しています。


Lotus Symphony のアーキテクチャ

Eclipse RCPは、Lotus Symphonyに限らず、Lotus NotesやIBM Sametime (旧 Lotus Sametime) のSametime Connectクライアントでも使用されています。こういった様々な業務アプリケーションで使用するために、IBMではEclipse Foundationの提供するEclipse RCPに対して、業務アプリケーションで必要となる様々な拡張を行い、Lotus Expeditorという製品として提供しています。そしてLotus Expeditorをベースに様々なクライアントアプリケーションを開発できるようLotus Expeditor Toolkitを用意しています。Lotus Symphonyは、このLotus ExpeditorをLotus Symphonyで必要となる機能にカスタマイズしたかたち(Lotus Symphony profiled Lotus Expeditor)で使用しています。そしてLotus Expeditor Toolkitを使用することでLotus Symphonyのカスタマイズができるようになっています。

Lotus Symphonyのオフィス文書データの処理には、Open Document Formatに対応する他の様々な統合オフィスソフトウェアで使用されているOpenOffice.orgの提供するモジュールを使用しています。このモジュールはOpenOffice.org Universal Network Object(UNO)と呼ばれる形でデータを扱い、このデータの処理をJavaやC言語から行うためのUNO APIを提供しています。Lotus SymphonyではこのUNO Java APIをラップして使用しています。

このようにLotus SymphonyはLotus ExpeditorとOpenOffice.orgをベースに、Lotus Symphonyで必要な機能を追加した独自の統合オフィスソフトウェアとして構成されています。そしてLotus Symphonyをカスタマイズするアプリケーション開発者のためにLotus Symphony Java APIを提供しています。このLotus Symphony Java APIはUser Interface Customization APIとDocument Object Model APIから構成され、内部的には先に紹介したLotus Expeditorの提供するAPIやOpenOffice.orgのUNO APIも使用しています。アプリケーション開発者は基本的にはLotus Symphony Java APIで一通りの開発はできますが、必要に応じてLotus Expeditor APIやOpenOffice.org UNO APIを使うことも可能です。

Lotus Symphonyは単体でも、Lotus Notesに統合された環境でも利用可能です。Lotus Notesのユーザーであれば、Lotus Notesのインストール時のオプションでLotus Symphonyを選択すれば、Lotus Notesのクライアント環境に統合されてLotus Symphonyがインストールされます。Lotus Notesに統合されたLotus Symphonyでは、Lotus Notesで提供されているLotusScriptやコンテナフレームワークを利用してLotus Symphonyを使用することができます。LotusScriptでは、Lotus Symphony Java APIをラップしたLotus Symphony LotusScript APIを呼び出すことで、Lotus Symphonyのデータを操作することができます。

図 1. Lotus Symphony のアーキテクチャ
Lotus Symphony のアーキテクチャ

Lotus NotesとLotus Symphonyの連携の概要

Lotus Notesとの連携の概要

Lotus Notesに統合されたLotus Symphonyを利用することの利点は、Lotus Notes/Dominoの提供するコラボレーション機能と連携して、Lotus Symphonyを利用できるということです。たとえばLotus Notesアプリケーションの中から自動的にLotus Symphonyのワードプロセッサや表計算を呼び出し、Lotus Notesアプリケーションのデータを転送して、ワードプロセッサで見積書を作成したり、表計算でデータ分析を行うことができます。このような連携機能は、従来の Lotus Notes アプリケーションで多く使用されているプログラミング言語である LotusScriptで実装することもできますし(Lotus Symphony LotusScript API)、オープンなプログラミング言語であるJavaで実装することもできます(Lotus Symphony Java API)。またLotus Notesで提供しているコンテナ機能(Lotus Symphonyコンテナ)を使うことで、プログラミングなしで連携を実現することもできます。

この後の章では、ここで挙げたLotus NotesとLotus Symphony の3つの連携の手法を、それぞれ同じような機能を実装したサンプルとともに紹介します。これらを比較することで、それぞれの連携手法の特徴や違いをご理解いただけると思います。なおここで紹介するサンプルで使用しているLotus Notesアプリケーション、Lotus Symphony のスプレッドシートファイルやプログラムの全体コードは本記事の巻末にあるリンクからダウンロード可能です。

1. Lotus Notesと統合したLotus Symphonyのインストールと利用

Lotus Notesと統合されたかたちでLotus Symphonyを利用するためには、Lotus Notesのインストール時に一緒にLotus Symphonyをインストールする必要があります。Lotus Notesのインストール時に表示される「カスタムセットアップ」ダイアログで「IBM Lotus Symphony」を選択することでLotus Symphonyがインストールされます。

また本記事で紹介するLotus SymphonyコンテナによるLotus Notesアプリケーションとの連携を行うためには、それぞれ必要な機能をインストールする必要があります。たとえば LotusSctriptによる連携を行うためには、Lotus Notes アプリケーション開発環境である「Domino Designer」を選択します。また、コンテナフレームワークによる開発を行うためには、コンポジットアプリケーションエディタ(CAE : Composite Application Editor)を選択しておく必要があります。

図 2. Lotus Notes インストールの時のオプションの選択
Lotus Notes インストールの時のオプションの選択

Lotus SymphonyのLotusScript API

LotusScript APIの概要

Lotus Notesに統合されたLotus Symphonyでは、オフィス文書内のデータやLotus Symphonyの操作を行うためのLotusScript APIが提供されています。このAPIを利用したLotusScriptの実行にはLotus Notesに組み込まれているLotusScriptの開発・実行環境を利用します。そのため、LotusScript APIはLotus Notesに統合された環境でのみ利用きる機能です。

LotusScript APIとして、Lotus Symphonyのワードプロセッサの文書、表計算のスプレッドシート、プレゼンテーションのページを操作するクラスが提供されています。これらの LotusScript APIは、Lotus Symphony Java APIをラップするかたちで提供されており、そのクラスの構造はJava APIとLotusScript APIでほとんど同じになっています。

LotusScript APIでLotus Notesのデータをスプレッドシートに連携する

Lotus NotesアプリケーションとLotus Symphonyのスプレッドシートとの連携を、LotusScript APIで実現する方法を紹介します。

この例では、ある催し物の参加者へのアンケート結果のデータを持つLotus Notesアプリケーションから、そのデータをアンケート結果集計用のスプレッドシートに連携させ、Lotus Notesでは難しいデータ処理とグラフによる表示を行います。ユーザーは「アンケート」 Lotus Notesアプリケーションを開き、Lotus Notesビューから集計したい文書を選択します。そして連携を行うアクションボタンを押すことでLotus Symphonyのスプレッドシートが自動的に開かれ、選択された文書のデータがコピーされます。スプレッドシートにはあらかじめデータ処理のためのマクロやグラフ描画の設定がされており、コピーされたデータをもとに回答数の計算やグラフの描画が行われます。

Lotus Symphonyと連携させるLotusScriptの作成方法は、通常のLotus Notesアプリケーションを開発するときのLotusScriptの書き方と同じです。ボタンやアクション、エージェントなどにLotusScriptを作成し、その中でLotus Symphony LotusScript APIを呼び出すことができます。Lotus Symphonyとともに導入されるLSX(LotusScript eXtension)であるsymphonylsx.lssがLotus Symphony LotusScript APIの機能を提供しています。

ここで紹介する例ではLotus Notesビューアクションとして実装されたLotusScript プログラムで、ビュー上で選択された文書のデータを取得し、そのデータをLotus Symphony のスプレッドシートに設定する処理を実装します。手順は以下の様になります。

  1. アンケートのデータを保持しているLotus NotesアプリケーションをLotus Domino Designerで開き、ビューに新規のアクションを追加します。
  2. 追加したアクションの実行環境として「クライアント」を選択し、プログラムに「LotusScript」を選択します。
  3. LotusScriptの編集画面で「(Declaration)」イベントを選択し、以下の宣言を追加します。これによって、LotusScriptのプログラムの中でLotus SymphonyのLotusScript APIを使うことができます。
    %INCLUDE "symphonylsx.lss"

    続いてアクションの処理を行うプログラムを実装します。以下で説明しているプログラムの全体は本記事の巻末にあるサンプルのDataAnalyzer.lssファイルに含まれています。
  4. LotusScript 編集画面で「Click」イベントを開きます。最初にビューで選択されたNotes文書のデータを取得します。これは一般的なLotusScript Notes UIクラスを使ったプログラムです。実装の詳細は省略しますが、以下のようなプログラムで文書のデータを取得し、そのデータを dataTable という2次元配列の変数に格納します。
      Dim dataTable() As String
      Dim total As Integer
      
    %REM
    ノーツビューで選択された文書からのデータの取得
    %END REM
      
      Dim ws As New NotesUIWorkspace
      Dim uiview As NotesUIView
      Dim dc As NotesDocumentCollection
      Dim doc As NotesDocument
      
      ' ビューで選択された文書を取得
      Set uiview = ws.CurrentView
      Set dc = uiview.Documents  
      total = dc.Count
      
      If (total = 0) Then
        Print("文書が選択されませんでした。")
        Exit Sub
      End If
      
      ' データを格納する配列を再宣言
      Redim dataTable(1 To total, 1 To 4) As String
      
      ' 取得された文書コレクションから各文書を処理
      Set doc = dc.GetFirstDocument
      
      Dim count As Integer
      count = 0
      
      While Not (doc Is Nothing)
        If doc.HasItem("name") Then
          count = count + 1
          
          dataTable(count, 1) = doc.GetItemValue ("name")(0)
          
          If doc.HasItem("rating_1") Then
            dataTable(count, 2) = doc.GetItemValue("rating_1")(0)
          Else
            dataTable(count, 2) = "不明"
          End If
          If doc.HasItem("rating_2") Then
            dataTable(count, 3) = doc.GetItemValue("rating_2")(0)
          Else
            dataTable(count, 3) = "不明"
          End If
          If doc.HasItem("rating_3") Then
            dataTable(count, 4) = doc.GetItemValue("rating_3")(0)
          Else
            dataTable(count, 4) = "不明"
          End If
          
        End If
        
        Set doc = dc.GetNextDocument (doc)
      Wend
  5. 表計算のスプレッドシートの処理を追加します。今回の例では既存のLotus Symphony Spreadsheetsのテンプレート(.odsファイル)を元に新規のスプレッドシートを開きます。
    %REM
    スプレッドシートを作成して、取得されたデータを設定する
    %END REM
      
      Dim application As New SymphonyApplication
      Dim spreadsheets As SymphonySpreadsheets
      Dim spreadsheet As SymphonySpreadsheet  
      Dim sheet As SymphonySheet
      Dim range As SymphonyRange
      Dim cell As SymphonyRange
      
      ' Lotus Symphony Spreadsheet を開く
      Set spreadsheets = application.Spreadsheets
      
      ' テンプレートからスプレッドシートを作成
      Set spreadsheet = spreadsheets.AddSpreadsheet("c:\analyze.ots", True, True)
  6. 開かれたスプレッドシートにデータを設定するコードは以下の様になります。

    先に作成したNotes文書から取得したデータを順番にセルに設定するために、range変数から相対位置でセルの範囲を取得するcells()メソッドで個々のセルを取得しています。

      ' データを設定するエリアを取得
      Set sheet = spreadsheet.ActiveSheet
      Set range = sheet.Range("A2:D16")
      
      ' 各セルにデータを設定
      For i = 1 To total
        ' 名前
        Set cell = range.cells(i, 1)
        cell.Text = dataTable(i, 1)
        
        ' 1番の評価
        Set cell = range.cells(i, 2)
        cell.Text = dataTable(i, 2)
        
        ' 2番の評価
        Set cell = range.cells(i, 3)
        cell.Text = dataTable(i, 3)
        
        ' 3番の評価
        Set cell = range.cells(i, 4)
        cell.Text = dataTable(i, 4)
      Next

以上でプログラムの実装は完了しました。アクションを追加したビューを保存し、Lotus Notesでビューを開いて動作の確認をします。

ビューで文書を選択して作成したアクションを実行すると、スプレッドシートが開かれて選択されたLotus Notes文書のデータが自動的に設定されます。

図 3. LotusScript APIでLotus Notesのデータをスプレッドシートに連携する
LotusScript APIでLotus Notesのデータをスプレッドシートに連携する

Lotus SymphonyのJava API

Lotus Symphony Java APIの概要

Lotus Symphonyでは、オフィス文書内のデータやLotus Symphonyの操作を行うためのJava APIを提供しています。この Java API はLotus Symphonyが提供しているAPIであり、Lotus Notesに組み込まれたLotus Symphonyでも、単体で動作するLotus Symphonyでも利用できます。Lotus Symphony Java API の実行環境はLotus NotesやLotus Symphonyのアプリケーション動作基盤であるLotus Expeditorが提供しています。またJava APIを使用したJavaアプリケーションの開発にはLotus Expeditor Toolkitを組み込んだEclipse IDEを使用します。

Java APIでは、Lotus Symphonyのワードプロセッサの文書、表計算のスプレッドシート、プレゼンテーションのページを操作するクラスが用意されており、オフィス文書の中のデータにアクセスすることができます。このあとに紹介するサンプルコードでは、Lotus Notesアプリケーションのデータと、Lotus Symphony のスプレッドシートを連携させています。そのためこのサンプルはLotus Notesに統合されたLotus Symphonyの環境でしか動作しません。しかしLotus Notesに関係する部分を取り除けば、単体のLotus Symphonyでも動作します。

Lotus Symphony Java API開発環境の構築

Java APIを使用したアプリケーション開発ではLotus Expeditor Toolkitを組み込んだEclipse IDEを使用します。Java API自体がLotus Symphonyの内部APIをラップしたAPIであり、これを使ってJavaプログラムを書くことでLotus NotesやLotus Symphony自体、あるいはさらにその下のレベルであるLotus Expeditorの機能拡張を行うことができます。そのためLotus Notesの提供する開発ツールやDomino Designerではなく、さらに下層の機能を実装できるEclipse IDEが必要になります。

なおLotus Symphony Java APIは、単体で動作するLotus Symphonyでも利用できます。単体のLotus Symphony用にJava APIを利用したアプリケーションの開発を行うには、Eclipse IDEにLotus Expeditor Toolkitを導入した後で、Lotus Symphony Toolkitも導入する必要があります。

開発環境の構築手順について本記事で詳細に紹介することはしません。Lotus Notesの中でLotus Symphony Java APIを使用するための開発環境の構築については本記事の「Lotus Notes プラグイン開発環境の構築」セクションの参考文献を参照してください。またLotus Symphony単体での開発環境の構築については「Lotus Symphonyプラグイン開発環境の構築」セクションを参照してください。

Lotus Symphony APIでLotus Notesのデータをスプレッドシートに連携する

Lotus NotesアプリケーションとLotus Symphony のスプレッドシートとの連携を、Java APIを使ったJavaのプログラムで実現する方法を紹介します。

この例では、Lotus Notesにメニューを追加するプラグインを作成します。先ほどのLotusScript APIの例と同じように「アンケート」アプリケーションを開き、Lotus Notes ビューから集計したいアンケート文書を選択します。そしてプラグインで追加されたメニューを選択することでJavaプログラムからLotus Symphonyのスプレッドシートが自動的に開かれ、選択された文書のデータがスプレッドシートにコピーされます。開いたスプレッドシートにはあらかじめデータ処理のためのマクロやグラフ描画の設定がされており、コピーされたデータを基に回答数の計算やグラフの描画が行われます。

このようなプラグインをEclipse IDEで作成する手順は以下の用になります。

  1. Eclipse IDEを起動し、Lotus Notesのメニューを拡張するプラグインプロジェクトを以下の手順でEclipse IDEのウィザードを使って作成します。
    1. Eclipse IDEのメニューから「ファイル」→「新規」→「プロジェクト」を選択します。
    2. 「新規プロジェクト」ダイアログの「プロジェクトウィザードの選択」で「プラグイン開発」→「プラグイン・プロジェクト」を選択して「次へ」ボタンをクリックします。
    3. 「新規プロジェクト」ダイアログの「プラグイン・プロジェクト」でプロジェクト名を入力します。ここでは「MySample」として「次へ」ボタンをクリックします。
    4. 「新規プロジェクト」ダイアログの「プラグイン・コンテンツ」ではそのまま「次へ」ボタンをクリックします。
    5. 「新規プロジェクト」ダイアログの「テンプレート」で「Hello, World」を選択して「終了」ボタンをクリックします。
      図 4. テンプレートで「Hello World」を選択
      テンプレートで「Hello World」を選択

      以上の手順で、Lotus Notesに「サンプル・メニュー」→「サンプル・アクション」というメニューを追加するプラグインのコードが自動生成されました。

  2. プロジェクトが作成されると「概要」の画面が自動的に開かれます。この画面で、下のタブから「依存関係」を選択し、「依存関係」画面の「必須プラグイン」 セクションの「追加」ボタンをクリックし、以下の2つのプラグインへの依存関係を追加します。
    • com.ibm.notes.java.ui
    • com.ibm.symphony.javaapi
  3. プロジェクトの「src」フォルダを展開し「mysample.actions」パッケージにある SampleAction.java を開きます。この Javaプログラムのrun()メソッドにはボタンを押されたときの処理が記述されています。

    今回は DataAnalyzer クラスという別のクラスを作成し、その中のprocess()メドッドで処理を行うこととします。そのためrun()メソッドの中の既存のコードを削除し、以下の様にコードを記述します。

      /**
       * The action has been activated. The argument of the
       * method represents the 'real' action sitting
       * in the workbench UI.
       * @see IWorkbenchWindowActionDelegate#run
       */
      public void run(IAction action) {
        DataAnalyzer analyzer = new DataAnalyzer(window);
        analyzer.process();
      }

    次に同じパッケージでDataAnalyzerクラスを作成しprocess()メソッドを実装します。以下で説明しているプログラムの全体は本記事の巻末にあるサンプルのDataAnalyzer.javaファイルに含まれています。
  4. DataAnalyzerクラスのprocess()メソッドではまず、ビューで選択されたLotus Notes文書のデータを取得します。これは一般的なLotus Notes Java UI クラスを使ったアプリケーションになります。NotesUIViewクラスのgetActionableEntries()メソッドからNotesUIViewEntryCollectionのインスタンスで選択された文書の一覧が取れます。ここでひとつ以上の文書が選択されていることを確認した上で、あらかじめ用意してあるLotus Symphony Spreadsheetsのテンプレートファイル(.otsファイル)を元に新規のスプレッドシートを開きます。
      /**
       * Lotus Notes ビューから Lotus Symphony スプレッドシートへのデータコピーを行う
       */
      public void process() {
    
        // 表示中のエレメントが NotesUIView であれば、処理を開始
        uiWork = new NotesUIWorkspace();
        NotesUIElement uiElem = uiWork.getCurrentElement();
        if (uiElem instanceof NotesUIView) {
    
          // ビューの選択文書を取得
          NotesUIView uiView = (NotesUIView) uiElem;
          NotesUIViewEntryCollection uiViewEntCol = uiView.getActionableEntries();
    
          if (uiViewEntCol.size() > 0) {
            spreadsheets = Application.getInstance().getSpreadsheets();
    
            // テンプレートからスプレッドシートを作成
            spreadsheet = spreadsheets.addSpreadsheet("c:\\analyze.ots", true, true);
  5. 文書の取得を行うためにはNotesUIViewEntryDollectionsのインスタンスがオープンされている必要があります。以下のようなプログラムでそのインスタンスがオープンされているかを調べ、必要に応じてNotesUIViewEntryCollectionクラスのインスタンスをオープンしてtransfer()メソッドで各文書のデータを処理します。
            /*
             * NotesUIViewEntryCollection がすでに開かれていれば、 そのまま個々のデータにアクセスする。
             * そうでなければ open() メソッドで明示的にコレクションを開く
             */
            if (uiViewEntCol.isOpen()) {
              transfer(uiViewEntCol);
            } else {
              uiViewEntCol.open(new CollectionOpenListener() {
                @Override
                public void collectionOpened(CollectionOpenedEvent event) {
                  transfer(event.getCollection());
                }
              }, true);
            }
  6. 次にtransfer()メソッドの前半で、ビューで選択されたLotus Notes文書のデータを取得します。実装の詳細は省略しますが、以下のようなプログラムで文書のデータを取得しています。このサンプルではLotus Notesアプリケーションでのデータ取得とLotus Symphonyのデータ設定の処理をプログラム内で明確に分けるために、そのデータをStringの配列に格納しさらにLinkedListクラスのtable変数に格納しています。
      /**
       * ビューの選択文書から表示データを取得しスプレッドシートにコピーする
       * @param coll オープンされた NotesUIViewEntryCollection のインスタンス
       */
      private void transfer(NotesUIViewEntryCollection coll) {
    
        // 取得したデータの一時格納用テーブル
        LinkedList table = new LinkedList();
    
        Iterator it = coll.documentIterator();
        if (null == it) {
          (new Exception("NotesUIViewEntryCollection の iterator がヌルです。"))
              .printStackTrace();
        }
    
        /*
         * Lotus Notes ビューに表示されている各行の列の値を取得
         */
        while (it.hasNext()) {
    
          // 各行のデータに初期値を設定
          String values[] = { "", "不明", "不明", "不明" };
    
          // 各行の文書を取得し列の表示値を取得
          NotesUIDocumentEntry uiDoc = (NotesUIDocumentEntry) it.next();
          List<?> list = uiDoc.getColumnValues();
          for (int i = 0; i < Math.min(list.size(), 4); i++) {
            values[i] = list.get(i).toString();
          }
    
          // 取得したデータをテーブルに格納
          table.add(values);
        }
  7. この時点ですでにスプレッドシートは開かれています。そのスプレッドシートにデータを設定するコードは以下の様になります。

    先に作成したLotus Notes文書から取得したデータを順番にセルに設定するために、range変数から相対位置でセルの範囲を取得するcells()メソッドで個々のセルを取得しています。

        // データを設定するエリアを取得
        Sheet sheet = spreadsheet.getActiveSheet();
        Range range = sheet.range("A2:D16");
    
        Range cell;
    
        /*
         * Lotus Symphony スプレッドシートの各セルにデータを設定
         */
        for (int i = 0; i < table.size(); i++) {
    
          // コピー先の表の行数が15しかないので
          if (i > 14)
            break;
    
          // 一時格納用テーブルからデータの取得
          String[] values = (String[]) table.get(i);
    
          // 名前を設定
          cell = range.cells(i + 1, 1);
          cell.setText(values[0]);
    
          // 1番の評価を設定
          cell = range.cells(i + 1, 2);
          cell.setText(values[1]);
    
          // 2番の評価を設定
          cell = range.cells(i + 1, 3);
          cell.setText(values[2]);
    
          // 3番の評価を設定
          cell = range.cells(i + 1, 4);
          cell.setText(values[3]);
        }

以上でプログラムの実装は完了しました。修正したJavaプログラムを保存し、Eclipse IDEからLotus Notesを起動して動作を確認します。まずビューを開き、処理するLotus Notes文書を選択します。ウィザードで自動生成されたプラグインによりメニューが追加されているので、そのメニューを選択してプログラムを実行します。するとスプレッドシートが開かれ、選択されたLotus Notes文書のデータが自動的に設定されます。

図 5. Lotus Symphony APIでLotus Notesのデータをスプレッドシートに連携する
Lotus Symphony APIでLotus Notesのデータをスプレッドシートに連携する

今回はEclipse IDEからのテスト実行でプログラムの動作確認をしました。通常のLotus Notes環境で実行するときには、作成したプラグインをインストール可能なパッケージにまとめ、Lotus Notesにインストールする必要があります。その方法についてはDomino AdministratorヘルプとDomino Designerヘルプを参照してください。


Lotus Symphony Spreadsheetコンテナ

コンテナフレームワークの概要

Lotus NotesアプリケーションとLotus Symphonyのスプレッドシートとを連携させるには、プログラミングなしで設定画面の操作だけで連携を実現するコンテナフレームワークを使う方法もあります。この方法はプログラミングがなくとっつきやすいのですが、その根底にはコンポジットアプリケーションという仕組みがあります。

コンポジットアプリケーションはLotus Notes 8から、実行環境としてEclipse RCPをベースとしたLotus Expeditorが採用されることで利用できるようになった技術です。Lotus Notesのクライアント環境に、単体でも動作するLotus SymphonyやIBM Sametimeが組み込まれ一体化して利用できるのも、このEclipseによるプラグインの技術に依っています。アプリケーション開発者はJavaやLotusScriptなどを用いて独自のコンポーネントを開発し、そのコンポーネントを組み合わせて柔軟にコンポジットアプリケーションを開発することができます。そしてコンポーネントとなるアプリケーションに、外部とデータをやり取りする仕組みをプロパティとアクションとして実装することで、コンポーネント間でデータ連携を行うことができます。

しかし、コンポーネントの開発にはLotusScriptやJavaの実装が必要であり、プログラミングに慣れないユーザーにとってはいくらか敷居が高い作業になります。またコンポーネント開発のためにLotus Domino DesignerやEclipse IDEなどの開発環境が必要となります。

そこで標準的に使われる機能についてあらかじめコンポーネント化してデータ連携の機能を提供するコンテナフレームワークと呼ばれる仕組みがLotus Notes 8.5.1 で提供されました。コンテナフレームワークによってLotus Notesのビューや文書や、ブラウザ、そしてLotus Symphonyのスプレッドシートがコンポーネントとして利用できるようになりました。コンテナを利用することで、Lotus Notesアプリケーションや Lotus Symphony文書をプログラミングなしでコンポジットアプリケーションに組み込み、データ連携させることができます。コンテナフレームワークの詳細については参考文献の「Lotus Notesコンテナフレームワーク」のセクションを参照してください。

Lotus Notes 8.5.2 では以下のようなコンテナが用意されています。

  • Lotus Notes コンテナ
    • Lotus PIMコンテナ
    • Lotus Notes文書コンテナ
    • Lotus Notesビューコンテナ
  • 管理対象ブラウザコンテナ
  • Lotus Symphony Spreadsheetコンテナ

この記事ではLotus Symphony Spreadsheetコンテナを使用します。

コンテナフレームワークでLotus Notesのデータをスプレッドシートに連携する

Lotus NotesアプリケーションとLotus Symphony のスプレッドシートとの連携を、コンテナフレームワークで実現する方法を紹介します。

コンテナを使用したコンポジットアプリケーションの作成を行うには、Lotus Notesのインストールの際にLotus SymphonyとComposite Application Editor(CAE)の両方がインストールされている必要があります。

この例では、先ほどのLotusScript APIやJava APIでの連携の際に使用したLotus Notes アプリケーションと、アンケートを集計するスプレッドシートを使用します。先ほどの例では「アンケート」Lotus Notesアプリケーションのビューでアクションを実行することで新たにスプレッドシートを開いてデータが設定されました。今回の例ではLotus Notesビューとスプレッドシートをコンポーネントとするコンポジットアプリケーションを作成して、Lotus Notesビューとスプレッドシートを同時に表示します。そしてLotus Notesビューから集計したいアンケート文書を選択すると即座にその文書のデータがスプレッドシートにコピーされます。スプレッドシートにはあらかじめデータ処理のためのマクロやグラフ描画の設定がされており、コピーされたデータを基に回答数の計算やグラフの描画が行われます。

このようなコンポジットアプリケーションを開発する手順は以下の様になります。

  1. Lotus Notesのメニューから「ファイル」→「アプリケーション」→「新規作成」で「新規アプリケーション」ダイアログを表示します。「新規アプリケーション」ダイアログではテンプレートとして「-ブランク(複合アプリケーション)-」を選択します。データベースのタイトルやファイル名は適当な文字列を設定してデータベースを作成します。作成する場所はローカルでもLotus Dominoサーバーでもかまいません。
    図 6. 空のコンポジットアプリケーション・テンプレートで新規アプリケーションを作成
    空のコンポジットアプリケーション・テンプレートで新規アプリケーションを作成
  2. 作成したアプリケーションが開かれるのでメニューから「アクション」→「アプリケーションの編集」 を選択してCAEを開きます。
  3. CAEでは様々なコンポーネントをコンポジットアプリケーションに追加できます。今回はLotus NotesアプリケーションのビューとLotus Symphony のスプレッドシートを配置します。まずはLotus Notesビューコンテナを以下の手順で配置します。
    1. 1. 右側のコントロールペインで「コンテナ」セクションの「Lotus Notesビューコンテナ」を選択し、中央のコンポジットアプリケーションの領域にドラッグ&ドロップします。
      図 7. 空のコンポジットアプリケーションに Lotus Notes ビュー・コンテナを配置
      空のコンポジットアプリケーションに Lotus Notes ビュー・コンテナを配置
    2. 配置されたLotus Notesビューコンテナで、「コンポーネントのプリファレンス」のプルダウンメニューから、「コンポーネント・プロパティの編集」を選択します。
      図 8. 「コンポーネントのプリファレンス」のプルダウンメニューから、「コンポーネント・プロパティの編集」を選択
      「コンポーネントのプリファレンス」のプルダウンメニューから、「コンポーネント・プロパティの編集」を選択
    3. 「コンポーネント・プロパティの編集」ダイアログが表示されるので「コンポーネント設定」タブを開きます。
    4. 「Notes URL」フィールドの横の「参照」ボタンを押し、表示される「オブジェクトの作成」ダイアログで今回使用する「アンケート」アプリケーションの「answers」ビューを選択します。
      図 9. Lotus Notes ビューコンテナの「コンポーネント・プロパティの編集」ダイアログ
      Lotus Notes ビューコンテナの「コンポーネント・プロパティの編集」ダイアログ
    5. 「コンポーネント・プロパティの編集」ダイアログで「OK」ボタンを押してダイアログを閉じます。CAEの画面に戻ると、選択した「answers」ビューが表示されます。
      図 10. Lotus Notesビューコンテナが配置されたコンポジットアプリケーション
      Lotus Notesビューコンテナが配置されたコンポジットアプリケーション
  4. 次にSymphony Spreadsheetコンテナを以下の手順で配置します。
    1. コントロールペインで「コンテナ」セクションの「Symphony Spreadsheetコンテナ」を選択し、中央の領域の下側を狙ってドラッグ&ドロップします。
      2つの目のコンポーネントをドラッグ&ドロップする際にドロップする場所によって、2つのコンポーネントが並べて表示されたたり、タブ表示で重なって表示されたりしますので、上下に並ぶよう注意して配置してください。
    2. 配置したSymphony Spreadsheetコンテナで、「コンポーネントのプリファレンス」のプルダウンメニューから、「コンポーネント・プロパティの編集」を選択します。
    3. 「コンポーネント・プロパティの編集」ダイアログが表示されるので「コンポーネントの設定」タブを開きます。
    4. 「初期ファイル」フィールドに、使用するLotus Symphony のスプレッドシートファイルを指定します。ここでは c:\analyze.odsを使用します。
      図 11. Lotus Symphony Spreadsheetコンテナの「コンポーネント・プロパティの編集」ダイアログ
      Lotus Symphony Spreadsheetコンテナの「コンポーネント・プロパティの編集」ダイアログ

      ここまでの手順で、コンポジットアプリケーションにLotus NotesビューコンテナとSymphony Spreadsheetコンテナが配置されました。この時点ではコンポーネント間での連携はありません。

      図 12. 2つのコンテナが配置されたコンポジットアプリケーション
      2つのコンテナが配置されたコンポジットアプリケーション
  5. Lotus Notesビューコンテナから発行するプロパティを設定します。
    1. CAEで、作成済みのLotus Notesビューコンテナの上部に表示されているアクション定義ツールバーで、最初の「プロパティの選択/作成」フィールドにプロパティ名として「name」をタイプし、2つめの「アクションの選択」フィールドにアクションとして「式」を選択します。3つめの「フィールドの選択」フィールドでは、プルダウンで「name」を選択します。
      図 13. Lotus Notes ビューコンテナのプロパティの設定
      Lotus Notes ビューコンテナのプロパティの設定
    2. アクション定義ツールバーで「アクションの追加」アイコンをクリックします。これによってビューの文書から「name」フィールドの値が、「name」プロパティとして発行されます。
      図 14. 「アクションの追加」アイコン
      「アクションの追加」アイコン
    3. 同様にして以下のプロパティを追加します。

      表 1. Lotus Notes ビューのプロパティ一覧
      プロパティの選択/作成アクションの選択フィールドの選択
      namename
      rating_1rating_1
      rating_2rating_2
      rating_3rating_3
    4. 全てのプロパティを登録したら、「変更の保存および適用」アイコンをクリックします。
      図 15. 「変更の保存および適用」アイコン
      「変更の保存および適用」アイコン
  6. Symphony Spreadsheet コンテナで、プロパティを受信するアクションを設定します。
    1. CAEで、作成済みの Symphony Spreadsheetコンテナの上部に表示されているアクション定義ツールバーで、最初の「アクションの選択」フィールドで「受信」を選択します。2つめの「プロパティの選択/作成」フィールドで受信するプロパティ名として「name」とタイプします。ここでスプレッドシートのA2からA16を選択すると、3つめの「フィールドの選択」フィールドに自動的に選択したセルの範囲が設定されます。
      図 16. Lotus Symphony Spreadsheetコンテナのプロパティの設定
      Lotus Symphony Spreadsheetコンテナのプロパティの設定
    2. 全てのフィールドを設定したら、「プロパティの追加」アイコンをクリックします。
    3. 同様にして以下のプロパティを追加します。

      表 2. Symphony Spreadsheetコンテナのプロパティ一覧
      アクションの選択プロパティの選択/作成フィールドの選択(以下のセルを選択)
      受信nameA2 から A16
      受信rating_1B2 から B16
      受信rating_2C2 から C16
      受信rating_3D2 から C16
    4. 全てのプロパティを登録したら、「変更の保存および適用」アイコンをクリックします。
  7. ふたつのコンポーネントをワイヤリングして連携します。
    1. CAEの左側にあるアプリケーションナビゲーターで「Lotus Notesビューコンテナ」を右クリックし「ワイヤリング」を選択します。
    2. ワイヤリング画面が表示され、「Lotus Notesビューコンテナ」の「name」プロパティをドラッグして「Symphony Spreadsheetコンテナ」の「name」プロパティにドロップして2つのプロパティのワイヤリングをします。
      図 17. CAE のワイヤリング画面
      CAE のワイヤリング画面
    3. 同様にして以下の4つのプロパティをそれぞれワイヤリングします。

      表 3. コンポーネントでワイヤリングするプロパティの一覧
      Lotus NotesビューコンテナのプロパティSymphony Spreadsheetコンテナのプロパティ
      nameName
      rating_1rating_1
      rating_2rating_2
      rating_3rating_3
    4. 全てのワイヤリングができたら右下の「適用」ボタンをクリックします。
  8. CAEでメニューから「ファイル」→「保存して終了」を選択して CAE を閉じます。保存の確認ダイアログが表示されたときは「はい」を選択します。

    以上でコンポジットアプリケーションの実装は完了しました。CAEが閉じられて作成したコンポジットアプリケーションが開かれます。そこで Lotus NotesビューからLotus Notes文書を選択すると、選択された文書のデータがLotus Symphony のスプレッドシートにコピーされ、スプレッドシートに設定されたマクロでグラフが描画されます。

    図 18. コンテナフレームワークでLotus Notesのデータをスプレッドシートに連携する
    コンテナフレームワークでLotus Notesのデータをスプレッドシートに連携する

まとめ

この記事では、Lotus SymphonyとLotus Notes が提供するLotusScript API、Java APIそしてコンテナフレームワークによって、Lotus NotesのデータとLotus Symphonyを連携させる方法をご紹介しました。Lotus Symphony のスプレッドシートは単体でもセルなどのデータを処理するマクロを用意して様々なデータの処理を実装することができます。しかし、マクロでは書ききれない複雑なデータ処理、外部システムやLotus Notesアプリケーションとの連携、あるいはLotus Symphony自体を拡張するといったことが、ここで紹介したLotus Symphony のAPIやコンテナで実現することができます。またここではLotus Symphony Spreadsheetsだけを使用してサンプルを紹介しましたが、LotusScript APIとJava APIはLotus Symphony DocumentsとLotus Symphony Presentationsでも使用できます。

Lotus Notesはグループでの情報共有やデータの処理で強力なコラボレーション基盤を提供していますが、保存されたデータの詳細な分析やグラフィカルな表示、あるいはワードプロセッサのような細かい文書表現という観点ではオフィスソフトウェアに及ばない面もありました。しかしLotus Notesと連携されたLotus Symphonyを使うことで、Lotus Notesの機能を補い、より強力に企業データを処理することが可能になります。

もしすでにLotus Notesをお使いであれば、ぜひLotus Symphonyもあわせてお使いください。またLotus Notesを使っていない方も、本記事で説明したJava APIを利用することができます。本記事をご参考にぜひLotus Symphonyをお試しいただきたいと思います。


ダウンロード

内容ファイル名サイズ
サンプルコードlabfiles_tektek_symphony_20110715.zip1.59MB

参考文献

オープンスタンダードの技術Lotus Symphonyの情報
  • IBM Lotus Symphony 製品ページ
  • Lotus Symphony 開発者向けページ
  • IBM developerWorks : Lotus Symphony
  • LotusLive Symphony のプレビュー
  • Lotus Symphony Toolkit
    • Lotus Symphony Java APIの開発のための情報(Eclipse IDE用の追加モジュール、マニュアル、サンプル)は、上記の「Lotus Symphony 開発者向けページ」からダウンロードできる「Lotus Symphony 3 Software Development Kit」に含まれています。
    • Lotus Symphony LotusScript APIの開発のための情報(マニュアルとサンプル)はIBM Passport AdvantageまたはPartnerWorldのソフトウェアダウンロードからダウンロードできる「Lotus Symphony 3 Software Development Kit for Lotus Notes 8.5.x」に含まれています。ただし、開発に必要なLotusScript ライブラリ(symphonylsx.lss)は、Lotus NotesおよびLotus Symphonyのインストール時にプロフラム・フォルダに提供されます。
Lotus Symphony LotusScript APILotus Notes プラグイン開発環境の構築Lotus Symphony プラグイン開発環境の構築Lotus Notesコンテナフレームワーク

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus, Java technology
ArticleID=732505
ArticleTitle=Lotus Notesの価値を高めるLotus Symphony
publish-date=07152011