microsoft office infopath 2003 を用いた sap フロントエンド開発の概要

61
Microsoft Office InfoPath 2003 をををを SAP をををををををををををを をををををををををををををををををををををを ををををををををををを

Upload: arlene

Post on 19-Mar-2016

87 views

Category:

Documents


6 download

DESCRIPTION

Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要. ビジネスプロダクティビティソリューション本部 マイクロソフト株式会社. Agenda. InfoPath 2003 の概要 サンプル構築環境の確認 検索モードの作成 更新モードの追加 おわりに Appendices. InfoPath 2003 の概要. リッチでダイナミックなフォームの作成を可能にし、正確な情報を効率的に収集することができる Office アプリケーション. 柔軟かつ効率的に正確な情報を収集 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Microsoft Office InfoPath 2003を用いた SAP フロントエンド開発の概要ビジネスプロダクティビティソリューション本部マイクロソフト株式会社

Page 2: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Agenda

InfoPath 2003 の概要 サンプル構築環境の確認 検索モードの作成 更新モードの追加 おわりに Appendices

Page 3: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

InfoPath 2003 の概要リッチでダイナミックなフォームの作リッチでダイナミックなフォームの作成を可能にし、正確な情報を効率的に成を可能にし、正確な情報を効率的に収集することができる 収集することができる Office Office アプリアプリケーションケーション柔軟かつ効率的に正確な情報を収集柔軟かつ効率的に正確な情報を収集時間の削減、入力エラーの無い正確な情報収集、再入力の排除時間の削減、入力エラーの無い正確な情報収集、再入力の排除人、情報、プロセスをより効率的に結合人、情報、プロセスをより効率的に結合既存のシステムとデータを最大限に有効活用し、意思決定を支援既存のシステムとデータを最大限に有効活用し、意思決定を支援容易なフォームソリューションの構築と高いメ容易なフォームソリューションの構築と高いメンテナンス性ンテナンス性ビジネスプロセスの変化への迅速な対応、ビジネスプロセスの変化への迅速な対応、 TCO TCO 削減削減

Page 4: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

サンプル構築環境の確認

Page 5: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

作成するフォームテンプレート SAP CRM のトランザクション“ CRMD_BUS2000111” の一部機能を抜粋したフォームを作成 案件を検索する「検索モード」と、特定の案件を更新する「更新モード」を実装

<検索モード> <更新モード>

Page 6: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

サンプルフォーム構築環境 クライアント コンピュータ

Windows XP Professional (SP1 以上 )または Windows 2000 (SP3 以上 )

Internet Explorer 6.0 (SP1 以上 ) Microsoft Office InfoPath 2003 SP1

または Microsoft Office Professional Enterprise Edition 2003 SP1

サーバー コンピュータ mySAP CRM Server 4.0 が正常稼動している環境

※サンプル検証環境は、次の通り mySAP CRM Server 4.0 mySAP CRM Middleware Server

Page 7: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

(参考) SAP モジュールの要件 SAP サーバーと InfoPath 2003 は、 We

b サービスを介して通信を行う Web サービス( SOAP での通信)に対応

する SAP モジュールは次の通り カーネル 4.0B 以降の R/3 、 APO 、 SRM な

ど、 ABAP アーキテクチャのもの 「 SAP .NET Connector 」 を利用して、 Web

サービスを別途構築要 カーネル 6.2 以降

WebAS の機能により、 Web サービスを設定可能

Page 8: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

BAPI のリモート接続有効化1. “/nse37” で、各 BAPI

の「属性」タブ内の「処理タイプ」が、「リモート可能モジュール」になっていることを確認

2. 「リモート可能モジュール」になっていない場合、 “ sicf” より、「 bc 」ノードのコンテキストメニューから「サービス有効化」を選択

Page 9: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

使用する BAPI

SAP CRM からの各種データ取得 / 更新の際には、次に挙げる BAPI を、 SOAP プロトコルを利用して呼び出す( Web サービスとしてコール) CRM_WAP_OPP_GET_LISTCRM_WAP_OPP_GET_LIST案件情報を取得する際に利用 CRM_WAP_OPP_SAVECRM_WAP_OPP_SAVE案件情報を更新する際に利用(※新規登録は除く) CRM_WAP_GET_PHASE_LISTCRM_WAP_GET_PHASE_LIST案件のフェーズ一覧を取得する際に利用(※セールスサイクル“ 1” 「一般案件」に割り当てられているフェーズが取得対象) CRM_WAP_GET_OPP_POSSIBLE_STATCRM_WAP_GET_OPP_POSSIBLE_STAT案件のステータス一覧を取得する際に利用

Page 10: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

WSDL の確認 (1/2)1. “/nse80” を実行2. 「 WebServiceBrowse

r 」をダブルクリック (※ツリーに表示されていない場合には、「 BSP アプリケーション」を選択し、「 WEBSERVICEBROWSER 」と入力後、 Enter )

3. BSP アプリケーション照会画面の「テスト」アイコンをクリックし、SAP ログオン時のユーザ名とパスワードを入力して、「 OK 」ボタンを押す

Page 11: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

WSDL の確認 (2/2)4. Web Service Browser

画面の「 By Name 」欄に、使用する BAPI の名前(「 CRM_WAP_OPP_GET_LIST 」等)を入力後、 Enter

5. Result 欄の「 wsdl 」リンクをクリック

6. ブラウザに表示されたWSDL の URL を、アドレスバーから取得し、メモ帳等でテキストファイルに記入( URLは個々の環境により異なる)

Page 12: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

検索モードの作成

Page 13: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

検索モード作成手順の概要

デ ザ イ ン の 開 始デ ザ イ ン の 開 始

プ ラ イ マ リ デ ー タ ソ ー ス の 修 正プ ラ イ マ リ デ ー タ ソ ー ス の 修 正

レ イ ア ウ ト 設 計レ イ ア ウ ト 設 計

デ ー タ 接 続 の 追 加デ ー タ 接 続 の 追 加

フ ォ ー ム テ ン プ レ ー ト の テ ス トフ ォ ー ム テ ン プ レ ー ト の テ ス ト

フ ォ ー ム テ ン プ レ ー ト の 発 行フ ォ ー ム テ ン プ レ ー ト の 発 行※※ 順不同で繰り返し順不同で繰り返し

Page 14: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

デザインの開始 「データ接続から新規作成」を選び、フォームのデザインを開始 案件情報の取得 Web サービス「 CRM_WAP_OPP_GET_LIST 」をプライマリデータソース(データの受信)に指定

Page 15: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

プライマリデータソースの修正 (1/4) WSDL から自動生成されたスキーマ内の要素のうち、一部の要素の定義が必須項目となってしまうため、修正が必要

読み取り専用となっ読み取り専用となっているためているため InfoPathInfoPathのの UIUI からは修正不からは修正不可可必須項目は、赤アス必須項目は、赤アスタリスクで示されるタリスクで示されるが、実際のが、実際の BAPIBAPI 呼呼び出し上は必須ではび出し上は必須ではないない

Page 16: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

プライマリデータソースの修正 (2/4)1. 赤アスタリスク(*)の付いている項目を

チェック2. [ ファイル ] - [ フォーム構成ファイルの取り出

し ] を実行し、フォームの構成ファイルを展開(その後、 InfoPath を一旦終了)

3. 展開されたファイルの中から、自動生成されたBAPI のスキーマ情報が格納されたファイルを探す(“ schema1.xsd” 等の拡張子“ .xsd” のファイル)

ロジックロジック(( DLLDLL ))

ビュービュー(( xslxsl )) スキースキーママ(( xsdxsd))デフォルデフォルトデータトデータ(( xmlxml ))

フォーム定フォーム定義義manifestmanifest(( XSFXSF ))

BAPIBAPI のの項目を項目を定義し定義したスキたスキーマーマSchema1.xsd Schema1.xsd 等等

Page 17: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

プライマリデータソースの修正 (3/4)4. 次の型の要素を中心に、テキストエディタで

チェック xsd:decimal , xsd:date , xsd:base64Binary 1で控えたノードと同じなら、 nillable=“true” 属性

を追加~ 前略 ~

<xsd:complexType name=“CRMT_REPORT_INBOXLIST”> <xsd:sequence>

~ 中略 ~ <xsd:element name=“EXP_REVENUE” minOccurs=“0” nillable=“true”> <xsd:simpleType> <xsd:restriction base=“xsd:decimal”> <xsd:totalDigits value=“15”/> <xsd:fractionDigits value=“2”/> </xsd:restriction> </xsd:simpleType> </xsd:element>

~ 中略 ~ </xsd:sequence></xsd:complexType>

~ 後略 ~

これを追加

<例>

Page 18: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

プライマリデータソースの修正 (4/4)5. 2 で取り出したファイル中の“ manifest.xsf” を

右クリックし、「デザイン」を実行 ( InfoPathが起動)

6. データソース作業ウィンドウにて、必須項目指定が解除されていることを確認

7. InfoPath フォームを保存フォーム定フォーム定義義manifestmanifest(( XSFXSF ))

右クリッ右クリックク InfoPathInfoPath 起動起動

必須項目指定必須項目指定が解除されてが解除されていることを確いることを確認認

Page 19: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

フォームで使用するノードの確認ノード名ノード名 説明説明 ラベルラベル

IV_BUSYNESS_PARTNERIV_BUSYNESS_PARTNER ビジネスパートナ番号ビジネスパートナ番号 パートナパートナIV_DATE_FROMIV_DATE_FROM 見込終了日(~以降)見込終了日(~以降) 見込終了日(~以降)見込終了日(~以降)IV_SELECT_MODEIV_SELECT_MODE 検索モード:パートナ 検索モード:パートナ (PARTNER)(PARTNER) --IV_SORT_BYIV_SORT_BY ソート順:パートナ順 ソート順:パートナ順 (P)(P) 、日付順 、日付順

(D)(D)ソート順ソート順

P_GUIDP_GUID データのデータの GUIDGUID --

queryFieldsqueryFields

ノード名ノード名 説明説明 ラベルラベルGUIDGUID データのデータの GUIDGUID --DESCRIPTIONDESCRIPTION 案件の概要説明案件の概要説明 案件概要案件概要MAIN_BP_1MAIN_BP_1 顧客名顧客名 顧客名顧客名EXPECT_ ENDEXPECT_ END 見込終了日見込終了日 見込終了日見込終了日PROBABILITYPROBABILITY 受注見込(確度)受注見込(確度) 受注見込(確度)受注見込(確度)CURR_PHASECURR_PHASE フェーズフェーズ フェーズフェーズSTATUSSTATUS ステータスステータス ステータスステータスEXP_REVENUEEXP_REVENUE 見込販売額見込販売額 見込販売額見込販売額TDFORMATTDFORMAT ノート行番号ノート行番号 --TDLINETDLINE ノートノート ノートノート

dataFieldsdataFields

Page 20: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

基本的なレイアウト設計手順1. タイトル付きの表を挿入2. データソース作業ウィンドウから、配置したいノードを含むグループをドラッグ&ドロップ(セクションの挿入)3. 各セクションに含めたいノードのレイアウト用に、レイアウト用の表を挿入4. データソース作業ウィンドウから、配置したいノードを、前項で挿入した表内にドラッグ&ドロップ(コントロールの挿入)5. コントロール種別の変更、セカンダリデータソースの割り当て6. 各ノードのラベル名を調整(日本語ラベルへの書き換え等)7. ボタンコントロール等の配置8. 全体レイアウトの調整、配色等

Page 21: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

ドロップダウンリストボックスの設定 ドロップダウンリストボックスコントロールとして配置するノードと設定値ノード名ノード名 BAPIBAPI 名名 エントリエントリ 値値 表示名表示名

queryFields queryFields ののIV_BUSYNESS_IV_BUSYNESS_PARTNERPARTNER

-- -- ※※ 各環境による各環境による ※※ 各環境による各環境による

queryFields queryFields ののIV_SORT_BYIV_SORT_BY

-- -- ““D”D”““P”P”

““日付順”日付順”““パートナ順”パートナ順”

dataFields dataFields ののCURR_PHASECURR_PHASE

CRM_WAP_GETCRM_WAP_GET_PHASE_LIST_PHASE_LIST

/dfs:myFields//dfs:myFields/dfs:dataFields/dfs:dataFields/s0:CRM_WAP_Gs0:CRM_WAP_GET_PHASE_LISTET_PHASE_LIST.Response/.Response/ET_PHASE_TABET_PHASE_TAB/item/item

PHASEPHASE DESCRIPTIONDESCRIPTION

dataFields dataFields ののSTATUSSTATUS

CRM_WAP_GETCRM_WAP_GET_OPP_POSSIBL_OPP_POSSIBLE_STATE_STAT

/dfs:myFields//dfs:myFields/dfs:dataFields/dfs:dataFields/s0:CRM_WAP_Gs0:CRM_WAP_GET_OPP_POSSIET_OPP_POSSIBLE_STAT.RespBLE_STAT.Response/ET_STAT/onse/ET_STAT/itemitem

ESTATESTAT TXT30TXT30

Page 22: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

検索モードのテスト実際にフォームを動かしてテスト

Page 23: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

更新モードの追加

Page 24: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

更新モード追加手順の概要

レ イ ア ウ ト 設 計 ( ノ ー ド の 追 加 等 )レ イ ア ウ ト 設 計 ( ノ ー ド の 追 加 等 )

条 件 付 書 式 の 設 定条 件 付 書 式 の 設 定

デ ー タ 接 続 ( 更 新 用 ) の 追 加デ ー タ 接 続 ( 更 新 用 ) の 追 加

動 作 規 則 の 設 定 動 作 規 則 の 設 定 / / ス ク リ プ ト の 追 加ス ク リ プ ト の 追 加

フ ォ ー ム テ ン プ レ ー ト の テ ス トフ ォ ー ム テ ン プ レ ー ト の テ ス ト

フ ォ ー ム テ ン プ レ ー ト の 発 行フ ォ ー ム テ ン プ レ ー ト の 発 行※※ 順不同で繰り返し順不同で繰り返し

Page 25: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

更新モード設計上のポイント (1/2)

検索モード実行後に抽出された案件の中から、更新したい案件の「案件概要」部分をクリックすることにより、更新モードに移行<検索モード> <更新モード>

クリッククリック

Page 26: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

更新モード設計上のポイント (2/2)

Web サービスへのデータ送信のポイントは、受信用データ接続として、送信を設計すること 送信用データ接続では、戻り値を処理できない

Web サービスが、 InfoPath からの引数を受け取れた時点で、 全て「成功」の扱いになるだけ

受信用データ接続を使えば、戻り値を処理可能 クエリの実行 = 送信処理の実行 クエリの結果 = 戻り値 データ接続設定時の、「フォームを開くとき自動的にデータ

を取得する」はオフに設定 送信対象となる項目値を、データ接続「 CRM_

WAP_OPP_SAVE 」の「 queryFields 」にコピーし、クエリを実行

Page 27: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

更新モード切り替え処理の実装 (1/2)1. クリックされた案件の“ GUID” を取得し、

検索条件(プライマリデータソースの「 queryFields 」)の“ P_GUID” にセット

2. クエリの実行(“ GUID” が特定されると、単一の案件のみ抽出される)

3. ノート欄から不要な行を削除

いずれもスクリプト(コーディング)により実装(後述の Script C を参照)

Page 28: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

更新モード切り替え処理の実装 (2/2)4. 画面の書き換え

「条件付書式」を利用して設定 案件情報の各項目は、検索モードでは、読み取り専用に設定

“P_GUID” が空白のとき、次のコントロールを読み取り専用に設定すれば OK案件概要,見込終了日,受注見込,フェーズ,ステータス,見込販案件概要,見込終了日,受注見込,フェーズ,ステータス,見込販売額売額(※顧客名は常に読み取り専用に設定)(※顧客名は常に読み取り専用に設定) 案件情報のノート欄は、更新モードでのみ表示されるように設定

“P_GUID” が空白のとき、次のノードに対応するセクションを非表示に設定すれば OK/dfs:myFields/dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Re/dfs:myFields/dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXTsponse/ET_TEXT

Page 29: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

データ更新処理の実装 (1/2)1. 引数のセット(非繰り返し項目)

「データ更新」ボタンに「動作規則」として設定 「フィールドの値を設定する」として、次の通りに動作を追加プライマリデータソース のプライマリデータソース の

dataFields dataFields 内の項目内の項目CRM_WAP_OPP_SAVE CRM_WAP_OPP_SAVE のの

queryFields queryFields 内の項目内の項目DESCRIPTIONDESCRIPTION ⇒⇒ IV_DESCRIPTIONIV_DESCRIPTIONEXPECT_ENDEXPECT_END ⇒⇒ IV_EXPECT_ENDIV_EXPECT_ENDEXP_REVENUEEXP_REVENUE ⇒⇒ IV_EXP_REVENUEIV_EXP_REVENUEGUIDGUID ⇒⇒ IV_GUIDIV_GUIDCURR_PHASECURR_PHASE ⇒⇒ IV_PHASEIV_PHASEPROBABILITYPROBABILITY ⇒⇒ IV_PROBABILITYIV_PROBABILITYSTATUSSTATUS ⇒⇒ IV_STATUSIV_STATUS

Page 30: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

データ更新処理の実装 (2/2)2. 引数のセット(繰り返し項目)

「データ更新」ボタンにスクリプトにより実装(後述の Script D を参照)3. クエリの実行

「データ更新」ボタンにスクリプトにより実装(後述の Script B を参照)4. 戻り値のハンドリング

「データ更新」ボタンにスクリプトにより実装(後述の Script E を参照)※※「ボタンのプロパティ」に、「動作規則」と「フォームのコードを編集」「ボタンのプロパティ」に、「動作規則」と「フォームのコードを編集」を同時設定した場合には、「動作規則」が先に実行されるを同時設定した場合には、「動作規則」が先に実行される

Page 31: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Tips: 戻り値のハンドリング 処理内容によって使い分け…

次のような場合は、「動作規則」の設定で十分 戻り値に応じて適切なメッセージボックスを表示する 戻り値に応じて他のフィールドに値をセットする

戻り値をきめ細かくハンドリングしたい場合には、「データの入力規則」の設定を考慮 コーディングが必須となるため、手間は掛かるが、ある意味、「何でもできる」

戻り値フィールドは、基本的に読み取り専用にするか、そもそもフォームに配置しない

Page 32: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Script A: 変数及び関数定義 (1/2)(※ネームスペース定義部分は省略)(※ネームスペース定義部分は省略)

var gdomTLINE;var gdomTLINE;

function getNodeList(xpath)function getNodeList(xpath){{

if (typeof(xpath) == "string")if (typeof(xpath) == "string")return XDocument.DOM.selectNodes(xpath);return XDocument.DOM.selectNodes(xpath);

elseelsereturn xpath;return xpath;

}}

function count(xpath)function count(xpath){{

var xmlNodeList = getNodeList(xpath);var xmlNodeList = getNodeList(xpath);if (xmlNodeList)if (xmlNodeList)

return xmlNodeList.length;return xmlNodeList.length;elseelse

return -1;return -1;}}

※※ 本サンプルにおけるスクリプト記述は、本サンプルにおけるスクリプト記述は、 JScript JScript を利用を利用

Page 33: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Script A: 変数及び関数定義 (2/2)function CreateNode(dom, strNodeName, strNodeValue)function CreateNode(dom, strNodeName, strNodeValue){{

var objNewNode = dom.createElement(strNodeName);var objNewNode = dom.createElement(strNodeName);if (strNodeValue)if (strNodeValue)

objNewNode.text = strNodeValue;objNewNode.text = strNodeValue;return objNewNode;return objNewNode;

}}

function CloneNode(dom, strNodeName, strNodeValue)function CloneNode(dom, strNodeName, strNodeValue){{

var objNewNode = dom.selectSingleNode(strNodeName).cloneNode(false);var objNewNode = dom.selectSingleNode(strNodeName).cloneNode(false);if (strNodeValue)if (strNodeValue){{

objNewNode.text = strNodeValue;objNewNode.text = strNodeValue;}}return objNewNode;return objNewNode;

}}

Page 34: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Script B: フォーム読み込み時と検索ボタンクリック時のイベントfunction XDocument::OnLoad(eventObj)function XDocument::OnLoad(eventObj){{

// CloneNode // CloneNode 関数実行用に保存関数実行用に保存gdomTLINE = XDocument.GetDOM("CRM_WAP_OPP_SAVE")gdomTLINE = XDocument.GetDOM("CRM_WAP_OPP_SAVE")

.getElementsByTagName("IT_TEXT").item(0).cloneNode(true);.getElementsByTagName("IT_TEXT").item(0).cloneNode(true);}}

function btnQuery::OnClick(eventObj)function btnQuery::OnClick(eventObj){{

XDocument.DOM.selectSingleNode("/dfs:myFields/dfs:queryFields/XDocument.DOM.selectSingleNode("/dfs:myFields/dfs:queryFields/s0:CRM_WAP_OPP_GET_LIST/P_GUID").text = "";s0:CRM_WAP_OPP_GET_LIST/P_GUID").text = "";

XDocument.Query();XDocument.Query();}}

Page 35: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Script C: 更新モードへの切替え (1/2)function XDocument::OnContextChange(eventObj)function XDocument::OnContextChange(eventObj)

{{if (eventObj.Type == "ContextNode" && XDocument.DOM.selectSingleNode("/dfs:myFields/dfs:queryFields/if (eventObj.Type == "ContextNode" && XDocument.DOM.selectSingleNode("/dfs:myFields/dfs:queryFields/

s0:CRM_WAP_OPP_GET_LIST/P_GUID").text == "")s0:CRM_WAP_OPP_GET_LIST/P_GUID").text == ""){{

var oContextNode = eventObj.Context;var oContextNode = eventObj.Context;if (oContextNode.nodeName == "DESCRIPTION") if (oContextNode.nodeName == "DESCRIPTION") {{

var strGUID = oContextNode.parentNode.selectSingleNode("GUID").tevar strGUID = oContextNode.parentNode.selectSingleNode("GUID").text;xt;

var oITEM = getNodeList("/dfs:myFields/dfs:dataFields/var oITEM = getNodeList("/dfs:myFields/dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Response/ET_OPP/items0:CRM_WAP_OPP_GET_LIST.Response/ET_OPP/item

");");var oGUID = getNodeList("/dfs:myFields/dfs:dataFields/var oGUID = getNodeList("/dfs:myFields/dfs:dataFields/

s0:CRM_WAP_OPP_GET_LIST.Response/ET_OPP/item/Gs0:CRM_WAP_OPP_GET_LIST.Response/ET_OPP/item/GUID");UID");

for (var i = 0 ; i < count(oITEM) ; i++)for (var i = 0 ; i < count(oITEM) ; i++){{

if (oGUID[i].text == strGUID)if (oGUID[i].text == strGUID){{

var idx = i;var idx = i;}}

}}(※次ページに続く)(※次ページに続く)

Page 36: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Script C: 更新モードへの切替え (2/2)(※前ページからの続き)(※前ページからの続き)

var oET_GUID = getNodeList("/dfs:myFields/dfs:dataFields/var oET_GUID = getNodeList("/dfs:myFields/dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Response/ET_GUID/item/s0:CRM_WAP_OPP_GET_LIST.Response/ET_GUID/item/

GUID");GUID");XDocument.DOM.selectSingleNode("/dfs:myFields/dfs:queryFields/XDocument.DOM.selectSingleNode("/dfs:myFields/dfs:queryFields/

s0:CRM_WAP_OPP_GET_LIST/P_GUID").texts0:CRM_WAP_OPP_GET_LIST/P_GUID").text = oET_GUID[idx].text; = oET_GUID[idx].text;

XDocument.Query();XDocument.Query();

// // 「ノート」欄のノードリストの先頭から、不要なノードを削除「ノート」欄のノードリストの先頭から、不要なノードを削除var oET_TEXT = XDocument.DOM.selectSingleNode("/dfs:myFields/var oET_TEXT = XDocument.DOM.selectSingleNode("/dfs:myFields/

dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Response/dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT");ET_TEXT");

var oITEM = getNodeList("/dfs:myFields/dfs:dataFields/var oITEM = getNodeList("/dfs:myFields/dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT/items0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT/item

");");if (oITEM[0].selectSingleNode("TDFORMAT").text == "")if (oITEM[0].selectSingleNode("TDFORMAT").text == ""){{

oET_TEXT = oET_TEXT.removeChild(oITEM[0]);oET_TEXT = oET_TEXT.removeChild(oITEM[0]);}}

}}

return;return;}}

}}

Page 37: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Script D: 案件情報の「ノート」欄の セカンダリデータソースへの転記function updateTLINE()function updateTLINE(){{

var objITEMNode = null;var objITEMNode = null;var objTDFORMATNode = null;var objTDFORMATNode = null;var objTDLINENode = null;var objTDLINENode = null;

var oITEM = getNodeList("/dfs:myFields/dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT/item");var oITEM = getNodeList("/dfs:myFields/dfs:dataFields/s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT/item");var oTDFORMAT = getNodeList("/dfs:myFields/dfs:dataFields/var oTDFORMAT = getNodeList("/dfs:myFields/dfs:dataFields/

s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT/item/TDFORMAT");s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT/item/TDFORMAT");var oTDLINE = getNodeList("/dfs:myFields/dfs:dataFields/var oTDLINE = getNodeList("/dfs:myFields/dfs:dataFields/

s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT/item/TDLINE");s0:CRM_WAP_OPP_GET_LIST.Response/ET_TEXT/item/TDLINE");

var nodeTLINE = XDocument.GetDOM("CRM_WAP_OPP_SAVE").selectSingleNode("/dfs:myFields/var nodeTLINE = XDocument.GetDOM("CRM_WAP_OPP_SAVE").selectSingleNode("/dfs:myFields/dfs:queryFields/s0:CRM_WAP_OPP_SAVE/IT_TEXT");dfs:queryFields/s0:CRM_WAP_OPP_SAVE/IT_TEXT");

var nodeITEM = XDocument.GetDOM("CRM_WAP_OPP_SAVE").selectNodes("/dfs:myFields/var nodeITEM = XDocument.GetDOM("CRM_WAP_OPP_SAVE").selectNodes("/dfs:myFields/dfs:queryFields/s0:CRM_WAP_OPP_SAVE/IT_TEXT/item");dfs:queryFields/s0:CRM_WAP_OPP_SAVE/IT_TEXT/item");

nodeITEM.removeAll();nodeITEM.removeAll();

for (var i = 0 ; i < count(oITEM) ; i++)for (var i = 0 ; i < count(oITEM) ; i++){{

objITEMNode = CloneNode(gdomTLINE, "item");objITEMNode = CloneNode(gdomTLINE, "item");objITEMNode.appendChild(CloneNode(gdomTLINE, "item/TDFORMAT", oTDFORMAT[i].text || ""));objITEMNode.appendChild(CloneNode(gdomTLINE, "item/TDFORMAT", oTDFORMAT[i].text || ""));objITEMNode.appendChild(CloneNode(gdomTLINE, "item/TDLINE", oTDLINE[i].text || ""));objITEMNode.appendChild(CloneNode(gdomTLINE, "item/TDLINE", oTDLINE[i].text || ""));nodeTLINE.appendChild(objITEMNode);nodeTLINE.appendChild(objITEMNode);

}}}}

Page 38: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Script E: データ更新処理function btnUpdate::OnClick(eventObj)function btnUpdate::OnClick(eventObj){{

updateTLINE();updateTLINE();XDocument.DataObjects("CRM_WAP_OPP_SAVE").QueryAdapter.Query();XDocument.DataObjects("CRM_WAP_OPP_SAVE").QueryAdapter.Query();

// // 戻り値が“戻り値が“ 006”006” なら、なら、 SAP CRM SAP CRM 側データの更新成功側データの更新成功var nodeRETURN = XDocument.GetDOM("CRM_WAP_OPP_SAVE").selectNodes("/dfs:myFields/var nodeRETURN = XDocument.GetDOM("CRM_WAP_OPP_SAVE").selectNodes("/dfs:myFields/

dfs:dataFields/s0:CRM_WAP_OPP_SAVE.Response/RETURN/item");dfs:dataFields/s0:CRM_WAP_OPP_SAVE.Response/RETURN/item");if (nodeRETURN[1].selectSingleNode("NUMBER").text == "006")if (nodeRETURN[1].selectSingleNode("NUMBER").text == "006"){{

// // 「フォームの送信」に設定されている送信処理も併せて行いたい場合には、下の行のコメントを「フォームの送信」に設定されている送信処理も併せて行いたい場合には、下の行のコメントを解除解除

// XDocument.Submit();// XDocument.Submit();XDocument.UI.Alert("XDocument.UI.Alert(" データの更新が完了しました。データの更新が完了しました。 ");");

}}elseelse{{

XDocument.UI.Alert(nodeRETURN[1].selectSingleNode("MESSAGE").text);XDocument.UI.Alert(nodeRETURN[1].selectSingleNode("MESSAGE").text);}}

}}

Page 39: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

更新モードのテスト実際にフォームを動かしてテスト

Page 40: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

おわりに Microsoft Office InfoPath 2003 を用いた

SAP フロントエンド開発のメリット エンドユーザのニーズや、使う状況に応じたフロントエンドアプリケーションの開発を容易に実現 Web サービスのコールをウィザードベースで設定可能な他、多くのロジックをコーディングレスで実装可能開発者 / エンドユーザ 双方の皆様方に多くのメリットをご享受いただける Microsoft Office

InfoPath 2003 を、是非ご活用下さい。

Page 41: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Appendi x -1

InfoPath 2003 におけるロジックの実装

Page 42: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

ロジックの実装手段

高度なロジック高度なロジック プロパティ設定にプロパティ設定によるよるロジックの実装ロジックの実装

計算計算入力規則入力規則動作規則動作規則条件付書式条件付書式

入力規則入力規則 XML XML スキーマレベルスキーマレベルでのチェックでのチェック

コーディングによるロジックコーディングによるロジックの実装の実装

多くのフォームは多くのフォームはノンコーディングノンコーディングでロジックの実装でロジックの実装が可能が可能

スクリプト:スクリプト: VBScript / VBScript / JScriptJScript

マネージド コード:マネージド コード:VB.NET / C#VB.NET / C#

Page 43: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

ファイル形式ファイル形式 拡張子拡張子 説明説明テンプレート定義 テンプレート定義 (( マニマニフェストフェスト )) .xsf.xsf

InfoPath InfoPath で生成される で生成される XML XML ファイル。このファイルにファイル。このファイルには、フォーム テンプレートで使用される他のすべてのファイは、フォーム テンプレートで使用される他のすべてのファイルとコンポーネントに関する情報が格納される。このファイルとコンポーネントに関する情報が格納される。このファイルは、テンプレートのマニフェストとして機能ルは、テンプレートのマニフェストとして機能スキーマスキーマ .xsd.xsd XML XML ドキュメント ファイルに対して制約と検証を行うためドキュメント ファイルに対して制約と検証を行うために使用する に使用する XML XML スキーマ ファイルスキーマ ファイルビュービュー .xsl.xsl

XML XML ドキュメント ファイルに含まれているデータを公開、ドキュメント ファイルに含まれているデータを公開、表示、および変換するために使用するプレゼンテーション ロ表示、および変換するために使用するプレゼンテーション ロジック ファイルジック ファイルXML XML サンプル ファイルサンプル ファイル .xml.xml

フォーム テンプレートに記述されているドキュメント クラフォーム テンプレートに記述されているドキュメント クラスに基づいて新しいファイルを作成する際の、ビューに表示スに基づいて新しいファイルを作成する際の、ビューに表示される既定値を格納する される既定値を格納する XML XML ファイルファイルプレゼンテーションプレゼンテーション .htm, .gif, .xml .htm, .gif, .xml

などなど

カスタム ユーザー インターフェイスの作成時に、ビュー フカスタム ユーザー インターフェイスの作成時に、ビュー ファイルと共に使用されるファイル。このファイルにァイルと共に使用されるファイル。このファイルには、は、 XML XML ドキュメントの新しいインスタンスを作成するとドキュメントの新しいインスタンスを作成するときに表示される既定の きに表示される既定の XML XML データが格納データが格納ビジネス ロジックビジネス ロジック .js, .vbs, .dll.js, .vbs, .dll

スクリプト (スクリプト ( JScript JScript および および VBScriptVBScript ) や ) や VS.NETVS.NETで開発したマネージド コードアセンブリ。特定の編集動作、で開発したマネージド コードアセンブリ。特定の編集動作、データの妥当性検証、イベント ハンドラ、およびデータ フデータの妥当性検証、イベント ハンドラ、およびデータ フロー制御の実装に使用するプログラミング コードが格納ロー制御の実装に使用するプログラミング コードが格納バイナリバイナリ .dll, .exe.dll, .exe 追加のビジネス ロジックを提供するカスタムのコンポーネン追加のビジネス ロジックを提供するカスタムのコンポーネントや オブジェクト モデル トや オブジェクト モデル (COM) (COM) コンポーネントコンポーネントアップグレードファイルアップグレードファイル upgrade.xslupgrade.xsl

フォームテンプレートのスキーマ変換時に生成されるファイフォームテンプレートのスキーマ変換時に生成されるファイル。既存のデータファイルを変更後のスキーマに変更するたル。既存のデータファイルを変更後のスキーマに変更するために利用めに利用

フォームテンプレートに含まれるファイル

Page 44: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

InfoPath のオブジェクトモデル

XDocumentXDocument

DOMDOM

WindowsWindows XDocumentsXDocuments

ApplicationApplication

ViewViewWindowWindow

DataObjectsDataObjects

ErrorsErrorsTaskPanesTaskPanes

CommandBarsCommandBars

MailEnvelopeMailEnvelope

UserUser

Page 45: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

XML DOM と XPath によるノード参照

salessales

itemsitems

itemitem

priceprice

XML DOMXML DOM

名前空間を利用 全てのノードは名前空間を持つ ns : 名前空間の省略名

DOM に対するメソッド SelectSingleNode(“XPath”) SelectNodes(“XPath” ) text プロパティを利用

XDocument.DOM.selectSingleNode(“/ns:sales”)XDocument.DOM.selectSingleNode(“/ns:sales”)

...selectSingleNode (”/ns:sales/ns:items/ns:item/ns:price”)...selectSingleNode (”/ns:sales/ns:items/ns:item/ns:price”).text.text

Page 46: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

InfoPath のイベント (1/2)

イベントイベント 種類種類 説明説明OnLoadOnLoad フォームフォーム フォームを開いたときに、フォームを初期化するのに使用される。フォームを開いたときに、フォームを初期化するのに使用される。最初のビューが表示される前にこのイベントが発生する。最初のビューが表示される前にこのイベントが発生する。OnBeforeChangeOnBeforeChange 入力規則入力規則 フォームの基盤となる フォームの基盤となる XML XML ドキュメントに対して変更が行われたドキュメントに対して変更が行われたが、まだ変更が受け付けられていないときに使用される。が、まだ変更が受け付けられていないときに使用される。OnValidateOnValidate 入力規則入力規則 フォームの基盤となる フォームの基盤となる XML XML ドキュメントに対する変更が受け付けドキュメントに対する変更が受け付け

られたが、まだ られたが、まだ OnAfterChange OnAfterChange イベントが発生していないときイベントが発生していないときに使用される。に使用される。

OnAfterChangeOnAfterChange 入力規則入力規則 フォームの基盤となる フォームの基盤となる XML XML ドキュメントに対する変更が受け付けドキュメントに対する変更が受け付けられ、られ、 OnValidate OnValidate イベントも発生した後で使用される。イベントも発生した後で使用される。

OnSubmitRequestOnSubmitRequest フォームフォーム InfoPath InfoPath ユーザー インターフェイス、または ユーザー インターフェイス、または InfoPath InfoPath オブジェクオブジェクト モデルの ト モデルの XDocument XDocument オブジェクトの オブジェクトの Submit Submit メソッドから送メソッドから送信操作が呼び出されたときに使用される。信操作が呼び出されたときに使用される。

フォームイベントアプリケーションの状態やユーザーのアクションに応答

データの入力規則XML Document Object Mode ( XML DOM )に対して行われた変更に応答

Page 47: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

InfoPath のイベント (2/2)イベントイベント 種類種類 説明説明

OnSwitchViewOnSwitchView フォームフォーム 別のビューに切り替えたときに使用される。ユーザーが別のビューに別のビューに切り替えたときに使用される。ユーザーが別のビューに切り替えるか、ビューを初めて読み込んだときに、このイベントが発切り替えるか、ビューを初めて読み込んだときに、このイベントが発生する。生する。OnClickOnClick フォームフォーム フォームのボタンがクリックされたときに、それに応答するために使フォームのボタンがクリックされたときに、それに応答するために使用される。用される。OnVersionUpgradeOnVersionUpgrade フォームフォーム

フォームが開かれたときに、そのバージョン番号が、フォームを開くフォームが開かれたときに、そのバージョン番号が、フォームを開くときに使用されたフォーム テンプレートのバージョン番号と一致しときに使用されたフォーム テンプレートのバージョン番号と一致しているかどうかを検証するために使用される。バージョン番号が一致ているかどうかを検証するために使用される。バージョン番号が一致しない場合は、このイベントが発生する。しない場合は、このイベントが発生する。

OnAfterImportOnAfterImport フォームフォームフォームが別のフォームと結合された後で、追加の処理を実行する場フォームが別のフォームと結合された後で、追加の処理を実行する場合に使用される。このイベントは他のフォームからデータがインポー合に使用される。このイベントは他のフォームからデータがインポートされた後で発生する。スクリプト コードを使用して、フォームにトされた後で発生する。スクリプト コードを使用して、フォームに含まれている結合データに基づいて適切なビューが設定されるように含まれている結合データに基づいて適切なビューが設定されるようにすることができる。することができる。

OnContextChangeOnContextChange フォームフォーム フィールド選択の移動時に発生する。フィールド選択の移動時に発生する。OnSignOnSign フォームフォーム デジタル署名後に発生する。デジタル署名後に発生する。OnMargeRequestOnMargeRequest フォームフォーム InfoPath 2003 InfoPath 2003 のユーザーインターフェイスもしくは、コマンドライのユーザーインターフェイスもしくは、コマンドライン(ン( /aggregate/aggregate )からの結合操作時に発生する。)からの結合操作時に発生する。OnSaveRequestOnSaveRequest フォームフォーム InfoPath 2003 InfoPath 2003 のユーザーインターフェイスもしくは、のユーザーインターフェイスもしくは、 Save / Save /

SaveAs SaveAs メソッドによる保存操作時に発生する。メソッドによる保存操作時に発生する。

Page 48: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Appendix-2

フォームテンプレートのセキュリティと展開

Page 49: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

オブジェクトモデル メンバのセキュリティ レベル オブジェクトモデルのメンバ(プロパティやメソッド)の悪用を防ぐためにオブジェクトモデルのメンバを使用できる展開方法と場所を規定( 3 つのセキュリティレベル)

(例) XDocument オブジェクトの SaveAs メソッドを利用するとファイルシステムの任意の場所にデータの書き込み可能 SDK で提供されるオブジェクトモデル リファレンスに各メンバのセキュリティレベルが記載されているレベルレベル 説明説明

00 すべてのフォーム テンプレートから呼び出すことが可能なメンバ(制限すべてのフォーム テンプレートから呼び出すことが可能なメンバ(制限なし)なし)22

現在開いているフォームと同じドメインで動作しているフォーム、また現在開いているフォームと同じドメインで動作しているフォーム、または、ドメイン間データアクセスの許可を与えられているフォームから呼は、ドメイン間データアクセスの許可を与えられているフォームから呼び出すことが可能なメンバび出すことが可能なメンバ33 完全信頼済みのフォームテンプレートからのみ呼び出すことが可能なメ完全信頼済みのフォームテンプレートからのみ呼び出すことが可能なメンバンバ11 将来のために予約将来のために予約

Page 50: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

フォームテンプレートのセキュリティ レベル (1/2) フォームテンプレート内で使用されている機能とフォームテンプレートの配布場所・配布方法に基づいて規定される 3 つのセキュリティレベル 既定では「制限あり」または「ドメイン」のどちらかのセキュリティレベルが自動的に選択 「ドメイン」は、 Internet Explorer で定義されたセキュリティゾーンの設定と連動 完全信頼済みのフォームテンプレートを作成する場合や、手動で設定する場合は、「ツール」→「オプション」→「セキュリティ」タブから設定。「デザインに基づいて自動的にセキュリティ レベルを設定」をオフにして、 3 つから選択

Page 51: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

フォームテンプレートのセキュリティ レベル (2/2)レベルレベル 説明説明 設定される設定される manifesmanifes

t.xsf t.xsf ののxDocumentClassxDocumentClass のの属性属性

制限あり制限ありフォームテンプレートと外部との通信を許可フォームテンプレートと外部との通信を許可しない場合に選択。危険なフォームテによっしない場合に選択。危険なフォームテによって、ローカルて、ローカル PCPC 内のデータが攻撃者に漏洩内のデータが攻撃者に漏洩してしまうのを防ぐ。カスタム作業ウィンドしてしまうのを防ぐ。カスタム作業ウィンドウ、データ接続、ウ、データ接続、 ActiveX ActiveX コントロール、コントロール、マネージド コードでのロジック、ロールなどマネージド コードでのロジック、ロールなどを利用することはできない。を利用することはできない。

requireFullTrust = requireFullTrust = “yes”“yes”

ドメインドメインInternet Explorer Internet Explorer で定義されたセキュリで定義されたセキュリティ ゾーン内の場所に基づいてフォームを制ティ ゾーン内の場所に基づいてフォームを制限する場合に選択。例えばフォームがイント限する場合に選択。例えばフォームがイントラネットゾーンにある場合(発行先)、同じラネットゾーンにある場合(発行先)、同じドメイン内の他のデータとの通信は許可されドメイン内の他のデータとの通信は許可されるが、他のドメインにあるデータを取得するるが、他のドメインにあるデータを取得することは禁止される。ことは禁止される。

trustLevel = “DomtrustLevel = “Domain” ain” もしくは、もしくは、

記述なし記述なし

完全信頼完全信頼完全に信頼されたフォームを作成する場合に完全に信頼されたフォームを作成する場合に選択。セキュリティレベル 選択。セキュリティレベル 3 3 のオブジェクのオブジェクトモデルのメンバを利用する場合には、完全トモデルのメンバを利用する場合には、完全信頼のフォームテンプレートを作成する必要信頼のフォームテンプレートを作成する必要がある。がある。

trustLevel = “ResttrustLevel = “Restricted”ricted”

Page 52: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

InfoPath セキュリティ モデルセキュリティレセキュリティレベルベル

識別識別 スクリプトを実行スクリプトを実行しても安全だとマしても安全だとマークされていないークされていないActiveX ActiveX コントコントロールロール

ドメイン間データアドメイン間データアクセスクセス マネージドコードマネージドコード利用可能なオ利用可能なオブジェクトモブジェクトモデル メンバのデル メンバのセキュリティセキュリティレベルレベル

URLURL ベーベースス URNURNベベースース

制限あり制限あり ○○ ActiveXActiveX なしなし 失敗失敗 フォームは起動するがフォームは起動するが実行されない実行されない 00

ドメイドメインン

IE IE

セキュリティ ゾーン

セキュリティ ゾーン

制限付きサイ制限付きサイトト 実行されない実行されないインターネッインターネットト ○○ 失敗失敗 失敗失敗

ローカル イントラネッローカル イントラネットのアクセス許可でのトのアクセス許可でのマネージドコードが実マネージドコードが実行される行される22

イントラネッイントラネットト ○○ 失敗失敗 確認ダイアログ表示確認ダイアログ表示ローカルイントラネッローカルイントラネットのアクセス許可でマトのアクセス許可でマネージドコードが実行ネージドコードが実行される。ドメイン間のされる。ドメイン間のデータアクセスも許可データアクセスも許可されるされる

22

信頼済みサイ信頼済みサイトト ○○ 確認ダイアログ表確認ダイアログ表示示 OKOK ローカルイントラネッローカルイントラネットのアクセス許可でマトのアクセス許可でマネージドコードが実行ネージドコードが実行される。ドメイン間のされる。ドメイン間のデータアクセスも許可データアクセスも許可されるされる

22

ローカルマシローカルマシンン ○○ ○○ 確認ダイアログ表確認ダイアログ表示示 OKOK 22

完全信頼完全信頼○○

正式なコー正式なコード署名用のド署名用の証明書を利証明書を利用用○○ OKOK OKOK 完全信頼完全信頼 33

識別識別URLURLベーベースス

フォームテンプレートをフォームテンプレートを URLURL で識別。で識別。 manifest.xsf manifest.xsf の の xDocumentClass xDocumentClass のの publishUrl publishUrl 属性属性にに URLURL を指定。を指定。 InfoPath InfoPath 発行ウィザードを利用して 発行ウィザードを利用して SharePoint SharePoint フォームライブラリやファフォームライブラリやファイルサーバに発行する場合は自動的にイルサーバに発行する場合は自動的に URLURL ベースのフォームになる。ユーザーは発行先のベースのフォームになる。ユーザーは発行先の UURLRL から起動する。から起動する。

URNURNベーベーススフォームテンプレートをフォームテンプレートを URNURN (”(” urn:urn: 文字列文字列 :: 文字列”)で識別。文字列”)で識別。 manifest.xsf manifest.xsf の の xDocumentxDocumentClassClass の の namename 属性に属性に URNURN を指定。署名を利用しない完全信頼のフォームテンプレートを作を指定。署名を利用しない完全信頼のフォームテンプレートを作成する場合などに指定。成する場合などに指定。

Page 53: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

Appendix-3

参考情報

Page 54: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

情報リソースMicrosoft Office 製品情報http://www.microsoft.com/japan/office/default.mspx

InfoPath 2003 製品情報ナビゲート: Microsoft Office 製品情報 > InfoPath 

http://www.microsoft.com/japan/office/infopath/prodinfo/default.mspx

InfoPath 2003 Service Pack 1 の概要ナビゲート: Microsoft Office 製品情報 > InfoPath > InfoPath 2003 Service Pack 1 の概要http://www.microsoft.com/japan/office/infopath/prodinfo/sp1.mspx

Page 55: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

情報リソースOffice Onlinehttp://office.microsoft.com/

InfoPath 2003 アシスタントナビゲート : Office Online > アシスタント > InfoPath 2003http://office.microsoft.com/assistance/topcategory.aspx?TopLevelCat=CH010966841041&CTT=6&Origin=HA011221241041

InfoPath 2003 の Service Pack 機能ナビゲート : Office Online > アシスタント > InfoPath 2003 > InfoPath の紹介 > InfoPath の Service Pack 機能 http://office.microsoft.com/assistance/preview.aspx?AssetID=HA011221241041&CTT=1&Origin=EC010231781041&QueryID=tKy5DoWcq

Page 56: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

情報リソースダウンロードセンターhttp://www.microsoft.com/japan/download.htm

Office 2003 Service Pack 1 InfoPath 2003 に Service Pack 1 を適用するには、 Office 2003 Service Pack 1 を利用してください検索キーワード : Office 2003 SP1http://www.microsoft.com/downloads/details.aspx?FamilyID=9c51d3a6-7cb1-4f61-837e-5f938254fc47&displaylang=ja

InfoPath 2003 Toolkit for Visual Studio .NETVisual Studio .NET 2003 でのロジック開発のためのツールキット検索キーワード : InfoPath Toolkithttp://www.microsoft.com/downloads/details.aspx?FamilyID=7e9ebc57-e115-4cac-9986-a712e22879bb&DisplayLang=ja

Page 57: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

情報リソースダウンロードセンターhttp://www.microsoft.com/japan/download.htm

InfoPath 2003 SDK (英語) InfoPath 2003 Service Pack 1 フォーム開発と展開を支援するサンプルフォーム、ツール、ドキュメント検索キーワード: InfoPath SDK 「 Microsoft U.S. ダウンロード センターも検索する」をチェックしてくださいhttp://www.microsoft.com/downloads/details.aspx?FamilyId=351F0616-93AA-4FE8-9238-D702F1BFBAB4&displaylang=en

InfoPath 2003 SDK 日本語ドキュメントService Pack 1 関連情報追加分は現在準備中検索キーワード: InfoPath SDK

http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=351F0616-93AA-4FE8-9238-D702F1BFBAB4

Page 58: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

情報リソース InfoPath 2003 Toolkit for Visual Studio

.NET ヘルプドキュメントMSDN ライブラリが インストールされていればヘルプ ドキュメントを参照することができます

Page 59: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

情報リソースMSDN ( Microsoft Developer Network )http://msdn.microsoft.com

Office Solution Development : InfoPath (英語)ナビゲート : MSDN > Library > Office Solution Development > Microsoft Office InfoPath 2003

http://msdn.microsoft.com/library/en-us/dnanchor/html/odc_ancinfo.asp

InfoPath 2003 Training (英語)Service Pack 1 で拡張された機能を含むトレーニングコンテンツサンプルファイルのダウンロードも可能ですナビゲート : MSDN > Library > Office Solution Development > Microsoft Office InfoPath 2003 > Training http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_2003_ta/html/odc_landinfo03_tr.asp

Page 60: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要

情報リソース MSXML5.0 SDK

Office 2003 / InfoPath 2003 で利用している XML Core サービスコンポーネント( MSXML5.dll )のリファレンスマニュアル。既定では以下にインストールされますDrive:\Program Files\Microsoft Office\OFFICE11\1041\XMLSDK5.CHM

SAP / Microsoft Global Alliance Information Japan両社のワールドアライアンスに基づく、日本国内での活動をご紹介するサイトhttp://www.ms-sap.com/

Page 61: Microsoft Office InfoPath 2003 を用いた SAP フロントエンド開発の概要