Dialogue Server API

リファレンス ガイド
バージョン 6.0 SP1
©
2013 Pitney Bowes Software Inc. All rights reserved.
本ドキュメントには、Pitney Bowes Inc. またはその子会社や関連企業が所有する機密情報と独占情報が含ま
れます。
Portrait Software、Portrait Software ロゴ、Portrait、および Portrait Software の Portrait ブランドは、Portrait
Software International Limited の商標であり、Portrait Software International Limited から書面による事前の承
諾を得ない限り、いかなる方法でも使用できません。
商標に関する告知
その他、記載されている製品名、社名、マーク、ロゴ、およびシンボルには、各社の商標または登録商標と
して使用している場合があります。
Portrait Software サポート
本ドキュメントに記載された情報で対処できない状況が発生し、支援が必要な場合は、当社 Web サイトの
Knowledge Base をご利用ください。http://support.portraitsoftware.com にアクセスし、目的の製品のリ
ンクをクリックします。
このサイトでは、他の Portrait Software ドキュメントをダウンロードすることもできます。 ユーザ名とパス
ワードをお持ちでないか、お忘れの場合は、以下の連絡手段のいずれかでお問い合わせください。
本製品の使用、インストール、またはドキュメントに問題点がありましたら、以下の連絡手段のいずれかで
お問い合わせください。
電子メール:[email protected]
電話
• 米国/カナダ 1-800-335-3860 (フリーダイヤル)
• その他の国 +44 800 840 0001
問題点をご連絡いただく際は、以下の情報をお手元に控えておいてください。
• ソフトウェア アプリケーションの名前
• 問題が発生したときの状況
• エラー メッセージが表示された場合はその文言
• 使用していたソフトウェアのバージョン
Pitney Bowes Software Inc.
目次
第 1 章 : Dialogue Admin..........................................................................................11
Dialogue Admin.................................................................................................................12
Dialogue Server ホスト.....................................................................................................12
データベース インスタンス................................................................................................12
顧客ドメイン.......................................................................................................................15
カテゴリ[かてごり]........................................................................................................15
ダイアログの設定................................................................................................................16
グループ タイプ.............................................................................................................16
オペレーションタイプ...................................................................................................16
ダイアログ ステータス タイプ......................................................................................16
イベント タイプ.............................................................................................................17
コール ステータス タイプ.............................................................................................17
バウンス メールのセットアップ....................................................................................17
活動セットアップ................................................................................................................19
活動タイプ.....................................................................................................................19
タスク フォローアップ オプション...............................................................................19
タスク表示間隔..............................................................................................................19
タスク フィールド.........................................................................................................19
チャネル タイプ..................................................................................................................20
出力チャネル..................................................................................................................20
メッセージ タイプ.........................................................................................................22
リソース..............................................................................................................................23
SQL リポジトリ.............................................................................................................23
セカンダリ データベース..............................................................................................24
Web Services.................................................................................................................24
プラグイン リポジトリ..................................................................................................24
ユーザーとセキュリティ.....................................................................................................26
ユーザー.........................................................................................................................26
ユーザー グループ.........................................................................................................26
アクセス権.....................................................................................................................26
オブジェクトのセキュリティ........................................................................................30
ユーザー セッション ログ.............................................................................................33
一般管理..............................................................................................................................33
パラメータ コレクション..............................................................................................33
アプリケーション システム...........................................................................................33
テーブルのメンテナンス...............................................................................................34
テスト ユーティリティ..................................................................................................34
第 2 章 : 顧客ドメインと式.........................................................................................35
顧客ドメインと式................................................................................................................36
ドメインの作成手順............................................................................................................36
ステップ 1 - メイン グループ SQL を作成する.............................................................36
ステップ 2 - ドメインを追加する..................................................................................37
ステップ 3 - メイン データ グループを追加する..........................................................38
ステップ 4 - フィールドを追加する..............................................................................38
ステップ 5 - フィールド プロパティを編集する...........................................................38
ステップ 6 - 新しいドメインを有効にする....................................................................38
ステップ 7 - Customer View でドメインをテストする.................................................39
ステップ 8 - セレクション デザイナでドメインをテストする......................................39
ステップ 9 - ドメインに関する詳細情報.......................................................................40
Visual Dialogue における顧客ドメイン.............................................................................40
Customer View における顧客ドメイン..............................................................................41
顧客ドメイン設定の詳細情報..............................................................................................42
顧客ドメインのプロパティ............................................................................................42
データ グループ.............................................................................................................44
フィールド:....................................................................................................................48
データ型.........................................................................................................................52
検索ソース.....................................................................................................................52
顧客ドメイン検証................................................................................................................53
顧客ドメイン検証の実行...............................................................................................53
顧客ドメイン検証メッセージ........................................................................................53
4
Portrait Dialogue 6.0 SP1
計算式..................................................................................................................................59
式構文の定義..................................................................................................................60
式演算子.........................................................................................................................62
式のデータ型..................................................................................................................64
式関数............................................................................................................................64
第 3 章 : レポートの設定.............................................................................................81
レポート..............................................................................................................................82
レポート ビューア...............................................................................................................83
レポート フォーマット........................................................................................................86
レポート パラメータ XML...................................................................................................87
レポート表示アクション.....................................................................................................89
第 4 章 : メールとリンクの追跡..................................................................................91
追跡.....................................................................................................................................92
メール追跡...........................................................................................................................92
リンクの追跡.......................................................................................................................93
メールとリンクの追跡に関する詳細情報............................................................................95
回答の追跡...........................................................................................................................97
第 5 章 : コンテンツ オブジェクト...........................................................................101
コンテンツ オブジェクト..................................................................................................102
コンテンツ オブジェクト URL.........................................................................................102
第 6 章 : 発行済みファイル.......................................................................................105
発行済みファイル..............................................................................................................106
発行済みファイルの URL..................................................................................................106
第 7 章 : バウンス メールの処理...............................................................................109
バウンス メールの処理......................................................................................................110
バウンス メールのシステム パラメータ...........................................................................110
バウンス メールのログ記録..............................................................................................111
リファレンス ガイド
5
第 8 章 : オブジェクトのインポートとエクスポート...............................................113
エクスポートとインポート...............................................................................................114
エクスポート.....................................................................................................................114
インポート.........................................................................................................................115
補助的環境のセットアップ...............................................................................................116
第 9 章 : URL 短縮....................................................................................................119
URL 短縮...........................................................................................................................120
データベース インスタンス..............................................................................................121
パラメータ.........................................................................................................................121
メッセージ タイプ.............................................................................................................122
第 10 章 : プラグイン API.........................................................................................125
プラグイン API..................................................................................................................126
顧客データ プラグイン......................................................................................................127
ブランチ プラグイン.........................................................................................................130
式プラグイン.....................................................................................................................131
汎用プラグイン.................................................................................................................132
メッセージ プラグイン......................................................................................................133
出力チャネル プラグイン..................................................................................................134
タイプ................................................................................................................................136
分岐パラメータ タイプ................................................................................................136
アンケートのデータ型.................................................................................................142
インターフェース..............................................................................................................142
IMHAnswerForm インターフェース............................................................................142
IMHAnswerFormList インターフェース.......................................................................147
IMHBranchDynamicList インターフェース..................................................................148
IMHBranchInfo インターフェース...............................................................................149
IMHBranchParamDefs インターフェース...................................................................152
IMHBranchPlugin インターフェース...........................................................................153
IMHCategory インターフェース..................................................................................154
IMHCacheItem インターフェース...............................................................................155
IMHCCCallStatusList インターフェース.....................................................................155
6
Portrait Dialogue 6.0 SP1
IMHCCProject インターフェース................................................................................156
IMHChannelMessage インターフェース.....................................................................157
IMHMessageContainer インターフェース..................................................................158
IMHCmsIdList インターフェース.................................................................................159
IMHCreateMessagePlugin インターフェース.............................................................160
IMHCreateMessagePlugin2 インターフェース...........................................................162
IMHCreateMessagePlugin3 インターフェース...........................................................163
IMHContentItem インターフェース.............................................................................164
IMHContentItemList インターフェース.......................................................................166
IMHContentObjectRulePlugin インターフェース........................................................167
IMHContentObjectUtils インターフェース...................................................................168
IMHContentRequestParams インターフェース..........................................................169
IMHControlParamDefs インターフェース...................................................................170
IMHCustomer インターフェース.................................................................................172
IMHCustomerContainer インターフェース.................................................................183
IMHCustomerList インターフェース...........................................................................189
IMHCustomerSortFieldList インターフェース.............................................................190
IMHCustomPluginServices インターフェース............................................................191
IMHDataField インターフェース.................................................................................192
IMHDataFields インターフェース...............................................................................194
IMHDataGroupPlugin インターフェース.....................................................................195
IMHDialog インターフェース......................................................................................196
IMHDialogUtils インターフェース...............................................................................199
IMHDialogGroup インターフェース............................................................................199
IMHDialogOperation インターフェース.......................................................................201
IMHDialogServerServices インターフェース..............................................................203
IMHDuplicateList インターフェース............................................................................212
IMHDynamicValuesList インターフェース..................................................................213
IMHEmailBounceCodeList インターフェース.............................................................214
IMHExprFunctionDef インターフェース......................................................................214
IMHExprFunctionPlugin インターフェース.................................................................215
IMHGenericPlugin インターフェース..........................................................................216
IMHLicenseInfo インターフェース..............................................................................217
IMHMessage インターフェース..................................................................................218
IMHMessageAssembleInfo インターフェース............................................................221
リファレンス ガイド
7
IMHMessageAttachment インターフェース................................................................222
IMHMessageAttachmentList インターフェース..........................................................223
IMHMessageBundle インターフェース.......................................................................224
IMHMessageUtils インターフェース...........................................................................226
IMHOutputChannelInfo インターフェース..................................................................227
IMHOutputChannelPlugin インターフェース..............................................................228
IMHParticipant インターフェース................................................................................229
IMHParticipantContainer インターフェース................................................................231
IMHPlugin インターフェース.......................................................................................234
IMHQryAlternative インターフェース..........................................................................235
IMHQryQuestion インターフェース............................................................................236
IMHQrySection インターフェース...............................................................................238
IMHQuestionnaire インターフェース..........................................................................238
IMHQuestionnaireUtils インターフェース...................................................................240
IMHReportEngine インターフェース...........................................................................242
IMHReportFormat インターフェース..........................................................................245
IMHReportParameter インターフェース.....................................................................246
IMHReportParameterList インターフェース...............................................................247
IMHReportTemplate インターフェース.......................................................................248
IMHSelection インターフェース..................................................................................249
IMHSQLDef インターフェース....................................................................................249
IMHSystemUser インターフェース.............................................................................250
IMHUnmergedMessage インターフェース.................................................................251
IMHWebPublicFile インターフェース..........................................................................255
第 11 章 : Dialogue Server API................................................................................257
Dialogue Server API........................................................................................................258
Activity API.......................................................................................................................259
Dialogue API....................................................................................................................263
Customer API...................................................................................................................271
Generic API......................................................................................................................280
Message API....................................................................................................................283
Emarketing Mail API........................................................................................................296
Quest API.........................................................................................................................298
Report API........................................................................................................................302
8
Portrait Dialogue 6.0 SP1
Selection API....................................................................................................................307
System API.......................................................................................................................310
Telemarketing API...........................................................................................................314
Web Utils API...................................................................................................................318
第 12 章 : HQ 管理....................................................................................................325
Portrait Shared Server....................................................................................................326
を設定する Portrait HQ....................................................................................................326
フレーム レートの構成................................................................................................326
Portrait HQ アプリケーション ログの構成..................................................................326
Portrait Shared Repository データベースの構成.........................................................327
Sharepoint の構成........................................................................................................327
Portrait Shared Server を構成する.................................................................................327
Windows 認証を設定する ...........................................................................................327
Portrait Shared Server のログを構成する...................................................................328
キャンペーン レポートを設定する..............................................................................329
[マイビュー] のクイック リンクを設定する................................................................330
SSL/HTTPS を有効にする...........................................................................................331
キャンペーン承認を有効にする........................................................................................333
HQ ユーザー権限を変更する............................................................................................333
マーケティング活動を構成する........................................................................................336
活動タイプを構成する.................................................................................................336
活動サブ タイプを構成する.........................................................................................336
活動の優先順位を構成する..........................................................................................337
チャネルを設定する.....................................................................................................338
顧客カードの設定..............................................................................................................340
結果データの統合..............................................................................................................343
操作テーブル................................................................................................................343
サマリ テーブルとレポート スキーマ.........................................................................349
外部データからのログの取り込み....................................................................................355
HQ のトラブルシューティング.........................................................................................356
SharePoint インストール後の Portrait HQ に対する認証の失敗 ................................356
Portrait HQ 実行時のセキュリティ資格情報に関する問題..........................................356
ログオン試行時のアプリケーション ハングのトラブルシューティング....................356
Portrait Shared Services の読み込みの問題................................................................356
リファレンス ガイド
9
Portrait Shared Services のサービス プリンシパル名の作成 .....................................357
ログの記録...................................................................................................................358
Sharepoint および Portrait HQ のインストール後の Dialogue Server のアンインストール.358
ServiceAccountとして使用されているアカウントをPSSのインストール後に変更する方法
..........................................................................................................................................358
作成されたタスクが Portrait HQ の [マイビュー] に表示されない場合.......................358
Portrait HQ に 'Failed retrieving task list' エラー メッセージが表示される場合..........359
第 13 章 : サードパーティに関する但し書き............................................................361
サードパーティに関する但し書き....................................................................................362
10
Portrait Dialogue 6.0 SP1
Dialogue Admin
• Dialogue Admin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
• Dialogue Server ホスト . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
• データベース インスタンス . . . . . . . . . . . . . . . . . . . . . . . . .12
• 顧客ドメイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
• ダイアログの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
• 活動セットアップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
• チャネル タイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
• リソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
• ユーザーとセキュリティ . . . . . . . . . . . . . . . . . . . . . . . . . . .26
• 一般管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
1
Dialogue Admin
Dialogue Admin
Dialogue Admin は、Portrait Dialogue 管理クライアント アプリケーションです。
Dialogue Server ホスト
Dialogue Admin ブラウザ ウィンドウにおいて、1 つまたは複数の Dialogue Server ホストに接続でき
ます。 Dialogue Server ホストとは、サーバー上のインストールを指します。
Dialogue Server に接続するには、[Dialogue Server ホスト] ノードを選択し、メニューから [項目] >
[新規] を選択します。
ホストのプロパティの編集
[ホスト プロパティ] にある情報は、大半がソフトウェア バージョンやライセンスに関する読み取り専
用の情報ですが、 以下の項目は編集可能です。
[サーバーでは英語 (米国) を言語として使用する (すべてのインスタンスが対象)] これを選択すると、
Dialog Server とそのすべてのインスタンスの言語設定が変更され、サーバーが生成するエラー メッ
セージやその他のテキストが米英語で表示されるようになります。 このオプションは、システム管理
の際に、Dialogue Server のエラーやログの情報を一時的に米英語で表示させたい場合に使用します。
注意: なお、1 つのインスタンスに対してだけ言語設定を変更したい場合は、[データベース インスタ
ンスのプロパティ] にある同様の設定を使用します。
データベース インスタンス
Dialogue Server ホスト内には、複数の Dialogue Database がインストールされている場合がありま
す。 この各 Dialogue Database をデータベース インスタンスと呼びます。
[データベース インスタンス] ノードの下に、使用可能なすべてのインスタンスが表示されます。
注意: インスタンスを管理したり、インスタンスにアクセスするには、有効なユーザー名およびパス
ワードによってそのインスタンスにログオンするか、またはサーバー コンピュータ自体にログ
オンする必要があります。
新規インスタンスの定義
新規インスタンスを定義し、設定する手順は、以下のとおりです。
12
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
• Dialogue Server データベース スキーマがインストールされていることを確認します。
• [データベース インスタンス] ノードを選択し、メニューから [項目] > [新規] を選択します。 この操
作は、Dialogue Server をホスティングするサーバー コンピュータ上でローカルに行う必要がありま
す。
• 既定のユーザー名とパスワードでインスタンスにログインします (『インストール ガイド』を参照
してください)。
インスタンスを定義または編集する際には、以下に示すいくつかの重要なプロパティを設定できます。
• 短縮識別子 (ISID)
インスタンスを表す短い識別子です。 短縮識別子は、1 文字または 2 文字の英大文字で構成する必
要があります。また、Dialogue Server ホスト上にあるその他すべてのインスタンスと異なっている
必要があります。
• 既定のインスタンスにする
選択されたインスタンスが、(Dialogue Server ホスト内の) システムの既定のインスタンスである場
合は、[既定] をオンにします。
• ダイアログ マネージャー サービスを有効にする
ダイアログ マネージャー サービスを有効または無効にします。 このサービスは、スケジュール済
みの操作やイベント トリガー型の操作といった、バックグラウンド タスクの実行を行います。
• メッセージ送信サービスを有効にする
メッセージ通信サービスを有効または無効にします。 このサービスは、システムからのアウトバウ
ンド メッセージの送信を行います。
• メール受信サービスを有効にする
メール受信サービスを有効または無効にします。 このサービスは、バウンス メールの取得および処
理を行います。
• Windows 認証を有効にする
このオプションを有効にすると、ユーザーは、ユーザー名とパスワードを入力することなく、Windows
資格情報でシステムにログオンできます。
• サーバー エラーとデバッグ メッセージをログに記録する
このオプションを選択すると、すべてのエラーと例外が次のフォルダ内のファイルに記録されます。
<DialogServer>\LogFiles\Errors
また、このオプションによって、その他の情報も Portrait Dialogue Process Monitor に記録されま
す。 最も重要な処理として、詳細な SQL エラー メッセージがログに記録され、プラグイン API の
LogDebugMessage メソッドが有効になります。
• サーバーでは英語 (米国) を言語として使用する
これを選択すると、インスタンスやユーザー セッションの言語設定が変更され、Dialogue Server が
生成するエラー メッセージやその他のテキストが米英語で表示されるようになります。 このオプ
リファレンス ガイド
13
データベース インスタンス
ションは、システム管理の際に、インスタンスのエラーやログの情報を一時的に米英語で表示させ
たい場合に使用します。
注意: なお、サーバーのすべてのインスタンスに対して言語設定を変更したい場合は、[ホスト プロ
パティ] にある同様の設定を使用します。
• オフラインにする
インスタンスに対する使用とすべてのサーバー側の処理を無効にします。 このオプションが設定さ
れている場合、ユーザーはログインできず、また、どのサーバー メソッドも呼び出すことができま
せん。 ただし、継続中のメソッド呼び出しが中止されることはありません。 例えば、データベース
のメンテナンス時やシステムのアップグレード時に、このオプションが使用できます。
• データベース サーバー タイプ
サポートされる DBMS の 1 つ (現時点では、Oracle と Microsoft SQL Server です)。
• 接続文字列
Dialogue Database への接続に使用する MS OLE DB 接続文字列。
注意: 接続に SQL Server Native Client を使用している場合は、データベース ユーザー パスワード
を保存できるように、接続文字列ダイアログの [すべて] タブでパラメータ Persist Security
Info を True に設定する必要があります。
• システム データベース言語
Dialogue Database およびシステム データをインストールした言語。 これは、インスタンスにおけ
る既定のユーザー インターフェース言語でもあります。
注意: この設定は、Dialogue Database における実際の言語と一致させておく必要があります。 デー
タベース内の SYSTEM_INFO テーブルから言語を取得するには、[解決] ボタンを押します。
接続文字列を指定または変更すると、Dialogue Amin は自動的にデータベースに接続して言
語を取得しようと試みます。
• 接続の再試行
[最小値] は、Dialogue Database が使用できなくなった場合に接続を再試行するまでの時間間隔を表
します。 その後、接続に失敗する度に、この時間間隔を 2 倍にして再試行を繰り返し、値が [最大
値] に達した後は、その値を再試行間隔として使用します。
インスタンスの編集
インスタンスのプロパティを編集するには、Dialogue Admin ブラウザでインスタンスを選択し、メ
ニューから [項目] > [プロパティ] を選択します。
インスタンスの再開
インスタンスを再開するには、Dialogue Admin ブラウザでインスタンスを選択し、メニューから [項
目] > [再開] を選択します。
14
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
[再開] のオプションは、例えばデータベースが使用できなくなったために、インスタンスが失敗して
いる場合に最もよく使用されます。 インスタンスを再開すると、Dialogue Server のサービス (MH
Dialog Manager Service と MH Send Message Service) に、そのインスタンスが使用できる状態になっ
たことが通知されます。
また、インスタンスの再開によって、そのインスタンスにおけるすべてのキャッシュ データがクリア
されます。これには、SQL クエリ、顧客ドメイン定義、パラメータなどが含まれます。
顧客ドメイン
顧客ドメインには、Portrait Dialogue で定義されたすべての異なる顧客のセットが含まれます。 この
ような顧客セットの 1 つを、顧客ドメインと呼びます。 顧客ドメインの例としては、 個人、B2B 市
場、世帯、見込み顧客などがあります。
顧客ドメインに関する詳細やヘルプについては、『テクニカル ヘルプ』の「顧客ドメインと式」のセ
クションを参照してください。
カテゴリ[かてごり]
カテゴリは、顧客の特性を表すために使用します。 顧客を、1 つ以上のカテゴリに所属させることが
できます。 次の 4 種類のカテゴリがあります。
• 簡易カテゴリ
顧客は、簡易カテゴリに所属するか、または所属しないかのいずれかになります。
• カテゴリと値
カテゴリと値に所属する顧客は、そのカテゴリにおける 1 つ以上の値を持ちます。 そのカテゴリの
値が複数選択可能である場合、顧客は複数の値を持つことができます。 それ以外の場合は、顧客が
持つ値は 1 つだけとなります。
• スコアリング カテゴリ
スコアリング カテゴリに所属する顧客は、定義済みの最小値と最大値の間のスコアリング値を持ち
ます。
• チャネル ブロッキング カテゴリ
チャネル ブロッキング カテゴリに所属する顧客は、それに関連するチャネルを介したメッセージま
たはコミュニケーションを受信しません。 例 : 顧客が電子メール ブロッキング カテゴリに所属する
場合、その顧客には電子メールは送信されません。
リファレンス ガイド
15
ダイアログの設定
ダイアログの設定
[ダイアログの設定] には、ダイアログのデザインに使用される項目を管理するためのサブ ノードが含
まれます。
グループ タイプ
グループ タイプは、ダイアログで使用可能なグループの定義済みタイプです。 グループ タイプには、
名前とデータ型があります。 グループ データ タイプは、次の 3 つのうちのいずれかになります。
• データベース データベース データ タイプは、顧客データベース内のすべての顧客、つまり、ダイ
アログにおいて対象とする顧客ドメイン内のすべての顧客を表します。
• 標準 標準データ タイプは、ダイアログ参加顧客に適用される通常のデータ タイプです。
• ファジー ファジー データ タイプは、市場やターゲット層など、不特定の顧客を表すグループ タイ
プで使用します。
任意の数のグループ タイプを定義して、ダイアログの作成方法をカスタマイズできます。 ただし、グ
ループの機能は必ず、選択したデータ タイプによって定義されることになります。
オペレーションタイプ
オペレーションのタイプは、Visual Dialogue においてダイアログをデザインする際に使用するオペレー
ションを定義するものです。
任意の数のオペレーションのタイプを定義できます。 オペレーションの背景にあるロジックは、プラ
グインに実装されています。 プラグインには、標準プラグインと、プログラム可能なカスタマイズさ
れたプラグインがあります。 オペレーションとプラグインの間の関係は、オペレーションのタイプ内
で設定されます。 この関係は分岐タイプと呼ばれ、オペレーションタイプ内の分岐タイプの順序を設
定できます。
オペレーションに使用する記号とオペレーション カテゴリ (Visual Dialogue で視覚的なカテゴリ化に
使用) に加えて、既定の実行オプションが設定できます。
ダイアログ ステータス タイプ
ダイアログ ステータス タイプは単に、ダイアログ ライフサイクルにおけるさまざまなステージに応
じて、ダイアログを分類するためのものです。 ダイアログには必ず、定義済みステータス タイプの 1
つが付与されます。
任意の数のステータス タイプを定義できますが、一部のタイプはシステム標準であり、削除できませ
ん。
16
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
イベント タイプ
イベント タイプは、外部から Dialogue Server に投稿されたイベントを定義するものです。
一部のイベント タイプは標準であり、システム自体が使用します。 他システムとの統合を行うプロ
ジェクトでは、Dialogue Server が通知を受ける必要のある、別のアプリケーション システムにおける
外部イベントを記述するために、その他のイベント タイプを追加する場合があります。
イベントは、Dialogue Server API を介してポストするか、または、ストアド プロシージャを呼び出す
ことによって Dialogue Database に直接ポストできます。
コール ステータス タイプ
コール ステータス タイプは、テレマーケティング プロジェクトにおいて顧客に起きたことを記述す
るために使用します。 例えば、コールに成功したか、顧客の電話回線が切れていたかなどを表しま
す。
任意の数のコール ステータス タイプを定義できますが、一部のタイプはシステム標準であり、削除で
きません。
バウンス メールのセットアップ
[バウンス メールのセットアップ] には、バウンス メール処理のセットアップを管理するためのサブ
ノードが含まれます。
バウンスの構成
Dialogue Server は自動的にバウンス メールを処理できます。 MH メール受信サービス が異なるメー
ル アカウントからメールを取得してバウンス メールを処理することに対応して、異なるバウンス メー
ル構成をセットアップすることが可能です。
構成を作成または編集する際には、5つの設定パネルからなるダイアログ ボックスが表示されます。
[全般] : 構成名を設定し、構成を有効または無効にできます。 受信メール処理を実行するには、構成
を有効にしておく必要があります。 顧客ドメインのフィールド マッピングも設定する必要がありま
す。 これらのマッピングによって、バウンス メールを受信するはずだった顧客を特定する際に、どの
ドメインのどのフィールドを使用するかを、サービスに対して指定します。
[バウンス ロジック] :[顧客メッセージ ID をスキャン] をオンにすると、メール受信サービス は、バウ
ンス メールをスキャンして、元の電子メールに含まれていた顧客メッセージ ID を探します。 [日単位
のスキャン間隔] には、バウンスされた送信メールを特定するために、何日分の送信メール履歴を確認
するかを指定します。 [スキャン時に無視するアドレス] には、バウンス メールのスキャン時に無視す
るアドレスのリストをセミコロンで区切って指定します。 通常は、送信メールの送信元アドレスとし
て使用されたアドレスをここに入力します。
[非自動ハンドリング] には、バウンス メールの処理において何らかの手動によるオペレーションが必
要な場合に、その処理方法を設定します。 [このアドレスに転送] は、手動処理のためにバウンス メー
リファレンス ガイド
17
バウンス メールのセットアップ
ルを転送する場合に使用する電子メール アドレスです。 [可能な場合は転送時に元の [送信元アドレス]
を使用] をオンにすると、転送時にバウンス メールの元のアドレスが使用されます。 これは、実際は
バウンス メールではなく、受信者からの返信メールであるバウンス メールの処理時に特に有効です。
このチェックボックスが選択されていないか、元のアドレスが見つからない場合、[既定の [送信元ア
ドレス]] を送信元アドレスとして使用します。
[バウンス コード]:ここでは、[バウンス コード] における処理設定をオーバーライドできます。
[メール サーバー] : サービスをメール サーバーに接続する方法を設定します。 [受信メール サーバー]
は、バウンス メールの取得に使用します。また、ここで設定したアカウントは通常、メール送信時の
送信元アドレスとして使用されます。 受信サーバー タイプは、次の 3 つから選択できます。
• [pop] は、POP3 プロトコルをサポートします。
• [imap] は、IMAP4 プロトコルをサポートします。
• [none] を選択すると、バウンス メールをまったく取得せず、その処理を外部プログラムに委託しま
す。 これによって、メールを取得するための独自のプログラムを作成し、メール受信サービス とは
独立してその処理を行うことができます。 メールは、標準 SMTP 終端文字 (CRLF.CRLF) を含む標
準の MIME 形式でなければなりません。 各メールは、このバウンス構成において一意の名前を持
つ、個別のファイルに格納される必要があります。 ファイルは、「<作業ディレクトリ>\<構成名
>\Incoming」ディレクトリに配置する必要があります。ここで、作業ディレクトリは、全般的なバ
ウンス メール システム パラメータである WorkingDirectory に指定したディレクトリで、構成名は、
バウンス構成の名前です。
[送信メール サーバー] は、メールの転送とレポートの送信に使用します。
その他(O):[顧客情報を常に記録] をオンにすると、メール受信サービスは必ず、バウンス メールを該
当する顧客に関連付け、この情報を Dialogue Database に記録します。 これを選択しない場合、メー
ル受信サービスは、バウンス メール情報を顧客情報なしで記録します。 バウンス アクションが [イベ
ント] に設定されたバウンス コードについては、このパラメータの設定にかかわらず、すべてのバウ
ンス メールが顧客情報とともに記録されます。 このオプションを選択した場合は、システムのパフォー
マンスに影響が生じる可能性があります。
[レポート受信者のアドレス] は、メール受信サービスのレポートを受信する受信者のメール アドレス
です。 このレポートには、バウンス メールの総数と、バウンス コードあたりのバウンス メール数が
含まれます。 各ディスパッチの間隔は、[分単位の間隔] によって設定できます。
受信メールサービスは、取得したメールをディスク上に保存します。 システムが大量のバウンス メー
ルを受信する場合、これによってかなりの容量が費やされる恐れがあります。使用容量を減らすため
に、古いファイルを削除するようにサービスを設定できます。 この設定は、[日単位の間隔] で行いま
す。
バウンス コード
メールのバウンスは、さまざまな理由によって生じます。 Dialogue Server では、[バウンス メール
コード] によってこれらの理由が定義されます。 各バウンス コードは、メールがバウンスする理由を
表し、バウンス コードが異なるメールに対し、システムは異なる処理を行うことができます。
18
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
[バウンス アクション] は、特定のバウンス コードでバウンスされたメールの処理方法を定めるもので
す。 アクション タイプとしては、以下の 3 つがあります。
• [無視] - バウンス メールは無視され、システムは何のアクションも実行しません。
• [イベント] - システムがメールの元の受信者を特定できた場合に、イベントが投稿されます。
• [進む] - バウンス メールを特定のメール アドレスに転送します。
[メッセージ ログを更新] には、メールがバウンスされた場合に、データベース テーブル MESSAGE_LOG
を更新するかどうかを指定します。 この更新は、システムがバウンス メール内の情報から元のメール
を特定できた場合のみ実行されます。
活動セットアップ
[活動セットアップ] には、活動タイプとタスクの動作を設定するためのサブ ノードが含まれます。
活動タイプ
活動タイプは、Dialogue Database に格納された顧客活動を定義するものです。 活動は、顧客との対
話を表します。
任意の数の活動タイプを定義できます。 活動タイプの設定時には、ユーザーが Web アプリケーショ
ンによって手動でその活動を挿入可能かどうかを指定できます。 ダイアログの実行時に自動的にポス
トされる活動もありますが、ユーザーによって Web アプリケーションを介してポストされたり、他の
アプリケーション システムから Dialogue Server API を介して投稿される活動もあります。 Dialogue
Database に活動を直接投稿するためのストアド プロシージャが提供されています。
タスク フォローアップ オプション
タスク フォローアップ オプションは、タスクのフォローアップ日時を設定する際の標準値です。 任
意のオプション セットを定義することができ、定義した項目はユーザー インターフェースにおいて、
ドロップダウン リストに一覧表示されます。
タスク表示間隔
タスク表示間隔は、Customer View の [マイタスク] のリストをフィルタする際の標準値です。 任意の
間隔セットを定義することができ、定義した項目はユーザー インターフェースにおいて一覧表示され
ます。
タスク フィールド
タスク フィールドは、顧客ドメイン内のデータ フィールドに対応するフィールド セットです。
リファレンス ガイド
19
チャネル タイプ
タスクは、顧客ドメイン内の単一の顧客に関連付けられています (または顧客の下に登録されていま
す)。 タスクのリストを表示するとき、それらのタスクは異なるドメインからの顧客に関連付けられて
いる場合があります。 そのようなリストにおいて顧客情報を表示できるようにするために、[タスク
フィールド] の概念が導入されています。 タスク フィールドは、タスクで使用されている顧客ドメイ
ン内のデータ フィールドに対応します。 [タスク フィールド] 列を持つタスクのリストがシステムに
よって生成されるとき、異なるドメインからデータが取得され、これらの列に表示されます。
Dialogue Database において、TASK_FIELD テーブルは、タスク フィールドを定義し、
TASK_FIELD_MAPPING は、ドメイン フィールドへの参照を保持します。
タスク フィールドは、Visual Dialogue の [タスク マネージャ] と Customer View の [マイタスク] の両
方で使用されます。
チャネル タイプ
チャネル タイプは、顧客とのコミュニケーションに使用される、すべてのメディアやその他の手段ま
たは方法です。
チャネルには、電子メール、Fax、SMS といった物理的なコミュニケーション チャネルの他に、 ミー
ティングなどのコミュニケーション状態を表すものがあります。
Dialogue Database には、一連の標準的なチャネル タイプがインストールされていますが、適切なチャ
ネル タイプを自由に設定できます。
出力チャネル
出力チャネルは、アウトバウンド コミュニケーションの物理的な実装です。
例えば、電子メール チャネル タイプに対し、それに属する出力チャネルは、SMTP プロトコルを使用
してメールを送信するロジックを、チャネル プラグインによって実装します。
一部のチャネル タイプに対しては、適する物理的実装が複数存在します。例えば、SMS メッセージの
送信には、SMS サービス プロバイダ (SMS メッセージの配信に利用する電気通信事業者) によってさ
まざまな実装があります。
出力チャネル プラグインは、コントロール パラメータの集合を定義します。 これらのパラメータの
うちの一部は固定で、出力チャネル プロパティにおいて設定されます。 その他のコントロール パラ
メータは、各メッセージ テンプレートに対して設定されます。 以下の段落では、インストールされて
いる電子チャネルによって使用される固定のコントロール パラメータについて説明します。
電子メール メッセージ用の固定コントロール パラメータ
電子メール出力チャネルでは、以下の固定コントロール パラメータが使用されます。 これらのコント
ロール パラメータのほとんどは、標準的なメール プロトコルによって定義された値です。 ただし、
Dialogue Server に固有のものも一部存在します。
20
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
SMTP ホスト IP
メールの送信に使用される SMTP メール サーバーの名前または IP アドレス。
このパラメータは必須です。
SMTP ホスト ポー
ト
SMTP メール サーバーで使用されるポート番号。 既定値は 25 です。 このパラ
メータは必須です。
接続タイムアウト
SMTP メール サーバーへの接続を試みる際のタイムアウト値をミリ秒で指定し
ます。 このパラメータは必須です。
ユーザー名
認証が必要な場合に、SMTP メール サーバーにログオンするために使用する
ユーザー名を指定します。
パスワード
認証が必要な場合に、SMTP メール サーバーにログオンするために使用するパ
スワードを指定します。
メール エージェン
ト
電子メール メッセージを作成したプログラムを特定するための、オプションの
パラメータです。 既定値は MHDialogue Server です。
既定の文字セット
電子メール メッセージに使用される既定の文字セットを表します。 既定の文字
セットは UTF-8 です。
[コンテンツ転送エ
ンコーディング]
電子メール メッセージに使用される既定の転送エンコーディングを表します。
指定できるモードは次のとおりです。 quoted-printable、base64、および 7bit
です。 既定のエンコーディングは、quoted-printable です。
QuotedPrintable
RFC2045
メッセージを RFC 2045 準拠にするべきかどうかを指定します。 既定値は True
です。
メール アドレスの
バウンス
Return-path メール アドレスを指定します。 既定では (このフィールドが空の
場合)、Return-path ヘッダー フィールドには、メール メッセージの送信元フィー
ルドと同じ値が設定されます。 このパラメータは通常、すべてのバウンス メッ
セージを 1 つのバウンス アカウントにルーティングするために使用します。
エラー時にバウンス バウンス メールを生成して、バウンス メールを受信するように設定されている
を生成
メール アカウントに送信するかどうかを指定します。 True が設定されている
場合は、[ハードバウンス エラー コード] と [ソフトバウンス エラー コード] の
パラメータに指定されたエラーが発生した場合に、バウンス メールが生成され
ます。
ハードバウンス エ
ラー コード
ハード バウンス メールとして処理される SMTP エラー コードがコンマで区切
られたリスト。
ソフトバウンス エ
ラー コード
ソフト バウンス メールとして処理される SMTP エラー コードがコンマで区切
られたリスト。
出力ターゲット
メール送信プラグインの出力を指定します。 指定できるモードは次のとおりで
す。 なし、SMTP、およびファイルです。 既定値は SMTP です。
リファレンス ガイド
21
メッセージ タイプ
出力パス
出力ターゲットとしてファイルが使用される場合に、電子メール ファイルが保
存される場所へのフル パスを指定するために使用します。
Facebook メッセージ用の固定コントロール パラメータ
Facebook 出力チャネル用の固定コントロール パラメータはありません。 Facebook コントロール パ
ラメータはすべて、メッセージ テンプレートごとに設定されます。
FTP メッセージ用の固定コントロール パラメータ
FTP 出力チャネル用の固定コントロール パラメータはありません。 FTP コントロール パラメータは
すべて、メッセージ テンプレートごとに設定されます。
SMS メッセージ用の固定コントロール パラメータ
以下のコントロール パラメータは、SMS メッセージ タイプで使用します。
サーバー URL
SMS サービス プロバイダ会社によって提供されている SMS ゲートウェイの
URL。 [サーバー URL] は必須です。
注意: システムによって異なる SMS ゲートウェイ プロバイダを使用するように設定されるため、
SMS メッセージ タイプ用のコントロール パラメータは、インストールによって異なる場合が
あります。 ここに示したパラメータは、ノルウェーの ScanGIT SMS ゲートウェイ プロバイ
ダーで使用されているものです。
Twitter メッセージ用の固定コントロール パラメータ
Twitter 出力チャネル用の固定コントロール パラメータはありません。 Twitter コントロール パラメー
タはすべて、メッセージ テンプレートごとに設定されます。
メッセージ タイプ
メッセージ タイプは、メッセージの作成方法を定義するものです。 テンプレートまたはベース メッ
セージは、必ず 1 つのメッセージ タイプに基づきます。
メッセージ タイプは、プラグインを使用してメッセージを作成します。 このプラグインは通常、メッ
セージ テンプレートまたはベース メッセージに、(顧客ドメインからの) 顧客データをマージします。
メッセージ プラグインはカスタマイズ可能です。 既定プラグインとして、以下のプラグインが Dialogue
Server にインストールされています。
• MH Text Merge プラグイン
• MH RTF Merge プラグイン
• MH XSL Transform プラグイン
• MH MS Word Merge プラグイン
22
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
メッセージ タイプを設定する際には、一連のプロパティを設定できます。 最も重要なプロパティとし
ては、以下のものがあります。
• このタイプのメッセージの送信に使用するオプションの出力チャネル
• メッセージの作成 (マージ) に使用するプラグイン
• このメッセージ タイプが作成された場合に生成する既定の活動タイプ
• テンプレートやベース メッセージの編集に、組み込みメッセージ エディタを使用するか、または外
部エディタを使用するか
メッセージ ストレージの最適化
[ストレージの最適化を許可する] オプションでは、保存データの量を減らすために、データベースに
メッセージを格納する方法を最適化してよいかどうかを指定します。 使用されるメッセージ プラグイ
ンによって、ストレージの最適化がサポートされている必要があります。 MH Text Merge プラグイン
と MH RTF Merge プラグインは、ストレージの最適化をサポートします。 [ストレージの最適化を許
可する] が選択されていない場合は、最終的なメッセージ コンテンツが必ず保存されます。
リソース
リソースには、低レベルのシステム固有の項目のコレクションが含まれます。 これらの項目は通常、
他のシステムおよびデータ ソースとの統合や、カスタマイズされたプラグインの実装を担当する技術
ユーザーによって管理されます。
SQL リポジトリ
SQL リポジトリには、Dialogue Server で使用されるカスタマイズされた SQL ステートメントのグ
ループが含まれます。 以下のようないくつかの場合において、SQL クエリが追加およびカスタマイズ
される可能性があります。
• 顧客ドメインのデータを取得する場合
• 顧客ドメインからのデータを更新する場合
• カスタマイズされたプラグインから SQL ステートメントを実行する場合
• SELECT ステートメントを基に、ダイアログ内で 選択と分割のオペレーションを実装する場合
注意: [表示] > [システム データ] メニュー項目がオンになっている場合は、カスタマイズされた SQL
クエリに加えて、Dialogue Server の内部で使用される SQL クエリが表示されます。 これらの
SQL クエリは変更してはいけません。
リファレンス ガイド
23
セカンダリ データベース
セカンダリ データベース
SQL ステートメントは通常、既定の接続を使用して実行されます。 既定の接続は、Dialogue Database
への接続に使用される OLE DB 接続です。 ただし、Dialogue Server は、他の接続を介して他のデー
タベースからデータを取得しなければならない場合もあります。 例えば、一連の Paradox データベー
ス ファイルで顧客データベースが表されている場合があります。 このような代替データベースは、セ
カンダリ データベースと呼ばれ、独自のデータベース接続を持ちます。
セカンダリ データベースをセットアップする際には、OLE DB 接続文字列を設定します。 また、
Dialogue Server において SQL ステートメントのフォーマット方法がわかるように、データベース タ
イプも指定する必要があります。
ヒント: 多くの OLE DB ドライバー、および OLD DB を介してアクセスされる ODBC ドライバーは、
MTS トランザクションと接続プーリングをサポートしません。 これによって、「呼び出し元のトラン
ザクションに登録できませんでした」といったエラーが発生する可能性があります。 自動のトランザ
クション登録と接続プーリングを迂回するには、接続文字列に次の文字列を追加します。
;OLE DB Services=-3
-3 ではなく、0 または -4 が適切な値である場合もあります。 この設定を追加すると、このデータベー
ス接続のトランザクションが無効になることに注意してください。
Web Services
Web Services には、Dialogue Server に既知の Web サービスの集合が含まれます。 サーバーにおい
て Web サービスを呼び出す方法がわかれば、そのサービスを顧客ドメイン内のデータ ソースとして
使用したり、ダイアログ内のオペレーションから呼び出したりできます。
注意: Web Services とそのアプリケーションは、現バージョンでは完全には実装されていません。
プラグイン リポジトリ
プラグイン リポジトリには、カスタマイズ可能な関数を実装する一連のコード、つまり、プラグイン
が含まれます。 プラグインは、COM オブジェクト、.NET クラス、またはスクリプトとして実装およ
びインストールできます。 スクリプトとして実装する方法では、Windows スクリプトを使用し、イ
ンストールされるスクリプト言語として VBScript、JScript、および PerlScript をサポートします。
Dialogue Server は、必要になった場合にプラグインを読み込み、呼び出します。 例えば、ダイアログ
オペレーションが実行された時に、プラグインが呼び出されます。
プラグインの種類
プラグインには、以下の 6 つのグループがあります。
• 顧客データ プラグイン
顧客ドメインの定義において、顧客データを更新するために使用されるプラグインです。
• ダイアログ ブランチ プラグイン
24
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
ダイアログ オペレーションにおける分岐を実装するプラグインです。 システムにインストールされ
ている標準のブランチ プラグインの多くは、スクリプトとして実装されており、オープンソース化
されています。
• 式プラグイン
ユーザー定義の式関数を実装するプラグインです。
• メッセージ プラグイン
メッセージ作成のためのプラグインです。 例えば、ある標準プラグインは、Word テンプレートに
顧客データをマージします。
• 出力チャネル プラグイン
チャネルを介した物理的なコミュニケーション (アウトバウンド) を実装するプラグインです。 例え
ば、「メール送信プラグイン」は、SMTP プロトコルを介して電子メール メッセージを送信しま
す。
• 汎用プラグイン
カスタマイズされたロジックを実装するプラグインで、Dialogue Server API を介して呼び出すこと
ができます。任意の数の入力パラメータと 1 つの戻り値を持ちます。
これら 6 種類のプラグインは、それぞれ異なる実装規則に従います。 異なる種類のプラグインで実装
される関数は、それぞれ異なるものになります。 詳細については、「プラグイン API」の関数のセク
ションを参照してください。
COM オブジェクトとして実装されるプラグインのインストール
COM オブジェクトとして実装されるプラグインは、Dialogue Server をホスティングするマシン上で
ローカルに登録する必要があります。 COM オブジェクトは通常、Windows のツールである
regsvr32.exe を使用して登録します。 Dialogue Admin において、COM オブジェクトのクラス ID を
表す GUID を、[プラグイン プロパティ] ウィンドウに入力する必要があります。
NET クラスとして実装されるプラグインのインストール
.NET ベースのプラグインは、.NET クラス ライブラリ内のクラスとして作成されます。 ファイル名と
コンパイル済みライブラリ (アセンブリ) のパスを、Dialogue Admin の [プラグイン プロパティ] ウィ
ンドウで指定する必要があります。 このパスは、ネットワーク リソースではなく、Dialogue Server
をホスティングするマシン上のローカル パスでなければなりません。 また、クラスの名前と名前空間
を指定する必要があります。
.NET プラグインに対して、構成ファイル (app.config のようなもの) を指定できます。 構成ファイル
は、.NET アセンブリと同じディレクトリに配置し、アセンブリと同じ名前に .config を付けた名前に
する必要があります。 例 :アセンブリ myplugin.dll に対する構成ファイルの名前は、
myplugin.dll.config でなければなりません。
.NET ベースのプラグインに対しては、[常に個別のアプリケーション ドメインで実行する] というオプ
ションがあります。 このオプションが選択されている場合、そのプラグイン クラスの各インスタンス
は、新しい .NET アプリケーション ドメインに作成されます。 新しいアプリケーション ドメインを作
成するには、さらなる初期化処理が必要となり、これによってパフォーマンスが低下する可能性があ
リファレンス ガイド
25
ユーザーとセキュリティ
ります。 例えば、WCF (Windows Communication Foundation) の初期化が必要な場合には、パフォー
マンスは低下します。 しかし、例えば、スレッド セーフティの問題により、プラグインのインスタン
スを隔離する必要がある場合には、このオプションが使用できます。 「MH Send Email プラグイン」
に対しては、このオプションを必ず選択する必要があることに注意してください。
ユーザーとセキュリティ
[ユーザーとセキュリティ] には、システム ユーザー、ユーザー グループ、それらのアクセス権、ま
た、オブジェクト セキュリティを設定するためのサブ ノードが含まれます。
ユーザー
ユーザーは、Portrait Dialogue にアクセスするオペレータ (または個人) です。 ユーザーは、ユーザー
名、フルネーム、およびパスワードを持ちます。 それ以外に、メール アドレスや携帯電話番号といっ
た、いくつかのオプションのプロパティが設定できます。
ユーザーは、システムに対するそれぞれ異なるアクセス権を持ち、1 つ以上のユーザー グループに所
属できます。 ユーザーは、所属するグループのアクセス権を継承します。
「internal」という名前のユーザーは、内部で使用されており、変更してはいけません。
ヒント:ユーザーをコピーするには、ユーザーを選択し、メニューから [項目] > [コピー作成] を選択し
ます。
ユーザー グループ
ユーザー グループは、システム ユーザーのグループです。 グループに割り当てられたアクセス権は、
そのグループに所属するユーザーに継承されます。
アクセス権
以下の表に、ユーザーおよびユーザー グループに割り当てることのできる、さまざまなアクセス権の
説明を示します。
26
モジュール
アクセス権
説明
Dialogue Server
他のユーザー用のユーザー セッ
ションの作成を許可
ユーザーは、LoginDelegate API メソッドを
使用して、別のユーザーに代わってログオン
できます。
Dialogue Admin
Dialogue Admin へのログオンを ユーザーは、Dialogue Admin からのインスタ
許可
ンスにログオンできます。
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
Dialogue Admin でのデータの変 ユーザーは、Dialogue Admin のデータを変更
更を許可
できます。ただし、システム ユーザーとセ
キュリティに関連する変更を除きます。
Dialogue
システム セキュリティの変更を
許可
ユーザーは、Dialogue Admin のシステム セ
キュリティを変更できます。
Dialogue へのログオンを許可
ユーザーは、Dialogue にログオンできます。
新規ダイアログの作成を許可
ユーザーは、Dialogue において新規のダイア
ログを作成できます。
ダイアログの編集を許可
ユーザーは、Dialogue 内のダイアログを編集
および変更できます。
ダイアログの削除を許可
ユーザーは、Dialogue 内のダイアログを削除
できます。
ダイアログの実行を許可
ユーザーは、ダイアログの実行ビュー内のダ
イアログ オペレーションを実行できます。
ダイアログのクリアを許可
ユーザーは、ダイアログのすべての実行デー
タをクリアできます。これには、ダイアログ
からのすべての参加顧客の削除も含まれま
す。
アンケートのデザインを許可
ユーザーは、アンケートを作成、変更、削除
できます。
レスポンス データの削除を許可
ユーザーは、Dialogue からレスポンス デー
タを削除できます。
タスク オーガナイザへのアクセ
スを許可
ユーザーは、Dialogue 内でタスク オーガナ
イザ モジュールを開き、使用できます。 [タ
スクの要約] ビューへのアクセス権は含まれ
ません。
タスクの要約へのアクセスを許可 ユーザーは、[タスクの要約] ビューにアクセ
スできます (タスク オーガナイザへのアクセ
スも必要になります)。
新規レポート テンプレートの作
成を許可
ユーザーは、Dialogue 内に新規レポート テ
ンプレートを作成できます。
レポート テンプレートの編集を
許可
ユーザーは、Dialogue 内のレポート テンプ
レートを編集および削除できます。
メールとリンクの追跡データの削 ユーザーは、Dialogue からメールとリンクの
除を許可
追跡データを削除できます。
リファレンス ガイド
27
アクセス権
マスター テンプレートのデザイ
ンを許可
ユーザーは、マスター テンプレートを作成、
変更、削除できます。
コンテンツ オブジェクトのデザ
インを許可
ユーザーは、コンテンツ オブジェクトを作
成、変更、削除できます。
顧客データのエクスポートを許可 ユーザーは、Dialogue から顧客データをエク
スポートできます。
オブジェクトのエクスポートを許 ユーザーは、Dialogue からオブジェクトをエ
可
クスポートできます。
オブジェクトのインポートを許可 ユーザーは、Dialogue にオブジェクトをイン
ポートできます。
Customer View
28
Customer View へのログオンを許 ユーザーは、Customer View Web モジュール
可
にログオンできます。
顧客データの閲覧を許可
ユーザーは、顧客ドメインで顧客を検索し、
個々の顧客データを閲覧できます。
顧客データの編集を許可
ユーザーは、新規顧客を追加し、既存の顧客
を編集できます。
顧客の削除を許可
ユーザーは、既存の顧客を削除できます。
活動の編集を許可
ユーザーは、顧客の活動を追加および編集で
きます。
活動の削除を許可
ユーザーは、顧客の活動を削除できます。
メッセージの編集を許可
ユーザーは、顧客のメッセージを追加および
編集できます。
メッセージの削除を許可
ユーザーは、顧客のメッセージを削除できま
す。
回答フォームの表示を許可
ユーザーは、顧客に対して登録されている回
答フォームを表示できます。
回答フォームの編集を許可
ユーザーは、顧客の回答フォームを追加およ
び編集できます。
回答フォームの削除を許可
ユーザーは、顧客に対して登録されている回
答フォームを削除できます。
カテゴリ メンバーシップの編集
を許可
ユーザーは、カテゴリ メンバーシップを追加
および編集できます。
カテゴリ メンバーシップの削除
を許可
ユーザーは、カテゴリ メンバーシップをユー
ザーから削除できます。
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
ダイアログの閲覧を許可
ユーザーは、顧客が参加するブラウザを閲覧
できます。
ダイアログ参加顧客の編集を許可 ダイアログに参加顧客の手動挿入が許可され
ているグループがある場合、ユーザーは、そ
のダイアログに顧客を追加できます。
ダイアログ参加顧客の削除を許可 ユーザーは、顧客によるダイアログへの参加
を削除できます。
Telemarketing
Web
テレマーケティング プロジェク
トへのアクセスを許可
ユーザーは、Telemarketing Web モジュール
にログオンし、任意の TM プロジェクトにア
クセスできます。 これらのユーザーは、すべ
てのプロジェクトにおいてオペレータとして
行動できます。
注
意:
ユーザーは通常、Dialogue 内のテレ
マーケティング デザイナによってテレ
マーケティング オブジェクトに割り当
てられ、すべてのプロジェクトにアク
セスできるわけではありません。
TM プロジェクト レポートへのア ユーザーは、Telemarketing Web モジュール
クセスを許可
内のテレマーケティング レポート ページを
表示できます。
Report Portal
Report Portal へのログオンを許
可
ユーザーは、Report Portal にログオンできま
す。
レポートの実行を許可
ユーザーは、Report Portal からレポートを実
行できます。
アーカイブ化レポートの表示を許 ユーザーは、Report Portal からアーカイブ化
可
されたレポートを表示できます。
アーカイブへのレポートの保存を ユーザーは、Report Portal で実行したレポー
許可
トを、レポート アーカイブに保存できます。
アーカイブからのレポートの削除 ユーザーは、Report Portal からアーカイブ化
を許可
されたレポートを削除できます。
Dashboard
リファレンス ガイド
システム パラメータの上書きを
許可
ユーザーは、システム レポートにおけるユー
ザー ID とユーザー名のパラメータを変更で
きます。
Dashboard へのログオンを許可
ユーザーは、Dashboard にログオンできま
す。
29
オブジェクトのセキュリティ
個人用 Dashboard 設定の変更を ユーザーは、共有ウィジェットを自分用に設
許可
定し、独自のウィジェットを追加および設定
できます。
既定の Dashboards 設定の変更を ユーザーは、すべてのユーザーで共有される
許可
ウィジェットを追加および設定できます。
Web Portal
メッセージ デザイナへのアクセ
スを許可
ユーザーは、メッセージ デザイナにログオン
できます。
メッセージ デザイナ テンプレー ユーザーは、メッセージ デザイナ内のテンプ
トの編集を許可
レートを作成および編集できます。
メッセージ デザイナ テンプレー ユーザーは、メッセージ デザイナ内のテンプ
トの削除を許可
レートを削除できます。
スパム率テンプレートのデザイン ユーザーは、メッセージ デザイナ内のスパム
を許可
率機能を使用できます。
送信メッセージのテストを許可
ユーザーは、メッセージ デザイナ内のテスト
送信機能を使用できます。
Outlook プラグイン MS Outlook プラグインへのログ ユーザーは、Outlook プラグインにログオン
オンを許可
し、使用できます。
オブジェクトのセキュリティ
オブジェクトのセキュリティには、さまざまなタイプのオブジェクトが含まれます。これらのオブジェ
クトには所有権が設定可能で、また、ロック/ロック解除が適用可能である場合には、オブジェクトに
対するロック解除が可能です。
各オブジェクトには、所有者が存在します。 既定では、オブジェクトを作成したユーザーが所有者に
なります。
いくつかのオブジェクト タイプに対しては、Visual Dialogue においてオブジェクトを現在編集中の
ユーザーが、そのオブジェクトをロックできます。 オブジェクトを明示的にロック解除する必要があ
る場合には、[オブジェクトのプロパティ] ウィンドウにおいて、システム管理者がそれを行うことが
できます。
また、個々にアクセス権を設定できるオブジェクト タイプもあります。 そのようなオブジェクト タ
イプは、次の 4 つです。
• 顧客ドメイン
顧客ドメインには、詳細にアクセス権を設定できます。 これらのアクセス権は、Web アプリケー
ションのユーザーに適用されます。
• ダイアログ
30
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
各ダイアログには、詳細にアクセス権を設定できます。 これによって、Visual Dialogue 内のアクセ
ス権を制御します。
• レポート テンプレート
各レポート テンプレートには、詳細にアクセス権を設定できます。これによって、Visual Dialogue
内のレポート テンプレート デザイナへのアクセスと、Web Report Portal 内のテンプレートへのア
クセスの両方を制御します。
• テレマーケティング プロジェクト
各テレマーケティング プロジェクトは、オブジェクトとして表示されます。 「テレマーケティング
オペレータとして行動」などのアクセス権が設定可能です。
オブジェクトに適用されるアクセス権の説明
以下の表に、オブジェクトごとに、ユーザーおよびユーザー グループに割り当てることのできる、さ
まざまなアクセス権の説明を示します。
オブジェクトの
種類
アクセス権
説明
[顧客ドメイン]
Customer View で顧客データにア ユーザーは、ドメイン内で顧客を検索し、表
クセス
示できます。
顧客データの編集を許可
ユーザーは、ドメイン内で新規顧客を追加し、
既存の顧客を編集できます。
顧客の削除を許可
ユーザーは、ドメイン内の顧客を削除できま
す。
活動の編集を許可
ユーザーは、ドメイン内の顧客の活動を追加
および編集できます。
活動の削除を許可
ユーザーは、ドメイン内の顧客の活動を削除
できます。
メッセージの編集を許可
ユーザーは、ドメイン内の顧客のメッセージ
を追加および編集できます。
メッセージの削除を許可
ユーザーは、ドメイン内の顧客のメッセージ
を削除できます。
ドメイン内の回答フォームへのア ユーザーは、ドメイン内の顧客の回答フォー
クセスを許可
ムを閲覧および表示できます。
回答フォームの編集を許可
リファレンス ガイド
ユーザーは、ドメイン内の顧客に新しい回答
フォームを登録し、既存の回答フォームを変
更できます。
31
オブジェクトのセキュリティ
回答フォームの削除を許可
ユーザーは、ドメイン内の顧客に登録された
回答フォームを削除できます。
カテゴリ メンバーシップの編集を ユーザーは、ドメイン内の顧客のカテゴリ メ
許可
ンバーシップを追加および変更できます。
カテゴリ メンバーシップの削除を ユーザーは、ドメイン内の顧客のカテゴリ メ
許可
ンバーシップを削除できます。
ダイアログ参加顧客の編集を許可 ユーザーは、ドメイン内のダイアログ参加顧
客として顧客を追加できます。 これは、ダイ
アログに参加顧客の手動挿入が許可されてい
るグループがある場合のみ可能です。
ダイアログ参加顧客の削除を許可 ユーザーは、ドメイン内のダイアログ参加顧
客から顧客を削除できます。
ダイアログ
ダイアログを編集
ユーザーは、Visual Dialogue 内のダイアログ
を編集できます。
ダイアログを削除
ユーザーは、Visual Dialogue 内のダイアログ
を削除できます。
ダイアログを実行
ユーザーは、Visual Dialogue 内のダイアログ
の実行ビュー内のオペレーションを実行でき
ます。
[ダイアログをクリア]
ユーザーは、Visual Dialogue 内のダイアログ
をクリアできます。すべての参加顧客を含む、
ダイアログのすべての実行データが削除され
ます。
レポート テンプ レポート テンプレートを編集
レート
32
ユーザーは、Visual Dialogue 内のレポート テ
ンプレートを編集および削除できます。
レポートを実行
ユーザーは、Report Portal からレポートを実
行できます。
アーカイブ化レポートを表示
ユーザーは、Report Portal からアーカイブ化
されたレポートを表示できます。
レポートをアーカイブに保存
ユーザーは、Report Portal で実行したレポー
トを、レポート アーカイブに保存できます。
レポートをアーカイブから削除
ユーザーは、Report Portal からアーカイブ化
されたレポートを削除できます。
Portrait Dialogue 6.0 SP1
第 1 章 : Dialogue Admin
システム パラメータを上書き
ユーザーは、システム レポートにおけるユー
ザー ID とユーザー名のパラメータを変更でき
ます。
テレマーケティ テレマーケティング オペレータと ユーザーは、テレマーケティング プロジェク
ング プロジェク して行動
トにおいて TM オペレータとして行動できま
ト
す。 このアクセス権は、Visual Dialogue 内の
テレマーケティング デザイナによって割り当
てられます。
TM プロジェクト レポートへのア ユーザーは、Telemarketing Web モジュール
クセスを許可
においてプロジェクトのレポート ページを表
示できます。
ユーザー セッション ログ
ユーザー セッション ログは、現在ログインしているユーザーを含む、ユーザー ログインの履歴を提
供します。
ヒント:アクティブ ユーザーをログアウトするには、[アクティブ] ノードの下のユーザーを選択し、メ
ニューから [項目] > [セッションからログアウト] を選択します。
一般管理
一般管理は、その他の設定可能項目のコレクションです。
パラメータ コレクション
パラメータ コレクションは、システム パラメータの多様なセットです。 システム パラメータの設定
は、システム管理者によって変更が可能です。
パラメータ コレクションおよびパラメータを追加できます。
アプリケーション システム
アプリケーション システムは、Portrait Dialogue の標準アプリケーション モジュールか、または、
Dialogue Server に統合された他のシステムのいずれかです。 アプリケーション システムの概念は、
以下のコンテキストにおいて使用されます。
• LoginLogin
アプリケーション が Dialogue Server にログオンする際には、有効なアプリケーション システムを
指定する必要があります。
リファレンス ガイド
33
テーブルのメンテナンス
• イベント
Dialogue Server にイベントが投稿されると、サーバーはそのイベントを投稿したアプリケーション
システムの追跡を開始します。
テーブルのメンテナンス
テーブルのメンテナンスは、ユーザーに Dialogue Database 内のデータベース テーブルに対する次の
アクセスを提供します。
• プロパティ
テーブルを選択して、 [項目] > [プロパティ] を選択すると、選択されたテーブル内の列のリストを、
説明とともに表示します。
• 開く
テーブルを選択して、 [項目] > [開く] を選択すると、選択されたテーブル内のデータが編集できま
す。
警告: データベース テーブルのデータの編集は、必ず Dialogue Database モデルを理解している認定
された技術者が実施してください。
テスト ユーティリティ
マイクロソフト サポートは、MSDTC トランザクションと関連するエラーのデバッグに、次の 3 つの
コア ユーティリティを使用します。
• DTCPing - http://support.microsoft.com/default.aspx?scid=kb;en-us;306843 からダウンロード
および参照できます。 DTCPing ツールを使用すると、ファイアウォール全体、またはネットワーク
の分散トランザクション サポートを確認できます。 DTCPing ツールは、クライアント コンピュー
タとサーバー コンピュータの両方にインストールする必要があります。このツールは、どちらのコ
ンピュータにも SQL Server がインストールされていない場合に、DTCTester ユーティリティの代
わりに使用できます。
• DTCTester - http://support.microsoft.com/default.aspx?scid=kb;en-us;293799 からダウンロー
ドおよび参照できます。 DTCTester ツールを使用すると、ファイアウォール全体、またはネット
ワークの分散トランザクション サポートを確認できます。 DTCTester ユーティリティでは、ODBC
を使用して SQL Server データベースのトランザクション サポートを確認します。そのため、テス
トするコンピュータのうちの 1 台に SQL Server をインストールする必要があります。
• NetMon - Windows セットアップ ディスクまたはリソース キットに格納されています。
34
Portrait Dialogue 6.0 SP1
顧客ドメインと式
• 顧客ドメインと式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
• ドメインの作成手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
• Visual Dialogue における顧客ドメイン . . . . . . . . . . . . . . .40
• Customer View における顧客ドメイン . . . . . . . . . . . . . . . .41
• 顧客ドメイン設定の詳細情報 . . . . . . . . . . . . . . . . . . . . . . . .42
• 顧客ドメイン検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
• 計算式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
2
顧客ドメインと式
顧客ドメインと式
はじめに
Portrait Dialogue では、多様なソースからの顧客データにアクセスできます。 顧客データのアクセス
方法を定義するために、顧客ドメインの概念が導入されています。
顧客ドメインは、Dialogue Admin で設定され、Dialogue Server におけるあらゆる種類の顧客を表し
ます。 顧客ドメインの例としては、 個人、B2B 市場、世帯、見込み顧客などがあります。 顧客ドメ
インは、複数のソースからのデータによって構成される場合があります。
Dialogue Server は、顧客ドメイン定義を使用することによって、顧客データにアクセスし、また、そ
の API を介してこれらのデータにアプリケーションからアクセスできるようにします。
顧客ドメインの上に、式言語が定義されます。 式は、顧客データをクエリするための統一された方法
で、情報の基盤にあるソースには依存しません。
ドメインの作成手順
ドメインの作成手順では、ドメインの設定方法について説明します。 簡単なドメインを作成する方法
を、順を追って説明します。
このチュートリアルで作成されるドメインは、標準の顧客データベースにおける個人を表すものです。
チュートリアルの最初のステップは、「メイン グループ SQL を作成する」ことです。
ステップ 1 - メイン グループ SQL を作成する
顧客ドメインを定義するにはまず、データベースから顧客を選択するための SQL ステートメントを記
述する必要があります。 これは、ドメイン内のメイン データ グループを定義するものであるため、
メイン グループ SQL と呼ばれます。
この例では、標準の顧客データベースから個人を選択します。 これを行うには、顧客と個人の 2 つの
テーブルからの選択が必要です。 下の図に示されているように、2 つのテーブルから適切な列を取得
するための SELECT ステートメントを記述します。
36
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
SQL ステートメントは、Dialogue Admin 内の SQL リポジトリに格納されます。 SQL リポジトリに
SQL 定義を追加するには、ブラウザ (画面左側) で SQL グループを選択し、メニューから [項目] > [新
規...] を選択します。
ステップ 2 - ドメインを追加する
2 つめのステップでは、ドメインそのものを追加します。 Dialogue Admin で [顧客ドメイン] ノードを
強調表示し、メニューから [項目] > [新規...] を選択します。 新しいドメインの名前を尋ねるウィンド
ウがポップアップします。
名前を入力すると、Dialogue Admin 内に顧客ドメイン エディタが表示されます。
リファレンス ガイド
37
ステップ 3 - メイン データ グループを追加する
ステップ 3 - メイン データ グループを追加する
次のステップでは、ステップ 1 で定義した SQL を使用して、ドメインにメイン データ グループを追
加します。 メニューの [グループ] > [新規...] を選択することによって、新しいグループを追加します。
[グループのプロパティ] ウィンドウが表示されます。
まず、メイン グループの名前を選択し、オプションとして説明を入力します。
次に、[データ ソース] タブを選択して、ステップ 1 で作成した SQL をグループに関連付けます。
「...」と記されたボタンを使用して、SQL を選択します。 SQL ブラウザ ウィンドウが表示されます。
ステップ 1 で作成した SQL を検索し、[OK] をクリックします。 これで、グループは、指定された
SELECT ステートメントを使用してデータを取得するように設定されました。
[グループのプロパティ] ウィンドウの [OK] をクリックして、グループの追加を完了します。
ステップ 4 - フィールドを追加する
メイン データ グループを追加したら、次に、グループにフィールドを追加する必要があります。 メ
ニューの [フィールド] > [フィールド リストを更新...] を選択します。 すると、SQL の SELECT 句の
列が、グループのフィールドとして表示されます。
ドメイン内の顧客を一意に識別できるようにするには、システムに対して、顧客を一意に識別する
フィールドを指定しなければなりません。 そのためには、1 つのフィールドを、グループを識別する
フィールドとして指定する必要があります。 顧客データベースでは、顧客テーブルの列 cust_char_id
が、ドメインの一意の ID として機能するように設計されています。 一意の ID を指定するには、
cust_char_id を強調表示して、メニューから [フィールド] > [ID として使用] を選択します。すると
cust_char_id が ID フィールドとしてマーク付けされ、フィールド名の前にこれを表すキー アイコン
が表示されます。
ステップ 5 - フィールド プロパティを編集する
フィールドには、設定可能な多数のプロパティがあります。 すべてのプロパティの詳細については、
「フィールド:(48ページ)」を参照してください。
プロパティ ウィンドウの [全般] タブでは、フィールドにデータベースの列名とは異なるわかりやすい
名前を付けることができます。また、ユーザーがフィールドについて理解できるように、フィールド
の詳細な説明を加えることができます。
プロパティ ウィンドウの [Web] タブでは、フィールドを Customer View で検索可能にするかどうか
といった、Web アプリケーションに関連するオプションを設定できます。
ステップ 6 - 新しいドメインを有効にする
以上で新しいドメインは、いよいよテストできる段階に近づいてきました。 ただしその前に、ドメイ
ンを有効にして保存する必要があります。
38
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
ドメインのいくつかの主要なプロパティは、ドメインのプロパティ ウィンドウで制御されます。 この
ウィンドウを開くには、メニューから [ファイル] > [プロパティ...] を選択します。
ドメインを有効にするには、このプロパティ ウィンドウで [有効] をオンにします。 ドメインが既定で
無効になっているのは、作成中のドメインが、Web アプリケーションのエンドユーザーから見えては
いけないためです。
ドメインを Customer View で使用可能にするには、プロパティ ウィンドウの [Web] タブをクリック
します。 [Customer View で表示] をオンにします。 これで、ドメインが Customer View の検索ペー
ジ上に表示されるようになります。
[Web] タブには、他にもいくつかのオプションがあります。
[メモ フィールド] は、Customer View の別のタブに表示されるオプションのフィールドです。
[アドレス グループ] は、アドレスを含むオプションのグループです。 指定した場合は、Customer View
のユーザー インターフェースにおいて特別に処理されます。
[Customer Web プロファイルで有効にする] は、Customer Web アクセス アプリケーションで、この
ドメインの顧客プロファイル ページを有効にするかどうかを指定します。 有効にした場合は、このド
メインの顧客に、プロファイル ページへのリンクを含む電子メールを送信できます。
[表示フィールド] は、Customer View の最近表示した顧客のリストなど、顧客へのリンクを作成する
ときに表示するフィールドです。 既定では顧客 ID が使用されますが、よりユーザーフレンドリーな
表示名とするために、このチュートリアルでは、姓と名を連結したものを使用します。
最後に、ドメインのプロパティ ウィンドウを閉じ、メニューの [ファイル] > [保存] を選択して、新し
いドメインに加えたすべての変更を保存します。
ステップ 7 - Customer View でドメインをテストする
新しいドメイン内の顧客を閲覧するには、Customer View を開き、左側のメニューから [検索] > [ドメ
イン名] を選択します。 ドメインのフィールドが、検索条件として使用可能になっています。 また、
SQL から取得した名前ではなく、新しく編集したフィールド名が表示されています。
何らかの検索条件を入力して検索を実行します (例えば、[名] フィールドに A* を入力します)。 顧客を
表示するには、[検索結果] リストの 1 つの顧客をダブルクリックします。
ステップ 8 - セレクション デザイナでドメインをテストする
新しいドメインをセレクション デザイナでテストするには、Visual Dialogue を起動し、メニューから
[ファイル] > [新規作成] > [セレクション] を選択します。 [新規セレクション ウィザード] が表示され、
[顧客ドメイン] ドロップダウン リストで新しい顧客ドメインを選択できます。
セレクション デザイナは最初、条件がまったく定義されていない状態で表示されます。
画面の右側にある Visual Dialogue のツールボックスには、新しいドメインのフィールドが表示されて
います。 ツールボックスは、ユーザーによるセレクション条件の定義を支援します。
リファレンス ガイド
39
ステップ 9 - ドメインに関する詳細情報
例えば、[登録日] フィールドに関連する条件を定義するには、ツールボックスの中の [登録日] をダブ
ルクリックします。 [条件] ウィンドウがポップアップします。
条件を定義したら、 [セレクション] > [セレクションをサンプリング] を使用して、条件を満たす顧客
をプレビューできます。
ステップ 9 - ドメインに関する詳細情報
顧客ドメインの詳細については、「顧客ドメイン設定の詳細情報」のセクションを参照してください。
このセクションには、ドメインとそのグループおよびフィールドの、すべてのプロパティについて記
載されています。
Visual Dialogue における顧客ドメイン
Visual Dialogue の中のさまざまなモジュールが、顧客ドメイン定義を使用することにより、ユーザー
によるセレクション、ダイアログ、およびメッセージ テンプレートのデザインを可能にしています。
顧客ドメインとダイアログ
ダイアログは必ず、1 つの特定の顧客ドメインに関連付けられます。つまり、そのダイアログのすべ
ての参加顧客は、その顧客ドメインに所属します。 この制約があるのは、ダイアログ内の操作がドメ
インの定義に基づいて設定されるためです。
ダイアログを実行すると、ドメインの顧客データがさまざまな方法で使用されます。 例えば、メール
オペレーションでは、メールのコンテンツを作成する際に、顧客ドメインを介してデータを取得しま
す。 分割オペレーションでは、顧客データを使用して、顧客を異なるグループに分割する方法を決定
します。
ダイアログ グループ内の参加顧客を参照する際には、表示する情報を取得するために、顧客ドメイン
を使用します。
顧客ドメインとセレクション
Visual Dialogue でセレクションをデザインするとき、ユーザーは顧客ドメインを介して提供される情
報に基づいて条件を作成できます。 セレクション条件は、式言語を使用してドメイン内のグループや
フィールドを指定することによって、定義します。 1 つのセレクションは必ず、1 つの特定の顧客ド
メインに関連付けられます。
セレクション内の顧客を表示するとき (セレクションのサンプリング)、表示される情報は、ドメイン
のすべてのフィールド、またはそのサブセットです。
顧客ドメインとメッセージ
新しいメッセージ テンプレート (電子メール、SMS、エクスポートなど) を作成する場合、ユーザーは
対象とする顧客ドメインを選択する必要があります。 テンプレートをデザインするとき、ユーザー
40
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
は、テンプレートにマージするフィールドをドメインから選択できます。 例えば、電子メールの送信
先アドレスに、ドメインで定義された個人のメール アドレスを設定する場合があります。 また、顧客
とのコミュニケーションをパーソナル化するために、顧客名などの情報を含める場合があります。
Customer View における顧客ドメイン
Customer View は、顧客情報を検索、表示、編集するための顧客指向の Web アプリケーションです。
Customer View は、顧客ドメインの概念に深く基づいています。 Customer View で使用可能な顧客
データは、顧客ドメインで定義されたグループおよびフィールドです。
顧客の検索
顧客ドメイン内のすべてのフィールドは、Customer View で検索可能となるように設定できます。 多
くの場合、検索ページには、少数のフィールドを表示するのが適しています。 これは、Dialogue Admin
で設定できます。
ユーザーが 1 つ以上の条件で検索を実行すると、Customer View は、バックグラウンドで検索式を作
成し、それを Dialogue Server に送信します。 すると、ドメインからの顧客データのセットが、XML
ドキュメントとして Customer View に返されます。
顧客の表示
Customer View で特定の顧客を開くと、Customer View は Dialogue Server に対し、ドメイン内で使
用可能なデータをクエリします。 顧客ページは、顧客ドメインの設定に基づいて動的に作成されま
す。
顧客の登録または編集
顧客データを登録および更新するために使用する Web ページは、ドメイン定義を使用して動的に作成
されます。 ドメインのグループおよびフィールドは、Dialogue Admin において、更新可能であるよう
に設定できます。
変更が適用されると、それらは XML ドキュメントとして Dialogue Server に送信されます。 サーバー
はデータを検証し、変更を適用するために必要な処理を実行します。 以上すべてが、現在のドメイン
設定に基づいて行われます。
ドメインで定義されたフィールド検証ルールは、顧客編集 Web ページにおいて JavaScript として動
的に実装されます。
ドメインの検索フィールドは、顧客の編集時にコンボ ボックスとして表示できます。
また、別のフィールドに値が設定されたときに、フィールド値を検索するルールを定義できます。 例
えば、ユーザーが [郵便コード] を入力したときに、[町] を検索できます。 このような検索は、ドメイ
ン内で定義され、JavaScript における Web サービス呼び出しとして実装されます。
リファレンス ガイド
41
顧客ドメイン設定の詳細情報
その他の Web アプリケーション
その他の Web アプリケーションとして、Telemarketing やCustomer Web アクセスがあります。
Customer View と同様に、これらのアプリケーションは、ドメイン定義を使用して、顧客データを表
示および編集するためのページを動的に作成します。
独自の Web アプリケーションの作成
Microsoft ASP.NET において Web アプリケーションを作成するためのフレームワークが提供されてい
ます。 このフレームワークは Web Framework と呼ばれ、インストール メディア に完全なドキュメン
トが含まれています。
Web Framework は、Dialogue Server と通信する Web アプリケーションにおいて必要となる、共通
サービスを提供するために作成されたクラス ライブラリです。 このフレームワークによって、顧客
データを参照および更新するアプリケーションが容易に記述できます。
すべての標準の Web アプリケーションは、Web Framework を使用します。
顧客ドメイン設定の詳細情報
顧客ドメインは、Dialogue Admin で定義されます。
新しいドメインを作成するには、Admin ブラウザで [顧客ドメイン] というノードを強調表示し、メ
ニューから [項目] > [新規] を選択します。 既存のドメインを編集するには、Admin ブラウザでドメイ
ンを強調表示し、メニューから [項目] > [開く] を選択します。
顧客ドメイン編集ウィンドウを、以下に示します。 左側のアウトラインには、ドメインのデータ グ
ループが含まれます。 最上位ノードは、ドメイン内のすべての顧客を定義するメイン グループです。
サブグループは、勤務先企業、住所、活動などの追加情報です。
ウィンドウの右側部分には、 [データ フィールド] と [パラメータ連結] という 2 つのモードがありま
す。 モードの切り替えは、下部のタブで行います。 [データ フィールド] モードは、左側で選択されて
いるデータ グループで定義されているすべてのフィールドを表示します。 これらのフィールドには、
データ型やサイズなど多数のプロパティがあります。 [パラメータ連結] モードは、サブグループ内の
フィールドのメイン グループとの関係を表します。
顧客ドメインのプロパティ
顧客ドメインには、一連のプロパティがあります。 プロパティを確認または編集するには、メニュー
の [ファイル] > [プロパティ] を選択します。 プロパティ ウィンドウは、いくつかのタブに分割されて
います。
--> 全般プロパティ
--> Web プロパティ
--> ログイン プロパティ
42
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
一般プロパティ
プロパティ ウィンドウの最初のタブには、主要なドメイン情報が含まれています。 [顧客ドメインに
使用するルート ディレクトリ] は、ドメインに関連するファイルが保存される場所のパスです。 ファ
イルとしては、テンプレート、メッセージ、ログなどがあります。 このパスは通常、ドメインの作成
時に自動生成されるため、ユーザーによって変更されることはありません。
[有効] がオフになっている場合は、ドメインは無効となり、クライアント アプリケーション (Customer
View、Visual Dialogue など) で使用できなくなります。
Web プロパティ
プロパティ ウィンドウの 2 つめのタブには、Web アプリケーションに関連する設定が含まれます。
[Customer View で表示] をオンにすると、ドメインが Customer View において使用可能になります。
[メモ フィールド] は、Customer View の顧客ページの [メモ] タブに表示されるオプションのフィール
ドです。
[アドレス グループ] は、アドレス情報を含むデータ グループです。 これを設定すると、このグループ
が Customer View においてより適切に表示されます。
[重複チェックを有効にする] は、このドメインで重複チェックが有効になっているかどうかを指定し
ます。 重複チェックは、Customer View において顧客が挿入または編集されたときに使用します。 重
複チェックを使用するには、[重複チェックを有効にする] をオンにして、ドメインのメイン データ グ
ループの更新プラグインにおいて、CheckForDuplicates(...) メソッドを実装します。 更新プラグイン
の詳細な実装方法については、「顧客データ プラグイン」を参照してください。
[Customer Web プロファイルで有効にする] は、顧客 Web アクセス アプリケーションで、このドメイ
ンの顧客プロファイル ページを有効にするかどうかを指定します。 有効にした場合は、このドメイン
の顧客に、プロファイル ページへのリンクを含む電子メールを送信できます。
[表示フィールド] は、顧客を参照する際に、表題やショートカットに表示されるドメイン フィールド
です。 [表示フィールド] が指定されてない場合は、顧客 ID が表示されます。
ログイン プロパティ
プロパティ ウィンドウの 3 つめのタブには、組み込みの顧客認証機能に関連する設定が含まれます。
[顧客ログインを有効にする] をオンにすると、現在の顧客ドメインに対する顧客ログインが有効にな
ります。
顧客ログインによって、Customer Web アクセス アプリケーションにおける顧客の認証が可能になり
ます。 例えば、顧客に対し、アンケートに回答する前にログインするよう求めることができます。 ロ
グインによって顧客は特定され、回答フォームはその顧客に関連付けられることになります。
また、ログイン機能は、カスタマイズされたアプリケーションにおいて、Dialogue Server API で顧客
が使用可能であることを認証するための手段として、使用することもできます。
リファレンス ガイド
43
データ グループ
[ログイン ID] を選択する必要があります。 これは、顧客ドメインにおける一意のフィールドでなけれ
ばなりません。 通常、(以下のスクリーン ショットに示されているような) 連絡先 ID は一意ですが、
名 (ファーストネーム) は一意ではありません。
[パスワード] は、Dialogue Server によって自動生成するように設定するか、1 つのドメイン フィール
ドをパスワードとして選択できます。
[Web プロファイルのログインにパスワードは不要] は、顧客がWeb プロファイルにログインする際
に、([ログイン ID] とパスワードの両方ではなく) [ログイン ID] のみを指定すればよいかどうかを表し
ます。 アンケートに対しては、この動作を Visual Dialogue においてアンケートごとに制御できます。
データ グループ
グループ タイプの種類
ドメインには必ず、顧客データのメイン グループが含まれます。 このメイン グループのデータの取
得には必ず、顧客ごとに正確に 1 行のデータセットを返す SQL SELECT ステートメントを使用する
必要があります。 返されるデータセットの列の 1 つは、mh_customer_id という、顧客を特定するも
のです。
顧客ドメインはさらに、顧客データのサブグループを含むことができます。 これらのデータ グループ
には、以下のような異なるタイプがあります。
• 1 対多グループ (複数の行を返す)
このタイプのグループは、顧客ごとに任意の数の行を返します。 例 : 会社の全従業員 (この場合、メ
イン グループには会社が含まれます)。
• 1 対 1 グループ
このタイプのグループは、顧客ごとに 1 行を返すか、または行を返さないかのいずれかになります。
例 : 顧客の代表郵送先住所。
• ブール値グループ タイプ
このタイプのグループは、与えられた顧客に対して True または False のいずれかの値をとる、ブー
ル型のデータ フィールドを定義します。 例 : 顧客がクレジット カード会員として適格かどうかを審
査する高度な SQL が挙げられます。
注意: 多数の顧客を扱う場合に、最大限のパフォーマンスを得るには、Dialogue Database と同一の
データベース接続 (接続文字列) によってドメイン データにアクセスできるようにする必要があ
ります。
システム グループ
システム グループは、システムそのものによって定義された特殊なグループです。 システム グルー
プについては、「システム グループ」のセクションを参照してください。
44
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
新規グループの追加
ドメインに新しいデータ グループを追加するには、ドメイン ウィンドウの左側のグループ アウトラ
インをクリックし、メニューから [グループ] > [新規...] を選択します。 [グループのプロパティ] ウィ
ンドウが表示されます。
[グループのプロパティ] ウィンドウ
[データ グループ プロパティ] ウィンドウには、グループ タイプ、データのソース、データの更新方
法、および Web 設定に関する設定が含まれます。 プロパティ ウィンドウは、いくつかのタブに分割
されています。
--> 全般プロパティ
--> データ ソース プロパティ
--> データの更新プロパティ
--> Web プロパティ
一般プロパティ
この最初のタブには、主要なプロパティが含まれます。 [グループ名] はグループの名前です。 名前に
は、英字 (大文字と小文字)、数字、アンダースコアが使用できます。 名前の先頭文字は英字でなけれ
ばなりません。 空白は使用できません。 式関数の名前は予約語であり、グループ名として使用するこ
とはできません。 また、名前は、Extensible Markup Language (XML) 1.0 (第 4 版) の名前の構文に
準拠する必要があります。 顧客ドメイン検証機能を使用して、名前を検証することが必要です。
[高度な使用専用] は、グループを通常はユーザーに対して非表示にする場合に選択します。
[ブール値グループ タイプ] は、このグループがブール値グループ タイプであるかどうかを表します。
[1 対多グループ タイプ] は、このグループが顧客ごとに複数のレコードを返すかどうかを表します。
[既定の行の式(オプション)] は、1 対多グループの既定の行を取得するための式です (現在は使用され
ていません)。
[ID フィールド] は、グループの一意のキーです。 メイン グループ以外のすべてのグループに対して
は、オプションになります。 メイン グループでは、顧客 ID (mh_customer_id) を表します。 [ID フィー
ルド] は、フィールド選択時に [フィールド] メニューから設定することもできます。
データ ソース プロパティ
[データ ソース] タブでは、ユーザーはデータのソースを選択できます。 これは、SQL リポジトリの中
の SQL ステートメントを選択することによって行われます。 ユーザーは通常、新しいデータ グルー
プを作成する前に、SQL ステートメントを定義します。
一般的に SQL ステートメントは、グループのフィールドに対応する列を選択するものです。 しかし、
グループ タイプによって、以下のような異なる規則が SQL ステートメントに適用されます。
• メイン グループ
リファレンス ガイド
45
データ グループ
メイン グループの SQL は、顧客 ID フィールドを必ず返す必要があります。 この ID フィールドの
列は、文字列でなければならないことに注意してください。
• 1 対 1 グループ
1 対 1 グループの SQL クエリは、顧客ごとに 1 行だけ返すか、行を返さないかのいずれかである必
要があります。 複数の行が返されると、ドメインは正常に機能しません。
• 1 対多グループ
1 対多グループの SQL クエリは、顧客ごとに任意の数の行を返すことができます。
• ブール値グループ タイプ
ブール型グループは、true または false の値を表します。 ブール型グループの SQL は、グループに
よって定義されたブール型のフィールドが true と評価された場合は、1 つの行を返します。 false と
評価された場合には、行を返しません。 この SQL は、顧客に対して複数行を返してはいけません。
[データを個別のクエリで取得する] のオプションは、Dialogue Server において、ドメイン グループか
らデータを取得するための SQL クエリを作成する方法に影響を与えます。 これをオンにすると、サー
バーは、選択された SQL を他のドメイン グループの SQL ステートメントに結合するのではなく、個
別のクエリによって、このドメイン グループにアクセスしようと試みます。 一方、オフにした場合
は、サーバーは、ドメインのメイン グループの SQL に外部結合することを選択します。 このオプショ
ンは、1 対 1 グループにのみ適用されることに注意してください。
データ ソースを指定したら、ユーザーは [OK] をクリックし、続いてメニューから [フィールド] >
[フィールド リストを更新] を選択します。 すると、ドメイン ウィンドウに、SQL からのすべての使
用可能なフィールドが表示されます。
SQL ステートメントに、ホスト変数を含むことはできません。 ただし、メイン グループのデータに
関連付ける必要のある列は、select の部分に含め、パラメータ連結として定義する必要があります。
新しいパラメータ連結を追加するには、メイン メニューから [パラメータ] > [新規...] を選択します。
ウィンドウが表示され、ユーザーは、新しいデータ グループのフィールドを選択し、それをメイン グ
ループのフィールドまたは定数値にバインドできます。
[データ ソース] タブにおいてグレー表示されている部分は、将来使用するためのもので、このバージョ
ンでは無効です。
データの更新プロパティ
オプションで、データ グループを更新可能にすることができます。 データを更新するための、次の 2
つの方法がサポートされています。
1) [自動更新] は、1 つのデータベース テーブルのみの更新をサポートします。 この方法では、Dialogue
Server が更新を適用するための SQL ステートメントを生成します。 更新するテーブルの名前を指定
する必要があります。 オプションとして、Dialogue Server は、レコード挿入時に一意の ID を生成で
きます。生成された ID は、([全般] タブで) [ID フィールド] として指定されたフィールドに設定されま
す。 この機能を使用するには、シーケンスの一意の名前を指定する必要があります
(MY_SEQ_PERSONS など)。
46
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
2) [データの更新にプラグインを使う] は、最も柔軟性の高い更新方法です。 ユーザーは、更新処理が
スクリプトとして実装されているプラグインを指定することになります。 プラグインは、プラグイン
リポジトリで定義する必要があります。 更新プラグインの詳細な実装方法については、「顧客データ
プラグイン」を参照してください。
Web プロパティ
[Customer View で表示] は、Customer View で顧客を開いたときに、データ グループを表示するかど
うかを表します。 このプロパティをオフにすると、その設定が、データ フィールドに対する同様の設
定よりも優先されます。
[データをオンデマンドで読み込む] は、このグループのデータのリストを含むタブをユーザーがクリッ
クしたときに、Customer View がこのデータ グループからデータを取得するかどうかを表します。 こ
れをオフにすると、データは顧客ページを開いたときに取得されます。 この設定は、Customer View
の顧客ページの下部 (タブ ビュー) に表示されるデータ グループに適用されます。
[Customer View で検索可能] は、このデータ グループからのフィールドを Customer View の検索フィー
ルドとして表示してよいかどうかを表します。 このプロパティをオフにすると、その設定が、データ
フィールドに対する同様の設定よりも優先されます。
[タブ付き編集モードを使う] は、1 対多グループのみに適用されます。 このオプションをオンにする
と、グループは Customer View の顧客ページの上部に表示されます。 グループ内のデータ行は、ド
ロップダウン リストによって切り替えることができます。 ドロップダウン リストに表示される値は、
[タブ表示フィールド] に指定されたものです。 例えば、顧客に複数の住所がある場合には、このオプ
ションが適しています。
システム グループ
システム グループは、定義済みの特殊なグループです。 これらのグループには、Dialogue Server デー
タベースからの顧客に関するデータが含まれます。
新規システム グループの追加
ドメインに新しいシステム グループを追加するには、ドメイン ウィンドウの左側のグループ アウト
ラインをクリックし、メニューから [グループ] > [新規システム グループ...] を選択します。 ウィンド
ウが表示され、ユーザーは使用可能なシステム グループから選択できます。 複数のグループを同時に
選択できます。
ユーザーが [OK] をクリックすると、グループとそのフィールドが直ちにドメインに追加されます。
システム グループとそのフィールドのプロパティは、通常のデータ グループほど柔軟性の高いもので
はありません。 しかし、その名前や説明を変更することはできます。 Web プロパティも変更可能で
す。
システム グループの種類
システムには現在、5 種類のシステム グループが提供されています。 これらのグループはすべて、1
対多グループです。 将来的には、さらにグループが追加される可能性があります。
リファレンス ガイド
47
フィールド:
[活動] は、顧客に関連するすべての活動に関する情報を含みます。
[回答フォーム] は、顧客に関連するすべての回答フォームに関する情報を含みます。 このグループに
は、回答フォームごとに 1 つのデータ行があります。
[カテゴリ] は、顧客が所属するすべてのカテゴリに関する情報を含みます。
[ダイアログ] は、顧客が参加するダイアログに関する情報を含みます。 このグループには、アクティ
ブな参加顧客ごとに 1 つのデータ行があります。
[メッセージ] は、顧客に送信されるメッセージごとに 1 つのデータ行を含みます。
フィールド:
フィールドは、ドメイン内の顧客に関するデータの単一の値を表します。 フィールドには、最も重要
なプロパティとして名前とデータ型があります。
グループのデータ ソースによって、そのデータ グループに含まれるフィールドの集合が定義されま
す。 これらは、通常のデータ フィールドです。 グループにはさらに、検索ソースから取得されたデー
タに基づく仮想フィールドである検索フィールドが含まれる場合があります。 検索フィールドについ
ては、後のそれに関するセクションで説明します。
[フィールドのプロパティ] ウィンドウ
フィールドのプロパティを編集するには、フィールドをダブルクリックするか、メニューの [フィール
ド] > [プロパティ...] を選択します。 [フィールドのプロパティ] ウィンドウには、名前、データ型、検
索の動作、検証、論理コンテンツ、Web に関する設定が含まれます。
--> 全般プロパティ
--> 検索プロパティ
--> 検証プロパティ
--> コンテンツ タイプ プロパティ
--> Web プロパティ
一般プロパティ
この最初のタブには、主要なプロパティが表示されます。 [フィールド名] は、アプリケーションに表
示されるフィールドの名前です。 基盤となるフィールドの名前 (多くの場合は、データベースにおけ
る対応する列の名前) である [ソース フィールド名] とは異なる場合があります。 名前には、英字 (大
文字と小文字)、数字、アンダースコアが使用できます。 名前の先頭文字は英字でなければなりませ
ん。 空白は使用できません。 式関数の名前は予約語であり、フィールド名として使用することはでき
ません。 また、名前は、Extensible Markup Language (XML) 1.0 (第 4 版) の名前の構文に準拠する
必要があります。 顧客ドメイン検証機能を使用して、名前を検証することが必要です。
[高度な使用専用] は、フィールドを通常はユーザーに対して非表示にする場合に選択します。
48
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
[データ型] は、フィールドのデータの型です。 有効な型の一覧については、トピック「データ型」を
参照してください。
[サイズ] は、フィールドの物理的なサイズです。 通常は、フィールド リストが更新される際に自動的
に設定されます。
[読み取り専用] は、フィールドが更新可能かどうかを表します。 このオプションは、データ グループ
が更新可能である場合のみ、有効です。
検索プロパティ
検索プロパティ
[検索] タブでは、ユーザーは値を検索するソースを指定できます。 これによって、例えば、ユーザー
が Customer View で顧客を編集する際に、値を検索ソースから取得し、フィールドに代入できます。
検索ソースは、データの行列からなるデータセットです。 各行には、検索値となり得る値が 1 つ含ま
れます。
[キー フィールド] は同じデータ グループ内のもう 1 つのフィールドです。 [検索キー フィールド] は、
検索ソースの列で、この例では PC_CODE です。 検索においては、[キー フィールド] の値が [検索
キー フィールド] の値と一致する必要があります。[検索キー フィールド] には必ず一意の値が含まれ
るため、[キー フィールド] の 1 つの値は、1 つの行に一致するか、一致する行がないかのいずれかに
なります。
検索を実行して一致するものが見つかった場合、フィールド (この例では [町]) の値は、[検索結果フィー
ルド] と同じになるはずです。 [検索結果フィールド] は、検索ソース データセットにおける列で、検
索の結果を示します。
つまり、検索の設定では、このフィールドの値は、[キー フィールド] の値を取得し、検索ソースにお
いて PC_CODE (検索キー フィールド) が一致するものを検索することによって、検索可能であると定
義します。
検索を使用するフィールドと検索フィールド
グループのデータ ソースには存在しない、[検索フィールド] という特殊なフィールド タイプを定義で
きます。これはいわゆる、仮想フィールドになります。 検索フィールドには、検索が定義されている
必要があります。つまり、そのプロパティ ウィンドウの [検索] タブを設定する必要があります。
以下の例では、メイン データ グループに、顧客の婚姻区分を表す番号を保持する pers_pms_id フィー
ルドがあるものとします。 ユーザーに対して pers_pms_id を表示する代わりに、MaritalStatus という
検索フィールドを作成します。 新しい検索フィールドを作成するには、メニューから [フィールド] >
[新規検索フィールド...] を選択します。 これに先立ち、以下のデータセットを含む検索ソースを定義
済みです。
pms_id
pms_desc
1
単一
リファレンス ガイド
49
フィールド:
2
既婚
3
同居
MaritalStatus の値を取得するには、pers_pms_id の値を使用して検索データセット内で一致するもの
を検索します。
Customer View では、pers_pms_id の代わりに検索フィールド MaritalStatus を表示できます。 検索
ページにおいてドロップダウン ボックスが表示され、ユーザーは、「未婚」、「既婚」、「同居」の
いずれかを選択できます。 さらに、顧客の編集ページにおいても、ユーザーは MaritalStatus の値から
選択できます。 更新が適用された場合、アプリケーションはバックグラウンドで pers_pms_id を正し
い ID に更新します。この処理は、ユーザーからは見えません。
検索のフィルタ (1 対多グループのみ)
検索値をフィルタするオプションを使用すると、データ グループ内の別のフィールドの値に基づいて
検索値をフィルタすることができます。 検索のフィルタは、ほとんどがユーザー アプリケーションで
使用され、ドロップダウン コンボ ボックスで使用可能な値をフィルタするよう設定して使います。
検索のフィルタは Visual Dialogue のセレクション デザイナおよび Customer View (検索ページと 1 対
多の編集ページ) で使用できます。 現在は、検索のフィルタを使用できるのは 1 対多グループのフィー
ルドだけです。 検索のフィルタを設定する際には、[フィルタ] フィールドが参照するフィールドを指
定することでフィルタを定義します。 [フィルタ] フィールドに選択できるのは 1 対多グループ内の
フィールドだけです。 また、検索自体が設定されているフィールドでなければ選択できません。[フィ
ルタ キー] フィールドは [検索ソース] にあるフィールドで、検索値のフィルタに使用します。
検証プロパティ
検証プロパティ
更新可能なフィールドには、検証ルールを設定できます。 これらは、[検証] タブで設定します。
既定値が適用可能である場合は、[既定値を割り当て] をオンにします。 その場合 Customer View は、
新しい行の挿入時に、既定値を自動的に設定します。
フィールドを空白のままにできないようにするには、[必須] をオンにします。
[最小値 / 長] と [最大値 / 長] は、数値および文字列フィールドに適用されます。 数値フィールドの最
大値と最小値、文字列フィールドの最大長と最小長を定義します。
値の検証に正規表現を使用することもできます。 例えば、メール アドレスを検証するための [正規表
現パターン] が定義されています。 [正規表現のエラー メッセージ] には、検証に失敗した場合にユー
ザーに対して表示するメッセージが含まれます。 [正規表現パターン] の右にあるボタンをクリックす
ると、式をテストできます。
Dialogue Server はフィールド検証を実行しますが、Customer View では、検証ルールを Web ページ
内の JavaScript として実装することにより、高速でユーザーフレンドリーなインターフェースを提供
しています。
50
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
コンテンツ タイプ プロパティ
コンテンツ タイプ プロパティ
[コンテンツ タイプ] タブは、特殊な意味を持つフィールドを指定するために使用します。 2 つのオプ
ションがあります。 まず、フィールドを、別の顧客ドメインを指すように定義できます。 例えば、[会
社] ドメインの [連絡先 ID] フィールドが [連絡先] ドメインを指すように設定できます。 つまり、[連絡
先 ID] の値が、[連絡先] ドメインの ID フィールド (顧客 ID) の値に一致する必要があることを意味しま
す。
[Customer View でのドメインの更新を有効にする] オプションは、Customer View において、[会社]
ドメインからリンクされたドメインに顧客を挿入、編集、および削除するためのショートカット (ボタ
ン) を、表示するかどうかを制御します。 このオプションは、1 対多グループのみに適用されます。
2 つめに、[他のフィールド コンテンツ タイプ] のセットがあります。 これらは、メール アドレス、
URL、電話番号など、特定のアクションを実行するためにアプリケーションによって開かれる可能性
のあるコンテンツを表す値を持つフィールドで使用されます。 例えば、URL (インターネット アドレ
ス) が選択されている場合、ユーザーがフィールドの横の小さな記号をクリックすると、Customer
View は新しいブラウザ ウィンドウでそのリンクを開きます。
Web プロパティ
Web プロパティ
[Web プロパティ] タブには、Web アプリケーションに適用される設定が含まれます。
Customer View
[Customer View で表示] は、フィールドを Customer View において表示するかどうかを指定し、
[Customer View で検索可能] は、フィールドを Customer View において検索条件として表示するかど
うかを指定します。
顧客プロファイル
[顧客プロファイルで表示] は、フィールドを、Cusotmer Web アクセスで使用可能な Customer Web
プロファイルに表示するかどうかを指定します。 顧客がプロファイル ページからフィールドを更新で
きるようにするには、[顧客プロファイルからの更新を許可] をオンにします。
テレマーケティング
[Telemarketing Web で表示] は、フィールドを Telemarketing Web アプリケーションで表示するかど
うかを指定します。 テレマーケティング オペレータがフィールドを更新できるようにするには、
[Telemarketing Web からの更新を許可] をオンにします。
検索の設定
[検索ソース データセットをキャッシュ] は、検索を使用するフィールドに適用され、Web アプリケー
ションによって検索データセットをキャッシュするかどうかを指定します。 検索データセットがそれ
ほど膨大ではなく、通常は変更されないという場合には、この設定が適しています。
リファレンス ガイド
51
データ型
[ドロップダウンとして表示] は、フィールドに検索データセットのすべての値を含むドロップダウン
メニューを表示するかどうかを指定します。
データ型
はじめに
Dialogue Admin では、一連のデータ型が定義されています。 これらのデータ型は、顧客ドメインを定
義する際に、論理的なデータ型として使用されます。
データ型
以下の表に、さまざまなデータ型の説明を示します。
データ型の名前 説明
文字列
文字列データ型
整数
整数データ型
浮動
浮動小数点データ型
datetime (日付/ 日付と時刻のデータ型
時刻型)
date
日付データ型 (datetime の時刻の部分を含みません)
ブール値
ブール データ型
バイナリ
バイナリ データ型
Int64
integer と float の間の 64 ビット整数データ型
検索ソース
検索ソースについて
検索ソースとは、データ フィールドに検索が定義されている場合に使用される、データのソースで
す。 現バージョンでは、すべての検索ソースが SQL リポジトリに格納された SQL クエリに基づいて
います。
検索 SQL について
検索 SQL クエリは、[検索キー フィールド] と [検索結果フィールド] を含む、列のセットを返す SELECT
ステートメントになります。 複数のフィールドで 1 つの検索ソースを共有できます。 したがって、検
索ソースには複数の列が含まれる場合がよくあります。
52
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
新規検索ソースの定義
新規検索ソースを定義する手順は以下のとおりです。
1. 検索 SQL が SQL リポジトリに存在することを確認します。
2. [ファイル] > [検索ソースを定義] を選択して、[検索ソースを定義] ウィンドウを開きます。
3. 続いて [新規...] ボタンをクリックし、新規検索ソースに名前を付けます。
4. 使用する SQL を選択します。
5. [フィールドを更新] をクリックして、SQL ステートメントから列のリストを取得します。
6. [閉じる] をクリックして、顧客ドメインのメイン ウィンドウに戻ります。
これで、[フィールドのプロパティ] ウィンドウにおいて検索を設定する際に、この検索ソースとその
フィールドが使用できるようになります。
顧客ドメイン検証
顧客ドメインの設定は、特に規模の大きいドメインを扱う場合には、複雑な作業になる可能性があり
ます。 さまざまな顧客データのソースにアクセスできるようにするために、顧客ドメインの設定には
かなりの自由度が設けられています。 しかしこの自由度によって、うまく機能しない設定や、まった
く機能しない設定が構築されてしまう可能性も高まります。 顧客ドメイン検証ツールを使用すること
により、そのような問題の一部を回避できます。
詳細については、以下のトピックを参照してください。
--> 顧客ドメイン検証の実行
--> 顧客ドメイン検証メッセージ
顧客ドメイン検証の実行
顧客ドメイン検証は、顧客ドメイン編集ウィンドウにおいて実行します。 [検証] ボタンをクリックす
るか、F9 ボタンを使用することによって、検証を開始します。 検証が実行されると、フィールド リ
ストの下のペインでその結果を確認できます。 このペインには、ドメイン設定における問題 (または
その可能性) を説明するメッセージのリストが表示されます。 リスト内の検証メッセージ上でダブル
クリックするか、または Enter キーを押すことによって、ドメイン設定における問題の箇所を確認で
きます。
顧客ドメイン検証メッセージ
はじめに
顧客ドメイン検証を実行すると、ドメイン設定において問題の可能性がある箇所を示す、メッセージ
のリストが表示されます。 以下の表で、これらのメッセージを詳細に説明します。
リファレンス ガイド
53
顧客ドメイン検証メッセージ
54
型
メッセージ
説明
注意
フィールド '<フィールド名>' には 既定値を使用すると設定したデータ フィールドに対し、
既定値として空白が指定されています。
既定値を指定する必要がありま
す。
注意
パラメータ '<パラメータ名>' には 定数パラメータ値を使用すると設定したパラメータ連
結に対し、定数値として空白が指定されています。
既定値を指定する必要がありま
す。
ヒント
ドメイン名の 1 文字目は英数字で これはエラーではありませんが、ドメイン名の 1 文字
なければなりません。
目は英数字にすることが推奨されています。
エラー
ブール型グループをドメイン Web ドメインに Web アドレス グループを設定した場合、そ
アドレス グループにすることはで のデータ グループをブール型グループにすることはで
きません。
きません。
エラー
ドメイン Web アドレス 1 対多グ ドメインに Web アドレス グループを設定した場合、そ
ループは、タブ付き編集モードを のデータ グループは、Web タブ付き編集モードを使用
使用する必要があります。
するように設定しなければなりません。
エラー
重複チェックが有効になっている ドメインで重複チェックが有効になっていますが、メ
場合、メイン ドメイン グループ イン データ グループではデータの更新にプラグインを
ではデータの更新にプラグインを 使うように設定されていません。
使う必要があります。
エラー
ドメインに名前を指定する必要が ドメインに名前が指定されていません。
あります。
エラー
フィールドに名前を指定する必要 データ フィールドが作成されていますが、その名前が
があります。
指定されていません。
エラー
グループに名前を指定する必要が データ グループが作成されていますが、その名前が指
あります。
定されていません。
注意
'<フィールド名>' のリンクされた
顧客ドメイン定義では、ID フィー
ルドのデータ型がフィールド自体
のデータ型に一致しません。
注意
'<フィールド名>' の検索定義で、 検索ソースを使用するデータ フィールドが設定されて
検索キー フィールドとキー フィー いますが、検索キー フィールドのデータ型が、キー
ルドのデータ型が一致しません。 フィールドのデータ型と異なります。 これは、パフォー
マンスの低下やエラーにつながる恐れがあります。
注意
'<フィールド名>' の検索定義で、 検索ソースを使用するデータ フィールドが設定されて
検索結果フィールドのデータ型が いますが、検索結果フィールドのデータ型が、フィー
別の顧客ドメインにリンクするデータ フィールドが設
定されていますが、そのフィールドのデータ型が、リ
ンクされたドメインの ID フィールドのデータ型と異な
ります。 これは、パフォーマンスの低下やエラーにつ
ながる恐れがあります。
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
フィールド自体のデータ型に一致 ルド自体のデータ型と異なります。 これは、パフォー
しません。
マンスの低下やエラーにつながる恐れがあります。
注意
'<パラメータ名>' のパラメータ定
義では、連結元フィールドとパラ
メータ フィールドでデータ型が一
致しません。
エラー
パラメータ '<パラメータ名>' の連 フィールドにバインドするパラメータ連結が設定され
結フィールドが親データ グループ ていますが、それをバインドするフィールドが親グルー
プに存在しません。 パラメータ連結を定義した後に、
に見つかりません。
フィールドの名前を変更したか、親データ グループか
らフィールドを削除した場合に、この状態が生じる可
能性があります。
注意
既定値をフィールド '<フィールド 既定値を使用すると設定したデータ フィールドに対し、
名>' のフィールド データ型に変換 フィールドのデータ型に変換できない既定値が指定さ
れています。
できません。
注意
既定値をパラメータ '<パラメータ 既定値を使用すると設定したパラメータ連結に対し、
名>' のフィールド データ型に変換 フィールドのデータ型に変換できない既定値が指定さ
れています。
できません。
ヒント
ドメインが有効ではありません。 ドメインが有効にされていません。 これは、このドメ
インが Visual Dialogue や Web アプリケーションから
アクセスできないことを意味します。 ドメインは作成
時、既定で無効になっていることに注意してください。
エラー
ドメインには最低でも 1 つのデー ドメインにデータ グループが 1 つも定義されていませ
タ グループが必要です。
ん。 顧客データを取得できるようにするためには、ド
メインには少なくとも 1 つのデータ グループが必要で
す。
エラー
ドメイン名に無効な文字が含まれ 顧客ドメインの名前には、ピリオド、引用符、または
ています。
二重引用符を含むことはできません。
エラー
ドメイン Web アドレス グループ Web アドレス グループを使用するようにドメインが設
'<グループ名>' がドメインに見つ 定されていますが、そのデータ グループがドメイン定
義に存在しません。 Web アドレス グループを使用する
かりません。
ようにドメインを設定した後に、データ グループの名
前を変更したか、データ グループを削除した場合に、
この状態が生じる可能性があります。
エラー
ドメイン Web 表示フィールド '< Web 表示フィールドを使用するようにドメインが設定
フィールド名>' がドメインに見つ されていますが、そのデータ フィールドがドメイン定
義に存在しません。 Web 表示フィールドを使用するよ
かりません。
うにドメインを設定した後に、データ フィールドの名
リファレンス ガイド
フィールドにバインドするパラメータ連結が設定され
ていますが、パラメータ フィールドのデータ型が、そ
れをバインドするフィールドのデータ型と異なります。
これは、パフォーマンスの低下やエラーにつながる恐
れがあります。
55
顧客ドメイン検証メッセージ
前を変更したか、データ フィールドを削除した場合に、
この状態が生じる可能性があります。
56
エラー
ドメイン Web 表示フィールドを ドメインに Web 表示フィールドを設定した場合、その
'ブール' または '二項' 型にするこ データ フィールドのデータ型を 'boolean' または 'binary'
とはできません。
にすることはできません。
エラー
ドメイン Web メモ フィールド '< Web メモ フィールドを使用するようにドメインが設定
フィールド名>' がドメインに見つ されていますが、そのデータ フィールドがドメイン定
義に存在しません。 Web メモ フィールドを使用するよ
かりません。
うにドメインを設定した後に、データ フィールドの名
前を変更したか、データ フィールドを削除した場合に、
この状態が生じる可能性があります。
エラー
ドメイン Web メモ フィールドは ドメインに Web メモ フィールドを設定した場合、その
'string' 型でなければなりません。 データ フィールドのデータ型は 'string' でなければなり
ません。
エラー
フィールド '<フィールド名>' には データ フィールドに最大値/長を設定する場合、その
フィールドのデータ型は 'string'、'integer'、'int64'、ま
最大値/長を設定できません。
たは 'float' のいずれかでなければなりません。
エラー
フィールド '<フィールド名>' には データ フィールドに最小値/長を設定する場合、その
フィールドのデータ型は 'string'、'integer'、'int64'、ま
最小値/長を設定できません。
たは 'float' のいずれかでなければなりません。
エラー
正規表現を使って検証するように 正規表現を使って検証するように設定されたデータ
フィールド '<フィールド名>' が設 フィールドがありますが、正規表現パターンとして空
定されましたが、式が設定されて 白が指定されています。
いません。
エラー
フィールド名 '<フィールド名>' に データ フィールドの名前に使用できるのは、'A' ~ 'Z'
1 つ以上の無効な文字が含まれて の文字、'', ''、数字、およびアンダースコアのみです。
います。
注意
フィールド名 '<フィールド名>' は データ フィールドに、式関数と同じ名前を付けること
はできません。式関数と同じ名前にすると、内部の式
式関数名です。
パーサーにおいて、エラーや意図しない結果が生じる
恐れがあるためです。
エラー
グループ '<グループ名>' にデータ データ グループにデータ フィールドが 1 つも定義され
フィールドがありません。
ていません。 メニューの [フィールド リストを更新] を
選択して、データ グループにフィールドを追加できま
す。
エラー
グループ '<グループ名>' にデータ データ グループに対し、データ ソースが選択されてい
ません。 顧客データを取得できるようにするためには、
ソースがありません。
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
データ グループにデータ ソースを設定する必要があり
ます。
注意
グループ '<グループ名>' にパラ
メータ連結がありません。
データ グループにパラメータ連結が 1 つも設定されて
いません。 メイン グループ以外のすべてのデータ グ
ループは、グループ内のデータが、その親データ グルー
プのデータとどのように関連するのかを指定するため
に、パラメータ連結を設定する必要があります。
注意
グループ '<グループ名>' は更新可
能ですが、グループにあるすべて
のフィールドは読み取り専用で
す。
更新可能と設定されているデータ グループに対し、グ
ループ内のすべてのデータ フィールドが読み取り専用
と設定されています。 これでは、そのグループ内のデー
タはどれも編集できないことになってしまいます。
エラー
グループ名 '<グループ名>' に 1 つ データ グループの名前に使用できるのは、'A' ~ 'Z' の
以上の無効な文字が含まれていま 文字、'',''、数字、およびアンダースコアのみです。
す。
注意
グループ名 '<グループ名>' は式関 データ グループに、式関数と同じ名前を付けることは
できません。式関数と同じ名前にすると、内部の式パー
数名です。
サーにおいて、エラーや意図しない結果が生じる恐れ
があるためです。
エラー
フィールド '<フィールド名>' を検
索するために定義されたキー
フィールド '<フィールド名>' が、
データ グループに見つかりませ
ん。
データ フィールドに対して検索が設定されていますが、
キー フィールドが、そのフィールドが所属するデータ
グループに存在しません。 検索を定義した後に、キー
フィールドの名前を変更したか、データ グループから
キー フィールドを削除した場合に、この状態が生じる
可能性があります。
エラー
フィールド '<フィールド名>' で使
われるリンクされた顧客ドメイン
が無効です: '<エラー メッセージ
>'。
別の顧客ドメインにリンクするデータ フィールドが設
定されていますが、リンクされたドメインにアクセス
できません。 リンクされたドメインの誤りについては、
エラー メッセージを確認する必要があります。
エラー
フィールド '<フィールド名>' を検
索するために定義された検索キー
フィールド '<フィールド名>' が、
検索ソースに見つかりません。
データ フィールドに対して検索が設定されていますが、
検索キー フィールドが、検索ソースに存在しません。
検索を定義した後に、検索キー フィールドの名前を変
更したか、検索ソースから検索キー フィールドを削除
した場合に、この状態が生じる可能性があります。
エラー
フィールド '<フィールド名>' を検
索するために定義された検索結果
フィールド '<フィールド名>' が、
検索ソースに見つかりません。
データ フィールドに対して検索が設定されていますが、
検索結果フィールドが、検索ソースに存在しません。
検索を定義した後に、検索結果フィールドの名前を変
更したか、検索ソースから検索結果フィールドを削除
した場合に、この状態が生じる可能性があります。
リファレンス ガイド
57
顧客ドメイン検証メッセージ
58
エラー
フィールド '<フィールド名>' を検
索するために定義された検索ソー
ス '<検索ソース>' が、ドメインに
見つかりません。
データ フィールドに対して検索が設定されていますが、
検索ソースがドメインに存在しません。 検索を定義し
た後に、検索ソースの名前を変更したか、検索ソース
を削除した場合に、この状態が生じる可能性がありま
す。
エラー
フィールド '<フィールド名>' を検
索するために定義された検索の
フィルタのキー フィールド '<
フィールド名>' が、検索ソースに
見つかりません。
フィールドに対し、検索のフィルタを使用して検索が
設定されていますが、検索のフィルタのキー フィール
ドが、検索ソースに存在しません。 検索を定義した後
に、フィールドの名前を変更したか、検索ソースから
削除した場合に、この状態が生じる可能性があります。
エラー
フィールド '<フィールド名>' が、
検索のフィルタを使用して設定さ
れています。 これが可能なのは、
1 対多グループに含まれるフィー
ルドだけです。
検索のフィルタは 1 対多グループでのみ使用できます。
おそらく 1 対多グループで検索のフィルタを設定した
後、このグループが 1 対 1 グループに変更されたと考
えられます。
エラー
検索のフィルタ フィールド '<
フィールド名>' を検索するために
定義されたキー フィールド '<
フィールド名>' が、データ グルー
プに見つかりません。
フィールドに対し、検索のフィルタを使用して検索が
設定されていますが、フィルタ フィールドが、その
フィールドが所属するデータ グループに存在しません。
検索を定義した後に、フィルタ フィールドの名前を変
更したか、データ グループからキー フィールドを削除
した場合に、この状態が生じる可能性があります。
エラー
検索のフィルタ フィールド '<
フィールド名>' が、フィールド '<
フィールド名>' の検索に対して定
義されていますが、検索ソースが
ありません。
フィールドに対し、検索のフィルタを使用して検索が
設定されていますが、フィルタ フィールドに検索が設
定されていません (必須です)。 検索のフィルタを定義
した後に、フィルタ フィールドの検索を削除した場合
に、この状態が生じる可能性があります。
注意
メイン ドメイン グループの ID
フィールド データ
が、'mh_customer_id' データ型で
はありません。
メイン データ グループの ID データ フィールドが、ド
メインの顧客データを、Dialogue Database の他の顧客
データにリンクするために使用されています。 IDフィー
ルドのデータ型が、システムの他の部分で使用されて
いる顧客識別子のデータ型と異なる場合は、パフォー
マンスの低下やエラーが生じる恐れがあります。
エラー
メイン ドメイン グループには ID ドメインの顧客データが、メイン データ グループの ID
フィールドが必要です。
フィールドによって、Dialogue Database の他の顧客
データにリンクされています。 つまり、ドメインが正
しく動作するには、メイン ドメイン グループの ID
フィールドを設定しなければなりません。
エラー
フィールド '<フィールド名>' の最 データ フィールドに最大長が設定されていますが、値
が有効ではありません。 最大長は、'string' フィールド
大長が無効です。
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
のみに対して設定可能であり、整数値である必要があ
ります。
エラー
フィールド '<フィールド名>' の最 データ フィールドに最大値が設定されていますが、値
が有効ではありません。 最大値は、'integer'、'int64'、
大値が無効です。
または 'float' フィールドに対してのみ設定可能で、ま
た、フィールドのデータ型に変換できる値でなければ
無効です。
エラー
フィールド '<フィールド名>' の最 データ フィールドに最小長が設定されていますが、値
が有効ではありません。 最小長は、'string' フィールド
小長が無効です。
のみに対して設定可能であり、整数値である必要があ
ります。
エラー
フィールド '<フィールド名>' の最 データ フィールドに最小値が設定されていますが、値
が有効ではありません。 最小値は、'integer'、'int64'、
小値が無効です。
または 'float' フィールドに対してのみ設定可能で、ま
た、フィールドのデータ型に変換できる値でなければ
無効です。
エラー
パラメータ '<パラメータ名>' のパ パラメータ連結が設定されていますが、パラメータ
ラメータ フィールドがデータ グ フィールドがデータ グループに存在しません。 パラ
メータ連結を定義した後に、フィールドの名前を変更
ループに見つかりません。
したか、グループからフィールドを削除した場合に、
この状態が生じる可能性があります。
エラー
フィールド '<フィールド名>' 内の 正規表現を使って検証するように設定されたデータ
正規表現検証がコンパイルされま フィールドがありますが、正規表現に誤りがあり、コ
ンパイルされません。 正規表現の誤りについては、エ
せん: '<エラー メッセージ>'。
ラー メッセージを確認する必要があります。
エラー
'<フィールド名>' という名前の
フィールドが複数あります。
1 つのデータ グループに同じフィールド名のデータ
フィールドが複数存在します。 データ グループ内の各
フィールド名は一意でなければなりません。
エラー
'<グループ名>' という名前のグ
ループが複数あります。
同じグループ名のデータ グループが複数存在します。
ドメイン内の各グループ名は一意でなければなりませ
ん。
計算式
式の概要
式は、顧客ドメイン内のデータにアクセスするために使用します。
リファレンス ガイド
59
式構文の定義
式言語には、式を容易に使用および理解できるようにすることを目的として設計された正式な構文定
義があります。
式は、製品スイートの様々な部分で使用されます。
式とセレクション
式は、セレクションにおいて条件を定義するために使用されます。 Visual Dialogue 内のセレクション
デザイナでは、1 つの式で 1 つのセレクションを定義します。 ユーザーはこの式を、デザイン ビュー
に条件を追加するか、式ビュー内で式を直接編集することによって作成します。
例えば、次の例では、メール アドレスを持つすべての顧客を選択します。
has EmailAddress
式と Web アプリケーション
Web アプリケーションでは、詳細検索条件を記述するために式を使用できます。
式とメッセージ
メッセージ テンプレートやベース メッセージを使用する場合は、テンプレート テキスト内で式を使
用できます。 例えば、電子メールの中には、回答フォームを指す URL を生成するために式関数が使
用されます。
«#AnswerFormURL(1048, 1101, -1, -1, TRUE)»
注意: 文字 "#" はシステムに対し、マージ フィールドを、FirstName のような単純なデータ フィール
ドではなく、式として扱うように指示します。
式と Dialogue Admin
Dialogue Admin では、Expression Analyzer と呼ばれるツールが提供されています。 このツールは、
式のテストを支援するためのものです。
式構文の定義
メイン グループ式
メイン グループは、顧客ドメイン定義における最上位のグループです。 典型的な例として、Firstname、
Lastname などのデータを返す Person グループがあります。メイン グループ データにアクセスする
式は、フィールド名を直接使用して記述できます。
例:
• Firstname = "太郎"
• Firstname = "太郎" And Lastname = "鈴木"
メイン グループ名を接頭辞として使用することもできます。
60
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
• Person.Firstname = "太郎"
1 対 1 グループ式
1 対 1 グループは、顧客ごとにデータを 1 行だけ返すか、または返さないデータ グループです。 典型
的な例としては、個人に関連付けられた代表郵送先住所や勤務先企業が挙げられます。 これらのグ
ループは、行を 1 つだけ返すようにドメインで定義されます。
このデータにアクセスする式を記述するには、以下のように、グループ名を接頭辞とするフィールド
名を使用します。
例:
• Address.Streename = "山田町*"
• Company.Name = "田中産業"
1 対多グループ式
顧客ごとに複数の行を返すデータ グループは、1 対多グループと呼ばれます。 このようなグループの
典型的な顧客データとしては、活動 (Activities)、ドキュメント (Documents)、回答フォーム
(AnswerForms) があります。 これらのグループは、複数の行を返すようにドメインで定義されます
(グループのプロパティに関するページを参照してください)。
1 対多グループにアクセスする式では、データの存在を確認します。 式演算子 has は重要な演算子で
す。 true または false を返すこの演算子は、データ グループが情報を含むかどうかを確認します。
例:
• has Documents
• has Documents[DocName = "レポート*"]
上の 1 つめの例は、少なくとも 1 つのドキュメントを所有する顧客を返し、2 つめの例は、名前が "レ
ポート" という語で始まるドキュメントを少なくとも 1 つ所有する顧客を返します。
他の例を以下に示します。
• has Documents[DocId = 1000 and DocType = "レター"]
• has Documents[DocDate > '01.01.2002']
• NumberOf( Activities ) > 2
最後の例では、NumberOf(...) という式関数を使用していることに注意してください。この関数は、1
対多グループである Activities の項目数を返します。
式における数値と小数点記号
文字 '.' (米国標準) は、式における小数点記号として使用されます。 文字 ',' (コンマ) は、関数のパラ
メータを区切るために使用されます。
• CustomerScore > 2.5
リファレンス ガイド
61
式演算子
式における日付と時刻の値
日付と時刻の定数値は、一重引用符で囲みます。 日付と時刻の値の正式な構文は、XML で使用される
以下の形式に従います。
• 'YYYY-MM-DDTHH:MM:SS'。例: '2003-01-28T17:00:00'
時刻の部分は、以下のように省略可能です。
• 'YYYY-MM-DD'。例: '2003-01-28'
また、Dialogue Server の現在の地域の日付/時刻フォーマットがサポートされています。 例 (日本の日
付/時刻フォーマットを使用):
• '2003.12.28 17:00'
• '2003.12.28'
式演算子
演算子と式
式を構成する基本要素として、一連の組み込み演算子が用意されています。 様々な種類の演算子があ
ります。
比較演算子
以下の演算子は、式において値を比較するために使用します。
=
等号は、2 つの値が等しいかどうかを調べます。
>
左辺の値が右辺の値より大きいかどうかを調べます。
<
右辺の値が左辺の値より大きいかどうかを調べます。
>=
左辺の値が右辺の値以上かどうかを調べます。
<=
右辺の値が左辺の値以上かどうかを調べます。
<>
不等号は、2 つの値が等しくないかどうかを調べます。
62
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
論理演算子
以下の演算子は論理演算子で、ブール代数において使用します。
NOT
論理演算子 NOT は、続く値が true ならば false、false ならば true を返します。
AND
左辺と右辺の値がともに true である場合のみ、true を返します。
OR
左辺と右辺の値の少なくとも一方が true である場合に、true を返します。
算術演算子
以下の演算子は算術演算子で、数値の操作に使用します。
+
2 つの値の和を返します。
2 つの値の差を返します。
*
2 つの値の積を返します。
/
左辺の値を右辺の値で除算した値を返します。
文字列演算子 "+"
演算子 "+" は、数値の加算に加えて、文字列値の連結にも使用します。 例 :
• Lastname + ', ' + Firstname
この式によって、 "鈴木, 太郎" といった値が返されます。
演算子 "has"
演算子 "has" は、式における重要な演算子で、続く引数によって動作が異なります。 戻り値は必ず
true または false になります。
引数がデータ フィールドの場合は、フィールドに値があれば戻り値は true になります。 例 :
• has EmailAddress
• has Address.Postcode
リファレンス ガイド
63
式のデータ型
引数がデータ グループの場合は、与えられた顧客に対し、データ グループに少なくとも 1 つの項目
(または行) があれば戻り値は true になります。 例 :
• has Address
• has Documents
• has Activities[ChannelType = "SMS"]
命名演算子 ":"
演算子 ":" は、個々の条件に名前を付けたり説明したりするために使用します。 例 :
• "メール アドレスを持つ顧客": has email
• "詳細情報の送付: 希望する": BoolAnswer(1000, 10, 1)
この演算子は主に、セレクション デザイナ内部で、条件にわかりやすく説明を加えるために使用され
ます。
式のデータ型
はじめに
式および式プラグインで使用される一連のデータ型です。
データ型
以下の表に、さまざまなデータ型の説明を示します。
データ型の名前
説明
文字列
文字列データ型
整数
整数データ型
浮動
浮動小数点データ型
datetime (日付/時 日付と時刻のデータ型
刻型)
date
日付データ型 (datetime の時刻の部分を含みません)
ブール値
ブール データ型
式関数
関数と式
式には、多数の関数があります。 顧客ドメイン データをアクセスおよび操作するために使用する関数
もあれば、例えば、アンケートやCustomer Web アクセスに関連する関数もあります。
64
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
式関数のグループ
式関数のカテゴリとしては、以下のものがあります。
• 集計関数
このカテゴリに含まれる式関数は、データの集計をサポートします。
• 分析関数
このカテゴリに含まれる式関数は、Portrait Customer Analytics との統合をサポートします。
• コンテンツ オブジェクト関数
このカテゴリに含まれる式関数は、コンテンツ オブジェクトをアクセスおよび実行するために使用
します。
• Customer Web アクセス関数
このカテゴリに含まれる式関数は、Web アプリケーションへの顧客アクセスをサポートするために
使用します。 一部の関数は、Dialogue Server からパーソナル化された Web ページへの URL を生
成します。 この関数は、メッセージ テンプレートでよく使用されます。
• 日付および時刻関数
このカテゴリに含まれる式関数は、日付と時刻の値を扱う場合に使用します。
• ダイアログ関数
このカテゴリに含まれる式関数は、ダイアログとダイアログ参加顧客を扱う場合に使用します。
• ヘルパー関数
このカテゴリに含まれる式関数は、特殊なニーズに対応するためのヘルパー メソッドです。
• 数値関数
このカテゴリに含まれる式関数は、数値を処理するためのものです。
• アンケート関数
このカテゴリに含まれる式関数は、アンケートからのデータにアクセスするために使用します。 こ
れらの関数を使用することにより、式によって顧客からの回答にアクセスできます。
• Report Viewer 関数
このカテゴリに含まれる式関数は、Report Viewer Web アプリケーションへの URL を生成するため
に使用します。
• RTF 関数
このカテゴリに含まれる式関数は、RTF (リッチ テキスト形式) メッセージ テンプレートを扱う場合
に使用します。
• セレクション関数
このカテゴリに含まれる式関数は、セレクションに対するものです。
• 文字列関数
リファレンス ガイド
65
式関数
このカテゴリに含まれる式関数は、文字列値を処理するためのものです。
• システム関数
このカテゴリに含まれる式関数は、システム レベル関数です。
• ユーザー定義関数 ユーザー定義関数は、Dialogue Admin 内でユーザーによって追加されたカスタム
関数です。 詳細については、「式プラグイン」を参照してください。
式関数の呼び出し
複数の引数をとる関数の呼び出し時には、引数をコンマで区切る必要があることに注意してください。
ユーザー定義の式関数
式プラグインを実装することによって、新しい式関数を定義できます。 このような関数は、ユーザー
定義関数と呼ばれます。 詳細については、「式プラグイン」を参照してください。
集計関数
概要
このカテゴリに含まれる式関数は、データの集計をサポートします。
float Max( array of integer or float Values )
値の配列の中の最大値、つまり、1 対多グループにおける、フィールドの最も大きな値を返します。
以下の例では、顧客の全注文のうち、最大のものを返します。
例 : Max( Orders.Amount )
float Min( array of integer or float Values )
値の配列の中の最小値、つまり、1 対多グループにおける、フィールドの最も小さな値を返します。
以下の例では、顧客の全注文のうち、最小のものを返します。
例 : Min( Orders.Amount ) 値は異なります。
integer NumberOf( datagroup DataGroup )
与えられた顧客のデータ グループ内の項目数を返します。
以下の例では、顧客に対して登録された回答フォームの数を返します。
例 : NumberOf( AnswerForms )
float Sum( array of integer or float Values )
値の配列の合計値、つまり、1 対多グループにおける、フィールドの合計値を返します。
以下の例では、顧客の全注文の合計を返します。
例 : Sum( Orders.Amount )
66
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
分析関数
概要
このカテゴリに含まれる式関数は、Portrait Customer Analytics との統合をサポートします。
float EvaluateRule( string RuleName )
現在の顧客のコンテキストにおける分析ルールの結果を評価し、返します。 指定されたルールを、
リアルタイムのスコアリング エンジンを使用して評価します。 戻り値は浮動小数点値です。したがっ
て、評価するルールは数値 (整数または浮動小数点数) を返す必要があります。
RuleName は、ルール名です。
例 : EvaluateRule( "MyScoringRule" )
datetime EvaluateRuleDatetime( string RuleName )
戻り値が日付/時刻値であることを除き、EvaluateRule(..) と同じです。 したがって、指定されたルー
ルは日付/時刻値を返す必要があります。
string EvaluateRuleString( string RuleName )
戻り値が文字列であることを除き、EvaluateRule(..) と同じです。 したがって、指定されたルールは
文字列を返す必要があります。
コンテンツ オブジェクト関数
概要
このカテゴリに含まれる式関数は、コンテンツ オブジェクトを実行するために使用します。
string ContentObject( string ContentObjectKey, string RequestParams )
コンテンツ オブジェクトを実行し、結果として得られたコンテンツを HTML で返します。
ContentObjectKey は、コンテンツ オブジェクトを特定する一意の文字列です。 この値は、Visual
Dialogue の [コンテンツ オブジェクトのプロパティ] の下にあります。
RequestParams は、コンテンツ オブジェクトの呼び出しにおける追加のパラメータを含む文字列で
す。 この文字列の形式は以下のとおりです。
<param1>=<value1>;<param2>=<value2>;...;<paramN>=<valueN>
例:
MyInfo1=B;MyInfo2=C
string ContentObjectText( string ContentObjectKey, string RequestParams )
コンテンツ オブジェクトを実行し、結果として得られたコンテンツをテキストで返します。
リファレンス ガイド
67
式関数
ContentObjectKey は、コンテンツ オブジェクトを特定する一意の文字列です。 この値は、Visual
Dialogue の [コンテンツ オブジェクトのプロパティ] の下にあります。
RequestParams は、コンテンツ オブジェクトの呼び出しにおける追加のパラメータを含む文字列で
す。 この文字列の形式は以下のとおりです。
<param1>=<value1>;<param2>=<value2>;...;<paramN>=<valueN>
例:
MyInfo1=B;MyInfo2=C
注意: 関数 ContentObject(..) は、HTML メールをデザインする際の使用に適しており、
ContentObjectText(..) は、テキスト メールや SMS メッセージをデザインする際の使用に適
しています。
日付および時刻関数
概要
このカテゴリに含まれる式関数は、日付と時刻の値を扱う場合に使用します。
datetime AddMonths( datetime or date DateValue, integer MonthsToAdd )
日付/時刻値または日付値である DateValue に MonthsToAdd の月を加えて返します。
integer Age( datetime or date Value )
与えられた日付値または日付/時刻値からの年数を計算し、返します。 与えられた生年月日から年齢
を算出する場合に非常に便利です。
date DateValue( datetime Value )
入力値の日付部分のみを返します。
integer Day( datetime or date Value )
日付/時刻値または日付値の日の部分を返します。
integer DayOfWeek( datetime or date Value )
日付/時刻値または日付値の曜日の部分を返します。 結果は、常に 1 ~ 7 までの整数となり、どの曜
日が最初の曜日と見なされるかは、使用しているデータベースによって決まります。
datetime EncodeDateTime( string DatePart, string TimePart)
2 つの文字列パラメータ DatePart と TimePart に対応する日付/時刻値を返します。 これらのパラメー
タの形式は、Dialogue Server の現在の地域設定に従います。
integer Month( datetime or date Value )
68
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
日付/時刻値または日付値の月の部分を返します。
datetime Now()
現在の日付と時刻を返す。
date Today()
時刻の部分を除く現在の日付を返します。
integer Year( datetime or date Value )
日付/時刻値または日付値の年の部分を返します。
Customer Web アクセス関数
概要
以下の式関数は、Web アプリケーションへの顧客アクセスをサポートするために使用します。 一部の
関数は、パーソナル化された Web ページへの URL を生成します。 この関数は、メッセージ テンプ
レートでよく使用されます。
string AnswerFormURL( integer UrlType, integer QuestionnaireID, integer LayoutID, integer
BroadcastID, integer DialogID, bool Scramble)
回答フォーム Web ページへの URL を含む文字列を返します。 この URL には、回答フォームを特定
の顧客またはダイアログ参加顧客に関連付ける情報が含まれます。
UrlType は、生成する URL のタイプを表す以下の番号です。
URL タイプ インデックス
説明
0
匿名のレスポンス
1
特定されたレスポンス ( URL 上の CustomerID)
2
顧客ログイン (LoginID と Password を使用)
3
参加顧客ログイン (ParticipantID と Password を
使用)
QuestionnaireID はアンケートの ID で、LayoutID は表示するレイアウトの ID です。 自動的に生成
される既定のレイアウトを使用するには、LayoutID に -1 を設定します。
BroadcastID は、回答フォームが関連付けられるべきブロードキャストの ID です。 ブロードキャス
トを使用しない場合は、BroadcastID に -1 を設定します。
Dialog ID は、参加顧客ログインを使用する場合のダイアログの ID です。 ダイアログが関係しない
か、ログインがダイアログに依存しない場合は、DialogIDに -1 を設定します。
リファレンス ガイド
69
式関数
Scramble は、URL パラメータをスクランブル化して、URL を開く顧客にその内容が読めないように
するかどうかを指定します。
メール テンプレートにおいて、次のマージ フィールドの例では、そのような URL が生成されます。
«#AnswerFormURL(1048, 1101, -1, -1, TRUE)»
注意: 文字 "#" はシステムに対し、マージ フィールドを、«FirstName» のような単純なデータ フィー
ルドではなく、式として扱うように指示します。
string AnswerFormURLEx( integer UrlType, integer QuestionnaireID, integer LayoutID, integer
BroadcastID, integer DialogID, bool Scramble, bool NoTrack)
AnswerFormURL( ) と同じですが、テスト目的のために回答追跡を無効にするパラメータを含みま
す。
NoTrack は、生成される URL にパラメータ 'notrack' を含めるかどうかを指定します。 これにより、
Customer Web アクセス アプリケーションにおける回答追跡がオフになります。
注意: NoTrack オプションは、使用されるアンケートに対して回答追跡が有効になっている場合の
み、意味があります。
string CustLoginID( )
現在の顧客のログイン ID を返します。
string CustomURL( string BaseURL, bool Scramble)
一部の Web ページへの URL を含む文字列を返します。
Scramble は、URL パラメータをスクランブル化して、URL を開く顧客にその内容が読めないように
するかどうかを指定します。
string CustPassword( )
現在の顧客のパスワードを返します。
string EmailMessageUrl( string MessageID, bool Scramble)
Customer Web アクセス アプリケーションでメール メッセージを表示するための URL を返します。
MessageID は、メッセージの一意の識別子です。
Scramble は、URL パラメータをスクランブル化して、URL を開く顧客にその内容が読めないように
するかどうかを指定します。
string EmailTrackImage( )
この関数は、HTML メールで使用され、HTML イメージ タグを含む文字列を返します。 このイメー
ジ タグは、Web Utilities アプリケーションからイメージをダウンロードします。 このアプリケーショ
ンは、イメージがダウンロードされたことを追跡し、保存します。 これによって、Dialogue Server
は、特定の顧客がメールを開いて閲覧したことを知ることになります。
70
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
string EmailTrackImageEx( string ImageName )
EmailTrackImageEx は、ダウンロードするイメージのファイル名がユーザーによって指定されるこ
とを除き、EmailTrackImage と同じです。
ImageName は、ダウンロードするイメージのファイル名です。 イメージは、Web Utilities アプリ
ケーションの下の特定のフォルダに保存されます。 gif イメージのみがサポートされています。
bool HasOpenedEmail( integer TemplateID )
HasOpenedEmail は、Dialogue Server 内のメール追跡メカニズムにおいて使用されます。 HTML
メール メッセージが顧客に送信されると、このメッセージにおいてメール追跡が有効となり、シス
テムは顧客がこのメールをいつ開くかを追跡することになります。 HasOpenEmail は、指定された
メッセージ テンプレートに基づくメールを顧客が開封済みの場合に true を返します。
TemplateID は、Visual Dialogue でデザインされたメッセージ テンプレートの一意の ID です (デー
タベース列 DOC_BASE_MESSAGE.DBM_ID の値に対応します)。
bool HasOpenedLink( integer TemplateID, string LinkName )
HasOpenedLink は、Dialogue Server 内のリンク追跡メカニズムにおいて使用されます。 メール メッ
セージには、リンク追跡が有効になっているリンク (URL) を含めることができます。 システムは、
顧客が受信したメール内のこれらのリンクをいつ開くかを追跡することになります。 HasOpenLink
は、指定されたメッセージの中の特定のリンクを顧客が閲覧済みの場合に true を返します。
TemplateID は、Visual Dialogue でデザインされたメッセージ テンプレートの一意の ID です (デー
タベース列 DOC_BASE_MESSAGE.DBM_ID の値に対応します)。 TemplateID に 0 を設定すると、
関数は (テンプレートに関係なく) すべてのメッセージに対してチェックを実行します。
LinkName は、メッセージ デザイナでテンプレートをデザインするとき、または、式関数 TrackURL
を呼び出すときに指定した追跡対象リンクの名前です。
bool HasOpenedLinkEx( integer TemplateID, string Url )
HasOpenedLinkEx は、追跡対象リンクの名前の代わりに URL をパラメータの 1 つとしてとること
を除き、HasOpenLink とまったく同じです。
Url は、追跡されるリンクのアドレス (URL) です。
string PublicFileURL( string ContentID )
Web に発行済みのファイルへの URL を返します。 Web に発行済みのファイルは、データベース
テーブル WEB_PUBLIC_FILE に格納されます。 返される URL は、Web Utilities アプリケーション
を指します。
ContentID は、ファイルを一意に識別する文字列 (GUID) です。
string ScrambleURL(string Url )
URL をスクランブル化します。 Url は、スクランブル化する URL です。
string ShortenAndNameURL( string OriginalUrl, string ShortUrlName, bool EnableLinkTracking, bool
ReplaceExistingNamedUrl, string ShortUrlPrefix )
リファレンス ガイド
71
式関数
OriginalUrl の短縮 URL とオプションの ShortUrlPrefix プレフィックスを URL パスの名前付
き部分に付加して返します (例:http://shorturl.pb.com/SpecialOffers/Christmas2013)。
EnableLinkTracking が true である場合、リンク追跡情報を収集し、短縮 URL 名をリンク名とし
て使用します。 呼び出されるたびに同じ URL を返しますが、以前に異なるパラメータで呼び出され
ていた場合はこの限りではなく、エラーが生成されます。 ReplaceExistingNamedUrl パラメー
タを true に設定することによって、この動作をオーバーライドできますが、以前生成された短縮 URL
は最新の OriginalUrl にリダイレクトされます。 注意 : 短縮 URL データベース テーブルは、そ
のインスタンス上のすべての顧客ドメインに共通です。 1 つの名前付き短縮 URL は、1 つのドメイ
ンに対してのみ使用します。
string ShortenAndTrackURL( string OriginalUrl, string LinkName, string ShortUrlPrefix )
OriginalUrl の短縮 URL とオプションの ShortUrlPrefix プレフィックスを URL のコード化部
分に付加して返します (例:http://shorturl.pb.com/SummerCampaign/AhF56yx)。 Portrait
Dialogue は、指定された LinkName のリンク追跡情報を収集します。 呼び出されるたびに異なる
URL を返します。
string ShortenURL( string OriginalUrl, string ShortUrlPrefix )
OriginalUrl の短縮 URL とオプションの ShortUrlPrefix プレフィックスを URL のコード化部
分に付加して返します (例:http://shorturl.pb.com/SummerCampaign/AhF56yx)。 呼び出
されるたびに異なる URL を返します。
string TrackURL( string OriginalURL, string LinkName )
リンク追跡システムによって追跡される URL を作成するために使用します。 OriginalURL は、顧客
(ブラウザ ユーザー) が転送される Web ページを指す URL です。 LinkName は、追跡するリンクの
ユーザー定義名です。
string TrackURLAnonymous( string OriginalURL, string LinkName )
リンク追跡システムによって追跡される URL を作成するために使用します。 OriginalURL は、顧客
(ブラウザ ユーザー) が転送される Web ページを指す URL です。 LinkName は、追跡するリンクの
ユーザー定義名です。 追跡は匿名で保存されます。つまり、追跡された顧客を特定することはでき
ません (特定追跡に対しては、TrackURL( ) 関数を使用してください)。
string UnsubscribeURL( string or integer CategoryNameOrID, bool Scramble)
パーソナル化された購読解除ページへの URL を含む文字列を返します。
CategoryName は、購読を制御するカテゴリの名前または一意の ID です。 この例として
は、"NewsLetter" というカテゴリが挙げられます。 このカテゴリに所属するすべての顧客は、ニュー
スレターを毎週受信します。 URL が指す Web ページによって、顧客はこのカテゴリに対する自分
のメンバーシップを制御できます。
Scramble は、URL パラメータをスクランブル化して、URL を開く顧客にその内容が読めないように
するかどうかを指定します。
string WebProfileLoginURL( bool Scramble)
72
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
顧客の Web プロファイルのログイン ページへの URL を含む文字列を返します。
Scramble は、URL パラメータをスクランブル化して、URL を開く顧客にその内容が読めないように
するかどうかを指定します。
string WebProfileURL( bool Scramble)
顧客の Web プロファイルへの URL を含む文字列を返します。
Scramble は、URL パラメータをスクランブル化して、URL を開く顧客にその内容が読めないように
するかどうかを指定します。
ダイアログ関数
概要
このカテゴリに含まれる式関数は、ダイアログとダイアログ参加顧客を扱う場合に使用します。
string GetCustomValue( string or integer ValueName )
参加顧客のカスタム値のコレクションからの値を返します。 ValueName は、値の名前です。
注意: 詳細については、下記の SetCustomValue を参照してください。
bool HasBranchHistory( integer BranchID )
ブール値を返します。顧客が特定のダイアログ分岐で扱われた場合、つまり、顧客がその分岐によっ
て移動され、いずれかの時点で分岐のターゲット グループへと移された場合は true となります。
BranchID は、ダイアログ分岐の一意の識別子です。 この値は、Visual Dialogue のダイアログ デザ
イナ内の [操作のプロパティ] ウィンドウにあります。
注意: この関数を使用できるようにするには、特定のダイアログ操作に対し、参加顧客のログ記録
が有効になっている必要があります。
bool HasOperationHistory( integer OperationID )
ブール値を返します。顧客が特定のダイアログ操作で扱われた場合、つまり、顧客がいずれかの時点
でその操作の分岐の 1 つによって移動された場合は true となります。
OperationID は、ダイアログ操作の一意の識別子です。 この値は、Visual Dialogue のダイアログ デ
ザイナ内の [操作のプロパティ] ウィンドウにあります。
注意: この関数を使用できるようにするには、特定のダイアログ操作に対し、参加顧客のログ記録
が有効になっている必要があります。
void SetCustomValue( string or integer ValueName, string Value )
参加顧客のカスタム値のコレクションの値を設定します。 ValueName は、設定する値の名前です。
リファレンス ガイド
73
式関数
カスタム値とは、ダイアログ参加顧客に対して保存された名前/値コレクションの中の値です。 任意
の参加顧客が、任意の数の名前/値のペアを持つことができます。
カスタム値は、データベース フィールド DLG_PARTICIPANT.DP_CUSTOM_VALUES に格納され
ます。
注意: 参加顧客のコンテキスト外でこの関数を使用しても処理は失敗になりませんが、値はデータ
ベースに保存されません。
ヘルパー関数
概要
以下の式関数は、特殊なニーズに対応するためのヘルパー メソッドです。
datetime FieldValueDatetime( string FieldName )
顧客ドメインのデータ フィールドまたはカスタム SQL ステートメントの値を返します。 カスタム
SQL ステートメントは、Visual Dialogue のメッセージ デザイナで使用されます。 指定されたフィー
ルドが、1 対 多データグループに属する場合は、現在のレコードの値が返されます。
float FieldValueNumber( string FieldName )
顧客ドメインのデータ フィールドまたはカスタム SQL ステートメントの値を返します。 カスタム
SQL ステートメントは、Visual Dialogue のメッセージ デザイナで使用されます。 指定されたフィー
ルドが、1 対 多データグループに属する場合は、現在のレコードの値が返されます。
string FieldValueString( string FieldName )
顧客ドメインのデータ フィールドまたはカスタム SQL ステートメントの値を返します。 カスタム
SQL ステートメントは、Visual Dialogue のメッセージ デザイナで使用されます。 指定されたフィー
ルドが、1 対 多データグループに属する場合は、現在のレコードの値が返されます。
数値関数
概要
このカテゴリに含まれる式関数は、ダイアログとダイアログ参加顧客を扱う場合に使用します。
float Random( )
0 ~ 1 の範囲 (0 <= n < 1) の乱数を返します。
注意: この関数は、SQL で表される場合は DBMS 固有の機能を使用し、その実装は SQL Server と
Oracle で異なることになります。
74
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
アンケート関数
概要
以下の式関数は、アンケートからのデータにアクセスするために使用します。 これらの関数を使用す
ることにより、式によって顧客からの回答にアクセスできます。
まず、以下に示す複数の関数で使用されるパラメータについて説明します。
QuestionnaireID はアンケートの ID で、QuestionKey は質問のキーです。QuestionKey は、質問を識
別する文字列で、1 つのアンケート内で一意です。 QuestionKey は、Visual Dialogue のアンケート デ
ザイナに質問が挿入される際に自動的に割り当てられ、既定のフォーマットは、 Q1, Q2, Q3, ..., Qn
です。 ただし、ユーザーは QuestionKey を編集可能で、例えば、質問 'Firstname' に対して 'FNAME'
というキーを使用できます。
QuestionKey は質問に対応し、AlternativeKey は質問の中の選択肢に対応します。 AlternativeKey は、
質問内で一意です。 選択肢キーの既定のフォーマットは、 A1, A2, A3, ..., An です。
IncludeIncomplete は、さまざまな関数の結果を評価する際に、不完全な回答フォームをカウントする
かどうかを指定するブール型のパラメータです。 このパラメータを省略すると、既定値である false
が設定され、完全な回答フォームのみが対象になります。
bool AnswerCombination( integer QuestionnaireID, string QuestionKey, string AlternativeKeys, bool
UseOR, bool IncludeIncomplete = False )
AnswerCombination は、回答の組み合わせに応じて true または false を返します。
AlternativeKeys は、セミコロンで区切られた選択肢キーのリストです。
UseOR は、AlternativeKeys のすべての選択肢に回答しなければならないか、それともそのうちの 1
つだけでよいかを表します。
例 : AnswerCombination(1000, "Q2", "A1;A2;A3", True)
string AnswerComment( integer QuestionnaireID, integer SectionNo, bool IncludeIncomplete = False
)
指定されたセクションのコメントを返します。
SectionNo は、セクション番号です。アンケートの最初のセクションを 1 として数えます。
date AnswerDate( integer QuestionnaireID, string QuestionKey, string AlternativeKey, bool
IncludeIncomplete = False )
日付データ型の質問回答または選択肢を返します。
datetime AnswerDateTime( integer QuestionnaireID, string QuestionKey, string AlternativeKey, bool
IncludeIncomplete = False )
日付/時刻データ型の質問回答または選択肢を返します。
リファレンス ガイド
75
式関数
float AnswerFloat( integer QuestionnaireID, string QuestionKey, string AlternativeKey, bool
IncludeIncomplete = False )
浮動小数点データ型の質問回答または選択肢を返します。
integer AnswerInt( integer QuestionnaireID, string QuestionKey, string AlternativeKey, bool
IncludeIncomplete = False )
整数データ型の質問回答または選択肢を返します。
string AnswerSingleChoice( integer QuestionnaireID, string QuestionKey, bool IncludeIncomplete =
False )
単一選択の質問に対する回答の選択肢キーを返します。
string AnswerSingleChoiceText( integer QuestionnaireID, string QuestionKey, bool IncludeIncomplete
= False )
単一選択の質問に対する回答の選択肢の表題を返します。
string AnswerText( integer QuestionnaireID, string QuestionKey, string AlternativeKey, bool
IncludeIncomplete = False )
文字列データ型の質問回答または選択肢を返します。
bool HasAnswerForm( integer QuestionnaireID, bool IncludeIncomplete = False )
(与えられたコンテキストにおいて) 指定されたアンケートに顧客が回答済みである場合は true を返
し、それ以外の場合は false を返します。
bool HasInclompleteResponse( integer QuestionnaireID, integer LayoutID, integer PageIndex )
指定されたアンケートへの回答を顧客が開始しているが完了はしていない場合に true を返します。
HasIncompleteResponse( ) は、回答追跡が有効である場合のみ使用できます。
LayoutID は、使用されるアンケート レイアウトの一意の ID です。
PageIndex は、不完全な回答において入力済みの (回答者が表示した) ページ数です。
PageIndex は、レイアウトの最初のページを 1 として数えます。
bool IsAnswered( integer QuestionnaireID, string QuestionKey, string AlternativeKey, bool
IncludeIncomplete = False )
指定された質問または選択肢が回答済み (または、多選択質問の場合は選択済み) である場合は true
を返し、そうでない場合は false を返します。
Report Viewer 関数
概要
このカテゴリに含まれる式関数は、Report Viewer Web アプリケーションへの URL を生成するために
使用します。
76
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
string ArchivedReportURL( string or integer ArchivedReportID, bool Scramble )
指定されたアーカイブ化レポートを表示するための URL を含む文字列を返します。 レポートは、
アーカイブ化レポートの既定の表示フォーマットで表示されます。
ArchivedReportID は、アーカイブ化されたレポートの一意の ID です (データベース列
REPORT_ARCIVDE.RA_ID)。
Scramble は、URL パラメータをスクランブル化して、URL を開く人にその内容が読めないようにす
るかどうかを指定します。
string ArchivedReportURL( string or integer ArchivedReportID, integer FormatIndex, integer Action,
bool Scramble )
指定されたフォーマットで指定されたアーカイブ化レポートを表示するための URL を含む文字列を
返します。
ArchivedReportID は、アーカイブ化されたレポートの一意の ID です (データベース列
REPORT_ARCIVDE.RA_ID)。
FormatIndex は、アーカイブ化レポートの表示に使用するフォーマットを指定する整数の番号です。
フォーマット定義の一覧については、「レポート フォーマット」を参照してください。
Action は、ユーザーにレポートを提示する方法を指定する整数の番号です。 アクション定義の一覧
については、「レポート表示アクション」を参照してください。
Scramble は、URL パラメータをスクランブル化して、URL を開く人にその内容が読めないようにす
るかどうかを指定します。
RTF 関数
概要
以下の式関数は、RTF (リッチ テキスト形式) メッセージ テンプレートを扱う場合に使用します。
string RtfInsertPicture( string Filename, integer ScaleFactor )
メッセージのマージ処理において、画像を RTF テンプレートに挿入します。 戻り値は、RTF 画像タ
グを表す文字列です。
Filename は、挿入する画像またはイメージ ファイルのフル パスとファイル名です。
ScaleFactor は、画像を拡大縮小する必要がある場合の倍率です。
ScaleFactor は、イメージの元のサイズに対するパーセントで指定します。 値 0 (または 100) は拡大
縮小しないことを表します。
string RtfInsertPictureCID( string CID, integer ScaleFactor )
RtfInsertPictureCID は、画像がファイルではなく発行済みファイルから読み込まれることを除き、
RtfInsertPicture と同じです。
リファレンス ガイド
77
式関数
CID は、Dialogue Server の発行済みファイル ライブラリにおける一意の識別子です。
注意: 発行済みファイルについては、Visual Dialogue ヘルプ ファイルに記載されています。
セレクションおよびリスト関数
概要
このカテゴリに含まれる式関数は、セレクションおよびリストに対するものです。
bool IsInSelection( integer SelectionID )
SelectionID で指定されたセレクションに顧客が含まれる場合は、TRUE を返します。
IsInSelection は、セレクション デザイナでサブセレクション条件を定義するために使用します。
注意: IsInSelection の使用には、次の 2 つの制約があります。 1) SelectionID で指定されるセレク
ションでは、コンテキスト値は指定できません (セレクション デザイナでは、[セレクション
にコンテキストを使用] を選択することはできません)。 2) セレクションは、SQL ステートメ
ントに変換可能でなければなりません (ほとんどのセレクションがこの条件を満たします)。
bool IsInList( integer or string List )
List で指定されたリストに顧客が含まれる場合は、TRUE を返します。
List パラメータには、リストの一意の ID (データベース列 LIST.LST_ID) またはリストの名前 (デー
タベース列 LIST.LST_NAME) を含めることができます。
例えば、IsInList を使用して、Portrait Explorer アプリケーションからエクスポートされた顧客のリス
トを参照する条件をセレクション デザイナで定義できます。
文字列関数
概要
以下の式関数は、文字列値を処理するためのものです。
string HtmlEncode( string UncodedString )
HTML エンコーディングによって入力文字列をエンコードして返します。
string IfString( bool Condition, string TrueValue, string FalseCondition )
"Condition" が true ならばある文字列を返し、false ならば別の文字列を返します。
以下の例では、SMS メッセージを使用するコミュニケーションがあったかどうかによって戻り値が
変わります。
78
Portrait Dialogue 6.0 SP1
第 2 章 : 顧客ドメインと式
例 : IfString( has Activities[Channel="SMS"], "SMS 受信済み", "SMS 未受信" )
integer Length( string Value )
入力文字列の長さを返します。
string LowerCase( string Value )
入力文字列を小文字に変換して返します。
integer StrToInt ( string Value )
文字列を整数に変換します。 入力値は、有効な整数でなければなりません。そうでない場合は例外
が発生します。
string ToString( Value )
文字列ではない入力値を文字列に変換して返します。
string UpperCase( string Value )
入力文字列を大文字に変換して返します。
システム関数
概要
以下の式関数は、システム レベル関数です。
string UserCellular()
現在のユーザーの携帯電話番号を返します。
string UserDisplayName()
現在のユーザーの実名を返します。
string UserEmail()
現在のユーザーのメール アドレスを返します。
string UserName()
現在のユーザーのユーザー名を返します。
リファレンス ガイド
79
レポートの設定
• レポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
• レポート ビューア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
• レポート フォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
• レポート パラメータ XML . . . . . . . . . . . . . . . . . . . . . . . . . .87
• レポート表示アクション . . . . . . . . . . . . . . . . . . . . . . . . . . .89
3
レポート
レポート
レポートについて
Portrait Dialogue には、レポート機能があります。 スイート内のさまざまなモジュールに、レポート
機能の異なる部分が含まれています。 以下の図に、その様子を示します。
82
Portrait Dialogue 6.0 SP1
第 3 章 : レポートの設定
Visual Dialogue のレポート デザイナ
レポートは、Visual Dialogue でデザインします。 ユーザーはレポート デザイナで、レポート テンプ
レートを使用し、レポートのデータ ソース、パラメータ、レイアウトを定義します。
Dialogue Server の Report Engine
Dialogue Server 内の Report Engine は、さまざまなフォーマットでレポート出力を作成します。 プロ
グラマやインテグレータは Dialogue Server API (ReportAPI) を使用することにより、プログラム上で
レポートを扱うことができます。 レポート テンプレート定義とアーカイブ化されたレポートは、
Dialogue Server Database のテーブル セットに保存されます。
Report Portal
Report Portal は、レポートを閲覧、実行、および表示するためのインターフェースを提供する Web
アプリケーションです。 ユーザーはこのアプリケーションにログオンして、そのアクセス権に応じて
レポートを実行および表示します。
レポート ビューア
Report Viewer は、レポートの分配をサポートする Web アプリケーションです。 Report Viewer は、
URL パラメータによるレポートの表示およびダウンロードをサポートします。 ユーザーは Report
Viewer にログオンすることはせず、単一の URL で指定された単一のレポートのみにアクセスします。
これらの URL は通常、スクランブル化され、改ざん防止のためにチェックサムが含まれます。詳細に
ついては、 こちらを参照してください。
レポート ビューア
はじめに
Report Viewer は、アーカイブ化されたレポートを表示し、レポート テンプレートを実行するために
使用します。
アーカイブ化されたレポートへのリンク
アーカイブ化されたレポートに直接リンクを張ることができます。 これによって、アーカイブ化され
たレポートが Report Viewer で開かれます。
URL 形式は、次のとおりです。
(太字のテキストはオプションのパラメータを示します)
• http://<webserver>/MHReportViewer/ReportViewer.aspx?
ArchiveID=[ARCHIVE ID]&Action=[ACTION]&
リファレンス ガイド
83
レポート ビューア
FormatIndex=[FORMAT INDEX]&Instance=[INSTANCE_NAME]
URL パラメータ:
• ArchiveID パラメータは必須です。 URL の中の [ARCHIVE ID] の部分は、アーカイブ化されたレポー
トの ID で置き換えます。
• Action パラメータはオプションです。 レポートに対して異なる表示アクションを設定する場合に、
このパラメータを使用します。 URL の中の [ACTION] の部分を、適切なアクションで置き換えま
す。 詳細については、「レポート表示アクション」を参照してください。
• FormatIndex パラメータはオプションです。 アーカイブ化されたレポートの既定のフォーマットを
オーバーライドする場合に、このパラメータを使用します。 URL の中の [FORMAT INDEX] の部分
を、適切なフォーマットで置き換えます。 詳細については、「レポート フォーマット」を参照して
ください。
• Instance パラメータはオプションです。 使用するインスタンス名を指定する場合に、このパラメー
タを使用します。 指定しない場合は、既定のインスタンスが使用されます。
例:
• http://<webserver>/MHReportViewer/ReportViewer.aspx?
ArchiveID=1061&FormatIndex=1&Action=Browse
レポート テンプレートの実行
Report Viewer にリンクを張り、パラメータを使用するレポート、または使用しないレポートを実行で
きます。
レポート パラメータを使用するレポートを実行する場合は、テンプレート ID とレポート パラメータ
を指定する必要があります。 レポート パラメータを URL で指定する場合は、パラメータ名と値 (とオ
プションでパラメータ演算子) を指定する必要があります。 レポート パラメータ演算子を指定しない
場合は、デフォルトの演算子が使用されます。
URL 形式は、次のとおりです。
(太字のテキストはオプションのパラメータを示します)
• レポート パラメータがない場合:
http://<webserver>/MHReportViewer/ReportViewer.aspx?
TemplateID=[TEMPLATE ID]&Action=[ACTION]&FormatIndex=[FORMAT INDEX]
• レポート パラメータがある場合:
http://<webserver>/MHReportViewer/ReportViewer.aspx?
TemplateID=[TEMPLATE ID]&Action=[ACTION]&FormatIndex=[FORMAT
INDEX]&Instance=[INSTANCE_NAME]&
pname[1,2...]=[PARAMETER NAME]&
pvalue[1,2...]=[PARAMETER VALUE]&
poperator[1,2...]=[PARAMETER OPERATOR]
84
Portrait Dialogue 6.0 SP1
第 3 章 : レポートの設定
URL パラメータ:
• TemplateID パラメータは必須です。 URL の中の [TEMPLATE ID] の部分は、レポートのテンプレー
ト ID で置き換えます。
• Action パラメータはオプションです。 レポートに対して異なる表示アクションを設定する場合に、
このパラメータを使用します。 URL の中の [ACTION] の部分を、適切なアクションで置き換えま
す。 詳細については、「レポート表示アクション」を参照してください。
• FormatIndex パラメータはオプションです。 アーカイブ化されたレポートの既定のフォーマットを
オーバーライドする場合に、このパラメータを使用します。 URL の中の [FORMAT INDEX] の部分
を、適切なフォーマットで置き換えます。 詳細については、「レポート フォーマット」を参照して
ください。
• Instance パラメータはオプションです。 使用するインスタンス名を指定する場合に、このパラメー
タを使用します。 指定しない場合は、既定のインスタンスが使用されます。
• 最初のレポート パラメータは、次のように指定します。 pname1=[PARAMETER
NAME]&pvalue1=[PARAMETER VALUE]
2 つめのレポート パラメータは、次のように指定します。 pname2=[PARAMETER
NAME]&pvalue2=[PARAMETER VALUE]
以降、同様に続きます。
例:
• http://<webserver>/MHReportViewer/ReportViewer.aspx?
TemplateID=1267&FormatIndex=1&Action=Browse
スクランブル化された URL
上記の例において、URL パラメータ値 (ArchiveID など) は、"クリア テキスト" で記述されています。
ReportViewer は、URL パラメータ値のチェックサムによるスクランブルもサポートします。 Dialogue
Admin には、ユーザーによる URL のスクランブル化とスクランブル解除を支援するツールが提供され
ています。 ツールは、Dialogue Admin のメイン メニューの [ツール] から使用可能です。
例:
スクランブル化されていない URL: http://<webserver>/MHReportViewer/ReportViewer.aspx?
ArchiveID=1061&FormatIndex=1&Action=Browse
スクランブル化された URL: http://<webserver>/MHReportViewer/ReportViewer.aspx?
ArchiveID=085D0158&FormatIndex=08&Action=7B1F581E4609&CheckSum=015A0F
リファレンス ガイド
85
レポート フォーマット
レポート フォーマット
はじめに
レポートを表示するための形式として、いくつかのフォーマットが用意されています。 フォーマット
インデックスを使用して、Dialogue Server API の呼び出しや、Report Portal や Report Viewer といっ
た Web アプリケーションにアクセスするための URL におけるフォーマットを指定します。
レポート フォーマットの概要
以下の表に、使用可能な各種フォーマットの定義を示します。
86
フォーマッ 説明
ト インデッ
クス
出力ファイル
0
Adobe Acrobat PDF
ファイル
1 つの PDF ファイルが生成されます。
1
改ページを含む HTML
ページごとに 1 つの HTML ファイルが生成されます。 図や
チャートは JPG ファイルとして返されます。
2
1 ページの HTML
すべてのページを含む 1 つの HTML ファイルが生成されま
す。 図やチャートは JPG ファイルとして返されます。
3
XHTML
ページごとに 1 つの XHTML ファイルが生成されます。 図や
チャートは JPG ファイルとして返されます。
4
リッチ テキスト形式
1 つの RTF ファイルが生成されます。
5
1 ページの Microsoft
Excel
1 枚の Excel シートが生成されます。 グラフィックスは含ま
れません。
6
JPEG 画像形式
ページごとに 1 つの JPG ファイルが生成されます。
7
GIF 画像形式
ページごとに 1 つの GIF ファイルが生成されます。
8
ビットマップ イメージ ページごとに 1 つの BMP ファイルが生成されます。
形式
9
Windows メタファイル ページごとに 1 つの WMF ファイルが生成されます。
10
拡張 Windows メタファ ページごとに 1 つの EMF ファイルが生成されます。
イル
11
複数ページの Microsoft レポート ページごとに 1 枚の Excel シートが生成されます。
Excel
グラフィックス (イメージなど) を含みます。 グラフは、イ
メージとして挿入されます。
Portrait Dialogue 6.0 SP1
第 3 章 : レポートの設定
例
Report Viewer でレポートを表示するための URL の例を以下に示します。
http://<webserver>/MHReportViewer/ReportViewer.aspx?
ArchiveID=1061&FormatIndex=1&Action=Browse
レポート パラメータ XML
概要
レポート パラメータ XML は、Dialogue Server の Report API で使用される XML ドキュメントです。
レポート パラメータ XML ドキュメントは、レポート生成時に適用されるレポート パラメータを指定
するために使用します。
レポート パラメータ XML フォーマット
レポート パラメータ XML においてパラメータを指定する場合は、パラメータの名前、データ型、演
算子、および値を指定します。
• 各パラメータは、param という XML ノードで表されます。
• すべての param ノードは、xml という名前のルート XML ノードの子ノードです。
• 各 param XML ノードは、パラメータの名前、データ型、演算子、および値を指定します。
• string_value ノードで、文字列を指定
• number_value ノードで、数値 (integer および float) パラメータ値を指定
• datetime_value ノードで、日付/時刻パラメータ値を指定
• 有効な演算子は以下のとおりです。
• 等号 ( =)
• 小なり記号 (<)
• 以下 (<=)
• 大なり記号 (>)
• 以上 (>=)
• 不等号 (<>)
• 包含 (in) (string および integer データ型のみに適用可能)
レポート パラメータ XML の例
以下に、レポート パラメータ XML の例を示します。
リファレンス ガイド
87
レポート パラメータ XML
注意: 演算子はエンコードする必要があります。< は &lt; に、> は &gt; にエンコードされます。
<xml>
<param>
<name>Contact ID</name>
<type>integer</type>
<operator>=</operator>
<number_value>1031</number_value>
</param>
<param>
<name>Contact name</name>
<type>string</type>
<operator>=</operator>
<string_value>John Johnsen</string_value>
</param>
<param>
<name>Last Contacted</name>
<type>datetime</type>
<operator>&lt;=</operator>
<datetime_value>2006-10-06</datetime_value>
</param>
<param>
<name>Scoring</name>
<type>float</type>
<operator>&lt;&gt;</operator>
<number_value>5.5</number_value>
</param>
</xml>
IN 演算子の使用
IN 演算子を使用すると、複数のパラメータ値が指定できます。 IN 演算子は、string および integer デー
タ型のみに適用できます。 以下の例は、IN 演算子の使用方法を示したものです。
<xml>
<param>
<name>address_types</name>
<type>string</type>
<operator>in</operator>
<string_value>'office_address', 'postal_address',
'delivery_address'<string_value>
</param>
<param>
<name>Products</name>
<type>integer</type>
<operator>in</operator>
<string_value>2, 44, 80, 34</string_value>
</param>
</xml>
88
Portrait Dialogue 6.0 SP1
第 3 章 : レポートの設定
レポート表示アクション
はじめに
Report Viewer において URL を使用してレポートを表示する際には、さまざまな表示アクションを
URL パラメータとして指定できます。
レポート表示アクションの概要
以下の表に、指定可能なレポート表示アクションの定義を示します。
アクション 操作
インデック
ス
説明
0
レポートを、ナビゲーション バー付きで Web ブラウザに表示します。 この
表示アクションは、複数のファイルで構成されるレポート (改ページを含む
HTML など) に適しています。
参照...
注意: レポートが、HTML ページ内に表示できないフォーマットである場合
は、Open の表示アクションが適用されます。それ以外の場合は、
Browse が既定のアクションです。
1
開く
レポート ファイルを Web ブラウザで開きます。 その種類のファイルを開く
際の既定の動作が適用されます。
注意: レポートが複数のファイルで構成される場合 (改ページを含む HTML
など) は、既定で最初のページを開きます。 別のページを指定するに
は、クエリ文字列パラメータである PageNumber
(...Action=Open&PageNumber=3...) を使用します。
存在しないページを指定すると、エラー メッセージが表示されます。
2
上書き保 レポート ファイルをダウンロードし、ブラウザにおいて、それをどこかに保
存
存するように求めるメッセージを表示します。
注意: レポートが複数のファイルで構成される場合 (改ページを含む HTML
など) は、最初のページのみをダウンロードします。
3
印刷
レポート ファイルをダウンロードし、ブラウザにおいて [印刷] ダイアログを
表示します。
注意: この表示アクションは、HTML レポート フォーマットに対してのみ有
効です。
リファレンス ガイド
89
レポート表示アクション
4
PrintClose Print と同じですが、印刷後にブラウザ ウィンドウを閉じます (別の Web ペー
ジから開いたものでない場合は、ユーザーの確認が必要になります)。
注意: この表示アクションは、HTML レポート フォーマットに対してのみ有
効です。
例
Report Viewer でレポートを表示するための URL の例を以下に示します。
http://<webserver>/MHReportViewer/ReportViewer.aspx?
ArchiveID=1061&FormatIndex=1&Action=Browse
関連項目
Report Portal にも同様の表示アクションがあります。 詳細については、Report Portal のドキュメント
を参照してください。
90
Portrait Dialogue 6.0 SP1
メールとリンクの追跡
• 追跡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
• メール追跡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
• リンクの追跡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
• メールとリンクの追跡に関する詳細情報 . . . . . . . . . . . . . . .95
• 回答の追跡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
4
追跡
追跡
メールとリンクの追跡
メール追跡とリンク追跡の機能は、Web Utilities アプリケーションで提供されています。 追跡は主に、
Visual Dialogue で作成される電子メールで使用されますが (詳細については Visual Dialogue のドキュ
メントを参照してください)、電子メールや Web ページに追跡 URL を追加することによって、単独で
使用することもできます。
システムによる追跡の記録方法など、技術的な詳細については、「メールとリンクの追跡に関する詳
細情報」を参照してください。
回答の追跡
回答追跡機能は、アンケート機能の一部で、回答が Customer Web アクセス (CWA) アプリケーショ
ン、または Telemarketing Web アプリケーションによって登録される場合に使用されます。
メール追跡
はじめに
追跡対象となるのは、電子メールに含まれるイメージ タグです。 電子メールの受信者がメールを開封
し、イメージをダウンロードすると、受信者に関する情報が記録されます。
イメージの URL 構造
イメージ URL は、複数の異なる要素で構成され、それらがイメージをダウンロードする電子メールを
識別するために使用されます。
URL には、以下のパラメータが含まれます。
パラメータ
名前
インスタンス
Dialogue Server インスタンス
顧客メッセージ ID
顧客とメッセージを識別するための ID。 この値は、データベース列
CUSTOMER_MESSAGE.CM_ID と同じです。
値がわからない場合は、顧客メッセージ ID に 0 を設定し、追跡を無効
にするには 'nt' を設定します。
92
Portrait Dialogue 6.0 SP1
第 4 章 : メールとリンクの追跡
図 1 - イメージ URL の構成要素
追跡イメージ
既定の追跡イメージは、透過な 1 x 3 ピクセル (幅が 3 ピクセル) の gif イメージです。 透過であるた
め、電子メールには表示されず、また、わずか 1x 3 ピクセルであるため、他のメール要素に与える影
響は最小限となります。
他のイメージを Web Utilities アプリケーションのフォルダの中の Resources/ETImages フォルダに追
加することによって、既定のイメージを置き換えることができます。 図 1 に示したイメージ URL の
ダウンロードされるイメージの部分を、新しいイメージの名前で置き換えれば、新しいイメージが既
定のイメージの代わりに使用されます。 指定された名前のイメージが ETImages カタログに見つから
ない場合は、既定のイメージが使用されます。
リンクの追跡
はじめに
リンクの追跡は、追跡が有効になっているリンクをユーザーがクリックした場合に効果を発揮します。
追跡対象のリンクをユーザーがクリックすると、ユーザーはまず、Web Utilities アプリケーションの
リンク追跡部分へと導かれます。Web Utilities アプリケーションは、クリックを記録し、ユーザーを
参照先 URL へとリダイレクトします。
リンクの URL 構造
リンク追跡では、URL から情報を抽出することによって、どのリンクがクリックされたかを特定しま
す。
URL には、以下のパラメータが含まれます。
パラメータ
名前
インスタンス要素
インスタンス。
必須
リファレンス ガイド
93
リンクの追跡
顧客メッセージ ID 要素
顧客とメッセージを識別するための ID。この値は、データベース列
CUSTOMER_MESSAGE.CM_ID と同じです。
必須ではありません。値がわからない場合は 0 を設定し、追跡を無効
にするには 'nt' を設定します。
リンク名 ID 要素
リンクの名前 ID です。Visual Dialogue のみで使用されます。
必須ではありません。リンクを手動で作成する場合は 0 を設定しま
す。
リンク名要素
リンクの名前は、主にレポート作成のために使用されます。
必須ではありません。不要ならば削除します。
リダイレクト クエリ文字列パ 参照先 URL。
ラメータ
必須
チェック サム パラメータ
参照先 URL の整合性を確認するためのチェック サムです。
必須かどうかを設定できます。必須の場合は、正しいチェック サムが
存在するリダイレクトのみが承諾されます。必須でない場合は、チェッ
ク サムのないリダイレクト リンクも承諾されます。
リンク追跡機能では、2 つの異なる URL 構造をサポートします。1 つは Visual Dialogue で使用される
もので、もう 1 つはリンクが Visual Dialogue の外部で作成された場合に使用されるものです。両者の
違いは、Visual Dialogue がリンク名そのものではなくリンク名 ID を使用する点です。リンクを Visual
Dialogue の外部で作成する場合はそれが難しいため、リンク名をクエリ文字列パラメータとして追加
することも可能です。
注意: チェック サムが必須の場合、手動で作成したリンクは、チェック サムが存在しないため使用で
きません。
94
Portrait Dialogue 6.0 SP1
第 4 章 : メールとリンクの追跡
リンクの追跡の整合性チェックの有効化 (チェック サム)
既定では、リンクの追跡の仕組み上、リンク追跡 URL でチェック サムの存在は必須となっていませ
ん。これは、バージョン 6.0.1 にアップグレードする前に送信したメッセージの URL との互換性を確
保するためです。
整合性チェックを強制する (チェック サムを必須にする) には、web.config の <WebUtilities>\LT の下
で、設定を次のように変更する必要があります。
<checkSum enable="true">
<instances>
<!--<instance name="InstanceName" enable="true" defaultRedirect=""
/>-->
</instances>
</checkSum>
この構成ファイルには、チェック サムが正しくない場合や存在しない場合に使用するリダイレクト
URL を指定するための設定もあります。
構成ファイルには既定値のセクションがありますが、各データベース インスタンスのセクションが存
在する場合もあります。各インスタンスのセクションがある場合、既定値よりも優先されます。
注意: PD の新しいインストールでは、整合性チェックを有効に切り替えることをお勧めします。
メールとリンクの追跡に関する詳細情報
ログ
WEB_TRACK_LOG テーブルは、追跡対象の電子メールと追跡対象のリンクの両方に関する情報を保存
するために使用します。 以下の最初の表は、電子メールの受信者が追跡イメージをダウンロードする
ときに記録される情報を示し、2 つめの表は、追跡対象のリンクがクリックされるときに記録される
情報を示します。
追跡対象の電子メールが開封されたときに保存される情報
保存される情報
WEB_TRACK_LOG テーブル内の使用フィールド
イメージがダウンロードされた日時
WTL_TIMESTAMP
顧客メッセージ ID
WTL_CM_ID
ログ項目の種類 (EMAIL_OPEN)
WTL_LOG_TYPE
ユーザー エージェント文字列 (電子メール ブラウ WTL_USER_AGENT
ザを識別する文字列)
ブラウザの種類
WTL_BROWSER_TYPE
ブラウザのバージョン
WTL_BROWSER_VERSION
リファレンス ガイド
95
メールとリンクの追跡に関する詳細情報
プラットフォーム (オペレーティング システム)
WTL_PLATFORM
追跡対象リンクがクリックされたときに保存される情報
保存される情報
WEB_TRACK_LOG テーブル内の使用フィールド
イメージがダウンロードされた日時
WTL_TIMESTAMP
顧客メッセージ ID
WTL_CM_ID
注意: 値が '0' の場合は、顧客メッセージ ID (と
顧客自身) が不特定であることを意味しま
す。
リンク名
WTL_LINK_NAME
参照先 URL
WTL_URL
ログ項目の種類 (LINK)
WTL_LOG_TYPE
ユーザー エージェント文字列 (電子メール ブラウ WTL_USER_AGENT
ザを識別する文字列)
ブラウザの種類
WTL_BROWSER_TYPE
ブラウザのバージョン
WTL_BROWSER_VERSION
プラットフォーム (オペレーティング システム)
WTL_PLATFORM
リンクとメールのログ記録の設定
Web Utilities アプリケーションの web.config ファイルには、リンクとメール追跡の処理方法に関する
パラメータが含まれます。
96
パラメータ名
説明
LogMethod
使用するログ記録方法を指定します。 サポートさ
れているログの種類については、以下のテーブル
を参照してください。
SaveLogAfterXSeconds
ログ項目をデータベース/ファイルに保存する前に
待機する秒数を指定します。 ログ項目が登録さ
れ、最後の保存からの秒数が指定された値を超え
た場合に、レコードがファイル/データベースに保
存されます。
LogFileLocation
ログ ファイルの場所。
MaxLogFileSize
ログ ファイルの最大サイズ (kB で指定)。 既定は
無制限です。
Portrait Dialogue 6.0 SP1
第 4 章 : メールとリンクの追跡
メールとリンクの追跡では、以下に示すいくつかのログ記録方法がサポートされています。
メソッド
説明
データベース
データベースのみに記録します。
ファイル
ファイルのみに記録します。
データベースとファイル
データベースとファイルの両方に記録します。
データベースまたはファイル (既定)
データベースに記録し、 データベースへの記録に
失敗した場合は、ファイルに記録します。
なし
記録しません。
アプリケーションのステータスと統計
Web Utilities アプリケーションには、ログ統計とエラー メッセージに簡単にアクセスするための Web
ページが提供されています。 この情報は、以下の URL で参照できます。
http://<server>/<web_share>/Application/statistics.axd
ページは既定でオフになっていますが、Application フォルダの web.config ファイルの中の StatisticsMode
パラメータを変更することによって有効にすることができます。
カスタム ログ記録
WebUtilsAPI の中の Web サービスを使用することによって、カスタム アプリケーションに簡単にメー
ルとリンクの追跡機能を追加できます。
回答の追跡
はじめに
回答の追跡は、アンケート回答の進捗を追跡するために使用します。 回答追跡のログ項目は、回答者
が訪問するアンケート ページごとにデータベースに保存されます。
回答追跡の使用
Visual Dialogue には、アンケートの回答追跡データに簡単にアクセスするための標準レポートが提供
されています。 このレポートには、以下の情報が含まれます。
• アンケートへの回答を終了した回答者の数。
• アンケートのそれぞれのページへの回答を完了した回答者の割合 (%) (アンケートへの回答を開始し
た回答者の総数を全体とする)
• アンケートへの回答にかかった平均時間。
リファレンス ガイド
97
回答の追跡
• アンケートの各ページへの回答にかかった平均時間。
回答追跡の要件
回答の追跡は、Customer Web アクセス モジュールと Telemarketing Web モジュールに実装されてい
ます。 回答の追跡を有効にする方法については、Visual Dialogue のドキュメントを参照してくださ
い。
回答の追跡は、アンケートのレイアウトに関連します。アンケートのページは、レイアウトによって
定義されるためです。 したがって、回答の追跡を行うには、アンケートにレイアウトが必要になりま
す。
回答追跡が有効になるタイミング
回答の追跡は、回答者が実際にアンケートに回答するときのみ有効となり、アンケートのテスト時に
は有効にはなりません。 つまり、Visual Dialogue からアンケートを開いた場合 (メッセージ マネー
ジャまたはメッセージ プレビューのメール メッセージで開いた場合など) は、回答の追跡は無効になっ
ています。 回答の追跡は、アンケート デザイナでアンケート URL を作成する際に、[回答の追跡を無
効にする] を選択することによっても、無効にできます。
Visual Dialogue は、アンケートを開くために使用する URL に 'notrack' というクエリ文字列パラメー
タを追加することによって、回答の追跡を無効にします。 Visual Dialogue で電子メールを開くときに
は、メールに含まれるアンケート リンクにこのパラメータが含まれていますが、電子メールが送信さ
れる時にこのパラメータは削除されます。
回答追跡のログ項目
回答の追跡では、次の 3 つの種類のログ項目を回答の追跡に使用します。
• 開始 - [開始] のログ項目は、回答者がアンケートを最初に開いたときに登録されます。
• ページ入力 - [ページ入力] のログ項目は、回答者が新しいページへと移動したときに登録されます。
• 完了 - [完了] のログ項目は、回答者がアンケートへの回答を完了したときに登録されます。
キャッシュ
回答追跡のパフォーマンスを上げるために、ログ項目は直接データベースには保存されません。 ログ
項目は Web サーバー上にキャッシュされ、一括でデータベースに保存されます。 既定では、新しい
ログ項目が登録され、最後の保存から 10 秒以上経過している場合に、ログ項目がデータベースに保存
されます。 ただし、適切なモジュールの web.config ファイルにおける SaveResponseLogAfterXSeconds
の設定を使用することによって、ログ項目の保存頻度を変更することが可能です。 キャッシュされた
回答追跡のログ項目は、モジュールが読み込み解除される場合にも保存されます。
回答の追跡時に保存される情報
回答追跡情報の保存には、QRY_RESPONSE_TRACK_LOG テーブルが使用されます。 以下の表に、
ログ記録される情報を示します。
98
Portrait Dialogue 6.0 SP1
第 4 章 : メールとリンクの追跡
QRY_RESPONSE_TRACK_LOG
テーブル内の使用フィールド
保存される情報
説明
レイアウト ID
回答の追跡時に使用されるアンケートのレイアウ QRTL_QL_ID
トの ID。
回答フォーム ID
回答フォーム ID。 回答者がアンケートへの回答を QRTL_QAF_ID
完了した場合のみ設定されます。
回答者識別子
ある回答者によって、単一の回答において登録さ QRTL_RESPONSE_IDENTIFIER
れたすべてのログ項目には、同じ回答者識別子が
付与されます。
Timestamp
ログ項目が登録された日時。
ログの種類
ログ項目の種類 (開始、ページ入力、または完了)。 QRTL_LOG_TYPE
QRTL_TIMESTAMP
ページ インデック ログ項目生成時のアンケートのページ インデック QRTL_PAGE_INDEX
ス
ス。
匿名フラグ
アンケートが匿名で回答されたものかどうか。
QRTL_IS_ANONYMOUS
顧客ドメイン ID
顧客ドメインの ID。
QRTL_CD_ID
顧客 ID
顧客の ID。
QRTL_CUSTOMER_ID
コンテキスト
コンテキスト。
QRTL_CONTEXT
ダイアログ参加顧 ダイアログ参加顧客の ID。
客 ID
QRTL_DP_ID
テレマーケティン テレマーケティング プロジェクトの ID (アンケー QRTL_CCP_ID
グ プロジェクト トへの回答が Telemarketing モジュールを介した
ID
ものであった場合)。
チャネル タイプ名 アンケート回答時に使用されたチャネル タイプの QRTL_CT_NAME
名前。
ブロードキャスト ブロードキャストの ID。 ブロードキャストは、 QRTL_FM_ID
ID
データベース テーブル FUZZY_MESSAGES に保
存されます。
URL
アンケートへのアクセスに使用された URL (ログ QRTL_URL
項目の種類が [開始] の場合のみ挿入されます)。
ログイン タイプ
アンケートへの回答時に使用されたログイン タイ QRTL_LOGIN_TYPE
プ (アンケートへの回答が Customer Web アクセ
ス モジュールを介したものであった場合のみ、挿
入されます)。
回答フォーム更新 ログ項目が、回答フォームの更新時に登録された QRTL_IS_ANSWER_FORM_UPDATE
フラグ
ものかどうか。
リファレンス ガイド
99
回答の追跡
ユーザー エージェ アンケートへの回答に使用されたインターネット QRTL_USER_AGENT
ント
ブラウザのユーザー エージェント文字列 (ログ項
目の種類が [開始] の場合のみ挿入されます)。
ブラウザの種類
アンケートへの回答に使用されたインターネット QRTL_BROWSER_TYPE
ブラウザの種類 (ログ項目の種類が [開始] の場合
のみ挿入されます)。
ブラウザ バージョ アンケートへの回答に使用されたインターネット QRTL_BROWSER_VERSION
ン
ブラウザのバージョン (ログ項目の種類が [開始]
の場合のみ挿入されます)。
プラットフォーム 回答者がアンケートへの回答に使用したプラット QRTL_PLATFORM
フォーム。
100
Portrait Dialogue 6.0 SP1
コンテンツ オブジェクト
• コンテンツ オブジェクト . . . . . . . . . . . . . . . . . . . . . . . . . .102
• コンテンツ オブジェクト URL . . . . . . . . . . . . . . . . . . . . . .102
5
コンテンツ オブジェクト
コンテンツ オブジェクト
コンテンツ オブジェクトは、一連のルールを評価することによって実際に表示するコンテンツが決定
される、動的なコンテンツを定義します。 通常は、アンケート、電子メール、およびマイプロファイ
ルのスタイルで使用されますが、Web Utilities アプリケーションが使用可能であるならば、任意の Web
ページで使用できます。
コンテンツ オブジェクト URL
コンテンツ オブジェクト モード
コンテンツ オブジェクトは、ページ モードとラップ モードのいずれかを使用して表示できます 。
ページ モード
ページ モードを使用して表示されるコンテンツ オブジェクトは、HTML ページ全体を使用して表示さ
れ、iFrame またはそれに類似するものを使用して表示する必要があります。
以下の例は、コンテンツ オブジェクトを iFrame に含める方法を示します。
<iframe src="http://server/mhwu/CO/ContentObject.axd?
om=page&cok=Content_1" ></iframe>
ラップ モード
ラップ モードを使用して表示されるコンテンツ オブジェクトは、部分的な HTML コードを使用して
表示され、別の Web ページの中に含める必要があります。 コンテンツ オブジェクトが表示される場
所に、コンテンツ オブジェクトへの参照を持つスクリプト タグを含めることによって、コンテンツ
オブジェクトを Web ページに追加します。
以下の例は、コンテンツ オブジェクトを Web ページに含める方法を示します。
<script src="http://dev004/mhwu/co/Object.axd?
om=wrapped&cok=CONTENT_1000&customerid=106981&showerror" type="text/javascript"></script>
コンテンツ オブジェクトの URL 構造
コンテンツ オブジェクトを指定する URL は、以下のパラメータを含むことができます。
パラメータ
102
パラメー 名前
タ キー
Portrait Dialogue 6.0 SP1
第 5 章 : コンテンツ オブジェクト
コンテンツ オブ
ジェクト モード
OM
コンテンツ オブジェクトの表示方法 (必須パラメータ)。
有効な値:
• Page - コンテンツ オブジェクトは、HTML ページ全体として表示
されます。
• Wrapped - コンテンツ オブジェクトは、部分的な HTML コードと
して表示されます。
コンテンツ オブ
ジェクト キー
COK
インスタンス
インスタ コンテンツ オブジェクトが属する Dialogue Server インスタンスを指
ンス
定します。 指定しない場合は、既定のインスタンスが使用されます。
ドメイン ID
CustDomainId 顧客ドメイン ID。
顧客 ID
CustomerId 顧客 ID は、顧客固有のコンテンツを表示するために指定できます。
コンテキスト
コンテキ コンテキスト。 既定値は、 "0"。
スト
参加顧客 ID
ParticipantId 参加顧客 ID は、顧客固有のコンテンツを表示するために、顧客 ID
の代わりに使用できます。
エラーの表示
showError コンテンツ オブジェクトの表示でエラーが生じた場合に、エラー メッ
セージを表示するかどうかを表します。 主にデバッグ時に使用しま
す。
入力
origin
コンテンツ オブジェクトの要求元を指定するオプション値です。 こ
の値は、コンテンツ オブジェクト実行が記録されるデータベース テー
ブル (content_object_log) の独立した列 (col_origin) に格納されます。
そのため、このパラメータはレポート用に適しています。
追跡なし
notrack
コンテンツ オブジェクトにおいてリンク追跡が使用されている場合、
このパラメータを指定すると、追跡が無効になります。
その他のパラメータ
キャッシュ
コンテンツ オブジェクトのキー (必須パラメータ)。
任意の追加パラメータを含めることができます。 これらのパラメー
タは、コンテンツ オブジェクトのコンテンツ項目とルールにおいて、
取得および使用できます。
15 才以
上対象
キャッシュを使用するかどうか、また、その使用方法を指定します。
Ignore - キャッシュを使用しません。 "C" パラメータが指定されない
場合の既定の動作でもあります。
Use - コンテンツ項目を、キャッシュで見つかった場合はキャッシュ
から、見つからなかった場合は Dialogue Server から返します。
Clear - コンテンツ項目をキャッシュから削除し、 Dialogue Server
から新しく取得したコピーを返します。
リファレンス ガイド
103
コンテンツ オブジェクト URL
ClearOnly - コンテンツ項目をキャッシュから削除し、何も返しませ
ん。
注意: コンテンツ項目は、次のパラメータに基づいてキャッシュされ
ます。 参加顧客 ID が指定されなかった場合: コンテンツ オブ
ジェクト モード、コンテンツ オブジェクト キー、インスタン
ス、ドメイン ID、顧客 ID、コンテキスト、および追加パラメー
タ。
参加顧客 ID が指定された場合: コンテンツ オブジェクト モー
ド、コンテンツ オブジェクト キー、インスタンス、参加顧客
ID、および追加パラメータ。
キャッシュ タイム CTO
アウト
コンテンツ項目がキャッシュされてからの経過時間 (単位: 分)。 キャッ
シュ タイムアウトは変動します。つまり、項目がアクセスされる度
にリセットされます。 既定のキャッシュ タイムアウトは、5 分です。
以下の図は、コンテンツ オブジェクトの URL 構造を示したものです。
図 1 - コンテンツ オブジェクトの URL 構造
104
Portrait Dialogue 6.0 SP1
発行済みファイル
• 発行済みファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
• 発行済みファイルの URL . . . . . . . . . . . . . . . . . . . . . . . . . .106
6
発行済みファイル
発行済みファイル
発行済みファイルとは、Dialogue Server を通じて保存され、使用できるファイルです。 これらのファ
イルは、特別に構成された URL によって Web 上でアクセスでき、任意の Web ページで使用できま
す。
発行済みファイルの URL
発行済みファイルの URL 構造
発行済みファイルを指定する URL には、以下のパラメータが含まれます。
パラメータ
パラメータ名
名前
インスタンス
発行済みファイルが属する
Dialogue Server インスタンスを
指定します。
コンテンツ ID
発行済みファイルのコンテンツ
ID。
ファイル名
発行済みファイルのファイル名。
更新モード (オプション)
refreshMode
ファイルのキャッシュ コピーに
対する取り扱い方法を指定しま
す。 以下の図の例を参照してく
ださい。
指定可能なパラメータ値は次の
とおりです。
• 0 - ファイルを返します。
キャッシュにあればキャッシュ
から返し、なければ Dialogue
Server から返します。
• 1 - キャッシュをクリアしま
す。 ファイルのキャッシュ コ
ピーがあれば削除します (ファ
イルは返しません)。
• 2 - キャッシュをクリアし、
ファイルを返します。 ファイ
106
Portrait Dialogue 6.0 SP1
第 6 章 : 発行済みファイル
ルのキャッシュ コピーがあれ
ばクリアし、Dialogue Server
から新しいバージョンを取得
します。
[名前を付けて保存...] ダイアログ useSaveAsDialog
を使用 (オプション)
発行済みファイルのファイル タ
イプによっては、[名前を付けて
保存...] ダイアログが表示されま
す。 このパラメータを指定する
ことによって、この既定の動作
をオーバーライドできます。
既定では、以下を除くすべての
ファイル タイプに対して、[名前
を付けて保存...] ダイアログが表
示されます。
• イメージ - 拡張子が bmp、
gif、jpg、jpeg、および png の
ファイル
• HTML ファイル - 拡張子が htm
および html のファイル
• PDF ファイル
指定可能なパラメータ値は次の
とおりです。
• true - [名前を付けて保存...] ダ
イアログを使用します。
• false - [名前を付けて保存...] ダ
イアログを使用しません。
以下の図は、発行済みファイルの URL 構造を示したものです。
図 1 - 発行済みファイルの URL 構造
リファレンス ガイド
107
バウンス メールの処理
• バウンス メールの処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
• バウンス メールのシステム パラメータ . . . . . . . . . . . . . . .110
• バウンス メールのログ記録 . . . . . . . . . . . . . . . . . . . . . . . .111
7
バウンス メールの処理
バウンス メールの処理
バウンス メールの処理の概要
バウンス メールは、Dialogue Server の 受信メールサービスによって処理されます。 このサービス
は、バウンス メールを受信するサーバー上の電子メール アカウントからメールを取得します。 電子
メールは、Dialogue Admin の [バウンス メールのセットアップ] に基づいて処理されます。 その後、
Dialogue の [バウンス メールをチェック] 操作を使用することによって、バウンスをさらに処理できま
す。
メール受信サービスは、サード パーティ製品である BoogieBounce によって、さまざまなバウンス タ
イプを識別します。 この製品のライセンスは、カスタマー サポートを通して購入できます。
バウンス メールのシステム パラメータ
システム パラメータ
受信メールサービス は、Dialogue Admin において、[メール受信サービス] という名前の [パラメータ
コレクション] の下で設定できます。 以下のパラメータを設定する必要があります。
110
パラメータ名
説明
BBLicenseKey
BoogieBounce API のライセンス キー。 BoogieBounce API を購入す
るときにカスタマー サポートから受け取るライセンス キーです。
Portrait Dialogue 6.0 SP1
第 7 章 : バウンス メールの処理
CheckMailInterval
メール受信サービスが、バウンスされたアドレスがないかを確認する
ために、受信メールをチェックする間隔 (秒数)。
EnableService
現在のインスタンスに対して受信メールサービスを有効または無効に
します。 メール受信サービスでメール受信処理を実行するには、こ
のパラメータを TRUE にする必要があります。 この設定は、単一の
[バウンスの構成] の [構成を有効にする] オプションをオーバーライド
します。
WorkingDirectory
メール受信サービスで使う内部作業ディレクトリ。 このフォルダ構
造において、すべてのバウンス メールは、バウンス コードごとに個
別のファイルに保存されます。
バウンス メールのログ記録
ログ
バウンス メールに関する情報の保存には、BOUNCE_EMAIL_LOG テーブルが使用されます。 どのよ
うな情報が保存されるかは、サービスがバウンス メールからどれだけの情報を抽出できたかによって
異なります。 また、バウンスに対してイベントが生成されるときには、MESSAGE_LOG テーブルが
更新されます。
BOUNCE_EMAIL_LOG テーブルに保存される情報
保存される情報
BOUNCE_EMAIL_LOG テーブル内の使用フィー
ルド
顧客ドメイン ID
BEL_CD_ID
顧客メッセージ ID
BEL_CM_ID
メッセージ バンドル ログ ID
BEL_MBL_ID
顧客 ID
BEL_CUSTOMER_ID
コンテキスト
BEL_CONTEXT
元の電子メールを検出した方法の説明
BEL_IDENTIFIED_BY
バウンス コード
BEL_BOUNCE_CODE
バウンス メールの中で見つかった電子メール ア
ドレス
BEL_EMAIL_ADDRESS
元のバウンス メールが存在する場所
BEL_UNC
リファレンス ガイド
111
バウンス メールのログ記録
メール受信サービスがバウンス ログを作成した日 BEL_CREATED_TIMESTAMP
時
メール受信サービスがバウンスに対してイベント BEL_SYSTEM_PROCESSED_TIMESTAMP
を作成した日時
このフィールドは、カスタム アプリケーションに BEL_CUSTOM_PROCESSED_TIMESTAMP
おけるログの処理に使用できます。
MESSAGE_LOG テーブルに保存される情報
保存される情報
MESSAGE_LOG テーブル内の使用フィールド
メッセージがバウンスされた場合に 'T' が設定さ
れるブール型フィールド
ML_BOUNCED
バウンス コード
ML_BOUNCE_CODE
メール受信サービスによってバウンスが処理され ML_BOUNCED_TIMESTAMP
た日時
112
Portrait Dialogue 6.0 SP1
オブジェクトのインポートと
エクスポート
• エクスポートとインポート . . . . . . . . . . . . . . . . . . . . . . . . .114
• エクスポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
• インポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
• 補助的環境のセットアップ . . . . . . . . . . . . . . . . . . . . . . . . .116
8
エクスポートとインポート
エクスポートとインポート
エクスポートとインポートの概要
Portrait Dialogue には、そのほとんどのオブジェクトをエクスポートおよびインポートする機能が提供
されています。 つまり、あるシステムでオブジェクトを開発し、それをエクスポートして、別のシス
テムにインポートできます。 オブジェクトは、そのオブジェクト タイプによっては、Visual Dialogue
と Dialogue Admin の両方でエクスポートおよびインポート可能です。
補助インポートと非補助インポート
インポートは、補助モードと非補助モードという 2 つの異なるモードで行うことができます。
補助インポートは、インスタンス間のシームレスなインポートおよびエクスポートを実現することを
目的として、複数のインスタンスが特別に設定されている場合に、使用されます。 通常は、1 つ以上
のシステムを開発およびテストする開発/運用環境があり、その実装を運用システムへと移行したい場
合にこれを使用します。
非補助インポートは、任意の 2 つのシステム間で使用できますが、インポート中およびインポート後
に、適切な状態へと導くために、ユーザーが行うべき処理がより多く発生する可能性があります。 例
えば、問題のあるダイアログをカスタマー サポートに送信するために使用できます。
エクスポート
Visual Dialogue からのエクスポート
Visual Dialogue では、次のものをエクスポートできます。
• ダイアログ (テレマーケティング プロジェクトを含む)
• selections
• メッセージ テンプレート
• アンケート
• レポート テンプレート
• ブロードキャスト
• アンケート スタイル
• 発行済みファイル
• コンテンツ オブジェクト
すべてのインポートは、順を追ってその手順を示すウィザードの指示に従って行います。 詳細につい
ては、Visual Dialogue のドキュメントを参照してください。
114
Portrait Dialogue 6.0 SP1
第 8 章 : オブジェクトのインポートとエクスポート
Dialogue Admin からのエクスポート
Dialogue Admin では、次のものをエクスポートできます。
• 顧客ドメイン
• グループ タイプ
• オペレーション タイプ
• SQL 定義
• プラグイン定義
オブジェクトを選択し、コンテキスト メニュー、またはメイン メニューの [項目] から、[エクスポー
ト...] を選択することによって、エクスポートを行います。
顧客ドメインのエクスポート
顧客ドメインをエクスポートすると、ドメインで使用されているすべての SQL クエリとプラグインが
自動的にエクスポートに含まれます。 顧客ドメインで定義されたカテゴリも含まれます。
注意: 顧客ドメインをインポートする場合は、カテゴリが更新または削除されることはなく、ただ新
しいカテゴリが挿入されます。 これは、誤って顧客データが失われることを防ぐためです。
オペレーション タイプのエクスポート
オペレーション タイプをエクスポートすると、オペレーション 内の分岐で使用されているプラグイン
が自動的にエクスポートに含まれます。
インポート
インポートの概要
インポートは、Visual Dialogue と Dialogue Admin の両方において、インポート ウィザードを使用し
て行います。 このウィザードについては、Visual Dialogue のドキュメントに詳細に説明されていま
す。 Dialogue Admin では、ツール メニューから、またはツリー ビューの項目を右クリックして [イン
ポート...] を選択することによって、このウィザードを起動できます。
非補助インポート
非補助インポートは、任意の 2 つのシステム間で行われます。 インポートするオブジェクトはいずれ
も、ターゲット システムに存在してはいけません。 インポート ウィザードでは、インポートするオ
ブジェクトの名前を変更できます。 これによって、インポートするすべてのオブジェクトを、ター
ゲット システムにおける新規のオブジェクトとすることができます。 既存のオブジェクトを上書き/
更新することはできません。
リファレンス ガイド
115
補助的環境のセットアップ
多くのオブジェクトは、他のオブジェクトやシステム データに依存しています。 それが原因となっ
て、インポート中に問題が発生する場合があります。 インポート ウィザードは、そのような依存関係
を表示し、一部の状況下では、それらを変更またはクリアするオプションを提供します。
補助インポート
補助インポートは、システム間のシームレスなインポートおよびエクスポートを実現することを目的
として、複数のシステムが特別に設定されている場合に、使用されます。 通常は、1 つ以上のシステ
ムを開発およびテストする開発/運用環境があり、その実装を運用システムへと移行したい場合にこれ
を使用します。
このように設定された環境を使用する場合は、一方のシステムですべての変更を行い、もう一方のシ
ステムにエクスポートすることによって、環境を同期することが重要です。 例えば、2 つの異なるシ
ステムに、同じ名前を持つ新しいダイアログを作成してはいけません。 このような状態は、同期して
いないとしてインポート時に検出され、インポート処理の完了を妨げる原因になります。
エクスポートおよびインポートできないオブジェクト (一般的には、ダイアログ セットアップのタイ
プと、Dialogue Admin のその他のタイプ) は、手動で同期をとる必要があります。 すべてのシステム
においてそれらに同一のテクニカル名を付けることによって、これを行います。
補助インポートには、依存関係の問題を修正するオプションはありません。 補助的なシステムは、エ
クスポート/インポート、または特定のオブジェクトの手動作成のいずれかによって、同期がとられて
いるとみなされるためです。 必要なオブジェクトはすべて、それ自体がインポートに含まれるか、ま
たはターゲット システムで定義済みである必要があります。
ダイアログおよびアンケートの補助インポートでは、データが失われる場合があります。 グループが
削除されたダイアログをインポートすると、そのグループは参加顧客を含めて、ターゲット システム
からも削除されることになります。 アンケート内の質問と選択肢についても同様です。
つまり、質問を削除し、同じ名前と質問キーで質問を再作成した場合でも、インポート時には、元の
質問とその回答はやはり削除されることになります。これは、グループ、オペレーション 、分岐、質
問、質問の選択肢の識別が、質問キーではなく内部の識別子によって行われているためです。
補助的環境のセットアップ
補助的環境は、エクスポート/インポート可能なすべてのオブジェクトは、すべてのシステムにおいて
同一の識別子を保有しているという前提に基づいています。 同一識別子で同一タイプのオブジェクト
は、システムにおいて同一のオブジェクトであるとみなされます。 この状態を実現するには、補助的
環境の構築時に次の 2 つの作業を行う必要があります。
1) まったく同じシステムを作成する
まず、既存のシステム データベース (通常は運用システム データベース) を基本データベースとして
使用することによって、環境のセットアップを開始します。 次に、このデータベースのコピーを 1 つ
以上作成し、それらのコピーを、開発/テスト/運用前システム データベースとして使用します。 これ
116
Portrait Dialogue 6.0 SP1
第 8 章 : オブジェクトのインポートとエクスポート
を行うと、複数の全く同じシステムが完成します。 データベースのコピーの正確な作成方法は、使用
する RDBMS の種類によって異なります。
2) システム パラメータを設定する
補助的環境の稼働を開始するために設定しなければならないシステム パラメータが 4 つ存在します。
上述の全く同じシステムを作成した直後、システムに対して他の作業を行う前に、これらを設定する
必要があります。 すべてのパラメータを各システムにおいて設定します。これらのパラメータは、
Dialogue Admin の [システム環境] パラメータ コレクションにあります。
• ComplementaryEnvironmentName
これは、補助的環境に付ける名前です。 この値は、すべてのシステムにおいて同一でなければなり
ません。同一環境名のシステム間においてのみ、補助インポートが可能であるためです。
• ComplementarySystemName
これは、補助的環境内の各システムに対する一意の名前であり、したがって、値はすべてのシステ
ムにおいて異なる必要があります。
• ComplementaryMaxSystems
補助的環境内のシステムの最大数です。 開発システム、運用前システム、運用システムがある場合
は、この値に 3 を設定する必要があります。また、この値はすべてのシステムで同じでなければな
りません。 後で環境にさらにシステムを追加できるように、これよりも大きい値を設定しておくこ
とはできますが、最初のシステムの数よりも少ない値を設定することはできません。 いずれかの時
点で、環境内のシステム数をこのパラメータ値以上の数に変更する必要が生じた場合は、同一シス
テムを作成する作業を最初からすべてやり直す必要があります。したがって、事前に十分に計画し
ておくことが賢明といえます。
• ComplementaySystemID
各補助的システムにおける一意の識別子です。 0 から (ComplementaryMaxSystems パラメータに設
定された) 補助的システムの最大数より 1 小さい数までの値を設定する必要があります。この値は、
環境内のすべてのシステムで異なる必要があります。 この値に -1 を設定すると、そのシステムが補
助的環境に含まれないことを意味します。
リファレンス ガイド
117
補助的環境のセットアップ
118
Portrait Dialogue 6.0 SP1
URL 短縮
• URL 短縮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
• データベース インスタンス . . . . . . . . . . . . . . . . . . . . . . . .121
• パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
• メッセージ タイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
9
URL 短縮
URL 短縮
URL 短縮は、URL のエイリアスの作成に使用されるメカニズムです。 URL 短縮を使用すると、従来
の長い URL に対して、短い URL エイリアスを作成できます。
例えば、Portrait Dialogue のアンケート URL は長い URL なので、SMS メッセージに含めて送信する
のには非実用的です。 そこで、SMS メッセージを送信する前に URL 短縮を使用して、この URL を
短縮することができます。
• 元のアンケート URL:
http://www.pb.com/MHCwa/DefaultAn.aspx?Instance=5D085108400047&LoginType=0C&QuestionnaireID=085C055F&LayoutID=085C065B&BroadcastID=&CheckSum=4C5C065002
• 短縮 URL:
http://shorturl.pb.com/AhF56yx
Portrait Dialogue では、2 種類の URL 短縮がサポートされています。
1. コード化短縮 URL
非常に短い暗号のような一語で、短縮 URL キーと呼ばれます。 Portrait Dialogue (特定または匿名)
で生成されたものや、インターネットからコピーされたものなど、あらゆる種類のハイパーリンク
に使用できます。 この短縮 URL は、リンクがクリッカブルな電子出版物に適しています。
例 : http://www.pb.com/mhwu/su/AhF56yx
2. 名前付き短縮 URL
ユーザーが指定する一語で、Christmas2013 のように意味ある語を指定できます。 Portrait
Dialogue (匿名のみ) で生成されたものや、インターネットからコピーされたものなど、いくつか
の種類のハイパーリンクに使用できます。 これは、印刷された出版物向けのリンクに適している
短縮 URL タイプです。 注意 : 短縮 URL データベース テーブルは、そのインスタンス上のすべ
ての顧客ドメインに共通です。 1 つの名前付き短縮 URL は、1 つのインスタンスに対してのみ使
用します。
例 : http://www.pb.com/mhwu/su/jw/Christmas2013
どちらの種類の短縮 URL でも、より適切かつ短い URL を作成するには、IIS を Dialogue Admin のパ
ブリック URL パラメータで定義された短縮 URL Web ユーティリティにリダイレクトするように設定
するのが一番です。 例
• コード化短縮 URL
http://shorturl.pb.com/AhF56yx
• 名前付き短縮 URL
http://shorturl.pb.com/Christmas2013
120
Portrait Dialogue 6.0 SP1
第 9 章 : URL 短縮
ハイパーリンクを挿入する際に、Visual Dialogue のメッセージ デザイナや Web メッセージ デザイ
ナで、また式関数や Web Utilities API を介して、URL 短縮を使用できます。
データベース インスタンス
データベース インスタンスには、短縮識別子というプロパティがあります。 短縮識別子を使用する
と、短縮 URL に関する問題が生じることなく、サーバー間でインスタンスを移動することができま
す。 複数のデータベース インスタンスがあるサイトの場合は、インスタンスごとに一意の短縮識別子
を割り当てることが重要です。
コード化短縮 URL では、短縮識別子が短縮 URL キーにエンコードされます。
例 : http://www.pb.com/mhwu/su/AhF56yx
しかし、名前付き短縮 URL では、Web Utilities アプリケーションから要求される URL に短縮識別子
を含める必要があります。
例 : http://www.pb.com/mhwu/su/jw/Christmas2013
パラメータ
URL 短縮機能では、短縮 URL を生成する際に Dialogue Admin からのパラメータ値を使用します。 こ
れらのパラメータは、Dialogue Admin のパブリック URL パラメータにあります。
パラメータ WebUtilsURL
既定では、Dialogue Server は、パラメータ WebUtilsURL で Web Utilities アプリケーション用に設定
されているベース URL を使用して、短縮 URL を生成します。 例 :
• コード化短縮 URL
http://www.pb.com/mhwu/su/AhF56yx
• 名前付き短縮 URL
http://www.pb.com/mhwu/su/jw/Christmas2013
より適切かつ短い URL を作成するため、システム管理者は IIS でリダイレクトを設定できます。
Dialogue Server は、短縮 URL を生成する際にそのような優先について「理解している」必要があり
ます。 そのためには、Dialogue Admin で追加のパラメータを設定する必要があります。
リファレンス ガイド
121
メッセージ タイプ
パラメータ BaseShortenedURL
パラメータ BaseShortenedURL は、短縮 URL 生成のベースとして WebUtilsURL に優先します。 例
:
• BaseShortenedURL パラメータの値
http://shorturl.pb.com
設定されているリダイレクト
http://shorturl.pb.com -> http://www.pb.com/mhwu/su
結果として得られるコード化短縮 URL:
http://shorturl.pb.com/AhF56yx
結果として得られる名前付き短縮 URL:
http://shorturl.pb.com/jw/Christmas2013
パラメータ NamedShortenedURL
名前付き短縮 URL では、パラメータ NamedShortenedURL を設定して、短縮 URL のインスタンス
部分 (例では jw) を省略できます。 例 :
• NamedShortenedURL パラメータの値
http://shorturl.pb.com
設定されているリダイレクト
http://shorturl.pb.com -> http://www.pb.com/mhwu/su/jw
結果として得られる名前付き短縮 URL:
http://shorturl.pb.com/Christmas2013
• NamedShortenedURL パラメータの値
http://shorturl.pb.com/Norway
設定されているリダイレクト
http://shorturl.pb.com/Norway -> http://www.pb.com/mhwu/su/jw
結果として得られる名前付き短縮 URL:
http://shorturl.pb.com/Norway/Christmas2013
メッセージ タイプ
[メッセージ タイプ] の [デザイン] タブには、
[デザイナで URL 短縮を既定で使用する] というチェックボックスがあります。
122
Portrait Dialogue 6.0 SP1
第 9 章 : URL 短縮
このチェックボックスをオンにすると、Portrait Dialogue のメッセージ テンプレートに Web リンクま
たはハイパーリンクを挿入するときに、ハイパーリンクの設定に関するフォームが表示されます。 こ
のフォームを使用すると、URL 短縮やリンク追跡の有効/無効などのプロパティを設定できます。
既定では、URL 短縮フォームを表示するオプションは、SMS およびテキスト メールに対してのみ有
効です。
リファレンス ガイド
123
プラグイン API
• プラグイン API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
• 顧客データ プラグイン . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
• ブランチ プラグイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
• 式プラグイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
• 汎用プラグイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
• メッセージ プラグイン . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
• 出力チャネル プラグイン . . . . . . . . . . . . . . . . . . . . . . . . . .134
• タイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
• インターフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
10
プラグイン API
プラグイン API
プラグインの概要
プラグインの概念は、Portrait Dialogue の基礎となるものです。 プラグインは、Dialogue Server の機
能を実装およびカスタマイズするために使用されます。
例えば、ダイアログ内のオペレーションの背景にあるロジックは、プラグインを記述することによっ
て実装できます。
プラグインは、適切に定義されたガイドラインに従って記述されたソフトウェアまたはコードです。
プラグインは、COM オブジェクト、.NET クラス、またはスクリプトとして実装およびインストール
されます。 スクリプトとして実装する方法では、Windows スクリプトを使用し、インストールされ
るスクリプト言語として VBScript、JScript、および PerlScript をサポートします。 Dialogue Server
は、オペレーションが実行された場合など、必要になった場合にプラグインを読み込み、呼び出しま
す。
プラグインの種類
Dialogue Server の動作は、いくつかの部分においてカスタマイズが可能です。 そのため、プラグイン
はさまざまな目的に使用され、以下の 6 つのグループに分類されます。
• 顧客データ プラグイン
顧客ドメインの定義において、顧客データを更新するために使用されるプラグインです。
• ダイアログ ブランチ プラグイン
ダイアログ オペレーションにおける分岐を実装するプラグインです。 システムにインストールされ
ている標準のブランチ プラグインの多くは、スクリプトとして実装されており、オープンソース化
されています。
• 式プラグイン
ユーザー定義の式関数を実装するプラグインです。
• メッセージ プラグイン
メッセージ作成のためのプラグインです。 例えば、ある標準プラグインは、Word テンプレートに
顧客データをマージします。
• 出力チャネル プラグイン
チャネルを介した物理的なコミュニケーション (アウトバウンド) を実装するプラグインです。 例え
ば、「メール送信プラグイン」は、SMTP プロトコルを介して電子メール メッセージを送信しま
す。
• 汎用プラグイン
126
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
カスタマイズされたロジックを実装するプラグインです。
これら 6 種類のプラグインは、それぞれ異なる実装規則に従います。 異なる種類のプラグインで実装
される関数は、それぞれ異なるものになります。
DialogServer オブジェクト
プラグインを実装するユーザーのためのツールボックスとして、Dialogue Server ではさまざまな機能
をサポートするインターフェースを提供しています。 このインターフェースは、DialogServer オブ
ジェクトを介して、ランタイムに自動的にスクリプト プラグインに提供されます。
プラグインのインストール
プラグインは、Dialogue Admin にインストールされます。 Dialogue Admin では、スクリプトで記述
されたプラグインを編集することもできます。 詳細については、「プラグイン リポジトリ」を参照し
てください。
注意: 本書では、COM オブジェクトとしてプラグインを実装する方法ではなく、スクリプトを使用
してプラグインを記述する方法について主に説明します。 コード例では、JScript 言語を使用
しています。
顧客データ プラグイン
顧客データ プラグイン
顧客データには、顧客に関連する様々なソースからの情報やデータが含まれます。 すべてのデータが
読み取り専用であるドメインもあれば、Dialogue Server を介して顧客データを追加または変更可能な
ドメインもあります。 Dialogue Server は、顧客データを更新するための次の 2 つのメカニズムをサ
ポートします。
• 自動更新
Dialogue Server が、自動的に SQL ステートメントを生成して、変更をデータベースに反映します。
• プラグインによる更新
プラグインによって、更新が処理されます。
2 つめの方法では、顧客ドメインのデータ グループに対する変更を保存するための顧客データ プラグ
インが実装されます。
顧客データ プラグインは、IMHDataGroupPlugin インターフェースを実装します。
リファレンス ガイド
127
顧客データ プラグイン
顧客データ プラグインの関数
顧客データ プラグインは、 挿入、更新、および削除という 3 つの処理に対応しなければなりません。
したがって、3 つの関数を実装する必要があります。 さらに、重複チェックを処理するための
CheckForDuplicates(...) というオプションのメソッドを実装できます。
以下に、データベース内の個人情報 (顧客データベースのスキーマ BALDER) を更新する例を示しま
す。
function InsertRow( Customer, Fields )
{
var PersonID = DialogServer.SQLRetrieveValueRaw(
"SELECT balder.idnr_seq.nextval FROM dual", null, null);
PersonIDArray = new Array(1);
PersonIDArray[0] = PersonID;
DialogServer.SQLExecuteRaw(
"INSERT INTO balder.idnr (idnr, id_type) values (:idnr, 'P')",
PersonIDArray, null);
DialogServer.SQLExecuteRaw(
"INSERT INTO balder.person (person_id, lastname, firstname) " +
"values (:person_id, :lastname, :firstname)",
new Array(PersonID,
Fields.FieldBySourceName("lastname").NewValue,
Fields.FieldBySourceName("firstname").NewValue),
null);
return PersonID;
}
function UpdateRow( Customer, Fields )
{
var SqlStatement = "UPDATE balder.person SET lastname = :lastname, " +
"firstname = :firstname " +
"where person_id = :person_id";
DialogServer.SQLExecuteRaw(
SqlStatement,
new Array(Fields.FieldBySourceName("lastname").NewValue,
Fields.FieldBySourceName("firstname").NewValue,
Fields.FieldBySourceName("person_id").OldValue),
null);
}
function DeleteRow( Customer, Fields )
{
PersonIDArray = new Array(1);
PersonIDArray[0] = Fields.FieldBySourceName("person_id").OldValue;
DialogServer.SQLExecuteRaw(
"DELETE FROM balder.pers_cat_relation where person_id = :person_id",
PersonIDArray,
null);
DialogServer.SQLExecuteRaw(
"DELETE FROM balder.person where person_id = :person_id",
128
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
PersonIDArray,
null);
DialogServer.SQLExecuteRaw(
"DELETE FROM balder.idnr where idnr = :person_id",
PersonIDArray,
null);
}
function CheckForDuplicates(Customer, DuplicateList )
{
//Do some duplicate checking by searching in the database for potential
//duplicates
//Check firstname and lastname
SQLParams = new Array(2);
SQLParams[0] = Customer.FieldValue("Firstname");
SQLParams[1] = Customer.FieldValue("LastName");
DuplicateRecordSet = DialogServer.SQLOpen("Contacts_DupCheck_1", SQLParams);
while (!DuplicateRecordSet.EOF)
{
DuplicateList.AddDuplicate( DuplicateRecordSet.Fields("cust_char_id").Value
);
DuplicateRecordSet.MoveNext();
}
//Check email address
SQLParams = new Array(1);
SQLParams[0] = Customer.FieldValue("Email");
if ((SQLParams[0] != null) && (SQLParams[0] != ""))
{
DuplicateRecordSet = DialogServer.SQLOpen("Contacts_DupCheck_2", SQLParams);
while (!DuplicateRecordSet.EOF)
{
DuplicateList.AddDuplicate( DuplicateRecordSet.Fields("cust_char_id").Value
);
DuplicateRecordSet.MoveNext();
}
}
//Check addresses - Loop through all address types of customer
Customer.FirstDetailData("Addresses");
while (!Customer.DetailDataEof("Addresses"))
{
SQLParams = new Array(2);
SQLParams[0] = Customer.FieldValue("Addresses.Streetname");
SQLParams[1] = Customer.FieldValue("Addresses.Streetno");
DuplicateRecordSet = DialogServer.SQLOpen("Contacts_DupCheck_3", SQLParams);
while (!DuplicateRecordSet.EOF)
{
DuplicateList.AddDuplicate( DuplicateRecordSet.Fields("pa_pers_cust_id").Value
);
DuplicateRecordSet.MoveNext();
}
Customer.NextDetailData("Addresses");
}
}
リファレンス ガイド
129
ブランチ プラグイン
注意: このスクリプトでは、DialogServer オブジェクトを使用して SQL ステートメントを実行して
います。 プラグインを実装する際には必ず、このオブジェクトが「ツールボックス」として提
供されます。
ブランチ プラグイン
ブランチ プラグイン
ブランチ プラグインは、ダイアログ内のオペレーションの背景にあるロジックを実装します。 オペ
レーションが実行されるときに Dialogue Server によって呼び出されます。 ブランチ プラグイン とい
う名前が付けられているのは、オペレーションには複数の分岐が含まれる可能性があり、これらのプ
ラグインは単一の分岐の背景にある機能に対応するためです。
多数の標準のオペレーション タイプがインストールされており、それらのオペレーションのほとんど
がスクリプトを使用して実装されています。 そのため、コードは公開されており、カスタマイズされ
たブランチ プラグインを記述するための例として誰もが使用できるようになっています。
インターフェース定義
ブランチ プラグインは、IMHBranchPlugin インターフェースを実装します。
ブランチ プラグインの関数
簡単なブランチ プラグインの例を以下に示します (JScript を使用)。
function ExecuteBranch(BranchInfo, Participants)
{
// Get parameters of branch
FilterSQL = BranchInfo.ParamValue("FilterSQL");
IncludeContext = BranchInfo.ParamValue("IncludeContext");
Participants.SelectBySQL(FilterSQL.Name, null, IncludeContext);
BranchInfo.ReportProgressStatus('Filtering participants using SQL', 0);
Participants.AcceptAll();
BranchInfo.ReportProgressStatus('Completed filtering', 100);
}
function GetParamDefs(ParamDefs)
{
ParamDefs.AddParam("FilterSQL", "Filter SQL", 9, true, null, "", "");
ParamDefs.AddParam("IncludeContext", "Use context from SQL", 6, true,
false, "", "");
}
このプラグインでは、 ExecuteBranch と GetParamDefs という 2 つの関数を実装する必要がありま
す。
130
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
後者の GetParamDefs には、プラグインの実行に必要なパラメータが記述されています。 この関数で
は、パラメータが、データ型や既定値といったいくつかのプロパティとともに追加されます。
前者の ExecuteBranch には、オペレーションの内部で実行されるコードが含まれます。 この例では、
プラグインは SQL を使用して、ソース グループから参加顧客を選択しています。
一部のブランチ プラグインではさらに、以下に示す 3 つめの関数 GetDynamicList が実装されている
場合があります。この関数は、分岐の設定時にユーザーが選択可能なパラメータ値のリストを作成す
るためのものです。
function GetDynamicList(CustDomainID, ParamName, DynamicList)
{
if (ParamName == "MyListParam")
{
// Add the fields to in the matrix to polulate
DynamicList.AddField("ID", "integer");
DynamicList.AddField("Name", "string");
//Populate matrix
DynamicList.AddRow( new Array(1, "Options1") );
DynamicList.AddRow( new Array(2, "Options2") );
DynamicList.AddRow( new Array(3, "Options3") );
}
}
式プラグイン
式プラグイン
式プラグインは、ユーザー定義の式関数を実装します。 Dialogue Admin に追加される式プラグイン
は、それぞれ 1 つの式関数を表します。
インターフェース定義
式プラグインは、IMHExprFunctionPlugin インターフェースを実装します。
式プラグインの実装
式プラグインの例を以下に示します (JScript を使用)。
// An example of an user defined expression function
//
// string RepeatString(InputValue, RepeatTimes)
//
// Repeats a given string n times
function DefineFunction( ExprFunctionDef )
{
ExprFunctionDef.Description = "Repeats a string N times";
リファレンス ガイド
131
汎用プラグイン
ExprFunctionDef.ResultType = "string";
ExprFunctionDef.AddParam("InputValue", "string");
ExprFunctionDef.AddParam("RepeatTimes", "integer");
}
function EvaluateFunction( Customer, InputValue, RepeatTimes )
{
var RepeatedString = "";
for (var i=1; i<=RepeatTimes; i++)
{
RepeatedString = RepeatedString + InputValue;
}
return RepeatedString;
}
汎用プラグイン
汎用プラグイン
汎用プラグインは、Dialogue Server によって実行されるカスタマイズされたロジックを実装します。
これらのプラグインは、通常は Generic API メソッド ExecutePlugin に対するレスポンスとして、
Dialogue Server によって呼び出されます。
インターフェース定義
汎用プラグインは、IMHGenericPlugin インターフェースを実装します。
汎用プラグインの実装
汎用プラグインの例を以下に示します (JScript を使用)。
// The Execute method might be declared with any list of input parameters
function Execute(CustomerName, CustomerID)
{
// Get parameters of branch
var CallingUser = DialogServer.User.UserName;
return "Plug-in called by: " + CallingUser + ", CustomerName= " +
CustomerName;
}
132
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
メッセージ プラグイン
メッセージ プラグイン
メッセージ プラグインは、メッセージの作成を実装します。 メッセージは、顧客とのコミュニケー
ションに使用されるさまざまなドキュメント タイプに対して使用される一般的な用語です。 顧客に送
信するドキュメントを作成するには、メッセージ プラグインを呼び出します。
次の 3 つの標準メッセージ プラグインがインストールされています。
• Text Merge
テキスト テンプレートに顧客データをマージします。 結果として得られるドキュメントは、電子
メール (テキストまたは HTML)、SMS、またはエクスポート ファイルである場合があります。
• MS Word Merge
マージ フィールドを含む MS Word テンプレートに顧客データをマージします。
• XSL Transform
XSLT スタイルシートを含むテンプレートを必要とします。 このプラグインは、Dialogue Server か
ら顧客データを XML として受け取り、XSL 変換を実行して、出力ドキュメントを作成します。
インターフェース定義
メッセージ プラグインは、IMHCreateMessagePlugin インターフェースを実装します。 メッセージ
プラグインは、新しいインターフェースである IMHCreateMessagePlugin2 と
IMHCreateMessagePlugin3 も実装する場合がありますが、これは必須ではありません。
メッセージ プラグインの関数
メッセージ プラグインでは、4 つの関数を実装する必要があります。
ProduceMessages は、オブジェクト CustomerContainer の中の顧客に対するメッセージを作成しま
す。 それぞれの顧客に対して個別に単一のメッセージを作成し、保存する場合があります (電子メー
ルなど)。 あるいは、1 つの大きなメッセージだけが Dialogue Server によってクエリされる場合もあ
ります (エクスポート ファイル)。 そのためメッセージ プラグインは、両方のモードをサポートする
必要があります。
ProduceSingleMessage は、ProduceMessages に似た関数です。 ただし、入力パラメータとして、複
数の顧客を含む CustomerContainer オブジェクトの代わりに、単一の顧客である Customer オブジェ
クトをとります。 したがってこの関数は、必ず単一の出力メッセージのみを作成します。
SetDataFields 関数は、与えられたテンプレートを使用したメッセージの作成に必要となる顧客データ
フィールドのセットを、Dialogue Server に報告します。 CanSetDataFields は、プラグインが
SetDataFields の中の顧客データ フィールドを特定できるかどうかを報告します。
リファレンス ガイド
133
出力チャネル プラグイン
出力チャネル プラグイン
出力チャネル プラグイン
出力チャネル プラグインは、電子メールや SMS メッセージの送信など、電子コミュニケーションの
処理を実装するために使用されます。 通信プロトコルを介してメッセージを送信できるようにするた
めに、Dialogue Server はその出力チャネル プラグインを呼び出します。
システムには電子メールを送信するための標準のプラグインがインストールされており、また、SMS
メッセージ送信の実装方法を示す例も提供されています。
インターフェース定義
出力チャネル プラグインは、IMHOutputChannelPlugin インターフェースを実装します。
出力チャネル プラグインの関数
出力チャネル プラグインには、以下に示す SendMessages と GetControlParamDefs という 2 つの関
数が実装されています。
function SendMessages( OutputChannel, OutputMessages )
{
//Let's start...
OutputChannel.ReportProgressStatus("Starting to send SMS messages", 0);
//Get communication param values
ServerIP = OutputChannel.ControlParamValue("ServerIP");
ServerPort = OutputChannel.ControlParamValue("ServerPort");
UserName = OutputChannel.ControlParamValue("UserName");
Pwd = OutputChannel.ControlParamValue("Password");
FromNumber = OutputChannel.ControlParamValue("FromNumber");
//Create the server object
SmsServer = new ActiveXObject("SMSServiceProvider.SmsCtrl");
//Connect to the SMS server
if (! SmsServer.Connect(ServerIP + ":" + ServerPort, UserName, Pwd,
"MHS_CLIENT_FROM_CPAGW", "MHS_CLIENT_TO_CPAGW"))
{
throw new Error(0, "Could not connect to SMS Server");
}
//For each message...
while (! OutputMessages.MemberEof)
{
//Get control parameters distinct to each message
Message = OutputMessages.Message;
MessageText = Message.ContentText;
Cellular = Message.ControlParamValue("Cellular");
134
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
//Try to send the message
if (SmsServer.SendMsg(FromNumber, Cellular, MessageText, "text", 0,
0))
{
//Set status OK for sent messages (and remove them from queue)
OutputMessages.SetStatusOK();
} else
{
//Mark messages that could not be sent with an error message
ErrorText = "SMS send error: " + SmsServer.GetErrorString();
OutputMessages.SetStatusError(ErrorText);
DialogServer.LogDebugMessage(ErrorText);
}
//Go to next message
OutputMessages.NextMember();
}
//Completed!
OutputChannel.ReportProgressStatus("Completed sending messages", 100);
}
function GetControlParamDefs( ControlParamDefs )
{
//Commuication params
ControlParamDefs.AddParam("ServerIP", "100.100.100.0", true, false);
ControlParamDefs.AddParam("ServerPort", "15000", true, false);
ControlParamDefs.AddParam("UserName", "user", true, false);
ControlParamDefs.AddParam("Password", "pass", true, false);
ControlParamDefs.AddParam("FromNumber", "2008", true, false);
//Params to be merge per message
ControlParamDefs.AddParam("Cellular", "", true, true);
}
SendMessages には、入力引数 OutputMessages オブジェクトで引き渡された実際のメッセージを送
信するコードが含まれます。 OutputChannel は、コントロール パラメータにアクセスするためのオブ
ジェクトです。
[コントロール パラメータ]
コントロール パラメータは、プラグインにおいてメッセージを送信するために必要となるパラメータ
です。 プラグインは、独自のコントロール パラメータを GetControlParamDefs において定義します。
コントロール パラメータの値は、テンプレートやベース メッセージの作成時にユーザーによって設定
されます。 コントロール パラメータには、パラメータ値に顧客データ フィールドと同じ値を設定す
ることが可能な、マージ フィールドが含まれる場合があります。
例えば、前出のスクリプトの中の携帯電話番号 (Cellular) パラメータは、SMS テンプレートのデザイ
ン時に、マージ フィールド Person.Cellular に設定できます。
リファレンス ガイド
135
タイプ
タイプ
データ型やパラメータ タイプなど、いくつかのタイプが定義されています。
分岐パラメータ タイプ
はじめに
分岐パラメータ タイプは、操作内の分岐を設定する際に、Dialogue において設定可能なパラメータの
さまざまなタイプです。 整数や文字列といった単純なデータ型である場合もあれば、ダイアログ グ
ループやアンケートといったシステム オブジェクトを表す場合もあります。
パラメータ タイプ
以下の表に、さまざまなパラメータ タイプの定義を示します。
136
ID 論理的 返されるタイプ 保存さ
タイプ
れるタ
イプ
GDS 有 追加情報 1
効
0
テキス 文字列
ト
文字列
はい
1
UNC
(ファ
イル
パス)
文字列
文字列
いいえ
2
日付
(日付
のみ)
datetime (日
付/時刻型)
datetime はい
(日付/
時刻
型)
最小値 (オプション)。
最大値 (オプション)。
3
integer 整数
整数
はい
最小値 (オプション)。
最大値 (オプション)。
4
Float
浮動
浮動
はい
最小値 (オプション)。
最大値 (オプション)。
5
比率
浮動
浮動
はい
最小値 (オプション)。
最大値 (オプション)。
6
チェッ ブール値
クボッ
クス
文字列
はい
7
ベース IMHUnmergedMessage 整数
メッ
セージ
はい
追加情報 2
既定の拡張子 (オプショ
ン)。 後述の説明を参照の
こと。
"EMAIL" など、単一のチャ
ネルに限定 (オプション)
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
ID 論理的 返されるタイプ 保存さ
タイプ
れるタ
イプ
GDS 有 追加情報 1
効
8
IMHQuestionnaire 整数
アン
ケート
はい
9
SQL
定義
整数
いいえ
10 ダイア IMHDialogGroup 整数
ログ
グルー
プ
いいえ
11 ラジオ 文字列
ボタン
いいえ
IMHSQLDef
文字列
12 テレ
IMHCCProject 整数
マーケ
ティン
グプ
ロジェ
クト
いいえ
13 コール IMHCCCallStatusList 文字列
ステー
タス
リスト
いいえ
14 動的リ 文字列
スト
文字列
いいえ
15 セレク IMHSelection
ション
整数
はい
16 タスク 整数
作業グ
ループ
整数
いいえ
リファレンス ガイド
追加情報 2
すべてのアンケートをリ
スト表示するには true、
特定されたアンケートや
混合モードのアンケート
のみをリスト表示するに
は false を設定。 後述の
説明を参照のこと。
表示する名前がセミコロ
ンで区切られたリスト
保存する値がセミコロン
で区切られたリスト
保存するフィールドと表 「値を選択してくださ
示するフィールドの名前 い」といった、選択ダイ
がセミコロンで区切られ アログ ボックスの表題。
たリスト。 後述の例を参
照してください。
137
分岐パラメータ タイプ
138
ID 論理的 返されるタイプ 保存さ
タイプ
れるタ
イプ
GDS 有 追加情報 1
効
17 フォル 文字列
ダ
文字列
いいえ
18 活動タ 文字列
イプ
文字列
いいえ
19 チャネ 文字列
ルタ
イプ
文字列
いいえ
20 カテゴ IMHCategory
リ
文字列
いいえ
21 メール IMHEmailBounceCodeList 文字列
バウン
ス
コード
いいえ
22 動的リ IMHDynamicValuesList 文字列
スト
(多選
択式)
いいえ
23 レポー MHReportTemplate 整数
トテ
ンプ
レート
いいえ
24 レポー IMHReportFormat 整数
ト
フォー
マット
いいえ
25 顧客
IMHCustomerSortFieldList 文字列
ソート
フィー
ルド
いいえ
26 セレク 文字列
ション
条件
いいえ
文字列
追加情報 2
カテゴリ タイプ。 とり得
る値
は、"SM
I PLE"、"BLOCKN
I G"、"SCORN
I G"、
および "VALUES"。
保存するフィールドと表
示するフィールドの名前
がセミコロンで区切られ
たリスト。
「1 つ以上の値を選択し
てください」といった、
選択ダイアログ ボックス
の表題。
ユーザーが条件式をテキ
ストとして編集できるか
どうかを表すブール値。
新しい条件の作成に使用
するエディタの内部クラ
ス名。 空白の場合は、既
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
ID 論理的 返されるタイプ 保存さ
タイプ
れるタ
イプ
GDS 有 追加情報 1
効
追加情報 2
定でドメイン フィールド
条件エディタを使用。
27 PSS
整数
意思決
定最適
化
整数
いいえ
28 PSS
文字列
意思決
定結果
文字列
いいえ
29 PSS
IMHCmsIdList 文字列
オ
ファー
(複数)
はい
30 PSS
整数
オ
ファー
(単一)
整数
はい
31 PSS
整数
取扱い
整数
はい
32 PSS
整数
動作タ
イプ
整数
はい
33 PSS
整数
レスポ
ンス
インジ
ケータ
整数
はい
34 顧客リ IMHCustomerList 整数
スト
はい
ID は、ブランチ プラグインの GetParamDefs メソッドにおいてパラメータを定義する際に、パラメー
タ タイプを示すために使用する番号です。
論理的タイプは、パラメータ タイプの意味を表すものです。
返されるタイプは、ブランチ プラグインの ExecuteBranch メソッドにおいて、パラメータ値をクエリ
する際に返されるデータ型またはインターフェースです。
リファレンス ガイド
139
分岐パラメータ タイプ
保存されるタイプは、パラメータ値を保存するために Dialogue Server によって内部的に使用される
データ型です。
GDS 有効は、 その分岐パラメータ タイプが、ガイド付きダイアログの設定 (GDS) において使用可能
であることを表します。
追加情報 1 と追加情報 2 は、ブランチ プラグインの GetParamDefs メソッドにおいてパラメータを定
義する際に指定する文字列です。 これによって、Dialogue Server および Dialogue に対し、そのパラ
メータの取扱いに関する追加情報を与えます。 これらの文字列の意味は、パラメータ タイプによって
異なります。
既定の拡張子の指定
UNC パラメータ タイプでは、既定の拡張子を指定できます。 プラグインで指定された既定の拡張子
は、Dialogue において、操作を設定するユーザーにファイル名の入力を求める際に使用されます。
既定の拡張子の形式は、以下のようになります。
<説明 1>|<拡張子 1>|<説明 2>|<拡張子 2>|.....
複数の拡張子をセミコロンで区切ることもできます。 以下の例 2 を参照してください。
例 1: テキスト ファイル|*.txt
例 2: すべてのイメージ ファイル|*.jpg;*.gif|JPG ファイル|*.jpg|GIF ファイル|*.gif|ビットマップ|*.bmp
"すべてのファイル|*.*" という部分が、Visual Dialogue によって自動的に追加されます。
リスト表示するアンケートの指定
アンケート パラメータ タイプでは、Visual Dialogue においてユーザーに対し、選択肢としてどのア
ンケートをリスト表示するかを指定できます。
"TRUE" を設定すると、データベースのすべてのアンケートがリスト表示されます。
"FALSE" または空白を設定すると、[調査タイプ] が [混合] または [特定] のアンケートのみをリスト表
示します。 ダイアログが使用する顧客ドメインとは異なる顧客ドメインに限定されたアンケートも除
外されます。
予約済みパラメータ名
ブランチ プラグインでは、そのパラメータ名を定義します。 ただし、一部のパラメータ名はシステム
によって予約されており、特殊な意味を持ちます。
パラメータ名
説明
mh_copy_to_remote_group “「別のダイアログにコピー」”の分岐において、その参加顧客のフローを
Visual Dialog の Dialog Designer における矢印として視覚化するために使
用します。
140
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
パラメータ名
説明
mh_copy_from_remote_group “「リモート グループを使って選択」”と“「別のダイアログにコピー」”の
分岐において、その参加顧客のフローを Visual Dialog の Dialog Designer
における矢印として視覚化するために使用します。
mh_telemarketing
“「テレマーケティングで処理済み」”の分岐において、テレマーケティン
グ プロジェクトでターゲットとする参加顧客を (ソース グループ内で) 特
定するために使用します。
注意: 現バージョンでは、3 つのパラメータ名しか予約されていませんが、将来的にはより多くのパ
ラメータ名が予約される可能性があります。 パラメータに “mh_” で始まる名前を付けることは
推奨されません。
「Dynamic list」 (動的リスト) パラメータ タイプ
Dynamic list パラメータ タイプにより、プログラマは、Visual Dialogue ユーザーに対して選択肢とし
て提供可能な、値の集合を持つパラメータを追加できます。 以下の例で、その方法を示します。
例
以下の例は、ブランチ プラグインのパラメータの使用方法を示しています。
function ExecuteBranch(BranchInfo,
Participants)
{
//Get parameter values
CategoryName = BranchInfo.ParamValue("BCat");
CategoryOption = BranchInfo.ParamValue("Option");
..............
}
function GetParamDefs( ParamDefs )
{
//Define parameters needed in this branch. One string parameter and one
dynamic list parameter
ParamDefs.AddParam("Option", "Option",11,true,null, "Set Category; Remove
Category" , "S;R");
ParamDefs.AddParam("BCat", "Simple Category", 14, true, null,
"cat_name;cat_name", "Choose Simple Category");
}
function GetDynamicList( CustDomainID, ParamName, DynamicList)
{
//Populate the list from which the user can select values in Visual Dialogue
DynamicList.PopulateFromSQL("SelectCategories", Params);
}
リファレンス ガイド
141
アンケートのデータ型
アンケートのデータ型
はじめに
アンケートの質問および選択肢で使用される一連のデータ型です。
データ型
以下の表に、さまざまなデータ型の説明を示します。
データ型の名前
説明
文字列
文字列データ型
整数
整数データ型
浮動
浮動小数点データ型
datetime (日付/時刻
型)
日付と時刻のデータ型
date
日付データ型 (datetime の時刻の部分を含みません)
ブール値
ブール データ型
インターフェース
COM インターフェースは、Dialogue Server に組み込まれた機能をプラグインに提供するために、プ
ラグイン API で定義されます。
このインターフェースは、スクリプト プラグインと COM 実装で使用されます。
IMHAnswerForm インターフェース
説明
IMHAnswerForm は、回答フォームへのアクセスを提供します。
Application
IMHAnswerForm は、回答フォームの回答を参照および設定するために使用されます。
親インターフェース
IMHAnswerForm は、基本インターフェースである IMHCustomPluginServices を継承します。
142
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
プロパティ
以下のプロパティがサポートされています。
datetime AnsweredTimestamp
顧客がその回答フォームに回答した日時。 読み取り専用です。
int64 AnswerFormID
データベースにおける回答フォームの一意の ID (QRY_ANSWER_FORM.QAF_ID)。
string ArchiveRef
オプションで使用可能な文字列値。 読み取り専用です。
variant BroadcastID
回答フォームに関連付けられたブロードキャストの ID。 ブロードキャストが関連付けられていない
場合は、BroadcastID は Null になります。 読み取り専用です。
string ChannelName
回答フォームを受領したチャネルの名前です。
bool Completed
回答フォームが完了しているかどうかを示します。 読み取り専用です。
string Context
アンケートへの回答時に使用されたコンテキスト。 読み取り専用です。
integer CustDomainID
アンケートに回答する顧客が所属する顧客ドメインの ID。
string CustomerID
アンケートに回答する顧客の一意の ID。 読み取り専用です。
bool IsAnonymous
回答フォームが、匿名のレスポンスであるか特定されたレスポンスであるかを示します。 読み取り
専用です。
IMHQuestionnaire Questionnaire
回答フォームに関連付けられたアンケート。 読み取り専用です。
int64 ParticipantID
アンケートに回答するダイアログ参加顧客の ID。 読み取り専用です。
注意: この情報はオプションであり、回答フォームがダイアログ参加顧客に関連付けられている場
合のみ存在します。
リファレンス ガイド
143
IMHAnswerForm インターフェース
datetime ProcessedTimestamp
回答フォームが処理済みとマーク付けされているか、されている場合はその日時を示します。 読み
取り専用です。
注意: ProcessedTimestamp はカスタム用途向けであり、MarkAsProcessed( ) メソッドを呼び出す
ことによって設定またはクリアできます。
datetime ScanTimestamp
回答フォームがスキャンされた日時。使用されていない場合は null になります。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
void ClearAllAnswers( )
回答フォームのすべての回答を削除します。
void ClearAllComments( )
回答フォームのすべてのセクションのコメントを削除します。
void ClearAnswer( string QuestionKey, string AlternativeKey )
指定された質問または選択肢に対する回答をすべて削除します。
選択肢を指定しない場合は、AlternativeKey に空の文字列を設定します。 すると、質問のすべての選
択肢に対する回答を含む、質問全体の回答が削除されます。
void ClearComment( integer SectionNo )
指定されたセクションのコメントを削除します。
void ClearState( )
回答フォームの状態を削除します。
void Delete( )
回答フォームをデータベースから削除します。
variant GetAnswer( string QuestionKey, string AlternativeKey )
特定の質問および選択肢に対する回答の値を返します。 選択肢を指定しない場合は、AlternativeKey
に空の文字列を設定します。
戻り値のデータ型は、アンケートの質問または選択肢のデータ型によって異なります。
string GetAnswerSingleChoice( string QuestionKey )
単一選択の質問の回答を返します。 戻り値は、指定された選択肢の AlternativeKey です。
144
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
string GetAnswerSingleChoiceText( string QuestionKey )
単一選択の質問の回答を返します。 戻り値は、指定された選択肢の表題です。
string GetComment( integer SectionNo )
指定されたセクションのコメントを返します。
bool IsAnswered( string QuestionKey, string AlternativeKey )
指定された質問または選択肢が回答済み (または、多選択質問の場合は選択済み) である場合は true
を返し、そうでない場合は false を返します。
void MakeAnonymous( )
回答フォームの顧客との関連を削除することによって、その回答フォームを匿名にします。
void MarkAsProcessed( bool Unmark )
ProcessedTimestamp プロパティを設定することによって、回答フォームを処理済みとマーク付けし
ます。 このプロパティは、データベース列 QRY_ANSWER_FORM.QAF_PROCESSED_TIMESTAMP
と同じです。
Unmark に True を設定すると、タイムスタンプを設定する代わりにクリアします。
注意: このメソッドの使用方法については、IMHQuestionnaire インターフェースの
GetAnonymousAnswerForm( ) メソッドを参照してください。
void MarkAsProcessedInDialog( IMHBranchInfo Branch, bool Unmark )
回答フォームを、ダイアログ内で処理済みとマーク付けします。 ダイアログによって処理された回
答フォームは、データベース テーブル DLG_PROCESSED_ANSWER_FORM に保存されます。
Branch は、回答フォームを処理したダイアログ内の分岐を表すオブジェクトです。
Unmark に True を設定すると、処理タイムスタンプを設定する代わりにクリアします。
注意: このメソッドの使用方法については、IMHDialog インターフェースの
GetAnonymousAnswerForm( ) メソッドを参照してください。
void RelateToCustomer( IMHCustomer Customer )
匿名の回答フォームを、特定された顧客に関連付けます。
Customer は、顧客を表すオブジェクトです。
void RelateToCustomerByID( integer CustDomainID, string CustomerID, string Context )
パラメータとして顧客を表すオブジェクトの代わりに ID を指定することを除き、RelateToCustomer(
) と同じです。
CustDomainID は、顧客が所属する顧客ドメインの ID です。
CustomerID は、アンケートに回答した顧客の一意の ID です。
リファレンス ガイド
145
IMHAnswerForm インターフェース
Context は、顧客がアンケートに回答したコンテキストです。 Context は、ダイアログ内において、
同じ顧客 ID を持つ複数の参加顧客を区別するために使用します。
void SetAnswer( string QuestionKey, string AlternativeKey, variant AnswerValue )
指定された質問または選択肢の値を設定します。
AnswerValue のデータ型は、指定された質問または選択肢のデータ型と一致する必要があります。
void SetAnswerBool( string QuestionKey, string AlternativeKey, bool AnswerValue )
指定された多選択質問の選択肢の値を設定します。
void SetComment( integer SectionNo, string Comment )
指定されたセクションのコメントを設定します。
コメント
ここでは、QuestionKey、AlternativeKey、および SectionNo について説明します。
QuestionKey は、質問を識別する文字列で、1 つのアンケート内で一意です。 QuestionKey は、Visual
Dialogue のアンケート デザイナに質問が挿入される際に自動的に割り当てられ、既定のフォーマット
は、 Q1, Q2, Q3, ..., Q n です。 ただし、ユーザーは QuestionKey を編集可能で、例えば、質問
'Firstname' に対して 'FNAME' というキーを使用できます。
QuestionKey は質問に対応し、AlternativeKey は質問の中の選択肢に対応します。 AlternativeKey は、
質問内で一意です。 選択肢キーの既定のフォーマットは、 A1, A2, A3, ..., An です。
SectionNo は、セクション番号です。アンケートの最初のセクションを 1 として数えます。
例
以下の例は、操作において参加顧客とその回答フォームを走査する方法を示したものです。 参加顧客
は、その回答に基づいてターゲット グループに移動されます。
function ExecuteBranch(BranchInfo, Participants)
{
..............
//Open the container
Participants.Open("mh_customer_id");
while (! Participants.MemberEof) {
//Get the answer forms of questionnaire with id 1048
var AnswerForm = Participants.Participant.GetAnswerForm(1048);
if (AnswerForm != Null)
{
//Dependent of their answers move participants to the to-group
if ((AnswerForm.IsAnswered("Q10", "A3") || (AnswerForm.IsAnswered("Q10",
"A4"))
Participants.Participant.Accept();
}
146
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
//Move to next participants
Participants.NextMember();
}
..............
}
IMHAnswerFormList インターフェース
説明
IMHAnswerFormList は、回答フォームのリストまたはコンテナへのアクセスを提供します。
Application
IMHAnswerFormList は、回答フォームのセットに対して繰り返しの処理を行うために使用します。
親インターフェース
IMHAnswerFormList は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer Count
リスト内の回答フォームの数です。
bool MemberEof
リスト内にそれ以上回答フォームが含まれていないことを示すブール型のプロパティです。 読み取
り専用です。
IMHAnswerForm AnswerForm
現在の回答フォームを提供します。
メソッド
以下のメソッドがサポートされています。
bool NextMember( )
リスト内の次の回答フォームを現在の回答フォームとします。 コンテナ内にそれ以上回答フォーム
が含まれていない場合は、true を返します。
例
例はありません。
リファレンス ガイド
147
IMHBranchDynamicList インターフェース
IMHBranchDynamicList インターフェース
説明
IMHBranchDynamicList は、分岐パラメータのとり得る値のリストを含むオブジェクトへのアクセスを
提供します。
Application
IMHBranchDynamicList は、ブランチ プラグインにおいて、Visual Dialogue でユーザーが選択可能な
パラメータ値のリストを作成するときに使用されます。 このインターフェースは、Dynamic list パラ
メータ タイプとともに使用されます。
値のリストを作成するには、AddField/AddRow を呼び出すか、いずれかの設定 (Populate) メソッドを
使用します。
親インターフェース
IMHBranchDynamicList は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドがサポートされています。
void AddField( string FieldName, string Datatype )
値のリストにフィールドまたは列を追加します。 AddField を連続して呼び出して複数の列を追加し
てから、AddRow を呼び出して実際の値を追加します。
FieldName は、フィールドまたは列の名前です。
Datatype は、有効なデータ型を指定する文字列です。
void AddRow( array Values )
値のリストに行を追加します。
Values は、AddField を使用して定義されたフィールドに対応する複数の要素を含む配列です。
void PopulateFromSQL( string SQLName, array Params )
SQL SELECT ステートメントから、リストに値を設定します。
SQLName は、Dialogue Admin の SQL リポジトリに格納された SQL ステートメントの名前です。
Params は、SQL ステートメントにバインドするパラメータ値の配列です。
148
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
void PopulateFromXML( string XMLData )
XML ドキュメントから、リストに値を設定します。
XMLData は、リストへの値の設定に使用される XML を含む文字列です。 XML は、Microsoft .NET
の DataSet の標準の XML 表現に従います。
例
以下の例は、動的リスト パラメータの使用方法を示したものです。
function ExecuteBranch(BranchInfo, Participants)
{
//Get parameter values
CategoryName = BranchInfo.ParamValue("BCat");
..............
}
function GetParamDefs( ParamDefs )
{
//Define parameters needed in this branch. One string parameter and one
dynamic list parameter
ParamDefs.AddParam("BCat", "Simple Category", 14, true, null,
"cat_name;cat_name", "Choose Simple Category");
}
function GetDynamicList(CustDomainID, ParamName, DynamicList)
{
//Populate the list from which the user can select values in Visual Dialogue
if (ParamName = "BCat")
{
DynamicList.PopulateFromSQL("SelectCategories", Params);
}
else if (ParamName == "xml_param")
{
var fs = new ActiveXObject("Scripting.FileSystemObject");
var XMLFile = fs.OpenTextFile("PopulateFromXML.xml", 1, false, -1);
//Unicode XML file
var XMLDataString = XMLFile.ReadAll();
DynamicList.PopulateFromXML(XMLDataString);
}
}
IMHBranchInfo インターフェース
説明
IMHBranchInfo は、ダイアログの操作内の分岐に関する 1 つの情報を提供します。
リファレンス ガイド
149
IMHBranchInfo インターフェース
Application
IMHBranchInfo は、操作の実行時にブランチ プラグインで使用されます。
親インターフェース
IMHBranchInfo は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer CustDomainID
現在の顧客ドメインの ID (一意の識別子) です。 読み取り専用です。
IMHDialog Dialog
分岐が存在するダイアログを表すオブジェクトを提供します。 読み取り専用です。
IMHDialogGroup FromGroup
現在の操作のソース グループを表すオブジェクトを提供します。 読み取り専用です。
integer ID
分岐の一意の ID です。 読み取り専用です。
string Name
Name は、分岐の名前です。
IMHDialogOperation Operation
操作を表すオブジェクトを提供します。 読み取り専用です。
variant ParamValue[ string ParamName ]
Visual Dialogue で設定された分岐パラメータ値を返します。 パラメータのタイプによって、戻り値
のデータ型は異なります。 ブランチ プラグインで使用する一連のパラメータ タイプが定義されてい
ます。
ParamName は、ブランチ プラグインによって GetParamDefs 関数において定義されたパラメータ
の名前です。
integer Priority
分岐の優先度です。 操作には複数の分岐が含まれている場合があり、優先度は、操作内の分岐の実
行順序を表します。 最初の分岐の優先度の値は 1 です。 読み取り専用です。
IMHDialogGroup ToGroup
分岐のターゲット グループを表すオブジェクトを提供します。 読み取り専用です。
150
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
メソッド
以下のメソッドがサポートされています。
void CheckForAbort( )
現在の実行が、中止の通知を受けているかどうかを確認します。 受けている場合、Dialogue Server
が例外を発生します。
void ReportProgressStatus( string StatusText, integer PercentCompleted )
分岐実行時にステータスと進捗を Dialogue Server に報告します。
StatusText は、現在のステータスを説明する文字列です。
PercentCompleted は、実行の完了率をパーセントで表したものです。 有効な値は、0 ~ 100 の数値
です。
注意: ReportProgressStatus( ) は、操作が中止の通知を受けているかどうかを確認します。
CheckForAbort( ) が、暗黙的に呼び出されます。
注意: StatusText は、翻訳 (ローカライズ) をサポートします。 翻訳メカニズムは、標準のスクリプ
ト実装のプラグインで使用される内部メカニズムであり、カスタマイズされたプラグインや
アドオン プラグインには適用できません。 IMHDialogServer の Translate(..) メソッドと
TranslateAndFormat(..) メソッドも参照してください。
void ReportProgressStatusFormat( string StatusText, array Params, integer PercentCompleted )
分岐実行時にステータスと進捗を Dialogue Server に報告します。 StatusText の書式設定がサポート
されている点を除き、上記の ReportProgressStatus(...) と同じです。
StatusText は、現在のステータスを説明する文字列です。
Params は、書式設定時に文字列 (Msg) に挿入する値の配列です。
PercentCompleted は、実行の完了率をパーセントで表したものです。 有効な値は、0 ~ 100 の数値
です。
書式設定の例 (JScript):
ReportProgressStatusFormat("Current status: processing item {0} of {1}", new array(5, 10), 50);
プレースホルダーの {0} と {1} には、Params 配列 (書式設定) からの値が代入され、結果は以下のよ
うになります。
"Current status: processing item 5 of 10"
例
例はありません。
リファレンス ガイド
151
IMHBranchParamDefs インターフェース
IMHBranchParamDefs インターフェース
説明
IMHBranchParamDefs は、分岐で必要なパラメータの定義を含むオブジェクトへのアクセスを提供し
ます。
Application
IMHBranchParamDefs は、ブランチ プラグインによってパラメータを定義するためにアクセスされま
す。
親インターフェース
IMHBranchParamDefs は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドがサポートされています。
void AddParam( string Name, string DisplayLabel, integer ParamType, bool Required, variant
DefaultValue, variant ExtraInfo1, variant ExtraInfo2 )
ブランチ プラグインのパラメータ定義を定義し、追加します。 このパラメータは、オペレーション
の設定時にユーザーが Visual Dialogue で設定します。
Name は、パラメータを識別するテクニカル名です。
DisplayLabel は、ユーザーに対して表示されるパラメータ名です。
ParamType は、パラメータのタイプです。 一連のパラメータ タイプが定義されています。
Required は、分岐を実行する前に、パラメータに値が設定されていなければならないかどうかを指
定します。
DefaultValue は、既定値を指定するオプションのパラメータです。 既定値を使用しない場合は、こ
の DefaultValue に null 参照を設定します。
ExtraInfo1 と ExtraInfo2 は、一部のパラメータ タイプで使用される値です。
注意: DisplayLabel は、翻訳 (ローカライズ) をサポートします。 翻訳メカニズムは、標準のスクリ
プト実装のプラグインで使用される内部メカニズムであり、カスタマイズされたプラグイン
やアドオン プラグインには適用できません。 IMHDialogServer の Translate(..) メソッドと
TranslateAndFormat(..) メソッドも参照してください。
152
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
例
以下の例は、ParamDefs オブジェクトに対し、IMHBranchParamDefs インターフェースを介してアク
セスする方法を示しています。
function GetParamDefs( ParamDefs )
{
//Define parameters needed in this branch. One string parameter and one
dynamic list parameter
ParamDefs.AddParam("Option", "Option",11,true,null, "Set Category; Remove
Category" , "S;R");
ParamDefs.AddParam("BCat", "Simple Category", 14, true, null,
"cat_name;cat_name", "Choose Simple Category");
}
IMHBranchPlugin インターフェース
説明
IMHBranchPlugin には、ブランチ プラグインによって実装されるメソッドが含まれます。
COM ベースのプラグインでは、このインターフェースとその親インターフェースが実装されますが、
スクリプト ベースのプラグインでは、このインターフェースのみが実装されます。
Application
ダイアログオペレーション オペレーション内の分岐の動作は、IMHBranchPlugin によって実装されま
す。
親インターフェース
IMHBranchPlugin は、すべてのプラグインの基本インターフェースである IMHPlugin を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
void ExecuteBranch( IMHBranchInfo BranchInfo, IMHParticipants Participants )
ExecuteBranch は、オペレーションの実行時に、オペレーションのソース グループに含まれる参加
顧客を処理するために、Dialogue Server によって呼び出されます。
BranchInfo には、分岐が Visual Dialogue においてどのように設定されているかなど、実行される分
岐に関する情報が含まれます。
リファレンス ガイド
153
IMHCategory インターフェース
Participants は、オペレーションのソース グループに含まれるダイアログ参加顧客を表すオブジェク
トです。
void GetDynamicList( integer CustDomainID, string ParamName, IMHBranchDynamicList DynamicList
)
GetDynamicList は、Dynamic List タイプのパラメータがとり得る値を取得するために、Dialogue
Server によって呼び出されます。
CustDomainID は、現在の顧客ドメインの ID です。
ParamName は、GetParamDefs で定義されたパラメータの名前です。
DynamicList は、このメソッドで設定される、値のリストを表すオブジェクトです。
void GetParamDefs( IMHBranchParamDefs ParamDefs )
GetParamDefs は、ブランチ プラグインで必要なパラメータの定義を取得するために、Dialogue
Server によって呼び出されます。
ParamDefs は、定義されるパラメータ セットを表すオブジェクトです。
例
例はありません。
IMHCategory インターフェース
説明
IMHCategory は、セレクションに関する情報を提供します。
Application
IMHCategory は、プラグインにおいてセレクションにアクセスするために使用されます。
親インターフェース
IMHCategory は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string Name
カテゴリの一意の Name です。 読み取り専用です。
string Value
カテゴリに値が設定されている場合の、カテゴリの一意の Value です。 読み取り専用です。
154
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHCacheItem インターフェース
説明
IMHCacheItem は、プラグイン API においてキャッシュに使用される、基本インターフェースです。
Application
IMHCacheItem は、キャッシュ オブジェクトを必要とするプラグインによって実装されます。 このイ
ンターフェースは現在、IMHMessageAssembleInfo との関連においてのみ、使用されることに注意
してください。
プロパティ
以下のプロパティがサポートされています。
string ItemName
キャッシュされた項目の一意の名前です。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHCCCallStatusList インターフェース
説明
IMHCCCallStatusList は、コール ステータス タイプのリストを提供します。
Application
IMHCCCallStatusList は、プラグインにおいて、テレマーケティング プロジェクトのコール ステータ
ス タイプにアクセスするために使用されます。 このインターフェースは、コール ステータス ブラン
チ プラグインによる標準の選択/分割において使用されます。
リファレンス ガイド
155
IMHCCProject インターフェース
親インターフェース
IMHCCCallStatusList は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string ListAsString
コール ステータス ID がコンマで区切られたリストです。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHCCProject インターフェース
説明
IMHCCProject は、テレマーケティング プロジェクトに関する情報を提供します。
Application
IMHCCProject は、プラグインにおいてテレマーケティング プロジェクトにアクセスするために使用
されます。
親インターフェース
IMHCCProject は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer ID
テレマーケティング プロジェクトの一意の ID です。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
156
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
例
例はありません。
IMHChannelMessage インターフェース
説明
IMHChannelMessage は、出力チャネル プラグインからのメッセージへのアクセスを提供します。
Application
IMHChannelMessage は、プラグインにおいて、出力チャネルへと送信されたメッセージへのインター
フェースとして使用されます。 チャネル メッセージは、単一のメッセージを表します。
親インターフェース
IMHChannelMessage は、IMHMessage インターフェースを継承します。
プロパティ
以下のプロパティがサポートされています。
bool IsContentBinary
メッセージのコンテンツがバイナリであるか、テキストであるかを示します。
string FileEncoding
FileEncoding は、現在のメッセージに対して使用されるファイル エンコーディングの名前です。 こ
の設定はテキスト ファイルにのみ適用されます。
string FileExtension
現在のタイプのメッセージをファイルとして保存する際に使用するファイル拡張子 (htm または txt)。
integer MessageBundleID
データベース内のメッセージ バンドルの一意の識別子 (データベース列
MESSAGE_BUNDLE_LOG.MBL_ID に対応します)。
string MessageName
メッセージに付けられた名前。
int64 MessageOutputQueueID
データベース内のメッセージ キュー項目の一意の識別子 (データベース列
MESSAGE_OUTPUT_QUEUE.MOQ_ID に対応します)。 読み取り専用です。 メッセージング フレー
ムワークによって内部で使用されます。
bool OnePerCustomer
リファレンス ガイド
157
IMHMessageContainer インターフェース
(メッセージが含まれる) メッセージ バンドルに、顧客ごとに 1 つのメッセージが含まれるか (電子
メールなど)、それともすべての顧客に対して 1 つのメッセージが含まれるか (顧客のエクスポート
リストなど) を示します。
bool StoredAsFile
メッセージのコンテンツがファイルに保存されているかどうかを示します。
注意: メッセージがファイルに保存されている場合は、MessageUNC プロパティがそのファイルを
指しています。 メッセージがファイルに保存されていない場合は、ContentText と
ContentBinary のいずれかのプロパティにコンテンツが含まれています。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHMessageContainer インターフェース
説明
IMHMessageContainer は、メッセージのセットに対するアクセスを提供します。
Application
IMHMessageContainer は、出力チャネル プラグインにおいて、メッセージのセットへのインター
フェースとして使用されます。 メッセージを送信するとき、プラグインは、送信するメッセージを含
むコンテナ オブジェクトを受け取ります。
親インターフェース
IMHMessageContainer は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
bool ContainsPersistentMessages
コンテナに含まれるのが、Dialogue Database に保存されたメッセージ (永続) であるか、または、そ
の場限りで送信されるメモリ内のメッセージ (非永続) であるかを示します。 読み取り専用です。
integer Count
コンテナ内のメッセージ数です。
158
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
bool MemberEof
コンテナ内にそれ以上メッセージが含まれていないことを示すブール型のプロパティです。 読み取
り専用です。
IMHChannelMessage Message
現在のメッセージを提供します。
integer ProcessedCount
プラグインによって処理済みのメッセージの数。つまり、SetStatusOK または SetStatusError が呼
び出されたメッセージの数です。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
bool NextMember( )
コンテナ内の次のメッセージを現在のメッセージとします。 コンテナ内にそれ以上メッセージが含
まれていない場合に、true を返します。
void SetStatusError( string ErrorMessages )
現在のメッセージにエラーのマーク付けをします。 このメソッドは、メッセージが送信できなかっ
た場合にプラグインによって呼び出されます。
ErrorMessage は、エラーの理由を含む文字列です。
void SetStatusOK( )
現在のメッセージが正常に送信されたことを Dialogue Server に通知するために、プラグインによっ
て呼び出されます。 これによって、メッセージは送信キューから削除されます。
例
例はありません。
IMHCmsIdList インターフェース
説明
IMHCmsIdList は、整数の ID 値のリストを提供します。
Application
IMHCmsIdList は、プラグインにおいて、PSR データベースの ID 値のリストにアクセスするために使
用されます。
リファレンス ガイド
159
IMHCreateMessagePlugin インターフェース
親インターフェース
IMHCmsIdList は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer Id[ integer Index ]
1 つの ID 値を提供します。
Index は、リストにおける ID 値のインデックスです。 インデックス値が 0 の場合は、最初の値を表
します。
integer Count
コレクション内の ID 値の数です。
メソッド
以下のメソッドがサポートされています。
void Add( integer Id )
リストの末尾に ID 値を追加します。
void Clear( )
ID 値のリストをクリアします。
例
例はありません。
IMHCreateMessagePlugin インターフェース
説明
IMHCreateMessagePlugin には、メッセージ プラグインによって実装されるメソッドが含まれます。
COM ベースのプラグインでは、このインターフェースとその親インターフェースが実装されますが、
スクリプト ベースのプラグインでは、このインターフェースのみが実装されます。
Application
テンプレートまたはベース メッセージに基づくメッセージを作成するロジックは、
IMHCreateMessagePlugin によって実装されます。
160
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
親インターフェース
IMHCreateMessagePlugin は、すべてのプラグインの基本インターフェースである IMHPlugin を継承
します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
bool CanSetDataFields( )
CanSetDataFields の戻り値によって、Dialogue Server は、メッセージ作成に必要な顧客データ
フィールドをプラグインが特定できるかどうかを知ることができます。 true が返された場合は、
SetDataFields メソッドが Dialogue Server によって呼び出されます。
IMHMessageBundle ProduceMessages( IMHUnmergedMessage UnmergedMessage,
IMHCustomerContainer CustomerContainer )
ProduceMessages は、一連のメッセージを作成するために Dialogue Server によって呼び出されま
す。 ProduceMessages は、メッセージのバンドルを表すオブジェクトを返す必要があります。 そ
のオブジェクトは、CustomerContainer オブジェクトのメソッドを使用することによって作成できま
す。
UnmergedMessage は、メッセージ テンプレートまたはベース メッセージを表すオブジェクトで
す。
CustomerContainer は、メッセージの作成対象となる顧客を表すオブジェクトです。 このプラグイ
ンでは通常、CustomerContainer に含まれるすべての顧客に対してループ処理を行うことになりま
す。
IMHMessage ProduceSingleMessage( IMHUnmergedMessage UnmergedMessage, IMHCustomer
Customer )
ProduceSingleMessage は、単一の顧客に関連する単一のメッセージを作成するために Dialogue
Server によって呼び出されます。 ProduceSingleMessage は、メッセージを表すオブジェクトを返
す必要があります。 そのオブジェクトは、Customer オブジェクトのメソッドを使用することによっ
て作成できます。
UnmergedMessage は、メッセージ テンプレートまたはベース メッセージを表すオブジェクトで
す。
Customer は、メッセージの作成対象となる顧客を表すオブジェクトです。
void SetDataFields( IMHUnmergedMessage UnmergedMessage, string FieldsAvailable )
SetDataFields は、メッセージの作成に使用する (顧客ドメインからの) 顧客データ フィールドのセッ
トを知る必要がある場合に、Dialogue Server によって呼び出されます。 したがって、このメソッド
リファレンス ガイド
161
IMHCreateMessagePlugin2 インターフェース
を実装することによってプラグインは、UnmergedMessage で定義されたテンプレートを使用する
メッセージの作成に必要なデータ フィールドのセットを、報告することになります。 プラグインで
は、UnmergedMessage の DataFields プロパティを更新する必要があります。
UnmergedMessage は、メッセージ テンプレートまたはベース メッセージを表すオブジェクトで
す。
FieldsAvailable は、顧客ドメインで使用可能なフィールドがセミコロンで区切られたリストです。
例えば、プラグインは、メッセージ テンプレートで使われているフィールドがすべて使用可能な
フィールドであることを確認するために、FieldsAvailable を使用できます。
例
例はありません。
IMHCreateMessagePlugin2 インターフェース
説明
IMHCreateMessagePlugin2 は、メッセージ プラグインによって実装されたメソッドを含む
IMHCreateMessagePlugin を拡張しています。 すべてのメッセージ プラグインにおいて、
IMHCreateMessagePlugin を実装する必要がありますが、IMHCreateMessagePlugin2 と
IMHCreateMessagePlugin3 の実装はオプションになります。
IMHCreateMessagePlugin2 を実装することによって、Dialogue Server は、大きなメッセージ生成を
複数のバンドルに分割できるようになり、その結果として、メッセージ生成を最適化できます。
COM ベースのプラグインでは、このインターフェースとその親インターフェースが実装されますが、
スクリプト ベースのプラグインでは、このインターフェースのみが実装されます。
Application
テンプレートまたはベース メッセージに基づくメッセージを作成するロジックは、
IMHCreateMessagePlugin2 によって実装されます。
親インターフェース
IMHCreateMessagePlugin2 は、メッセージ プラグインの基本インターフェースである
IMHCreateMessagePlugin を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
162
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
IMHMessageBundle ProduceMessagesEx( IMHUnmergedMessage UnmergedMessage,
IMHCustomerContainer CustomerContainer, integer MaxBundleSize )
ProduceMessagesEx は、一連のメッセージを作成するために Dialogue Server によって呼び出され
ます。 ProduceMessages は、メッセージのバンドルを表すオブジェクトを返す必要があります。
そのオブジェクトは、CustomerContainer オブジェクトのメソッドを使用することによって作成でき
ます。
UnmergedMessage は、メッセージ テンプレートまたはベース メッセージを表すオブジェクトで
す。
CustomerContainer は、メッセージの作成対象となる顧客を表すオブジェクトです。 このプラグイ
ンでは通常、CustomerContainer に含まれるすべての顧客に対してループ処理を行うことになりま
す。
MaxBundleSize は、作成するメッセージの最大数です。 プラグインは、CustomerContainer に多数
の顧客が含まれている場合でも、この数のメッセージだけを作成します。
注意: プラグインは、各メッセージを作成した後に、CustomerContainer.NextMember() を呼び出す
必要があります。
例
例はありません。
IMHCreateMessagePlugin3 インターフェース
説明
IMHCreateMessagePlugin3 は、メッセージ プラグインによって実装されたメソッドを含む
IMHCreateMessagePlugin を拡張しています。 すべてのメッセージ プラグインにおいて、
IMHCreateMessagePlugin を実装する必要がありますが、IMHCreateMessagePlugin2 と
IMHCreateMessagePlugin3 の実装はオプションになります。
IMHCreateMessagePlugin3 を実装することによって、メッセージ プラグインは、メッセージをデー
タベースに保存する方法を最適化できます。
COM ベースのプラグインでは、このインターフェースとその親インターフェースが実装されますが、
スクリプト ベースのプラグインでは、このインターフェースのみが実装されます。
Application
メッセージのストレージを最適化するロジックは、IMHCreateMessagePlugin3 によって実装されま
す。
リファレンス ガイド
163
IMHContentItem インターフェース
親インターフェース
IMHCreateMessagePlugin3 は、メッセージ プラグインの基本インターフェースである
IMHCreateMessagePlugin を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
void AssembleMessage( IMHMessage UnassembledMessage, IMHMessageAssembleInfo
AssembleInfo )
このメソッドは、サーバーがプラグインに対して、メッセージのアセンブルを依頼する必要のある場
合に呼び出されます。 この処理は通常、メッセージがチャネルに送信される (電子メールの送信など)
前か、メッセージがユーザーによって表示される前に行われます。
プラグインは通常、UnassembledMessage の ContentText または ContentBinary プロパティを変更
して、最終的なメッセージ コンテンツを含めます。
void PrepareAssembleInfo( IMHMessageAssembleInfo AssembleInfo )
このメソッドは、プラグインが特定のバンドルのメッセージのアセンブルを準備できるように、
AssembleMessage(..) の前に呼び出されます。 つまり、プラグインは、後の AssembleMessage(..)
メソッドへの多数回にわたる呼び出しにおいて使用される、AssembleInfo オブジェクトを用意でき
ます。 AssembleInfo は、AssembleMessage(..) への多数回の呼び出しを最適化するために、サーバー
によってキャッシュされます。
void PrepareUnassembledContent( IMHMessageBundle MessageBundle )
このメソッドは、新しいメッセージ バンドルが作成されるときに呼び出されます。 メッセージが作
成される前に呼び出され、メッセージ プラグインが、バンドル内に作成されたメッセージをアセン
ブル解除するかどうかを決定できるようにします。 プラグインは、バンドル内のすべてのメッセー
ジに共通で保存されるコンテンツがあれば、それを準備することもできます。
例
例はありません。
IMHContentItem インターフェース
説明
IMHContentItem は、コンテンツ オブジェクトで使用されるコンテンツ項目へのアクセスを提供しま
す。
164
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
Application
IMHContentItem は、コンテンツ オブジェクトにおいてスクリプト ルールを実装する際に使用されま
す。 IMHContentObjectRulePlugin も参照してください。
親インターフェース
IMHContentItem は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
bool AnchorEnabled
タイプが image であるコンテンツ項目に、URL が関連付けられているかどうかを示します。
bool AnchorNewWindow
AnchorUrl で指定された URL を新しいブラウザ ウィンドウで開くべきかどうかを示します。
bool AnchorTracking
ユーザーがイメージをクリックし、AnchorUrl で指定された Web ページが開いたときに、リンク追
跡をログ記録に使用するべきかどうかを示します。
string AnchorUrl
AnchorEnabled が true である場合、AnchorUrl には、ユーザーがイメージをクリックした場合に開
かれるターゲット URL が含まれます。
bool ContentTagsEnabeld
マージ タグがサポートされているかどうかを示します。
string ContentText
タイプが text および HTML であるコンテンツ項目のソース コンテンツを含みます。
string ContentType
コンテンツのタイプ。 指定できるモードは次のとおりです。
値
説明
イメージ
コンテンツは、ContentUrl で指定されたイメージ
です。
html
コンテンツは、ContentText に保存された HTML
コンテンツです。
テキスト
コンテンツは、ContentText に保存された ピュア
テキストです。
リファレンス ガイド
165
IMHContentItemList インターフェース
message_template
コンテンツは、メッセージ テンプレートを使用
して作成されます。 テンプレートは、
MessageTemplateID で指定されます。
url
コンテンツは、ContentUrl で指定された HTML
ページです。
string ContentUrl
タイプが image および url であるコンテンツ項目の実際のコンテンツを指定する URL を含みます。
bool ContentUrlIsWebPublicFile
ContentUrl が発行済みファイルを指しているかどうかを示します。 この値は読み取り専用です。
string Desc
コンテンツ項目について説明するテキストです。
string Key
コンテンツ項目を識別する文字列です。 この値は、コンテンツ オブジェクトの中で一意です。
integer MessageTemplateID
コンテンツ項目のタイプが message_template である場合、メッセージ テンプレートの ID です。
string Name
コンテンツ項目の名前です。
double RandomWeighting
コンテンツ項目をランダムに選択するようにルールが設定されている場合に使用される、重み係数で
す。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHContentItemList インターフェース
説明
IMHContentItemList は、コンテンツ オブジェクトのコンテンツ項目のリストへのアクセスを提供しま
す。
166
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
Application
IMHContentItemList は、コンテンツ オブジェクトにおいてスクリプト ルールを実装する際に使用され
ます。 IMHContentObjectRulePlugin も参照してください。
親インターフェース
IMHContentItemList は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer Count
リスト内のコンテンツ項目の総数。
IMHContentItem ContentItem[ variant KeyOrIndex ]
リスト内のコンテンツ項目を提供します。
KeyOrIndex は、コンテンツ項目キー (string)、またはリストにおけるコンテンツ項目のインデックス
(integer) です。 インデックスは 1 から開始します。最初のコンテンツ項目のインデックスは 1 です。
メソッド
以下のメソッドがサポートされています。
IMHContentItem AddContentItem( )
新しいコンテンツ項目を作成し、リストの末尾に追加します。
このメソッドにより、スクリプト ルールの実装時に、コンテンツ項目を「その場で」作成できます。
例
例はありません。
IMHContentObjectRulePlugin インターフェース
説明
IMHContentObjectRulePlugin は、コンテンツ オブジェクト内のスクリプト ルールによって実装され
るメソッドを含みます。
Application
コンテンツ オブジェクト内のスクリプト ルールを作成するロジックは、IMHCreateMessagePlugin に
よって実装されます。
リファレンス ガイド
167
IMHContentObjectUtils インターフェース
親インターフェース
IMHContentObjectRulePlugin は、すべてのプラグインの基本インターフェースである IMHPlugin を
継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
variant EvaluateRule( IMHContentItemList ContentItems, IMHCustomer Customer,
IMHContentRequestParams RequestParams )
EvaluateRule(..) は、コンテンツ オブジェクト内のスクリプト ルールを評価する必要がある場合に呼
び出されます。
この機能を実装する場合は、ブール値 (true または false)、または、コンテンツ項目オブジェクトを
返すようにする必要があります。 ブール値を返すということは、ルールの評価が正常に行われ、そ
のルール用に指定されたコンテンツ項目がコンテンツ オブジェクトの実行の結果になることを意味
します。 また、コンテンツ項目を返すということは、そのルールの評価は正常に行われますが、返
されるコンテンツ項目がコンテンツ オブジェクトの実行の結果であることを意味します。
ContentItems は、現在のコンテンツ オブジェクトで定義されたすべてのコンテンツ項目のリストで
す。
Customer は、コンテンツ オブジェクトの実行対象となる顧客を表すオブジェクトです。 コンテン
ツ オブジェクトが匿名モードで実行される場合は、Customer は null になります。
RequestParams は、コンテンツ オブジェクトの実行時に指定される追加パラメータのリストです。
例
例はありません。
IMHContentObjectUtils インターフェース
説明
IMHContentObjectUtils は、コンテンツ オブジェクトと関連タスクおよびオブジェクトへのアクセスを
提供します。
Application
IMHContentObjectUtils は、メッセージの作成におけるコンテンツ オブジェクト ロジックを実装する
ために内部で使用されます。
168
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
親インターフェース
IMHContentObjectUtils は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドがサポートされています。
string GetContentObjectLogicForMessageMerge( string ContentObjectKey, string RequestParams,
bool RenderAsHtml )
コンテンツ オブジェクトのロジックを、メッセージ テンプレート内部で使用する IF ステートメント
および関数呼び出しとして展開し、返します。
ContentObjectKey は、コンテンツ オブジェクトの一意のキーです。
RequestParams は、コンテンツ オブジェクトの呼び出しにおける追加のパラメータを含む文字列で
す。
RenderAsHtml は、このメソッド呼び出しの結果を HTML メッセージ (HTML メールなど) で使用す
るつもりであるか、そうでないか (テキスト メールなど) を指定します。
string GetDataFieldsInContentObject( integer CustDomainID, string ContentObjectKey )
コンテンツ オブジェクトの実行に必要なドメイン フィールドがセミコロンで区切られたリストを返
します。
CustDomainID は、顧客ドメインの一意の ID です。
ContentObjectKey は、コンテンツ オブジェクトの一意のキーです。
例
例はありません。
IMHContentRequestParams インターフェース
説明
IMHContentRequestParams は、コンテンツ オブジェクトの実行時に、追加のパラメータへのアクセ
スを提供します。 パラメータは、名前-値 コレクションとして表されます。
Application
IMHContentRequestParams は、コンテンツ オブジェクトにおいてスクリプト ルールを実装する際に
使用されます。 IMHContentObjectRulePlugin も参照してください。
リファレンス ガイド
169
IMHControlParamDefs インターフェース
親インターフェース
IMHContentRequestParams は、基本インターフェースである IMHCustomPluginServices を継承し
ます。
プロパティ
以下のプロパティがサポートされています。
integer Count
リスト内のパラメータの総数。
string Name[ integer Index ]
パラメータのインデックスを指定することによって、単一のパラメータの名前にアクセスします。
最初のパラメータのインデックスは 0 です。
string Value[ string Name ]
パラメータの名前を指定することによって、単一のパラメータの値にアクセスします。
メソッド
以下のメソッドがサポートされています。
integer IndexOfName( string Name )
リスト内で、単一のパラメータの名前を検索し、リストにおけるそのパラメータのインデックスを返
します。 最初のパラメータのインデックスは 0 です。
例
例はありません。
IMHControlParamDefs インターフェース
説明
IMHControlParamDefs は、メッセージの送信に必要なパラメータの定義を含むオブジェクトです。
Application
IMHControlParamDefs は、コントロール パラメータを定義するために出力チャネル プラグインによっ
てアクセスされます。
親インターフェース
IMHControlParamDefs は、基本インターフェースである IMHCustomPluginServices を継承します。
170
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドがサポートされています。
void AddParam( string Name, string DefaultValue, bool Required, bool IsMergeParam )
出力チャネル プラグインのコントロール パラメータを定義し、追加します。
Name は、パラメータを識別するテクニカル名です。
DefaultValue は、オプションで既定値を指定します。
Required は、メッセージ送信時にこのパラメータが必須であるか、またはオプションであるかを指
定します。
IsMergeParam は、false の場合は、このパラメータがチャネル レベル、つまり、出力チャネルの設
定時に設定されることを示します。 true の場合は、パラメータは、テンプレートおよびベース メッ
セージの作成時に設定され、顧客ドメイン データを参照するマージ フィールドを含む場合がありま
す。
void AddParamEx( string Name, string DefaultValue, bool Required, bool IsMergeParam, bool
TestSendOverride )
TestSendOverride というパラメータが追加されていることを除き、AddParam() と同じです。
TestSendOverride は、Visual Dialogue でメッセージをテスト送信する際に、ユーザーがコントロー
ル パラメータの値を変更できるかどうかを指定します。
注意: 現バージョンでは、メッセージのテスト送信時にオーバーライドできるコントロール パラメー
タは 1 つだけです。 複数のパラメータの TestSendOverride が true に設定されている場合は、
最初のパラメータのみが Visual Dialogue の [テスト送信のオプション] ウィンドウに表示され
ます。 他のパラメータのこのオプションの値は、クリアされます。
例
以下の例は、SMS チャネルを実装するプラグインで定義されるコントロール パラメータを示していま
す。
function GetControlParamDefs( ControlParamDefs )
{
//Communication params
ControlParamDefs.AddParam("ServerIP", "100.150.20.254", true, false);
ControlParamDefs.AddParam("ServerPort", "15000", true, false);
ControlParamDefs.AddParam("FromNumber", "2008", true, false);
//Params to be merge per message
ControlParamDefs.AddParam("Cellular", "", true, true);
}
リファレンス ガイド
171
IMHCustomer インターフェース
IMHCustomer インターフェース
説明
IMHCustomer は、単一の顧客へのアクセスを提供します。
Application
IMHCustomer は、メッセージ プラグインにおいて、メッセージの作成対象となる顧客にアクセスする
ために使用されます。 ブランチ プラグインでは、IMHCustomer を継承して拡張したインターフェー
ス IMHParticipant を使用します。
親インターフェース
IMHCustomer は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer CustDomainID
現在の顧客ドメインの ID (一意の識別子) です。 読み取り専用です。
string CustomerID
顧客の ID を表す文字列です。 読み取り専用です。
string Context
顧客が出現するコンテキストを表す文字列です。 読み取り専用です。
variant CustomValue[ variant ValueName ]
1 つのカスタム値を参照または設定できます。 カスタム値は、文字列データ型です。
カスタム値とは、ダイアログ参加顧客に対して保存された名前/値コレクションの中の値です。 任意
の参加顧客が、任意の数の名前/値のペアを持つことができます。
カスタム値は、データベース フィールド DLG_PARTICIPANT.DP_CUSTOM_VALUES に格納され
ます。
注意: 参加顧客のコンテキスト外でこのプロパティを使用しても失敗にはなりませんが、値はデー
タベースに保存されません。
bool EditMode
顧客データが変更可能かどうかを表します。
顧客データは、IMHCustomerContainer.NewCustomer( ) または IMHCustomer.Edit( ) を呼び出した後
に変更できます。 後述の例を参照してください。
172
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
bool HasDuplicate
顧客に重複の可能性がある場合は true になります。 実際に実行する重複チェックは、Dialogue Admin
の顧客ドメイン設定で設定する必要があります。
string MainDataGroupName
現在の顧客ドメインにおけるメイン データ グループの名前です。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
void CamcelChanges( )
IMHCustomerContainer.NewCustomer( ) または IMHCustomer.Edit( ) の呼び出しによって開始され
た、既存または新規顧客に対する変更を中止します。
IMHCustomerContainer CheckForDuplicates( string DataFields, integer MaxCount )
顧客に重複の可能性があるかどうかをチェックします。 このメソッドは、重複する可能性のある顧
客 (重複候補) のリストを含むコンテナ オブジェクトを返します。 実際に実行する重複チェックは、
Dialogue Admin の顧客ドメイン設定で設定する必要があります。
DataFields は、重複候補のコンテナを初期化するために使用する、顧客データ グループおよびフィー
ルドがセミコロンで区切られたリストです。
MaxCount は、返される重複候補の最大数です。 MaxCount に -1 を設定すると、すべての重複候補
を返します。
IMHAnswerForm CreateAnswerForm( integer QuestionnaireID, string ChannelTypeName, variant
BroadcastID, datetime AnswerTimestamp, datetime ScanTimestamp, string ArchiveRef )
データベースに新しい回答フォームを作成し、この回答フォームを表すオブジェクトを返します。
QuestionnaireID は、アンケートの ID です。
ChannelTypeName は、回答を受領したコミュニケーション チャネルのテクニカル名です。
BroadcastID は、回答フォームに関連付けるブロードキャストの ID です。 関連付けるブロードキャ
ストがない場合は、BroadcastID に Null を設定します。
AnswerTimestamp は、顧客がアンケートに回答した日時です。
ScanTimestamp は、回答フォームをスキャンした日時です。 該当しない場合は、この値に null を設
定します。
ArchiveRef はオプションの値です。
void CreateMergeFile( string FileName, string DataFields, bool UseCharDelimiter, bool UseQuote,
char CharDelimiter, char QuoteChar )
CreateMergeFile は、顧客データをテキスト ファイルにエクスポートするヘルパー関数です。
リファレンス ガイド
173
IMHCustomer インターフェース
FileName は、ターゲット ファイルのフル パスとファイル名です。
DataFields は、ファイルに含める顧客データ グループおよびフィールドがセミコロンで区切られた
リストです。 顧客ごとに複数の行を返すデータ グループはサポートされていません。
UseCharDelimiter は、ファイル内の列を文字で区切るかどうかを指定します。文字で区切らない場
合は、タブ区切りが適用されます。 CharDelimiter は、区切り文字として使用する単一の文字です。
UseQuote は、フィールド値を引用符で囲むかどうかを指定します。 QuoteChar は、引用符として
使用する単一の文字です。
このメソッドは、MS Word Merge プラグインにおいて、Word ドキュメントをマージする前にデー
タ ファイルを作成するために使用されます。 エクスポート ファイルを作成するためにも使用される
場合があります。
IMHMessage CreateMessage( )
単一の顧客に関連する空のメッセージ オブジェクトを作成します。
顧客セットに関連するメッセージ オブジェクトを作成するには、コンテナ オブジェクト
(IMHCustomerContainer) の CreateMessage メソッドを使用します。
void Delete( )
現在の顧客を削除します。
顧客は、DLG_PARTICIPANT や QRY_ANSWER_FORM など、Dialogue Database の任意のデータ
ベース テーブルから削除されます。 顧客ドメインの設定に基づいて顧客が削除されるのに加えて、
それによって、基盤にある顧客データベースなど、他のデータ ソースからも顧客が削除される場合
があります。
void DeleteDetailData( string DataGroupName )
住所行など、顧客の詳細 (子) データ グループの行を削除します。
DataGroupName は、行が削除されるデータ グループの名前です。
注意: DeleteDetailData( ) は、1 対 1 と 1 対多の両方のグループに対して呼び出すことができます。
void DeleteLogin( )
データベース テーブル CUST_LOGIN 内のパスワード定義を削除します。 顧客ドメインが、自動生
成された顧客パスワードを使用するように設定されている場合は、現在の顧客のパスワードは削除さ
れ、その顧客は、次回パスワードを求められるときに、新しいパスワードを取得します。
bool DetailDataEof( string DataGroupName )
顧客ドメイン内の 1 対多データ グループのデータを走査する際には、FirstDetailData、NextDetailData、
および DetailDataEof メソッドが使用されます。アクセスされるデータ グループの最後の行に到達し
た場合に、 DetailDataEof は true を返します。
DataGroupName は、アクセスされるデータ グループの名前です。
174
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
void Edit( )
顧客を編集モードにします。 Edit( ) を呼び出した後は、SetFieldValue( ) を使用して顧客データを変
更できます。
注意: Edit( ) は、OpenForUpdates( ) の呼び出しによって顧客コンテナが開かれている場合のみ呼び
出すことができます。 後述の例を参照してください。
bool EvalExprBool( string Expression )
現在の顧客に対するブール式の結果を評価して返します。
Expression は評価する式です。 ブール型以外の式を指定すると、エラーが生じます。
string EvalExprString( string Expression )
現在の顧客に対する式の結果を評価して返します。 結果は文字列で返されます。
Expression は評価する式です。 データ グループまたは配列を返す式を指定すると、例外が発生しま
す。
variant EvalExprToValue( string Expression )
現在の顧客に対する式の結果を評価して返します。
Expression は評価する式です。 データ グループまたは配列を返す式を指定すると、例外が発生しま
す。
variant FieldValue( string FieldName )
現在の顧客ドメインで定義されたデータ フィールドの値を返します。 返されるデータ型は、アクセ
スされるフィールドのデータ型によって異なります。
FieldName は、アクセスされるフィールドの名前です。 メイン データ グループ以外のグループの
フィールドにアクセスするには、 <グループ名>.<フィールド名> というように、グループ名を接頭
辞として使用します。例えば、"Address.StreetName" とします。
void FirstDetailData( string DataGroupName )
顧客ドメイン内の 1 対多データ グループのデータを走査する際には、FirstDetailData、NextDetailData、
および DetailDataEof メソッドが使用されます。 FirstDetailData は、グループの最初の行を現在の行
にします。
DataGroupName は、アクセスされるデータ グループの名前です。
IMHAnswerForm GetAnswerForm( integer QuestionnaireID )
顧客に関連する回答フォームを表すオブジェクトを返します。
QuestionnaireID は、アンケートの ID です。
注意: 回答フォームは、現在の顧客または参加顧客と、そのコンテキスト (使用される場合) にマッ
チする必要があります。 マッチする回答フォームが存在しない場合は、null が返されます。
リファレンス ガイド
175
IMHCustomer インターフェース
string GetCustomerAsXML( )
顧客データの XML ドキュメントを返します。
返される顧客データは、Customer オブジェクト内のコンテナ オブジェクト (IMHCustomerContainer)
の所有者の Open メソッドに対する、前回の呼び出しにおける文字列 DataFields の内容によって異
なります。
IMHDataField GetFieldInfo( string FieldName )
顧客ドメイン フィールドに関する情報を含むオブジェクトを提供します。
string GetLoginID( )
現在の顧客のログイン ID を返します。 ログイン ID は、Dialogue Admin の顧客ドメイン設定で定義
されます。
string GetLoginPassword( bool Regenerate )
現在の顧客のパスワードを返します。 パスワードは、Dialogue Admin の顧客ドメイン設定で定義さ
れます。
パスワードが、Dialogue Server によって自動的に生成するように設定されている場合は、Regenerate
に true を設定することによってパスワードを更新できます (新しいパスワードが生成されます)。
IMHUnmergedMessage GetMessageTemplate( integer BaseMessageID )
Visual Dialogue のメッセージ テンプレートに対応するメッセージ テンプレート オブジェクトを返し
ます。
BaseMessageID は、メッセージ テンプレートの一意の ID です。 この ID は、データベース テーブ
ル DOC_BASE_MESSAGE の列 DBM_ID にあります。
IMHUnmergedMessage GetUnmergedMessage( string MessageTypeName )
Dialogue Admin で定義された 1 つの特定のメッセージ タイプのテンプレート オブジェクトを返しま
す。 返されるオブジェクトは、特定のマスター テンプレートまたはメッセージ テンプレートに基づ
くものではないことに注意してください。
MessageTypeName は、"EMAIL_HTML" などの、メッセージ タイプのテクニカル名です。
bool HasInclompleteResponse( integer QuestionnaireID, integer LayoutID, integer PageIndex )
指定されたアンケートへの回答を顧客が開始しているが完了はしていない場合に true を返します。
HasIncompleteResponse( ) は、回答追跡が有効である場合のみ使用できます。
LayoutID は、使用されるアンケート レイアウトの一意の ID です。
PageIndex は、不完全な回答において入力済みの (回答者が表示した) ページ数です。 PageIndex
は、レイアウトの最初のページを 1 として数えます。
bool HasOpenedEmail( integer TemplateID )
メール追跡が有効になっているメールを顧客が開封済みの場合に、True を返します。
176
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
TemplateID は、Visual Dialogue でデザインされたメッセージ テンプレートの一意の ID です (デー
タベース列 DOC_BASE_MESSAGE.DBM_ID の値に対応します)。
注意: HasOpenedEmail( ) は、Dialogue Server 内のメール追跡メカニズムにおいて使用されます。
HTML メール メッセージが顧客に送信されると、このメッセージにおいてメール追跡が有効
となり、システムは顧客がこのメールをいつ開くかを追跡することになります。
bool HasOpenedLink( integer TemplateID, string LinkName )
リンク追跡が有効で、指定されたメッセージの中の特定のリンクを顧客が閲覧済みの場合に、True
を返します。
TemplateID は、Visual Dialogue でデザインされたメッセージ テンプレートの一意の ID です (デー
タベース列 DOC_BASE_MESSAGE.DBM_ID の値に対応します)。 TemplateID に 0 を設定すると、
関数は (テンプレートと関係なく) すべてのメッセージに対してチェックを実行します。
LinkName は、メッセージ デザイナでテンプレートをデザインするとき、または、式関数 TrackURL
を呼び出すときに指定した追跡対象リンクの名前です。
注意: HasOpenedLink( ) は、Dialogue Server 内のリンク追跡メカニズムにおいて使用されます。
メール メッセージには、リンク追跡が有効になっているリンク (URL) を含めることができま
す。 システムは、顧客が受信したメール内のこれらのリンクをいつ開くかを追跡することに
なります。
bool HasOpenedLinkEx( integer TemplateID, string Url )
HasOpenedLinkEx( ) は、追跡対象リンクの名前の代わりに URL をパラメータの 1 つとしてとるこ
とを除き、HasOpenLink( ) とまったく同じです。
Url は、追跡されるリンクのアドレス (URL) です。
void LogBehaviour( integer BehaviourTypeID, variant TreatmentID, variant OfferID, variant
ProductCode, variant TreatmentID, integer ResponseIndicator, variant ResponseValue, variant Origin,
datetime ActedTimestamp)
特定の動作タイプの顧客動作を記録します。 記録されたデータは、非同期に PDW (Portrait Data
Warehouse) に転送され、キャンペーンおよびキャンペーン活動に対するレスポンスの記録に使用さ
れます。
BehaviourTypeID は、PSR (Portrait Shared Repository) で定義された動作タイプの一意の ID です。
このパラメータは必須です。
TreatmentID は、PSR で定義されたキャンペーン活動における取扱いの一意の ID です。 この値は
null に設定できます。
OfferID は、PSR で定義されたオファーの一意の ID です。 この値は null に設定できます。
ProductCode は、特定の製品に動作を関連付けるために使用する、カスタム定義の一意の製品コー
ド (string) です。 この値は null に設定できます。
リファレンス ガイド
177
IMHCustomer インターフェース
ResponseIndicator は、この動作レコードから記録されたレスポンスが、ネガティブ、ニュートラ
ル、ポジティブのいずれであるかを示す整数値です。 有効な値は、 1 = ポジティブ (既定)、0 = ニュー
トラル、-1 = ネガティブです。
ResponseValue は、この動作から記録されたレスポンスの値またはスコアを表すオプション値です。
ReponseValue は null に設定できます。
Origin は、記録されるカスタム定義の文字列です。 システムはこの値を使用しませんが、ユーザー
はこれをオプション値として使用できます。 この値は null に設定できます。
ActedTimestamp は、その顧客動作が実際に発生した日時です。
注意: このメソッドは、Portrait HQ および Portrait PSR との統合のために使用されます。
void LogOffer( integer OfferID, datetime TreatedTimestamp)
顧客に対し、オファーを含む取扱いがあったことを記録します。 記録されたデータは、非同期に
PDW (Portrait Data Warehouse) に転送され、取扱いとオファーの記録に使用されます。
OfferID は、PSR で定義されたオファーの一意の ID です。
TreatedTimestamp は、顧客にオファーを含む取扱いがあった実際の日時です。
注意: このメソッドを使用して有効な取扱いオファーのログを記録するには、このメソッドを実行
するダイアログ分岐に、正しい TreatmentID が設定されている必要があります。 TreatmentID
と OfferID の両方を指定する場合は、このメソッドではなく LogTreatmentOffer メソッドを使
用します。
注意: このメソッドは、Portrait HQ および Portrait PSR との統合のために使用されます。
void LogTreatmentOffer( integer TreatmentID, variant OfferID, datetime TreatedTimestamp)
顧客に対し、オファーを含む、または含まない取扱いがあったことを記録します。 記録されたデー
タは、非同期に PDW (Portrait Data Warehouse) に転送され、取扱いとオファーの記録に使用されま
す。
TreatmentID は、PSR で定義されたキャンペーン活動における取扱いの一意の ID です。
OfferID は、PSR で定義されたオファーの一意の ID です。 取扱いにオファーが含まれない場合は、
この値に null を設定できます。
TreatedTimestamp は、顧客にオファーを含む取扱いがあった実際の日時です。
注意: 取扱いに複数のオファーが含まれる場合は、それぞれのオファーに対して 1 回ずつ、
LogTreatmentOffer メソッドを呼び出す必要があります。
注意: このメソッドは、Portrait HQ および Portrait PSR との統合のために使用されます。
string MergeControlParams( string ControlParams )
178
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
顧客データがマージされたコントロール パラメータを含む文字列を返します。 このメソッドは、メッ
セージ プラグインによって、テンプレートまたはベース メッセージのコントロール パラメータにお
けるマージ フィールドに顧客データ値を代入するために使用されます。
ControlParams は、マージされるコントロール パラメータを含む文字列です。
void NewDetailData( string DataGroupName )
住所行など、顧客の詳細 (子) データ グループの行を追加します。
DataGroupName は、行が追加されるデータ グループの名前です。
注意: NewDetailData( ) は、1 対多グループ以外には使用できません。 後述の例を参照してくださ
い。
bool NextDetailData( string DataGroupName )
顧客ドメイン内の 1 対多データ グループのデータを走査する際には、FirstDetailData、NextDetailData、
および DetailDataEof メソッドが使用されます。 NextDetailData は、アクセスされるデータ グルー
プの次の行に移動します。 最後の行に到達して、次の行に移動できない場合は true を返し、それ以
外の場合は false を返します。
DataGroupName は、アクセスされるデータ グループの名前です。
int64 PostActivity( string ActivityTypeName, string ChannelTypeName, string Direction, string
Description, string Note, datetime Timestamp )
活動を投稿し、新しい活動の一意の ID を返します。 活動とは、顧客との対話のことです。
ActivityTypeName は、Dialogue Admin で定義された活動タイプのテクニカル名です。
ChannelTypeName は、Dialogue Admin で定義されたチャネル タイプのテクニカル名です。 チャネ
ル タイプは、活動または対話において、どのようにコミュニケーションが行われたかを表すもので
す。
Direction は、活動を開始したのが顧客であるか、あるいは「自社組織」または「システム」である
かを表します。 Direction がとり得る値は以下のとおりです。
• Direction = "IN" のとき、開始したのは顧客です。
• Direction = "OUT" のとき、開始したのは「自社組織」または「システム」です。
Description は短い説明フィールドですが、Note には長さの制約なく説明を記述できます。
Timestamp は、活動が発生した日時です。
void PostChanges( )
既存または新規顧客への変更を、顧客ドメインの設定に基づいて、基盤にあるデータ ソースに保存
します。
注意: 顧客に対する変更は、IMHCustomerContainer.NewCustomer( ) または IMHCustomer.Edit( )
の呼び出しによって開始されます。 後述の例を参照してください。
リファレンス ガイド
179
IMHCustomer インターフェース
void PostEvent( string EventTypeName, string Description )
システム イベントを投稿します。 システム イベントは Dialogue Admin で定義され、Dialogue Server
は、システム イベントの発生時にアクションを実行するように設定できます。 たとえば、あるオペ
レーションを 1 つ以上のダイアログで実行できます。
EventTypeName は Dialogue Admin で定義されているイベント タイプのテクニカル名です。
Description はイベントの説明で、オプションです。
int64 PostMessage( IMHUnmergedMessage UnmergedMessage, IMHMessage Message, bool
UseOutbox )
PostMessage は、単一のメッセージ (またはそのファイル名) を Dialogue Database に保存します。
また、それらをアウトボックスまたは送信キューに配置します。 送信キューは、MH Send Messages
Service がメールや SMS メッセージなどの電子メッセージを送信するキューです。 新しいメッセー
ジの ID が返されます。
UnmergedMessage は、保存されるメッセージのタイプを表すメッセージ テンプレート オブジェク
トです。 UnmergedMessage オブジェクトは、GetUnmergedMessage または GetMessageTemplate
メソッドを使用して作成できます。
Message は単一のメッセージ オブジェクトで、通常は、ProduceMessage メソッドによって作成さ
れます。
UseOutbox は、送信する前にメッセージをアウトボックスに配置するかどうかを指定します。
int64 PostTask( string ActivityTypeName, string ChannelTypeName, string Direction, string Description,
string Note, datetime Timestamp, datetime FollowUpDateTime, integer TaskWorkGroupID, string
FollowUpUserName )
タスクを投稿し、新しい活動の一意の ID を返します。 タスクとは、特定の期間内にフォローアップ
される活動のことです。
ActivityTypeName は、Dialogue Admin で定義された活動タイプのテクニカル名です。
ChannelTypeName は、Dialogue Admin で定義されたチャネル タイプのテクニカル名です。 チャネ
ル タイプは、活動または対話において、どのようにコミュニケーションが行われたかを表すもので
す。
Direction は、活動を開始したのが顧客であるか、あるいは「自社組織」または「システム」である
かを表します。 Direction がとり得る値は以下のとおりです。
• Direction = "IN" のとき、開始したのは顧客です。
• Direction = "OUT" のとき、開始したのは「自社組織」または「システム」です。
Description は短い説明フィールドですが、Note には長さの制約なく説明を記述できます。
Timestamp は、活動が発生した日時です。
180
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
FollowUpDateTime は、タスクのフォローアップを実施する期日を定める日付と時刻の値です。
TaskWorkGroup は、タスクのフォローアップを担当する作業グループを表すオプションの値です。
作業グループを指定しない場合は、このパラメータに null を設定します。
FollowUpUserName は、タスクのフォローアップを担当するユーザーの名前です。 担当ユーザーを
指定しない場合は、このパラメータに空の文字列を設定します。
IMHMessage ProduceMessage( IMHUnmergedMessage UnmergedMessage )
ProduceMessage は、Dialogue Server に対し、顧客に対するメッセージ (電子メール メッセージな
ど) を作成するように求めます。 メッセージは、UnmergedMessage で与えられたテンプレートまた
はベース メッセージに基づきます。
メッセージ オブジェクトが返されます。
void RemoveCategory( string CategoryName )
顧客をカテゴリから削除します。つまり、カテゴリ メンバーシップが削除されます。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
void RemoveCategoryValue( string CategoryName, string Value )
カテゴリ内の顧客の値を削除します。 カテゴリのタイプは、「カテゴリと値」でなければなりませ
ん。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
Value は、Dialogue Admin のカテゴリ 設定で定義されている、削除の対象となる文字列値です。
void SetCategory( string CategoryName )
顧客をカテゴリに追加します。つまり、カテゴリ メンバーシップが作成されます。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
void SetCategoryScore( string CategoryName, float Score )
顧客を、スコアリング値とともにカテゴリに追加します。つまり、カテゴリ メンバーシップが作成
されるか、既存のメンバーシップのスコアリング値が更新されます。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
Score は、Dialogue Admin におけるカテゴリ設定で定義された最小スコアと最大スコアの間のスコ
アリング値です。
void SetCategoryValue( string CategoryName, string Value )
顧客を、値とともにカテゴリに追加します。つまり、カテゴリ メンバーシップが作成されるか、既
存のメンバーシップに値が追加されます。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
Value は、Dialogue Admin のカテゴリ 設定で定義されている、設定の対象となる文字列値です。
リファレンス ガイド
181
IMHCustomer インターフェース
void SetFieldValue( string FieldName, variant Value )
現在の顧客ドメインで定義されたデータ フィールドの値を設定します。
FieldName は、アクセスされるフィールドの名前です。 メイン データ グループ以外のグループの
フィールドにアクセスするには、 <グループ名>.<フィールド名> というように、グループ名を接頭
辞として使用します。例えば、"Address.StreetName" とします。
Value は、フィールドの新しい値です。
注意: SetFieldValue( ) を使用してデータを変更する前に、顧客を編集または挿入モードにする必要
があります。 挿入モードにするには IMHCustomerContainer.NewCustomer( ) を、編集モード
にするには IMHCustomer.Edit( ) を呼び出します。 後述の例を参照してください。
void SetLoginPassword( string NewPassword )
顧客のパスワードを設定します。 新しいパスワードの値は、データベース テーブル CUST_LOGIN
に保存されます。
NewPassword は、顧客の新しいパスワードです。
注意: パスワードが設定できるのは、Dialogue Server によってパスワードを自動生成するように設
定されている場合のみです。
例
以下の例は、顧客情報にアクセスする方法を示したものです。
function ExecuteBranch(BranchInfo, Participants)
{
..............
//Open the container
Participants.Open("mh_customer_id;Address");
while (! Participants.MemberEof) {
//Do something with the customer
var Street = Participants.Customer.FieldValue("Address.StreetName");
Participants.Customer.SetCategory("NEWSLETTER");
..............
//Move to next participants
Participants.NextMember();
}
..............
}
以下の例は、ダイアログ操作において顧客データを編集する方法を示しています。
function ExecuteBranch(BranchInfo, Participants)
{
//Open the customer container in editable mode
182
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
Participants.OpenForUpdates("contact;company;adresser");
while ((!Participants.MemberEof) && (i < Participants.Count))
{
//Start edit the customer
Participants.Participant.Edit();
//Update last name of customer (main data group)
Participants.Participant.SetFieldValue("Etternavn", "Peterson");
//Delete old addresses
Participants.Participant.FirstDetailData("Adresser");
while (!Participants.Participant.DetailDataEof("Adresser"))
{
Participants.Participant.DeleteDetailData("Adresser");
}
//Create a new address (one2many group) (address type 2)
Participants.Participant.NewDetailData("Adresser");
Participants.Participant.SetFieldValue("Adresser.pa_at_id", "2");
Participants.Participant.SetFieldValue("Adresser.Gatenavn", "Maridalsveien");
Participants.Participant.SetFieldValue("Adresser.Gatenummer", "87");
Participants.Participant.SetFieldValue("Adresser.Bokstav", "C");
//Create a new address (one2many group) (address type 3)
Participants.Participant.NewDetailData("Adresser");
Participants.Participant.SetFieldValue("Adresser.pa_at_id", "3");
Participants.Participant.SetFieldValue("Adresser.Gatenavn", "River Street");
Participants.Participant.SetFieldValue("Adresser.Gatenummer", "7");
//Delete company relation (one2one group) (not neccessary when changing the
relation)
//Participants.Participant.DeleteDetailData("Company");
//Add a new company relation
Participants.Participant.SetFieldValue("Company.CompanyID", 1919);
//Save changes to customer to the underlying data source as defined in the
customer domain
Participants.Participant.PostChanges();
//Move participant to the next group in the dialog
Participants.Participant.Accept();
Participants.NextMember();
}
}
}
IMHCustomerContainer インターフェース
説明
IMHCustomerContainer は、顧客のセットまたはセレクションへのアクセスを提供します。
リファレンス ガイド
183
IMHCustomerContainer インターフェース
Application
IMHCustomerContainer は、メッセージ プラグインにおいて、メッセージの作成対象となる顧客にア
クセスするために使用されます。 ブランチ プラグインでは、IMHCustomerContainer を継承して拡張
したインターフェース IMHParticipantContainer を使用します。
親インターフェース
IMHCustomerContainer は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string AllDataFields
現在の顧客ドメインで使用可能なすべての顧客データ フィールドを提供する読み取り専用のプロパ
ティです。 データ フィールドは、セミコロンで区切られた文字列として列挙されます。
integer Count
コンテナ内の顧客数です。 読み取り専用です。
integer CustDomainID
現在の顧客ドメインの ID (一意の識別子) です。 読み取り専用です。
IMHCustomer Customer
現在の顧客を表すオブジェクトへの参照を返します。 読み取り専用です。
string DataFields
コンテナに含まれる顧客データ フィールドを提供する読み取り専用のプロパティです。 これは、
Open メソッドに対する前回の呼び出しで指定されたものと同じフィールドになります。 データ
フィールドは、セミコロンで区切られた文字列として列挙されます。
int64 InternalID
現在のトランザクション中に使用される内部の値を提供する読み取り専用のプロパティです。
注意: 通常は、この値はプラグインでは使用されません。 ただし、
IMHParticipantContainer.AcceptBySQL(..) や IMHParticipantContainer.AcceptBySQLRaw(..)
のような高度なメソッドを使用する場合は、この値を使用する必要があります。
integer MaxCount
コンテナが初期化されたときに指定された、コンテナに含まれる顧客の最大数です。 読み取り専用
です。
string MainDataGroupName
現在の顧客ドメインにおけるメイン データ グループの名前です。 読み取り専用です。
184
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
bool MemberEof
コンテナ内の最後の顧客に到達したかどうかを示します。 NextMember を呼ぶまでは、現在の顧客
を指すポインタを次の顧客に移動できないため、MemberEof に true が設定されないことに注意して
ください。 読み取り専用です。
bool Opened
顧客を走査するためにコンテナが開かれているかどうかを示します。 読み取り専用です。
bool Updatable
顧客データの変更や新規顧客の挿入が可能かどうかを示します。
Updatable は、OpenForUpdates( ) を呼び出して顧客コンテナを初期化した後に true になります。
後述の例を参照してください。
メソッド
以下のメソッドがサポートされています。
void CreateMergeFile( string FileName, string DataFields, bool UseCharDelimiter, bool UseQuote,
char CharDelimiter, char QuoteChar )
CreateMergeFile は、顧客データをテキスト ファイルにエクスポートするヘルパー関数です。
FileName は、ターゲット ファイルのフル パスとファイル名です。
DataFields は、ファイルに含める顧客データ グループおよびフィールドがセミコロンで区切られた
リストです。 顧客ごとに複数の行を返すデータ グループはサポートされていません。
UseCharDelimiter は、ファイル内の列を文字で区切るかどうかを指定します。文字で区切らない場
合は、タブ区切りが適用されます。 CharDelimiter は、区切り文字として使用する単一の文字です。
UseQuote は、フィールド値を引用符で囲むかどうかを指定します。 QuoteChar は、引用符として
使用する単一の文字です。
このメソッドは、MS Word Merge プラグインにおいて、Word ドキュメントをマージする前にデー
タ ファイルを作成するために使用されます。 このメソッドは、顧客データを含むエクスポート ファ
イルを作成するためにも使用される場合があります。
IMHMessage CreateMessage( )
コンテナ内のすべての顧客に関連する空のメッセージ オブジェクトを作成します。 例えば、複数の
顧客を含むエクスポート ファイルを作成する場合は、このメソッドが使用できます。
単一の顧客に関連するメッセージ オブジェクトを作成する場合は、顧客オブジェクト (IMHCustomer)
の CreateMessage メソッドを使用します。
IMHMessageBundle CreateMessageBundle( IMHUnmergedMessage UnmergedMessage )
UnMergedMessage で与えられたテンプレートまたはベース メッセージに基づく空のメッセージ バ
ンドル オブジェクトを作成します。
リファレンス ガイド
185
IMHCustomerContainer インターフェース
CreateMessageBundle メソッドは、メッセージ プラグインで最もよく使用されます。 ただし、ブラ
ンチ プラグインで使用することもできます。
void FirstMember( )
コンテナ内の最初の顧客を現在の顧客にします。
string GetCustomersAsXML( )
コンテナ内のすべての顧客のデータの XML ドキュメントを含む文字列を返します。 返される顧客
データは、Open メソッドに対する、前回の呼び出しにおける文字列 DataFields の内容によって異な
ります。
IMHUnmergedMessage GetMessageTemplate( integer BaseMessageID )
Visual Dialogue のメッセージ テンプレートに対応するメッセージ テンプレート オブジェクトを返し
ます。
BaseMessageID は、メッセージ テンプレートの一意の ID です。 この ID は、データベース テーブ
ル DOC_BASE_MESSAGE の列 DBM_ID にあります。
IMHUnmergedMessage GetUnmergedMessage( string MessageTypeName )
Dialogue Admin で定義された 1 つの特定のメッセージ タイプのテンプレート オブジェクトを返しま
す。 返されるオブジェクトは、特定のマスター テンプレートまたはメッセージ テンプレートに基づ
くものではないことに注意してください。
MessageTypeName は、"EMAIL_HTML" などの、メッセージ タイプのテクニカル名です。
bool NextMember( )
コンテナ内の次の顧客を現在の顧客にします。 最後の顧客に到達したために現在の顧客が変更され
なかった場合に、true を返します。
void NewCustomer( )
コンテナ内に新しい顧客を挿入する処理を開始します。
注意: NewCustomer( ) は、OpenForUpdates( ) の呼び出しによって顧客コンテナが開かれている場
合のみ呼び出すことができます。
void Open( string DataFields )
中に含まれる顧客を走査するためにコンテナを開きます。
DataFields は、コンテナ内にキャッシュを作成する、(顧客ドメイン定義からの) 顧客データ グルー
プおよびフィールドがセミコロンで区切られたリストです。 他のフィールドにもアクセス可能です
が、DataFields を指定することによって、Dialogue Server におけるデータ取得が最適化されます。
注意: Customer プロパティにアクセスする前に、Open( ) または OpenForUpdates( ) を呼び出す必
要があります。
186
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
void OpenForUpdates( string DataGroups )
中に含まれる顧客を走査するために、コンテナを更新可能モードで開きます。 更新可能モードとは、
顧客データが編集可能で、新規顧客が挿入可能であることを意味します。
DataGroups は、(顧客ドメイン定義からの) 顧客データ グループがセミコロンで区切られたリストで
す。顧客コンテナに対する処理において、これらを更新できます。 後述の例を参照してください。
注意: Customer プロパティにアクセスする前に、Open( ) または OpenForUpdates( ) を呼び出す必
要があります。
void OpenSorted( string DataFields, string SortFields )
ソート順が指定可能であることを除き、Open(...) と同じです。
SortFields は、コンテナ内の顧客をソートするために使用される、セミコロンで区切られた顧客ドメ
イン フィールドのリストです。
注意: ソート フィールドの前に ~ を付けることによって、降順でのソートを指定できます。
void PostMessages( IMHMessageBundle Messages, bool UseOutbox )
PostMessages は、作成されたメッセージ (またはそのファイル名) を Dialogue Database に保存し
ます。 また、それらをアウトボックスまたは送信キューに配置します。 送信キューは、MH Send
Messages Service がメールや SMS メッセージなどの電子メッセージを送信するキューです。
Messages はメッセージのバンドルで、通常は、ProduceMessages メソッドによって作成されます。
UseOutbox は、送信する前にメッセージをアウトボックスに配置するかどうかを指定します。
integer PostSavedMessages( )
PostSavedMessages( ) は、現在のトランザクションのそれまでの時点において SaveMessages(..)
を使用してアウトボックスまたは送信キューに保存されたメッセージを、投稿します。
IMHMessageBundle ProduceMessages( IMHUnmergedMessage UnMergedMessage )
ProduceMessages は、Dialogue Server に対し、コンテナ内のすべての顧客に対するメッセージ (電
子メール メッセージなど) を作成するように求めます。 メッセージは、UnmergedMessage で与え
られたテンプレートまたはベース メッセージに基づきます。
メッセージ バンドルが返されます。 このオブジェクトは、作成されたすべてのメッセージのコンテ
ナで、続いて PostMessages メソッドへと引き渡される場合があります。このメソッドは、これら
のメッセージをアウトボックスまたは送信キューに配置します。
IMHMessageBundle ProduceMessagesEx( IMHUnmergedMessage UnMergedMessage, integer
MaxBundleSize )
返されるバンドル内のメッセージ数が指定された数までに制限されることを除き、ProduceMessages(..)
と同じです。
MaxBundleSize は、作成されるメッセージの最大数です。
リファレンス ガイド
187
IMHCustomerContainer インターフェース
注意: このメソッドは、大量の電子メールを作成する場合に使用メモリ容量を削減するために導入
されたものです。 すべてのメッセージ タイプおよびメッセージ プラグインがこのメソッドを
サポートしているとは限りません。
void Reset( )
顧客コンテナを閉じ、初期化解除します。 Reset( ) を呼び出した後に、コンテナを初期化して、再
度開くことができます。
注意: ダイアログ操作において Reset( ) を呼び出すと、コンテナが閉じられ、コンテナを再度初期
化して開くことができます。 ただし、参加顧客に対して実行したアクションは取り消されま
せん。例えば、ターゲット グループに移動済みの参加顧客は元に戻りません。
void SaveMessages( IMHMessageBundle Messages, bool UseOutbox )
SaveMessages は、メッセージがアウトボックスまたは送信キューに投入されない点を除き、
ProduceMessages と同じです。 SaveMessage(..) に続いて、トランザクション内のいずれかの時点
で、PostSavedMessage(..) を呼び出す必要があります。 PostSavedMessages(..) は、メッセージを
アウトボックスまたは送信キューに配置します。 SaveMessages(..) を複数回呼び出した場合でも、
PostSavedMessages(..) の呼び出しは 1 回でかまいません。
例
以下の例は、顧客を走査する方法を示したものです。
function ExecuteBranch(BranchInfo, Participants)
{
..............
//Open the container
Participants.Open("mh_customer_id;Address");
while (! Participants.MemberEof) {
//Do something with the participant / customer
//Move to next participants
Participants.NextMember();
}
..............
}
以下の例は、ダイアログ操作において顧客データを編集する方法を示しています。
function ExecuteBranch(BranchInfo, Participants)
{
//Open the customer container in editable mode
Participants.OpenForUpdates("contact;company;adresser");
while ((!Participants.MemberEof) && (i < Participants.Count))
{
//Start edit the customer
188
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
Participants.Participant.Edit();
//Update last name of customer (main data group)
Participants.Participant.SetFieldValue("Etternavn", "Peterson");
//Delete
old addresses
Participants.Participant.FirstDetailData("Adresser");
while (!Participants.Participant.DetailDataEof("Adresser"))
{
Participants.Participant.DeleteDetailData("Adresser");
}
//Create a new address (one2many group) (address type 2)
Participants.Participant.NewDetailData("Adresser");
Participants.Participant.SetFieldValue("Adresser.pa_at_id", "2");
Participants.Participant.SetFieldValue("Adresser.Gatenavn", "Maridalsveien");
Participants.Participant.SetFieldValue("Adresser.Gatenummer", "87");
Participants.Participant.SetFieldValue("Adresser.Bokstav", "C");
//Create a new address (one2many group) (address type 3)
Participants.Participant.NewDetailData("Adresser");
Participants.Participant.SetFieldValue("Adresser.pa_at_id", "3");
Participants.Participant.SetFieldValue("Adresser.Gatenavn", "River Street");
Participants.Participant.SetFieldValue("Adresser.Gatenummer", "7");
//Delete company relation (one2one group) (not neccessary when changing the
relation)
//Participants.Participant.DeleteDetailData("Company");
//Add a new company relation
Participants.Participant.SetFieldValue("Company.CompanyID", 1919);
//Save changes to customer to the underlying data source as defined in the
customer domain
Participants.Participant.PostChanges();
//Move participant to the next group in the dialog
Participants.Participant.Accept();
Participants.NextMember();
}
}
}
IMHCustomerList インターフェース
説明
IMHCustomerList は、顧客リストに関する情報を提供します。
Application
IMHCustomerList は、プラグインにおいて、顧客リストにアクセスするために使用されます。
親インターフェース
IMHCustomerList は、基本インターフェースである IMHCustomPluginServices を継承します。
リファレンス ガイド
189
IMHCustomerSortFieldList インターフェース
プロパティ
以下のプロパティがサポートされています。
integerId
リストの一意の ID です (データベース列 LIST.LST_ID に対応します)。読み取り専用です。
stringName
リストの名前です。読み取り専用です。
boolHasContext
リストのメンバーが顧客 ID とコンテキスト値の両方によって識別されるのか、顧客 ID によっての
み識別されるのかを示します。
データベース テーブル LIST_MEMBER には、リストのメンバーに関する情報が含まれます。HasContext
が true である場合、コンテキスト値は列 LIST_MEMBER.LME_CONTEXT に格納されます。
HasContext は、読み取り専用です。
boolIsExplorer
リストが Portrait Explorer によって作成されたかどうかを示します。
注意: PD 6.0 SP1 では、Portrait Explorer のみが Portrait Dialogue で使用可能なリストの作成をサ
ポートしています。したがって、リストが手動でデータベース内に直接作成された場合を除
き、IsExplorer は常に true です。
メソッド
以下のメソッドがサポートされています。
例
例はありません。
IMHCustomerSortFieldList インターフェース
説明
IMHCustomerSortFieldList は、ソート目的に使用される顧客フィールドのリストを提供します。
Application
IMHCustomerSortFieldList は、プラグインにおいて、顧客コンテナのソートに使用する顧客フィール
ドにアクセスするために使用されます。
190
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
親インターフェース
IMHCustomerSortFieldList は、基本インターフェースである IMHCustomPluginServices を継承しま
す。
プロパティ
以下のプロパティがサポートされています。
bool IsEmpty
リストが空であるかどうかを示します。 読み取り専用です。
string ListAsString
ソート フィールドがセミコロンで区切られたリストです。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHCustomPluginServices インターフェース
説明
他のインターフェースに継承される基本インターフェースです。
Application
基本プロパティとメソッドが含まれます。
プロパティ
以下のプロパティが提供されています。
string ObjectName
このインターフェースを実装するオブジェクトの内部名を返します。 読み取り専用です。
メソッド
メソッドはありません。
リファレンス ガイド
191
IMHDataField インターフェース
例
例はありません。
IMHDataField インターフェース
説明
IMHDataField は、顧客ドメイン内のフィールド プロパティおよびフィールド値を提供します。
Application
IMHDataField は、例えば、顧客データ プラグインにおいて、顧客データを更新する際に使用されま
す。
親インターフェース
IMHDataField は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string ContentType
フィールドにコンテンツ タイプが割り当てられている場合は、それを返します。 割り当てられてい
ない場合は、空の文字列を返します。 ContentType は、読み取り専用です。
標準のインストールにおいて、コンテンツ タイプがとり得る値は以下のとおりです。
値
説明
EMAIL_ADDRESS
フィールドには、電子メール アドレスが含まれます。
PHONE
フィールドには、電話番号が含まれます。
CELLULAR
フィールドには、携帯電話番号が含まれます。
URL
フィールドには、会社のホームページのアドレスなどの、URL が含
まれます。
string Datatype
フィールドのデータ型を返します。 顧客ドメインで使用するための一連のデータ型が定義されてい
ます。 読み取り専用です。
string Description
顧客ドメインで定義されたデータ フィールドの説明です。 読み取り専用です。
string FieldName
192
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
顧客ドメインで定義されたデータ フィールドの名前です。 読み取り専用です。
variant LinkedCustDomainID
フィールドが別の (リンクされた) 顧客ドメイン内の顧客 ID を表すものである場合は、
LinkedCustDomainID は、その顧客ドメインの一意の ID です。 それ以外の場合は、
LinkedCustDomainID は null です。
bool Modified
フィールド値が変更されたかどうかを示します。 読み取り専用です。
variant NewValue
変更されたフィールドの新しい値を返します。
注意: このプロパティは、読み取り専用ではなく、基盤のデータ ソースにおける変更を反映して、
顧客データ プラグインによって設定できます。 例えば、顧客プラグインにおいて ID 列の値
が生成された場合、プラグインは NewValue を設定することによって、Dialogue Server また
は他のプラグインが同じトランザクション内のその後の処理において、それを使用できるよ
うにすることができます。 その処理が必要となる場合があります。Dialogue Server は、顧客
データ プラグインの InsertRow( ) または UpdateRow( ) メソッドを実行した後に、基盤のデー
タ ソースからデータ グループを取得することをしないためです。
variant OldValue
変更されたフィールドの古い値を返します。 読み取り専用です。
bool ReadOnly
フィールドが読み取り専用と定義されているかどうかを示します。 読み取り専用です。
integer Size
顧客ドメインで定義されたフィールドのサイズです。 Size は、文字列フィールドに対して有効です。
読み取り専用です。
string SourceFieldName
顧客ドメインで定義されたデータ フィールドのソース名です。 読み取り専用です。
メソッド
メソッドはありません。
例
例はありません。
リファレンス ガイド
193
IMHDataFields インターフェース
IMHDataFields インターフェース
説明
IMHDataFields は、顧客ドメインのデータ グループのフィールドおよびフィールド値を提供します。
Application
IMHDataFields は、顧客データを更新する場合に顧客データ プラグインにおいて使用されます。
親インターフェース
IMHDataFields は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer Count
使用可能なフィールド数。 読み取り専用です。
IMHDataField Field[ integer Index ]
単一のデータ フィールドを表すオブジェクトを提供します。 読み取り専用です。
Index は、フィールドにアクセスするために使用する整数値です。 最初のフィールドのインデックス
値は 0 です。
IMHDataField FieldByName[ string FieldName ]
単一のデータ フィールドを表すオブジェクトを提供します。 読み取り専用です。
FieldName は、顧客ドメインで定義された、フィールドの論理名です。
string DataGroupName
顧客ドメインのデータ グループの名前。 読み取り専用です。
IMHDataField FieldBySourceName[ string SourceFieldName ]
単一のデータ フィールドを表すオブジェクトを提供します。 読み取り専用です。
SourceFieldName は、顧客ドメインで定義された、ソース フィールド名です。
メソッド
メソッドはありません。
194
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
例
例はありません。
IMHDataGroupPlugin インターフェース
説明
IMHDataGroupPlugin には、顧客データ プラグインによって実装されるメソッドが含まれます。
COM ベースのプラグインでは、このインターフェースとその親インターフェースが実装されますが、
スクリプト ベースのプラグインでは、このインターフェースのみが実装されます。
Application
顧客ドメイン データを更新するロジックは、IMHDataGroupPlugin によって実装されます。
親インターフェース
IMHDataGroupPlugin は、すべてのプラグインの基本インターフェースである IMHPlugin を継承しま
す。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
void CheckForDuplicates( IMHCustomer Customer, IMHDuplicateList DuplicateList )
CheckForDuplicates は、重複チェックが要求された場合に Dialogue Server によって呼び出されま
す。 このメソッドは、顧客ドメイン (または顧客データベース) 内で重複候補を実際に検索します。
Customer は、重複チェックの対象となる顧客を表すオブジェクトです。 例えば、Customer View に
新しい顧客が挿入され、重複チェックが要求された場合、Customer オブジェクトには、挿入する顧
客に関する情報が含まれます。
DuplicateList は、検出された重複候補のリストを含むオブジェクトです。 CheckForDuplicates の実
装では、検出された各重複候補の顧客 ID を追加するために、DuplicateList.AddDuplicate(...) メソッ
ドを呼び出す必要があります。
void DeleteRow( IMHCustomer Customer, IMHDataFields Fields )
DeleteRow は、顧客ドメインのデータ グループの 1 つの行を削除する場合に Dialogue Server によっ
て呼び出されます。 行は必ず、単一の顧客に関連付けられています。 行がドメインのメイン データ
グループにある場合は、顧客が削除されます。
Customer は、顧客を表すオブジェクトです。
リファレンス ガイド
195
IMHDialog インターフェース
Fields は、変更されるデータ グループのフィールドに関する情報を含むオブジェクトです。
variant InsertRow( IMHCustomer Customer, IMHDataFields Fields )
InsertRow は、顧客ドメインのデータ グループの 1 つの行を追加する場合に Dialogue Server によっ
て呼び出されます。 行は必ず、単一の顧客に関連付けられています。 行がドメインのメイン データ
グループにある場合は、新規顧客が挿入されます。 その場合、戻り値は新規顧客の ID になります。
それ以外の場合は、InsertRow は null を返します。
Customer は、顧客を表すオブジェクトです。
Fields は、変更されるデータ グループのフィールドに関する情報を含むオブジェクトです。
void UpdateRow( IMHCustomer Customer, IMHDataFields Fields )
UpdateRow は、顧客ドメインのデータ グループの 1 つの行を更新する場合に Dialogue Server に
よって呼び出されます。 行は必ず、単一の顧客に関連付けられています。
Customer は、顧客を表すオブジェクトです。
Fields は、変更されるデータ グループのフィールドに関する情報を含むオブジェクトです。
例
例はありません。
IMHDialog インターフェース
説明
IMHDialog は、ダイアログに関する情報を提供します。
Application
IMHDialog はブランチ プラグインで使用されます。
親インターフェース
IMHDialog は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
bool AllowMulti
ダイアログにおいて同じ顧客が複数回出現してもよいかどうかを表します。 true の場合は、ダイア
ログにおいて参加顧客のコンテキスト値が使用されます。 読み取り専用です。
integer CustDomainID
196
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
現在の顧客ドメインの ID (一意の識別子) です。 読み取り専用です。
string DialogPathUNC
ダイアログ パスの UNC です。 読み取り専用です。
integer GroupCount
ダイアログ内のグループ数です。
IMHDialogGroup Groups[ integer GroupIndex ]
ダイアログ内のグループを提供します。
GroupIndex は、ダイアログ内のグループのインデックスです。 インデックスは 0 から開始します。
最初のグループのインデックスは 0 です。
integer ID
ダイアログの一意の ID です。 読み取り専用です。
string LogPathUNC
ダイアログの既定ログ パスの UNC です。 読み取り専用です。
string Messages PathUNC
ダイアログのメッセージ パスの UNC です。 ダイアログによって作成され、ファイルとして保存さ
れるメッセージは、既定でこのディレクトリに配置されます。 読み取り専用です。
string Name
Name は、ダイアログの名前です。 読み取り専用です。
integer OperationCount
ダイアログ内の操作数です。
IMHDialogOperation Operations[ integer OperationIndex ]
ダイアログ内の操作を提供します。
OperationIndex は、ダイアログ内の操作のインデックスです。 インデックスは 0 から開始します。
最初の操作のインデックスは 0 です。
string Reporting PathUNC
ダイアログのレポート パスの UNC です。 ダイアログによって作成されるレポート ファイルを保存
する既定ディレクトリになります。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
リファレンス ガイド
197
IMHDialog インターフェース
IMHAnswerFormList GetAnonymousAnswerForms( integer QuestionnaireID, integer MaxCount )
ダイアログ内で処理済みとマーク付けされていない、特定のアンケートに対するすべての匿名の回答
フォームのリストを返します。
QuestionnaireID は、アンケートの一意の ID です。
MaxCount は取得する回答フォームの最大数です。 MaxRows に -1 を設定すると、その他の条件を
満たすすべての回答フォームが返されます。
注意: 回答フォームの MarkAsProcessedInDialog( ) メソッドを呼び出すことにより、その回答フォー
ムにダイアログ内で処理済みとマーク付けできます (IMHAnswerForm を参照してください)。
IMHDialogGroup GetGroupByID( integer GroupID )
指定された一意のグループ ID に対応する、ダイアログ内のグループを提供します。
GroupID は、グループの一意の ID で、データベース列 DLG_GROUP.DG_ID と同じです。
IMHAnswerFormList GetIdentifiedAnswerForms( integer QuestionnaireID, integer MaxCount )
ダイアログ内で処理済みとマーク付けされていない、特定のアンケートに対する特定された (どの顧
客のものであるかが明らかな) 回答フォームのリストを返します。 ダイアログの顧客ドメイン内の顧
客に関連付けられた回答フォームのみを返します。
QuestionnaireID は、アンケートの一意の ID です。
MaxCount は取得する回答フォームの最大数です。 MaxRows に -1 を設定すると、その他の条件を
満たすすべての回答フォームが返されます。
注意: 回答フォームの MarkAsProcessedInDialog( ) メソッドを呼び出すことにより、その回答フォー
ムにダイアログ内で処理済みとマーク付けできます (IMHAnswerForm を参照してください)。
IMHAnswerFormList GetIdentifiedAnswerFormsEx( integer QuestionnaireID, bool IncludeComplete,
bool IncludeUncomplete, integer MaxCount )
ダイアログ内で処理済みとマーク付けされていない、特定のアンケートに対する特定された (どの顧
客のものであるかが明らかな) 回答フォームのリストを返します。 ダイアログの顧客ドメイン内の顧
客に関連付けられた回答フォームのみを返します。
QuestionnaireID は、アンケートの一意の ID です。
IncludeComplete は、完了とマーク付けされている回答フォームのみを返す場合に指定します。
IncludeIncomplete は、完了とマーク付けされていない回答フォームのみを返す場合に指定します。
注意 : IncludeComplete と IncludeIncomplete の両方に false を設定することはできません。
MaxCount は取得する回答フォームの最大数です。 MaxRows に -1 を設定すると、その他の条件を
満たすすべての回答フォームが返されます。
注意: 回答フォームの MarkAsProcessedInDialog( ) メソッドを呼び出すことにより、その回答フォー
ムにダイアログ内で処理済みとマーク付けできます (IMHAnswerForm を参照してください)。
198
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
IMHDialogOperation GetOperationByID( integer OperationID )
指定された一意の操作 ID に対応する、ダイアログ内の操作を提供します。
OperationID は、操作の一意の ID で、データベース列 DLG_OPERATION.DO_ID と同じです。
例
例はありません。
IMHDialogUtils インターフェース
説明
IMHDialogUtils は、ダイアログへのアクセスを提供します。
Application
IMHDialogUtils は、プラグインにおいてダイアログを処理するために使用されます。
親インターフェース
IMHDialogUtils は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドがサポートされています。
IMHDialog GetDialog( integer DialogID )
特定のダイアログを表すオブジェクトを返します。
DialogID は、返されるダイアログの一意の ID です。
例
例はありません。
IMHDialogGroup インターフェース
説明
IMHDialogGroup は、ダイアログ内の操作に関する情報を提供します。
リファレンス ガイド
199
IMHDialogGroup インターフェース
Application
IMHDialogGroup はブランチ プラグインで使用されます。
親インターフェース
IMHDialogGroup は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
IMHDialog Dialog
グループが属するダイアログを表すオブジェクトを提供します。
string GroupDataType
ダイアログ グループの基本タイプです。 GroupDataType がとり得る文字列値は以下のとおりです。
値
説明
データベース
データベース データ タイプは、顧客データベー
ス内のすべての顧客、つまり、ダイアログにおい
て対象とする顧客ドメイン内のすべての顧客を表
します。
標準
標準データ タイプは、ダイアログ参加顧客に適
用される通常のデータ タイプです。
Fuzzy
ファジー データ タイプは、市場やターゲット層
など、不特定の顧客を表すグループ タイプで使
用します。
integer ID
操作の一意の ID です。 読み取り専用です。
string Name
Name は、操作の名前です。 読み取り専用です。
IMHDialogOperation OutOperation
参加顧客をグループ外へと移動させる操作を提供します。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
bool InsertParticipant( IMHCustomer Customer )
200
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
顧客をダイアログ グループの参加顧客として挿入します。 新しい参加顧客が正常に挿入された場合
に True を返します。 (コンテキスト付きの) 顧客が既にダイアログに所属する場合は、FALSE を返
します。
Customer は、顧客を表すオブジェクトです。
bool InsertParticipantByID( string CustomerID, string Context )
パラメータとして顧客を表すオブジェクトの代わりに ID を指定することを除き、InsertParticipant( )
と同じです。
CustomerID は、ダイアログ参加顧客として挿入する顧客の一意の ID です。
Context は、一部のダイアログで使用されるコンテキスト文字列値です。 コンテキストが使用されて
いない場合は、文字列値 '0' を設定します。
例
例はありません。
IMHDialogOperation インターフェース
説明
IMHDialogOperation は、ダイアログ内の操作に関する情報を提供します。
Application
IMHDialogOperation はブランチ プラグインで使用されます。
親インターフェース
IMHDialogOperation は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer BranchCount
操作内の分岐数です。
IMHBranchInfo Branches[ integer BranchIndex ]
ダイアログの操作内の分岐を提供します。
BranchIndex は、操作内の分岐のインデックスです。 インデックスは 0 から開始します。優先度 1
の分岐のインデックスは 0 です。
variant CustomValue[ variant ValueName ]
リファレンス ガイド
201
IMHDialogOperation インターフェース
カスタム値の名前/値コレクションを提供します。 カスタム値は、文字列、整数、ブール型、浮動小
数点型といった、さまざまな単純なデータ型をとり得ます。
カスタム値によって、操作のある分岐で値を設定し、別の分岐でそれらにアクセスするということが
可能になります。 カスタム値は、操作の実行中にメモリに保持されます。データベースには保存さ
れません。
IMHDialogGroup FromGroup
操作のソース グループを提供します。ソース グループとは、操作において参加顧客が取り出される
移動元グループのことです。
integer ID
操作の一意の ID です。 読み取り専用です。
string Name
Name は、操作の名前です。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
integer Execute( integer MaxCount )
直ちに操作を実行し、その完了を待ちます。 操作によって移動された参加顧客の総数を返します。
MaxCount は、操作の実行対象となる参加顧客の最大数です。 MaxCount に -1 を設定すると、ソー
ス グループ内のすべての参加顧客に対して操作を実行します。
注意: 操作は、現在のトランザクションと同じトランザクション内で実行されます。操作を実行す
るために新しいトランザクションが開始されることはありません。
void ExecuteAsync( integer MaxCount )
Dialogue Server に対して操作の実行を要求し、操作の実行開始を待たずにリターンします。
MaxCount は、操作の実行対象となる参加顧客の最大数です。 MaxCount に -1 を設定すると、ソー
ス グループ内のすべての参加顧客に対して操作を実行します。
注意: 操作は、個別のトランザクション内で実行されます。
例
例はありません。
202
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
IMHDialogServerServices インターフェース
説明
IMHDialogServerServices インターフェースは、Dialogue Server における一般的な機能をサポートし
ます。
Application
IMHDialogServerServices は、すべてのプラグインにおいて、プラグイン実装時のツールボックスとし
て使用可能な DialogServer オブジェクトによってサポートされます。
親インターフェース
IMHDialogServerServices は、基本インターフェースである IMHCustomPluginServices を継承しま
す。
プロパティ
以下のプロパティがサポートされています。
string ApplicationSystem
現在のユーザー セッションのアプリケーション システムの名前です。 アプリケーション システム
は、ユーザーが Dialogue Server にログオンするときに指定されます。 読み取り専用です。
IMHContentObjectUtils ContentObjects
コンテンツ オブジェクトに関連するメソッドを提供します。
IMHDialogUtils Dialogs
ダイアログにアクセスするためのメソッドを提供します。
string InstanceName
現在の Dialogue Database インスタンスの名前です。 読み取り専用です。
string LanguageCode
現在のユーザー セッションの言語コードです。例えば、"en-US" (米国英語) や "ja-JP" (フランス語)
があります。 読み取り専用です。
IMHLicenseInfo LicenseInfo
現在のライセンスに関する情報を提供します。
IMHMessageUtils Messages
メッセージやメッセージ テンプレートにアクセスするためのメソッドを提供します。
リファレンス ガイド
203
IMHDialogServerServices インターフェース
IMHQuestionnaireUtils Questionnaires
アンケートや回答フォームにアクセスするためのメソッドを提供します。
IMHReportEngine ReportEngine
Dialogue Server 内のレポート エンジンを表すオブジェクトを提供します。 読み取り専用です。
ReportEngine には、レポートをアクセスおよび生成するためのメソッドがあります。
IMHSystemUser User
現在のユーザーを表すオブジェクトを提供します。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
IMHWebPublicFile AddWebPublicFile( string SourceUNC, string Description )
Dialogue Server 内のファイルを発行して、Web Utilities アプリケーションへの URL を使用してそれ
にアクセスできるようにします。 Web に発行済みのファイルは、データベース テーブル
WEB_PUBLIC_FILE に格納されます。
AddWebPublicFile(..) は、ファイルを表すオブジェクトを返します。
SourceUNC は、発行するローカル ファイルのパスとファイル名です。
Description は、Dialogue Database 内のファイルとともに保存される、ファイルに関する説明で、
オプションです。
string BuildTrackedLinkUrl( string OriginalUrl, string LinkName, bool NoTrack, bool TrackAnonymously,
variant CustomerMessageID )
URL を、Web Utilities アプリケーションを使用してリンク追跡をサポートする新しい URL へと変換
します。 追跡がサポートされた新しい URL を返します。
OriginalUrl は、追跡対象となる元の URL です。
LinkName は、レポート作成のために URL に与えられる名前です。
NoTrack は、リンク追跡を無効にします。 このオプションは、Dialogue Server によって内部で使用
されます。
各追跡は、テーブル WEB_TRACK_LOG に保存されます。ただし、TrackAnonymously が true の場
合は、 記録される情報は、特定のメッセージや顧客に関連付けられません。 false の場合は、追跡を
特定のメッセージや顧客に関連付けるために、顧客メッセージ ID を指定する必要があります。
CustomerMessageID は、顧客に伝達されるメッセージの ID です。 これは、テーブル
CUSTOMER_MESSAGE の列 CM_ID の値に対応します。
variant ExecutePlugin( string PluginName, array Params )
204
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
IMHGenericPlugin インターフェースを実装する、汎用プラグインに分類される Dialogue Server プ
ラグインを実行します。 PluginName は、Dialogue Admin で定義されたプラグインの名前です。
Params は、パラメータ値を含む配列です。
戻り値はプラグインから返される値です。
IMHCustomerContainer GetCustomers( integer CustDomainID, string FilterExpression, string
ContextExpression, string DataFields, integer MaxCount )
指定された条件にマッチする顧客セットを表すオブジェクトを返します。
CustDomainID は、顧客ドメインを指定する ID です。
FilterExpression は、返される顧客のセレクションのフィルタまたは絞り込みに使用される式です。
ContextExpression が指定された場合は、各顧客の mh_context フィールドに値が代入されます。
ContextExpression は、文字列値を返す式です。文字列の配列を返す場合もあります。 文字列の配列
である場合は、単一の顧客に対して複数のコンテキスト値が存在する可能性があるため、その顧客が
各コンテキスト値に対して 1 回、合計で複数回含まれる場合があります。
DataFields は、(顧客ドメイン定義からの) 顧客データ グループおよびフィールドがセミコロンで区
切られたリストです。これらが、返されるオブジェクトの中にキャッシュされることになります。
他のフィールドにもアクセス可能ですが、DataFields を指定することによって、Dialogue Server に
おけるデータ取得が最適化されます。
MaxCount は返される顧客の最大数です。 MaxCount を -1 に設定すると、指定したその他の条件を
満たす顧客がすべて返されます。
IMHCustomerContainer GetCustomersEx( integer CustDomainID, string SQLStatement, array Param,
bool ContextIncluded, string ConnectionName, string DataFields, integer MaxCount )
SQL ステートメントで返された ID に一致する顧客セットを表すオブジェクトを返します。
CustDomainID は、顧客ドメインを指定する ID です。
SQLStatement は、SQL SELECT ステートメントです。 SELECT ステートメントは、顧客 ID を含
む mh_customer_id という名前の列を返す必要があります。 オプションとして、コンテキスト値を
含む mh_context という名前の列を返すことができます。
Params は、SQL ステートメントにバインドするパラメータ値を含む配列です。
ContextIncluded は、SELECT ステートメントで mh_context 列を返すかどうかを指定します。
ConnectionName は、Dialogue Admin で定義されたセカンダリ データベースを表す名前です。
ConnectionName に null を設定すると、既定の接続が使用されます。
DataFields は、(顧客ドメイン定義からの) 顧客データ グループおよびフィールドがセミコロンで区
切られたリストです。これらが、返されるオブジェクトの中にキャッシュされることになります。
他のフィールドにもアクセス可能ですが、DataFields を指定することによって、Dialogue Server に
おけるデータ取得が最適化されます。
MaxCount は返される顧客の最大数です。 MaxCount を -1 に設定すると、指定したその他の条件を
満たす顧客がすべて返されます。
リファレンス ガイド
205
IMHDialogServerServices インターフェース
IMHCustomerContainer GetCustomerSelection( integer SelectionID, string DataFields, integer
MaxCount )
指定されたセレクションに含まれる顧客セットを表すオブジェクトを返します。
SelectionID はセレクションの ID です。
DataFields は、(顧客ドメイン定義からの) 顧客データ グループおよびフィールドがセミコロンで区
切られたリストです。これらが、返されるオブジェクトの中にキャッシュされることになります。
他のフィールドにもアクセス可能ですが、DataFields を指定することによって、Dialogue Server に
おけるデータ取得が最適化されます。
MaxCount は返される顧客の最大数です。 MaxCount を -1 に設定すると、指定したその他の条件を
満たす顧客がすべて返されます。
IMHCustomerContainer GetCustomerSelectionSorted( integer SelectionID, string DataFields, string
SortFields, integer MaxCount )
ソート順が指定可能であることを除き、GetCustomerSelection(...) と同じです。
SortFields は、返される顧客をソートするために使用される、セミコロンで区切られた顧客ドメイン
フィールドのリストです。
注意: ソート フィールドの前に ~ を付けることによって、降順でのソートを指定できます。
IMHCustomerContainer GetCustomersSorted( integer CustDomainID, string FilterExpression, string
ContextExpression, string DataFields, string SortFields , integer MaxCount )
ソート順が指定可能であることを除き、GetCustomers(...) と同じです。
SortFields は、返される顧客をソートするために使用される、セミコロンで区切られた顧客ドメイン
フィールドのリストです。
注意: ソート フィールドの前に ~ を付けることによって、降順でのソートを指定できます。
IMHCustomerContainer GetCustomersSortedEx( integer CustDomainID, string SQLStatement,
array Param, bool ContextIncluded, string ConnectionName, string DataFields, string SortFields, integer
MaxCount )
ソート順が指定可能であることを除き、GetCustomersEx(...) と同じです。
SortFields は、返される顧客をソートするために使用される、セミコロンで区切られた顧客ドメイン
フィールドのリストです。
注意: ソート フィールドの前に ~ を付けることによって、降順でのソートを指定できます。
string GetDataFieldsInExpression( integer CustDomainID, string Expression )
式を評価するために必要なドメイン フィールドがセミコロンで区切られたリストを返します。
CustDomainID は、顧客ドメインの一意の ID です。
Expression は、分析する式です。
206
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
int64 GetSequenceID( string SequenceName )
指定したシーケンスの次の値を返します シーケンスは、一意の識別子を維持するために Dialogue
Server によって提供されるメカニズムです。 Dialogue Server は、GetSequenceID の個別の呼び出
しに対して返される番号の一意性を保証します。
SequenceName は、シーケンスの名前です。 存在しないシーケンスが指定された場合は、新しい
シーケンスが自動的に作成されます。
注意: シーケンスは、Dialogue Server の内部メカニズムです。データベース シーケンスと混同しな
いでください。 例えば、Oracle にはシーケンスと呼ばれる独自のメカニズムがあります。
IMHCustomer GetSingleCustomer( integer CustDomainID, string CustomerID, string Context, string
DataFields )
指定された顧客ドメイン内の単一の顧客を表すオブジェクトへの参照を返します。
CustDomainID は顧客ドメインの一意の ID で、CustomerID はそのドメインの顧客の一意の ID です。
Context は、顧客のコンテキスト値です。 コンテキストが必要ない場合は、Context を文字列 "0" に
設定します。
DataFields は、(顧客ドメイン定義からの) 顧客データ グループおよびフィールドがセミコロンで区
切られたリストです。これらが、返されるオブジェクトの中にキャッシュされることになります。
他のフィールドにもアクセス可能ですが、DataFields を指定することによって、Dialogue Server に
おけるデータ取得が最適化されます。
IMHSQLDef GetSQLDef( string SQLName )
Dialogue Admin の SQL リポジトリに格納された SQL ステートメントを表すオブジェクトを提供し
ます。 SQLName は、ステートメントのテクニカル名です。
IMHWebPublicFile GetWebPublicFile( string ContentID )
Web に発行済みのファイルを表すオブジェクトを返します。
ContentID は、ファイルを一意に識別する文字列 (GUID) です。
void LogDebugMessage( string Message )
Dialogue Manager Service にメッセージ文字列を記録します。これは、Process Monitor によって監
視できます。
IMHCustomer NewCustomer( integer CustDomainID, string DataGroups )
顧客ドメインに新規顧客を挿入する処理を開始します。
CustDomainID は、新規顧客が所属することになる顧客ドメインの一意の ID です。
DataGroups は、(顧客ドメイン定義からの) 顧客データ グループがセミコロンで区切られたリストで
す。新規顧客にデータを割り当てる際に、これらを編集できます。
リファレンス ガイド
207
IMHDialogServerServices インターフェース
NewCustomer( ) を呼び出した後には、メソッド IMHCustomer.SetFieldValue( ) と
IMHCustomer.PostChanges( ) を使用して、新規顧客に関するデータを保存します。 トピック
「IMHCustomer」の例を参照してください。
bool ParamAsBool( string CollectionName, string ParamName )
パラメータ コレクションとパラメータ名を入力として受け取り、Dialogue Server からブール型のパ
ラメータ値を取得します。 パラメータは、Dialogue Admin において設定されます。
float ParamAsFloat( string CollectionName, string ParamName )
パラメータ コレクションとパラメータ名を入力として受け取り、Dialogue Server から浮動小数点型
のパラメータ値を取得します。 パラメータは、Dialogue Admin において設定されます。
integer ParamAsInteger( string CollectionName, string ParamName )
パラメータ コレクションとパラメータ名を入力として受け取り、Dialogue Server から整数型のパラ
メータ値を取得します。 パラメータは、Dialogue Admin において設定されます。
string ParamAsString( string CollectionName, string ParamName )
パラメータ コレクションとパラメータ名を入力として受け取り、Dialogue Server から文字列型のパ
ラメータ値を取得します。 パラメータは、Dialogue Admin において設定されます。
string ScrambleUrl(string Url )
URL をスクランブル化します。 Url は、スクランブル化する URL です。
void SendAdminEmail( string ToAddress, string FromAddress, string Subject, string MessageBody,
string Attachments )
Dialogue Admin で設定されたメール出力チャネルを使用して電子メールを送信します。 メール送信
に失敗した場合は、例外が発生します。
ToAddress は、メールの受信者です。
FromAddress は、メールの送信者です。
Subject は、メールの件名です。
MessageBody は、メールのテキスト コンテンツです。
Attachments は、メールに添付されるファイルのセミコロンで区切られたリストです。
上記のアドレス パラメータでは、複数のアドレスをセミコロンで区切って指定できます。
注意: このメソッドは、管理メッセージ用に設計されたものであり、エンド顧客向けのマス コミュ
ニケーション用ではありません。
void SendAdminSMS( string ToNumber, string FromNumber, string MessageText )
Dialogue Admin で設定されたメール出力チャネルを使用して SMS メッセージを送信します。 メッ
セージ送信に失敗した場合は、例外が発生します。
208
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
ToNumber は、受信者の携帯電話番号です。
FromNumber は、SMS メッセージの送信者を特定する番号またはテキストです。
MessageText は、SMS メッセージのテキスト コンテンツです。
注意: このメソッドは、管理メッセージ用に設計されたものであり、エンド顧客向けのマス コミュ
ニケーション用ではありません。
datetime ServerDateTime( )
Dialogue Server からシステム (現在の) 日付/時刻値を取得します。
string ServerSession( )
現在のサーバー セッションを返します。
サーバー セッション文字列は、Dialogue Server API の呼び出しに使用できます。
void Sleep( integer Milliseconds )
現在の実行スレッドを、指定した時間だけスリープさせます。 このメソッドは、標準の Windows
API を使用して実装されています。
Milliseconds には、スリープ時間をミリ秒 (ms) で指定します。
object SQLConnectionObject( string ConnectionName )
ADO 接続オブジェクトへの参照を返します。 ConnectionName は、Dialogue Admin で定義されたセ
カンダリ データベースの名前です。 この引数に null を設定すると、Dialogue Server データベース
へのアクセスに使用される既定の接続オブジェクトが返されます。
integer SQLExecute( string SQLName, array Params )
Dialogue Admin の SQL リポジトリに格納されている SQL ステートメントを実行します。 SQLName
はステートメントのテクニカル名で、Params はパラメータ値を含む配列です。
SQLExecute は、影響を受けたレコード数を返します。
integer SQLExecuteRaw( string SQLStatement, array Params, string ConnectionName )
SQLStatement で指定された SQL ステートメントを実行します。 Params は、パラメータ値を含む
配列です。 ConnectionName は、Dialogue Admin で定義されたセカンダリ データベースを表す名前
です。 ConnectionName に null を設定すると、既定の接続が使用されます。
SQLExecute は、影響を受けたレコード数を返します。
void SQLExecuteStoredProc( string StoredProcName, array Params, string ConnectionName )
指定したデータベース接続を使用してストアド プロシージャを実行します。
StoredProcName は、データベースに定義されているストアド プロシージャ名で、Params は、パラ
メータ値を含む配列です。
リファレンス ガイド
209
IMHDialogServerServices インターフェース
ConnectionName は、Dialogue Admin で定義されたセカンダリ データベース接続のテクニカル名で
す。 ConnectionName を空白のままにすることによって、既定のデータベース接続を使用するよう
に指定できます。
string SQLGetDatasetXML( string SQLName, array Params, integer MaxRows )
Dialogue Admin で定義されたデータセットを XML として返します。
SQLName は、データセットを定義する SQL リポジトリの中の項目の名前です。
Params はパラメータ値 (データベース ホスト変数) を含む配列です。
MaxRows は、取得する行数の最大値です。 MaxRows に -1 を設定するとすべての行を返し、0 を設
定すると XML スキーマのみを返します。
int64 SQLGetLastAutoIncID( string TableName )
Dialogue Database に行を挿入した際の、最後の自動インクリメント値を返します。 このメソッド
は、一括挿入がサポートされているテーブルに対してのみ使用できます。
TableName は、行を挿入したデータベース テーブルの名前です。
注意: SQLGetLastAutoIncID( ) は、以下に示すように、Dialogue Server で使用されるデータベース
プラットフォームによって動作が異なります。
"サーバー"
SQL Server においては、SQLGetLastAutoIncID( ) の呼び出しは、SELECT ステートメント
'select @@identity' と等価です。 パラメータ TableName は、SQL Server では使用されませ
ん。
ORACLE DBMS
Oracle DBMS では、シーケンスを使用して Dialogue Server における一意の ID を生成しま
す。 使用されるシーケンスには、 <テーブル名>_SEQ (例: DLG_PARTICIPANT_SEQ) とい
う名前が付けられます。
object SQLOpen( string SQLName, array Params )
Dialogue Admin の SQL リポジトリに格納された SQL ステートメントを使用して、ADO データセッ
トを開き、返します。 SQLName はステートメントのテクニカル名で、Params はパラメータ値を含
む配列です。
object SQLOpenRaw( string SQLStatement, array Params, string ConnectionName )
SQLStatement で指定された SQL ステートメントを使用して、ADO データセットを開き、返しま
す。 Params は、パラメータ値を含む配列です。 ConnectionName は、Dialogue Admin で定義され
たセカンダリ データベースを表す名前です。 ConnectionName に null を設定すると、既定の接続が
使用されます。
variant SQLRetrieveValue( string SQLName, array Params )
210
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
データセットを開き、最初の行の最初の列の値を返します。 Dialogue Admin の SQL リポジトリに
格納された SQL ステートメントを使用します。 SQLName はステートメントのテクニカル名で、
Params はパラメータ値を含む配列です。
variant SQLRetrieveValueRaw( string SQLStatement, array Params, string ConnectionName )
データセットを開き、最初の行の最初の列の値を返します。 SQLStatement で指定された SQL ス
テートメントを使用します。 Params は、パラメータ値を含む配列です。 ConnectionName は、
Dialogue Admin で定義されたセカンダリ データベースを表す名前です。 ConnectionName に null を
設定すると、既定の接続が使用されます。
variant SQLUpdateDatasetXML( string ServerSession, string SQLName, array Params, string
XMLDiffGram )
GetDataset メソッドを使用して以前に取得したデータセットを更新します。
UpdateDataset は、データベースによってデータセット内の最上位テーブルに対して生成された最後
の ID を返します。 通常は、自動インクリメントされた列またはデータベース シーケンスからの値
になります。 そのような列が Dialogue Admin において定義されていない場合は、戻り値は null にな
ります。
SQLName は、データセットを定義する SQL リポジトリの中の項目の名前です。
Params は、パラメータ値の配列です。 これらのパラメータ値は、GetDataset を使用して元のデー
タセットを取得した際に指定したパラメータ値と同じである必要があります。
XMLDiffGram は、新規レコード、更新レコード、または削除レコードを含む XML ドキュメントで
す。 この XML ドキュメントは、Microsoft ADO.NET で定義されている XML Diffgram の形式に従い
ます。
string Translate( string Msg )
文字列を翻訳 (ローカライズ) します。 次の TranslateAndFormat(..) と同じですが、書式設定をサポー
トしません。
string TranslateAndFormat( string Msg, array Params)
文字列を翻訳 (ローカライズ) し、書式設定します。
Msg は、翻訳および書式設定する入力文字列です。
Params は、書式設定時に文字列 (Msg) に挿入する値の配列です。
例:
Msg: "[MSG01] 変数は {0} と {1} です", Params: [123, 987]
[MSG01] は、翻訳 (ローカライズ) に使用される識別子で、{0} と {1} には Params 配列 (書式設定) か
らの値が代入されます。
注意: 翻訳メカニズムは、標準のスクリプト実装のプラグインで使用される内部メカニズムであり、
カスタマイズされたプラグインやアドオン プラグインには適用できません。 書式設定メカニ
ズムは、一般的に使用できます。
リファレンス ガイド
211
IMHDuplicateList インターフェース
例
以下の例は、Process Monitor にデバッグ メッセージをログ記録する方法を示したものです。
function ExecuteBranch(BranchInfo, Participants)
{
..............
DialogServer.LogDebugMessage("Trying to connect to SMS service provider");
..............
}
次の例は、SQL UPDATE ステートメントを実行する方法を示しています。
function ExecuteBranch(BranchInfo, Participants)
{
..............
DialogServer.SQLExecuteRaw("UPDATE balder.person SET e_mail = :param1"
WHERE person_id = :param2",
new Array("[email protected]", 100099),
NULL);
..............
}
IMHDuplicateList インターフェース
説明
IMHDuplicateList は、重複の可能性のある顧客の顧客 ID のリストへのアクセスを提供します。
Application
IMHDuplicateList は、重複チェックが要求された場合に顧客データ プラグインにおいて使用されます。
親インターフェース
IMHDuplicateList は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer Count
使用可能なフィールド数。 読み取り専用です。
string Duplicate[ integer DuplicateIndex ]
1 つの特定の重複顧客の顧客 ID を提供します。 読み取り専用です。
DuplicateIndex は、重複顧客にアクセスするために使用する整数値です。 重複顧客のインデックス
値は 0 です。
212
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
メソッド
以下のメソッドが実装されています。
void AddDuplicate( string CustomerID
重複顧客をリストに追加します。
CustomerID は、重複の可能性があるとして検出された顧客の一意の ID です。
void Clear( )
リストをクリアします。
例
例はありません。
IMHDynamicValuesList インターフェース
説明
IMHDynamicValuesList は、値のリストを提供します。
Application
IMHDynamicValuesList は、プラグインにおいて、動的リスト (多選択式) タイプの分岐パラメータと
して保存されている値のリストにアクセスするために使用されます。
親インターフェース
IMHDynamicValuesList は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string ListAsString
値がコンマで区切られたリストです。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
リファレンス ガイド
213
IMHEmailBounceCodeList インターフェース
IMHEmailBounceCodeList インターフェース
説明
IMHEmailBounceCodeList は、メール バウンス コードのリストを提供します。
Application
IMHEmailBounceCodeList は、プラグインにおいて、バウンス メールのメール バウンス コードにア
クセスするために使用されます。 このインターフェースは、バウンス メール ブランチ プラグインを
使用する標準の選択/分割において使用されます。
親インターフェース
IMHEmailBounceCodeList は、基本インターフェースである IMHCustomPluginServices を継承しま
す。
プロパティ
以下のプロパティがサポートされています。
string ListAsString
バウンス メール コードがコンマで区切られたリストです。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHExprFunctionDef インターフェース
説明
IMHExprFunctionDef は、ユーザー定義の式関数の定義を提供します。
Application
IMHExprFunctionDef は、ユーザー定義の式関数を実装する場合に使用されます。
親インターフェース
IMHExprFunctionDef は、基本インターフェースである IMHCustomPluginServices を継承します。
214
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
プロパティ
以下のプロパティがサポートされています。
string Description
式関数の説明です。 このテキストは、Visual Dialogue のツールボックスの中のヒントとして表示さ
れます。
string Name
式関数の名前です。
注意: プラグインを使用して式関数を実装する場合、Name には既定でそのプラグインの名前が設
定されます。
string ResultType
式関数によって返される値のデータ型。 「式のデータ型」を参照してください。
メソッド
以下のメソッドがサポートされています。
void AddParam( string ParamName, string DataTypes )
入力パラメータを式関数の定義に追加します。
ParamName は、パラメータ名です。
DataTypes は、パラメータに対して許可されるデータ型です。 「式のデータ型」を参照してくださ
い。 複数のデータ型が許可される場合は、セミコロンで区切って指定する必要があります。
例
「式プラグイン」を参照してください。
IMHExprFunctionPlugin インターフェース
説明
IMHExprFunctionPlugin には、式プラグインによって実装されるメソッドが含まれます。
COM ベースのプラグインでは、このインターフェースとその親インターフェースが実装されますが、
スクリプト ベースのプラグインでは、このインターフェースのみが実装されます。
Application
ユーザー定義の式関数は、IMHExprFunctionPlugin によって実装されます。
リファレンス ガイド
215
IMHGenericPlugin インターフェース
親インターフェース
IMHExprFunctionPlugin は、すべてのプラグインの基本インターフェースである IMHPlugin を継承し
ます。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
void DefineFunction( IMHExprFunctionDef FunctionDef )
このメソッドは、式関数の定義を取得するために Dialogue Server によって呼び出されます。
FunctionDef は、関数の定義を含むオブジェクトです。
variant EvaluateFunction( IMHCustomer Customer, safearray of variant Params )
このプラグインが実行される際には、この実行メソッドが呼び出されます。
Customer は、関数の実行対象となる顧客を表すオブジェクトです。
Params は、パラメータ値の配列です。 配列は、COM データ型 safearray です (Microsoft COM のド
キュメントを参照してください)。
EvaluateFunction メソッドは、プロパティ FunctionDef.ResultType で設定されたデータ型の値を返
す必要があります。
注意: スクリプトとして実装された場合は、パラメータの交換が簡単になります。 スクリプトでは
パラメータを、EvaluateFunction メソッドの個別の入力パラメータとして宣言します。
例
「式プラグイン」を参照してください。
IMHGenericPlugin インターフェース
説明
IMHGenericPlugin には、汎用プラグインによって実装されるメソッドが含まれます。
COM ベースのプラグインでは、このインターフェースとその親インターフェースが実装されますが、
スクリプト ベースのプラグインでは、このインターフェースのみが実装されます。
Application
汎用プラグインに含まれるロジックは、IMHGenericPlugin によって実装されます。
216
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
親インターフェース
IMHGenericPlugin は、すべてのプラグインの基本インターフェースである IMHPlugin を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
variant Execute( safearray of variant Params )
このプラグインが実行される際には、この実行メソッドが呼び出されます。
Params は、パラメータ値の配列です。 配列は、COM データ型 safearray です (Microsoft COM のド
キュメントを参照してください)。
Execute メソッドは、任意の型の値を返すことができます。
注意: スクリプトとして実装された場合は、パラメータの交換が簡単になります。 スクリプトでは
パラメータを、Execute メソッドの個別の入力パラメータとして宣言します。 例を参照して
ください。
例
例はありません。
IMHLicenseInfo インターフェース
説明
IMHLicenseInfo は、Dialogue Server ライセンスに関する情報を提供します。
Application
IMHLicenseInfo は、プラグインにおいて、ライセンス保有者の名前など、現在のライセンスのプロパ
ティにアクセスするために使用されます。
親インターフェース
IMHLicenseInfo は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
bool AdvancedEmailTesting
リファレンス ガイド
217
IMHMessage インターフェース
ライセンスに、メール テンプレートに対する詳細なテストのサポートが含まれているかどうかを示
します。 これは、有料サービスです。 読み取り専用です。
bool DemoMode
現在のライセンスがデモ ライセンスであるかどうかを示します。 読み取り専用です。
string Error
現在のライセンスが有効でない場合、この文字列はその理由を示します。 読み取り専用です。
bool InvoiceEmailTestPerInstance
詳細なメール テストが、インスタンス単位で課金されるかどうかを示します。
string LicenseID
インストールのライセンス番号。 読み取り専用です。
bool LicenseValid
ライセンスが有効かどうかを示します。
string OwnerName
ライセンス保有者の名前。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHMessage インターフェース
説明
IMHMessage は、メッセージへのアクセスを提供します。
Application
IMHMessage は、プラグインにおいて、メッセージに対するインターフェースとして使用されます。
メッセージは、単一のメッセージを表します。
親インターフェース
IMHMessage は、基本インターフェースである IMHCustomPluginServices を継承します。
218
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
プロパティ
以下のプロパティがサポートされています。
string ContentText
variant ContentBinary
メッセージ コンテンツが文字列として表されてい メッセージ コンテンツがバイト配列として表され
る場合に、それを含みます。
ている場合に、それを含みます。
注意: メッセージは、プロパティ ContentText、 注意: メッセージは、プロパティ ContentText、
ContentBinary、および MessageUNC のう
ContentBinary、および MessageUNC のう
ちの 1 つだけを使用します。
ちの 1 つだけを使用します。
string Context
メッセージが作成されたコンテキストです。 読み
取り専用です。
注意: この値は、メッセージが単一の顧客のみに
関連付けられている場合のみ有効です。
メッセージが、顧客のセットに関連付けら
れている場合は、これの代わりに
Customers プロパティを使用してくださ
い。
string ControlParams
メッセージのコントロール パラメータを提供しま
す。 これらのパラメータは、"<パラメータ名>=<
パラメータ値<" という形式の文字列に格納されて
います。 パラメータは、改行で区切られます。
string ControlParamValue[ string ParamName ]
単一のコントロール パラメータを提供します。
IMHCustomerContainer Customers
メッセージに関連付けられた顧客を表すオブジェ
クトを提供します。
注
意:
このプロパティは、メッセージが顧客のセッ
トに関連付けられている場合のみ有効です。
メッセージが単一の顧客のみに関連付けら
れている場合は、これの代わりに
CustomerID と Context のプロパティを使用
してください。
string CustomerID
リファレンス ガイド
219
IMHMessage インターフェース
メッセージを関連付ける顧客の ID です。 読み取
り専用です。
注意: この値は、メッセージが単一の顧客のみに
関連付けられている場合のみ有効です。
メッセージが、顧客のセットに関連付けら
れている場合は、これの代わりに
Customers プロパティを使用してくださ
い。
IMHMessageAttachmentList ExtraAttachments
メッセージ自体を Dialogue Server に保存する際
(PostMessage(...) が呼び出されたときなど) に保
存され、メッセージに関連付けられる追加の添付
ファイルのリストを提供します。
bool HasExtraAttachments
メッセージの ExtraAttachments プロパティに、追
加の添付ファイルが保存されているかどうかを示
します。
string MessageIdentifier
メッセージを特定する一意の文字列 (GUID) を含
みます。
注意: MessageIdentifier の値は、メッセージ作成
中、つまり、メッセージがマージされて
データベースに保存される前に、Dialogue
Server によって自動生成されます。
int64 MessageLogID
メッセージの内部 ID (データベース列
MESSAGE_LOG.ML_ID)。
string MessageUNC
メッセージがファイルに保存されている場合に、
メッセージのフル パスとファイル名を含みます。
注意: メッセージは、プロパティ ContentText、
ContentBinary、および MessageUNC のう
ちの 1 つだけを使用します。
string PublicURL
220
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
Customer Web アクセス アプリケーションを使用
してメッセージを表示するための URL を含みま
す。 URL は、MessageIdentifier の値に基づきま
す。 読み取り専用です。
注意: 現バージョンでは、電子メール メッセージ
への URL のみがサポートされています。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHMessageAssembleInfo インターフェース
説明
IMHMessageAssembleInfo は、メッセージのアセンブルに必要な情報を含むオブジェクトへのアクセ
スを提供します。
Application
IMHMessageAttachment は、オプションのインターフェースである IMHCreateMessagePlugin3 を実
装するメッセージ プラグインにおいて使用されます。
親インターフェース
IMHMessageAssembleInfo は、基本インターフェースである IMHCustomPluginServices を継承しま
す。
プロパティ
以下のプロパティがサポートされています。
variant CustomValue1
値を保存するためにメッセージ プラグインが自由に使用することのできるプロパティです。 プラグ
インは通常、PrepareAssembleInfo(..) メソッドが呼び出されたときに、AssembleInfo オブジェクト
を準備する際に、値を保存するためにこのプロパティを使用します。 プラグインは、後の工程で
AssembleMessage(..) が呼び出されたときに、このデータを再利用できます。 詳細については、
IMHCreateMessagePlugin3 を参照してください。
variant CustomValue2
リファレンス ガイド
221
IMHMessageAttachment インターフェース
使用方法と用途は CustomValue1 と同じです。
variant CustomValue3
使用方法と用途は CustomValue1 と同じです。
bool IsContentBinary
メッセージ コンテンツがバイナリ形式であるかどうかを示します。 読み取り専用です。
integer MessageBundleID
メッセージ バンドルの内部 ID です (データベース列 MESSAGE_BUNDLE_LOG.MBL_ID)。 読み取
り専用です。
string MessageFileExtension
このメッセージ タイプのファイルの拡張子 (htm または txt など)。 読み取り専用です。
bool OnePerCustomer
メッセージ バンドルに、顧客ごとに 1 つのメッセージが含まれるか、それともすべての顧客に対し
て 1 つのメッセージが含まれるかを示します。 読み取り専用です。
variant UnassembledContentBinary
コンテンツがアセンブルされていないバンドルの共通バイナリ コンテンツ。 読み取り専用です。
string UnassembledContentText
コンテンツがアセンブルされていないバンドルの共通テキスト コンテンツ。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHMessageAttachment インターフェース
説明
IMHMessageAttachment は、メッセージ添付ファイルを表すオブジェクトへのアクセスを提供します。
Application
IMHMessageAttachment は、プラグインにおいて、メッセージに関連する添付ファイルを管理するた
めに使用されます。
222
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
親インターフェース
IMHMessageAttachment は、基本インターフェースである IMHCustomPluginServices を継承しま
す。
プロパティ
以下のプロパティがサポートされています。
variant ContentBinary
string FileUNC
添付ファイル コンテンツがメモ 添付ファイルが (メモリにキャッ
リにキャッシュされる場合に、 シュされず) ファイルとして保存
それを含みます。
される場合に、そのフル パスと
ファイル名を含みます。
bool IsCachedAttachment
添付ファイル自体が、メモリに
キャッシュされるか、ファイル
に保存されるかを示します。
True の場合は、添付ファイルは
ContentBinary プロパティに格納
され、それ以外の場合は、
FileUNC で指定されたファイル
に保存されます。
メソッド
以下のメソッドがサポートされています。
void LoadFromFile( string FileUNC )
FileUNC で指定されたファイルから添付ファイルを読み込み、メモリにキャッシュします。
void SaveToFile( string FileUNC )
添付ファイルのコピーを FileUNC で指定されたファイルに保存します。 SaveToFile(..) の動作は、
添付ファイルがメモリにキャッシュされているかどうかに左右されません。
例
例はありません。
IMHMessageAttachmentList インターフェース
説明
IMHMessageAttachmentList は、メッセージ添付ファイルのコレクションへのアクセスを提供します。
Application
IMHMessageAttachmentList は、プラグインにおいて、メッセージに関連する添付ファイルを管理す
るために使用されます。
リファレンス ガイド
223
IMHMessageBundle インターフェース
親インターフェース
IMHMessageAttachmentList は、基本インターフェースである IMHCustomPluginServices を継承し
ます。
プロパティ
以下のプロパティがサポートされています。
IMHMessageAttachment Attachment[ integer Index ]
単一のメッセージ添付ファイルを提供します。
Index は、添付ファイルのインデックスです。 インデックス値が 0 の場合は、最初の添付ファイル
を表します。
integer Count
コレクション内の添付ファイルの数です。
メソッド
以下のメソッドがサポートされています。
IMHMessageAttachment AddAttachment( )
新しい添付オブジェクトを作成し、それをコレクションに追加します。
void Clear( )
メッセージ添付ファイルのコレクションをクリアします。
例
例はありません。
IMHMessageBundle インターフェース
説明
IMHMessageBundle は、メッセージ バンドルへのアクセスを提供します。
Application
IMHMessageBundle は、プラグインにおいて、メッセージ バンドルに対するインターフェースとして
使用されます。 メッセージが作成されると、作成されたメッセージのリストを保持するためのメッ
セージ バンドルが作成されます。
224
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
親インターフェース
IMHMessageBundle は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer Count
バンドル内のメッセージ数です。
integer CustDomainID
現在の顧客ドメインの ID です。 メッセージは必ず、1 つの顧客ドメインのコンテキストにおいて作
成されます。 読み取り専用です。
bool IsContentUnassembeled
バンドル内の各メッセージに対して保存されているコンテンツがアセンブルされていないかどうかを
示します。 アセンブルされていない場合は、表示、送信、およびその他の方法で使用する前に、メッ
セージをアセンブルする必要があります。 コンテンツがデータベースに保存されているメッセージ
のみに対して有効です。 IsContentUnassembled は、読み取り専用のプロパティです。
IMHMessage Items[ integer Index ]
バンドル内の単一のメッセージを提供します。
Index は、メッセージのインデックスです。 インデックス値が 0 の場合は、バンドル内の最初のメッ
セージを表します。
integer MessageBundleID
メッセージ バンドルの内部 ID です (データベース列 MESSAGE_BUNDLE_LOG.MBL_ID)。
bool StorageOptionUseTempTables
サーバーで、一時的なデータベース テーブルを使用して、メッセージ生成を最適化してもよいかど
うかを制御します。
variant UnassembledContentBinary
コンテンツがアセンブルされていないバンドルの共通バイナリ コンテンツ。 IsContentUnassembled
が true の場合のみ使用されます。
string UnassembledContentText
コンテンツがアセンブルされていないバンドルの共通テキスト コンテンツ。 IsContentUnassembled
が true の場合のみ使用されます。
IMHUnmergedMessage UnmergedMessage
メッセージの作成に使用される、または使用されたテンプレートまたはベース メッセージを表すオ
ブジェクトを提供します。
リファレンス ガイド
225
IMHMessageUtils インターフェース
メソッド
以下のメソッドがサポートされています。
void AddMessage( IMHMessage Message )
バンドルにメッセージ オブジェクトを追加します。
void Clear( )
バンドル内のすべてのメッセージ オブジェクトをメモリからクリアします。
注意: バンドル内のメッセージが、IMHCustomer.PostMessage(..) または
IMHCustomerContainer.PostMessages(..) の呼び出しによって保存済みである場合は、データ
ベース内の情報は影響を受けません。
例
例はありません。
IMHMessageUtils インターフェース
説明
IMHMessageUtils は、メッセージおよびメッセージ テンプレートへのアクセスを提供します。
Application
IMHMessageUtils は、プラグインにおいて、メッセージやメッセージ テンプレートを処理するために
使用されます。
親インターフェース
IMHMessageUtils は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドがサポートされています。
IMHUnmergedMessage GetMessageTemplate( integer BaseMessageID )
Visual Dialogue のメッセージ テンプレートに対応するメッセージ テンプレート オブジェクトを返し
ます。
226
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
BaseMessageID は、メッセージ テンプレートの一意の ID です。 この ID は、データベース テーブ
ル DOC_BASE_MESSAGE の列 DBM_ID にあります。
IMHUnmergedMessage GetUnmergedMessage( string MessageTypeName, integer CustDomainID
)
Dialogue Admin で定義された 1 つの特定のメッセージ タイプのテンプレート オブジェクトを返しま
す。 返されるオブジェクトは、特定のマスター テンプレートまたはメッセージ テンプレートに基づ
くものではないことに注意してください。
MessageTypeName は、"EMAIL_HTML" などの、メッセージ タイプのテクニカル名です。
CustDomainID は、返されたテンプレート オブジェクトを使用して作成されたメッセージを関連付け
る、顧客ドメインの一意の ID です。
例
例はありません。
IMHOutputChannelInfo インターフェース
説明
IMHOutputChannelInfo は、メッセージ送信時に出力チャネルに関する情報を提供します。
Application
IMHOutputChannelInfo は、メッセージ送信時に出力チャネル プラグインによって使用されます。
親インターフェース
IMHOutputChannelInfo は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string ControlParamValue[ string ParamName ]
Dialogue Admin の出力チャネルに対して設定されているコントロール パラメータの値です。
ParamName は、出力チャネル プラグインによって GetControlParamDefs 関数において定義された
パラメータの名前です。
注意: このプロパティによってアクセス可能なコントロール パラメータ値は、IsMergeParam=False
と定義されているものです。 IsMergeParam=True となっているパラメータは、テンプレート
またはベース メッセージで設定されており、したがって IMHMessage インターフェースに
よってアクセスする必要があります。
リファレンス ガイド
227
IMHOutputChannelPlugin インターフェース
メソッド
以下のメソッドがサポートされています。
void ReportProgressStatus( string StatusText, integer PercentCompleted )
メッセージ送信時に、ステータスと進捗を Dialogue Server に報告します。
StatusText は、現在のステータスを説明する文字列です。
PercentCompleted は、送信の完了率をパーセントで表したものです。 有効な値は、0 ~ 100 の数値
です。
注意: StatusText は、翻訳 (ローカライズ) をサポートします。 翻訳メカニズムは、標準のスクリプ
ト実装のプラグインで使用される内部メカニズムであり、カスタマイズされたプラグインや
アドオン プラグインには適用できません。 IMHDialogServer の Translate(..) メソッドと
TranslateAndFormat(..) メソッドも参照してください。
void ReportProgressStatusFormat( string StatusText, array Params, integer PercentCompleted )
メッセージ送信時に、ステータスと進捗を Dialogue Server に報告します。 StatusText の書式設定が
サポートされている点を除き、上記の ReportProgressStatus(...) と同じです。
StatusText は、現在のステータスを説明する文字列です。
Params は、書式設定時に文字列 (Msg) に挿入する値の配列です。
PercentCompleted は、実行の完了率をパーセントで表したものです。 有効な値は、0 ~ 100 の数値
です。
書式設定の例 (JScript):
ReportProgressStatusFormat("Current status: processing item {0} of {1}", new array(5, 10), 50);
プレースホルダーの {0} と {1} には、Params 配列 (書式設定) からの値が代入され、結果は以下のよ
うになります。
"Current status: processing item 5 of 10"
例
例はありません。
IMHOutputChannelPlugin インターフェース
説明
IMHOutputChannelPlugin には、出力チャネル プラグインによって実装されるメソッドが含まれます。
COM ベースのプラグインでは、このインターフェースとその親インターフェースが実装されますが、
スクリプト ベースのプラグインでは、このインターフェースのみが実装されます。
228
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
Application
チャネルを介してメッセージを電子的に送信するロジックは、IMHOutputChannelPlugin によって実装
されます。
親インターフェース
IMHOutputChannelPlugin は、すべてのプラグインの基本インターフェースである IMHPlugin を継承
します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
void GetControlParamDefs( IMHControlParamDefs ControlParamDefs)
GetControlParamDefs は、メッセージを送信するためにプラグインで必要となるパラメータの定義
を取得するために、Dialogue Server によって呼び出されます。
ControlParamDefs は、定義されるパラメータ セットを表すオブジェクトです。
void SendMessages( IMHOutputChannelInfo OutputChannelInfo, IMHChannelMessageContainer
OutputMessages )
SendMessages は、メッセージを実際に送信するロジックを実装します。 Dialogue Server は、メッ
セージのセットが送信されるときに、SendMessages を呼び出します。
OutputChannelInfo は、メッセージを送信するためにプラグインで必要となる情報を含むオブジェク
トです。
OutputMessages は、メッセージのリストを保持するコンテナ オブジェクトです。 プラグインでは
通常、OutputMessages に含まれるすべてのメッセージに対してループ処理を行い、それらの送信を
試みます。 プラグインは各メッセージに対し、OutputMessages のメソッドを使用して、ステータ
スを Dialogue Server に報告する必要があります。
例
例はありません。
IMHParticipant インターフェース
説明
IMHParticipant は、ダイアログ内の単一の参加顧客へのアクセスを提供します。
リファレンス ガイド
229
IMHParticipant インターフェース
Application
IMHParticipant はブランチ プラグインで使用されます。
親インターフェース
IMHParticipant は、IMHCustomer インターフェースを継承および拡張しています。
プロパティ
以下のプロパティがサポートされています。
int64 ParticipantID
参加顧客の一意の ID です。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
void Accept( )
参加顧客を、実行されているオペレーション内の現在の分岐のターゲット グループに移動します。
void Inactivate( )
参加顧客を非アクティブ化します。 非アクティブ化された参加顧客は、ダイアログにおけるアクティ
ブな参加顧客ではなくなりますが、これらの参加顧客の履歴は、Dialogue Database に保存されたま
まとなります。
例
以下の例は、顧客を走査する方法を示したものです。
function ExecuteBranch(BranchInfo, Participants)
{
..............
//Open the container
Participants.Open("mh_customer_id;Address");
while (! Participants.MemberEof) {
//Do something with the customer
var Street = Participants.Participant.FieldValue("Address.StreetName");
Participants.Participant.SetCategory("NEWSLETTER");
//Move the participant to the to-group of the branch
Participants.Participant.Accept();
//Move to next participants
Participants.NextMember();
}
230
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
..............
}
IMHParticipantContainer インターフェース
説明
IMHParticipantContainer は、ダイアログ参加顧客のセットまたはセレクションへのアクセスを提供し
ます。
Application
IMHParticipantContainer は、ブランチ プラグインで使用され、オペレーションで処理される参加顧客
へのアクセスを提供します。
親インターフェース
IMHParticipantContainer は、IMHCustomerContainer を継承および拡張しています。
プロパティ
以下のプロパティがサポートされています。
IMHParticipant Participant
現在の参加顧客を表すオブジェクトへの参照を返します。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
integer AcceptAll( )
コンテナ内のすべての参加顧客を、分岐のターゲット グループへと移動し、移動した参加顧客の数
を返します。
ソース グループからターゲット グループへと移動する参加顧客は、AcceptAll の前に SelectXXX ま
たは ExcludeXXX メソッドを呼び出すことによって、事前に絞り込まれている場合があります。
integer AcceptBySQL( string SQLName, array Params )
カスタマイズされた SQL ステートメントを使用して、手動で参加顧客をソース グループからター
ゲット グループへと移動する手段を提供します。 SQL ステートメントは、DLG_PARTICIPANT テー
ブルを更新する際に適用されるルールに従う必要があります。
SQLName は、Dialogue Admin の SQL リポジトリに格納された SQL ステートメントの名前です。
Params は、SQL ステートメントにバインドするパラメータ値を含む配列です。
リファレンス ガイド
231
IMHParticipantContainer インターフェース
注意: フィールド DLG_PARTICIPANT.DLG_INTERNAL_ID には、指定された SQL ステートメント
の中の Participants.InternalID と同じ値を設定する必要があります。
警告: Visual Dialogue の [高度な実行] 機能は、AcceptBySQL を使用する場合には動作しません。 こ
れは、このメソッドが標準のオペレーション フレームワークを回避しているためです。
integer AcceptBySQLRaw( string SQLStatement, array Params, string ConnectioName )
AcceptBySQLRaw は、Dialogue Admin の SQL リポジトリに格納された SQL ステートメントを参照
する代わりに、SQL ステートメントそのものを使用することを除き、AcceptBySQL と同じです。
SQLStatement は、実行する SQL です。
Params は、SQL ステートメントにバインドするパラメータ値を含む配列です。
ConnectioName は、Dialogue Admin で定義されたセカンダリ データベースを表す名前です。
ConnectionName に null を設定すると、既定の接続が使用されます。
void ExcludeBySQL( string SQLName, array Params, bool ContextIncluded )
指定された SQL で返されたものを除く、ソース グループのすべての参加顧客を選択するという、コ
ンテナの処理を開始します。
SQLName は、Dialogue Admin の SQL リポジトリに格納された SQL SELECT ステートメントの名
前です。 SELECT ステートメントは、顧客 ID を含む mh_customer_id という名前の列を返す必要が
あります。 オプションとして、コンテキスト値を含む mh_context という名前の列を返すことができ
ます。
Params は、SQL ステートメントにバインドするパラメータ値を含む配列です。
ContextIncluded は、SELECT ステートメントで mh_context 列を返すかどうかを指定します。
void ExcludeBySQLRaw( string SQLStatement, array Params, bool ContextIncluded, string
ConnectioName )
指定された SQL で返されたものを除く、ソース グループのすべての参加顧客を選択するという、コ
ンテナの処理を開始します。
SQLStatement は、SQL SELECT ステートメントです。 SELECT ステートメントは、顧客 ID を含
む mh_customer_id という名前の列を返す必要があります。 オプションとして、コンテキスト値を
含む mh_context という名前の列を返すことができます。
Params は、SQL ステートメントにバインドするパラメータ値を含む配列です。
ContextIncluded は、SELECT ステートメントで mh_context 列を返すかどうかを指定します。
ConnectioName は、Dialogue Admin で定義されたセカンダリ データベースを表す名前です。
ConnectionName に null を設定すると、既定の接続が使用されます。
integer InactivateAll( )
232
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
コンテナ内のすべての参加顧客を非アクティブ化し、非アクティブ化された参加顧客の数を返しま
す。 非アクティブ化された参加顧客は、ダイアログにおけるアクティブな参加顧客ではなくなりま
すが、これらの参加顧客の履歴は、Dialogue Database に保存されたままとなります。
非アクティブ化される参加顧客は、InactivateAll の前に SelectXXX または ExcludeXXX メソッドを
呼び出すことによって、事前に絞り込まれている場合があります。
void SelectByExpression( string FilterExpression, string ContextExpression )
指定された式にマッチする、ソース グループのすべての参加顧客を選択するという、コンテナの処
理を開始します。
FilterExpression は、顧客フィルタ条件を指定する式です。
ContextExpression は、参加顧客のコンテキスト値を定義するオプションの式です。 コンテキストが
使用されていない場合は、ContextExpression に空白の文字列を設定します。
void SelectBySelection( integer SelectionID )
指定されたセレクションのすべての参加顧客を選択するという、コンテナの処理を開始します。
SelectionID は、セレクションの一意の ID です。
void SelectBySQL( string SQLName, array Params, bool ContextIncluded )
指定された SQL で返された、ソース グループのすべての参加顧客を選択するという、コンテナの処
理を開始します。
SQLName は、Dialogue Admin の SQL リポジトリに格納された SQL SELECT ステートメントの名
前です。 SELECT ステートメントは、顧客 ID を含む mh_customer_id という名前の列を返す必要が
あります。 オプションとして、コンテキスト値を含む mh_context という名前の列を返すことができ
ます。
Params は、SQL ステートメントにバインドするパラメータ値を含む配列です。
ContextIncluded は、SELECT ステートメントで mh_context 列を返すかどうかを指定します。
void SelectBySQLRaw( string SQLStatement, array Params, bool ContextIncluded, string
ConnectioName )
指定された SQL で返された、ソース グループのすべての参加顧客を選択するという、コンテナの処
理を開始します。
SQLStatement は、SQL SELECT ステートメントです。 SELECT ステートメントは、顧客 ID を含
む mh_customer_id という名前の列を返す必要があります。 オプションとして、コンテキスト値を
含む mh_context という名前の列を返すことができます。
Params は、SQL ステートメントにバインドするパラメータ値を含む配列です。
ContextIncluded は、SELECT ステートメントで mh_context 列を返すかどうかを指定します。
ConnectioName は、Dialogue Admin で定義されたセカンダリ データベースを表す名前です。
ConnectionName に null を設定すると、既定の接続が使用されます。
リファレンス ガイド
233
IMHPlugin インターフェース
void SelectSingle( string CustomerID, string Context )
ソース グループから単一の参加顧客を選択します。 SelectSingle を使用して複数の参加顧客を選択
するには、メソッドを連続して呼び出します。
CustomerID は、顧客の ID です。
Context は、参加顧客のコンテキストです。 コンテキストが使用されていない場合は、Context に文
字列 "0" を設定します。
例
以下の例は、参加顧客を走査する方法を示したものです。
function ExecuteBranch(BranchInfo, Participants)
{
..............
//Open the container
Participants.Open("mh_customer_id;Address");
while (! Participants.MemberEof) {
//Do something with the participant / customer
//Move to next participants
Participants.NextMember();
}
..............
}
IMHPlugin インターフェース
説明
IMHPlugin は、すべての COM ベースのプラグインの基本インターフェースです。 COM オブジェクト
として記述されたすべてのプラグインは、このインターフェースを実装しなければなりません。 スク
リプト ベースのプラグインでは、このインターフェースのメソッドの実装を無視する必要がありま
す。
Application
IMHPlugin には、プラグインを初期化するために Dialogue Server によって呼び出されるメソッドが含
まれます。
親インターフェース
IMHPlugin は、COM の基本インターフェースである IUnknown を継承します。
234
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドが実装されています。
void InitializePlugin( IMHDialogServerServices DialogServer )
InitializePlugin は、COM オブジェクト (プラグイン) を読み込んだ後、プラグインの他のメソッドが
呼び出される前に、Dialogue Server によって呼び出されます。
DialogServer は、その他のプロパティやメソッドをサポートするオブジェクトへの参照です。 プラ
グインでは、後で他のメソッドで使用するためにこの参照を保持しておく必要があります。
注意: DialogServer オブジェクトは、スクリプトとして実装されたプラグインに対しては自動的に
使用可能となります。
例
例はありません。
IMHQryAlternative インターフェース
説明
IMHQryAlternative は、アンケート内の質問の 1 つの選択肢に関する情報を提供します (IMHQryQuestion
と IMHQuestionnaire を参照してください)。
Application
IMHQryAlternative は、プラグインにおいてアンケートにアクセスするために使用されます。
親インターフェース
IMHQryAlternative は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string Caption
選択肢の表題またはタイトルです。 読み取り専用です。
string DataType
リファレンス ガイド
235
IMHQryQuestion インターフェース
この選択肢の回答のデータ型。 データ型の種類については、「アンケートのデータ型」を参照して
ください。
integer ID
選択肢の一意の ID です。 読み取り専用です。 対応するデータベース列は
QRY_ALTERNATIVE.QQA_ID です。
string Key
選択肢のキーです。 選択肢のキーは、質問内で一意です。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHQryQuestion インターフェース
説明
IMHQryQuestion はアンケート内の 1 つの質問に関する情報を提供します (IMHQuestionnaire を参照
してください)。
Application
IMHQryQuestion は、プラグインにおいてアンケートにアクセスするために使用されます。
親インターフェース
IMHQryQuestion は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer AlternativeCount
質問の選択肢の総数。
IMHQryAlternative Alternatives[ variant KeyOrIndex ]
質問の選択肢を提供します。 選択肢は、例えば、多選択質問で使用されます。
KeyOrIndex は、選択肢キー (string)、または選択肢のインデックス (integer) のいずれかです。 イン
デックスは 0 から開始します。最初の選択肢のインデックスは 0 です。
236
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
string Caption
質問の表題またはタイトルです。 読み取り専用です。
string DataType
このアンケートの回答のデータ型。 データ型の種類については、「アンケートのデータ型」を参照
してください。
integer ID
質問の一意の ID です。 読み取り専用です。 対応するデータベース列は QRY_QUESTION.QQU_ID
です。
string Key
質問のキーです。 質問のキーは、アンケート内で一意です。 読み取り専用です。
string QuestionType
質問のタイプです。 読み取り専用です。
QuestionType がとり得る値は以下のとおりです。
値
説明
単純タンジュン
テキストや日付など、標準の質問です。
multi_options
回答者は、一連の選択肢から 1 つ以上のオプションを選択します。
ランク付け
回答者は、一連の選択肢に順序を付けます。
評価
回答者は、スコアリング値を使用して、一連の選択肢を相対的に評価します。
boolean SingleChoice
質問タイプ 'multi_options' に対し、1 つの値を選択するか、複数の値を選択するかを示す True また
は False の値です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
リファレンス ガイド
237
IMHQrySection インターフェース
IMHQrySection インターフェース
説明
IMHQrySection はアンケート内の 1 つのセクションに関する情報を提供します (IMHQuestionnaire を
参照してください)。
Application
IMHQrySection は、プラグインにおいてアンケートにアクセスするために使用されます。
親インターフェース
IMHQrySection は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string Caption
セクションの表題またはタイトルです。 読み取り専用です。
integer ID
セクションの一意の ID です。 読み取り専用です。 対応するデータベース列は QRY_SECTION.QS_ID
です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHQuestionnaire インターフェース
説明
IMHQuestionnaire は、アンケートに関する情報を提供します。
Application
IMHQuestionnaire は、プラグインにおいてアンケートにアクセスするために使用されます。
238
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
親インターフェース
IMHQuestionnaire は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
variant CustDomainID
アンケートの使用対象となる顧客ドメインの一意の ID。
注意: この値は、SurveyType が 'identified' に設定されている場合のみ使用され、アンケートの使用
は指定された顧客ドメインに限定されます。
integer ID
アンケートの一意の ID です。 読み取り専用です。
string Name
アンケートの名前。 読み取り専用です。
integer QuestionCount
アンケート内の質問の総数。
IMHQryQuestion Questions[ variant KeyOrIndex ]
アンケート内の質問を提供します。
KeyOrIndex は、質問キー (string)、または質問のインデックス (integer) のいずれかです。 インデッ
クスは 0 から開始します。最初の質問のインデックスは 0 です。
string SurveyType
このアンケートを使用する調査のタイプ。 読み取り専用です。
SurveyType がとり得る値は以下のとおりです。
値
説明
identified
既知の顧客のみがこのアンケートに回答できま
す。 回答フォームは必ず、顧客ドメイン内の顧
客に関連付けられます。
anonymous
匿名の回答者のみがこのアンケートに回答できま
す。 回答フォームは、顧客ドメイン内の顧客に
関連付けられません。
mixed
'identified' と 'anonymous' の両方の調査をサポー
トします。
リファレンス ガイド
239
IMHQuestionnaireUtils インターフェース
integer SectionCount
アンケート内のセクションの総数。
IMHQrySection Sections[ integer Index ]
アンケート内のセクションを提供します。
Index はセクションのインデックスで、最初のセクションのインデックスは 0 です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHQuestionnaireUtils インターフェース
説明
IMHQuestionnaireUtils は、アンケートおよび回答フォームへのアクセスを提供します。
Application
IMHQuestionnaireUtils は、プラグインにおいて、アンケートおよび回答フォームにアクセスするため
に使用されます。
親インターフェース
IMHQuestionnaireUtils は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドがサポートされています。
IMHAnswerFormList GetAnonymousAnswerForms( integer QuestionnaireID, bool OnlyUnprocessed,
integer MaxCount )
匿名の回答フォームのリストを返します。
QuestionnaireID は、アンケートの一意の ID です。
240
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
OnlyUnprocessed は、処理済みとマーク付けされていない回答フォームのみを返す場合に指定しま
す。 回答フォームの MarkAsProcessed( ) メソッドを呼び出すことにより、その回答フォームに処理
済みとマーク付けできます (IMHAnswerForm を参照してください)。
MaxCount は取得する回答フォームの最大数です。 MaxRows に -1 を設定すると、その他の条件を
満たすすべての回答フォームが返されます。
IMHAnswerForm GetAnswerForm( int64 AnswerFormID )
回答フォームを表すオブジェクトを返します。
AnswerFormID は、回答フォームの一意の ID で、データベース列 QRY_ANSWER_FORM.QAF_ID
と同じです。
IMHAnswerForm GetAnswerFormByCustomer( integer QuestionnaireID, integer CustDomainID,
string CustomerID, string Context )
指定された顧客とコンテキストに関連する回答フォームを表すオブジェクトを返します。
QuestionnaireID は、アンケートの一意の ID です。
CustDomainID は、顧客が所属する顧客ドメインの ID です。
CustomerID は、アンケートに回答した顧客の一意の ID です。
Context は、顧客がアンケートに回答したコンテキストです。 Context は、ダイアログ内において、
同じ顧客 ID を持つ複数の参加顧客を区別するために使用します。
IMHAnswerFormList GetAnswerFormsBySQL( string SQLName, array Params, integer MaxCount
)
指定された SQL SELECT ステートメントによって返される回答フォーム ID に対応する回答フォー
ムのリストを返します。
SQLName は、使用する SELECT ステートメントを定義する SQL リポジトリの中の項目の名前で
す。 SELECT ステートメントは、最初の列に回答フォーム ID を含む行を返す必要があります。
Params は、SQL ステートメントのパラメータ値 (データベース ホスト変数) を含む配列です。
MaxCount は取得する回答フォームの最大数です。 MaxRows に -1 を設定すると、SQL ステートメ
ントに対応するすべての回答フォームが返されます。
IMHAnswerFormList GetAnswerFormsBySQLRaw( string SQLStatement, array Params, string
ConnectionName, integer MaxCount )
SQL ステートメントが、 SQL リポジトリを参照するのではなく、メソッド呼び出し自体で指定され
ることを除き、GetAnswerFormBySQL( ) と同じです。
SQLStatement は、使用する SQL SELECT ステートメントです。
IMHAnswerFormList GetIdentifiedAnswerForms( integer QuestionnaireID, bool OnlyUnprocessed,
integer MaxCount )
特定された回答フォームのリストを返します。
リファレンス ガイド
241
IMHReportEngine インターフェース
QuestionnaireID は、アンケートの一意の ID です。
OnlyUnprocessed は、処理済みとマーク付けされていない回答フォームのみを返す場合に指定しま
す。 回答フォームの MarkAsProcessed( ) メソッドを呼び出すことにより、その回答フォームに処理
済みとマーク付けできます (IMHAnswerForm を参照してください)。
MaxCount は取得する回答フォームの最大数です。 MaxRows に -1 を設定すると、その他の条件を
満たすすべての回答フォームが返されます。
IMHAnswerFormList GetIdentifiedAnswerFormsEx( integer QuestionnaireID, bool OnlyUnprocessed,
bool IncludeComplete, bool IncludeUncomplete, integer MaxCount )
特定された回答フォームのリストを返します。
QuestionnaireID は、アンケートの一意の ID です。
OnlyUnprocessed は、処理済みとマーク付けされていない回答フォームのみを返す場合に指定しま
す。 回答フォームの MarkAsProcessed( ) メソッドを呼び出すことにより、その回答フォームに処理
済みとマーク付けできます (IMHAnswerForm を参照してください)。
IncludeComplete は、完了とマーク付けされている回答フォームのみを返す場合に指定します。
IncludeIncomplete は、完了とマーク付けされていない回答フォームのみを返す場合に指定します。
注意: IncludeComplete と IncludeIncomplete の両方に false を設定することはできません。
MaxCount は取得する回答フォームの最大数です。 MaxRows に -1 を設定すると、その他の条件を
満たすすべての回答フォームが返されます。
IMHQuestionnaire GetQuestionnaire( integer QuestionnaireID )
特定のアンケートを表すオブジェクトを返します。
QuestionnaireID は、返されるアンケートの一意の ID です。
例
例はありません。
IMHReportEngine インターフェース
説明
IMHReportEngine インターフェースは、Dialogue Server におけるレポート機能をサポートします。
Application
IMHReportEngine は、DialogServer オブジェクトにおいて ReportEngine プロパティによってサポー
トされています。
242
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
親インターフェース
IMHReportEngine は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
サポートされるプロパティはありません。
メソッド
以下のメソッドがサポートされています。
integer GenerateArchivedReport( integer ReportTemplateID, string Params, string ReportName )
レポートを生成し、それをデータベース内のレポート アーカイブに保存します。 保存されたアーカ
イブ化レポートの一意の ID を返します。
ReportTemplateID は、レポート テンプレートの一意の ID です。
Params は、レポート生成時に使用するパラメータのセットを含む XML ドキュメントです。 レポー
ト テンプレートには、パラメータのセットを指定する必要のあるものとないものがあります。
ReportName は、アーカイブ内のレポートに付ける名前です。
注意: 特定のドキュメント フォーマットでレポートを生成した結果を取得するには、
GetArchivedReport(..) を使用します。
string GenerateArchivedReportEx( integer ReportTemplateID, IMHReportParameterList Params,
string ReportName )
Params の型が異なることを除き、GenerateArchivedReport(..) と同じです。
Params は、レポート生成時に使用するパラメータ値と演算子を含むパラメータのリストです。
注意: 特定のテンプレートのパラメータのリストを取得するには、IMHReportTemplate の
GetParameterList(..) を呼び出します。
string GenerateReport( integer ReportTemplateID, string Params, integer FormatIndex )
指定されたフォーマットでレポートを生成し、その結果を XML ドキュメントとして返します。
ReportTemplateID は、レポート テンプレートの一意の ID です。
Params は、レポート生成時に使用するパラメータのセットを含む XML ドキュメントです。 レポー
ト テンプレートには、パラメータのセットを指定する必要のあるものとないものがあります。
FormatIndex は、返されるレポートに対して希望するドキュメント フォーマットを指定する番号で
す。 フォーマット定義の一覧については、「レポート フォーマット」を参照してください。
string GenerateReportEx( integer ReportTemplateID, IMHReportParameterList Params, integer
FormatIndex )
Params の型が異なることを除き、GenerateReport(..) と同じです。
リファレンス ガイド
243
IMHReportEngine インターフェース
Params は、レポート生成時に使用するパラメータ値と演算子を含むパラメータのリストです。
注意: 特定のテンプレートのパラメータのリストを取得するには、IMHReportTemplate の
GetParameterList(..) を呼び出します。
void GenerateReportUNC( integer ReportTemplateID, string Params, integer FormatIndex, string
ReportUNC )
指定されたフォーマットでレポートを生成し、それをファイルに保存します。
ReportTemplateID は、レポート テンプレートの一意の ID です。
Params は、レポート生成時に使用するパラメータのセットを含む XML ドキュメントです。 レポー
ト テンプレートには、パラメータのセットを指定する必要のあるものとないものがあります。
FormatIndex は、返されるレポートに対して希望するドキュメント フォーマットを指定する番号で
す。 フォーマット定義の一覧については、「レポート フォーマット」を参照してください。
ReportUNC は、ターゲット レポート ファイルのフル パスとファイル名です。
注意: メイン レポート ファイルのみがディスクに保存されます。つまり、複数のファイルを生成す
るレポート フォーマットはサポートされていません。
string GenerateReportUNCEx( integer ReportTemplateID, IMHReportParameterList Params, integer
FormatIndex, string ReportUNC )
Params の型が異なることを除き、GenerateReportUNC(..) と同じです。
Params は、レポート生成時に使用するパラメータ値と演算子を含むパラメータのリストです。
注意: 特定のテンプレートのパラメータのリストを取得するには、IMHReportTemplate の
GetParameterList(..) を呼び出します。
string GetArchivedReport( integer ReportArchiveID, integer FormatIndex )
指定されたフォーマットのアーカイブ化レポートを XML ドキュメントとして返します。
ReportArchiveID は、アーカイブ化されたレポートの一意の ID です。
FormatIndex は、返されるレポートに対して希望するドキュメント フォーマットを指定する番号で
す。 フォーマット定義の一覧については、「レポート フォーマット」を参照してください。
void GetArchivedReportUNC( integer ReportArchiveID, integer FormatIndex, string ReportUNC )
アーカイブ化されたレポートを、指定されたフォーマットでファイルに保存します。
ReportArchiveID は、アーカイブ化されたレポートの一意の ID です。
FormatIndex は、レポートに対して希望するドキュメント フォーマットを指定する番号です。 フォー
マット番号は、GetReportDeviceTypes(..) を呼び出すことによって取得できます。
ReportUNC は、ターゲット レポート ファイルのフル パスとファイル名です。
244
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
注意: メイン レポート ファイルのみがディスクに保存されます。つまり、複数のファイルを生成す
るレポート フォーマットはサポートされていません。
string GetReportParamSchema( string ServerSession )
GenerateReport(..) と GenerateArchivedReport(..) を呼び出す際のパラメータ値を指定するために使
用する XML のスキーマを返します。
例
例はありません。
IMHReportFormat インターフェース
説明
IMHReportFormat は、レポート出力フォーマットに関する情報を提供します。
Application
IMHReportParameterFormat は、プラグインにおいて、レポートを生成および処理する際に使用され
ます。
親インターフェース
IMHReportFormat は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string Description
Description は、フォーマットを説明する文字列です。
. 読み取り専用です。
string FileExtention
FileExtention は、レポート フォーマットのファイルに使用される拡張子です。 読み取り専用です。
integer FormatIndex
レポート フォーマットを特定する整数です。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
リファレンス ガイド
245
IMHReportParameter インターフェース
例
例はありません。
IMHReportParameter インターフェース
説明
IMHReportParameter は、レポート パラメータを提供します。
Application
IMHReportParameter は、プラグインにおいて、レポートを生成および処理する際に使用されます。
親インターフェース
IMHReportParameter は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
string Datatype
パラメータのデータ型です。 データ型の一覧については、「データ型」を参照してください。 読み
取り専用です。
string Operator
Operator は、パラメータ内で使用される <= などの比較演算子です。
string ParamName
ParamName は、パラメータ名です。 読み取り専用です。
bool Required
パラメータの値が必須であるかどうかを表します。 必須でない場合は、Value に null を設定できま
す。 読み取り専用です。
string SystemType
パラメータがシステム パラメータ タイプに関連付けられている場合、SystemType には、システム
パラメータ タイプの名前が含まれます。 それ以外の場合は、SystemType は空白の文字列になりま
す。 読み取り専用です。
variant Value
Value は、パラメータに代入されている値です。 Value のデータ型は、Datatype で指定された型と
一致する必要があります。
246
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHReportParameterList インターフェース
説明
IMHReportParameterList は、レポート パラメータのリストを提供します。
Application
IMHReportParameterList は、プラグインにおいて、レポートを生成および処理する際に使用されま
す。
親インターフェース
IMHReportParameterList は、基本インターフェースである IMHCustomPluginServices を継承しま
す。
プロパティ
以下のプロパティがサポートされています。
integer Count
Count は、リスト内のパラメータ数です。 読み取り専用です。
IMHReportParameter Parameter[ variant NameOrIndex ]
リスト内の 1 つのパラメータを提供します。
NameOrIndex は、パラメータ名 (string)、またはリストにおけるパラメータのインデックス (integer)
のいずれかです。 インデックスは 0 から開始します。最初のパラメータのインデックスは 0 です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
リファレンス ガイド
247
IMHReportTemplate インターフェース
IMHReportTemplate インターフェース
説明
IMHReportTemplate は、レポート テンプレートに関する情報を提供します。
Application
IMHReportTemplate は、プラグインにおいてレポート テンプレートにアクセスするために使用されま
す。
親インターフェース
IMHReportTemplate は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer ID
レポート テンプレートの一意の ID です。 読み取り専用です。
string Name
Name は、レポート テンプレートの名前です。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
IMHReportParameterList GetParameterList( )
テンプレートに対して定義されているレポート パラメータのリストを返します。 返されるリストは、
パラメータ値や演算子の設定に使用でき、その後、IMHReportEngine のメソッドを使用してレポー
トを生成する際のパラメータとして使用できます。
string GetUniqueFileUNC( string NamePrefix, integer FormatIndex )
接頭辞と特定のレポート フォーマットに基づく一意のファイル名を返します。 ファイル名は、Dialogue
Server インスタンス内で一意となります。
NamePrefix は、生成されるファイル名の先頭部分を含む文字列です。 例えば、レポート テンプレー
トの名前にすることができます。
FormatIndex は、レポートのドキュメント フォーマットを指定する番号です。 返されるファイル名
の拡張子を決定するために使用します。 フォーマット定義の一覧については、「レポート フォーマッ
ト」を参照してください。
248
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
例
例はありません。
IMHSelection インターフェース
説明
IMHSelection は、セレクションに関する情報を提供します。
Application
IMHSelection は、プラグインにおいてセレクションにアクセスするために使用されます。
親インターフェース
IMHSelection は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
integer ID
セレクションの一意の ID です。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHSQLDef インターフェース
説明
IMHSQLDef は、Dialogue Admin の SQL リポジトリに格納された SQL ステートメントを提供します。
Application
IMHSQLDef は、プラグインにおいて、保存された SQL ステートメントに対するインターフェースと
して使用されます。
親インターフェース
IMHSQLDef は、基本インターフェースである IMHCustomPluginServices を継承します。
リファレンス ガイド
249
IMHSystemUser インターフェース
プロパティ
以下のプロパティがサポートされています。
integer ID
SQL ステートメントの一意の ID です。 読み取り専用です。
string Name
Name は、 SQL リポジトリ内の SQL ステートメントの名前です。 読み取り専用です。
string SQLStatement
保存された SQL ステートメントを文字列として提供します。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
integer Execute( array Params )
SQL を実行し、影響を受けた行の数を返します。
Params は、SQL ステートメントにバインドするパラメータ値の配列です。
object Open( array Params )
保存された SQL ステートメントを使用して ADO データセットを開き、返します。
Params は、SQL ステートメントにバインドするパラメータ値の配列です。
例
例はありません。
IMHSystemUser インターフェース
説明
IMHSystemUser は、現在のシステム ユーザーに関する情報を提供します。 つまり、プラグインが実
行しているユーザー コンテキストのことです。
Application
IMHSystemUser は、プラグインにおいて、ユーザー名やメール アドレスなど、システム ユーザーの
プロパティにアクセスするために使用されます。
親インターフェース
IMHSystemUser は、基本インターフェースである IMHCustomPluginServices を継承します。
250
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
プロパティ
以下のプロパティがサポートされています。
string Cellular
ユーザーの携帯電話番号。 これは、Dialogue Admin で新しいシステム ユーザーを定義する際のオプ
ションのフィールドです。 読み取り専用です。
string Description
ユーザーの説明で、オプションです。 読み取り専用です。
string DisplayName
ユーザーのフルネーム。 通常は、表示に使用します。 読み取り専用です。
string Email
ユーザーのメール アドレス。 これは、Dialogue Admin で新しいシステム ユーザーを定義する際の
オプションのフィールドです。 読み取り専用です。
string UserName
ユーザーのユーザー名 (ログイン名)。 読み取り専用です。
メソッド
サポートされるメソッドはありません。
例
例はありません。
IMHUnmergedMessage インターフェース
説明
IMHUnmergedMessage は、メッセージ テンプレートまたはベース メッセージへのアクセスを提供し
ます。
Application
IMHUnmergedMessage は、プラグインにおいて、テンプレートまたはベース メッセージへのインター
フェースとして使用されます。 メッセージ プラグインがメッセージを作成するために必要なテンプ
レート データを提供します。
親インターフェース
IMHUnmergedMessage は、基本インターフェースである IMHCustomPluginServices を継承します。
リファレンス ガイド
251
IMHUnmergedMessage インターフェース
プロパティ
以下のプロパティがサポートされています。
string ActivityDesc
メッセージを作成する際に投稿される活動に関する説明を参照および設定できます。
integer ActivityTypeID
投稿される活動タイプの ID です。 読み取り専用です。
string ActivityTypeName
投稿される活動タイプのテクニカル名です。 読み取り専用です。
string ActualFileEncoding
ActualFileEncoding は、メッセージをファイルに保存する際に使用するエンコーディングの名前で
す。 この設定はテキスト ファイルにのみ適用されます。
bool AllowOptimizeStorage
このテンプレートから作成されたメッセージのストレージの最適化を許可するかどうかを示します。
false の場合は、メッセージの最終的なコンテンツも保存されます。 このオプションは、メッセージ
コンテンツがデータベースに保存される場合にのみ適用されます。
integer BaseMessageID
Visual Dialogue で定義されたメッセージ テンプレート (またはベース メッセージ) の ID。 現在のテ
ンプレート オブジェクトがそのようなメッセージ テンプレートに関連付けられていない場合は、こ
の値は null になります。 読み取り専用です。
string ControlParams
指定されたコントロール パラメータを提供します。 これらのパラメータは、"<パラメータ名>=<パ
ラメータ値<" という形式の文字列に格納されています。 パラメータは、改行で区切られます。
string ControlParamValue[ string ParamName ]
単一のコントロール パラメータを提供します。
integer CustDomainID
メッセージ テンプレートに関連付けられている顧客ドメインの ID。 読み取り専用です。
string DataFields
DataFields は、メッセージの作成に必要な、(顧客ドメイン定義からの) 顧客データ グループおよび
フィールドがセミコロンで区切られたリストです。
string DefaultFileEncoding
252
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
DefaultFileEncoding は、Dialogue Admin で設定された、現在のメッセージ タイプに使用されるファ
イル エンコーディングの名前です。 この設定はテキスト ファイルにのみ適用されます。 読み取り
専用です。
bool IsContentBinary
作成されるメッセージ コンテンツがバイナリ形式であるかどうかを示します。 バイナリ形式である
場合は、バイナリ エンコーディングを適用しない限り、ストレージやデータ交換においてこれを文
字列として表すことはできません。 IsContentBinary は、Dialogue Admin において、定義された各
メッセージ タイプに対して設定されます。
string MessageFileExtension
このメッセージ テンプレートから作成されるメッセージ ファイルの拡張子 (htm や txt など)。 読み
取り専用です。
string MessageName
作成するメッセージの名前を参照または設定できます。
integer MessageTypeID
使用されるメッセージ タイプの ID。 読み取り専用です。
string MessageTypeName
使用されるメッセージ タイプのテクニカル名。 読み取り専用です。
bool OnePerCustomer
顧客ごとに 1 つのメッセージを作成するべきか (電子メールなど)、それともすべての顧客を含む 1
つのメッセージを作成するか (エクスポート ファイルなど) を示すブール値。
integer OutputChannelID
作成されたメッセージの送信用として設定された出力チャネルの ID。 出力チャネルが 1 つも定義さ
れていない場合は、この値は NULL になります。 読み取り専用です。
variant PluginDefID
メッセージの作成に使用される メッセージ プラグインの ID (整数) です。 このメッセージ タイプに
関連付けられたメッセージ プラグインがない場合は、PluginDefID の値は NULL になります。 読み
取り専用です。 PluginDefID は、システム内部で使用されます。
integer Priority
Priority は、電子メールや SMS メッセージなど、電子的に送信されるメッセージの優先度を制御し
ます。 Priority は、次の 5 つの値をとり得ます。
値
値の名前
リファレンス ガイド
説明
253
IMHUnmergedMessage インターフェース
-2
低
最も低い優先度。 この優先度のメッセージは、送信キューにおいて他のす
べてのメッセージが処理されてから送信されます。
-1
Medium low
やや低い優先度。
0
標準
既定のメッセージ優先度。
1
Medium high やや高い優先度。
2
高
最も高い優先度。 この優先度のメッセージは、送信キューにおける他のす
べてのメッセージよりも先に送信されます。
bool StoreAsFile
メッセージをファイルとして保存するか、または Dialogue Database に保存するかを示すブール値。
すべてのメッセージ プラグインが両方のモードをサポートしているとは限りません。
string SQLConnectionID
UsesSQL が true の場合は、SqlConnectionID には、SQLStatement に格納されたステートメントの
実行時に使用するデータベース接続の ID が含まれます。 読み取り専用です。
string SQLStatement
UsesSQL が true の場合、SQLStatement には、メッセージをマージする際にソースとして使用され
る SELECT ステートメントが含まれます。 読み取り専用です。
string TargetPathUNC
メッセージがファイルとして保存される場合 (doc ファイルなど)、TargetPathUNC は、メッセージ
コンテンツが格納されるネットワーク上の場所を指します。 この場所は、メッセージに関連する添
付ファイル (電子メールの添付ファイルなど) を保存するために使用される基本の場所でもあります。
string TemplateContent
テキスト ベースの (バイナリ形式でない) メッセージ テンプレートまたはベース メッセージのコンテ
ンツを提供します。
string TemplateUNC
MS Word テンプレート ドキュメントなど、テンプレートまたはベース メッセージ ファイルへのフ
ル パスとファイル名を含む UNC。
bool UseOutbox
メッセージを作成した後に、メッセージ アウトボックスに送信するかどうかを示します。
警告: UseOutbox に false が設定されている場合は、SMS や電子メール メッセージなどの電子メッ
セージは、作成後直ちに送信用のキューに投入されます。
bool UseSQL
254
Portrait Dialogue 6.0 SP1
第 10 章 : プラグイン API
このテンプレートからのメッセージをマージする場合に使用するデータ ソースとして、カスタマイ
ズされた SQL ステートメントが定義されているかどうかを示します。 このようなカスタム SQL ス
テートメントは、Visual Dialogue においてメッセージ テンプレートを定義する際に、定義できます。
読み取り専用です。
メソッド
以下のメソッドがサポートされています。
string GetNextFilename( )
次に作成されるメッセージを保存する際に使用する、フル パスのファイル名を返します。 このメソッ
ドを使用すると、Dialogue Server で使用されるフォルダ構造に合った、正しいパスを持つ一意のファ
イル名が保証されます。
例
例はありません。
IMHWebPublicFile インターフェース
説明
IMHWebPublicFile は、Web に発行済みの単一のファイルに関する情報を提供します。
Application
IMHWebPublicFile は、DialogServer オブジェクトのメソッドを使用して、発行済みファイルを処理
する場合に使用されます。
親インターフェース
IMHWebPublicFile は、基本インターフェースである IMHCustomPluginServices を継承します。
プロパティ
以下のプロパティがサポートされています。
variant ContentBinary
バイト配列として表されたファイルの内容を含みます。 読み取り専用です。
string ContentID
ContentID は、ファイルを一意に識別する文字列 (GUID) です。 読み取り専用です。
string Description
リファレンス ガイド
255
IMHWebPublicFile インターフェース
Description は、発行済みファイルを説明する文字列です。 読み取り専用です。
string FileName
Filename は、パス情報を除く、ファイル名と拡張子部分を含むファイルの名前です。 例 : mylogo.jpg。
FileName は、読み取り専用です。
float Size
ファイルのサイズをバイト数で返します。 読み取り専用です。
string URL
Web からファイルにアクセスするための URL です。 URL は、Web Utilities アプリケーションを指
します。 読み取り専用です。
メソッド
以下のメソッドがサポートされています。
void SaveToFile( string FileUNC )
ファイルの内容をユーザーが指定するファイルに保存します。 保存されるのは、ContentBinary プロ
パティの内容です。
FileUNC は、作成するファイルのフル パスとファイル名です。
例
例はありません。
256
Portrait Dialogue 6.0 SP1
Dialogue Server API
•
•
•
•
•
•
•
•
•
•
•
•
•
Dialogue Server API . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258
Activity API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
Dialogue API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263
Customer API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
Generic API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
Message API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
Emarketing Mail API . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
Quest API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298
Report API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
Selection API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307
System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310
Telemarketing API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314
Web Utils API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318
11
Dialogue Server API
Dialogue Server API
はじめに
Dialogue Server には、Dialogue Server API と呼ばれるパブリック API があります。 この API には、
Microsoft COM 標準および Web Services を介した SOAP 操作としての両方でアクセスが可能です。
API の種類
以下の Web サービスと COM コンポーネントが定義されており、それぞれに一連の適切な SOAP 操
作が含まれています。 これらの SOAP 操作のほとんどは、各操作の項に記されているように、HTTP
POST および GET メソッドによってもアクセス可能です。
• System API
システム レベルの操作を含む API。
• Customer API
顧客情報にアクセスし、それを変更するための API。
• Dialogue API
ダイアログや参加顧客にアクセスし、それらを変更するための API。
• Emarketing Mail API
メッセージ デザイナ テンプレートの処理に使用される API。
• Message API
顧客メッセージに対するアクセス、作成、更新のための API。
• Quest API
アンケートや回答フォームにアクセスし、それらを更新するための API。
• Activity API
活動やタスクにアクセスし、それらを操作するための API。
• Telemarketing API
テレマーケティング プロジェクトおよびテレマーケティング参加顧客にアクセスし、それらを操作
するための API。 テレマーケティング統計へのアクセスを含みます。
• Report API
レポートをアクセスおよび生成するための API。
• Web Utils API
メール リンク追跡や、Web に発行済みのファイルへのアクセスといった、Web ユーティリティ機
能にアクセスするための API。
258
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
• Generic API
汎用オブジェクトのアクセスおよび操作のための API。 例としては、Dialogue Admin で定義された
SQL クエリやデータセットによるデータベースへのアクセスや、Dialogue Server プラグインの実行
があります。
• Selection API
セレクションのアクセスおよび管理のための API。
ServerSession パラメータ
Dialogue Server API のほとんどのメソッドは、ServerSession というパラメータをとります。 このパ
ラメータは、現在のサーバー セッションを特定する文字列です。 このサーバー セッション文字列は、
System API の Login メソッドを有効なユーザー名とパスワードで呼び出すことによって取得します。
API のテスト
SOAP 操作や HTTP POST および GET メソッドの説明が記載された自動生成の Web ページを、Web
サービス アプリケーションそのものから参照できます。 これらのページには、操作をテストするため
のメカニズムについても記載されています。 これらのページを開くには、次のアドレスに移動しま
す。
http://<Dialogue Server API Web サーバー>/<API インストール ディレクトリ>
例 : http://MyWebServer/MHDialogServerAPI
Activity API
概要
Activity API は、タスクに関連するデータにアクセスするための一連のメソッドを提供します。
COM コンポーネント
COM コンポーネントである MHDialogServer.MHActivityAPI は、IMHActivityAPI インターフェースに
よって Activity API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
void DeleteActivity( string ServerSession, int64 ActivityID )
指定された活動を削除します。
ActivityID は、活動の一意の ID です。
リファレンス ガイド
259
Activity API
string GetActivity( string ServerSession, int64 ActivityID )
活動情報を含む XML ドキュメントを返します。
ActivityID は、活動の一意の ID です。
string GetActivitySchema( string ServerSession )
GetActivity によって返される XML ドキュメントのスキーマ部分のみを含む XML ドキュメントを返
します。
string GetActivityTypes( string ServerSession )
Dialogue Admin で定義されたすべての活動タイプを含む XML ドキュメントを返します。
string GetTaskFUOptions( string ServerSession )
タスクのフォローアップ日/時刻を設定するための、よく使用されるオプションのリストを含む XML
ドキュメントを返します。
注意: GetTaskFUOptions は、Customer View によって使用され、戻り値は、Dialogue Server デー
タベースのデータベース テーブル TASK_FU_OPTION に物理的に保存されます。
string GetTasksByUser( string ServerSession, datetime FUIntervalBegin, bool FUIntervalBeginSet,
Set datetime FUIntervalEnd, bool FUIntervalEndSet, bool IncludeUndone, bool IncludeDone, integer
MaxCount )
現在のユーザーにフォローアップのために割り当てられたタスクのリストを含む XML ドキュメント
を返します。 指定されたパラメータに対応するタスクが返されます。
FUIntervalBegin は、フォローアップ期間 (この期間のタスクが返されます) の開始日 (と時刻) です。
FUIntervalBeginSet に true ではなく false を設定すると、FUIntervalBegin の値を無視することを意
味します。
FUIntervalEnd は、フォローアップ期間 (この期間のタスクが返されます) の終了日 (と時刻) です。
FUIntervalEndSet に true ではなく false を設定すると、FUIntervalEnd の値を無視することを意味し
ます。
IncludeUndone は、まだ完了していないタスクを含めるかどうかを指定します。
IncludeDone は、既に完了したタスクを含めるかどうかを指定します。
MaxCount は、返されるタスクの最大数です。 MaxCount に -1 を設定すると、指定されたその他の
条件を満たすすべてのタスクが返されます。
注意: IncludeUndone と IncludeDone の両方に false を設定すると、空のタスク リストが返されま
す。
string GetTaskSummaryByUser( string ServerSession )
予定タスクの要約数を含む XML ドキュメントを返します。 この数は、現在のユーザーによってフォ
ローアップされる予定のタスクに対応します。
260
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
string GetTaskViewIntervals( string ServerSession )
タスクを表示するときに、よく使用される閲覧間隔のリストを含む XML ドキュメントを返します。
間隔は、タスクのフォローアップ日/時刻に関連します。
注意: GetTaskViewIntervals は、Customer View によって使用され、戻り値は、Dialogue Server
データベースのデータベース テーブル TASK_VIEW_INTERVAL に物理的に保存されます。
string GetWorkGroups( string ServerSession )
すべての定義済みのタスク作業グループを含む XML ドキュメントを返します。 タスク作業グループ
は、Dialogue のタスク オーガナイザで定義されます。
int64 InsertActivity( string ServerSession, string ActivityDataXML )
新しい活動を、変更を保存するために Dialogue Server に送信します。 新しい活動の一意の ID が返
されます。
ActivityDataXML は、変更された活動データを含む XML ドキュメントです。 この XML ドキュメン
トは、Microsoft ADO.NET で定義されている XML Diffgram の形式に従います。 GetActivitySchema
で取得した XML が、ADO データセットに読み込まれ、このデータセットが変更される場合は、
ADO.NET は InsertActivity に送信する Diffgram を自動的に作成できます。
void MarkTaskAsDone( string ServerSession, int64 TaskID )
特定のタスクを、現在の日時で完了とマーク付けします。
TaskID は、タスクの一意の ID です。 タスクは活動のサブタイプであるため、TaskID は対応する活
動の ID と同じです。
int64 PostActivity( string ServerSession, integer CustDomainID, string CustomerID, string Context,
string ActivityTypeName, string ChannelTypeName, string Direction, string Description, string Note,
datetime Timestamp )
活動を投稿し、新しい活動の一意の ID を返します。 活動とは、顧客との対話のことです。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は新しい活動に関連する顧客の ID で
す。
Context は、顧客のコンテキスト値です。 コンテキストが必要でない場合は、Context に文字列 "0"
を設定します。
ActivityTypeName は、Dialogue Admin で定義された活動タイプのテクニカル名です。
ChannelTypeName は、Dialogue Admin で定義されたチャネル タイプのテクニカル名です。 チャネ
ル タイプは、活動または対話において、どのようにコミュニケーションが行われたかを表すもので
す。
Direction は、活動を開始したのが顧客であるか、あるいは「自社組織」または「システム」である
かを表します。 Direction がとり得る値は以下のとおりです。
• Direction = "IN" のとき、開始したのは顧客です。
リファレンス ガイド
261
Activity API
• Direction = "OUT" のとき、開始したのは「自社組織」または「システム」です。
Description は短い説明フィールドですが、Note には長さの制約なく説明を記述できます。
Timestamp は、活動が発生した日時です。
int64 PostTask( string ServerSession, integer CustDomainID, string CustomerID, string Context, string
ActivityTypeName, string ChannelTypeName, string Direction, string Description, string Note, datetime
Timestamp, datetime FollowUpDateTime, integer TaskWorkGroupID, string FollowUpUserName )
タスクを投稿し、新しい活動の一意の ID を返します。 タスクとは、特定の期間内にフォローアップ
される活動のことです。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は新しい活動に関連する顧客の ID で
す。
Context は、顧客のコンテキスト値です。 コンテキストが必要でない場合は、Context に文字列 "0"
を設定します。
ActivityTypeName は、Dialogue Admin で定義された活動タイプのテクニカル名です。
ChannelTypeName は、Dialogue Admin で定義されたチャネル タイプのテクニカル名です。 チャネ
ル タイプは、活動または対話において、どのようにコミュニケーションが行われたかを表すもので
す。
Direction は、活動を開始したのが顧客であるか、あるいは「自社組織」または「システム」である
かを表します。 Direction がとり得る値は以下のとおりです。
• Direction = "IN" のとき、開始したのは顧客です。
• Direction = "OUT" のとき、開始したのは「自社組織」または「システム」です。
Description は短い説明フィールドですが、Note には長さの制約なく説明を記述できます。
Timestamp は、活動が発生した日時です。
FollowUpDateTime は、タスクのフォローアップを実施する期日を定める日付と時刻の値です。
TaskWorkGroup は、タスクのフォローアップを担当する作業グループを表すオプションの値です。
作業グループを指定しない場合は、このパラメータに -1 を設定します。
FollowUpUserName は、タスクのフォローアップを担当するユーザーの名前です。 担当ユーザーを
指定しない場合は、このパラメータに空の文字列を設定します。
void SetTaskReadFlag( string ServerSession, int64 TaskID, bool Read)
タスクには、タスクのフォローアップを担当するユーザーがこのタスクを開いたり確認したりしたか
を示す「読み取りフラグ」があります。 このメソッドは、このフラグを設定およびクリアします。
TaskID は、タスクの一意の ID です。 タスクは活動のサブタイプであるため、TaskID は対応する活
動の ID と同じです。
262
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
Read が true の場合は、タスクに、現在の日時で「閲覧済み」のマーク付けをします。 Read が false
の場合は、タスクの「読み取りフラグ」をクリアします (これによってタスクは、「未閲覧」とマー
ク付けされます)。
void UpdateActivity( string ServerSession, int64 ActivityID, string ActivityDataXML )
活動の更新情報を、変更を保存するために Dialogue Server に送信します。
ActivityID は、活動の一意の ID です。
ActivityDataXML は、変更された活動データを含む XML ドキュメントです。 この XML ドキュメン
トは、Microsoft ADO.NET で定義されている XML Diffgram の形式に従います。 GetActivity で取得し
た XML が、ADO データセットに読み込まれ、このデータセットが変更される場合は、ADO.NET は
UpdateActivity に送信する Diffgram を自動的に作成できます。
注意: ActivityID は、理論的には冗長な情報です。 しかし、現バージョンでは、クライアントと
Dialogue Server の間の変更の伝達を容易にするために、これが必要になっています。
例
以下の例では、Dialogue Server から、タスクの要約の概要を含む XML ドキュメントを取得していま
す。 この例は、JScript を使用しています。
..............
//Connect to the DialogServer
SystemAPI = new ActiveXObject("MHDialogServer.MHSystemAPI");
//Log in
var InstanceName = "MHProduction";
var SessionKey = SystemAPI.Login(InstanceName, "williams", "mypassword",
"MH Test");
var ServerSession = SessionKey + "@" + InstanceName;
//Now get the task summary for the current user
ActivityAPI = new ActiveXObject("MHDialogServer.MHActivityAPI");
var TaskSummaryXML = ActivityAPI.GetTaskSummaryByUser(ServerSession);
//Log out
SystemAPI.Logout(ServerSession);
..............
Dialogue API
概要
Dialogue API は、ダイアログや参加顧客に関連するデータにアクセスするための一連のメソッドを提
供します。
リファレンス ガイド
263
Dialogue API
COM コンポーネント
COM コンポーネントである MHDialogServer.MHDialogAPI は、インターフェース IMHDialogAPI に
よって Dialogue API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
void ClearDialog( string ServerSession, integer DialogID, bool DeleteActivities, bool DeleteMessages
)
ダイアログのすべての実行データを削除することによって、ダイアログをクリアします。
DialogID はダイアログを指定する ID です。
DeleteActivities は、ダイアログ内のダイアログ参加顧客に関連付けられた活動を削除するかどうか
を指定します。
DeleteMessages は、ダイアログ内のダイアログ参加顧客に関連付けられたメッセージを削除するか
どうかを指定します。
integer CreateDialogFromDialogTemplate( string ServerSession, integer DialogTemplateID, string
DialogSetupUpdateXML, bool EnsureUniqueName )
ダイアログ テンプレートに基づく新しいダイアログを作成し、新しいダイアログのダイアログ設定
を更新します。
DialogTemplateID は、新しいダイアログのベースとなるダイアログ テンプレートの ID です。
DialogSetupUpdateXML は、更新されたダイアログ設定データを含む XML ドキュメントです。 この
XML ドキュメントのスキーマは、GetDialogSetupUpdateSchema(..) メソッドを呼び出すことによっ
て取得できます。
EnsureUniqueName は、一意性の維持の観点から、作成中にダイアログ名を変更してもよいかどう
かを判断します。
integer CreateDialogFromExistingDialog( string ServerSession, integer DialogID, string
DialogSetupUpdateXML, bool EnsureUniqueName )
既存のダイアログに基づく新しいダイアログを作成し、新しいダイアログのダイアログ設定を更新し
ます。 新しいダイアログは、既存ダイアログのコピーになります。 コピーされるのはダイアログ定
義のみで、ダイアログ実行データはコピーされません。
DialogID は、新しいダイアログのベースとなる既存ダイアログの ID です。
DialogSetupUpdateXML は、更新されたダイアログ設定データを含む XML ドキュメントです。 この
XML ドキュメントのスキーマは、GetDialogSetupUpdateSchema(..) メソッドを呼び出すことによっ
て取得できます。
EnsureUniqueName は、一意性の維持の観点から、作成中にダイアログ名を変更してもよいかどう
かを判断します。
264
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
void DeleteDialog( string ServerSession, integer DialogID, bool DeleteActivities, bool DeleteMessages
)
定義と実行データの両方を含めて、ダイアログを削除します。
DialogID はダイアログを指定する ID です。
DeleteActivities は、ダイアログ内のダイアログ参加顧客に関連付けられた活動を削除するかどうか
を指定します。
DeleteMessages は、ダイアログ内のダイアログ参加顧客に関連付けられたメッセージを削除するか
どうかを指定します。
string EvaluateExpression( string ServerSession, integer CustDomainID, int64 ParticipantID, string
Expression )
指定した式の結果の値を含む XML ドキュメントを返します。
CustDomainID は顧客ドメインを指定する IDで、ParticipantID は式を評価する対象となるダイアログ
参加顧客の ID です。
Expression は評価する式です。
bool EvaluateExpressionBool( string ServerSession, integer CustDomainID, int64 ParticipantID,
string Expression )
ブール式を評価し、その結果を返します。
CustDomainID は顧客ドメインを指定する IDで、ParticipantID は式を評価する対象となるダイアログ
参加顧客の ID です。
Expression は評価する式です。 ブール型以外の式を指定すると、エラーが生じます。
string EvaluateExpressionString( string ServerSession, integer CustDomainID, int64 ParticipantID,
string Expression )
式を評価し、その結果を返します。
CustDomainID は顧客ドメインを指定する IDで、ParticipantID は式を評価する対象となるダイアログ
参加顧客の ID です。
Expression は評価する式です。 データ グループまたは配列を返す式を指定すると、例外が発生しま
す。 このような式を評価するには、EvaluateExpression メソッドを使用します。
integer ExecuteOperation( string ServerSession, integer OperationID, integer MaxCount )
ダイアログ内のオペレーションを実行し、オペレーションによって移動された参加顧客の総数を返し
ます。
OperationID は、ダイアログ オペレーション の一意の ID です。
MaxCount は、オペレーションによって移動される参加顧客の最大数です。 このパラメータに -1 を
設定すると、オペレーションのソース グループのすべての参加顧客を対象に、処理が行われます。
リファレンス ガイド
265
Dialogue API
void ExecuteOperationAsynchronous( string ServerSession, integer OperationID, integer MaxCount
)
ダイアログ内のオペレーションを非同期に実行開始します。 メソッドは直ちにリターンし、オペレー
ションはバックグラウンドで実行を開始します。
OperationID は、ダイアログ オペレーション の一意の ID です。
MaxCount は、オペレーションによって移動される参加顧客の最大数です。 このパラメータに -1 を
設定すると、オペレーションのソース グループのすべての参加顧客を対象に、処理が行われます。
string GetChannelTypes( string ServerSession )
Dialogue Admin で設定されたすべてのチャネル タイプを含む XML ドキュメントを返します。
string GetCustomerContexts( string ServerSession, integer CustDomainID, string CustomerID, integer
MaxCount )
特定の顧客が参加するコンテキストを含む XML ドキュメントを返します。 ダイアログにおいて、顧
客は特定のコンテキスト内で参加している場合があります。 顧客が同一のダイアログに複数回参加
する場合は、異なるコンテキスト値が必要になります。
CustDomainID は、顧客ドメインを指定する ID です。
CustomerID は、ダイアログ参加顧客として挿入する顧客の一意の ID です。
MaxCount は、取得するコンテキストの最大数です。 最も新しいコンテキストから順に返されます。
すべてのコンテキストを取得するには、このパラメータに -1 を設定します。
string GetDialog( string ServerSession, integer DialogID )
すべてのグループやガイド付き設定情報を含む、ダイアログ定義に関する詳細情報を返します。
DialogID はダイアログを指定する ID です。
string GetDialogDetails( string ServerSession, integer DialogID )
ダイアログに関する詳細情報を含む XML ドキュメントを返します。 この情報は、ダイアログ内のす
べてのグループのリストを含む、ダイアログ デザインに関するものです。 ダイアログ実行に関連す
るデータは含まれません (GetDialogHistory を参照してください)。
DialogID はダイアログを指定する ID です。
注意: GetDialog() メソッドを使用してください。 GetDialogDetails() は、下位互換性を維持するた
めに提供されているものです。
string GetDialogHistory( string ServerSession, integer DialogID )
ダイアログに関する詳細実行情報を含む XML ドキュメントを返します。
DialogID はダイアログを指定する ID です。
string GetDialogs( string ServerSession )
266
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
定義済みのすべてのダイアログを含む XML ドキュメントを返します。 返される XML ドキュメント
において、ダイアログは、顧客ドメインによって分類されています。
string GetDialogsEx( string ServerSession )
拡張情報が定義されたすべてのダイアログを含む XML ドキュメントを返します。
string GetDialogTemplate( string ServerSession, integer DialogTemplateID )
すべてのグループやガイド付き設定情報を含む、ダイアログ テンプレートに関する詳細情報を返し
ます。
DialogTemplateID はダイアログ テンプレートを指定する ID です。
string GetDialogTemplates( string ServerSession )
定義済みのすべてのダイアログ テンプレートを含む XML ドキュメントを返します。 返される XML
ドキュメントにおいて、ダイアログ テンプレートは、顧客ドメインによって分類されています。
string GetDialogSetupUpdateSchema( string ServerSession )
ダイアログ設定を更新するために使用する XML の定義を返します。
variant GetFirstDialogExecution( string ServerSession, integer DialogID )
ダイアログ内のいずれかのオペレーションが最初に実行されたときを返します。 オペレーションが
まったく実行されていない場合は NULL を返します。
DialogID はダイアログを指定する ID です。
integer GetParticipantCount( string ServerSession, integer CustDomainID, integer GroupID, string
FilterExpression )
指定した条件を満たす参加顧客の数を返します。
CustDomainID は、顧客ドメインを指定する ID です。
GroupID は、参加顧客を含むダイアログ グループの ID です。
FilterExpression は、カウントする参加顧客のセレクションのフィルタまたは絞り込みを行うために
使用する式です。
string GetParticipantHistory( string ServerSession, int64 ParticipantID )
ダイアログ参加顧客に関する詳細実行情報を含む XML ドキュメントを返します。
ParticipantID は参加顧客を指定する ID です。
string GetParticipants( string ServerSession, integer CustDomainID, integer GroupID, string
FilterExpression, string DataFields, integer MaxCount )
参加顧客とその顧客データを含む XML ドキュメントを返します。
CustDomainID は、顧客ドメインを指定する ID です。
GroupID は、参加顧客を含むダイアログ グループの ID です。
リファレンス ガイド
267
Dialogue API
FilterExpression は、返される参加顧客のセレクションのフィルタまたは絞り込みを行うために使用
する式です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
MaxCount は、返される参加顧客の最大数です。 MaxCount を -1 に設定すると、すべての参加顧客
が返されます。
string GetParticipantSchema( string ServerSession, integer CustDomainID, string DataFields )
参加顧客データのスキーマのみを含む XML ドキュメントを返します。 GetParticipants と
GetSingleParticipant によって返される XML ドキュメントと同じですが、データを含みません。
CustDomainID は、顧客ドメインを指定する ID です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
string GetParticipantSelection( string ServerSession, integer GroupID, integer SelectionID, string
DataFields, integer MaxCount )
参加顧客とその顧客データを含む XML ドキュメントを返します。 返される参加顧客は必ず、指定さ
れたダイアログ グループに所属し、かつ、指定されたセレクションに含まれている必要があります。
GroupID は、参加顧客を含むダイアログ グループの ID です。
SelectionID はセレクションの ID です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
MaxCount は、返される参加顧客の最大数です。 MaxCount を -1 に設定すると、すべての参加顧客
が返されます。
integer GetParticipantSelectionCount( string ServerSession, integer GroupID, integer SelectionID )
指定した条件を満たす参加顧客の数を返します。 カウントされる参加顧客は必ず、指定されたダイ
アログ グループに所属し、かつ、指定されたセレクションに含まれている必要があります。
GroupID は、参加顧客を含むダイアログ グループの ID です。
SelectionID はセレクションの ID です。
string GetParticipantSelectionSorted( string ServerSession, integer GroupID, integer SelectionID,
string DataFields, string SortFields, integer MaxCount )
ソート順が指定可能であることを除き、GetParticipantSelection(...) と同じです。
SortFields は、返される顧客をソートするために使用される、セミコロンで区切られた顧客ドメイン
フィールドのリストです。
注意: ソート フィールドの前に ~ を付けることによって、降順でのソートを指定できます。
268
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
string GetParticipantsSorted( string ServerSession, integer CustDomainID, integer GroupID, string
FilterExpression, string DataFields, string SortFields, integer MaxCount )
ソート順が指定可能であることを除き、GetParticipants(...) と同じです。
SortFields は、返される顧客をソートするために使用される、セミコロンで区切られた顧客ドメイン
フィールドのリストです。
注意: ソート フィールドの前に ~ を付けることによって、降順でのソートを指定できます。
string GetSingleParticipant( string ServerSession, int64 ParticipantID, string DataFields )
単一の参加顧客とその顧客データを含む XML ドキュメントを返します。
CustDomainID は、顧客ドメインを指定する ID です。
ParticipantID は、返される参加顧客の ID です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
void InactivateParticipant( string ServerSession, integer ParticipantID )
ダイアログ内の参加顧客を非アクティブ化します。 非アクティブ化とは、その参加顧客がその後、
そのダイアログに参加しないことを意味します。 ただし、参加顧客のレコードとすべての参加顧客
履歴は、Dialogue Database に保存されたままとなります。
ParticipantID は、非アクティブ化する参加顧客の ID です。
bool InsertParticipant( string ServerSession, integer CustDomainID, string CustomerID, string Context,
integer GroupID )
ダイアログ内の指定されたグループに新しい参加顧客を挿入します。
新しい参加顧客が正常に挿入できた場合に TRUE を返します。 (コンテキスト付きの) 顧客が既にダ
イアログに所属する場合は、FALSE を返します。
CustDomainID は、顧客ドメインを指定する ID です。
CustomerID は、ダイアログ参加顧客として挿入する顧客の一意の ID です。
Context は、一部のダイアログで使用されるコンテキスト文字列値です。 コンテキストが使用されて
いない場合は、文字列値 '0' を設定します。
GroupID は、新しい参加顧客を挿入するダイアログ グループの ID です。
注意: Visual Dialogue において [参加顧客の手動の挿入を許可] と設定されているグループのみ、
InsertParticipant の呼び出しで指定できます。
string ParticipantLogin( string ServerSession, integer CustDomainID, integer DialogID, int64
ParticipantID, string Password )
リファレンス ガイド
269
Dialogue API
ParticipantID を使用して顧客を認証します (LoginID を使用する MHCustomerAPI.CustomerLogin と
は異なります)。 認証に成功した場合は、認証された顧客の顧客 ID が返され、それ以外の場合は例
外が発生します。
CustDomainID は、顧客ドメインを指定する ID です。
DialogID は、顧客が参加しなければならないダイアログです。 DialogID に -1 を設定すると、ログイ
ンが有効になっているダイアログからの任意の Participant ID が、認証に成功します。
ParticipantID は、認証する参加顧客の ID です。
Password は、Dialogue Admin の顧客ドメインで定義された値です。 Password は、顧客ドメインの
任意のフィールドとするか、または自動生成された値を取得できます。
注意: ParticipantLogin() は、顧客ログインが有効になっているダイアログに対してのみ使用できま
す。 この設定は、Visual Dialogue の [ダイアログのプロパティ] で行います。
string ParticipantLoginEx( string ServerSession, integer CustDomainID, integer DialogID, int64
ParticipantID, string Password, bool PasswordRequired )
ParticipantLoginEx は、パスワードが省略可能である点を除き、ParticipantLogin と同じです。
PasswordRequired は、サーバーがパスワードを認証する必要があるかどうかを指定します。
void PostAnonymousEvent( string ServerSession, string EventTypeName, string Description )
指定された顧客に関連付けられていないシステム イベントを投稿します。 システム イベントは
Dialogue Admin で定義され、Dialogue Server は、システム イベントの発生時にアクションを実行す
るように設定できます。 たとえば、あるオペレーションを 1 つ以上のダイアログで実行できます。
EventTypeName は Dialogue Admin で定義されているイベント タイプのテクニカル名です。
Description はイベントの説明で、オプションです。
void PostEvent( string ServerSession, string EventTypeName, string Description, integer CustDomainID,
string CustomerID, string Context )
指定された顧客に関連付けられているシステム イベントを投稿します。 システム イベントは Dialogue
Admin で定義され、Dialogue Server は、システム イベントの発生時にアクションを実行するように
設定できます。 たとえば、あるオペレーションを 1 つ以上のダイアログで実行できます。
EventTypeName は Dialogue Admin で定義されているイベント タイプのテクニカル名です。
Description はイベントの説明で、オプションです。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は新しいイベントに関連する顧客の ID
です。
Context は、顧客のコンテキスト値です。 コンテキストが必要でない場合は、Context に文字列 "0"
を設定します。
void UpdateDialogSetup( string ServerSession, integer DialogID, string DialogSetupUpdateXML, bool
EnsureUniqueName )
270
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
ダイアログの設定データを更新します。
DialogID は、変更された設定データまたは新規セットアップ データによって更新するダイアログの
ID です。
DialogSetupUpdateXML は、更新されたダイアログ設定データを含む XML ドキュメントです。 この
XML ドキュメントのスキーマは、GetDialogSetupUpdateSchema(..) メソッドを呼び出すことによっ
て取得できます。
EnsureUniqueName は、一意性の維持の観点から、更新中にダイアログ名を変更してもよいかどう
かを判断します。
例
以下の例では、Dialogue Server から参加顧客情報を取得しています。 この例は、JScript を使用して
います。
..............
//Connect to the DialogServer
SystemAPI = new ActiveXObject("MHDialogServer.MHSystemAPI");
//Log in
var InstanceName = "MHProduction";
var SessionKey = SystemAPI.Login(InstanceName, "admin", "ringo1", "MH
Test");
var ServerSession = SessionKey + "@" + InstanceName;
//Now get some participants
DialogAPI = new ActiveXObject("MHDialogServer.MHDialogAPI");
var ParticipantXML = DialogAPI.GetParticipants(ServerSession, 1000, 5040,
"", "LastName;FirstName", -1);
//Log out (we got what we wanted)
SystemAPI.Logout(ServerSession);
..............
Customer API
概要
Customer API は、顧客に関連するデータにアクセスするための一連のメソッドを提供します。
COM コンポーネント
COM コンポーネントである MHDialogServer.MHCustomerAPI は、インターフェース IMHCustomerAPI
によって Customer API を実装します。
リファレンス ガイド
271
Customer API
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
bool CheckExpressionSyntax( string ServerSession, integer CustDomainID, string Expression )
式をコンパイルおよび分析することによって、その構文をチェックします。 結果として得られる
XML には、構文に関するコメントのリストを含むチェック結果が含まれます。
CustDomainID は、顧客ドメインを指定する ID です。
Expression は、構文チェックの対象となる式です。
string CheckForDuplicates( string ServerSession, integer CustDomainID, string CustomerDataXML,
string DataFields, integer MaxCount)
顧客ドメインに重複がないかをチェックし、重複の可能性がある顧客のリストを XML として返しま
す。 チェックは、パラメータ CustomerDataXML によってこのメソッドに引き渡された顧客情報に
対して行われます。
CustDomainID は、重複をチェックする顧客ドメインを指定する ID です。
CustomerDataXML 顧客データを含む XML ドキュメントです。 これらのデータは、重複チェックの
条件として使用されます。つまり、Dialogue Server は、これらのデータにマッチする重複顧客を顧
客データベースで検索することになります。 XML ドキュメントの形式は、GetSingleCustomer(...)
メソッドによって返される形式と同じです。
DataFields は、返される XML に含まれる、(顧客ドメイン定義からの) 顧客データ グループおよび
フィールドがセミコロンで区切られたリストです。
MaxCount は、返される重複候補の最大数です。 MaxCount に -1 を設定すると、すべての重複候補
を返します。
string CustomerLogin( string ServerSession, integer CustDomainID, string LoginID, string Password
)
顧客を認証します。 認証に成功した場合は、認証済みユーザーの顧客 ID が返され、それ以外の場合
は例外が発生します。
CustDomainID は、顧客ドメインを指定する ID です。
LoginID と Password は、Dialogue Admin において顧客ドメインの下で定義されている値です。
LoginID は、顧客 ID やメール アドレスなど、顧客ドメインにおける任意の一意のフィールドと同じ
値を設定できます。Password は、顧客ドメインの任意のフィールドとするか、または自動生成され
た値を取得できます。
注意: 認証中に、指定された LoginID に対して複数の顧客が見つかった場合は、失敗を示す例外が
発生します。
string CustomerLoginEx( string ServerSession, integer CustDomainID, string LoginID, string Password,
bool PasswordRequired )
CustomerLoginEx は、パスワードが省略可能である点を除き、CustomerLogin と同じです。
272
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
PasswordRequired は、サーバーがパスワードを認証する必要があるかどうかを指定します。
void DeleteSingleCustomer( string ServerSession, integer CustDomainID, string CustomerID )
単一の顧客を削除します。 ダイアログへの参加、回答フォーム、メッセージなど、Dialogue Database
内の顧客に関する情報も削除されます。
CustDomainID は顧客ドメインを指定する ID で、CustomerID は削除する顧客の ID です。
注意: 指定された顧客ドメインに顧客が存在しない場合は、エラーが生じます。
string EvaluateExpression( string ServerSession, integer CustDomainID, string CustomerID, string
Expression )
指定した式の結果の値を含む XML ドキュメントを返します。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は式を評価する対象となる顧客の ID
です。
Expression は評価する式です。
bool EvaluateExpressionBool( string ServerSession, integer CustDomainID, string CustomerID, string
Expression )
ブール式を評価し、その結果を返します。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は式を評価する対象となる顧客の ID
です。
Expression は評価する式です。 ブール型以外の式を指定すると、エラーが生じます。
string EvaluateExpressionString( string ServerSession, integer CustDomainID, string CustomerID,
string Expression )
式を評価し、その結果を返します。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は式を評価する対象となる顧客の ID
です。
Expression は評価する式です。 データ グループまたは配列を返す式を指定すると、例外が発生しま
す。 このような式を評価するには、EvaluateExpression メソッドを使用します。
string GetCategories( string ServerSession, integer CustDomainID )
Dialogue Admin で定義されたすべてのカテゴリを含む XML ドキュメントを返します。
string GetCustDomain( string ServerSession, integer CustDomainID )
単一の顧客ドメインを説明する XML ドキュメントを返します。
CustDomainID は、顧客ドメインを指定する ID です。
注意: すべての顧客ドメインの定義を返すには、GetCustDomains(..) メソッドを使用します。
リファレンス ガイド
273
Customer API
string GetCustDomainList( string ServerSession )
定義されているすべての顧客ドメインのシンプルなリストを含む XML ドキュメントを返します。
string GetCustDomains( string ServerSession )
定義されているすべての顧客ドメインを含み、説明する XML ドキュメントを返します。 無効になっ
ている顧客ドメインは含まれません。
注意: 単一の顧客ドメインの定義を返すには、GetCustDomain(..) メソッドを使用します。
string GetCustomerByLoginID( string ServerSession, integer CustDomainID, string LoginID, string
DataFields )
指定された条件を満たす顧客データを持つ単一の顧客を含む XML ドキュメントを返します。 Login
ID に基づく顧客が返されます。 Dialogue Admin 内の指定されたドメインで、顧客ログインが有効に
なっている必要があります。
CustDomainID は顧客ドメインを指定する ID で、Login ID は、Dialogue Admin で設定された、取得
する顧客のログイン ID です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
integer GetCustomerCount( string ServerSession, integer CustDomainID, string FilterExpression,
string ContextExpression )
指定した条件を満たす顧客の数を返します。
CustDomainID は、顧客ドメインを指定する ID です。
FilterExpression は、カウントする顧客のセレクションのフィルタまたは絞り込みを行うために使用
する式です。
ContextExpression が指定された場合は、カウントする前に顧客にコンテキスト値を割り当てます。
ContextExpression は、文字列値を返す式です。文字列の配列を返す場合もあります。 文字列の配列
である場合は、単一の顧客に対して複数のコンテキスト値が存在する可能性があるため、その顧客が
各コンテキスト値に対して 1 回、合計で複数回含まれる (カウントされる) 場合があります。
string GetCustomers( string ServerSession, integer CustDomainID, string FilterExpression, string
ContextExpression, string DataFields, integer MaxCount )
指定された条件を満たす顧客データを持つ顧客を含む XML ドキュメントを返します。
CustDomainID は、顧客ドメインを指定する ID です。
FilterExpression は、返される顧客のセレクションのフィルタまたは絞り込みを行うために使用する
式です。
ContextExpression が指定された場合は、返される XML ドキュメントの中のフィールド mh_context
に値を代入します。 ContextExpression は、文字列値を返す式です。文字列の配列を返す場合もあり
274
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
ます。 文字列の配列である場合は、単一の顧客に対して複数のコンテキスト値が存在する可能性が
あるため、その顧客が各コンテキスト値に対して 1 回、合計で複数回含まれる場合があります。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
MaxCount は、返される顧客の最大数です。 MaxCount を -1 に設定すると、指定したその他の条件
を満たす顧客がすべて返されます。
string GetCustomerSchema( string ServerSession, integer CustDomainID, string DataFields )
顧客データのスキーマのみを含む XML ドキュメントを返します。 GetCustomers と
GetSingleCustomers によって返される XML ドキュメントと同じですが、データを含みません。
CustDomainID は、顧客ドメインを指定する ID です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
string GetCustomerSelection( string ServerSession, integer SelectionID, string DataFields, integer
MaxCount )
指定されたセレクションの顧客を含む XML ドキュメントを返します。
SelectionID はセレクションの ID です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
MaxCount は、返される顧客の最大数です。 MaxCount を -1 に設定すると、指定したその他の条件
を満たす顧客がすべて返されます。
integer GetCustomerSelectionCount( string ServerSession, integer SelectionID )
指定したセレクション内の顧客の数を返します。
SelectionID はセレクションの ID です。
string GetCustomerSelectionSorted( string ServerSession, integer SelectionID, string DataFields,
string SortFields, integer MaxCount )
ソート順が指定可能であることを除き、GetCustomerSelection(...) と同じです。
SortFields は、返される顧客をソートするために使用される、セミコロンで区切られた顧客ドメイン
フィールドのリストです。
注意: ソート フィールドの前に ~ を付けることによって、降順でのソートを指定できます。
string GetCustomersSorted( string ServerSession, integer CustDomainID, string FilterExpression,
string ContextExpression, string DataFields, string SortOrder, integer MaxCount )
ソート順が指定可能であることを除き、GetCustomers(...) と同じです。
リファレンス ガイド
275
Customer API
SortFields は、返される顧客をソートするために使用される、セミコロンで区切られた顧客ドメイン
フィールドのリストです。
注意: ソート フィールドの前に ~ を付けることによって、降順でのソートを指定できます。
string GetExpressionFunctions( string ServerSession )
式で使用可能なすべての関数が分類ごとに説明されている XML ドキュメントを返します。 このド
キュメントは、Dialogue Server によって自動生成されます。
注意: 現バージョンでは、式関数の標準セットが用意されています。 ただし、将来のバージョンで
は、カスタマイズされた関数の機能が実装される予定です。
string GetLookupDatarow( string ServerSession, integer CustDomainID, string LookupSourceName,
string KeyFieldname, variant KeyValue )
検索データを含む XML ドキュメントを返します。 このメソッドは 1 つの行のみを返しますが、
GetLookupDataset は検索ソース内のすべての行を返します。
CustDomainID は、検索ソースが定義されている顧客ドメインです。
LookupSourceName は、検索ソースの名前です。 キー
KeyFieldname は、返す行を見つけるために使用する、検索ソースのフィールド名です。
KeyValue は、返される検索行の KeyFieldname のフィールド値です。
string GetLookupDataset( string ServerSession, integer CustDomainID, string LookupSourceName
)
検索データを含む XML ドキュメントを返します。 このメソッドは検索ソースのすべての行を返しま
すが、GetLookupDatarow は 1 行のみを返します。
CustDomainID は、検索ソースが定義されている顧客ドメインです。
LookupSourceName は、検索ソースの名前です。
string GetSelections( string ServerSession )
すべての顧客ドメインに対するすべての定義済みの顧客セレクションを含む XML ドキュメントを返
します。 このメソッドは非推奨です。 代わりに Selection API の GetSelections メソッドを使用し
てください。
string GetSingleCustomer( string ServerSession, integer CustDomainID, string CustomerID, string
DataFields )
指定された条件を満たす顧客データを持つ単一の顧客を含む XML ドキュメントを返します。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は取得する顧客の ID です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
276
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
void PostEvent( string ServerSession, string EventTypeName, string Description, integer CustDomainID,
string CustomerID, string Context )
システム イベントを投稿します。 システム イベントは Dialogue Admin で定義され、Dialogue Server
は、システム イベントの発生時にアクションを実行するように設定できます。 たとえば、あるオペ
レーションを 1 つ以上のダイアログで実行できます。
EventTypeName は Dialogue Admin で定義されているイベント タイプのテクニカル名です。
Description はイベントの説明で、オプションです。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は新しいイベントに関連する顧客の ID
です。
Context は、顧客のコンテキスト値です。 コンテキストが必要でない場合は、Context に文字列 "0"
を設定します。
void RemoveCategory( string ServerSession, integer CustDomainID, string CustomerID, string
CategoryName )
顧客をカテゴリから削除します。つまり、カテゴリ メンバーシップが削除されます。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は顧客の ID です。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
void RemoveCategoryValue( string ServerSession, integer CustDomainID, string CustomerID, string
CategoryName, string Value )
カテゴリ内の顧客の値を削除します。 カテゴリのタイプは、「カテゴリと値」でなければなりませ
ん。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は顧客の ID です。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
Value は、Dialogue Admin のカテゴリ 設定で定義されている、削除の対象となる文字列値です。
void SetCategory( string ServerSession, integer CustDomainID, string CustomerID, string
CategoryName )
顧客をカテゴリに追加します。つまり、カテゴリ メンバーシップが作成されます。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は顧客の ID です。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
void SetCategoryScore( string ServerSession, integer CustDomainID, string CustomerID, string
CategoryName, double Score )
顧客を、スコアリング値とともにカテゴリに追加します。つまり、カテゴリ メンバーシップが作成
されるか、既存のメンバーシップのスコアリング値が更新されます。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は顧客の ID です。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
リファレンス ガイド
277
Customer API
Score は、Dialogue Admin におけるカテゴリ設定で定義された最小スコアと最大スコアの間のスコ
アリング値です。
void SetCategoryValue( string ServerSession, integer CustDomainID, string CustomerID, string
CategoryName, string Value )
顧客を、値とともにカテゴリに追加します。つまり、カテゴリ メンバーシップが作成されるか、既
存のメンバーシップに値が追加されます。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は顧客の ID です。
CategoryName は、Dialogue Admin で定義されたカテゴリのテクニカル名です。
Value は、Dialogue Admin のカテゴリ 設定で定義されている、設定の対象となる文字列値です。
string UpdateCustomerPassword( string ServerSession, integer CustDomainID, string CustomerID,
bool AutoGenerate, string NewPassword )
顧客のパスワードを更新します。 新しいパスワードは、データベース テーブル CUST_LOGIN に保
存され、このメソッドによって返されます。
CustDomainID は顧客ドメインを指定する IDで、CustomerID は顧客の ID です。
AutoGenerate が True の場合、新しいパスワードは自動生成されます。True でない場合は、
NewPassword の中の値が新しいパスワード値として使用されます。
注意: パスワードが設定できるのは、Dialogue Server によってパスワードを自動生成するように設
定されている場合のみです。
string UpdateSingleCustomer( string ServerSession, integer CustDomainID, string CustomerID, string
DataFields, string CustomerDataXML)
変更を保存するために顧客データの更新内容を Dialogue Server に送信します。 このメソッドによ
り、新しい顧客が挿入されたり、既存の顧客の削除または更新が行われたりする場合があります。
新規顧客を挿入する場合は、新規顧客の顧客 ID が返されます。
CustDomainID は顧客ドメインを指定する ID であり、CustomerID は更新、削除、または挿入する顧
客の ID です。
DataFields は、CustomerDataXML に含まれる、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
CustomerDataXML は、変更された顧客データを含む XML ドキュメントです。 この XML ドキュメ
ントは、Microsoft ADO.NET で定義されている XML Diffgram の形式に従います。 GetCustomers ま
たは GetSingleCustomer で取得した XML が、ADO データセットに読み込まれ、このデータセット
が変更される場合は、ADO.NET は UpdateSingleCustomer に送信する Diffgram を自動的に作成でき
ます。
注意: DataFields は、理論的には冗長な情報です。 しかし、現バージョンでは、クライアントと
Dialogue Server の間の変更の伝達を容易にするために、これが必要になっています。
278
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
string UpdateSingleCustomerSimple( string ServerSession, integer CustDomainID, string CustomerID,
string CustomerDataXML)
変更を保存するために顧客データの更新内容を Dialogue Server に送信します。 このメソッドは、新
規顧客を挿入する場合と、既存顧客を更新する場合があります。 新規顧客を挿入する場合は、新規
顧客の顧客 ID が返されます。
CustDomainID は顧客ドメインを指定する ID であり、CustomerID は更新、削除、または挿入する顧
客の ID です。
CustomerDataXML は、変更された顧客データ、または新規の顧客データを含む XML ドキュメント
です。 この XML ドキュメントの構造は、GetSingleCustomer メソッドで返される XML データの構
造に従います (上記を参照してください)。
注意: UpdateSingleCustomerSimple は現在、顧客、または顧客のいずれかのデータ レコードの削
除をサポートしていません。
例
以下の例では、Dialogue Server から顧客情報を取得しています。 この例は、JScript を使用していま
す。
..............
//Connect to the DialogServer
SystemAPI = new ActiveXObject("MHDialogServer.MHSystemAPI");
//Log in
var InstanceName = "MHProduction";
var SessionKey = SystemAPI.Login(InstanceName, "admin", "ringo1", "MH
Test");
var ServerSession = SessionKey + "@" + InstanceName;
//Now get some customers
CustomerAPI = new ActiveXObject("MHDialogServer.MHCustomerAPI");
var CustomerXML = CustomerAPI.GetCustomers(ServerSession, 1000,
"Address.City=\"Oslo\"", "", "", -1);
//Log out (we got what we wanted)
SystemAPI.Logout(ServerSession);
..............
次の例は、式を評価して、ポップアップ メッセージを Web ページ上に表示するかどうかを決定して
います。
..............
CustomerAPI = new ActiveXObject("MHDialogServer.MHCustomerAPI");
//Check if the customer fulfills our criteria for displaying the pop-up
message
var DisplayPopup = CustomerAPI.EvaluateExpressionBool(ServerSession, 1000,
CustomerID,
"Age>25 and Address.Town=\"London\"");
..............
リファレンス ガイド
279
Generic API
Generic API
概要
Generic API は、Dialogue Admin で定義された汎用オブジェクトにアクセスするための一連のメソッ
ドを提供します。 これには、データセットおよび SQL リポジトリに保存された SQL ステートメント
や、汎用プラグインの実行が含まれます。
COM コンポーネント
COM コンポーネントである MHDialogServer.MHGenericAPI は、IMHGenricAPI インターフェースに
よって Generic API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
variant ExecutePlugin( string ServerSession, string PluginName, array Params )
variant ExecutePlugin_JS( string ServerSession, string PluginName, array Params )
IMHGenericPlugin インターフェースを実装する、汎用プラグインに分類される Dialogue Server プ
ラグインを実行します。 PluginName は、Dialogue Admin で定義されたプラグインの名前です。
Params は、パラメータ値を含む配列です。
戻り値はプラグインから返される値です。
注意: ExecutePlugin_JS は別の実装で、JScript と、JScript で使用される配列の型での使用に適し
ています。
integer ExecuteSQL( string ServerSession, string SQLName, array Params )
integer ExecuteSQL_JS( string ServerSession, string SQLName, array Params )
Dialogue Admin の SQL リポジトリに格納されている SQL ステートメントを実行します。 SQLName
はステートメントのテクニカル名で、Params はパラメータ値を含む配列です。
SQLExecute は、影響を受けたレコード数を返します。
注意: ExecuteSQL_JS は別の実装で、JScript と、JScript で使用される配列の型での使用に適して
います。
void ExecuteSQLScript( string ServerSession, string SQLName, array of MHGenericParam Params
)
Dialogue Admin の SQL リポジトリに格納されている SQL スクリプト (複数の SQL ステートメント)
を実行します。 SQLName は、ステートメントのテクニカル名です。
280
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
Params は、パラメータ値を含む配列です。 配列は、パラメータ名と値のペアで構成されます。これ
は、COM (Microsoft IDL) において、次のように定義されています。
typedef struct tagMHGenericParam { BSTR Name; VARIANT Value; }
MHGenericParam;
MHGenericParam の定義は、呼び出し側の言語によって、record、struct、または class である場合
があります。 例えば、C# では、Dialogue Server API への Web 参照を使用する場合、MHGenericParam
は自動的に class として宣言されます。
注意: このメソッドによってクライアントは、1 つのトランザクションにおいて SQL ステートメン
ト列を実行できます。
void ExecuteStoredProc( string ServerSession, string StoredProcName, array Params, string
ConnectionName )
void ExecuteStoredProc_JS( string ServerSession, string StoredProcName, array Params, string
ConnectionName )
指定したデータベース接続を使用してストアド プロシージャを実行します。
StoredProcName は、データベースに定義されているストアド プロシージャ名で、Params は、パラ
メータ値を含む配列です。
ConnectionName は、Dialogue Admin で定義されたセカンダリ データベース接続のテクニカル名で
す。 ConnectionName を空白のままにすると、既定のデータベース接続が使用されます。
注意: ExecuteStoredProc_JS は別の実装で、JScript と、JScript で使用される配列の型での使用に
適しています。
string GetDataset( string ServerSession, string SQLName, array Params, integer MaxRows )
string GetDataset_JS( string ServerSession, string SQLName, array Params, integer MaxRows )
Dialogue Admin で定義されたデータセットを XML として返します。
SQLName は、データセットを定義する SQL リポジトリの中の項目の名前です。
Params は、パラメータ値 (データベース ホスト変数) を含む配列です。
MaxRows は、取得する行数の最大値です。 MaxRows に -1 を設定するとすべての行を返し、0 を設
定すると XML スキーマのみを返します。
注意: GetDataset_JS は別の実装で、JScript と、JScript で使用される配列の型での使用に適してい
ます。
int64 GetSequenceID( string ServerSession, string SequenceName )
指定されたシーケンスの次の値を返します。 シーケンスは、一意の識別子を維持するために Dialogue
Server によって提供されるメカニズムです。 Dialogue Server は、GetSequenceID の個別の呼び出
しに対して返される番号の一意性を保証します。
リファレンス ガイド
281
Generic API
SequenceName は、シーケンスの名前です。 存在しないシーケンスが指定された場合は、新しい
シーケンスが自動的に作成されます。
注意: シーケンスは、Dialogue Server の内部メカニズムです。データベース シーケンスと混同しな
いでください。 例えば、Oracle にはシーケンスと呼ばれる独自のメカニズムがあります。
variant UpdateDataset( string ServerSession, string SQLName, array Params, string XMLDiffGram )
variant UpdateDataset_JS( string ServerSession, string SQLName, array Params, string XMLDiffGram
)
GetDataset メソッドを使用して以前に取得したデータセットを更新します。
UpdateDataset は、データベースによってデータセット内の最上位テーブルに対して生成された最後
の ID を返します。 通常は、自動インクリメントされた列またはデータベース シーケンスからの値
になります。 そのような列が Dialogue Admin において定義されていない場合は、戻り値は null にな
ります。
SQLName は、データセットを定義する SQL リポジトリの中の項目の名前です。
Params は、パラメータ値の配列です。 これらのパラメータ値は、GetDataset を使用して元のデー
タセットを取得した際に指定したパラメータ値と同じである必要があります。
XMLDiffGram は、新規レコード、更新レコード、または削除レコードを含む XML ドキュメントで
す。 この XML ドキュメントは、Microsoft ADO.NET で定義されている XML Diffgram の形式に従い
ます。
注意: UpdateDataset_JS は別の実装で、JScript と、JScript で使用される配列の型での使用に適し
ています。
例
以下の例では、汎用プラグインを実行しています。 この例は、C# を使用して Generic API の SOAP
サービスを呼び出しています。
..............
//Login
SystemAPI.SystemAPIService srvSystemAPI = new SystemAPI.SystemAPIService();
string ServerSession = srvSystemAPI.Login("default", "a", "a", "Test
System");
ServerSession = ServerSession + "@default";
//Create generic API object to execute a plug-in
GenericAPI.GenericAPIService srvGenericAPI = new
GenericAPI.GenericAPIService();
//Create an array of input parameters to the plug-in
Object[] Params = new Object[3] { "Herman Villsvinsen", 1004, new
DateTime(1978, 04, 13) };
Object ReturnValue = srvGenericAPI.ExecutePlugin(ServerSession,
"ExecuteTest", Params);
//Show return value in a windows message box
282
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
MessageBox.Show( "Return value: " + ReturnValue.ToString() );
//Logout
srvSystemAPI.Logout(ServerSession);
..............
Message API
概要
Message API は、顧客メッセージに関連するデータにアクセスするための一連のメソッドを提供しま
す。
COM コンポーネント
COM コンポーネントである MHDialogServer.MHMessageAPI は、インターフェース IMHMessageAPI
によって Message API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
string BuildEmailTestReportUrl( string ServerSession, integer TestID )
BuildEmailTestReportUrl は、メール テストのレポート Web ページへの URL を返します。
TestID は、テストの一意の識別子です。 新しいテストは、CreateEmailTest(...) メソッドを呼び出す
ことによって作成します。このメソッドは、新しいテストの一意の ID を返します。 既存のテストの
テスト ID は、GetEmailTestLogs(..) を呼び出すことによって取得できます。
integer CreateEmailTest( string ServerSession, integer MessageTypeID, string ContentText, variant
ContentBinary, string ControlParams, variant MasterTemplateID, variant BaseMessageID, variant
MessageBundleID, out string ReportUrl )
CreateEmailTest は、さまざまなメール クライアントやスパム フィルタのメール メッセージをテス
トするための外部サービスを呼び出します。 返される値は、一意のテスト識別子と、テスト レポー
トを表示する Web ページへの URL です。
MessageTypeID は、Dialogue Admin において設定されたメッセージ タイプの一意の ID です。
ContentText は、テキストとして表されている場合のメッセージ コンテンツです。
ContentBinary は、バイト配列として表されている場合のメッセージ コンテンツです。
ControlParams は、コントロール パラメータの値を含む文字列です。 後述のコントロール パラメー
タに関するセクションを参照してください。
リファレンス ガイド
283
Message API
MasterTemplateID: テストされるメッセージがマスター テンプレートである場合、MasterTemplateID
はマスター テンプレートの ID です。それ以外の場合は null です。
BaseMessageID: テストされるメッセージが通常のテンプレート (ベース メッセージ) である場合、
BaseMessageID はテンプレートの ID です。それ以外の場合は null です。
MessageBundleID:テストされるメッセージがメッセージ バンドル内のメッセージである場合、
MessageBundleID はメッセージ バンドルの ID です。それ以外の場合は null です。
ReportUrl は、テスト レポート Web ページへの URL を含む出力パラメータです。
注意: MasterTemplateID、BaseMessageID、および MessageBundleID のうち、通常は 1 つ、また、
少なくとも 1 つの ID が指定される必要があります。
string CreateMergeFile( string ServerSession, integer CustDomainID, string CustomerID, string
DataFields, integer MaxCount, bool UseCharDelimiter, bool UseQuote, string CharDelimiter, string
QuoteChar )
顧客情報を含むフラット ファイルを作成します。 ファイルは文字列として返され、呼び出し側のア
プリケーションではこれをファイルとして保存できます。 CreateMergeFile は複数の顧客を処理する
のに対し、CreateSingleMergeFile は単一の特定の顧客のみを処理します。
CustDomainID は、アクセスされる顧客ドメインの ID です。
FilterExpression は、マージ ファイルに含める顧客の決定に使用する式です。ContextExpression は、
コンテキスト値の設定に使用するオプションの式です。
MaxCount は、マージ ファイルに含める顧客の最大数です。 値が -1 である場合は、上限がないこと
を意味します。
DataFields は、ファイルに含める顧客データ グループおよびフィールドがセミコロンで区切られた
リストです。 Dialogue Admin において既定行を取得するための式が指定されていない場合は、顧客
ごとに複数の行を返すデータ グループのフィールドはサポートされません。
UseCharDelimiter は、ファイル内の列を文字で区切るかどうかを指定します。文字で区切らない場
合は、タブ区切りが適用されます。 CharDelimiter は、区切り文字として使用する単一の文字です。
UseQuote は、フィールド値を引用符で囲むかどうかを指定します。 QuoteChar は、引用符として
使用する単一の文字です。
注意: 得られる結果は、メール マージ オペレーションに適しています。 このメソッドは、顧客デー
タを含むエクスポート ファイルを作成するためにも使用される場合があります。
string CreateSingleMergeFile( string ServerSession, integer CustDomainID, string CustomerID, string
DataFields, bool UseCharDelimiter, bool UseQuote, string CharDelimiter, string QuoteChar )
顧客情報を含むフラット ファイルを作成します。 ファイルは文字列として返され、呼び出し側のア
プリケーションではこれをファイルとして保存できます。 CreateSingleMergeFile は単一の顧客を処
理するのに対し、CreateMergeFile は複数の顧客を処理します。
CustDomainID は、アクセスされる顧客ドメインの ID です。
284
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
CustomerID は、マージ ファイルに含める顧客の ID です。
DataFields は、ファイルに含める顧客データ グループおよびフィールドがセミコロンで区切られた
リストです。 Dialogue Admin において既定行を取得するための式が指定されていない場合は、顧客
ごとに複数の行を返すデータ グループのフィールドはサポートされません。
UseCharDelimiter は、ファイル内の列を文字で区切るかどうかを指定します。文字で区切らない場
合は、タブ区切りが適用されます。 CharDelimiter は、区切り文字として使用する単一の文字です。
UseQuote は、フィールド値を引用符で囲むかどうかを指定します。 QuoteChar は、引用符として
使用する単一の文字です。
注意: 得られる結果は、メール マージ オペレーションに適しています。 このメソッドは、Customer
View によって、Word ドキュメントをマージする前にデータ ファイルを作成するために使用
されます。
string CreateSingleWordMergeFile( string ServerSession, integer CustDomainID, string CustomerID,
string BaseMessageID, string DataFields )
MS Word Mail Merge に適したフラット マージ ファイルを作成します。 ファイルは文字列として返
され、指定されたメッセージ テンプレートで使用するための単一の顧客に関する情報を含みます。
CustDomainID は、アクセスされる顧客ドメインの ID です。
CustomerID は、マージ ファイルに含める顧客の ID です。
BaseMessageID は、Visual Dialogue で作成されたメッセージ テンプレートの ID です。
DataFields は、ファイルに含める顧客データ グループおよびフィールドがセミコロンで区切られた
リストです。 Dialogue Admin において既定行を取得するための式が指定されていない場合は、顧客
ごとに複数の行を返すデータ グループのフィールドはサポートされません。
UseCharDelimiter は、ファイル内の列を文字で区切るかどうかを指定します。文字で区切らない場
合は、タブ区切りが適用されます。 CharDelimiter は、区切り文字として使用する単一の文字です。
UseQuote は、フィールド値を引用符で囲むかどうかを指定します。 QuoteChar は、引用符として
使用する単一の文字です。
注意: このメソッドは、Customer View で提供されている Word Mail Merge オペレーションをサポー
トするために特別に実装されたものです。
void DeleteCustomerMessage( string ServerSession, int64 CustomerMessageID )
指定された顧客に関連するメッセージを削除します。 メッセージは複数の顧客に関連付けられてい
る場合があります。 そのような関連付けが他に存在しない場合には、メッセージそのものが削除さ
れます。 顧客に、メッセージの投稿時に作成された活動がある場合は、その活動が削除されます。
CustomerMessageID は、メッセージと顧客の間の関係の一意の ID です (データベース テーブル
CUSTOMER_MESSAGE の中の CM_ID フィールド)。
void DeleteEmailTestLog( string ServerSession , integer EmailTestLogID )
リファレンス ガイド
285
Message API
DeleteEmailTestLog は、データベース内のログにおける既存のメール テストを削除します。
EmailTestLogID は、データベース テーブル EMAIL_TEST_LOG に記録されたテスト レコードの一
意の識別子です。 既存のメール テストは、GetEmailTestLogs(..) を呼び出すことによって取得でき
ます。
void DeleteMessage( string ServerSession, int64 MessageID )
メッセージを削除します。 メッセージは、1 つ以上の顧客に関連付けることができます。 そのよう
な関連付けはすべて削除されます。 また、メッセージ投稿時に作成された活動があれば、削除され
ます。
MessageID は、メッセージの一意の ID です (データベース テーブル MESSAGE_LOG の中の ML_ID
フィールド)。
void DeleteTemplate( string ServerSession, integer BaseMessageID, bool DeleteRelatedMessages)
メッセージ テンプレートを削除します。
BaseMessageID は、テンプレートの ID です。
DeleteRelatedMessages は、このテンプレートから作成されたメッセージを、テンプレートととも
に削除するべきかどうかを指定します。 false の場合は、このテンプレートに基づいたメッセージは
削除されません。
stringGetControlParemeterDefinitions( string ServerSession, integer DocumentTypeID )
指定されたドキュメント タイプのコントロール パラメータ定義を XML として返します。
DocumentTypeID は、情報を取得するドキュメント タイプの ID です。
string GetCustomSqlFieldInfo( string ServerSession, variant SqlConnectionID, string SqlStatement
)
テンプレートで使用されるカスタム SQL の結果セット内のフィールドに関する情報を XML として
返します。
SqlConnectionID は、カスタム SQL ステートメントの実行時に使用されるデータベース接続の ID を
含みます。 値が null である場合は、既定の接続を表します。
SQLStatement は、カスタム SQL SELECT ステートメントです。
int64 GetEmailSpamRate( string ServerSession, integer MessageTypeID, string ContentText, variant
ContentBinary, string ControlParams, bool IncludeHtmlReport, out string HtmlReport )
GetEmailSpamRate は、メール メッセージに対するスパム率スコアを計算する外部サービスを呼び
出します。 戻り値はスパム率スコアです。 オプションで、HTML 形式のスパム率レポートも生成し
ます。
MessageTypeID は、Dialogue Admin において設定されたメッセージ タイプの一意の ID です。
ContentText は、テキストとして表されている場合のメッセージ コンテンツです。
ContentBinary は、バイト配列として表されている場合のメッセージ コンテンツです。
286
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
ControlParams は、コントロール パラメータの値を含む文字列です。 後述のコントロール パラメー
タに関するセクションを参照してください。
IncludeHtmlReport は、HTML 形式のスパム率レポートを作成して返すかどうかを示します。
HtmlReport は、作成された HTML 形式のスパム率レポートを含む出力パラメータです。
string GetEmailTestLogs( string ServerSession, variant MasterTemplateID, variant BaseMessageID,
variant MessageBundleID )
GetEmailTestLogs は、指定されたメール テンプレートまたはメール メッセージに対するすべてのロ
グ記録済みテストを XML として返します。
MasterTemplateID: 取得するメール テストがマスター テンプレートに関連する場合は、
MasterTemplateID はマスター テンプレートの ID です。それ以外の場合は null です。
BaseMessageID: 取得するメール テストが通常のテンプレート (ベース メッセージ) に関連する場合
は、BaseMessageID はテンプレートの ID です。それ以外の場合は null です。
MessageBundleID: 取得するメール テストがメッセージ バンドル内のメッセージに関連する場合は、
MessageBundleID はメッセージ バンドルの ID です。それ以外の場合は null です。
注意: 上記のうち、通常は 1 つ、また、少なくとも 1 つの ID が指定される必要があります。
string GetFuzzyMessages( string ServerSession )
定義済みのすべてのファジー メッセージを含む XML ドキュメントを返します。
string GetMasterTemplate( string ServerSession, integer MasterTemplateID )
特定の マスター テンプレートを XML として返します。
MasterTemplateID は、マスター テンプレートの一意の識別子です。
string GetMasterTemplateDetails( string ServerSession, integer MasterTemplateID )
このメソッドは非推奨です。 代わりに GetMasterTemplate メソッドを使用してください。
string GetMasterTemplates( string ServerSession )
定義済みのすべてのマスター テンプレートを含む XML ドキュメントを返します。 マスター テンプ
レートは、Visual Dialogue において記述またはデザインされています。 この XML ドキュメントで
は、マスター テンプレートを顧客ドメインごとにグループ化します。
string GetMessageAttachment( string ServerSession, int64 MessageID, integer AttachmentIndex )
メッセージ内の添付ファイルのファイル名とコンテンツを含む XML ドキュメントを返します。 この
メソッドは、メール メッセージ内の添付ファイルをダウンロードするために使用できます。 添付ファ
イルのコンテンツは XML の中で、Base64Binary エンコーディングを使用してエンコードされます。
MessageID は、メッセージの ID です。
リファレンス ガイド
287
Message API
AttachmentIndex は、Attachments という名前のメッセージ コントロール パラメータにおける添付
ファイルの位置を指定する整数です。 このコントロール パラメータには、メッセージに添付された
ファイル名がセミコロンで区切られたリストが含まれています。
注意: 標準インストールでは、添付ファイルはメール メッセージのみに添付できます。
string GetMessageAttachmentSchema( string ServerSession )
PostSingleMessageEx(..) メソッドと PostSingleDialogMessageEx(..) メソッドの呼び出しにおいて、
添付ファイルを指定するために使用する XML のスキーマを返します。
string GetMessageDetails( string ServerSession, int64 MessageID, boolean IncludeContent)
特定のメッセージの詳細情報を含む XML ドキュメントを返します。
MessageID は、メッセージの ID です。
IncludeContent は、メッセージ コンテンツを含むかどうかを指定します。 true が設定された場合は、
テキストまたはバイナリのコンテンツが、返される XML に含まれます。 バイナリ データは、
Base64Binary エンコーディングを使用してエンコードされます。
string GetMessageDetailsIdent( string ServerSession, string MessageIdentifier, boolean IncludeContent)
特定のメッセージの詳細情報を含む XML ドキュメントを返します。 XML ドキュメントは、
GetMessageDetails(...) で返されるものと同じです。
MessageIdentifier は、メッセージを識別する一意の文字列です。 この識別子は、Dialogue Server で
新しいメッセージが作成された時に作成され、データベース フィールド ML_MESSAGE_IDENTIFIER
に保存されます。
IncludeContent は、メッセージ コンテンツを含むかどうかを指定します。 true が設定された場合は、
テキストまたはバイナリのコンテンツが、返される XML に含まれます。 バイナリ データは、
Base64Binary エンコーディングを使用してエンコードされます。
string GetMessagesLockedByUser( string ServerSession )
現在のユーザーによって編集用にロックされているメッセージのリストを含む XML ドキュメントを
返します。
string GetMessageTypes( string ServerSession )
定義済みメッセージ タイプを含む XML ドキュメントを返します。 メッセージ タイプは、Dialogue
Admin で設定されます。
string GetTemplate( string ServerSession, integer BaseMessageID )
特定のメッセージ テンプレートを XML として返します。
BaseMessageID は、メッセージ テンプレートの一意の識別子です。
string GetTemplateDetails( string ServerSession, integer BaseMessageID )
このメソッドは非推奨です。 代わりに GetTemplate メソッドを使用してください。
288
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
string GetTemplates( string ServerSession )
定義済みのすべてのメッセージ テンプレートを含む XML ドキュメントを返します。 テンプレート
は、Visual Dialogue において記述またはデザインされています。 この XML ドキュメントでは、メッ
セージ テンプレートを顧客ドメインごとにグループ化します。
string GetTemplateSchema( string ServerSession )
メッセージ テンプレートに使用される XML スキーマを返します。 このスキーマは、GetTemplate(...)
と SaveTemplate(...) メソッドによって交換される XML で使用されます。
void LockMessage( string ServerSession, int64 MessageID, string ClientLocalPath, string ClientMachine
)
特定のメッセージを編集用にロックします。
MessageID は、ロックするメッセージの一意の ID です。
ClientLocalPath は、メッセージの編集中に、そのローカル コピーを保持するローカル パスを指定す
るオプションのパラメータです。 ClientMachine は、メッセージが編集されているコンピュータの名
前を保持するオプションのパラメータです。 ClientLocalPath と ClientMachine はともにシステムに
保存され、それらの値は、GetMessageDetails を呼び出すことによって後から取得できます。 これ
ら 2 つの値は、編集中のメッセージに対するロック、更新、ロック解除の方法を制御するクライア
ント アプリケーションにおいてのみ意味があります。
int64 PostSingleDialogMessage( string ServerSession, integer CustDomainID, int64 ParticipantID,
string MessageTypeName, integer BaseMessageID, string ContentText, variant ContentBinary, string
ControlParams, string MessageName, string ActivityTypeName, string ActivityDesc, bool UseOutbox,bool
MarkAsSent, string Direction, datetime Timestamp, integer Priority )
CustDomainID は、顧客ドメインの ID です。 ParticipantID は、メッセージが関連付けられている参
加顧客の ID です。 メッセージは、参加顧客が指す顧客にも関連付けられていますが、顧客 ID とコ
ンテキストは Dialogue Server によって内部的に解決されます。
MessageTypeName は、Dialogue Admin で設定された、メッセージ タイプのテクニカル名です。
BaseMessageID は、(Visual Dialogue で定義された) メッセージ テンプレートへのオプションの参照
です。 これによって、メッセージが、基となるテンプレートを指すようにできます。 該当しない場
合は、BaseMessageID に -1 を設定します。
ContentText は、テキストとして表されている場合のメッセージ コンテンツです。
ContentBinary は、バイト配列として表されている場合のメッセージ コンテンツです。
ControlParams は、コントロール パラメータの値を含む文字列です。 後述のコントロール パラメー
タに関するセクションを参照してください。
MessageName は、メッセージの名前です。
ActivityTypeName は、メッセージ保存時に投稿する活動タイプのテクニカル名です。 値が指定され
ない場合は、活動は投稿されません。 ActivityDesc は、活動の説明で、活動タイプが指定された場合
には、値を持つ必要があります。
リファレンス ガイド
289
Message API
UseOutbox は、true の場合は、送信キュー (電子メッセージの場合) または送信済み項目 (電子メッ
セージ以外の場合) ではなく、アウトボックスにメッセージを保存することを指定します。 アウト
ボックスに保存されたメッセージは、後で Visual Dialogue のメッセージ マネージャを使用すること
によって、送信キュー (電子メッセージの場合) または送信済み項目 (電子メッセージ以外の場合) に
移動できます。
MarkAsSent は、true の場合は、メッセージを送信キューまたはアウトボックスではなく、送信済み
項目に保存することを指定します。
Direction は、メッセージの送信元が顧客であるか、あるいは「自社組織」または「システム」であ
るかを表します。 Direction がとり得る値は以下のとおりです。
• Direction = "IN" のとき、送信したのは顧客です。
• Direction = "OUT" のとき、送信したのは「自社組織」または「システム」です。
Timestamp は、メッセージが送信された日時です。
Priority は、電子メールや SMS メッセージなど、電子的に送信されるメッセージの優先度を制御し
ます。 Priority は、次の 5 つの値をとり得ます。
値
値の名前
説明
-2
低
最も低い優先度。 この優先度の
メッセージは、送信キューにお
いて他のすべてのメッセージが
処理されてから送信されます。
-1
Medium low
やや低い優先度。
0
標準
既定のメッセージ優先度。
1
Medium high
やや高い優先度。
2
高
最も高い優先度。 この優先度の
メッセージは、送信キューにお
ける他のすべてのメッセージよ
りも先に送信されます。
int64 PostSingleDialogMessageEx( string ServerSession, integer CustDomainID, int64 ParticipantID,
string MessageTypeName, integer BaseMessageID, string ContentText, variant ContentBinary, string
ControlParams, string MessageName, string ActivityTypeName, string ActivityDesc, bool UseOutbox,
bool MarkAsSent, string Direction, datetime Timestamp, integer Priority, string AttachmentsXML )
このメソッドは、メッセージそのものに加えて一連の添付ファイルを保存する点を除き、
PostSingleDialogMessage(..) と同じです。 コントロール パラメータ Attachments は、保存される添
付ファイルを反映して自動的に更新されます。
AttachmentsXML は、保存する添付ファイルを含む XML です。 この XML のスキーマを取得するに
は、GetMessageAttachmentSchema(..) メソッドを呼び出します。
290
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
int64 PostSingleMessage( string ServerSession, integer CustDomainID, string CustomerID, string
Context, string MessageTypeName, integer BaseMessageID, string ContentText, variant ContentBinary,
string ControlParams, string MessageName, string ActivityTypeName, string ActivityDesc, bool
UseOutbox, bool MarkAsSent, string Direction, datetime Timestamp, integer Priority )
CustDomainID は、顧客ドメインの ID です。 CustomerID は、メッセージに関連付けられている顧
客の ID です。 Context は、オプションのコンテキスト値で、値が '0' である場合は、コンテキストが
ないことを意味します。
MessageTypeName は、Dialogue Admin で設定された、メッセージ タイプのテクニカル名です。
BaseMessageID は、(Visual Dialogue で定義された) メッセージ テンプレートへのオプションの参照
です。 これによって、メッセージが、基となるテンプレートを指すようにできます。 該当しない場
合は、BaseMessageID に -1 を設定します。
ContentText は、テキストとして表されている場合のメッセージ コンテンツです。
ContentBinary は、バイト配列として表されている場合のメッセージ コンテンツです。
ControlParams は、コントロール パラメータの値を含む文字列です。 後述のコントロール パラメー
タに関するセクションを参照してください。
MessageName は、メッセージの名前です。
ActivityTypeName は、メッセージ保存時に投稿する活動タイプのテクニカル名です。 値が指定され
ない場合は、活動は投稿されません。 ActivityDesc は、活動の説明で、活動タイプが指定された場合
には、値を持つ必要があります。
UseOutbox は、true の場合は、送信キュー (電子メッセージの場合) または送信済み項目 (電子メッ
セージ以外の場合) ではなく、アウトボックスにメッセージを保存することを指定します。 アウト
ボックスに保存されたメッセージは、後で Visual Dialogue のメッセージ マネージャを使用すること
によって、送信キュー (電子メッセージの場合) または送信済み項目 (電子メッセージ以外の場合) に
移動できます。
MarkAsSent は、true の場合は、メッセージを送信キューまたはアウトボックスではなく、送信済み
項目に保存することを指定します。
Direction は、メッセージの送信元が顧客であるか、あるいは「自社組織」または「システム」であ
るかを表します。 Direction がとり得る値は以下のとおりです。
• Direction = "IN" のとき、送信したのは顧客です。
• Direction = "OUT" のとき、送信したのは「自社組織」または「システム」です。
Timestamp は、メッセージが送信された日時です。
Priority は、電子メールや SMS メッセージなど、電子的に送信されるメッセージの優先度を制御し
ます。 Priority のとり得る値については、上記の PostSingleDialogMessage(...) を参照してください。
int64 PostSingleMessage( string ServerSession, integer CustDomainID, string CustomerID, string
Context, string MessageTypeName, integer BaseMessageID, string ContentText, variant ContentBinary,
string ControlParams, string MessageName, string ActivityTypeName, string ActivityDesc, bool
リファレンス ガイド
291
Message API
UseOutbox, bool MarkAsSent, string Direction, datetime Timestamp, integer Priority, string
AttachmentsXML )
このメソッドは、メッセージそのものに加えて一連の添付ファイルを保存する点を除き、
PostSingleMessage(..) と同じです。 コントロール パラメータ Attachments は、保存される添付ファ
イルを反映して自動的に更新されます。
AttachmentsXML は、保存する添付ファイルを含む XML です。 この XML のスキーマを取得するに
は、GetMessageAttachmentSchema(..) メソッドを呼び出します。
integer ProducePostMessages( string ServerSession, integer CustDomainID, string FilterExpression,
string ContextExpression, integer BaseMessageID, integer MaxCount, string MessageName, string
ActivityDesc)
顧客セットに対し、特定のテンプレートからメッセージを作成し、保存します。 作成されたメッセー
ジに関連付けられた顧客の数が返されます。
CustDomainID は、アクセスされる顧客ドメインの ID です。
FilterExpression は、含める顧客の決定に使用する式です。ContextExpression は、コンテキスト値
の設定に使用するオプションの式です。
BaseMessageID は、使用するテンプレートの ID です。
MaxCount は、顧客の最大数です。 値が -1 である場合は、上限がないことを意味します。
MessageName は、メッセージの名前です。
ActivityDesc は、活動の説明で、使用されるテンプレートに対して活動を投稿するように設定されて
いる場合は、値を持つ必要があります。
int64 ProducePostSingleDialogMessage( string ServerSession, integer CustDomainID, int64
ParticipantID, integer BaseMessageID, string MessageName, string ActivityDesc)
指定されたダイアログ参加顧客に対し、特定のテンプレートからメッセージを作成し、保存します。
新しいメッセージの ID が返されます。
CustDomainID は、顧客ドメインの ID です。 ParticipantID は、メッセージが関連付けられている参
加顧客の ID です。 メッセージは、参加顧客が指す顧客にも関連付けられていますが、顧客 ID とコ
ンテキストは Dialogue Server によって内部的に解決されます。
BaseMessageID は、使用するテンプレートの ID です。
MessageName は、メッセージの名前です。
ActivityDesc は、活動の説明で、使用されるテンプレートに対して活動を投稿するように設定されて
いる場合は、値を持つ必要があります。
int64 ProducePostSingleMessage( string ServerSession, integer CustDomainID, string CustomerID,
string Context, integer BaseMessageID, string MessageName, string ActivityDesc)
指定された単一の顧客に対し、特定のテンプレートからメッセージを作成し、保存します。 新しい
メッセージの ID が返されます。
292
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
CustDomainID は、顧客ドメインの ID です。 CustomerID は、メッセージに関連付けられている顧
客の ID です。 Context は、オプションのコンテキスト値で、値が '0' である場合は、コンテキストが
ないことを意味します。
BaseMessageID は、使用するテンプレートの ID です。
MessageName は、メッセージの名前です。
ActivityDesc は、活動の説明で、使用されるテンプレートに対して活動を投稿するように設定されて
いる場合は、値を持つ必要があります。
string ProduceSingleDialogMessage( string ServerSession, integer CustDomainID, int64 ParticipantID,
integer BaseMessageID )
指定された単一のダイアログ参加顧客に対し、特定のテンプレートからメッセージを作成します。
結果は XML ドキュメントとして返されます。 メッセージは保存されませんが、
PostSingleDialogMessage を使用して後で保存できます。
CustDomainID は、顧客ドメインの ID です。 ParticipantID は、メッセージが関連付けられている参
加顧客の ID です。
BaseMessageID は、使用するテンプレートの ID です。
string ProduceSingleMessage( string ServerSession, integer CustDomainID, string CustomerID, string
Context, integer BaseMessageID )
指定された単一の顧客に対し、特定のテンプレートからメッセージを作成します。 結果は XML ド
キュメントとして返されます。 メッセージは保存されませんが、PostSingleMessage を使用して後
で保存できます。
CustDomainID は、顧客ドメインの ID です。 CustomerID は、メッセージに関連付けられている顧
客の ID です。 Context は、オプションのコンテキスト値で、値が '0' である場合は、コンテキストが
ないことを意味します。
BaseMessageID は、使用するテンプレートの ID です。
string ProduceSingleTestMessage( string ServerSession, integer MessageTypeID, string ContentText,
string ControlParams, bool UsesSql, string SqlStatement, variant SqlConnectionID, integer
CustDomainID, string CustomerID, string Context )
テンプレートと顧客 ID に基づいた単一のテスト メッセージを含む XML ドキュメントを作成し、返
します。
MessageTypeID は、メッセージ タイプの一意の ID です。
ContentText は、HTML メール テンプレートの HTML ソース コードなど、メッセージ テンプレート
のコンテンツです。
ControlParams は、コントロール パラメータの値を含む文字列です。
UsesSql は、このテンプレートからのメッセージをマージする場合に使用するデータ ソースとして、
カスタマイズされた SQL ステートメントが定義されているかどうかを示します。
リファレンス ガイド
293
Message API
UsesSQL が true の場合、SqlStatement には、メッセージをマージする際にソースとして使用され
る SELECT ステートメントが含まれている必要があります。
UsesSQL が true の場合は、SqlConnectionID には、SQLStatement に格納されたステートメントの
実行時に使用するデータベース接続の ID が含まれます。 値が null である場合は、既定の接続を表し
ます。
CustDomainID は、顧客ドメインの ID です。 CustomerID は、テスト メッセージの作成対象となる
顧客の ID です。 Context は、オプションのコンテキスト値で、値が '0' である場合は、コンテキスト
がないことを意味します。
string ProduceTestMessages( string ServerSession, integer MessageTypeID, string ContentText,
string ControlParams, bool UsesSql, string SqlStatement, variant SqlConnectionID, integer
CustDomainID, string FilterExpression, integer DialogGroupID, integer MaxCount )
テンプレートと顧客セットに基づいたテスト メッセージを含む XML ドキュメントを作成し、返しま
す。
MessageTypeID は、メッセージ タイプの一意の ID です。
ContentText は、HTML メール テンプレートの HTML ソース コードなど、メッセージ テンプレート
のコンテンツです。
ControlParams は、コントロール パラメータの値を含む文字列です。
UsesSql は、このテンプレートからのメッセージをマージする場合に使用するデータ ソースとして、
カスタマイズされた SQL ステートメントが定義されているかどうかを示します。
UsesSQL が true の場合、SqlStatement には、メッセージをマージする際にソースとして使用され
る SELECT ステートメントが含まれている必要があります。
UsesSQL が true の場合は、SqlConnectionID には、SQLStatement に格納されたステートメントの
実行時に使用するデータベース接続の ID が含まれます。 値が null である場合は、既定の接続を表し
ます。
CustDomainID は、アクセスされる顧客ドメインの ID です。
FilterExpression は、含める顧客の決定に使用する式です。
DialogGroupID は、使用する顧客を含むダイアログ内のグループのオプションの ID です。
MaxCount は、メッセージの作成対象となる顧客の最大数です。 値が -1 である場合は、上限がない
ことを意味します。
string ProduceTestMessagesFromSelection( string ServerSession, integer MessageTypeID, string
ContentText, string ControlParams, bool UsesSql, string SqlStatement, variant SqlConnectionID, integer
CustDomainID, integer SelectionID, integer MaxCount )
セレクションからのテンプレートと顧客セットに基づいたテスト メッセージを含む XML ドキュメン
トを作成し、返します。
MessageTypeID は、メッセージ タイプの一意の ID です。
294
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
ContentText は、HTML メール テンプレートの HTML ソース コードなど、メッセージ テンプレート
のコンテンツです。
ControlParams は、コントロール パラメータの値を含む文字列です。
UsesSql は、このテンプレートからのメッセージをマージする場合に使用するデータ ソースとして、
カスタマイズされた SQL ステートメントが定義されているかどうかを示します。
UsesSQL が true の場合、SqlStatement には、メッセージをマージする際にソースとして使用され
る SELECT ステートメントが含まれている必要があります。
UsesSQL が true の場合は、SqlConnectionID には、SQLStatement に格納されたステートメントの
実行時に使用するデータベース接続の ID が含まれます。 値が null である場合は、既定の接続を表し
ます。
CustDomainID は、アクセスされる顧客ドメインの ID です。
SelectionID は、使用する顧客セレクションの ID です。
MaxCount は、メッセージの作成対象となる顧客の最大数です。 値が -1 である場合は、上限がない
ことを意味します。
string SaveTemplate( string ServerSession, string TemplateXML, bool SaveAsNew )
メッセージ テンプレートを保存します。 入力として、テンプレートを XML ドキュメントで受け取
り、保存時に Dialogue Server によって加えられた変更を含むテンプレート XML を返します。
TemplateXML は保存するテンプレートを含む XML ドキュメントです。
SaveAsNew は、テンプレートを新規テンプレートとして保存するか、それとも既存のテンプレート
を更新するかを示します。
void SendTestMessage( string ServerSession, integer MessageTypeID, string ContentText, variant
ContentBinary, string ControlParams )
SendTestMessage は、コントロール パラメータで与えられた受信者宛てに、メッセージをその場で
送信します。 メッセージ テンプレートをデザインする際のテスト用のメソッドです。
MessageTypeID は、Dialogue Admin において設定されたメッセージ タイプの一意の ID です。
ContentText は、テキストとして表されている場合のメッセージ コンテンツです。
ContentBinary は、バイト配列として表されている場合のメッセージ コンテンツです。
ControlParams は、コントロール パラメータの値を含む文字列です。 後述のコントロール パラメー
タに関するセクションを参照してください。
void UnlockMessage( string ServerSession, int64 MessageID )
編集用にロックされている特定のメッセージのロックを解除します。 メッセージのロックを解除す
る前に、UpdateMessage を呼び出してメッセージのコンテンツを更新する必要があります。
MessageID は、ロック解除するメッセージの一意の ID です。
リファレンス ガイド
295
Emarketing Mail API
void UpdateMessage( string ServerSession, int64 MessageID, string ContentText, variant ContentBinary,
string ControlParams )
メッセージのコンテンツを更新します。
MessageID は、メッセージの一意の ID です。
ContentText は、テキストとして表されている場合の新しいメッセージ コンテンツです。
ContentBinary は、バイト配列として表されている場合の新しいメッセージ コンテンツです。
ControlParams は、コントロール パラメータの新しい値を含む文字列です。 後述のコントロール パ
ラメータに関するセクションを参照してください。
コントロール パラメータについて
ControlParams は、メッセージが電子的に伝達される場合に使用されます。 個々のコントロール パラ
メータは、次の構文に従います。
<パラメータ名>=<値>
パラメータは、改行 (#13#10) で区切られます。
SMS メッセージに対しては、コントロール パラメータには通常、受信者の電話番号が含まれます。
メール メッセージに対しては、送信先アドレスや件名などがコントロール パラメータになります。
メールの例を以下に示します。
-----Subject=Email message
To address=customer@localhost
From address=demo@localhost
CC address=
BCC address=
Reply address=
Attachments=
Validate target address=True
Priority=Normal
Content transfer encoding=
Content type=
CharSet=
Organization=
Receipt recipient=
---例
例はありません。
Emarketing Mail API
概要
296
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
メッセージ デザイナ テンプレートの処理に使用される API。 この API は、メッセージ デザイナ Web
アプリケーションによって使用されます。
COM コンポーネント
COM コンポーネントである MHDialogServer.MHEmarketingMailAPI は、インターフェース
IMHEmarketingMailAPI によって Emarketing Mail API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
string GetBodyAreaItemDefinitions( string ServerSession )
すべての本文エリア項目定義を XML として返します。 本文エリア項目定義は、メッセージ デザイ
ナ テンプレート作成時に使用されるシステム データです。
string GetMasterTemplate( string ServerSession, integer MasterTemplateID )
特定のメッセージ デザイナ マスター テンプレートを XML として返します。
MasterTemplateID は、マスター テンプレートの一意の識別子です。
string GetPreviewImages( string ServerSession )
すべてのプレビュー イメージを XML として返します。 プレビュー イメージは、メッセージ デザイ
ナ テンプレート作成時に使用されるシステム データです。
string GetStyleSheetDefs( string ServerSession )
すべてのスタイル シート定義を XML として返します。 スタイル シート定義 (CSS クラス) は、メッ
セージ デザイナ テンプレート作成時に使用されるシステム データです。
string GetTemplate( string ServerSession, integer BaseMessageID )
特定のメッセージ デザイナ テンプレートを XML として返します。
BaseMessageID は、メッセージ テンプレートの一意の識別子です。
string GetTemplateSchema( string ServerSession )
メッセージ デザイナ テンプレートに使用される XML スキーマを返します。 このスキーマは、
GetTemplate(...) と SaveTemplate(...) メソッドによって交換される XML で使用されます。
string SaveTemplate( string ServerSession, string TemplateXML, bool SaveAsNew )
EMarketing メッセージ テンプレートを保存します。 入力として、テンプレートを XML ドキュメン
トで受け取り、保存時に Dialogue Server によって加えられた変更を含むテンプレート XML を返し
ます。
TemplateXML は保存するテンプレートを含む XML ドキュメントです。
リファレンス ガイド
297
Quest API
SaveAsNew は、テンプレートを新規テンプレートとして保存するか、それとも既存のテンプレート
を更新するかを示します。
例
例はありません。
Quest API
概要
Quest API は、アンケートおよび回答フォームに関連するデータを管理するための一連のメソッドを
提供します。
COM コンポーネント
COM コンポーネントである MHDialogServer.MHQuestAPI は、インターフェース IMHQuestAPI に
よって Questionnaire API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
void DeleteAnswerForm( string ServerSession, int64 AnswerFormID )
AnswerFormID で指定された回答フォームを削除します。
integer DeleteAnswerForms( string ServerSession, string SourceXML, out string SuccessXML, out
string ErrorXML )
回答フォームを削除し、正常に削除された回答フォームの数を返します。
SourceXML は、データベースから削除する回答フォームを含む XML ドキュメントです。
SuccessXML は、Dialogue Database から正常に削除された回答フォームを含む XML ドキュメント
です。
ErrorXML は、データベースから削除できなかった回答フォームを含む XML ドキュメントです。 こ
のドキュメントの各フォームには、削除に失敗した理由を示すエラー メッセージが含まれます。
integer DeleteAnswerFormsUNC( string ServerSession, string SourceUNC, string SuccessUNC,
string ErrorUNC )
回答フォームを削除し、正常に削除された回答フォームの数を返します。 DeleteAnswerForms と同
じですが、XML 文字列の代わりにファイル パスを処理します。
SourceUNC は、データベースから削除する回答フォームを含む XML ファイルの UNC です。
298
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
SuccessUNC は、Dialogue Database から正常に削除された回答フォームを含む XML ファイルの
UNC です。
ErrorUNC は、データベースから削除できなかった回答フォームを含む XML ファイルの UNC です。
このドキュメントの各フォームには、削除に失敗した理由を示すエラー メッセージが含まれます。
string ExportAnswerForms( string ServerSession, integer QuestionnaireID, string SQLName )
Dialogue Database から回答フォームをエクスポートします。 エクスポートされた回答フォームは、
データベースから削除されません。 回答フォームを含む XML ドキュメントを返します。
QuestionnaireID に 0 よりも大きい値が指定された場合は、エクスポートする回答フォームは、単一
のアンケート内のものに限定されます。
SQLName は、SQL リポジトリ (Dialogue Admin) の中の SQL 定義を参照する、オプションのパラ
メータです。 指定された場合は、この SQL はエクスポートする回答フォーム ID (qaf_id) のリストを
返す必要があります。 この SQL によって返される列は、mh_answer_form_id という名前である必
要があります。 SQL が指定されなかった場合は、データベース内のすべての回答フォームがエクス
ポートされます。
string ExportAnswerFormsEx( string ServerSession, integer QuestionnaireID, bool IncludeComplete,
bool IncludeUncomplete, string SQLName )
Dialogue Database から回答フォームをエクスポートします。 エクスポートされた回答フォームは、
データベースから削除されません。 回答フォームを含む XML ドキュメントを返します。
QuestionnaireID に 0 よりも大きい値が指定された場合は、エクスポートする回答フォームは、単一
のアンケート内のものに限定されます。
IncludeComplete は、完了とマーク付けされている回答フォームのみを返す場合に指定します。
IncludeIncomplete は、完了とマーク付けされていない回答フォームのみを返す場合に指定します。
注意: IncludeComplete と IncludeIncomplete の両方に false を設定することはできません。
SQLName は、SQL リポジトリ (Dialogue Admin) の中の SQL 定義を参照する、オプションのパラ
メータです。 指定された場合は、この SQL はエクスポートする回答フォーム ID (qaf_id) のリストを
返す必要があります。 この SQL によって返される列は、mh_answer_form_id という名前である必
要があります。 SQL が指定されなかった場合は、データベース内のすべての回答フォームがエクス
ポートされます。
void ExportAnswerFormsUNC( string ServerSession, integer QuestionnaireID, string SQLName,
string ExportUNC )
ExportAnswerForms と同じですが、XML 文字列の代わりにファイル パスを処理します。
ExportUNC は、エクスポートされた回答フォームを含む XML ファイルの UNC です。
void ExportAnswerFormsUNCEx( string ServerSession, integer QuestionnaireID, bool IncludeComplete,
bool IncludeUncomplete, string SQLName, string ExportUNC )
ExportAnswerFormsEx と同じですが、XML 文字列の代わりにファイル パスを処理します。
リファレンス ガイド
299
Quest API
ExportUNC は、エクスポートされた回答フォームを含む XML ファイルの UNC です。
string GetAnswerForm( string ServerSession, integer CustDomainID, string CustomerID, string Context,
integer QuestionnaireID )
指定された顧客によって回答済みの回答フォームを含む XML を返します。
CustDomainID は、顧客ドメインを指定する ID です。
CustomerID は顧客の ID で、Context は、顧客が回答を投稿したときのコンテキスト値です。
QuestionnaireID は、アンケートの ID です。
string GetAnswerFormByID( string ServerSession, int64 AnswerFormID )
顧客によって回答済みの回答フォームを含む XML を返します。
AnswerFormID は、取得する回答フォームの ID です。
string GetAnswerFormByIDEx( string ServerSession, int64 AnswerFormID, out string AnswerFormXML,
out string AnswerFormState )
顧客によって回答済みの回答フォームを含む XML を取得します。
回答フォームの識別子を返します。
AnswerFormID は、取得する回答フォームの ID です。
AnswerFormXML は、回答フォーム XML を含みます。
AnswerFormState は、回答フォームが完了されていない場合に、その状態を含みます。
string GetAnswerFormEx( string ServerSession, integer CustDomainID, string CustomerID, string
Context, integer QuestionnaireID, out string AnswerFormXML, out string AnswerFormState )
指定された顧客によって回答済みの回答フォームを含む XML を取得します。
回答フォームの識別子を返します。
CustDomainID は、顧客ドメインを指定する ID です。
CustomerID は顧客の ID で、Context は、顧客が回答を投稿したときのコンテキスト値です。
QuestionnaireID は、アンケートの ID です。
AnswerFormXML は、回答フォーム XML を含みます。
AnswerFormState は、回答フォームが完了されていない場合に、その状態を含みます。
string GetAnswerFormSchema( string ServerSession )
回答フォーム XML の定義を含む XML を返します。 これは、GetAnswerForm() および
GetAnswerFormByID() によって返される XML であり、また、PostAnswerForm() の呼び出しの中で
Dialogue Server に送信される XML でもあります。
string GetQuestionnaire( string ServerSession, string QuestionnaireID, bool IncludeLayouts )
300
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
指定されたアンケートの正式な定義を含む XML ドキュメントを返します。
IncludeLayouts が true の場合は、この XML に、アンケートのすべてのレイアウト定義を含める必要
があります。 それ以外の場合は、セクションと質問を含むアンケートの定義のみが含まれることに
なります。
string GetQuestionnaires( string ServerSession, string QuestionnaireID )
すべての使用可能なアンケートのリストを含む XML ドキュメントを返します。
datetime GetQuestionnaireTimestamp( string ServerSession, string QuestionnaireID )
アンケート デザイナでアンケート定義が最後に変更された日時を示す、アンケートの「変更タイム
スタンプ」を返します。
string GetResponseTrackLogSchema( string ServerSession )
PostResponseTrackLog( ) メソッドを使用して、回答追跡ログを投稿する際に使用される XML のス
キーマを返します。
string GetStyle( string ServerSession, integer StyleID )
HTML テンプレートと CSS クラスを含む、アンケート スタイルの定義を含む XML ドキュメントを
返します。
StyleID は、スタイルの一意の ID です。
string GetStyleSheetDefs( string ServerSession )
アンケートを Web 上にレンダリングする際に使用される、すべての CSS クラスのリストを含む XML
ドキュメントを返します。
integer ImportAnswerForms( string ServerSession, string SourceXML, out string SuccessXML, out
string ErrorXML )
回答フォームをインポートし、正常にインポートされた回答フォームの数を返します。
SourceXML は、Dialogue Database にインポートする回答フォームを含む XML ドキュメントです。
SuccessXML は、データベースから正常にインポートされた回答フォームを含む XML ドキュメント
です。 このドキュメントにおいて、回答フォームには、新しい一意の ID が与えられます
(answer_form_id)。
ErrorXML は、インポートできなかった回答フォームを含む XML ドキュメントです。 このドキュメ
ントの各フォームには、インポートに失敗した理由を示すエラー メッセージが含まれます。
integer ImportAnswerFormsUNC( string ServerSession, string SourceUNC, string SuccessUNC,
string ErrorUNC )
回答フォームをインポートし、正常にインポートされた回答フォームの数を返します。
SourceUNC は、Dialogue Database にインポートする回答フォームを含む XML ファイルの UNC で
す。
リファレンス ガイド
301
Report API
SuccessUNC は、データベースから正常にインポートされた回答フォームを含む XML ファイルの
UNC です。 このドキュメントにおいて、回答フォームには、新しい一意の ID が与えられます
(answer_form_id)。
ErrorUNC は、インポートできなかった回答フォームを含む XML ファイルの UNC です。 このドキュ
メントの各フォームには、インポートに失敗した理由を示すエラー メッセージが含まれます。
int64 PostAnswerForm( string ServerSession, string AnswerFormXML )
回答フォームを更新または挿入します。
AnswerFormXML は、新規または更新された回答フォームを含む XML ドキュメントです。 回答フォー
ムが顧客に関連付けられている場合は、顧客 ID を XML に含める必要があります。 XML は、
GetAnswerFormSchema() メソッドで取得される、回答フォーム XML の定義に従います。
int64 PostAnswerFormEx( string ServerSession, string AnswerFormXML, string CustomerDataXML,
string AnswerFormState )
回答フォームを更新または挿入します。
AnswerFormXML は、新規または更新された回答フォームを含む XML ドキュメントです。 回答フォー
ムが顧客に関連付けられている場合は、顧客 ID を XML に含める必要があります。 XML は、
GetAnswerFormSchema() メソッドで取得される、回答フォーム XML の定義に従います。
CustomerDataXML
AnswerFormState は、回答フォームの状態をオプションで含む文字列です。 不完全な回答フォーム
を保存する場合に使用できます。
void PostResponseTrackLog( string ServerSession, string ResponseTrackLogXML )
追跡ログ項目のセットをデータベースに投稿します。 回答追跡ログ項目は、データベース テーブル
QRY_RESPONSE_TRACK_LOG に保存されます。
ResponseWebTrackLogXML は、追跡ログ項目を含む XML ドキュメントです。 この XML ドキュメ
ントは、GetResponseTrackLogSchema( ) によって返される XML スキーマによって定義されます。
例
例はありません。
Report API
概要
Report API は、レポートをアクセスおよび生成するための一連のメソッドを提供します。
302
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
COM コンポーネント
COM コンポーネントである MHDialogServer.MHReportAPI は、インターフェース IMHReportAPI に
よって Report API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
void DeleteArchivedReport( string ServerSession, integer ReportArchiveID )
レポートをアーカイブから削除します。
ReportArchiveID は、アーカイブ化されたレポートの一意の ID です。
string FormatBinaryReport( string ServerSession, string ReportData, integer FormatIndex )
レポートのバイナリ表現を含む XML ドキュメントを受け取り、指定されたフォーマットで返しま
す。 返される XML ドキュメントには、フォーマットに対応する出力ファイルのコンテンツが含まれ
ます。
ReportData は、主要なデータと生成済みのレポートのバイナリ表現を含む XML ドキュメントです。
ReportData は通常は、GenerateBinaryReport( ) または GenerateReport( ) の呼び出しによって返さ
れた XML ドキュメントです。
FormatIndex は、返されるレポートに対して希望するドキュメント フォーマットを指定する番号で
す。 フォーマット番号は、GetReportDeviceTypes(..) を呼び出すことによって取得できます。 フォー
マット定義の一覧については、「レポート フォーマット」を参照してください。
integer GenerateArchivedReport( string ServerSession, integer ReportTemplateID, string Params,
string ReportName )
レポートを生成し、それをデータベース内のレポート アーカイブに保存します。 保存されたアーカ
イブ化レポートの一意の ID を返します。
ReportTemplateID は、レポート テンプレートの一意の ID です。
Params は、レポート生成時に使用するパラメータのセットを含む XML ドキュメントです。 レポー
ト テンプレートには、パラメータのセットを指定する必要のあるものとないものがあります。 XML
フォーマットについては、トピック「レポート パラメータ XML」に記載されています。
ReportName は、アーカイブ内のレポートに付ける名前です。
注意: 特定のドキュメント フォーマットでレポートを生成した結果を取得するには、
GetArchivedReport(..) を使用します。
string GenerateBinaryReport( string ServerSession, integer ReportTemplateID, string Params )
レポートを生成し、主要なデータとレポートのバイナリ表現を含む XML ドキュメントを返します。
ReportTemplateID は、レポート テンプレートの一意の ID です。
リファレンス ガイド
303
Report API
Params は、レポート生成時に使用するパラメータのセットを含む XML ドキュメントです。 レポー
ト テンプレートには、パラメータのセットを指定する必要のあるものとないものがあります。 XML
フォーマットについては、トピック「レポート パラメータ XML」に記載されています。
注意: GenerateBinaryReport( ) によって返された結果を、特定の出力フォーマットに変換するには、
FormatBinaryReport( ) を呼び出します。
string GenerateReport( string ServerSession, integer ReportTemplateID, string Params, integer
FormatIndex, boolean IncludeBinaryOutput )
指定されたフォーマットでレポートを生成し、その結果を XML ドキュメントとして返します。 返さ
れる XML ドキュメントには、フォーマットに対応する出力ファイルのコンテンツが含まれます。
ReportTemplateID は、レポート テンプレートの一意の ID です。
Params は、レポート生成時に使用するパラメータのセットを含む XML ドキュメントです。 レポー
ト テンプレートには、パラメータのセットを指定する必要のあるものとないものがあります。 XML
フォーマットについては、トピック「レポート パラメータ XML」に記載されています。
FormatIndex は、返されるレポートに対して希望するドキュメント フォーマットを指定する番号で
す。 フォーマット番号は、GetReportDeviceTypes(..) を呼び出すことによって取得できます。 フォー
マット定義の一覧については、「レポート フォーマット」を参照してください。
IncludeBinaryFormat は、生成されたレポートのバイナリ表現を、返される XML ドキュメントに含
めるかどうかを指定します。 バイナリ表現は、FormatBinaryReport( ) および SaveReportToArchive(
) を呼び出す際に必要です。
void GenerateReportUNC( string ServerSession, integer ReportTemplateID, string Params, integer
FormatIndex, string ReportUNC )
指定されたフォーマットでレポートを生成し、それをファイルに保存します。
ReportTemplateID は、レポート テンプレートの一意の ID です。
Params は、レポート生成時に使用するパラメータのセットを含む XML ドキュメントです。 レポー
ト テンプレートには、パラメータのセットを指定する必要のあるものとないものがあります。 XML
フォーマットについては、トピック「レポート パラメータ XML」に記載されています。
FormatIndex は、返されるレポートに対して希望するドキュメント フォーマットを指定する番号で
す。 フォーマット番号は、GetReportDeviceTypes(..) を呼び出すことによって取得できます。 フォー
マット定義の一覧については、「レポート フォーマット」を参照してください。
ReportUNC は、ターゲット レポート ファイルのフル パスとファイル名です。
注意: メイン レポート ファイルのみがディスクに保存されます。つまり、複数のファイルを生成す
るレポート フォーマットはサポートされていません。
string GetArchivedReport( string ServerSession, integer ReportArchiveID, integer FormatIndex )
指定されたフォーマットのアーカイブ化レポートを XML ドキュメントとして返します。
304
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
ReportArchiveID は、アーカイブ化されたレポートの一意の ID です。
FormatIndex は、返されるレポートに対して希望するドキュメント フォーマットを指定する番号で
す。 フォーマット番号は、GetReportDeviceTypes(..) を呼び出すことによって取得できます。 フォー
マット定義の一覧については、「レポート フォーマット」を参照してください。
string GetArchivedReportInfo( string ServerSession, integer ReportArchiveID )
単一のアーカイブ化レポートに関する詳細情報を XML として返します。
ReportArchiveID は、アーカイブ化されたレポートの一意の ID です。
string GetArchivedReportList( string ServerSession, integer ReportTemplateID )
1 つのテンプレートを基にソートされた、すべてのアーカイブ化レポートのリストを XML として返
します。
ReportTemplateID は、レポート テンプレートの一意の ID です。
void GetArchivedReportUNC( string ServerSession, integer ReportArchiveID, integer FormatIndex,
string ReportUNC )
アーカイブ化されたレポートを、指定されたフォーマットでファイルに保存します。 ReportArchiveID
は、アーカイブ化されたレポートの一意の ID です。
FormatIndex は、レポートに対して希望するドキュメント フォーマットを指定する番号です。 フォー
マット番号は、GetReportDeviceTypes(..) を呼び出すことによって取得できます。 フォーマット定
義の一覧については、「レポート フォーマット」を参照してください。
ReportUNC は、ターゲット レポート ファイルのフル パスとファイル名です。
注意: メイン レポート ファイルのみがディスクに保存されます。つまり、複数のファイルを生成す
るレポート フォーマットはサポートされていません。
string GetParamLookupDataset( string ServerSession, integer ReportParamID )
レポート パラメータの検索値を含む XML ドキュメントを返します。
string GetReportFormats( string ServerSession )
すべてのレポート出力フォーマット (サポートされるすべてのドキュメント フォーマット) を含む
XML ドキュメントを返します。 各フォーマットには、フォーマット インデックスと説明がありま
す。 フォーマット インデックス値は、例えば GenerateReport(..) など、他のメソッドの呼び出しで
使用されます。
フォーマット定義の一覧については、「レポート フォーマット」を参照してください。
string GetReportParamSchema( string ServerSession )
GenerateReport(..) や GenerateArchivedReport(..) などのメソッド呼び出しにおいて、パラメータ値
を指定するために使用する XML のスキーマを返します。
リファレンス ガイド
305
Report API
string GetReportPortalURL( string ServerSession, integer ReportTemplateID, string Params, integer
FormatIndex, string ViewAction )
Report Portal アプリケーションでレポートを実行および表示するために使用する URL を返します。
ReportTemplateID は、レポート テンプレートの一意の ID です。
Params は、レポート生成時に使用するパラメータのセットを含む XML ドキュメントです。 レポー
ト テンプレートには、パラメータのセットを指定する必要のあるものとないものがあります。 XML
フォーマットについては、トピック「レポート パラメータ XML」に記載されています。
FormatIndex は、返されるレポートに対して希望するドキュメント フォーマットを指定する番号で
す。 フォーマット番号は、GetReportDeviceTypes(..) を呼び出すことによって取得できます。 フォー
マット定義の一覧については、「レポート フォーマット」を参照してください。
ViewAction は、Report Portal におけるレポートの表示方法を指定します。 とり得る値については、
「レポート表示アクション」を参照してください。
string GetReportTemplateInfo( string ServerSession, integer ReportTemplateID)
レポート テンプレートに関する詳細情報を XML として返します。 レポートのすべてのパラメータ
定義が含まれます。
ReportTemplateID は、レポート テンプレートの一意の ID です。
string GetReportTemplates( string ServerSession )
すべてのレポート テンプレート フォルダとレポート テンプレートを含む XML ドキュメントを返し
ます。
string GetSystemReportTemplates( string ServerSession, string ReportSystemType )
指定されたレポート システム タイプの、すべてのレポート テンプレートを含む XML ドキュメント
を返します。 レポート システム タイプは、レポート テンプレートのオプションの設定で、そのレ
ポートがどのようなタイプの「オブジェクト」に関するものであるかを表します。 すべてのレポー
ト システム タイプは、データベース テーブル REPORT_SYSTEM_TYPE で定義されます。
integer SaveReportToArchive( string ServerSession, string ReportData, string ReportName )
ReportData に含まれているレポートを、レポート アーカイブに保存します。 アーカイブ ID を返し
ます。
ReportData は、主要なデータと生成済みのレポートのバイナリ表現を含む XML ドキュメントです。
ReportData は通常は、GenerateBinaryReport( ) または GenerateReport( ) の呼び出しによって返さ
れた XML ドキュメントです。
例
以下の例では、Dialogue Server によってレポートが生成され、その結果が XML ドキュメントとして
返されています。 例えば、結果として得られたレポートが PDF フォーマットである場合、XML には、
306
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
エンコードされたバイナリ PDF ドキュメントが含まれることになります。 この例は、JScript を使用
しています。
..............
//Connect to the DialogServer
SystemAPI = new ActiveXObject("MHDialogServer.MHReportAPI");
//Log in
var InstanceName = "MHProduction";
var SessionKey = SystemAPI.Login(InstanceName,
"admin", "ringo1", "MH Test");
var ServerSession = SessionKey + "@"
+ InstanceName;
//Now generate a report based on a report template, and
retrieve the report output
ReportAPI = new ActiveXObject("MHDialogServer.MHReportAPI");
var ReportXML = ReportAPI.GenerateReport(ServerSession,
1000, "", 3, False);
//Log out
SystemAPI.Logout(ServerSession);
..............
Selection API
概要
Report API は、レポートをアクセスおよび生成するための一連のメソッドを提供します。
COM コンポーネント
COM コンポーネントである MHDialogServer.MHSelectionAPI は、インターフェース IMHSelectionAPI
によって Generic API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
void DeleteCustomerList( string ServerSession, integer ListID )
既存の顧客リストを削除します。
ListID は、既存リストの ID (データベース列 LIST.LST_ID) です。
void DeletePsrCustomerList( string ServerSession, integer PsrListID )
リファレンス ガイド
307
Selection API
Portrait Shared Repoistory 内にある ID によって識別される既存の顧客リストを削除します。 指定さ
れた PsrListID を持つリストが見つからない場合は、例外が発生します。
PsrListID は、Portrait Shared Repository (PSR) 内にある既存リストの PSR ID です。
void DeletePsrSelection( string ServerSession, integer PsrSelectionID )
Portrait Shared Repoistory 内にある ID によって識別される既存の PD セレクションを削除します。
指定された PsrSelectionID を持つセレクションが見つからない場合は、例外が発生します。
PsrSelectionID は、PSR 内にある既存セレクションの ID です。
void DeleteSelection( string ServerSession, integer SelectionID )
既存のセレクションを削除します。
SelectionID はセレクションの ID です。
string GetCustomerLists( string ServerSession )
すべての顧客ドメインに対するすべての定義済みの顧客リストの説明を含む XML ドキュメントを返
します。
注意: GetCustomerLists(..) は、リストのメンバーを返しません。
string GetSelections( string ServerSession )
すべての顧客ドメインに対するすべての定義済みの顧客セレクションを含む XML ドキュメントを返
します。
int SavePsrCustomerList( string ServerSession, integer PsrListID, integer DomainID, string Name,
string Description, string CompressedListMembers )
(Portrait Explorer などからの) PSR リストに基づく PD リストを保存 (作成または更新) します。リス
トが存在しない場合は、作成します。 リストが既に存在する場合は、リストとそのリストのメンバー
を更新します。
SavePsrCustomerList(…) は、保存したリストの一意の ID (データベース列 LIST.LST_ID) を返し
ます。
PsrListID は、PSR 内のリストの ID です。
DomainID は、Portrait Dialogue のドメイン ID です。
Name は、リストの名前です。
Description は、リストの説明です。
CompressedListMembers は、PSR で定義されたフォーマットに従って圧縮された顧客 ID セットを
含む、ベース 64 でエンコードされた文字列です。
int SavePsrCustomerListAsynchronous( string ServerSession, integer PsrListID, integer DomainID,
string Name, string Description, string CompressedListMembers )
308
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
(Portrait Explorer などからの) PSR リストに基づく PD リストを非同期に保存 (作成または更新) しま
す。
このメソッドは、非同期に実行されることを除き、SavePSrCustomerList(...) とまったく同じです。
ただし、保存されているリストの一意の ID を返す代わりに、このメソッドを実行するために作成さ
れた Portrait Dialogue のバックグラウンド タスクの SystemTaskID を返します。
メソッド パラメータの説明については、SavePSrCustomerList(…) を参照してください。
integer SavePsrSelection( string ServerSession, integer PsrSelectionID, integer DomainID, string
Name, string Description, string PsrSelectionXml )
(Portrait Explorer などからの) PSR セレクションに基づく PD セレクションを保存 (作成または更新)
します。 セレクションが存在しない場合は作成します。 セレクションが存在する場合は更新します。
PD セレクションの ID を返します。
PsrSelectionID は、PSR 内のセレクションの ID です。
DomainID は、顧客ドメインを指定する ID です。
Name は、セレクションの名前です。
Description は、セレクションの説明です。
PsrSelectionXml は、PSR セレクションの XML です。
integer SaveSelection( string ServerSession, integer SelectionID, integer DomainID, string Name,
string Description, string Expression, string ContextExpression, bool UseInWebSearch, bool
UseInTestingMessages, bool UseInMessageConditions )
PD 式の構文に基づいて、ネイティブ PD セレクションを保存 (作成または更新) します。 セレクショ
ンが存在しない場合は作成します。 セレクションが存在する場合は更新します。 セレクションの ID
を返します。
SelectionID は、更新する既存のセレクションの ID です。 新しいセレクションの場合は、値 -1 を指
定します。
DomainID は、顧客ドメインを指定する ID です。
Name は、セレクションの名前です。
Description は、セレクションの説明です。
Expression は、セレクションの式です。
ContextExpression は、セレクションのコンテキスト式です。 空白の場合、セレクションはコンテキ
ストをサポートしません。
UseInWebSearch が true に設定されている場合、セレクションは Customer View で使用できます。
UseInTestingMessages が true に設定されている場合、セレクションはメッセージ テンプレートを
テストするときに使用できます。
リファレンス ガイド
309
System API
UseInMessageConditions が true に設定されている場合、セレクションはメッセージ テンプレート
で条件を定義するときに使用できます。
integer SaveSqlSelection( string ServerSession, integer SelectionID, integer DomainID, string Name,
string Description, string Sql, bool HasContext, bool UseInWebSearch, bool UseInTestingMessages,
bool UseInMessageConditions )
SQL ステートメントに基づいて、ネイティブ PD セレクションを保存 (作成または更新) します。 セ
レクションが存在しない場合は作成します。 セレクションが存在する場合は更新します。 セレクショ
ンの ID を返します。
SelectionID は、更新する既存のセレクションの ID です。 新しいセレクションの場合は、値 -1 を指
定します。
DomainID は、顧客ドメインを指定する ID です。
Name は、セレクションの名前です。
Description は、セレクションの説明です。
Sql は、セレクションの SQL ステートメントです。
HasContext が true に設定されている場合、セレクション SQL はコンテキスト列を返す必要があり
ます。
UseInWebSearch が true に設定されている場合、セレクションは Customer View で使用できます。
UseInTestingMessages が true に設定されている場合、セレクションはメッセージ テンプレートを
テストするときに使用できます。
UseInMessageConditions が true に設定されている場合、セレクションはメッセージ テンプレート
で条件を定義するときに使用できます。
例
例はありません。
System API
概要
System API は、一連のシステム レベル メソッドを提供します。 システム レベル メソッドとは、イ
ンスタンス、ユーザー、ログインといった Dialogue Server の技術的な側面を処理するための機能で
す。 システム レベル メソッドは、顧客やダイアログ関連のデータは扱いません。
310
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
COM コンポーネント
COM コンポーネントである MHDialogServer.MHSystemAPI は、インターフェース IMHSystemAPI に
よって System API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
bool CheckSystemObjectLock( string ServerSession, string ObjectName, integer ObjectID, out string
LockedByUser )
システム オブジェクトがロックされているかどうかを確認し、ロックされている場合は、true を返
します。 ロックは通常、オブジェクト (ダイアログなど) が編集中であるかどうかを制御するために
使用します。
ObjectName は、オブジェクト タイプの名前です (データベース テーブル SYSTEM_OBJECT で定
義されています)。 ObjectName の例としては、 「dialog」があります。
ObjectID は、DialogID など、オブジェクト インスタンスの一意の識別子です。
LockedByUser は、システム オブジェクトに対するロックを保有しているユーザーのユーザー名を指
定する出力パラメータです。
UnlockSystemObject(...) と LockSystemObject(...) も参照してください。
string GetDefaultUserSetting( string ServerSession )
現在のアプリケーション システムに対する既定のユーザー設定を含む XML ドキュメントを返しま
す。 既定のユーザー設定は、データベース テーブル APPLICATION_SYSTEM に格納されています。
string GetInstances( )
対象とするダイアログ ホスト内の Dialogue Database のすべてのインスタンスを含む XML ドキュメ
ントを返します。 ダイアログ ホストとは、Dialogue Server を稼働するコンピュータまたはサーバー
です。
string GetParameterCollection( string ServerSession, string CollectionName )
システム パラメータのコレクションを、そのパラメータ名および値とともに含む XML ドキュメント
を返します。 これらは、Dialogue Admin で定義されたパラメータです。
CollectionName は、返されるパラメータのコレクションの名前です。 システム パラメータは、
Dialogue Admin において定義される際に、コレクションと呼ばれるグループに分割されます。
string GetServerDefaultLanguage( )
Dialogue Server の既定の言語コードを含む文字列を返します。
注意: 既定の言語は、インスタンスごとにオーバーライドできます。 GetInstances(..) メソッドに
よって返される XML には、各インスタンスの言語コードが含まれます。
string GetServerName( )
リファレンス ガイド
311
System API
Dialogue Server が稼働しているマシンの名前を含む文字列を返します。
string GetServerVersion( )
Dialogue Server のバージョン番号を含む文字列を返します。 例えば、"4.4.0.5" となります。
string GetSystemUserInfos( string ServerSession )
システムで定義されたすべてのシステム ユーザーを含む XML ドキュメントを返します。 システム
ユーザーは、Dialogue Admin において追加および設定されます。 このドキュメントには、ユーザー
とタスク作業グループの間の関係に関する情報も含まれます (twgm_twg_id)。
string GetUserSessionInfo( string ServerSession )
現在のログインまたはユーザー セッションの情報を含む XML ドキュメントを返します。 これには、
アクセス権、オブジェクト所有権、カスタマイズされた設定が含まれます。
string GetUserSessionInfoSimple( string ServerSession )
現在のログインまたはユーザー セッションの基本情報を含む XML ドキュメントを返します。 この
メソッドが返すのは、GetSystemUserInfo(..) が返す情報のサブ セットで、アクセス権、オブジェク
ト所有権、およびカスタマイズされた設定は含まれません。
void LockSystemObject( string ServerSession, string ObjectName, integer ObjectID )
システム オブジェクトを、現在のユーザーのコンテキストにおいてロックします。 ロックは通常、
オブジェクト (ダイアログなど) が編集中であるかどうかを制御するために使用します。
ObjectName は、オブジェクト タイプの名前です (データベース テーブル SYSTEM_OBJECT で定
義されています)。 ObjectName の例としては、 「dialog」があります。
ObjectID は、DialogID など、オブジェクト インスタンスの一意の識別子です。
UnlockSystemObject(...) と CheckSystemObjectLock(...) も参照してください。
string Login( string InstanceName, string UserName, string Password, string ApplicationSystem )
ユーザーを Dialogue Server にログオンします。 サーバー セッションが作成され、このセッション
を特定する一意の文字列 (セッション キー) が返されます。
InstanceName は、アクセスされる Dialogue Database インスタンスの名前です。
UserName と Password は、ログオンするユーザーを特定するものです。
ApplicationSystem は、Dialogue Server によって、サーバー セッションの作成を認可されているシ
ステムです。 アプリケーション システムは、Dialogue Admin においてセットアップされます。
注意: Dialogue Server API のほとんどのメソッドに、文字列型引数 ServerSession があります。こ
の文字列は、Login によって返される識別子にインスタンス名を付加したものです。
ServerSession の形式は以下のとおりです。
<session key>@<instance name>
312
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
string LoginDelegate( string InstanceName, string DelegatorUserName, string DelegatorPassword,
string ApplicationSystem, string UserName, bool RequireWinAuthEnabled )
委任者ユーザーによる、別のユーザーの Dialogue Server へのログオンを実行します。 指定された
ユーザーのサーバー セッションが作成され、セッション キーが返されます。
InstanceName は、アクセスされる Dialogue Database インスタンスの名前です。
DelegatorUserName と DelegatorPassword は、ログオンを実行する委任者ユーザーを特定するもの
です。
ApplicationSystem は、Dialogue Server によって、サーバー セッションの作成を認可されているシ
ステムです。 アプリケーション システムは、Dialogue Admin においてセットアップされます。
UserName は、ログオンされるユーザーを特定するものです。
RequireWinAuthEnabled は、ログオンされるユーザーの「Windows 認証」が有効でなければならな
いかどうかを指定します。
注意: 委任者ユーザーは、[他のユーザー用のユーザー セッションの作成を許可] の権限を持つ必要
があります。
string LoginEx( string ServerSession, string ApplicationSystem )
InstanceName、UserName、および Password の代わりに、既に有効な ServerSession が指定され
る点を除き、Login と同じです。 LoginEx によって、あるシステムに既にログオンしているユーザー
が、異なるアプリケーション システムにログインすることが可能になります。
string LoginWinAuth( string InstanceName, string ApplicationSystem )
ユーザーの認証に Windows セキュリティを使用する点を除き、Login と同じです。 Dialogue Server
は、コーラーの ID によってユーザーを特定し、そのユーザーが存在し、「Windows 認証」が設定さ
れているかを確認します。
string Logout( string ServerSession )
指定されたサーバー セッションをログアウトします。
void SetUserSessionLanguage( string ServerSession, string LanguageCode)
現在のユーザー セッションの言語を設定します。 これによって、Dialogue Server は、エラー メッ
セージやその他の文字列を、指定された言語で返すようになります。
LanguageCode は、"en-US" (米国英語) や "ja-JP" (フランス語) などの言語コードです。
注意: ソフトウェア モジュール (Dialogue Server など) は複数の言語をサポートしますが、データ
ベース内の文字列は複数言語には対応しておらず、Dialogue Database をインストールまたは
アップグレードした際に選択された言語のみをサポートします。
void UnlockSystemObject( string ServerSession, string ObjectName, integer ObjectID)
システム オブジェクトのロックを解除します。
リファレンス ガイド
313
Telemarketing API
ObjectName は、オブジェクト タイプの名前です (データベース テーブル SYSTEM_OBJECT で定
義されています)。 ObjectName の例としては、 「dialog」があります。
ObjectID は、DialogID など、オブジェクト インスタンスの一意の識別子です。
LockSystemObject(...) と CheckSystemObjectLock(...) も参照してください。
void UpdateUserSettings( string ServerSession, string Settings )
Settings という文字列を Dialogue Database に保存します。 この文字列は、例えば XML ドキュメン
トである場合もあります。 この文字列は、ユーザーごとに保存され、GetUserSessionInfo メソッド
によって返される XML ドキュメントに含まれます。
bool ValidateServerSession( string ServerSession )
サーバー セッションを確認し、有効ならば true、そうでなければ false を返します。
例
以下の例では、サーバー セッションが作成され、いくつかの顧客に関する情報が Dialogue Server か
ら取得されています。 この例は、JScript を使用しています。
..............
//Connect to the DialogServer
SystemAPI = new ActiveXObject("MHDialogServer.MHSystemAPI");
//Log in
var InstanceName = "MHProduction";
var SessionKey = SystemAPI.Login(InstanceName, "admin", "ringo1", "MH Test");
var ServerSession = SessionKey + "@" + InstanceName;
//Now get some customers
CustomerAPI = new ActiveXObject("MHDialogServer.MHCustomerAPI");
var CustomerXML = CustomerAPI.GetCustomers(ServerSession, 1000,
"Address.City=\"Oslo\"", "", "", -1);
//Log out (we got what we wanted)
SystemAPI.Logout(ServerSession);
..............
Telemarketing API
概要
Telemarketing API は、テレマーケティング プロジェクトと参加顧客にアクセスするための一連のメ
ソッドを提供します。
314
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
COM コンポーネント
COM コンポーネントである MHDialogServer.MHTelemarketingAPI は、IMHTelemarketingAPI イン
ターフェースによって Telemarketing API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
int64 CallComplete( string ServerSession, integer CCProjectID, int64 ParticipantID, string CallStatus,
datetime NextCallDateTime, string AssignToUserName, string Note, string AnswerFormDataXML )
テレマーケティング参加顧客に新しいステータスを与えることによって、単一のコール オペレーショ
ンを完了します。 テレマーケティング プロジェクトでアンケートを使用する場合は、このメソッド
は、パラメータ AnswerFormDataXML によって指定された回答フォームの投稿も行います。 フォー
ムが投稿される場合は、CallComplete は、回答フォームの ID を返します。それ以外の場合は -1 を
返します。
CCProjectID は、テレマーケティング プロジェクトの ID です。
ParticipantID は、参加顧客の ID です。 これは、ダイアログ参加顧客の ID です。
CallStatus は、テレマーケティング参加顧客の現在のステータスとして設定される、コール ステー
タスのテクニカル名です。 コール ステータス タイプは、Dialogue Admin において定義されます。
AssignToUserName は、後の時点でこの参加顧客をコールするユーザーの名前です。
AssignToUserName を空白のままにした場合は、任意のテレマーケティング ユーザーがこの参加顧
客を取得する可能性があります。
Note は、参加顧客のコール履歴に保存されたテキスト値です。
AnswerFormDataXML は、テレマーケティング オペレーションを完了するために必要な回答フォー
ムを含む XML ドキュメントです。 この XML ドキュメントは、Microsoft ADO.NET で定義されてい
る XML Diffgram の形式に従います。 テレマーケティング プロジェクトには、関連するアンケート
が存在する場合も存在しない場合もあります。
string FetchNextToCall( string ServerSession, integer CCProjectID, string FilterExpression, string
AssignedToUserName, string CurrentCallStatus, bool FilterOnRecall, string DataFields )
次にコールするテレマーケティング参加顧客を含む XML ドキュメントを返します。 XML は、
DataFields で指定された顧客データを返します。 参加顧客は、サーバーによってコール用にロック
されます。
CCProjectID は、テレマーケティング プロジェクトの ID です。
FilterExpression は、返す参加顧客が取得される、参加顧客のセレクションのフィルタまたは絞り込
みを行うために使用する式です。
AssignedToUserName が指定された場合は、サーバーは、指定されたユーザーに割り当て済みの参
加顧客のみを検索します。
リファレンス ガイド
315
Telemarketing API
CurrentCallStatus が指定された場合は、サーバーは、指定されたコール ステータスを持つ参加顧客
のみを検索します。
FilterOnRecall が true である場合は、サーバーは、再コールとなる参加顧客のみを検索します。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
string FetchToCall( string ServerSession, integer CCProjectID, int64 ParticipantID, string DataFields
)
指定された、コールするテレマーケティング参加顧客を含む XML ドキュメントを返します。 XML
は、DataFields で指定された顧客データを返します。 参加顧客は、サーバーによってコール用にロッ
クされます。 参加顧客がコール キューに存在しない場合は、エラーが発生します。
CCProjectID は、テレマーケティング プロジェクトの ID です。
ParticipantID は、返される参加顧客の ID です。 これは、ダイアログ参加顧客の ID です。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
string GetCallStatusTypes( string ServerSession )
Dialogue Admin で定義されたすべてのコール ステータス タイプを含む XML ドキュメントを返しま
す。
integer GetCCParticipantCount( string ServerSession, integer CCProjectID, string FilterExpression,
string LockedByUserName, string AssignedToUserName, string CurrentCallStatus, bool FilterOnRecall)
与えられた条件を満たすテレマーケティング参加顧客の数を返します。
CCProjectID は、テレマーケティング プロジェクトの ID です。
FilterExpression は、カウントする参加顧客のセレクションのフィルタまたは絞り込みを行うために
使用する式です。
LockedByUserName が指定された場合は、サーバーは、指定されたユーザーによってロックされて
いる参加顧客のみを検索します。
AssignedToUserName が指定された場合は、サーバーは、指定されたユーザーに割り当て済みの参
加顧客のみを検索します。
CurrentCallStatus が指定された場合は、サーバーは、指定されたコール ステータスを持つ参加顧客
のみを検索します。
FilterOnRecall が true である場合は、サーバーは、再コールとなる参加顧客のみを検索します。
string GetCCParticipantDetails( string ServerSession, integer CCProjectID, int64 ParticipantID )
指定されたテレマーケティング参加顧客のコール ログを含む XML ドキュメントを返します。
CCProjectID は、テレマーケティング プロジェクトの ID です。
ParticipantID は、返される参加顧客の ID です。 これは、ダイアログ参加顧客の ID です。
316
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
string GetCCParticipants( string ServerSession, integer CCProjectID, string FilterExpression, string
LockedByUserName, string AssignedToUserName, string CurrentCallStatus, bool FilterOnRecall, string
DataFields, integer MaxCount )
指定された条件を満たすテレマーケティング参加顧客を含む XML ドキュメントを返します。 XML
は、DataFields で指定された顧客データを返します。
CCProjectID は、テレマーケティング プロジェクトの ID です。
FilterExpression は、返す参加顧客が取得される、参加顧客のセレクションのフィルタまたは絞り込
みを行うために使用する式です。
LockedByUserName が指定された場合は、サーバーは、指定されたユーザーによってロックされて
いる参加顧客のみを検索します。
AssignedToUserName が指定された場合は、サーバーは、指定されたユーザーに割り当て済みの参
加顧客のみを検索します。
CurrentCallStatus が指定された場合は、サーバーは、指定されたコール ステータスを持つ参加顧客
のみを検索します。
FilterOnRecall が true である場合は、サーバーは、再コールとなる参加顧客のみを検索します。
DataFields は、XML ドキュメントで返される、(顧客ドメイン定義からの) 顧客データ グループおよ
びフィールドがセミコロンで区切られたリストです。
string GetCCProjects( string ServerSession )
定義されているすべてのテレマーケティング プロジェクトを含み、説明する XML ドキュメントを返
します。
string GetStatistics( string ServerSession, integer CCProjectID )
指定されたテレマーケティング プロジェクトに関する集約データを含む XML ドキュメントを返しま
す。
void UnlockCCParticipant( string ServerSession, integer CCProjectID, int64 ParticipantID )
指定されたテレマーケティング参加顧客をロック解除します。 これにより、開始されたコールはキャ
ンセルされ、参加顧客はコール キューに戻されます。 ロック解除する参加顧客は、それまでに
FetchNextToCall または FetchToCall によってロックされている必要があります。
CCProjectID は、テレマーケティング プロジェクトの ID です。
ParticipantID は、ロック解除する参加顧客の ID です。 これは、ダイアログ参加顧客の ID です。
例
例はありません。
リファレンス ガイド
317
Web Utils API
Web Utils API
概要
メール リンク追跡や、Web に発行済みのファイルへのアクセスといった、Web ユーティリティ機能
にアクセスするための API。
COM コンポーネント
COM コンポーネントである MHDialogServer.MHWebUtilsAPI は、インターフェース IMHWebUtilsAPI
によって Web Utils API を実装します。
メソッド
以下のメソッドまたは SOAP 操作がサポートされています。
string AddWebPublicFile( string ServerSession, variant ContentBinary, string Filename, string
Description )
Dialogue Server 内のファイルを発行して、Web Utilities アプリケーション への URL を使用してそ
れにアクセスできるようにします。 Web に発行済みのファイルは、データベース テーブル
WEB_PUBLIC_FILE に格納されます。
AddWebPublicFile(..) は、発行されるファイルに自動的に割り当てられるコンテンツ ID を返します。
コンテンツ ID は、ファイルを一意に識別する文字列 (GUID) です。
ContentBinary は、バイト配列で表されたファイルのコンテンツです。
Filename は、パス情報を除く、ファイル名と拡張子部分を含むファイルの名前です。 例 : mylogo.jpg。
Description は、Dialogue Database 内のファイルとともに保存される、ファイルに関する説明で、
オプションです。
void DeleteWebPublicFile( string ServerSession, string ContentID )
Web に発行済みのファイルを削除します。
ContentID は、ファイルを一意に識別する文字列 (GUID) です。
string ExecuteContentObject( string ServerSession, string ContentObjectKey, string
ContentOutputMode, integer CustDomainID, string CustomerID, string Context, int64 ParticipantID,
string RequestParams )
コンテンツ オブジェクトを実行し、結果として得られたコンテンツを返します。
ContentObjectKey は、コンテンツ オブジェクトを特定する一意の文字列です。 この値は、Visual
Dialogue の [コンテンツ オブジェクトのプロパティ] の下にあります。
318
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
ContentOutputMode は、結果として得られたコンテンツを、HTML の観点からどのように返すかを
指定します。 指定できるモードは次のとおりです。
値
説明
unwrapped
結果として得られたコンテンツ項目の純粋なコン
テンツのみを返します。
例 : 結果として得られたコンテンツ項目がイメー
ジである場合は、イメージそのものへの URL の
みが返されます。
wrapped
結果として得られたコンテンツ項目を、HTML
ページに表示するための、適切な HTML 要素の
中に配置します。
例 : 結果として得られたコンテンツ項目がイメー
ジである場合は、<IMG> 要素が返されます。
ページ
結果として得られたコンテンツ項目を、HTML
ページの中に配置します。 コンテンツ オブジェ
クトが HTML ページ上で <IFRAME> 要素を使用
して表示される場合は、このモードが適していま
す。
例 : 結果として得られたコンテンツ項目がイメー
ジである場合は、<IMG> 要素を含む HTML ペー
ジのソースが返されます。
CustDomainID、CustomerID、および Context は、コンテンツ オブジェクトの実行対象となる顧客
を特定します。 コンテンツ オブジェクトの対象顧客タイプが、[特定] である場合は、CustDomainID
が与えられるため、ExecuteContentObject(..) の呼び出しでこれを指定する必要はありません
(CustDomainID に -1 を設定します)。
CustomerID と Context を指定する代わりに、ダイアログの参加顧客の一意の ID である ParticipantID
を指定することもできます。
コンテンツ オブジェクトを匿名モードで呼び出す場合は、CustDomainID と ParticipantID に -1 を設
定し、CustomerID と Context を空白にします。
RequestParams は、コンテンツ オブジェクトの呼び出しにおける追加のパラメータを含む文字列で
す。 この文字列の形式は以下のとおりです。
<param1>=<value1>;<param2>=<value2>;...;<paramN>=<valueN>
例:
MyInfo1=B;MyInfo2=C
リファレンス ガイド
319
Web Utils API
注意: この API メソッドを呼び出す代わりに、Web Utilities アプリケーションへの URL を使用して
コンテンツ ブジェクトを実行することもできます。 この URL は、Web ページの HTML コー
ドの中で直接使用できます。 を参照してください。 コンテンツ オブジェクト URL(102ペー
ジ)
string GetContentObjects( string ServerSession )
すべてのアクティブなコンテンツ オブジェクトのリストを XML として返します。 各コンテンツ オ
ブジェクトの主要なプロパティがこの XML に含まれます。
string GetWebPublicFile( string ServerSession, string ContentID )
Web に発行済みのファイルの内容を XML として返します。
ContentID は、ファイルを一意に識別する文字列 (GUID) です。
string GetWebPublicFiles( string ServerSession )
Web に発行済みのすべてのファイルのリストを XML として返します。 リストには、各ファイルに
関する主要な情報が含まれます。 リストはファイル名によってソートされます。
string GetWebPublicFileURL( string ServerSession, string ContentID )
Web に発行済みのファイルへの URL を返します。 URL は、Web Utilities アプリケーションを指し
ます。
ContentID は、ファイルを一意に識別する文字列 (GUID) です。
string GetWebPublicFileURLEx( string ServerSession, string ContentID, integer RefreshMode )
Web Utilities アプリケーションのファイル キャッシュ メカニズムを制御するパラメータが追加され
ていることを除き、GetWebPublicFileURL( ) と同じです。
RefreshMode は、返された URL によって、ファイルのキャッシュ コピーを更新する必要があるか
どうかを制御します。 RefreshMode がとり得る値は以下のとおりです。
値
値の名前
説明
0
return
ファイルはレスポンスに含まれ
ますが、キャッシュは更新され
ません。
1
最新の情報に更新
キャッシュはクリアされます
が、ファイルはレスポンスに含
まれません。
2
refresh_return
キャッシュが更新され、ファイ
ルはレスポンスに含まれます。
string GetWebTrackLinkNames( string ServerSession )
320
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
使用されたリンク追跡名のリストを XML として返します。
注意: リンク名のリストは、データべース (WEB_TRACK_LINK_NAME) に保持され、メッセージの
マージ時にサーバーによって設定されます。
string GetWebTrackLogSchema( string ServerSession )
PostWebTrackLog( ) メソッドを使用して追跡ログを投稿する際に使用される XML のスキーマを返し
ます。
string LookupShortenedURL( string ServerSession, string ShortenedUrlKey, bool DisableLinkTracking
)
短縮 URL キーに基づいて、リダイレクト先の URL を返します。
ShortenedUrlKey は、短縮 URL キーです。
DisableLinkTracking は、リンク追跡を無効にするかどうかを指定します。
void PostWebTrackLog( string ServerSession, string WebTrackLogXML )
追跡ログ項目のセットをデータベースに投稿します。 Web 追跡ログは、データベース テーブル
WEB_TRACK_LOG に保存されます。
WebTrackLogXML は、追跡ログ項目を含む XML ドキュメントです。 この XML ドキュメントは、
GetWebTrackLogSchema( ) によって返される XML スキーマによって定義されます。
void PostWebTrackLogItem( string ServerSession, string LogType, datetime Tmestamp, int64
CustomerMessageID, string URL, string LinkName, string UserAgent, string BrowserType, string
BrowserVersion, string PlatformName, string CustomValue1, string CustomValue2, string CustomValue3
)
単一の追跡ログ項目をデータベースに投稿します。 Web 追跡ログは、データベース テーブル
WEB_TRACK_LOG に保存されます。
LogType は、ログの種類の名前です。
Timestamp は、ログ項目の日付と時刻の値です。
CustomerMessageID は、データベース テーブル CUSTOMER_MESSAGE 内のレコードを参照しま
す。 この ID は、例えば、ログ項目が顧客に送信した電子メールに基づくものである場合に、関連
メッセージを特定します (メールとリンクの追跡)。
URL は、ログ項目に関連付けられたリンクの URL です。 リンク追跡の場合は、顧客がリダイレク
トされた URL になります。
LinkName は、リンク追跡で使用されるリンク (または URL) の名前です。 リンク名は、Visual Dialogue
でメッセージ テンプレートをデザインする際に、ユーザーによって定義されます。
UserAgent は、顧客が使用するアプリケーション (Web ブラウザや電子メール クライアントなど) か
ら取得した情報を含む文字列です (オプション)。
BrowserType は、顧客が使用する Web ブラウザの名前です (オプション)。
リファレンス ガイド
321
Web Utils API
BrowserVersion は、顧客が使用する Web ブラウザのバージョンです (オプション)。
Platform は、顧客が使用するオペレーティング システムを表す文字列です (オプション)。
CustomValue1、CustomValue2、CustomValue3 は、ユーザー定義の文字列値です。 指定されたこ
れらの値は、データベース テーブル WEB_TRACK_LOG に保存されます。 各値の最大長は 254 文
字です。
string ShortenAndNameURL( string ServerSession, string OriginalUrl, string ShortUrlName, bool
EnableLinkTracking, bool ReplaceExistingNamedUrl, string ShortUrlPrefix )
OriginalUrl の短縮 URL とオプションの ShortUrlPrefix プレフィックスを URL パスの名前付
き部分に付加して返します (例:http://shorturl.pb.com/SpecialOffers/Christmas2013)。
EnableLinkTracking が true である場合、リンク追跡情報を収集し、短縮 URL 名をリンク名とし
て使用します。 呼び出されるたびに同じ URL を返しますが、以前に異なるパラメータで呼び出され
ていた場合はこの限りではなく、エラーが生成されます。 ReplaceExistingNamedUrl パラメー
タを true に設定することによって、この動作をオーバーライドできますが、以前生成された短縮 URL
は最新の OriginalUrl にリダイレクトされます。 注意 : 短縮 URL データベース テーブルは、そ
のインスタンス上のすべての顧客ドメインに共通です。 1 つの名前付き短縮 URL は、1 つのドメイ
ンに対してのみ使用します。
string ShortenAndTrackURL( string ServerSession, string OriginalUrl, string LinkName, string
ShortUrlPrefix )
OriginalUrl の短縮 URL とオプションの ShortUrlPrefix プレフィックスを URL のコード化部
分に付加して返します (例:http://shorturl.pb.com/SummerCampaign/AhF56yx)。 Portrait
Dialogue は、指定された LinkName のリンク追跡情報を収集します。 呼び出されるたびに異なる
URL を返します。
string ShortenURL( string ServerSession, string OriginalUrl, string ShortUrlPrefix )
OriginalUrl の短縮 URL とオプションの ShortUrlPrefix プレフィックスを URL のコード化部
分に付加して返します (例:http://shorturl.pb.com/SummerCampaign/AhF56yx)。 呼び出
されるたびに異なる URL を返します。
void UpdateWebPublicFile( string ServerSession, string ContentID, variant ContentBinary, string
Filename, string Description )
発行済みファイルの内容やその他のプロパティを更新します。 ファイルの ContentID は維持されま
す。
AddWebPublicFile(..) は、発行されるファイルに自動的に割り当てられるコンテンツ ID を返します。
コンテンツ ID は、ファイルを一意に識別する文字列 (GUID) です。
ContentID は、ファイルを一意に識別する文字列 (GUID) です。
ContentBinary は、バイト配列で表されたファイルのコンテンツです。
Filename は、パス情報を除く、ファイル名と拡張子部分を含むファイルの名前です。 例 : mylogo.jpg。
322
Portrait Dialogue 6.0 SP1
第 11 章 : Dialogue Server API
Description は、Dialogue Database 内のファイルとともに保存される、ファイルに関する説明で、
オプションです。
例
例はありません。
リファレンス ガイド
323
HQ 管理
• Portrait Shared Server . . . . . . . . . . . . . . . . . . . . . . . . . . .326
• を設定する Portrait HQ . . . . . . . . . . . . . . . . . . . . . . . . . . .326
• Portrait Shared Server を構成する . . . . . . . . . . . . . . . . . .327
• キャンペーン承認を有効にする . . . . . . . . . . . . . . . . . . . . .333
• HQ ユーザー権限を変更する . . . . . . . . . . . . . . . . . . . . . . .333
• マーケティング活動を構成する . . . . . . . . . . . . . . . . . . . . .336
• 顧客カードの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
• 結果データの統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343
• 外部データからのログの取り込み . . . . . . . . . . . . . . . . . . .355
• HQ のトラブルシューティング . . . . . . . . . . . . . . . . . . . . .356
12
Portrait Shared Server
Portrait Shared Server
Portrait Shared Server は、次の 5 つの主要コンポーネントで構成されます。
• Portrait Shared Services (PSS)。 Portrait Suite アプリケーション (Portrait Explorer、Miner、
Dialogue、および Interaction Optimizer) が相互に通信を行えるようにする Web サービス群を提供し
ます。
• Portrait Shared Repository (PSR)。 Portrait Shared Repository データベースおよび Portrait Data
Warehouse データベースを提供します。
• SharePoint Tasks (オプション)。 Portrait HQ でタスクを個人に割り当て、それを SharePoint で表
示します。タスクの可視性を大幅に向上させる統合タスク管理ソリューションです。 注意 : SharePoint
Tasks は、Portrait Dialogue および Portrait Interaction Optimizer に対してはオプションで、Portrait
Explorer に対しては必要ありません。
• Portrait Reports (オプション)。 Portrait Interaction Optimizer および Portrait Dialogue の運用パ
フォーマンスに関する既成のレポート群を提供します。 注意 : Portrait Reports は、Portrait Dialogue
および Portrait Interaction Optimizer に対してはオプションで、Portrait Explorer に対しては必要あり
ません。
• Portrait HQ。 Portrait HQ は、大規模な (1 対 1 の) マーケティング キャンペーンを一元的に計画、
開始、監視するためのダッシュボードを提供します。 Portrait HQ は、ユーザーの全体的なマーケ
ティング状態に関するライブ (最新の) 要約ビューだけでなく、リアルタイム データも提供するた
め、キャンペーンの進捗を評価し、必要ならば即座にアクションを取ることができます。
を設定する Portrait HQ
フレーム レートの構成
Portrait HQ クライアント アプリケーションで使用される最大フレーム レートを再構成するには、
Portrait HQ Web サイトで Web.config ファイルを編集し、MaxFrameRate プロパティを適切に定義
します。 フレーム レートを低くするとクライアント マシンにかかる負荷は小さくなりますが、アニ
メーションが滑らかではなくなります。
Portrait HQ アプリケーション ログの構成
Portrait HQ アプリケーション ログの構成は、Web.Config ファイルの LogTargets プロパティと
LogLevel プロパティで行います。 このファイルは、Portrait Shared Server の C:\Program Files
(x86)\PST\Portrait Shared Server\Marketing HQ にあります。
Portrait HQ のログの記録先を指定するには、Web.config ファイルの LogTargets プロパティを手
動で編集します。 注意 :現時点で有効な値は ClientFile だけであり、ログを Silverlight アプリケー
ションの分離ストレージに送ります。
326
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
ログ レベルを設定するには、Web.config ファイルの LogLevel プロパティを手動で編集し、次のい
ずれかの値を選択します。
•
•
•
•
•
Critical
Error
Warning
Information
Verbose
Portrait Shared Repository データベースの構成
異なる Portrait Shared Repository データベースを参照するように Portrait Shared Services サイトを再
構成するには、Portrait Shared Server Web サイトの Web.config ファイルを手動で編集し、
ConnectionStrings セクションの PsrEntities プロパティで "接続文字列" を適切に定義します。
この Web サイトは、既定では C:\Program Files\PST\Portrait Shared Server\Portrait
Shared Services にインストールされます。
Sharepoint の構成
異なる SharePoint サーバーまたはサイトを参照するように Portrait Shared Server サイトを再構成す
るには、Portrait Shared Server Web サイトの web.config ファイルを手動で編集します。 2 つのエ
ンドポイント定義を変更する必要があります。1 つは Lists サービスに対するもので、もう 1 つは
UserGroup に対するものです。 各エンドポイントは、SharePoint サイト内の適切なサービスの URL
を含みます。 URL の形式は、 http://servername/sitename/_vti_bin/servicename.asmx
です。各部分の内容は次のとおりです。
• servicename は、Lists または UserGroup です。
• servername は、SharePoint が稼働しているサーバーの名前で、必要に応じて SharePoint Web サイ
トのポート番号を指定します。 たとえば、myserver や myserver:1234 などです。
• sitename は、Portrait Shared Server で必要なリストや他のアーチファクトが含まれる、SharePoint
サーバー内のサイトの名前です。 既定のサイト名は "Portrait" ですが、必要に応じて変更できます。
Portrait Shared Server を構成する
Windows 認証を設定する
Interaction Optimizer および Portrait Explorer
Portrait Shared Server を再構成して Windows 認証を有効または無効にするには、Portrait Shared
Server Web サイトの bin\config\Portrait.Mas.Cms.Services.config ファイルを編集して、
enableWindowsAuthentication プロパティを適切に定義します。 この Web サイトは、既定では
リファレンス ガイド
327
Portrait Shared Server のログを構成する
C:\Program Files\PST\Portrait Shared Server\Portrait Shared Services にインス
トールされます。
Portrait Dialogue
PSS において Windows 認証が有効になっている場合でも、ユーザー名とパスワードの入力なしで認
証を行えるのは、Portrait Dialogue で Windows 認証を使用するように構成されているアカウントの
ユーザーだけです。
Portrait Shared Server のログを構成する
Portrait Shared Server は、Web サイトが展開されている仮想ディレクトリ内の "LogFiles" サブフォル
ダのファイルにログを書き込みます。 既定では、これは C:\Program Files\PST\Portrait
Shared Server\Portrait Shared Services です。
Portrait Shared Server Web サイトの bin\config フォルダ内の MH.Common.config ファイルを編集す
ることによって、ログに書き込まれる情報の詳細を構成できます。 <loggingConfiguration> セ
クションに、ログの書き込み先のマッピング情報が、Microsoft Enterprise Library "ログ ブロック" XML
形式で含まれます。 形式および構成方法の詳細については、Microsoft のドキュメントを参照してくだ
さい。
既定では、Portrait Shared Server の高レベルの呼び出しの概要が PortraitSharedServices.log ファイル
に記録され、重大なエラーを Windows イベント ログに記録します。
MH.Common.config の既定のログ構成では、一連のログ "書き込み先" が定義され、ログ イベント
(固定セットのログ "カテゴリ" から発生するもの) をこれらの書き込み先にマップしています。
以下のログ カテゴリが Portrait Shared Server で使用されます。 これらは、MH.Common.config ファ
イルの <loggingConfiguration> ブロックの <categorySources> セクション内でログ リスナー
を関連付けることのできるカテゴリです。
• PortraitSharedServices_Event - Windows イベント ログにルーティングするアイテム。
• PortraitSharedServices_Log - PortraitSharedServers.log ファイルにルーティングする
アイテム (既定では、詳細なトラブルシューティング用のログではなく、高レベルの情報をレポート
するためにのみ設定されます)。
• PortraitSharedServices_Analytics_Trace - Portrait Customer Analytics への送信呼び出し
のトレース (既定では無効)。
• PortraitSharedServices_SharePoint_Trace - SharePoint への送信呼び出しのトレース (既
定では無効)。
• DataAccessLayerTracingFlatFile - Portrait Campaign Manager への送信呼び出しのトレース
(既定では無効)。
• ExceptionsFlatFile - 内部例外、Exceptions.log ファイルにルーティング、通常はログ フ
レームワーク自体で発生したエラー用。
既定では、エラーのみログに書き込みます。 さらに詳細なログを有効にするには、適切な
<categorySources> に対する switchValue 属性を次のように設定します。
• All - すべてをログに書き込む
• Off - ログを無効にする
• Critical – 重大イベントのみをログに書き込む
328
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
• Error – エラーおよび重大イベントをログに書き込む
• Information – 情報、エラー、および重大イベントをログに書き込む
注意: MH.Common.config で構成を変更する場合、新しいセッションを開始する (Web ブラウザを
閉じて新しくブラウザを起動する) まで、Portrait HQ のユーザーに変更が反映されません。
MH.Common.config ファイルの設定が正しくない場合、ログを指定できず、誤りを診断するのが困
難になります。 変更によってシステムが壊れた場合に動作バージョンにロールバックできるよう、変
更を行う前にファイルのバックアップ コピーを作成しておくことをお勧めします。
キャンペーン レポートを設定する
概要
Portrait HQ では、キャンペーン監視ページに [レポート] メニューがあります。 これらのメニューが外
部 Web ベースのレポート システムにリンクするようにシステムを構成できます。 実際、システムは
URL を基にして構成できるので、これらのリンクでは任意の URL を参照でき、各 [レポート] メニュー
のコンテキストに基づいてパラメータ化できます。
データベース テーブル
この設定は、Portrait Shared Server のインストールの 'PortraitPSR' データベース (既定の名前) に含ま
れる 2 つのテーブルにエントリを追加することで行います。 2 つのテーブルは ExternalLink および
ExternalLinkParameter という名前で、第 3 のテーブル ExternalLinkType の値を参照しています。 リ
ンクには 4 つの種類があります。
• キャンペーン レポート: この種類のリンクは、[キャンペーンの主要パフォーマンス] ページの [監視]
セクションの [レポート] メニューに表示されます。 これらのリンクは、キャンペーン ID によって
パラメータ化できます。
• キャンペーン活動レポート: この種類のリンクは、[キャンペーンの主要パフォーマンス] の [マーケ
ティング活動パフォーマンス] セクションの [レポート] メニュー、および [活動の主要パフォーマン
ス] ページの [監視] セクションの [レポート] メニューに表示されます。 これらのリンクは、キャン
ペーン ID およびキャンペーン活動 ID によってパラメータ化できます。
• オファー レポート: この種類のリンクは、[キャンペーンの主要パフォーマンス] ページおよび [活動
の主要パフォーマンス] ページの [オファー パフォーマンス] セクションの [レポート] メニューに表
示されます。 これらのリンクは、キャンペーン ID、キャンペーン活動 ID、およびオファー ID に
よってパラメータ化できます。
• チャネル レポート: この種類のリンクは、[活動の主要パフォーマンス] ページの [チャネル パフォー
マンス] セクションの [レポート] メニューに表示されます。 これらのリンクは、キャンペーン ID、
キャンペーン活動 ID、取扱い ID、およびチャネル ID によってパラメータ化できます。
システムへのリンクを追加するには、リンクの名前、ベース URL、ExternalLinkTypeId (前記の各リン
クの種類に関連する ID の ExternalLinkType テーブルを参照)、および他のすべての必要なフィールド
を示す行を、ExternalLink テーブルに追加します。 ID フィールドは自動的に生成されること、および
リファレンス ガイド
329
[マイビュー] のクイック リンクを設定する
一部のフィールド (バージョンなど) は構成では現在未使用ですが管理目的には役に立つことに注意し
てください。
リンクのパラメータを設定するには、ExternalLinkId (前記の外部リンクの ID)、リンクがクリックされ
たときに生成される URL に含まれるパラメータの "名前"、および以下のいずれかである "マッピング"
を示す 1 つ以上の行を、ExternalLinkParameter テーブルに追加します。
• CampaignId: キャンペーン ID の値を渡します。
• ActivityId: キャンペーン活動 ID の値を渡します。
• OfferId: オファー ID の値を渡します。
• TreatmentId: 取扱い ID の値を渡します。
• ChannelId: チャネル ID の値を渡します。
たとえば、次のような形式の URL のレポート システムに接続する "今月の数値" という名前のリンク
をセットアップします。
http://myreportingsystem?ActivityParameter=22&CampaignParameter=1003
これはキャンペーン活動に対するリンクであり、Name=This Month's Figures、
Url=http://myreportingsystem、 ExternalLinkTypeId=2 (ID=5 とします) である行を "ExternalLink" テー
ブルに追加します。 次に、ExternalLinkId=5、Name=ActivityParameter、Mapping=ActivityId である行
を ExternalLinkParameter テーブルに追加します。 最後に、ExternalLinkId=5、
Name=CampaignParameter、Mapping=CampaignId である別の行を ExternalLinkParameter テーブル
に追加します。
ベース URL をパラメータ化できること、また通常はパラメータ化する必要があることに注意してくだ
さい。 たとえば、前の例で URL が http://myreportingsystem?myparametername=myparametervalue
に設定されていた場合、前と同じ構成のリンクは次のようになります。
http://myreportingsystem?myparametername=myparametervalue&ActivityParameter=22&CampaignParameter=1003
[マイビュー] のクイック リンクを設定する
[マイビュー] ページの [クイック リンク] セクションに対する変更は、PSR データベースの
ApplicationLink テーブルで行います。 このテーブルには既定で 2 つのリンクが含まれており、
Enabled フィールドを 0 に設定することで無効にできます。 注意: SystemName のリンクは変更しな
いでください。これらは必須です。 新しいリンクを追加するには、ApplicationLink テーブルに新
しい行を追加します。 次の表に必須のフィールドを示します。
330
列名
説明
Name
リンクに表示されるテキストです。
Uri
ユーザーがリンクをクリックすると、ブラウザの
新しいウィンドウにこの URL を表示します。
Enabled
リンクを有効または無効にします。 "1" に設定す
ると有効になります。
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
注意 :ApplicationLink テーブルの内容は、[ライブビュー] の [クイック リンク] と正確には一致
しません。 これは次のような理由によるものです。
• 次の 2 つのリンクは、[クイック リンク] には追加されますが、ApplicationLink テーブルにはあ
りません。 [新規キャンペーンの作成] および [新規タスクの作成]。
• リンクには Visual Dialog アプリケーションへのリンクがあります。 このリンクは上部メニュー バー
の [ツール] 部分で使用できます。
SSL/HTTPS を有効にする
Portrait HQ と Portrait Shared Server で SSL/HTTPS を有効にするには、次の手順を使用します。
1. Portrait HQ と Portrait Shared Server をホストする Web サイトの構成を次の手順で更新します。
a. 必要な SSL 証明書を取得し、その証明書を HTTPS サイト バインディングに使用します。
b. HTTPS サイト バインディングを削除します。
c. Portrait HQ と Portrait Shared Server の両方の SSL 設定を、SSL は必須だがクライアント証明
書は無視するように更新します。
2. Portrait Shared Server の web.config 構成ファイルを次の手順で更新します。
a. Portrait Shared Serverweb.config ファイルを \<インストール ディレクトリ
>\PST\Portrait Shared Server\Portrait Shared Services\Web.config に探し
ます。
b. webHttpBinding でセキュリティ モードを Transport に設定します。
<security mode="transport">
c. サービス メタデータへの HTTP アクセスを無効にします。
<serviceMetadata httpGetEnabled="False" />
d. 次のテキストで囲まれているすべてのセクションをコメント解除します。
<!-- Uncomment this section to enable SSL access. -->
e. 次のテキストで囲まれているすべてのセクションをコメントにします。
<!-- Comment this section to enable SSL access. -->
f. ファイルを保存して閉じます。
3. Portrait HQ の web.config 構成ファイルを次の手順で更新します。
a. Portrait HQ の web.config ファイルを \<インストール ディレクトリ>\PST\Portrait
Shared Server\Marketing HQ\Web.config に探します。
b. 次のテキストで囲まれているすべてのセクションをコメント解除します。
<!-- Uncomment this section to enable SSL access. -->
リファレンス ガイド
331
SSL/HTTPS を有効にする
c. 次のテキストで囲まれているすべてのセクションをコメントにします。
<!-- Comment this section to enable SSL access. -->
d. ファイルを保存して閉じます。
4. DecisionsWCFWebService の web.config 構成ファイルを次の手順で更新します。
a. IIS マネージャで DecisionsWCFWebService 仮想ディレクトリから web.config ファイル
を見つけます。
b. 次のテキストで始まるすべてのセクションをコメントにします。
<!-- Uncomment this section to enable SSL access. -->
c. ファイルを保存して閉じます。
5. IOBridgeWCFWebService の web.config 構成ファイルを次の手順で更新します。
a. IIS マネージャで IOBridgeWCFWebService 仮想ディレクトリから web.config ファイルを
見つけます。
b. 次のテキストで始まるすべてのセクションをコメントにします。
<!-- Uncomment this section to enable SSL access. -->
c. ファイルを保存して閉じます。
6. IOWCFWebService の web.config 構成ファイルを次の手順で更新します。
a. IIS マネージャで IOWCFWebService 仮想ディレクトリから web.config ファイルを見つけ
ます。
b. 次のテキストで始まるすべてのセクションをコメントにします。
<!-- Uncomment this section to enable SSL access. -->
c. ファイルを保存して閉じます。
7. DatasourceDefExporter.exe ツールの DatasourceDefExporter.exe.config 構成ファイルを
次の手順で更新します。
a. DatasourceDefExporter.exe.config ファイルを
\installation_directory\PST\\Portrait IO\Tools\ から見つけます。
b. 次のテキストで囲まれているすべてのセクションをコメント解除します。
<!-- Uncomment this section to enable SSL access. -->
c. 次のテキストで囲まれているすべてのセクションをコメントにします。
<!-- Comment this section to enable SSL access. -->
d. ファイルを保存して閉じます。
8. DecisionTransfer.exe ツールの DecisionTransfer.exe.config 構成ファイルを次の手順で更
新します。
332
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
a. DecisionTransfer.exe.config ファイルを \installation_directory\PST\\Portrait
IO\Tools\ から見つけます。
b. 次のテキストで囲まれているすべてのセクションをコメント解除します。
<!-- Uncomment this section to enable SSL access. -->
c. 次のテキストで囲まれているすべてのセクションをコメントにします。
<!-- Comment this section to enable SSL access. -->
d. ファイルを保存して閉じます。
キャンペーン承認を有効にする
Portrait HQ は、キャンペーンの変更を承認してからでなければキャンペーンをマーケットに展開でき
ないように構成できます。 Approve campaign 権限を許可された Portrait HQ ユーザーのみが、キャン
ペーンを承認できます。
キャンペーン承認を設定するには
1. <インストール ディレクトリ>\PST\Portrait Shared Server\Marketing HQ\ にある
web.config ファイルを開きます。
2. CampaignApprovalEnabled パラメータを True に設定します。
注意: 有効になると、すべてのキャンペーンの変更には、キャンペーンを承認する権限を持つ HQ ユー
ザーによる承認が必要になります。
HQ ユーザー権限を変更する
以下の手順に従って、HQ ユーザー権限を変更します。
1. Portrait HQ Server にログオンし、次のディレクトリにある
Portrait.Mas.Cms.Services.Authorization.config ファイルを開きます。
/pst/Portrait Shared Server/Portrait Shared Services/Bin/config/
2. 必要に応じてユーザー権限を更新します。
Note: 以下に HQ の各役割に対する権限の既定のセットを示します。 各権限の意味を以下の表に
説明します。
<RolePermissions>
<Role Name= "SeniorManagement">
<Permission Name="AllowedToLogOn" />
<Permission Name="AllowedToLogOnToEmarketingDesigner" />
<Permission Name="DeleteTask" />
リファレンス ガイド
333
HQ ユーザー権限を変更する
<Permission Name= "EditTask" />
<Permission Name= "ReadCampaign" />
<Permission Name= "ReadOffer" />
<Permission Name= "ReadTask" />
</Role>
<Role Name="BusinessStakeholder">
<Permission Name="AllowedToLogOn" />
<Permission Name="AllowedToLogOnToEmarketingDesigner" />
<Permission Name="DeleteOffer" />
<Permission Name="EditOffer" />
<Permission Name="ReadCampaign" />
<Permission Name="ReadOffer" />
<Permission Name="ReadTask" />
</Role>
<Role Name="Creative">
<Permission Name="AllowedToLogOn" />
<Permission Name="AllowedToLogOnToEmarketingDesigner"
<Permission Name="EditEmarketingMailTemplates" />
<Permission Name="EditTask" />
<Permission Name="ReadCampaign" />
<Permission Name="ReadOffer" />
<Permission Name="ReadTask" />
</Role>
<Role Name="CustomerInsight">
<Permission Name="AllowedToLogOn" />
<Permission Name="AllowedToLogOnToEmarketingDesigner"
<Permission Name="EditTask" />
<Permission Name="ReadCampaign" />
<Permission Name="ReadOffer" />
<Permission Name="ReadTask" />
</Role>
<Role Name="DirectMarketer">
<Permission Name="AllowedToLogOn" />
<Permission Name="AllowedToLogOnToEmarketingDesigner"
<Permission Name="EditEmarketingMailTemplates" />
<Permission Name="AllowedToLogOnToVisualDialog" />
<Permission Name="DeleteItem" />
<Permission Name="DeleteOffer" />
<Permission Name="DeleteTask" />
<Permission Name="EditCampaign" />
<Permission Name="EditOffer" />
<Permission Name="EditTask" />
<Permission Name="ReadCampaign" />
<Permission Name="ReadOffer" />
<Permission Name="ReadTask" />
<Permission Name="EditGlobalSelections" />
</Role>
<Role Name="MarketingOperations">
<Permission Name="AllowedToLogOn" />
<Permission Name="AllowedToLogOnToEmarketingDesigner"
<Permission Name="EditEmarketingMailTemplates" />
<Permission Name="AllowedToLogOnToVisualDialog" />
<Permission Name="DeleteItem" />
<Permission Name="DeleteOffer" />
<Permission Name="DeleteTask" />
<Permission Name="EditCampaign" />
<Permission Name="EditOffer" />
<Permission Name="EditTask" />
<Permission Name="ReadCampaign" />
<Permission Name="ReadOffer" />
<Permission Name="ReadTask" />
334
/>
/>
/>
/>
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
<Permission Name="EditGlobalSelections" />
</Role>
権限
説明
AllowedToLogOn
Portrait HQ アプリケーションへのログオンを許可
します。
AllowedToLogOnToEmarketingDesigner
メッセージ デザイナへのログオンを許可します。
メッセージ テンプレートは、アウトバウンド コ
ミュニケーションで送信される内容を定義しま
す。
EditEmarketingMailTemplates
メッセージ デザイナでのメッセージ テンプレー
トの編集を許可します。
AllowedToLogOnToVisualDialog
Portrait HQ 内のリンクから Visual Dialogue を起
動します。
ReadCampaign
キャンペーン、セレクション、メッセージ、およ
びリストを表示しますが、変更しません。
EditCampaign
キャンペーン、セレクション、メッセージ、およ
びリストを変更します。
DeleteItem
キャンペーン、セレクション、メッセージ、およ
びリストを削除します。
ReadOffer
オファーを表示しますが、変更しません。
EditOffer
オファーを変更します。
DeleteOffer
オファーを削除します。
ReadTask
タスクを表示しますが、変更しません。
EditTask
タスクを変更します。
DeleteTask
タスクを削除します。
EditGlobalSelections
グローバル セレクションを作成、変更、および削
除します (グローバル セレクションはすべてのキャ
ンペーンに適用されます)。
リファレンス ガイド
335
マーケティング活動を構成する
マーケティング活動を構成する
活動タイプを構成する
活動タイプは、キャンペーン活動をグループ化するために使用します。Portrait HQ は、活動タイプに
従って提案をランク付けするように構成できます。 使用可能な活動タイプのリストの構成は、PSR
データベースの CampaignActivityType テーブルの内容を変更することで行います。
CampaignActivityType テーブルには次の列が含まれます。
列名
説明
Name
活動タイプを表すために使用される固有の名前です。
Description
活動タイプの説明です。
SupportsAnonymous この活動タイプの対象が不明の顧客である場合は 1 に、それ以外の場合は 0 に
設定します。
SupportsIdentified この活動タイプの対象が既知の顧客である場合は 1 に、それ以外の場合は 0 に
設定します。
例
使用可能な活動タイプの既定のセットは、PSR データベースに対して次の SQL ステートメントを実
行することで設定します。
INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous,
SupportsIdentified) VALUES('Acquisition', 'Acquisition.', 1, 1)
INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous,
SupportsIdentified) VALUES('Revenue', 'Revenue.', 0, 1)
INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous,
SupportsIdentified) VALUES('Retention', 'Retention.', 0, 1)
INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous,
SupportsIdentified) VALUES('Service', 'Service.', 1, 1)
INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous,
SupportsIdentified) VALUES('Loyalty', 'Loyalty.', 0, 1)
活動サブ タイプを構成する
マーケティング活動には、必要に応じて活動サブ タイプを割り当てることができます。 活動サブ タ
イプは、キャンペーン活動を活動タイプからさらに細かくグループ化するために使用します。Portrait
HQ は、活動サブ タイプに従って提案をランク付けするように構成できます。 使用可能な活動サブ タ
イプのリストの構成は、PSR データベースの CampaignActivitySubType テーブルの内容を変更
することで行います。 CampaignActivitySubType テーブルには次の列が含まれます。
336
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
列名
説明
Name
活動サブ タイプを表すために使用される固有の名前です。
Description
活動サブ タイプの説明です。
例
使用可能な活動サブ タイプの既定のセットは、PSR データベースに対して次の SQL ステートメント
を実行することで設定します。
INSERT INTO CampaignActivitySubType(Name, Description) VALUES('Loan', 'Loan.')
INSERT INTO CampaignActivitySubType(Name, Description) VALUES('Mortgage',
'Mortgage.')
INSERT INTO CampaignActivitySubType(Name, Description) VALUES('Current
Account', 'Current Account.')
活動の優先順位を構成する
マーケティング活動には、必要に応じて優先順位を割り当てることができます。 この優先順位を使用
して、インバウンド チャネルで表されるマーケティング活動をランク付けできます。 使用可能なマー
ケティング活動の優先順位のリストの構成は、PSR データベースの PriorityType テーブルの内容
を変更することで行います。 PriorityType テーブルには次の列が含まれます。
列名
説明
Name
優先順位の種類を表すために使用される固有の名前です。
Description
優先順位の種類の説明です。
PriorityValue
活動の優先順位を表すために使用される優先順位の種類の値です。 この値は活
動のランク付けに使用されます。値が高いほど、ランクが高くなります。
例
使用可能な優先順位の既定のセットは、Portrait Shared Repository データベースに対して次の SQL ス
テートメントを実行することで設定します。
INSERT INTO PriorityType(Name,
'Highest.', 10000)
INSERT INTO PriorityType(Name,
'High.', 5000)
INSERT INTO PriorityType(Name,
'Medium.', 1000)
INSERT INTO PriorityType(Name,
'Low.', 500)
INSERT INTO PriorityType(Name,
'Lowest.', 100)
リファレンス ガイド
Description, PriorityValue) VALUES('Highest',
Description, PriorityValue) VALUES('High',
Description, PriorityValue) VALUES('Medium',
Description, PriorityValue) VALUES('Low',
Description, PriorityValue) VALUES('Lowest',
337
チャネルを設定する
チャネルを設定する
チャネルを設定する
Portrait HQ では、ユーザーは [マーケティング活動] ページの一連のトグル ボタンをクリックすること
により、マーケティング活動で使用する必要のあるインバウンド チャネルおよびアウトバウンド チャ
ネルを選択します。
チャネルを追加、削除、または変更するには、Portrait Shared Repository で TreatmentType テーブル
および ChannelType テーブルを変更する必要があります。
表 1 : ChannelType テーブル
列名
説明
Name
チャネルの名前です。
Description
チャネルの説明です。
PcmChannelName
Portrait Dialogue のチャネルの名前です。 通常、
新しいチャネルではこのフィールドを空のままに
します。
表 2 : TreatmentType テーブル
338
列名
説明
Name
取扱いタイプの名前。 一意でなければなりませ
ん。
ShortName
取扱いタイプの名前の短いバージョンです。 これ
は、[マーケティング活動] ページでチャネルのシ
ンボルの下に表示されるテキストです。
Description
取扱いタイプの説明です。
ChannelTypeId
チャネルの種類の ID。 ChannelType テーブルの
いずれかのチャネルの ID である必要があります。
SupportsAnonymous
匿名の取扱いがサポートされるかどうか。 取扱わ
れる顧客が既知ではない場合は、取扱いタイプに
対してこの値を 1 に設定します。
SupportsIdentified
識別された取扱いがサポートされるかどうか。 取
扱われる顧客が既知の場合は、取扱いタイプに対
してこの値を 1 に設定します。
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
列名
説明
IsControlGroup
取扱い対象の顧客をコントロール グループとして
取扱う必要があるかどうか。 通常は 0 に設定する
必要があります。
SymbolData
XAML グラフィック パス (ベクトル グラフィック)
として表された取扱いタイプのアイコンです。
DefaultTreatmentCost
既定の取扱いのコストに対するオプションの値で
す。
PcmDefaultBranchType
取扱いタイプが Portrait Dialogue の分岐にリンク
されているかどうか。 通常、新しいチャネルでは
このフィールドを空のままにします。
PcmDefaultOperationType
取扱いタイプに Portrait Dialogue の既定の操作の
種類があるかどうか。 通常、新しいチャネルでは
このフィールドを空のままにします。
IsOutbound
取扱いタイプがインバウンドまたはアウトバウン
ドのどちらの取扱いを示すか。 1 に設定すると、
[マーケティング活動] ページの [使用するアウトバ
ウンド チャネル] に表示され、0 に設定すると [使
用するインバウンド チャネル] に表示されます。
通常、アウトバウンドの取扱いは Portrait Dialogue
を使用して行いますが、インバウンドの取扱いは
Interaction Optimizer を使用して行います。
[マーケティング活動] ページに新しいチャネルを追加する
まったく新しいチャネルを [マーケティング活動] ページに追加する場合は、次の手順を使用します。
1. ChannelType テーブルに新しいレコードを追加します。
2. TreatmentType テーブルに新しいレコードを追加し、先ほど ChannelType テーブルに作成し
たレコードをリンクするように ChannelTypeId フィールドを設定します。
[マーケティング活動] ページのチャネル アイコン テキストを変更する
[マーケティング活動] ページのチャネル アイコンの下に表示されるテキストを変更する場合は、次の
手順を使用します。
1. TreatmentType テーブルで関連するレコードを探します。
2. ShortName フィールドの値を変更します。
リファレンス ガイド
339
顧客カードの設定
[マーケティング活動] ページに表示されるチャネルを削除する
警告 : [マーケティング活動] ページからチャネルを削除する場合は、データベースから取扱いタイプを
削除する必要があります。 これは "マーケット展開中" のキャンペーンに重大な結果をもたらす可能性
があり、できればキャンペーンが含まれない新しいシステム (または、少なくとも "マーケット展開中"
のキャンペーンが含まれないシステム) でのみ行ってください。
1. TreatmentType テーブルで関連するレコードを探し、その ID を記録します。
2. TreatmentTypeId 列の値を参照し、その値と削除する取扱いタイプの ID を照合することで、先
ほど探した取扱いタイプを参照している Treatment テーブルのすべてのレコードを削除します。
注意:Treatment テーブルで削除しようとするレコードが TreatmentOfferForecast テーブルの
レコードによって参照されている場合は、最初に TreatmentOfferForecast テーブルのレコードを
削除する必要があります。 取扱いの ID を参照し、TreatmentOfferForecast テーブルのレコー
ドに TreatmentId 列の値と一致する値を持つものがあるかどうかを調べることで、取扱いにオ
ファーの予測があるかどうかを確認できます。
3. 取扱いタイプを削除します。
顧客カードの設定
顧客カードは、 キャンペーンの設計ステップにおいてガイド付きダイアログで選別を表示または編集
しているときに [サンプルの表示] ボタンをクリックすると、Portrait HQ に表示されます。 このボタン
から開かれるビューには、複数のカードが表示されます。 このセクションでは、これらのカードの内
容の設定を取り上げ、その視覚的要素とデータの両方について説明します。
概要
カードの設定は、システム内の以下のコンポーネントに依存します。
• カード テンプレートである Card.xaml。ここでは、'カード' と呼びます。 このファイルは、Portrait
HQ アプリケーションをホストしている Web サーバーの 'ClientBin\Resources' ディレクトリにあり
ます。 同じディレクトリには、カードで使用される資産も含まれています。
• ‎PortraitHQ_CustCards_<domainId> という名前を持つ 1 つ以上のカスタム SQL スクリプト。 こ
れらは、Dialogue Admin ツールで作成および構成され、 Portrait HQで使用するように構成されてい
るデータベース インスタンスの 'Resources/SQL Repository/Customized SQLs' フォルダにありま
す。 ここでは、'SQL スクリプト' と呼びます。
• P
‎ ortrait HQ クライアントが顧客カード データ取得のために呼び出す Web サービス。 ここでは、'Web
サービス' と呼びます。
• コンバータ リソースである DictionaryStringToValueConverter。Web サービスによって取得され
るデータをカード内で使用および表示できる値に変換するために Card.xaml 内で使用されます。 こ
こでは、'コンバータ' と呼びます。
340
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
カード テンプレート
カード テンプレートは、カードの外観とそれら視覚的要素へバインドされるデータの両方を定義する
マークアップを含んだ標準的な XAML ファイルです。 この XAML の編集は、手動でも、適切なエディ
タ (一般的には、MS Expression Blend) 内でも行えます。
実行時において、カードのデータコンテキストは 'CardData' プロパティを含むオブジェクトであり、
これはカード内で使用されるデータのソースになります。 このデータへのアクセスは、XAML および
Silverlight での標準的なメカニズムである 'データバインド' によって行います。
'CardData' プロパティは、実際には、キーと値がどちらも文字列になっている 'key - value' の辞書で
す。 DictionaryStringToValueConverter は、CardData 内の値にアクセスしてその値を適切なデータ型
または書式化された文字列に変換するために使用されます。 CardData 内のキーは、SQL スクリプト
によって作成されるテーブル内の列名に対応します。
これは単なる標準的な XAML であり、標準的な Silverlight コントロールでできることは何でもできる
という点では、カード内で可能な操作には制限がほとんどありません。ただし、以下の点に注意して
ください。
• 出荷時に付属するサンプルに含まれているファイルは、編集する前に必ずバックアップを作成する
ようにします。
• カードのサイズ (ルート要素の幅および高さの属性) は、編集しないでください。アプリケーション
内の固定サイズのコンポーネントに合わせておく必要があるためです。 ただし、アプリケーション
では、カードの内容の詳細レベルをサンプルよりも上げたり下げたりできるように、カードのズー
ムが可能になっています。
• カードの表示に負荷がかかり過ぎないように注意する必要があります。 たとえば、Portrait HQ の出
荷時に付属するサンプルのカードでは、境界線の影がカードの内容全体ではなく、ダミー境界線に
適用されています。 ドロップ シャドウのような効果を多くの項目に適用したり、複雑なベクタ グ
ラフィックスを含めたりすると、表示のパフォーマンスに影響を及ぼす可能性があります。
SQL スクリプト
顧客カードに表示されるデータは、Portrait Dialogue ドメイン内の顧客レコードから得られたもので
す。 使用されるドメインは、作成または編集されるガイド付きダイアログによって識別されます。 そ
のため、選別で使用されるそれぞれのドメインには、顧客データをカードに提供するために設定され
た SQL スクリプトが必要であり、スクリプト名は、PortraitHQ_CustCards_<domainId> (例 :
'PortraitHQ_CustCards_1002') という形式でなければなりません。
これらのスクリプトは、'cust_ids' というパラメータをとります。このパラメータは、顧客 ID のリス
トであり、レコード セットを顧客 ID 1 件につき 1 行の形式で返します。 返されるデータセットの列
名は、突き詰めていくと、カードがバインドされている CardData オブジェクト内のキーを形成し、
テーブル内の値は、CardData 内の値を形成します。
スクリプトに渡される 'cust_ids' パラメータは、引用符なし整数値のカンマ区切りリスト (例 :
"1001,1002,2022") です。そのため、cust_id フィールドが数値でない場合にこれらを使用してレコー
ドを選択する際には、注意が必要です。 サンプル スクリプトは、以下のようにしてレコードを選択し
ます。 "cust_id in ({STRINGPARAM cust_ids})" は "cust_id in (1001,1002,2022)" に展開され、これは
リファレンス ガイド
341
顧客カードの設定
cust_id を整数にキャストできないレコードが存在する場合に失敗します。 次のような解決策が使用で
きます。 "( (ISNUMERIC(cust_id)=1) AND CAST(cust_id as int) in ({STRINGPARAM cust_ids}) )"。
また、コメントの使用によってこれらの SQL スクリプトの前処理が混乱する可能性があります。これ
は、説明できないエラーが発生した場合の一般的な原因です。
SQL スクリプトが返す値は任意の型をとることができますが、文字列以外の型は Web サービスによっ
てブラウザに渡される際に文字列に変換されます。 これらの文字列は PSS サーバー上で作成されま
すが、その作成は常にロケールに依存しない形で行われ、この点は DictionaryStringToValueConverter
によって考慮されます。
DictionaryStringToValueConverter
このコンバータは 2 つの役割を果たします。 1 つは、既知のキー (SQL スクリプトの列名) によって
CardData 内の値にアクセスできるようにすることです。 もう 1 つは、これらの値を特定の型に変換
したり、特定の方法で書式化したりできるようにすることです。
このコンバータは、常にパラメータとして与える必要があります。このパラメータは、実際には '|' で
区切られた引数のリストです。 ただし、このパラメータは、最も基本的な形式では、単なるキーの名
前になります。この場合、結果は CardData から得られる対応する文字列値になります。
コンバータに対するパラメータは、もっと複雑になることがあり、その場合は
'<KeyName>|<OutputType>|<Modifier>' の形式になります。 以下の出力型がサポートされています。
• boolean: 文字列値はブール値として解釈されます。 空文字列、大文字と小文字が区別されない 'false'
値、および数値 0 として解析される文字列は、すべて偽 (false) を返し、それ以外は真 (true) になり
ます。 修飾子は必要ありません。
• visibility: この文字列値は、上記と同様、ブール型として解釈されますが、返り値は、真および偽の
代わりに、それぞれ Visibility.Visible および Visibility.Collapsed になります。 修飾子は必要ありませ
ん。
• number: この文字列値は数値として解析され、数値オブジェクトが返されます。 空文字列は 0 とし
て解釈されます。 修飾子は必要ありません。
• formattedstring: この文字列値は、修飾子で指定された .NET Framework の文字列形式の式内で使
用されます。 これに関する優れたリソースを次に示します。 http://blog.stevex.net/string-formattingin-csharp/
• formattednumber: この文字列値は、数値として解析され、その後、修飾子で指定された .NET
Framework の文字列形式の式内で使用されます。
• formatteddate: この文字列値は日付と時刻として解析され、短い形式の日付を表す書式化された文
字列がクライアント コンピュータのロケールに従って返されます。 修飾子は必要ありません。
• formattedtime: この文字列値は日付と時刻として解析され、短い形式の時刻を表す書式化された文
字列がクライアント コンピュータのロケールに従って返されます。 修飾子は必要ありません。
• formattedimageuri: この文字列値は、Web サーバーの Resources ディレクトリにある png イメー
ジ ファイルに対する相対 URI 内のファイル名 (サフィックスを除く) として使用されます。
342
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
まとめ
製品の出荷時に付属するサンプルは、最良の開始点となるものです。 上で述べた、Web サーバーの
ClientBin\Resources ディレクトリには、サンプルの 'Card.xaml' に加え、このファイルが参照するい
くつかのファイルも含んでいます。 フォルダ内にある 'ExampleCustCardCustomSQL.txt' というテキ
スト ファイルには、サンプルの 'Card.xaml' との照合を行う SQL が含んでいます。 この SQL テキス
トは、 Dialogue Admin ツールでカスタム SQL スクリプトを設定するときに使用します。
このシステムには、複雑な作業を SQL スクリプトで行うか、それともコンバータで行うかを必要に応
じて選択できるという点で、かなりの柔軟性があります。 出荷時に付属する Card.xaml には、コン
バータの使用法を説明するコメントのほか、DualImage コントロールの使用例も含みます。このコン
トロールは、ブール値に基づいて異なるイメージを表示するための便利な手段です。
結果データの統合
Interaction Optimizer は、提案およびレコードのレスポンスを供給する際に、分析に役立つ連絡先の履
歴を作成します。 こうした結果は、Interaction Optimizer データベースを直接活用するサードパーティ
アプリケーションによって分析できます。
Portrait Data Warehouse は、マーケティング キャンペーンの要求、取扱い、およびレスポンス デー
タの統合されたビューを保持するデータベースです。 このデータ ストアは、データを集計して Portrait
HQ 内のキャンペーン監視ページによって容易に取得できる形式にするためにも使用されます。 この
データ ストアのねらいは、キャンペーン パフォーマンスに関するレポートを生成するために SQL
Server Reporting Services による使用を可能にすること、またインバウンドとアウトバウンドの双方
のキャンペーンの取扱いおよびレスポンス情報を単一のキャンペーンおよび活動レベルの概要に統合
できるようにすることにあります。
操作テーブル
統合データ ストア内にある以下のテーブルには、操作データが含まれていると理解してください。こ
れは、顧客別の履歴情報 (特定の顧客に対するインバウンド連絡先の数、顧客に対して特定のオファー
が行われた直近の日付など) を取得するために IO または PD によってアクセスできるデータです。 こ
れらのテーブルは、キャンペーン監視ページに詳細を表示するために Marketing HQ によって使用され
る要約情報スター スキーマの作成にも使用されます。
REQUEST_LOG
このテーブルは、IO による取得時のインバウンド要求の詳細を保持します。
Request
説明
値
RQL_REQUEST_ID
このテーブルのプライマリ キーです。 これ
は単純な識別子列です。
BIGINT
リファレンス ガイド
343
操作テーブル
Request
説明
RQL_SOURCE_ID
IO データベース ステージング テーブルでの BIGINT
この行の ID です。この要求を
TREATMENT_OFFER_LOG テーブル内の 1
つ以上のプロンプトに関連付けるために使用
されます。
RQL_SIM_REPLAY_ID
この要求がシミュレーション リプレイの一環 INT
として行われた場合は、そのリプレイの ID
(場合によっては NULL) です。
RQL_CUSTOMER_ID
要求を行っている顧客の ID です。
(インストールに依存)
RQL_AGENT_ID
この要求を処理した代理店の ID です。
NVARCHAR(40)
RQL_CHANNEL_ID
この要求が行われたチャネルの ID です。チャ INT
ネル テーブルの CH_CHANNEL_ID 列に関連
付けます。
RQL_APP_NAME
要求を行っているアプリケーションの名前
(場合によっては NULL) です。
RQL_REASON_FOR_CALL
要求の理由に関する追加のコンテキスト情報 NVARCHAR(50)
(場合によっては NULL) です。
RQL_ENGAGEMENT_TYPE
エンゲージメントのタイプに関する追加のコ NVARCHAR(50)
ンテキスト情報 (場合によっては NULL) で
す。
RQL_LANGUAGE
呼び出しを行っているアプリケーションの言 NVARCHAR(10)
語設定コード (例: イギリス英語の場合は
en_GB。場合によっては NULL) です。
RQL_TIMEZONE
要求のタイム ゾーン コード (場合によっては NVARCHAR(10)
NULL) です。
値
NVARCHAR(50)
RQL_REQUEST_TIMESTAMP この要求が IO システムに従って行われた時 日付時刻
点のタイムスタンプです。
RQL_REGISTERED_TIMESTAMP このレコードがこのテーブルにコピーされた 日付時刻
時点のタイムスタンプです (内部システムで
のみ使用)。
TREATMENT_OFFER_LOG
このテーブルは、IO からの各プロンプトを記録するために使用します。 (顧客に対して実際に行われ
る取扱いとは対照的ですが、非仲介チャネルにおいては同じものです)。
344
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
Treatment Offer
説明
TOL_ID
テーブルのプライマリ キーであり、単純に増 BIGINT
加する識別子の値です。
TOL_DOMAIN_ID
PD ドメインの識別子です。IO からのレコー BIGINT
ドの場合は -1 を指定します。
TOL_CUSTOMER_ID
プロンプト / 取扱いを受け取る顧客の ID で
す。
TOL_AGENT_ID
仲介されたチャネルで会話を処理する代理店 NVARCHAR(40)
です。
TOL_CONTEXT
追加のコンテキスト情報 (PD のみ)
TOL_REQUEST_ID
このメッセージ / 取扱いを求めていた要求の BIGINT
ID です。
値
(インストールに依存)
NVARCHAR(128)
注意 : これは REQUEST_LOG の
RQL_SOURCE_ID 列にリンクしています。
TOL_SRC_TREAT_ID
ソース IO ステージング テーブルにおけるこ BIGINT
のレコードの ID です。このテーブルを
RESPONSE_LOG 内のレスポンスに関連付
けるために使用されます。
TOL_TREATMENT_ID
ID of the TREATMENT テーブル レコードの INT
ID です。これはチャネルおよび予測情報にリ
ンクしています。
TOL_INTERACTION_ID
CAMPAIGN_ACTIVITY レコードへのリンク INT
です (CA_ACTIVITY_ID 列にリンクしていま
す)。
TOL_OFFER_ID
このプロンプト / 取扱いによって行われたオ INT
ファーの ID です。明示的なオファーが行わ
れていない場合は NULL になります。 OFFER
テーブルの OFR_OFFER_ID 列にリンクして
います。
TOL_MESSAGE_ID
このプロンプト / 取扱いによって表現されて INT
いる ACTIVITY_CHANEL_MESSAGE の
ACM_MESSAGE_ID へのリンクです。
TOL_TARGET_LIST_ID
この活動の参加者を選択するために使用され INT
るリストの ID です。 NULL になる可能性が
あります。
リファレンス ガイド
345
操作テーブル
Treatment Offer
説明
値
TOL_TREATMENT_BATCH_ID 取扱いのバッチを識別するために使用されま BIGINT
す。PD が同じ取扱いによって作成されたオ
ファーを識別するために使用されます。IO で
は、同じ要求から生成されたプロンプトのグ
ループを識別するために使用されます。
TOL_PCM_CD_ID
PD 専用
INT
TOL_PCM_DP_ID
PD 専用
BIGINT
TOL_PCM_DOS_ID
PD 専用
INT
TOL_PCM_DBM_ID
PD 専用
INT
TOL_PCM_CM_ID
PD 専用
INT
TOL_IO_RANK
IO 専用
INT
この取扱い / プロンプトの提示された時点で
のランクです。
TOL_IO_SCORE
FLOAT
IO 専用
このプロンプト / 取扱いに関連付けられてい
るスコアです。
TOL_IO_RECORDING_ID
INT
IO 専用
このエントリーが構成要素になるシミュレー
ション レコーディングの ID です。
TOL_SIM_REPLAY_ID
INT
IO 専用
このプロンプトを生成したシミュレーション
リプレイです。
TOL_TREATED_TIMESTAMP
この取扱い / プロンプトが作成された時点で 日付時刻
のソース システムからのタイムスタンプで
す。
TOL_REGISTERED_TIMESTAMP このレコードがこのデータベースに登録され 日付時刻
た時点のタイムスタンプです (内部使用の
み)。
SECONDARY_AUDIENCE_LOG
このテーブルは、TREATMENT_OFFER_LOG テーブルの拡張として扱うことができ、二次対象顧客
のために提供されていた IO 用の各プロンプトを記録するためのものです。
346
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
二次対象顧客
説明
値
SAL_ID
テーブルのプライマリ キーであり、単純に増 BIGINT
加する識別子の値です。
SAL_CUSTOMER_ID
プロンプト / 取扱いを受け取る顧客の ID で
す。
(インストールに依存)
SAL_SRC_SECONDARYAUDIENCE_HISTORY_ID ソース IO ステージング テーブルにおけるこ BIGINT
のレコードの ID です。
SAL_SRC_TREAT_HISTORY_ID ソース IO 取扱い履歴ステージング テーブル BIGINT
でこのレコードに対応する取扱い履歴 ID で
す。
SAL_OBJECT_NAME
プロンプトが記録された二次対象顧客オブ
ジェクトの名前です
(DecisionsDataSource.Accounts など)。
nvarchar(2000)
SAL_ID_NAME
プロンプトが記録された二次対象顧客 ID の
名前です (AccountNumber など)。
nvarchar(2000)
SAL_ID_VALUE
プロンプトが記録された二次対象顧客 ID の
値です (実際のアカウント番号 など)。
nvarchar(255)
SAL_TREATED_TIMESTAMP
二次対象顧客に対してこの取扱い / プロンプ 日付時刻
トが作成された時点でのソース システムから
のタイムスタンプです。
SAL_REGISTERED_TIMESTAMP このレコードがこのデータベースに登録され 日付時刻
た時点のタイムスタンプです (内部使用の
み)。
RESPONSE_LOG
このテーブルは、顧客への取扱いに対するレスポンスの詳細を記録するために使用されます。 仲介さ
れたシステムでは、このテーブルによって実際に行われた取扱いが提供されます (レスポンスが存在す
るという事実から取扱いを推測可能)。
注意 : BEHAVIOR_LOG テーブルは、このテーブルのフィーダであり、どのようなキャンペーン活動
においても有効でないレスポンスを含んでいる可能性があります (レスポンスであるかどうかわからな
い行動が取得された場合)。 確認済みのキャンペーン活動レスポンスのみがレスポンス ログに保存さ
れます。そのため、レスポンス履歴の問い合わせにはこのテーブルのみを使用する必要があります。
Responce
説明
RL_ID
テーブルのプライマリ キーであり、単純に増 BIGINT
加する識別子の値です。
リファレンス ガイド
値
347
操作テーブル
Responce
説明
値
RL_SRC_RESP_HIST_ID
IO 専用
BIGINT
IO のステージング テーブルにおけるレスポ
ンス履歴レコードの ID です。
RL_TREATMENT_LOG_ID
このレスポンスの提示先である
TREATMENT_LOG エントリの ID です。
BIGINT
RL_BEHAVIOR_LOG_ID
対応する動作ログ テーブルのエントリの ID
です。
BIGINT
RL_ACTIVITY_ID
このレスポンスが対象とするキャンペーン活 INT
動です。
RL_TREATMENT_ID
このレスポンスが対象とする TREATMENT
テーブルのエントリの ID です。
RL_OFFER_ID
このレスポンスが対象とする OFFER テーブ INT
ルのエントリの ID です。
RL_MESSAGE_ID
IO 専用
INT
INT
ACTIVITY_CHANNEL_MESSAGE テーブル
への MESSAGE_ID リンクです。このレスポ
ンスの提示先であるメッセージへのリンク設
定に使用します。
RL_DOMAIN_ID
INT
PD 専用
PD ドメインの識別子です。IO の場合は -1
にハード コーディングされています。
RL_CUSTOMER_ID
レスポンスを行う顧客の識別子です。
(インストールに依存)
RL_IO_AGENT_ID
IO 専用
NVARCHAR(50)
取扱いへのレスポンスが行われた代理店の ID
です。
RL_CONTEXT
PD 専用
NVARCHAR(128)
追加のコンテキスト情報
RL_PRODUCT_CODE
348
このレスポンスの提示先である製品オファリ NVARCHAR(255)
ングを識別するために使用されるコードで
す。
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
Responce
説明
RL_MESSAGE_TEMPLATE_ID PD 専用
値
INT
このレスポンスの提示先である取扱いで使用
されたメッセージ テンプレートの ID です。
RL_IO_RESPONE_NAME
IO 専用
NVARCHAR(50)
顧客によって行われたレスポンスの名前です
RL_RESPONSE_INDICATOR
以下のレスポンスのタイプを示すために使用 INT
される値です。
1 = ポジティブ
0 = ニュートラル
-1 = ネガティブ
RL_IS_SOFT_RESPONSE
PD 専用
BIT
レスポンスが追跡とは対照的に推測されたこ
とを示すフラグです (例 : 匿名のキャンペー
ン活動レスポンスが取得された場合)。
RL_RESPONSE_COST
レスポンスのコストです
MONEY
RL_RESPONSE_VALUE
レスポンスの値です
MONEY
RL_VALUE_NET_OF_MARGN 粗利益を差し引いたレスポンスの値です。
MONEY
RL_TREATED_TIMESTAMP
取扱いが発生した時点のタイムスタンプで
す。
日付時刻
RL_ACTED_TIMESTAMP
レスポンスのタイムスタンプです
日付時刻
サマリ テーブルとレポート スキーマ
データベース内のその他のテーブルは、HQ 監視ページ用の簡単なレポート機能の提供と、SQL Server
Reporting Services (SSRS) を利用したカスタム レポートの作成のために使用されます。 キャンペー
ン、活動、および取扱いのサマリ テーブルは、取扱い、レスポンス、およびコストの最新の定義と要
約を確実に格納するために SSIS 作成プロセスによってアップデートされます。 このスキーマには、
中心となる 2 つの 'ファクト' テーブルも含まれています (1 つは取扱い用、もう 1 つはレスポンス用)。
これらのテーブルは、取扱い、レスポンス、およびコストのそれまでの実行総数を取扱い / オファー
/ チャネルのそれぞれの組み合わせについて 1 時間ごとに保存しています。
TREATMENT_FACT
リファレンス ガイド
349
サマリ テーブルとレポート スキーマ
取扱いファクト テーブルには、1 キャンペーン活動あたりの取扱い / オファーについての実行総数が
含まれます。 このテーブルは、取扱いの総実行カウントおよびコストを (TIME_DIMENSION テーブ
ルの粒度による定義に従って) 1 時間単位の粒度で追跡します。
取扱いファクト
説明
値
TF_FACT_ID
テーブルのプライマリ キーであり、単純に増 BIGINT
加する識別子列です。
TF_TD_ID
このレコードが表す時間 / 日 / 月 / 年を識別
するために使用される
TIME_DIMENSION.TD_ID 列へのリンクで
す。
TF_DOMAIN_ID
これらのレスポンスが記録されたキャンペー INT
ンが属する PD ドメインです (IO の場合は
-1)。
TF_OFFER_ID
このレコードが表す取扱いによって行われた INT
オファーを識別するために使用される
OFFER.OFR_ID 列へのリンクです。
TF_TREATMENT_ID
このレコードが表す取扱いを識別するための INT
TREATMENT_TR_ID 列へのリンクです。
TF_ACTIVITY_ID
INT
キャンペーン活動詳細の
CAMPAIGN_ACTIVITY.CA_ACTIVITY_ID 列
へのリンクです
TF_TREATMENT_COUNT
INT
これまでに行われた取扱いの
(TIME_DIMENSION エントリによって表され
ている時点) 現在の総数です。 IO ではプロン
プトのカウントであり、PD の場合は取扱い
(たとえば、送信された電子メール) のカウン
トです。
TF_TREAT_OFFER_COUNT
INT
この値は、単一の取扱いによって複数のオ
ファーを行える場合に使用されます (たとえ
ば、単一の顧客に対する複数のオファーを含
む PD からのメール)。 行われたオファーの
実行カウントです。 IO では、この値が取扱
いカウントと同じになります (それぞれの取
扱いが単一の暗黙的オファーで構成されるた
め)。
BIGINT
取扱いカウントの場合と同様に、対応する
TIME_DIMENSION エントリによって表され
ている時点) 現在の総数です。
350
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
取扱いファクト
説明
値
TF_TREATMENT_COST
取扱いの実行にかかった現在の総コストで
す。
MONEY
TF_PRODUCT_CODE
行われているオファーに関連付けられている NVARCHAR(255)
製品コードです (NULL の場合があります)
TF_MESSAGE_TEMPLATE_ID PD 専用
INT
取扱い / オファーの伝達に使用される、PD
内のメッセージ テンプレートの ID です
RESPONSE_FACT
レスポンス ファクト テーブルが保持するレスポンスの詳細は、取扱いの場合に取扱いファクト テー
ブルが保持する内容に相当します。
レスポンス ファクト
説明
RF_FACT_ID
テーブルのプライマリ キーであり、単純に増 BIGINT
加する識別子列です。
RF_TD_ID
このレコードが表す時間 / 日 / 月 / 年を識別
するために使用される
TIME_DIMENSION.TD_ID 列へのリンクで
す。
RF_DOMAIN_ID
これらのレスポンスが記録されたキャンペー INT
ンの PD ドメインです (IO の場合は -1)。
RF_OFFER_ID
これらのレスポンスの提示先オファーを識別 INT
するために使用される OFFER.OFR_ID 列へ
のリンクです。
RF_TREATMENT_ID
レスポンスの提示先となる取扱いを識別する INT
ための TREATMENT_TR_ID 列へのリンクで
す。
RF_ACTIVITY_ID
INT
キャンペーン活動詳細の
CAMPAIGN_ACTIVITY.CA_ACTIVITY_ID 列
へのリンクです
RF_RESPONSE_COUNT
これまでに行われた positive なレスポンスの INT
(TIME_DIMENSION エントリによって表され
ている時点) 現在の総数です。
RF_RESPONSE_VALUE
これまでに行われたすべてのレスポンスの実 MONEY
行総数の値 (全体の値) です。
リファレンス ガイド
値
BIGINT
351
サマリ テーブルとレポート スキーマ
レスポンス ファクト
説明
値
RF_VALUE_NET_OF_MARGIN 予測情報によって収益の粗利益が定義されて MONEY
いる場合、このフィールドは この粗利益を差
し引いた合計値 (コストを引く前の値) を保持
します。
RF_RESPONSE_COST
レスポンスの現在の総コストです (レスポン MONEY
スには実現コストがかかります)。
RF_RESPONSE_INDICATOR レスポンスがポジティブ (1)、ニュートラル INT
(0)、ネガティブ (-1) のいずれであるかを示す
ために使用される値です。
RF_PRODUCT_CODE
これらのレスポンスが対象とするオファー /
活動に関連付けられている製品コードです
(NULL の場合があります)
RF_MESSAGE_TEMPLATE_ID PD 専用
NVARCHAR(255)
INT
取扱い / オファーの伝達に使用される、PD
内のメッセージ テンプレートの ID です
RF_IS_SOFT_RESPONSE
BIT
PD 専用
このフラグは、これらのレスポンスが推測さ
れたことを示すために使用されます (匿名の
キャンペーン活動が関与していて、レスポン
スと具体的な取扱いとの間に直接のリンクが
存在しない場合)。
TIME_DIMENSION
このテーブルは、単にファクト エントリ テーブルの時間粒度を定義するために使用されます。 この
テーブルは、(データ ストアを作成する SSIS パッケージがスケジュールどおりに実行されている限り)
2000 年 1 月 1 日から現在のシステムの日付の翌日までの期間の各日付の時間ごとにエントリを持って
います。 このデータベース テーブルの各列は、列名から理解することができます。
要約 / ディメンション テーブル
TREATMENT テーブルには、最も低いレベルの粒度で要約が保存されます。 このテーブルは、取扱い
(または取扱いのタイプがインバウンドのプロンプト) の総数と、記録されたレスポンスのカウントを
保持します。 それぞれの取扱いは、キャンペーン活動 (対話) およびチャネルに特有のものです。ただ
し、複数の取扱いレコードが定義される可能性があります (活動に追加された取扱いが削除され、後で
再追加された場合)。 また、要約テーブルは、活動に対して予測情報が作成されている場合、レスポン
スの要約のコストおよび値を保存します。 このテーブル内のカウントは、このデータベースを作成す
る SSIS パッケージのイテレーションごとに付加的に合計されます。 TREATMENT テーブルは、
TR_ACTIVITY_ID 列を介してその親活動にリンクしています。
352
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
CAMPAIGN_ACTIVITY テーブルは、この活動 (対話) についての可能性のあるすべての取扱い (および
それぞれのレスポンス) 全体の要約カウントを格納します。 このテーブルは、活動パフォーマンスの
最新のビューが含まれるように、SSIS パッケージが実行されるたびに増分アップデートされます。
CA_CAMPAIGN_ID 列は、親の CAMPAIGN テーブル エントリ (CAM_CAMPAIGN_ID) にリンクして
います。
クエリの例
キャンペーン活動ごとにレスポンスの詳細を取得するクエリです。
注意 : IO では、取扱いカウントがプロンプトの数を反映しており、本当の取扱いカウントはレスポン
スの数から推測することしかできません。
SELECT c.CAM_NAME as [Campaign Name],
a.CA_NAME as [Interaction Name],
ch.CH_NAME as [Channel],
t.TR_TOTAL_TREATMENTS as [Prompt Count],
t.TR_TOTAL_TREATMENTS -(t.TR_TOTAL_NEGATIVE_RESPONSES +
t.TR_TOTAL_NEUTRAL_RESPONSES + t.TR_TOTAL_POSITIVE_RESPONSES)
as [Not Presented Count],
t.TR_TOTAL_POSITIVE_RESPONSES as [Positive Responses],
t.TR_TOTAL_NEUTRAL_RESPONSES as [Neutral Responses],
t.TR_TOTAL_NEGATIVE_RESPONSES as [Negative Responses]
FROM [TREATMENT]t
INNERJOIN [CAMPAIGN_ACTIVITY] a ON t.TR_ACTIVITY_ID = a.CA_ACTIVITY_ID
INNERJOIN [CAMPAIGN] c ON a.CA_CAMPAIGN_ID = c.CAM_CAMPAIGN_ID
INNERJOIN [CHANNEL] ch ON t.TR_CHANNEL_ID = ch.CH_CHANNEL_ID
シミュレーション リプレイで同じクエリを実行するには、以下の SQL を使用する必要があります (特
定の TOL_IO_SIM_REPLAY_ID を選択するために WHERE 句を追加)。
SELECT c.CAM_NAME as [Campaign Name],
a.CA_NAME as [Interaction Name],
ch.CH_NAME as [Channel],
tl.TOL_IO_SIM_REPLAY_ID as [Replay ID],
SUM(
CASE
WHEN r.RL_RESPONSE_INDICATOR ISNULLAND
tl.TOL_ID ISNOTNULLTHEN 1
ELSE 0
END)as [Not Presented Count],
SUM(
CASE
WHEN RL_RESPONSE_INDICATOR = 1 THEN 1
ELSE 0
END)as [Positive Response],
SUM(
CASE
WHEN RL_RESPONSE_INDICATOR = 0 THEN 1
ELSE 0
END)as [Neutral Response],
SUM(
CASE
WHEN RL_RESPONSE_INDICATOR =-1 THEN 1
ELSE 0
END)as [Negative Response]
FROM [TREATMENT] t
リファレンス ガイド
353
サマリ テーブルとレポート スキーマ
LEFTOUTERJOIN [TREATMENT_OFFER_LOG] tl
ON tl.TOL_TREATMENT_ID = t.TR_TREATMENT_ID
LEFTOUTERJOIN [RESPONSE_LOG] r ON tl.TOL_ID
= r.RL_TREATMENT_LOG_ID
INNERJOIN [CAMPAIGN_ACTIVITY] a ON
t.TR_ACTIVITY_ID = a.CA_ACTIVITY_ID
INNERJOIN [CAMPAIGN] c ON a.CA_CAMPAIGN_ID
= c.CAM_CAMPAIGN_ID
INNERJOIN [CHANNEL] ch ON t.TR_CHANNEL_ID
= ch.CH_CHANNEL_ID
GROUPBY c.CAM_NAME ,
a.CA_NAME ,
ch.CH_NAME,
tl.TOL_IO_SIM_REPLAY_ID
チャネルおよびランクごとにプロンプトのカウントを取得するクエリです (プロンプトのランクは IO
でのみ使用されます)。
SELECT c.CAM_NAME as [Campaign Name],
a.CA_NAME as [Interaction Name],
ch.CH_NAME as [Channel],
SUM(
CASE
WHEN TOL_IO_RANK = 1 THEN 1
ELSE 0
END)as [Rank #1],
SUM(
CASE
WHEN TOL_IO_RANK = 2 THEN 1
ELSE 0
END)as [Rank #2],
SUM(
CASE
WHEN TOL_IO_RANK = 3 THEN 1
ELSE 0
END)as [Rank #3],
SUM(
CASE
WHEN TOL_IO_RANK = 4 THEN 1
ELSE 0
END)as [Rank #4],
SUM(
CASE
WHEN (TOL_IO_RANK <1 OR TOL_IO_RANK >
4)THEN 1
ELSE 0
END)as [Rank Other]
FROM [TREATMENT] t
LEFTOUTERJOIN [TREATMENT_OFFER_LOG] tol
ON t.TR_TREATMENT_ID =tol.TOL_TREATMENT_ID
INNERJOIN [CAMPAIGN_ACTIVITY] a ON
t.TR_ACTIVITY_ID = a.CA_ACTIVITY_ID
INNERJOIN [CAMPAIGN] c ON a.CA_CAMPAIGN_ID
= c.CAM_CAMPAIGN_ID
INNERJOIN [CHANNEL] ch ON t.TR_CHANNEL_ID
= ch.CH_CHANNEL_ID
GROUPBY c.CAM_NAME ,
a.CA_NAME ,
ch.CH_NAME
354
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
シミュレーション リプレイによるフィルタを行うには、'tol.TOL_IO_SIM_REPLAY_ID' を NULL にし
てシミュレーション リプレイを除外するための句を追加するか、特定のリプレイのための句を追加し
ます。
Reference Data Group
"構成可能な列挙" から得られた値は、Reference Data Group と RDI のペアとして保存されます。 こ
れらのペアは、amc_rd_ref_data_group テーブルと amc_rd_ref_data_item テーブルで列挙さ
れている、Reference Data Group および Reference Data Item の値を参照しています。
具体的な値に対する RDI インデックスを解決するには、単純にその Reference Data Group および RDI
の値を amc_rd_ref_data_item テーブル内の reference_data_group_id 列および
reference_data_item_id 列と照合します。
特定の Reference Data Group で取り得る値をリストするには、照合する reference_data_group_id
によって amc_rd_ref_data_item テーブルから得られるすべての値を単純にリストします。
特定のタイプの Reference Data Group を見つけるには、その Reference Data Group の値を
amc_rd_ref_data_group テーブル内の reference_data_group_id 列と照合します。
オートメーション
多くの場合抽出は、自動化およびスケジューリングされたデータ抽出プロセスとして設定されます。
この操作をどのように行うかの詳細はこのドキュメントの範囲外ですが、ここではいくつかのヒント
を示します。
• SQL を SQL Server Integration Services パッケージの内部でまとめ上げ、SQL Server Management
Studio の SQL Server Agent Manager を使用して自動化およびスケジュールされたジョブを設定し
ます。
• SQL を SQL CMD のようなバッチ エンジンの呼び出しの内部でまとめ上げ、Windows のスケジュー
ラまたはそうした何らかのユーティリティを使用してスケジュールを調整します。
• 抽出プロセスを外部の分析データ構築プロセス (Quadstone System の qsbuild データビルド コマ
ンドなど) と統合します。
外部データからのログの取り込み
I‎ nteraction Optimizerを使用してキャンペーン回答データを収集すると、回答のログ記録は 'キャンペー
ン回答のログ' オペレーションを使用して実行します。 回答データのログ記録を Interaction Optimizer
の外側にあるシステムから行う必要がある場合、この操作は Portrait データ ウェアハウス (PDW) デー
タベースへの直接インポートによって実行できます。
リファレンス ガイド
355
HQ のトラブルシューティング
HQ のトラブルシューティング
SharePoint インストール後の Portrait HQ に対する認証の失敗
Windows Server 2003 では、SharePoint のインストール後に Portrait HQ (インストール完了後) や、
Windows 認証を使用する他のあらゆる Web アプリケーションに対する認証が行えなくなる場合があ
ります (サイト訪問時明示的なローカルドメイン アカウント資格情報を入力した場合を除く)。 これは
IIS 6.0 のセキュリティ "機能" によるものです。 サーバー上の他の Web アプリケーション (Portrait
Shared Services など) で Windows 認証を可能にする場合は、http://support.microsoft.com/?kbid=896861
に記されている手順に従ってこの問題を修正します。 そこに記されている多くの解決策のうち最も単
純なものが、regedit を使用して、HKLM\System\CurrentControlSet\Control\Lsa に DWORD レジスト
リ キー "DisableLoopbackCheck" を追加してその値 を 1 にすることです。
Portrait HQ 実行時のセキュリティ資格情報に関する問題
サーバー マシン、クライアントのブラウザ、およびネットワーク インフラストラクチャの各種構成設
定によっては、Portrait Miner を起動しようとすると、ユーザー ID とパスワードを要求する Windows
ポップアップ ダイアログ ボックスが表示される可能性があります (このダイアログ ボックスは、Internet
Explorer によって表示されるものであり、Portrait Miner のログオン画面ではありません)。
この問題については、いくつかの原因が考えられます。 以下の点を記載順に確認し、構成の変更が必
要であればそれらを実行することをお勧めします。
• クライアント (ブラウザ) は、サーバーと同じネットワーク (ドメイン) で実行されていますか? そう
でない場合は、それらのドメイン間に信頼関係がありますか?
• Internet Explorer は、ローカル イントラネット ゾーンにアクセスするための既定のセキュリティ設
定を使用するように構成されていますか? そうでない場合は、このゾーンを既定の設定にリセット
してください。
• Portrait Shared‎ Server には、Active Directory 内で関連付けられたサービス プリンシパル名がありま
すか? 一部の環境では、このサービス向けに SPN を作成する必要があります。 SPN を設定する手
順は後述します。
ログオン試行時のアプリケーション ハングのトラブルシューティング
ログインするユーザーが必要な 'ログオン' 権限を持っていることを確認します。
Portrait Shared Services の読み込みの問題
インストール後に Http://<yourserver>:<port>/PortraitSharedService にアクセスできな
い場合は、以下の手順に従います。
1. Web ディレクトリの web.config を開きます。
356
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
2. ‎<“system.web”> の行までスクロールします。
3. この行の下に以下の行を追加します。 <trust level=”Full” originUrl=”” />
Portrait Shared Services のサービス プリンシパル名の作成
サービス プリンシパル名 (SPN) は、SETSPN ツールを使用して Active Directory 内で作成されます。
このツールは、Windows Server 2008 で既定で利用できます。 注意 : SPN の変更は、Portrait Dialogue
Web アプリケーションの Windows 認証に影響を及ぼす可能性があります。その回避方法については、
このセクションの最後で説明します。
サポート ツールのインストール後、ドメイン管理の特権を持つアカウントを使用して Windows Server
コンピュータにログオンしていることを確認し、コマンド プロンプトを開きます。 次の 2 つのコマン
ドの両方を実行します。
• setspn -a http/<server name> <service account>
• setspn -a http/<full qualified domain name of server> < service account>
ここで、
• server name は、サーバーの簡易 (NetBIOS) 名です ("myserver" など)。
• service account は、サービス アカウントの名前です ("mydomain\myaccount" など)。
• full qualified domain name of server は、サーバーの完全修飾ドメイン名です
("myserver.mydomain.mycompany.com" など)。
以下に例を示します。
• setspn -a http/myserver mydomain\myaccount
• setspn -a http/myserver.mydomain.mycompany.com mydomain\myaccount
SPN が作成されていることを確認するには、setspn -l mydomain\myaccount を実行し、サービ
ス アカウントに関連付けられている SPN のリストに簡易版と完全修飾版の両方のサーバー名がある
ことを確認します。
1 台のコンピュータ上で構成できるサービスのインスタンスは 1 つだけです。たとえ
ば、"HTTP/MyMachine" はアカウント "MyDomain\MyUser" に関連付けられている可能性があります。
これは、MyMachine 上のすべての HTTP (Web) サイト / サービスが MyUser アカウントの下で実行さ
れなければならないことを意味します。 そのため、Windows 認証が必要な場合は、異なる ID を持つ
アプリケーション プールで Web アプリケーションを実行できません。 つまり、すべてのアプリケー
ション プールを単一のドメイン アカウントで実行する必要があります。
上記の手順の実行後は、以下の手順に従って、Windows 認証が Portrait HQ Web アプリケーションで
機能していることを確認します。
1. [‎ DefaultAppPool] で右クリックします。‎
2. ‎[Properties] を選択します。
3. ‎[Identity] タブで、[Configurable] をクリックします。
リファレンス ガイド
357
ログの記録
4. Portrait Shared Services のサービス プリンシパル名の作成時に作成されたユーザーのログイン情
報を追加します。
ログの記録
‎Portrait Shared Services または Portrait HQ へのログ記録を有効にする方法については、「構成」セク
ションを参照してください。
Sharepoint および Portrait HQ のインストール後の Dialogue Server のアンイ
ンストール
SharePoint および Portrait HQ をインストールした後に Dialogue Server のアンインストールが必要に
なった場合は、以下の手順に従うことが重要です。 その理由は、プロセス Windows SharePoint
Services Timer を実行するユーザーが PD COM+ パッケージを実行するユーザーと同じだからで
す。 Dialogue Server の再インストール後、このユーザーは、失敗した認証が多すぎるという理由で、
Active Directory によってブロックされる可能性があります。 そのため、Portrait HQ および Sharepoint
がインストールされているサーバーに Dialog Server を再インストールする際には、以下の手順に従い
ます。
1. 上記のサービスが無効になっていることを確認します。
2. Dialogue Server を再インストールします。
3. サービスを再起動します。
Service Account として使用されているアカウントを PSS のインストール後に
変更する方法
Service Account として使用されているアカウントを PSS のインストール後に変更するには、以下の
手順に従います。
1. PSS で使用されているアプリケーション プールの ID として構成されているアカウントを変更しま
す。 そのためには、IIS で、次のようにアプリケーション プールの [Advanced Settings] を選
択します。
2. Service Account として使用する新しいアカウントで、「必須の設定のポスト インストール」に記
されている手順を実行します。
3. Service Account として使用する新しいアカウントで、「Portrait Shared Services のサービス プリ
ンシパル名の作成」に記されている手順を実行します
作成されたタスクが Portrait HQ の [マイビュー] に表示されない場合
タスクの割り当て先となるユーザーまたはタスクを作成するユーザーが SharePoint で現在適切に構成
されているかどうかを確認します。 詳細については、
• 『 Interaction Optimizer インストール ガイド』、または
358
Portrait Dialogue 6.0 SP1
第 12 章 : HQ 管理
• 『Portrait Dialogue サーバー インストール ガイド』の「SharePoint サイトの作成」を参照してくだ
さい。
Portrait HQ に 'Failed retrieving task list' エラー メッセージが表示される場合
1. 『Interaction Optimizer インストール ガイド』に定められたガイドラインに従って SharePoint が
構成されていることを確認します。
2. web.config ファイル内のエンドポイント アドレスが次のように正しく設定されていることを確
認します。
<!-- Endpoint for outbound connection to SharePoint server's List Service
(used for tasks, etc) -->
<endpoint address="http://vm-pss-sharep/portrait/_vti_bin/Lists.asmx"
binding="basicHttpBinding" bindingConfiguration="Sharepoint"
contract="ListsService.ListsSoap" name="ListsSoap"/>
3. web.config ファイルに設定されている URL には、サーバーの名前が含まれていてはなりません。
たとえ、Web ブラウザによる閲覧時にその URL が正常に機能したとしてもです。 例: web.config
内の URL が http://MyServer/MySharepointSite/portrait/_vti_bin/Lists.asmx の
場合、ブラウズ時にこの URL を使用すると正常に機能します。 しかし、この URL を web.config
内で有効なものにするには、次のように、サーバーの名前を URL から削除する必要があります。
http://MySharepointSite/portrait/_vti_bin/Lists.asmx.
リファレンス ガイド
359
サードパーティに関する但し
書き
• サードパーティに関する但し書き . . . . . . . . . . . . . . . . . . .362
13
サードパーティに関する但し書き
サードパーティに関する但し書き
本書に記載されているその他の製品名、会社名、マーク、ロゴ、およびシンボルには、各社の商標ま
たは登録商標であるものがあります。
この製品には、次のものが組み込まれています。
• OpenSSL Toolkit (http://www.openssl.org/) で使用するために OpenSSL Project によって開発された
ソフトウェア。 このソフトウェアのライセンスは、 http://www.openssl.org/source/license.html から
ダウンロードできます。 Copyright c 1998-2008. The OpenSSL Project. All rights reserved.
• Eric Young ([email protected]) と Tim Hudson ([email protected]) によって開発されたソフトウェ
ア。 Copyright © 1995-1998 Eric Young ([email protected]) All rights reserved.
• Chad Z. Hower (Kudzu) と Indy Pit Crew (http://www.IndyProject.org/) によって開発されたソフトウェ
ア。 Copyright (c) 1993 - 2003, Chad Z. Hower (Kudzu) and the Indy Pit Crew. All rights reserved. こ
のソフトウェアは、BSD ライセンスでライセンスされています。このライセンスは、
http://www.indyproject.org/license/bsd.en.aspx からダウンロードできます。
• Facebook_Csharp_SDK バージョン FB: 6.0.20。このソフトウェアは、2004 年 1 月の Apache License
バージョン 2 でライセンスされています。このライセンスは、
http://www.apache.org/licenses/LICENSE-2.0.html からダウンロードできます。 このソフトウェア
のソース コードは、http://csharpsdk.org/ から入手できます。
• Twitterizer2 バージョン FB: 2.4.1。このソフトウェアは、BSD Simplified ライセンスでライセンスさ
れています。このライセンスは、http://www.twitterizer.net/license からダウンロードできます。この
ソフトウェアのソース コードは、http://www.twitterizer.net から入手できます。
362
Portrait Dialogue 6.0 SP1
索引
記号
[グループのプロパティ] ウィンドウ 38
[検索ソースを定義] ウィンドウ 52
数字
1 対 1 グループ式 60
1 対多 グループ式 172
1 対多グループ式 60, 64
A
Accept 229
AcceptAll 231
AcceptBySQL 231
AcceptBySQLRaw 231
ActiveXObject 133, 134, 259, 263, 271, 310
Activities 60, 62, 64
Activity API 259
ActivityDataXML 259
ActivityDesc 251, 283
ActivityID 259
ActivityTypeDescName 172, 259
ActivityTypeID 251
ActivityTypeName 172, 251, 259, 283
AddField 148
AddMessage 224
AddParam 152, 170
AddRow 148
Admin 12, 42, 59, 263, 271, 298, 310
ADO 203
ADO データセット 203, 249, 259, 271
ADO.NET 259, 271
AND 62
AnswerDateTime 172
AnswerFormDataXML 298, 314
AnswerFormID 298
AnswerForms 60, 64
AnswerFormURL 59, 64
AnswerNo 64, 142
API 258
ApplicationSystem 310
ArchiveRef 142, 172
Array 127, 130, 203
AssignedToUserName 314
AssignToUserName 314
B
Base64Binary 283
BaseMessageID 251, 283
BoolAnswer 62, 64
Branch 153
BranchInfo 130, 136, 148, 153, 172, 183, 203, 229,
231
C
CallComplete 314
CallingUser 132
CallStatus 314
CanSetDataFields 133, 160
CCProjectID 314
Cellular 134, 250
ChannelType 62
ChannelTypeName 172, 259
CharDelimiter 172, 183, 283
Clear 231
ClientLocalPath 283
ClientMachine 283
CollectionName 203
ColNo 64
ColumnNo 142
COM 24, 126, 142, 153, 160, 195, 216, 228, 234, 258,
259, 263, 271, 280, 283, 298, 310, 314
COM 実装 142
ConnectionName 203, 231, 280
ContentBinary 218, 283
ContentText 218, 283
Context 172, 218, 231, 259, 263, 271, 298
ContextExpression 231, 271, 283
ContextIncluded 231
ControlParamDefs 134, 170, 228
ControlParams 172, 218, 251, 283
ControlParamValue 218, 227, 251
Count 158, 183, 194, 224
CreateAnswerForm 172
CreateMergeFile 172, 183, 283
CreateMessage 172, 183
CreateMessageBundle 183
CreateSingleMergeFile 283
CreateSingleWordMergeFile 283
CurrentCallStatus 314
CustDomainID 130, 136, 148, 153, 183, 224, 251,
259, 263, 271, 283, 298
Custome View 43
Customer API 271, 314
Customer View 38, 39, 41, 43, 47, 49, 50, 51, 259,
283
Customer Web アクセス 41, 51, 64
CUSTOMER_MESSAGE 283
CustomerAPI 271, 310
CustomerContainer 133, 160
CustomerDataXML 133, 271
CustomerID 132, 172, 218, 231, 259, 263, 271, 283,
298
CustomerMessageID 283
D
DataFields 133, 160, 172, 183, 251, 263, 271, 283,
314
DataGroupName 172
Datatype 148, 192
DatePart 64
Datetime 52, 64, 136, 203, 280
DateValue 64
DBMS 12
DefaultValue 152, 170
Delete 142
DeleteActivity 259
DeleteAnswerForm 298
DeleteAnswerForms 298
DeleteAnswerFormsUNC 298
DeleteCustomerList 307
DeleteCustomerMessage 283
DeleteMessage 283
DeletePsrCustomerList 307
DeletePsrSelection 307
DeleteRow 127, 195
DeleteSelection 307
364
Description 172, 192, 259, 271
DetailDataEof 172
DialogAPI 263
DialogID 263
Dialogue Admin 12, 36, 37, 41, 42, 59, 148, 172, 183,
203, 227, 231, 249, 250, 251, 258, 259, 263, 271, 280,
283, 310, 314
Dialogue API 259, 263, 280
Dialogue Database 12, 17, 19, 20, 24, 34, 183, 229,
231, 251, 263, 298, 310
Dialogue Manager Service 203
Dialogue Server 12, 17, 22, 23, 24, 33, 36, 41, 46, 47,
50, 60, 64, 126, 127, 130, 132, 133, 134, 136, 142,
149, 153, 158, 160, 172, 183, 195, 203, 227, 228, 234,
251, 258, 259, 263, 271, 280, 283, 310
Dialogue Server API 17, 19, 258, 280, 310
Dialogue Server ホスト 12
Dialogue ホスト 310
Diffgram 259, 271
Direction 172, 259
DisplayName 250
DLG_PARTICIPANT 231
Documents 60, 62
DynamicList 130, 136, 148, 153
E
EncodeDateTime 64
ErrorMessage 158
ErrorMessages 158
ErrorText 134
ErrorUNC 298
EvalExprString 172
EvaluateExpression 271
EvaluateExpressionString 271
EventTypeName 172, 271
ExcludeBySQL 231
ExcludeBySQLRaw 231
ExecuteBranch 130, 136, 148, 153, 172, 183, 203,
229, 231
ExecuteOperation 263
ExecuteOperationAsync 263
ExecutePlugin 132, 203, 280
ExecuteSQL 280
ExecuteSQL_JS 280
ExecuteSQLScript 280
ExecuteStoredProc 280
ExecuteStoredProc_JS 280
ExportAnswerForms 298
ExportAnswerFormsUNC 298
ExportUNC 298
Expression 172, 271
Expression Analyser 59
Portrait Dialogue 6.0 SP1
F
FetchNextToCall 314
FetchToCall 314
FieldByName 194
FieldBySourceName 194
Fieldname 148, 172, 192, 194, 271
FieldsAvailable 133, 160
FieldValue 172
FileName 172, 183
FilterExpression 231, 263, 271, 283, 314
FilterOnRecall 314
FilterSQL 130
FirstDetailData 172
FirstMember 158, 183
FollowUpDateTime 172, 259
FollowUpUserName 172, 259
FromGroup 149
FromNumber 134, 170
FUIntervalBegin 259
FUIntervalBeginSet 259
FUIntervalEnd 259
FUIntervalEndSet 259
G
Generic API 132, 280
GetActivity 259
GetActivitySchema 259
GetActivityTypes 259
GetAnswerForm 172, 298
GetAnswerFormByID 298
GetCallStatusTypes 314
GetCategories 271
GetCCParticipantCount 314
GetCCParticipantDetails 314
GetCCParticipants 314
GetCCProjects 314
GetChannelTypes 263
GetControlParamDefs 134, 170, 227, 228
GetCustDomains 271
GetCustomerAsXML 172
GetCustomerContexts 263
GetCustomerCount 271
GetCustomerLists 307
GetCustomers 271
GetCustomersAsXML 183
GetCustomerSchema 271
GetCustomerSelection 271
GetCustomerSelectionCount 271
GetCustomSqlFieldInfo 283
GetDataset 280
GetDialogDetails 263
リファレンス ガイド
GetDialogHistory 263
GetDialogs 263
GetDynamicList 130, 136, 148, 153
GetExpressionFunctions 271
GetFuzzyMessages 283
GetInstances 310
GetLookupDatarow 271
GetLookupDataset 271
GetMasterTemplate 283
GetMessageDetails 283
GetMessagesLockedByUser 283
GetMessageTypes 283
GetNextFilename 251
GetParamDefs 130, 136, 148, 149, 152, 153
GetParticipantCount 263
GetParticipantHistory 263
GetParticipants 263
GetParticipantSchema 263
GetParticipantSelection 263
GetParticipantSelectionCount 263
GetQuestionnaire 298
GetQuestionnaires 298
GetSelections 271, 307
GetSequenceID 203, 280
GetServerVersion 310
GetSingleCustomer 271
GetSingleCustomers 271
GetSingleParticipant 263
GetSQLDef 203
GetStatistics 314
GetSystemUserInfos 310
GetTableTextAnswer 142
GetTaskFUOptions 259
GetTasksByUser 259
GetTaskSummaryByUser 259
GetTaskViewIntervals 259
GetTemplate 283
GetTemplateDetails 283
GetTemplates 283
GetTemplateSchema 283
GetTextAnswer 142
GetUnmergedMessage 183
GetUserSessionInfo 310
GetWorkGroups 259
GroupID 263
H
HTTP POST 258
I
IBM DB2 12
365
IfString 64
IMHActivityAPI 259
IMHAnswerForm インターフェース 142
IMHBranchDynamicList インターフェース 148
IMHBranchInfo インターフェース 149
IMHBranchParamDefs インターフェース 152
IMHBranchPlugin インターフェース 153
IMHCCCallStatusList インターフェース 155
IMHCCProject インターフェース 156
IMHControlParamDefs インターフェース 170
IMHCreateMessagePlugin インターフェース 160
IMHCustomer インターフェース 172
IMHCustomerAPI 271
IMHCustomerContainer インターフェース 183
IMHCustomPluginServices インターフェース 191
IMHDataField インターフェース 192
IMHDataFields インターフェース 194
IMHDataGroupPlugin インターフェース 195
IMHDialog インターフェース 196
IMHDialogAPI 263
IMHDialogGroup インターフェース 199
IMHDialogOperation インターフェース 201
IMHDialogServerServices 203
IMHDialogServerServices インターフェース 203
IMHGenericPlugin インターフェース 216
IMHGenricAPI 280
IMHMessage インターフェース 218
IMHMessageAPI 283
IMHMessageBundle インターフェース 224
IMHMessageContainer インターフェース 158
IMHOutputChannelInfo インターフェース 227
IMHOutputChannelPlugin インターフェース 228
IMHParticipant インターフェース 229
IMHParticipantContainer インターフェース 231
IMHPlugin インターフェース 234
IMHQuestionnaire インターフェース 238
IMHQuestionnaireAPI 298
IMHSelection インターフェース 249
IMHSelectionAPI 307
IMHSQLDef インターフェース 249
IMHSystemAPI 310
IMHSystemUser インターフェース 250
IMHTelemarketingAPI 314
IMHUnmergedMessage インターフェース 251
ImportAnswerForms 298
ImportAnswerFormsUNC 298
Inactivate 229
InactivateAll 231
InactivateParticipant 263
366
IncludeContent 283
IncludeContext 130
IncludeDone 259
IncludeUndone 259
Index 194, 224
InitializePlugin 234
InsertActivity 259
InsertParticipant 263
InsertRow 127, 195
InstanceName 259, 263, 271, 310
InternalID 183
IsContentBinary 251
IsInSelection 64
IsMergeParam 170, 227
IUnknown 234
J
JavaScript 41, 50
JScript 24, 126, 130, 132, 259, 263, 271, 280, 310
K
KeyFieldname 271
KeyValue 271
L
Length 64
ListAsString 155
LockedByUserName 314
LockMessage 283
LogDebugMessage 12, 203
Login 280, 310
LoginEx 310
Logout 280, 310
LookupSourceName 271
LowerCase 64
M
MainDataGroupName 183
MarkAsSent 283
MarkTaskAsDone 259
MaxRows 280
MemberEof 183
MergeControlParams 172
Message 160, 203
Message API 283
MESSAGE_LOG 283
MessageID 283
MessageLogID 218
Portrait Dialogue 6.0 SP1
MessageName 251, 283
MessageText 134
MessageTypeID 251
MessageTypeName 183, 251, 283
MessageUNC 218
MH Dialog Manager Service 12
MH Send Messages Service 12, 183
MH Test 259, 263, 271, 310
Mh_copy_from_remote_group 136
Mh_copy_to_remote_group 136
MHGenericParam 280
Microsoft ADO.NET 259, 271, 280, 298, 314
Microsoft ASP.NET 41
Microsoft COM 216, 258
Microsoft Word 40
MS OLE DB 12
MS SQL Server 12
MS Word Mail Merge 283
MS Word Merge 133, 172, 183
MTS 24
N
NewsLetter 64, 172, 229
NewValue 127, 192
NextDetailData 172
NextMember 183
NOT 62, 298
Now 64
NumberOf 60, 64
O
ObjectName 191
ODBC 24
OLD DB 24
OldValue 127, 192
OLE DB 接続 24
OnePerCustomer 133
OperationID 263
OR 62
Oracle 12, 203, 280
OUT 172, 259, 283
Outbox 251
OutputChannelID 251
OutputChannelInfo 228
OutputMessage 133
OutputMessages 133, 134, 228
P
Param 134, 218, 251
リファレンス ガイド
ParamAsFloat 203
ParamAsInteger 203
ParamAsString 203
ParamDefs 130, 136, 148, 152, 153
ParamName 130, 136, 148, 149, 153, 203, 218, 227,
251
ParamType 152
ParamValue 149
ParticipantID 229, 263, 283, 314
Participants 130, 136, 148, 153, 172, 183, 203, 229,
231
Password 310
PercentCompleted 149, 227
PluginDefID 251
PluginName 203, 280
PopulateFromSQL 148
PopulateFromXML 148
Portrait Shared Repoistory 307
PostActivity 172, 259
PostEvent 172, 271
PostMessages 183
PostSingleDialogMessage 283
PostSingleMessage 283
PostTask 172, 259
Process Monitor 12, 203
ProcessedCount 158
ProduceMessage 172
ProduceMessages 133, 160, 183
ProducePostMessages 283
ProducePostSingleDialogMessage 283
ProducePostSingleMessage 283
ProduceSingleDialogMessage 283
ProduceSingleMessage 133, 160, 283
ProduceSingleTestMessage 283
ProduceTestMessages 283
ProduceTestMessagesFromSelection 283
PSR 307
PSR セレクション 307
Q
QuesionnaireID 64
Questionnaire API 298
QuestionnaireID 64, 172, 298
QuestionNo 64, 142
QuoteChar 172, 183, 283
R
RemoveCategory 172, 271
RemoveCategoryValue 172, 271
ReportProgressStatus 149, 227
RowNo 64, 142
367
S
Safearray 216
SavePsrCustomerList 307
SavePsrCustomerListAsynchronous 307
SavePsrSelection 307
SaveSelection 307
SaveSqlSelection 307
SaveTemplate 283
ScanDateTime 172
Score 172, 271
Scramble 64
SelectByExpression 231
SelectBySelection 231
SelectBySQL 231
SelectBySQLRaw 231
SelectCategories 136, 148
Selection API 307
SelectionID 64, 231, 263, 271
SelectSingle 231
SendMessages 134, 228
SequenceName 203, 280
Server API 258
Server ホスト 12
ServerSession 258, 259, 263, 271, 280, 283, 298,
310, 314
SessionKey 259, 263, 271, 310
SetCategory 172, 271
SetCategoryScore 172, 271
SetCategoryValue 172, 271
SetCheckAnswer 142
SetDataFields 133, 160
SetRadioAnswer 142
SetStatusError 158
SetStatusOK 158
SetTableBoolAnswer 142
SetTableTextAnswer 142
SetTaskReadFlag 259
SetTextAnswer 142
SMTP 20, 24, 126
SOAP 258, 259, 263, 271, 280, 283, 298, 310, 314
SourceFieldName 192, 194
SourceUNC 298
SourceXML 298
SQL 12, 23, 24, 36, 38, 39, 44, 45, 46, 49, 52, 64,
127, 130, 136, 148, 203, 231, 249, 251, 258, 280, 298
SQL リポジトリ 23, 36, 52, 231, 280, 298
SQLConnectionID 251
SQLConnectionObject 203
SQLExecute 203, 280
SQLExecuteRaw 203
SQLExecuteStoredProc 203
SQLName 148, 203, 231, 280, 298
368
SQLOpen 203
SQLOpenRaw 203
SQLRetrieveValue 203
SQLRetrieveValueRaw 203
StatusText 149, 227
StoredProcName 203, 280
SuccessUNC 298
SuccessXML 298
Sum 64
System API 258, 259, 271, 310
SystemUserName 64, 259
T
TableBoolAnswer 64
TableTextAnswer 64
TASK_FU_OPTION 259
TASK_VIEW_INTERVAL 259
TaskID 259
TaskWorkGroup 172, 259
TaskWorkGroupID 172, 259
Telemarketing 41, 51, 314
Telemarketing API 314
Telemarketing Web 51
TemplateUNC 251
TextAnswer 64
TimePart 64
Today 64
ToGroup 149
ToString 64
U
UnlockCCParticipant 314
UnlockMessage 283
UnmergedMessage 133, 160, 172, 183, 224
UnsubscribeURL 64
UpdateActivity 259
UpdateAnswerForm 298
UpdateDataset 280
UpdateMessage 283
UpdateRow 127, 195
UpdateSingleCustomer 271
UpdateUserSettings 310
UpperCase 64
URL 51, 59, 64
スクランブル 64
開く 64
含む 64
UseOutbox 183, 251
UseQuote 172, 183, 283
UserName 134, 250, 310
Portrait Dialogue 6.0 SP1
UsesSQL 251
く
V
グループ 44
グループ タイプ 16
Visual Dialogue 16, 30, 39, 40, 43, 59, 136, 148, 149,
152, 153, 231, 251, 259, 263, 283
タスク オーガナイザ 259
W
Web Framework 41
Web Services 24
Web サービス 258
Web サービス アプリケーション 258
Web プロパティ 43, 47, 51
WebProfileURL 64
Word Mail Merge 283
こ
コール ステータス タイプ 17
コメント 142, 172
コンテキスト 283
コンテナ 172
コンテンツ 51
コンテンツ タイプ プロパティ 51
コントロール パラメータ 283
し
X
システム グループ 47
XML Diffgram 259, 271, 280, 298, 314
XSL Transform 133
す
あ
ステータス タイプ 16
ステップ 36, 37, 38, 39, 40
アーカイブ化レポート 302
アウトボックス 183, 283
アプリケーション システム 33
い
イベント タイプ 17
インターフェース 142
インポート 115
せ
セカンダリ データベース 24
セキュリティ 26, 33
セレクション 307
セレクション デザイナ 39, 59, 62, 64
そ
ソース グループ 231
え
エクスポート 114
お
オブジェクトのセキュリティ 30
オペレーションタイプ 16
か
カテゴリ 15
リファレンス ガイド
た
ターゲット グループ 231
タスク 19
タスク オーガナイザ 259
タスク フィールド 19
ち
チャネル タイプ 20
369
て
データ グループ 44
データ ソース プロパティ 45
データ フィールド 42
データグループ 52
データセット 44, 49, 51, 203, 259, 271, 280
データベース 203, 280
データベース インスタンス 12
データ型 16, 52
テーブルのメンテナンス 34
テクニカル ヘルプ 15
テスト 39, 258
ドメイン 39
と
ドメイン 36, 37, 39
ドメインに関する詳細情報 40
プラグイン API 12, 126, 142
プラグイン リポジトリ 24, 46
ブランチ プラグイン 130, 183
め
メイン グループ SQL 36
メイン グループ式 60
メイン データ グループ 38
メッセージ タイプ 22
メッセージ プラグイン 133, 183
ゆ
ユーザー 26, 33
ユーザー グループ 26
り
リソース 23
は
パラメータ 12, 42
パラメータ コレクション 33
ふ
ファジー メッセージ 33
フィールド 38, 48
フィールド名 38
フォローアップ 19
プラグイン 46, 132
370
れ
レポート 302
レポート アーカイブ 302
レポート テンプレート 302
レポート フォーマット 302
ろ
ログイン 33, 250, 258
ログオン 12
Portrait Dialogue 6.0 SP1