【セッションNo．2】

Enterprise Connectorsを活用したクラウドサービスとIBM iとの連携
株式会社ミガロ．
RAD事業部 技術支援課

尾崎 浩司
第24回 Migaro. Technical Seminar【アジェンダ】••••

IBM i 基幹系システムと情報系サービスとの連携
Enterprise Connectorsの概要
導入手順、開発手法の基本
クラウドサービスとの連携活用例
 6つのサービス連携活用例

第24回 Migaro. Technical Seminar

IBM i 基幹系システムと情報系サービスとの連携

第24回 Migaro. Technical Seminar IBM i 基幹系システムと情報系サービスとの連携• 社内システムの現状と課題• IBM i 基幹系システム（Delphi/400,PC5250）が稼働しているが、それとは別に情報系サービス（営業支援、SNS、メール、グループウェア...）を併用することが多い。
• 情報系サービスは、オンプレミスでなくクラウドをベースにしたものが主流になりつつある。
オンプレミス：IBM i

クラウド
情報系基幹系
Delphi/400

グループウェアPC5250

SNS

DB2 for i

別々に稼働している基幹系システムと情報系サービスとの連携ができていないことが多い
第24回 Migaro. Technical Seminar IBM i 基幹系システムと情報系サービスとの連携• 基幹系システムと情報系サービスとの一般的な連携手法• クラウドサービスとの連携には、サービスプロバイダーが提供するWeb APIを使用する。
 リクエストは、SOAP/RESTを使用し、レスポンスはXML/JSON で受け取る事が多い。
Delphi/400には、Web APIを使用する為のコンポーネントも搭載
Delphi/400を使用すれば、Web APIを使用した連携は可能だが…
懸念事項•

SOAP/REST、XML/JSON等に関する知識が必要•

サービスプロバイダー毎に異なる仕様の理解が必要•

頻繁なWeb APIの仕様変更に伴い都度連携ロジックの修正が必要

もっと容易に連携することはできないか？
第24回 Migaro. Technical Seminar IBM i 基幹系システムと情報系サービスとの連携• Delphi/400 10.2 Tokyoより 『Enterprise Connectors』
オプションが登場• 「Enterprise Connectors」は、サービスプロバイダーが提供するWeb APIをラッピングすることにより、クラウドサービス等に容易にアクセスできるコネクターコンポーネント。
• Delphi標準機能であるデータベースエンジン（FireDAC）を使用したSQLによるデータアクセスを実現。

IBM iやOracle/SQLServer へのアクセスと同じ仕組みでクラウドサービスにもアクセスできる
第24回 Migaro. Technical Seminar IBM i 基幹系システムと情報系サービスとの連携• Enterprise Connectors が 2019年10月より無償化• 当初 Enterprise Connectorsは、有償オプションだったが、Delphi/400 10.2 Tokyo 開発メンテナンス（Delphi サブスクリプション）
ユーザーは「Enterprise Connectors」のライセンスキーが無償で取得可能に。

Enterprise Connectors
IBM i

クラウドサービス容易な連携を実現

本セッションでは、 Enterprise Connectors を活用した
IBM iとクラウドサービスとの連携に関する技術トピックスを紹介！
第24回 Migaro. Technical SeminarEnterprise Connectorsの概要

第24回 Migaro. Technical Seminar Enterprise Connectorsの概要• Enterprise Connectors• データベースエンジン(FireDAC)を使用したクラウドサービスへのコネクタコンポーネント• 2つのEditionを用意 （Delphi/400開発環境に開発者ライセンスが必要、開発アプリ配布は無料）• 標準版：Enterprise• 上位版：Enterprise Plus

（有償 → 無償）
（引き続き有償）

現在 約80種類のサービスに対応
現在 約150種類のサービスに対応• サブスクリプションライセンス• 年間単位の使用（継続使用することで、Web APIの仕様変更に対応した最新版が入手可能）• 今後も対応サービスは増えていく予定(2017年Enterprise Connectors登場時は、標準版：45種類、上位版：80種類)

第24回 Migaro. Technical Seminar Enterprise Connectorsの概要• 対応サービス一覧 (2019年11月現在：https://www.cdata.com/jp/firedac /download/ より転載）•“ENTERPRISE PLUS ONLY” と記載のものは、上位版のみで使用可能

第24回 Migaro. Technical Seminar Enterprise Connectorsの概要• 対応サービス一覧

全151種類 (標準版：85種類）

第24回 Migaro. Technical Seminar

導入手順、開発手法の基本

第24回 Migaro. Technical Seminar Enterprise Connectors 導入手順
• Enterprise Connectors サブスクリプションキーの取得
https://reg.codegear.com/srs6/promotion.jsp?promoId=561

Delphi のシリアル番号を入力[無償製品の取得]をクリックすると、Enterprise Connectors のプロダクトキー情報が登録メールアドレス宛に届く

第24回 Migaro. Technical Seminar【初回のみ】

 Enterprise Connectors 導入手順

【各コネクター毎】• Enterprise Connectors コンポーネントのダウンロード
https://www.cdata.com/firedac /download/

CData社サイトにあるダウンロードページから利用したいコネクターを選択する。
(PROFESSIONAL SUBSCRIPTIONが対象）

ダウンロードしたインストーラを使ってインストールを行う。

第24回 Migaro. Technical Seminar

メールアドレスおよびプロダクトキーを指定して[DOWNLOAD]をクリックすると、コネクターのインストーラが取得できる。

 Enterprise Connectors 導入手順
• インストール完了【各コネクター毎】

ヘルプ
インストールしたコネクターのヘルプが用意されている。
・ 接続パラメータ
・ SQL構文・ Table や Field の定義 等が記載

スタートメニューDelphi
ツールパレット

インストールしたコネクターが[スタートメニュー]に追加される。

第24回 Migaro. Technical Seminar[FireDAC Links]カテゴリに追加したコネクターの ドライバーリンクコンポーネントが追加される

 Enterprise Connectors 開発手法の基本 【全コネクター共通】• データベースエンジン(FireDAC)を使用• IBM i(AS/400)へ接続する場合
データベースエンジン（FireDACコンポーネント）
TFDConnection : データベースへの接続定義TFDQuery : SQLを実行してデータ取得、更新• Enterprise Connectorsのコネクターへ接続する場合
データベースエンジン（FireDACコンポーネント）
TFDConnection : コネクターへの接続定義
TFDQuery : SQLを実行してデータ取得、更新

接続するデータベースドライバーにあわせたLinkコンポーネントを使用(IBM i の場合 TFDPhysCO400DriverLink)

接続するコネクターにあわせたLinkコンポーネントを使用 (CSVコネクターの場合
TFDPhysCDataCSVDriverLink)

データベースエンジンFireDACコンポーネントが、そのまま使用できる
第24回 Migaro. Technical Seminar Enterprise Connectors 開発手法の基本 【全コネクター共通】• TFDConnection【各コネクター共通】
作成したアプリケーションをユーザー環境で実行できるようにする場合、[RTK]パラメータの設定が必要。

TFDConnection を右クリック[接続エディタ］を選択使用するコネクターに合わせたドライバIDを指定。
選択したドライバに必要なパラメータ一覧が表示。
接続に必要なパラメータを指定。
設定に必要なパラメータは、[ヘルプ]に記載。

インストールフォルダ

コネクターのインストール
フォルダ内にあるライセンスファイルにRTK値が記載。

第24回 Migaro. Technical Seminar

転記クラウドサービスとの連携活用例

第24回 Migaro. Technical Seminar クラウドサービスとの連携活用例• Enterprise Connectors 6つのサービス連携活用例を紹介① CSVコネクター：CSVファイルを使用したSQL操作の実現② Excelコネクター：Excelに依存せずにExcelファイルを出力する方法③ Open Exchange Ratesコネクター ：為替レートの取得④ Twitterコネクター：ツイート検索と投稿⑤ Slackコネクター：Bot作成⑥ Google Driveコネクター：
Googleドライブのフルテキスト検索

第24回 Migaro. Technical Seminar 活用例１：CSVコネクター• 郵便番号CSVファイルの読込み
日本郵便HP

アプリケーション

CSVファイルを読み込み

KEN_ALL.CSV
住所の郵便番号

第24回 Migaro. Technical Seminar 活用例１：CSVコネクター• Delphi/400でCSVファイルを読み込む方法• 一般的には、TStringListを使用することが多い。
TStringList 例

CSVファイルはテキスト（文字列）のリスト
procedure TForm1.Button1Click(Sender: TObject);
varであるため、TStringListを使用すれば
i, j: Integer;
容易にデータにアクセスできる。
sListCSV: TStringList;
sListColumns: TStringList;
begin
sListCSV := TStringList.Create;sListColumns := TStringList.Create;
trysListCSV.LoadFromFile('C:¥Projects¥MGTEC24LIB¥CSV¥ken_all¥KEN_ALL.CSV');//CSVデータの読込
for i := 0 to sListCSV.Count - 1 do
begin
sListColumns.CommaText := sListCSV[i];for j := 0 to sListColumns.Count - 1 do//値の取得データへのアクセスは全てShowMessage(sListColumns[j]);end;コーディングで処理
finallysListColumns.Free;sListCSV.Free;end;end;

CSVファイルにEnterprise Connectorsを使用するメリットは？
第24回 Migaro. Technical Seminar 活用例１：CSVコネクター• Delphi/400でCSVファイルを読み込む方法• CSVコネクターを使用
Delphi 開発デザイン

URI:
ファイルの保管場所を指定
・ローカルフォルダの場合：file://他にも、次のような場所が指定可能。
・http(s)・ftp(s)・sftp
・Amazon S3
・Box
・Google Drive
・Azure Blob Storage
・SharePoint

1行目が列名となるかどうか
CSVコネクタ用コンポーネント

CSVファイルの文字コードを指定（日本語CSVの場合 charset=Shift_JIS;）

メリット１：ローカルだけでなく、インターネット上/クラウドサービス上に保管されたCSVも直接指定可能

第24回 Migaro. Technical Seminar 活用例１：CSVコネクター• Delphi/400でCSVファイルを読み込む方法• CSVコネクターを使用
コード例

実行例
CSVファイルをSQLテーブルとして指定

procedure TForm1.ButtonSearchClick(Sender: TObject);
beginwith FDQuery1 do
begin
Active := False;
SQL.Text := 'SELECT * FROM CData.CSV."KEN_ALL.CSV" '+ 'WHERE Col2 Like :YUBIN'; //--- Col2(3列目：郵便番号)
ParamByName('Yubin').AsString := EditYubin.Text + '%';
Active := True;
end;
end;

CSVファイルに列名が定義されていない
場合、Coln (n:0～) の形式で列番号を指定

郵便番号(Col2)が “556”から始まるものを抽出して出力

メリット２：CSVデータをDataSetとして扱える為、DBGrid等ビジュアルコンポーネントに関連付け可能
メリット３：CSVデータに対するSQL操作(Select, Insert, Update, Delete)が可能

第24回 Migaro. Technical Seminar 活用例２：Excelコネクター• IBM i上のデータをExcelファイルへ出力

取引先マスタ
MTORHKI②データ取得③データ出力エクセルファイル

アプリケーション

IBM i上のデータを読み込みExcelファイルに出力①ファイルコピー

テンプレートファイル
dummy.xlsx

第24回 Migaro. Technical Seminar

列名が設定されたテンプレートファイル 活用例２：Excelコネクター

Workbook• Delphi/400でExcelファイルを書き出す方法• 一般的には、OLEを使用することが多い。
uses System.IOUtils, System.Win.ComObj;

ComObjをユニット追加

procedure TForm1.Button1Click(Sender: TObject);variRow: Integer;sFileName: String;Excel操作用のVariant変数
Exl, WrkBk, WrkSht: Variant;
begin//保存ダイアログを表示する。
if not SaveDialog1.Execute then Exit;sFileName := SaveDialog1.FileName; //----- 保存先取得
テンプレートをコピー//テンプレートのExcelファイルをコピーする
TFile.Copy(ExtractFilePath(Application.ExeName) + 'Dummy.xlsx', sFileName, True);
iRow := 1;
Exl := CreateOleObject('Excel.Application'); //---- Excel起動
Exl.Visible := False;
Excelの起動
WrkBk := Exl.Workbooks.Open(sFileName);//---- Bookを開く
WrkSht := WrkBk.WorkSheets['Sheet1'];//---- Sheet1を選択
try//IBM i よりデータを取得して、Excelテーブルに書き込む
with FDQuery_Select_AS do //-- SQL: SELECT * FROM MTORHKI ORDER BY TRHKCD
begin
Active := True;tryFirst;
while not Eof doWorkSheet
Cells

begin
//行番号カウントアップ
inc(iRow);//Excelセルへの書き込み
WrkSht.Cells[iRow, 1].Value := FieldByName('TRHKCD').AsString;
WrkSht.Cells[iRow, 2].Value := FieldByName('TRHKNM').AsString;
WrkSht.Cells[iRow, 3].Value := FieldByName('TANTCD').AsString;
WrkSht.Cells[iRow, 4].Value := FieldByName('YUBIN').AsString;
WrkSht.Cells[iRow, 5].Value := FieldByName('JUSYO').AsString;
WrkSht.Cells[iRow, 6].Value := FieldByName('TEL').AsString;
WrkSht.Cells[iRow, 7].Value := FieldByName('FAX').AsString;//次レコードへ移動
Next;
end;
finally取得したデータを
Active := False;
end;
シート上のセルに書き込みend;//ブックを保存して、Excel終了
WrkBk.Save;
WrkBk.Close;
Exl.Quit;
finally
WrkSht := Unassigned;
WrkBk := Unassigned;
Exl:= Unassigned;
end;
end;

ExcelファイルにEnterprise Connectorsを使用するメリットは？

第24回 Migaro. Technical Seminar

Excel OLE

Excel 活用例２：Excelコネクター• Delphi/400でExcelファイルを書き出す方法• Excelコネクターを使用
Delphi 開発デザイン

IBM i 接続用コンポーネント

ExcelFile：
操作対象のExcelファイルを指定
Excelコネクタ用コンポーネント

第24回 Migaro. Technical Seminar 活用例２：Excelコネクター• Delphi/400でExcelファイルを書き出す方法• Excelコネクターを使用
コード例

uses System.IOUtils;

SQL文（INSERT文）[シート名]がテーブル名[1行目のセル名]がフィールド名 となる。

procedure TForm1.Button1Click(Sender: TObject);var
sFileName: String;
テンプレートをコピー
begin//保存ダイアログを表示する。
if not SaveDialog1.Execute then Exit;sFileName := SaveDialog1.FileName; //----- 保存先取得//テンプレートのExcelファイルをコピーする
TFile.Copy(ExtractFilePath(Application.ExeName) + 'Dummy.xlsx', sFileName, True);//Excelファイルを使用して、Excelドライバーを開く
FDConnection_Excel.Params.Values['ExcelFile'] := sFileName;
FDConnection_Excel.Connected := True;try//Excelに挿入するSQL文を指定
FDQuery_Insert.SQL.Clear;
Excelファイルの指定
FDQuery_Insert.SQL.Text:= 'INSERT INTO Sheet1 (TRHKCD, TRHKNM, TANTCD, YUBIN, JUSYO, TEL, FAX) '+ 'VALUES (:TRHKCD, :TRHKNM, :TANTCD, :YUBIN, :JUSYO, :TEL, :FAX) ' ;//IBM i よりデータを取得して、Excelテーブルに書き込む
with FDQuery_Select_AS do //-- SQL:SELECT * FROM MTORHKI ORDER BY TRHKCD
begin
Active := True;tryFirst;

第24回 Migaro. Technical Seminar

取得したデータを使用して更新パラメータに値をセットしてSQL(INSERT)を実行

while not Eof dobegin//レコード追加SQLの実行
FDQuery_Insert.ParamByName('TRHKCD').AsString:= FieldByName('TRHKCD').AsString;
FDQuery_Insert.ParamByName('TRHKNM').AsString:= FieldByName('TRHKNM').AsString;
FDQuery_Insert.ParamByName('TANTCD').AsString:= FieldByName('TANTCD').AsString;
FDQuery_Insert.ParamByName('YUBIN').AsString:= FieldByName('YUBIN').AsString;
FDQuery_Insert.ParamByName('JUSYO').AsString:= FieldByName('JUSYO').AsString;
FDQuery_Insert.ParamByName('TEL').AsString:= FieldByName('TEL').AsString;
FDQuery_Insert.ParamByName('FAX').AsString:= FieldByName('FAX').AsString;
FDQuery_Insert.ExecSQL;//次レコードへ移動
Next;
end;
finally
Active := False;
end;
end;
finally
FDConnection_Excel.Connected := False;
end;
end;

 活用例２：Excelコネクター• Delphi/400でExcelファイルを書き出す方法• Excelコネクターを使用
実行例• 実行環境にExcelが入っていなくても実行可能• サーバーアプリケーションでの利用が可能

サーバーアプリWebアプリ、バッチ処理…

メリット：Excelに依存せずにExcelファイルを生成できる為、サーバーサイド処理にも使用可能。

第24回 Migaro. Technical Seminar 活用例２：Excelコネクター• Excelコネクターを使用した動的なファイル生成（補足） コネクターのオープンにExcel指定が必要な為• ストアドプロシージャを使用すると、動的にExcelファイルを生成可能
コード例(P.27前半を変更)

ダミーのExcelを指定

procedure TForm1.Button1Click(Sender: TObject);var
sFileName: String;
begin//保存ダイアログを表示する。
if not SaveDialog1.Execute then Exit;sFileName := SaveDialog1.FileName; //----- 保存先取得//Dummy.xlsxを使用してExcelドライバーを開く
FDConnection_Excel.Params.Values['ExcelFile']:= ExtractFilePath(Application.ExeName) + 'Dummy.xlsx';

プロシージャ名として“CreateWorksheet”を選択
CreateWorksheet プロシージャのパラメータ
パラメータ
概要
file

ファイル名

sheet

シート名

columnnames

1行目に出力する列名の一覧

ファイル名、シート名、列名を指定して、Excelファイルを作成

第24回 Migaro. Technical Seminar

FDConnection_Excel.Connected := True;try//ストアドプロシージャを使用して、Excelファイルの新規作成
FDStoredProc_Create.ParamByName('file').AsString := sFileName;
FDStoredProc_Create.ParamByName('sheet').AsString := 'Sheet1';
FDStoredProc_Create.ParamByName('columnnames').AsString:= 'TRHKCD,TRHKNM,TANTCD,YUBIN,JUSYO,TEL,FAX';
FDStoredProc_Create.ExecProc;
finally//Dummy.xlsxを使用したExcelドライバーを閉じる
FDConnection_Excel.Connected := True;end;//新規作成したExcelファイルを使用して、Excelドライバーを再度開く
FDConnection_Excel.Params.Values['ExcelFile'] := sFileName;
FDConnection_Excel.Connected := True;try 活用例３：Open Exchange Ratesコネクター• Open Exchange Rates• https://openexchangerates.org/

Open Exchange Rates
為替レート 情報にアクセスできる APIサービス
有償サービスだが、無料プランも用意。
（1か月あたり1000問合せまで、基準通貨がUSDのみ）
事前にアカウントを作成

予め、アカウントを登録して、App IDを取得する

第24回 Migaro. Technical Seminar 活用例３：Open Exchange Ratesコネクター• Delphi/400で為替レートを取得• Open Exchange Ratesコネクターを使用
Delphi 開発デザイン

App IDを設定

Open Exchange Rates
コネクタ用コンポーネント

第24回 Migaro. Technical Seminar

Open Exchange Rates で使用できる主なビュー名
ビュー名

概要

Latest

最新の為替レート

Historical

指定した日付の為替レート履歴

Currencies

使用可能な通貨一覧

 活用例３：Open Exchange Ratesコネクター• Delphi/400で為替レートを取得• Open Exchange Ratesコネクターを使用
procedure TForm1.FormCreate(Sender: TObject);
begin//Open Exchange Rates へ接続
FDConnection_OER.Connected := True;

現在のドル円レート
および 指定した日付のレートを取得

SQLプロパティ//現在の為替レート取得
FDQuery_Lat.Active := True;
Edit_LatestVal.Text := FDQuery_Lat.FieldByName('Value').AsString;
FDQuery_Lat.Active := False;end;
procedure TForm1.ButtonSearchClick(Sender: TObject);begin//指定日付の為替レート取得
with FDQuery_His do
begin
Active := False;
ParamByName('Date').AsDate := Edit_Date.Date;
Active := True;
try
Edit_HistVal.Text := FieldByName('Value').AsString;
finally
Active := False;
指定された日付をend;end;
パラメータにSQLを実行
end;

実行例

SQLプロパティ

IBM i上で外貨を取り扱う際のレート計算に活用できる
第24回 Migaro. Technical Seminar 活用例４：Twitterコネクター• Twitter• https://twitter.com/

Twitter
短文のつぶやきをベースとしたSNS
他のSNSに比べ、気軽にフォローできるオープンさがあり、不特定多数のトレンド情報にアクセスしやすい。
企業でも、情報発信等で多数利用。
事前に開発者アカウントを申請・作成し、アプリを作成する
https://developer.twitter.com/en/apps/
アプリを申請したら、APIキーおよび アクセストークンが取得できる

第24回 Migaro. Technical Seminar 活用例４：Twitterコネクター• Delphi/400を使用したツイート検索と投稿• Twitterコネクターを使用

Twitterコネクタ用コンポーネント

Twitter で使用できる主なテーブル名
テーブル名

概要

Tweets

ツイート検索、ツイート投稿

Favorites「いいね」一覧、「いいね」追加/削除

Following

フォローしているユーザー一覧/フォロー追加/削除

第24回 Migaro. Technical Seminar

開発者登録したアカウントを使用して、検索/投稿する場合は、取得した APIキー とアクセストークンを指定すればよい。

 活用例４：Twitterコネクター

SQLプロパティ• Delphi/400を使用したツイート検索と投稿• Twitterコネクターを使用
Delphi 開発デザイン

Edit_Keyword: TEdit

From_User_Name : 投稿ユーザー名
Text: メッセージ本文
SearchTerms: 検索キーワード

コード例
Button_Search: TButton
DBMemo1
DataField : “Text”
DBEdit1
DataField : “From_User_Name”

Button_Tweet: TButton

Edit_Msg: TEdit

第24回 Migaro. Technical Seminar

SQLプロパティ

Text : メッセージ本文

procedure TForm1.Button_SearchClick(Sender: TObject);begin//キーワードを指定したツイート検索
with FDQuery_Search do
begin
Active := False;
ParamByName('SearchTerms').AsString := Edit_Keyword.Text;
Active := True;
end;
end;
procedure TForm1.Button_TweetClick(Sender: TObject);
begin//投稿with FDQuery_Tweet do
begin
ParamByName('Text').AsString := Edit_Msg.Text;
ExecSQL;
end;end; 活用例４：Twitterコネクター• Delphi/400を使用したツイート検索と投稿• Twitterコネクターを使用
実行例

キーワードに関連するツイートが一覧表示される。

メッセージが投稿される

IBM i 上の商品/在庫データと連携した キャンペーン情報の告知等に活用できる
第24回 Migaro. Technical Seminar

Twitter 活用例５：Slackコネクター• Slack• https://slack.com/intl/ja-jp/
URL末尾部分が現在使用しているチャンネルのチャンネルID

Slack
ビジネス向けチャットツール。
有料サービスだが、無料プランも用意。
社内チーム内でチャンネルを作成し、情報共有が可能。
ファイルの共有や、Google Driveをはじめとする各種サービスとの連携も可能。
2019年9月現在 アクティブユーザー1200万人が利用事前に開発者アカウントを作成し、アプリを登録する
https://api.slack.com/
アプリを登録したら、クライアントIDおよびアクセストークンが取得できる

第24回 Migaro. Technical Seminar 活用例５：Slackコネクター• Delphi/400を使用したBot（自動発信）作成• Slackコネクターを使用取得した クライアントID とアクセストークンを指定すればよい。
Slackコネクタ用コンポーネント
Slack で使用できる主なテーブル名
テーブル名

概要

Channels

チャンネル取得、登録/削除

Messages

メッセージ取得、登録/削除

Users

ユーザー取得、編集

第24回 Migaro. Technical Seminar 活用例５：Slackコネクター• Delphi/400を使用したBot（自動発信）作成• Slackコネクターを使用
Delphi 開発デザイン
IBM i 接続コンポーネント

Slack接続コンポーネント

受注をエントリーした際に、Slackに自動発信する

コード例

procedure TForm1.ButtonSaveClick(Sender: TObject);varsMsg: String; //---- 投稿メッセージ
受注ファイルにデータ登録
begin//IBM iへデータ登録
with FDQuery_ASInsert dobegin//値のセット
ParamByName('ORORNO').AsInteger := StrToInt(Edit_ORNO.Text);
ParamByName('ORDATE').AsDate:= Edit_DATE.Date;
ParamByName('ORSYNM').AsString:= Edit_SYNM.Text;
ParamByName('ORTKNM').AsString:= Edit_TKNM.Text;
ParamByName('ORSHNM').AsString:= Edit_SHNM.Text;
ParamByName('ORKNGK').AsInteger := StrToInt(Edit_KNGK.Text);//登録
ExecSQL;
投稿メッセージの作成
end;//メッセージ作成
sMsg := Format('おめでとうございます！%s さんが受注しました。' + #13#10+ '・得意先名：%s ' + #13#10+ '・商品名 ：%s ' + #13#10+ '・受注金額：%d ', [Edit_SYNM.Text, Edit_TKNM.Text, Edit_SHNM.Text,
StrToInt(Edit_KNGK.Text)]);//受注情報をSLACKへ投稿
with FDQuery_SLACKInsert do
メッセージの投稿
begin//SQL文作成
SQL.Text := 'INSERT INTO Messages (ChannelId, Text) '+ 'VALUES (:ChannelId, :Text)';//値のセット
ParamByName('ChannelId').AsString := 'CQNJH95SM'; // 投稿先のChannelID
ParamByName('Text').AsString := sMsg;// 投稿メッセージ//投稿
ExecSQL;
end;end;

第24回 Migaro. Technical Seminar 活用例５：Slackコネクター• Delphi/400を使用したBot（自動発信）作成• Slackコネクターを使用

レコードが追加される

IBM i
受注ファイルFORDRP

実行例

Slack

DelphiApp(アプリ）からメッセージが投稿される受注情報を入力してボタンをクリック

IBM i 上の受注/売上ファイルを元に月次報告書を自動投稿する等の活用ができる
第24回 Migaro. Technical Seminar 活用例６：Google Driveコネクター• Google Drive• https://drive.google.com/

Google Drive
Googleが提供するオンラインストレージサービス。
PC、スマホ、タブレットなど多彩な端末からアクセス可能。
法人向けサービスでは、「G Suite」と呼ばれるグループウェアツールの一機能として提供され、メール、カレンダー等各種アプリも使用可能。

Enterprise Connectorsに対応するG Suite アプリ
Gmail

Google Drive
Google Calendar
Google Contacts
Google Search

Google Sheets

第24回 Migaro. Technical Seminar 活用例６：Google Driveコネクター• Delphi/400を使用したGoogle Drive検索• GoogleDriveコネクターを使用

Google Drive
コネクタ用コンポーネント
Google Drive で使用できる主なテーブル名/ビュー名
テーブル/ビュー名

概要

Files

フォルダおよびファイル取得/作成/変更/削除

Docs

Goolgeドキュメントへのアクセス(View)

SheetsGoogleスプレッドへのアクセス(View)

Folders

フォルダへのアクセス(View)

アクセストークンが無い場合
ブラウザを開いて認証

第24回 Migaro. Technical Seminar

初回接続時、許可を求められる為[許可]を押下する

 活用例６：Google Driveコネクター• Delphi/400を使用したGoogle Drive検索• GoogleDriveコネクターを使用
Delphi 開発デザイン

Google Drive接続コンポーネント

コード例

Id：ファイルに付与されたユニークId
Name：ファイル名

uses Winapi.ShellAPI;
procedure TForm1.ButtonSearchClick(Sender: TObject);begin//キーワード検索を行う
with FDQuery_Search do
fullText : 全文検索
begin
Active := False;
SQL.Clear;
SQL.Add('SELECT Id, Name FROM Files ');SQL.Add('WHERE Query = ''(fullText contains "'+ Edit_Keyword.Text + '")'' ');SQL.Add('AND Trashed = False'); //---- ごみ箱は除く
Active := True;
end;
end;
procedure TForm1.DBGridListDblClick(Sender: TObject);varsURL: String;
グリッドで選択された行のbegin
Idのファイルを開く
if FDQuery_Search.Active thenbegin//選択されたファイルのIDを指定する。
sURL := 'https://drive.google.com/open?id='+ FDQuery_Search.FieldByName('Id').AsString;//ファイルをオープン
ShellExecute(Application.Handle, 'OPEN', pChar(sURL), '', '', SW_SHOW);
end;end;

第24回 Migaro. Technical Seminar 活用例６：Google Driveコネクター• Delphi/400を使用したGoogle Drive検索• GoogleDriveコネクターを使用
実行例

選択したファイルがブラウザ上に表示される

キーワードに関連するフォルダ/ファイルを検索

ダブルクリック
全文検索の為、ファイル内に含まれる文字列で一致するものが検索対象となっている。

IBM i 上のデータをキーワードにドライブ上のファイル検索を行うといった活用が可能
第24回 Migaro. Technical Seminarご清聴ありがとうございました。

第24回 Migaro. Technical Seminar