Webサービスを利用して機能UP!

Similar documents
Delphi/400を使用したWebサービスアプリケーション

Delphi/400でFlash動画の実装

Indyを利用したメール送信機能開発

Webコンポーネントのカスタマイズ入門

FastReportへの効率的な帳票レイアウトコンバート

FastReportを活用した電子帳票作成テクニック

JC/400でポップアップウィンドウの制御&活用ノウハウ!

Delphi/400バージョンアップに伴う文字コードの違いと制御

Delphi/400開発ノウハウお教えします Googleマップ連携によるリッチなGUIアプリ開発

OpenOffice実践活用

Delphi/400活用! スマートデバイスアプリケーション開発

Web & ハイブリッドアプリ開発で役立つIBM i & ブラウザデバッグテクニック

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

Delphi/400:帳票開発ノウハウ公開

intra-mart Accel Platform

Delphi/400を利用したはじめてのWeb開発

JACi400のご紹介~RPGとHTMLで簡単Web化~

SmartPad4iの運用で役立つWEBサーバー機能

◎phpapi.indd

問合せ分類 1( 初期設定関連 ) お問い合わせ 初期設定の方法がわかりません 初期設定をご案内させていただきます 1 下記 URL をクリックし 規約に同意し サービス登録番号を入力をしてください

プレポスト【問題】

1. 設定概要 設定の流れ 品名に マークを登録する... 5 画面でひとつひとつ呼び出して登録する方法 CM マスタに SM 税制対象商品である旨登録する POS レジに配信する POS レジにて確認

PowerPoint Presentation

WebReportCafe

DB STREET 設置マニュアル

アクセス履歴の確認 アクセス履歴の確認 名刺データへのアクセス履歴を 日単位で確認または月単位でファイル出力できます 日単位の履歴を確認する 名刺データへの過去 1 ヵ月のアクセス履歴を 日単位で確認できます 1 名刺管理画面を表示し 名刺管理 アクセス履歴 の順にクリックします 名刺管理画面の表示

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Prog1_10th

アクセス履歴の確認 アクセス履歴の確認 名刺データへのアクセス履歴を 日単位で確認または月単位でファイル出力できます 日単位の履歴を確認する 名刺データへの過去 1 ヵ月のアクセス履歴を 日単位で確認できます 1 名刺管理画面を表示し 名刺管理 アクセス履歴 の順にクリックします 名刺管理画面の表示

APIリファレンス | IP Geolocation API どこどこJP

5-2. 顧客情報をエクスポートする 顧客管理へのアクセス手順 メールディーラーで管理する顧客情報に関する設定を行います 1. 画面右上の 管理設定 をクリックする 2. 管理設定 をクリックする 3. ( タブ ) 顧客管理 をクリックする 2

位置参照情報 API 仕様 ( 試行版 ) 位置参照情報 API 仕様 ( 試行版 ) Ver 1.0b 平成 26 年 12 月 国土交通省国土政策局国土情報課

システム設計書

[給与]給与奉行LANPACK for WindowsNTのサーバーセットアップのエラー

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

1. 設定概要 設定の流れ 品名に マークを登録する... 5 画面でひとつひとつ呼び出して登録する方法 POS レジに配信する POS レジにて確認 エクセルなどで変更したマスタを CSV で取り込む 現

<8B9E93738CF092CA904D94CC814090BF8B818F B D836A B B B816A2E786C73>

クイックマニュアル(利用者編)

情報システム設計論II ユーザインタフェース(1)

Microsoft Word - J-jdev_dba_db_developers.doc

改訂履歴 項番版数作成日 / 改訂日変更箇所変更内容. 平成 28 年 5 月 3 日新規章構成の変更, 分冊化に伴い新規作成 (i)

プログラミング実習I

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

掲示板の閲覧 掲示板の閲覧 登録権または参照権のある掲示板グループの掲示版を閲覧することができます 各利用者の権限は 管理者によって設定されます 掲示板を閲覧する 1 掲示板画面を表示し 閲覧する掲示が含まれている掲示板グループ 掲示板の順にクリックします 掲示板画面の表示方法 ポータル画面の画面説

スマートデバイスWebアプリケーション入門―HTMLを使ったユーザーインタフェースの工夫

Section1_入力用テンプレートの作成

ログインする ブラウザを使ってログイン画面 を表示します ユーザー名とパスワードを入力し ログイン をクリックします メールアドレス : パスワード : メールアドレスのパスワ

Web GIS Template Uploader 利用ガイド

PowerPoint Presentation

もくじ

図 1 アドインに登録する メニューバーに [BAYONET] が追加されます 登録 : Excel 2007, 2010, 2013 の場合 1 Excel ブックを開きます Excel2007 の場合 左上の Office マークをクリックします 図 2 Office マーク (Excel 20

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

クライアント証明書インストールマニュアル

1. 設定概要 設定の流れ 品名に マークを登録する... 5 画面でひとつひとつ呼び出して登録する方法 POS レジに配信する POS レジにて確認 エクセルなどで変更したマスタを CSV で取り込む 現

スーパー英語アカデミック版Ver.2

PowerPoint プレゼンテーション

2 目次 1 はじめに 2 システム 3 ユーザインタフェース 4 評価 5 まとめと課題 参考文献

パソコンバンクWeb21 操作マニュアル[サービス利用編]

1. Java Development Kit ORACLE のサイトから JAVA の開発キットをダウンロードします バージョンは JDK の最新版 ( 現在 8u45) が必要です また定期的に更新されますが そのたびに入れ替えることをお勧めします JDK のダウンロード ORACLE サイト

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

プログラミング基礎I(再)

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

第1章 業務共通

在庫のすぱいす説明資料

試作ツールは MIT ライセンスによって提供いたします その他 内包された オープンソース ソフトウェアについてはそれぞれのライセンスに従ってご利用ください

事業計画

メールのハンドリングを 効率化しよう!

RSS配信の設定方法 第2版(平成30年2月)

目次 FSLS 操作手引き ( お客様編 ). 概要. 画面遷移 4. ログイン 5 4. 購入履歴の絞り込み 6 5. 購入履歴情報の CSV ダウンロード 7 6. 購入明細情報の表示 ~ ライセンス条件表示 8 7. 購入履歴情報への管理キーワードの設定 購入履歴表示画面からの場合

もくじ

改訂履歴 Ver 日付履歴 新規作成 5 月末の機能追加として キーワード検索部分およびアドレス直接入力時の入力補完機能 検索結果対象にメーリングリストを追加 メールアドレスとの区別の為にメーリングリストを青字表示 カレンダーアイコン押下時の挙動修正 Gmail 内のアド

注意事項 (1)Windows 10 を使用する場合 注意事項 1 注意事項 3 注意事項 4 についてご対応をお願いします (2)Windows 8.1 を使用する場合 注意事項 2 注意事項 3 注意事項 4 についてご対応をお願いします (3)Windows 7 上で Internet Exp

目 次 1. コンテンツの利用目的 コンテンツの特徴 コンテンツの主な機能 コンテンツの動作環境 コンテンツの画面構成 章節の付番体系 コンテンツのファイル構成 HTML 版の WEB サー

PowerPoint プレゼンテーション

LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のよう

パソコンバンクWeb21 操作マニュアル(エキスパート・スタンダード)

目次 1. 回答作成手順 2 2. ツールの起動 3 3. 一般情報の入力 6 4. 成分表の入力 9 5. 依頼者情報の入力 エラーチェック XMLファイルの作成 動作設定 ( 任意 ) ( ご参考 ) 各種シートのボタン機能 ( ご参

注意事項 (1)Windows 10 を使用する場合 注意事項 1 注意事項 3 注意事項 4 についてご対応をお願いします (2)Windows 8.1 を使用する場合 注意事項 2 注意事項 3 注意事項 4 についてご対応をお願いします (3)Windows 7 上で Internet Exp

スライド 1

シヤチハタ デジタルネーム 操作マニュアル

1 目次 1 目次 はじめに Tips セットアップ 事前準備 事前準備 セットアップ セットアップ ( その他 ) Tips 概要 概要 処理フ

令和元年 労働保険_年度更新電子申請手順書(継続事業API申請版)_docx

<4D F736F F D D28F A82B582F182AB82F C DEC90E096BE8F E C52E646F63>

新規インストールガイド Sophos Anti-Virus for Mac 9.7 学内利用版 本書は Download Station から Sophos Anti-Virus for Mac 9.7 の学内利用版 ( 以下 Sophos Anti-Virus とする ) をダウンロ ドし 新規イ

タイトル位置

MultiLABELISTOCX と MultiLABELISTV4 MLOCX は MLV4 のレイアウト発行機能を継承しています したがって MLV4 の振分発行やプ リセット発行を使用するための登録情報は使用できません MLV4 のレイアウト管理でレイアウトを作成すると 拡張子が m lay

PowerPoint プレゼンテーション

4. ご利 者さま情報の登録について ( 初回ご利 時 ) システムの初回ご利用時に, ご利用者情報の登録を行なっていただく必要がございます ご利用者情報は, 主に託送申込みを担当される方を, まず 名, 代表者さま としてご登録していただきます その他に, ご利用者さまの追加登録をご希望される場合

[給与]給与奉行LANPACK for WindowsNTのサーバーセットアップのエラー

アルファメール 移行設定の手引き Outlook2016

Microsoft PowerPoint - FormsUpgrade_Tune.ppt

SOC Report

CSR生成手順-Microsoft IIS 7.x

目次 1. 概要 2. サーバーへの設置 3. 設定 4. デザイン変更 5. クレジットカード決済 6. 利用規定 7. 更新履歴

令和元年 労働保険_年度更新電子申請手順書(建設の事業API電子申請版)_docx

< 削除ボタン チェックボックスについて 1> 対象 を退職社員のみで検索した場合 対象 を全てで検索した場合 システム管理 : 社員登録

スライド 0

もくじ

注意事項 (1)Windows 10 を使用する場合 注意事項 1 注意事項 3 注意事項 4 についてご対応をお願いします (2)Windows 8.1 を使用する場合 注意事項 2 注意事項 3 注意事項 4 についてご対応をお願いします (3)Windows 7 上で Internet Exp

目次 1. トップページ 処方せん受付 新着メッセージを見る プロフィールの管理 私の情報画面 私の情報編集画面 手帳発行の管理 お薬手帳を見る お薬手帳表紙画面...

Transcription:

福井和彦 / 畑中侑 株式会社ミガロ. システム事業部システム 2 課 Web サービスを利用して機能 UP! 既存機能に住所検索を追加 Delphi/400 で Web サービスを活用する この仕組みと方法を 住所検索の実装を通して紹介する はじめに 住所検索実装の課題 Web サービスを利用する 仕組みについて 画面イメージと実装機能 実装方法 既存機能への組み込み 最後に 略歴福井和彦 1972 年 03 月 20 日生 1994 年大阪電気通信大学工学部卒 2001 年 04 月株式会社ミガロ. 入社 2001 年 04 月システム事業部配属 現在の仕事内容主に Delphi/400 を使用した受託開発で 要件確認から納品 フォローに至るまでのシステム開発全般に携わる また Delphi/400 の導入支援やセミナーの講師なども担当 略歴畑中侑 1983 年 07 月 06 日生 2006 年京都産業大学法学部卒 2006 年 04 月株式会社ミガロ. 入社 2006 年 04 月システム事業部配属 現在の仕事内容システム受託開発に携わって 5 年目 ミガロ. に入社し初めてプログラムを作成するも 現在は担当顧客を持ち 小規模から中規模案件のリーダーや大規模案件のサブリーダーを務めるに至る 1. はじめに 基幹システムにおいて 郵便番号や住所を入力するケースは少なくない 例えば 取引先マスターを見てみると そこには郵便番号や住所といった情報を持っており 請求書や納品書への印字に利用することが多い また発注業務においては 納入場所の指定など 郵便番号を含めた住所情報などの入力が多かれ少なかれ求められる ただし これらの情報を入力していくのはけっこうな手間ではある 特にクライアント / サーバー型の基幹システムの場合 すべて手入力をしていることの方が多いのではないだろうか もし 郵便番号から住所を検索できる機能を実装することができれば 入力の手間を大きく軽減することが実現できる 2. 住所検索実装の課題 クライアント / サーバー型のシステムで住所検索を実装しようとした場合 郵 便番号データのマスターファイルが必要となる 全国の郵便番号と住所情報は膨大な量になるが 日本郵政 ( 郵便事業株式会社 ) のホームページよりダウンロード可能で それを IBM i へ取り込むプログラムを作成することで マスターファイルは作成できる だが 市町村合併等による郵便番号情報の変更に対応して 日本郵政ホームページのデータも月 1 回のペースで更新されている このため 住所検索をシステムに実装したとしても 住所情報を保持し常に最新に保つことが課題となる しかし これまで住所情報をすべて手入力で対応してきたのであれば この あると便利な機能 を さらに手間を掛けて新たに実装するのは難しい選択であろう 3.Web サービスを利用する そこで本稿では Web サービスを利用した住所検索の実装方法についてご紹介 したい Web サービス とは インターネット技術を利用した さまざまなサイトで提供されているサービスである 今回題材としている住所検索についても Web サービスを提供しているサイトがある このサービスを利用することで 前述の郵便番号のファイルや仕組みの追加等を必要とせず また最新データに保つためにメンテナンスに時間を割くこともなく 住所検索を実現することができるのである 4. 仕組みについて 今回は例として 郵便番号検索 API ( ) という Web サービスを利用して 住所検索の実装方法の説明を進めていく まず 郵便番号検索 API を利用して住所検索を行う仕組みだが Web サービスを提供している Web サーバーに対して 既定の書式の URL をリクエストする そして 検索結果を XML 形式で取得し 検索結果を画面へ反映する流れ 40

図 1 図 2 図 3 41

となる 次の例は 郵便番号 556-0017 で検索する場合の URL である これをブラウザで実行すると 図 1 のような XML が取得できる この仕組みを利用した住所検索の作成手順について 具体的に説明していきたい 例 郵便番号 556-0017 で検索 http://api.postalcode.jp/v1/zipsearch?zipcode=5560017&format=xml 利用規約について最近の Web サービスは 今回紹介する郵便番号検索をはじめ 地図表示から ショッピング オークション 商品検索までその種類も範囲も多種多様である 利用するにあたっては Web サービスを提供している提供元がその利用方法を定めている それが利用規約である 提供元の利用規約をよく読み 理解したうえで使用していただきたい 本稿で取り上げている グルーブテクノロジー提供の 郵便番号検索 API についても同様で クレジット表記および利用規約の同意が必要である 郵便番号検索 API http://groovetechnology.co.jp/index. html 5. 画面イメージと実装機能 今回作成する住所検索のサンプル画面のイメージは 図 2 となる また 使用するコンポーネントは 図 3 を参照していただきたい 明細表示用コンポーネントとして TStringGridを使用している このため 明細にデータを表示させるための項目転送ロジックを記述する必要がある そして 実装する検索機能としては 郵便番号検索 と キーワード検索 の 2 種類の方法を実装する これらの機能は Web サービス 郵便番号検索 API で提供されている機能である 郵便番号検索指定する郵便番号が 3 桁または 7 桁の場合のみ 検索結果が返ってくる 例え ば郵便番号を 3 桁で指定した場合は 最初の 3 桁がその指定と一致する郵便番号が 検索結果として返ってくる キーワード検索指定したキーワードが 都道府県 市区 町村 のいずれかに含まれている検索結果が返ってくる また 検索結果を呼び出し元画面へ反映する方法としては OK ボタンの押下時に明細で選択されている郵便番号と住所を フォームの property 経由で呼び出し元画面へ渡す仕組みとしている フォームの property 設定については ソース 1 を参照していただきたい 6. 実装方法 ここから 各機能の実装方法について 順番に紹介していく 今回利用する Web サービスは URL を指定すると XML で情報を返してくれるサービスである XML 情報と XML スキーマ Web サービスで提供される XML には 定義されたタグが設定されている 図 4 これをスキーマ定義というが XML 情報 ( 図 1) を見るとわかるように どんな情報が存在するかは容易に確認することができる ただ プログラムから利用するにあたり この文字列を解析して プログラムを作成するとなると大変である Delphi/400 ではこの解析を自動で行い ユニットとして作成する機能がある それが XML データバインディング である この機能はウィザード形式になっており XML ファイルを指定することで XML 情報を簡単に扱うことのできるユニットが自動生成される仕組みである 開発環境の 1 機能として Delphi/400 に備わっている この機能を利用すれば 文字列の XML 情報をプログラムで解析する必要がなくなり 自動生成されたユニットを利用することで プロパティとして簡単にデータにアクセスできる XML データバインディングの手順は 図 5 図 6 を参照いただきたい また今回 XML データバインディングで使用する XML ファイルについては グルーブテクノロジーの Web サイトより取得することが可能である 取得方法は 図 7 を参照いただきたい 実際に作成されたユニットを見てほしい XML 情報で確認したタグごとに設定された項目が 自動でプロパティとしてアクセスできるようになっていることがわかるだろう ソース 2 また グローバル関数として XML 情報を引数に持ち プロパティに格納するメソッドも自動で生成される 今回はこれらを利用することで簡単に実現することができる ソース 3 コンポーネント Delphi/400 で利用するにあたり ポイントとなるコンポーネントは 2 つある URLを指定して結果を取得する TIdHTTP コンポーネントと XML を扱うための TXMLDocument コンポーネントである コーディング解説 ここから コーディングの解説を行っていく ソース 4 最初に XML データバインディングで自動生成されたユニットを ユニット参照する 1サンプル画面に表示されているように 画面上に 検索方法 として設けた RadioGroup の ItemIndex により Web サービスで設定されている URL 定型文に検索キーを埋め込む ( ソースサンプルでは URL 定型文を const 定義として記述 ) 検索方法 = 郵便番号の場合 URL 定型文と郵便番号とで リクエスト URL を作成し 変数 URL に格納する 例 http://api.postalcode.jp/v1/zipsearch?zipcode=556&format=xml&ie=shift_ JIS&oe=Shift_JIS 42

図 4 図 5 図 6 43

検索方法 =キーワードの場合 URL 定型文とキーワードとで リクエスト URL を作成し 変数 URL に格納する 例 http://api.postalcode.jp/v1/zipsearch? zipcode= 湊町 &format=xml&ie=shift_ JIS&oe=Shift_JIS 2 TIdHTTP コンポーネントの Get メソッドを 変数 URL で呼び出し 戻り値として得られる XML 情報の文字列を TXMLDocument コンポーネントの XML プロパティにセットする 3 XML データバインディングにより 自動生成されたユニットの関数 GetgrooveWebservice の引数に TXMLDocument を指定する 4 関数 GetgrooveWebservice は 郵便番号などを配列のプロパティとして持つ そのプロパティの値を取得し 取得件数分を画面に表示する またここで 前述の TStringGrid へ表示するための項目転送ロジックを記述することになる 7. 既存機能への組み込み 既存機能に郵便番号や住所を入力する画面があれば 完成した住所検索を組み込み 動作を確認していただきたい 今回は住所検索を呼び出し 検索結果を既存画面へ反映させる機能であった さらに 既存機能の郵便番号入力時に 住所を直接取得できるようにすることも可能である 後者は 既存機能の郵便番号入力時にチェックとして ソース 5 の関数 GetAddress を組み込むことで実装が可能である なお 別ユニットのため 呼び出し元画面では uses 節への追加 関数を記述する前のフォームの Create および呼び出し語のフォームの Release といった別途記述が必要である 記述は 前章の検索画面で解説したものと重複するので割愛する ) 2 引数となる郵便番号で検索した結果 取得できない あるいは結果が単一でない場合は そのまま処理を終了する 3 検索した結果が単一である場合は 検索結果をプロパティに格納し 戻り値に True をセットする 呼び出し元画面では 戻り値に応じて True の場合はプロパティから必要な情報を画面にセットし False の場合は エラーとして処理するか検索画面を表示させる こういった制御を行えば ユーザーにもわかりやすいと思われる 8. 最後に Delphi/400 で Web サービスを利用することができるということは ご存知の方も多いだろう しかし 具体的にどのサービスをどのように利用すればよいのか わからない方も少なくないと思う 今回 既存機能に住所検索を追加する と利用目的を明確にし 具体的な事例の 1 つとして Web サービスを利用した機能追加を紹介してきた 本稿を通して Web サービスの利用方法について 少しでもイメージしていただけたのであれば幸いである なお Web サービスを利用する場合 サービスを提供する側の都合により仕様変更やサービスの停止が起きる可能性を認識しておく必要がある したがって Web サービスを利用した機能を実装した場合 定期的な Web サービス提供サイトの状況確認が必要となる このようなリスクはあるものの 昨今の Web サービスでは 他にもさまざまなサービスが提供されている これらサービスを上手に利用していくことは 利便性の高いシステムを構築していくうえで手助けの 1 つになるのではないかと思う M 畑中侑現在の仕事内容 ( 詳細 ) システム受託開発に携わって 5 年目 ミガロ. に入社し初めてプログラムを作成するも 現在は担当顧客を持ち 小規模から中規模案件のリーダーや大規模案件のサブリーダーを務めるに至る Delphi/400 や RPG などのプログラム開発経験を積みながらスキルを磨きつつ お客様のご要望に耳を傾け 一歩一歩提案力をつけるための修行中の毎日 コーディング解説 1 戻り値の初期化を行う ( それ以降の 44

図 7 ソース 1 45

ソース 2 ソース 3 46

ソース 4 ソース 5 47