この資料では、スクリプトを使用してフォーム データを Microsoft SharePoint Team Services のドキュメント ライブラリに送信するフォーム テンプレートをデザインする方法を、手順を追って説明します。
フォームのデータ ソースとレイアウトのデザイン
-
Microsoft Office InfoPath を起動します。新しい空白のフォームをデザインします。
-
[データ ソース] 作業ウィンドウで、手順 1. でデザインしたフォームにデータ ソースを追加します。データ ソースを追加するには、以下の手順を実行します。
-
[マイフィールド] を右クリックして、[追加] をクリックします。
[フィールドまたはグループの追加] ダイアログ ボックスが表示されます。
-
フィールドの名前として FirstName と入力し、[OK] をクリックします。
-
手順 a. を繰り返します。フィールドの名前として MiddleInitial と入力し、[OK] をクリックします。
-
手順 a. を繰り返します。フィールドの名前として LastName と入力し、[OK] をクリックします。
-
[マイフィールド] をフォームにドラッグします。
-
[コントロール付きセクション] をクリックします。
フォーム データを SharePoint のドキュメント ライブラリに送信するスクリプトの追加
-
[ツール] メニューの [フォームの送信] をクリックします。
[フォームの送信] ダイアログ ボックスが表示されます。
-
[フォームの送信] ダイアログ ボックスで、[送信を許可する] をクリックします。
-
[送信] ボックスの一覧の [カスタム スクリプトを使って送信] をクリックします。
-
[Microsoft Script Editor を起動する] チェック ボックスをオンにして、[OK] をクリックします。
Microsoft Script Editor が起動します。
-
OnSubmitRequest イベントを以下のように変更します。
注 : コード内の strURL 変数の値を有効な URL に変更する必要があります。以下のコード内の URL は ServerName という名前のサーバー、SiteName という名前の SharePoint サイト、および DocumentLibraryName という名前のドキュメント ライブラリを参照しています。
function XDocument::OnSubmitRequest(eventObj)
{
// If the submit operation is successful, set
// eventObj.ReturnStatus = true
var fSuccessful = false;
// Set the URL of the file that you want to submit here.
var strUrl = "http://ServerName/SiteName/DocumentLibraryName/testform.xml";
try
{
// Create an xmlhttp object.
var oXmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
// Check whether the document with the same name already exists on SharePoint Team Services (STS).
oXmlHttp.Open("HEAD", strUrl, false);
oXmlHttp.Send();
// No document with the URL has been found. Continue to submit.
// If you must replace the original file, you must call
// oXmlHttp.Open("DELETE", strUrl, false) to delete the document
// on STS first.
if (oXmlHttp.Status == 404)
{
// Put the document on STS.
oXmlHttp.Open("PUT", strUrl, false);
oXmlHttp.Send(XDocument.DOM.xml);
// A 200 status code or a 201 status code indicates that the form has been submitted successfully.
if (oXmlHttp.Status == 200 || oXmlHttp.Status == 201)
{
fSuccessful = true;
}
}
}
catch (ex){}
if (fSuccessful)
{
XDocument.UI.Alert("Document submitted successfully!");
eventObj.ReturnStatus = true;
}
else
{
eventObj.ReturnStatus = false;
}
}
-
スクリプトを保存し、Script Editor を終了します。
- SubmitSTS.xsn という名前を付けてフォーム テンプレートを保存します。
フォームのテスト
-
[ファイル] メニューの [フォームの入力] をクリックします。
-
[フォームの入力] 作業ウィンドウで、[SubmitSTS] をクリックします。
-
フォームに必要事項を入力します。
-
[ファイル] メニューの [送信] をクリックします。
フォームが正常に送信されると、フォームが正常に送信されたことを示すメッセージが表示されます。
-
InfoPath を終了します。変更をフォームに保存するかどうかを確認するメッセージが表示された場合は、[いいえ] をクリックします。
-
Microsoft Internet Explorer を起動し、ライブラリからドキュメントに移動します。たとえば、http://<サーバー名>/<サイト名>/<ドキュメント ライブラリ名> に移動します。
testform という名前の新しい項目がドキュメント ライブラリに追加されています。
-
testform 項目をクリックします。
送信したフォームが InfoPath で表示されます。
InfoPath フォームでスクリプトを扱う方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
828853
(http://support.microsoft.com/kb/828853/
)
How To: Change the Script Language for Your InfoPath Form
828853
(http://support.microsoft.com/kb/828853/JA/
)
[INP2003] [HowTo] InfoPath フォームのスクリプト言語を変更する方法
827002
(http://support.microsoft.com/kb/827002/[EN-US]/
)
HOW TO: Debug a Script for a Microsoft Office InfoPath 2003 Form
827002
(http://support.microsoft.com/kb/827002/JA/
)
[INP2003] [HOWTO] Microsoft Office InfoPath 2003 フォーム用のスクリプトをデバッグする方法
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID
826993
(http://support.microsoft.com/kb/826993/EN-US/
)
(最終更新日 2003-10-01) を基に作成したものです。
この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。
文書番号: 826993 - 最終更新日: 2011年1月5日 - リビジョン: 2.0
| kbhowto kbscript kbxml kbforms KB826993 |
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。