おかえり、InfoPath Forms Services

以前こちらの Blog で (もう少しで) さよなら InfoPath という記事を書かせていただきましたが、その内容について UPDATE がありました。

2014年1月末に Microsoft Office Blog で、InfoPath の終了がアナウンスされました。その記事を読んだ内容だったのですが、その際の記事にいつの間にか追記が入っています。

Update on InfoPath and SharePoint Forms (参照した Microsoft Office Blog 記事)
http://blogs.office.com/2014/01/31/update-on-infopath-and-sharepoint-forms/

――――― 以下 上記 Blog よりの引用 ―――――

As part of the update shared around the Evolution of SharePoint and the next SharePoint Server on-premises release, we are also updating the timelines for removal of InfoPath Forms Services components of SharePoint and SharePoint Online. Specifically, InfoPath Forms Services will be included in the next on-premises release of SharePoint Server 2016, as well as being fully supported in Office 365 until further notice. Customers will be able to confidently migrate to SharePoint Server 2016 knowing that their InfoPath forms will continue to work in their on-premises environments, as well as in Office 365.

The InfoPath 2013 application remains the last version to be released and will work with SharePoint Server 2016.

―――――――――――――――

なんと! 簡単にまとめると InfoPath Forms Services 復活のお知らせですね。

要約は下記。

次期 SharePoint Server についてアナウンスがでてきたけど、InfoPath Forms Services (SharePoint Server と SharePoint Online) についてもアップデートがあるよ。SharePoint Server 2016 には InfoPath Forms Services 含まれるし、Office 365 でも引き続きサポートするよ。今使ってるフォームは 2016 でも大丈夫! InfoPath 2013 がそのまま使えるからね。

ですと。

こちらの英語 Blog でも同様のことが書かれており、こちらの内容によると、先週金曜に追記されたって書いてますね。さらに、この Blog によると Office 365 Roadmap サイト (http://roadmap.office.com/en-us) で FoSL がキャンセルになってると。

FoSL は、Forms on SharePoint Lists のことで、SharePoint Conference 2014 の InfoPath のセッションで発表されたブラウザーでフォームのカスタマイズができる的な機能だったやつです。たしかに Office 365 Road Map サイトをみると、Cancelled になってます。

InfoPath 次期バージョンはでないけど、SharePoint 次期バージョンでは IPFS は機能として提供される。
そして InfoPath のかわりとされていた FoSL はやめた。ってことか。

なんだかあんまりすっきりしない。
というか、で! 最終的にはリスト フォームをどこに持っていくつもり?!

という気持ちはありますが、これまでよりは積極的に InfoPath を使っていけそうですね。

InfoPath って正直、機能は多くないアプリケーションなので、操作や機能の習得は1日もあれば余裕です。
でも、、実際やりたいことを実現するためには、ルールや関数の組み合わせで、「あ!こんなこともできるよね!」っていうパズルみたいな要素が多く。コードも書けちゃうし。何年も InfoPath やっててもいまだに、こんなこともできるのね。という気づきに出会うこともあります。
ただもう今更 InfoPath ネタ Blog で書いてもなぁ。と InfoPath 記事を書くのはやめていたのですが、また面白いと思っていただけそうな内容があれば、書きたいなと思います。

5月に Ignite に参加予定なのですが、SharePoint のフォームに関するセッションは当然ないでしょうが、O365 と SharePoint だけで 97 セッションもあるので、なんだか楽しみになってきました。

奥田 うさぎ

(もう少しで) さよなら InfoPath

あちらこちらで話題になっていますが、先月末に Microsoft の Office Blogs にて InfoPath に関するリリースがでましたね。正式に InfoPath 終了のお知らせとなりました。

Update on InfoPath and SharePoint Forms
http://blogs.office.com/2014/01/31/update-on-infopath-and-sharepoint-forms/


簡単にまとめると。。(あってるかどうかは保証しないので、原文よんでくださいね)

マルチデバイス対応やもっと簡単にフォームのデザインをしたいといった近年のトレンドやユーザー、パートナーからの Feedback より、SharePoint、Access、Word による新しいフォームテクノロジーに投資することにしたよ。
ということで、InfoPath はやめるね。
 
・ InfoPath 2013 で終了。
  ・ InfoPath Forms Services は SharePoint Server 2013 で終了。

InfoPath ユーザーには、移行方法もきっとだすので、新しいテクノロジーまでひきつづき InfoPath をどうぞご利用ください。
新しいテクノロジーについては、Q4 of CY 2014 にアナウンスします。
3月の SharePoint Conference では、少しだけご紹介もします。
サポートは、2023年4月まで。Office 365 については、またアナウンスします。

とのこと。

InfoPath は、会社に入社して初めて担当したのが InfoPath 実践講座というセミナー実施案件だったり、ホワイトペーパーや本を書かせていただいたり、MVP いただいたり、、と個人的に思い入れのある製品でしたので、InfoPath 2013 のやる気のなさっぷりから、なんとなく想像できてましたが、残念です。。

InfoPath 2010 からの進化の方向性がよくなかったよね。。と個人的には思います。
なぜ javascript サポートをやめた。。 なぜデザインを HTML でカスタマイズできるように進化しなかった。。
簡単なフォームは InfoPath GUI 操作で、複雑なカスタマイズは javascript&HTML でできますよーってのがステキやったのになぁ。と思っちゃいます。

Office Blog の記事に SharePoint、Access、Word による新しいフォーム テクノロジーって記述がありますが、Access アプリはもしやまだ未完成系ってこと? Word のクイックパーツみたいなこと??
今は詳細はわかりませんが、
詳細がリリースされるのを楽しみにしたいと思います。
また3月の SharePoint Conference での楽しみも一つ増えました。

ともかく、InfoPath は終了が決定しましたが、今すぐなくなるわけではありません。
現状、フォームのカスタマイズを行うツールとして、マイグレーション方法がどこまでちゃんとされるか心配な面もありますが、まだもう少し活躍していただきましょう。

奥田

SharePoint 2010 リストフォームカスタマイズ 複数アイテム同時編集

おはようございます。奥田です。今日は InfoPath をつかったリスト フォーム カスタマイズについてです。

SharePoint リストで、複数アイテムを同時に編集したいと思ったことはないでしょうか。
Excel でデータを編集するみたいに複数行の特定の列をまとめて編集したいシーンは多いと思います。
SharePoint リストでは、既存データを編集する際には、各データごとに編集画面を開く必要があり、複数件データに対するまとめての編集はちょっと面倒ですよね。

まとめてデータ編集したい際の簡単な方法はデータシートビューがあります。
[リスト] タブの [データシートビュー] をクリックすると、次図のような画面に切り替わり、複数データに対する一括編集が行えます。
multi1

今日は、InfoPath でこのように複数アイテムを一括編集する画面へカスタマイズする方法をご紹介します。
完成イメージはこちらです。
multi0

まず、次のような列をもつ SharePoint リストがあることを前提とし、手順をご紹介します。
multi2

1.[フォームのユーザー設定] をクリックし、InfoPath を開く
2. 開いたフォームを 新規登録フォームで利用するように編集します。(次図参考)
multi3

3.新しくビューを作成。(ビュー名を MultiEdit と付けたとします)
4.フォームをカスタマイズしているリストからの受信データ接続を作成
[フィールドの選択] で受信する列として、フォーム内で表示・編集したい列を選びます。
フォームを開く際に自動的にデータを取得するよう設定します。
multi4

5.[フィールド] 作業ウィンドウで、[詳細ビューの表示] を開きます。
   受信接続名(セカンダリ) データソースの [d:SharePointListItem_RW] グループを繰り返しテーブルとして配置
繰り返しテーブルの右端に列を追加し、ボタンコントロール [更新] を配置
また、繰り返しテーブルの罫線やフォントの設定を任意に行います。
multi5

6.繰り返しテーブルに配置した [更新] ボタンに次の動作規則を設定 


複数アイテム表示しているデータから更新するアイテムを指定するための動作規則です。
詳細 更新データの指定
条件 なし
動作 1個め フィールドの値を設定する [フィールド]
メインデータソース queryFields の [ID]
[値]
セカンダリデータソース dataFields の [ID]
動作 2個め データのクエリを送信する メイン データ接続
multi6
1件分のデータを更新するために値をセットするための動作規則です。
詳細 1件データの更新
条件 なし
動作 1個め フィールド の値を
設定する
[フィールド]
メインデータソース dataFields の [コースID]
[値]
セカンダリデータソース dataFields の [コースID]
動作 2個め ~ フィールドの値を設定する 動作1と同様に、上書きしたい列の数だけ
メインデータソース dataFields 内フィールドに セカンダリ データソース dataFields 内フィールドの値をセット
動作 最後 データを送信する メイン データ接続
multi7
データ更新後、繰り返しテーブル内の内容を更新するための動作規則です。
詳細 一覧の更新
条件 なし
動作 1個め データのクエリを送信する リストからの受信接続
multi8

7. [ファイル] メニューから [フォームのオプション] を開き、[リボンまたはツールバーに InfoPath コマンドを表示する] を
チェック外します。
8.フォームをクイック発行します。
9.[リスト] タブの [フォーム Web パーツ] – [(アイテム) 編集フォーム] をクリックします。
multi9

10. InfoPath フォームの Web パーツの設定画面で、[ビュー] をMultiEdit に変更します。
アイテムの編集時のみ、複数データ編集用のビューを開くように設定しました。
multi10

以上、完成♪
つかいどころはデータ内容によりけりですが、マスターデータ管理など、データの新規作成・削除よりも、いったん登録したデータのメンテナンス作業が多い場合に。

奥田 うさぎ

InfoPath 複数チェック ボックス Tips

InfoPath でチェック ボックスを並べて表示し、さらに指定した数のチェックのみ行えるように入力規則を設定する Tips です。

  <完成イメージ>
ipcount11

1.繰り返しテーブルを2列で配置します。
ipcount4
2
.繰り返しテーブル内の1列目のコントロールをチェックボックスに変更
3.
それぞれフィールド名を変更
(チェックボックスを Category、テキストボックスを CategoryName とフィールド名を付けたとして続きを記載します)
ipcount5
4.
[データ] タブの [既定値] をクリックし、繰り返しグループを下に2つ追加します。
ipcount6
5.
それぞれの繰り返しグループ内の CategoryName の既定値に、チェックボックスのラベルとなる内容を入力します。
ipcount7
6.
ここまでで、プレビューすると、次図のようになります。
ipcount8
7.
CategoryName のテキストボックスは読み取り専用に設定。
また繰り返しテーブルのプロパティで、ヘッダーを非表示、ユーザーによる行の挿入削除を許可しないように設定。
罫線と網掛けを任意に調整し、プレビューで下図のようにデザインします。
ipcount9
8.
Category チェックボックスに次のような入力規則を指定します。
条件: count(../../my:グループ2[my:Category=”yes”])>2
ipcount10

     以上です。

  下記いくつかの InfoPath Tips を組み合わせて設定してみました。それぞれ単体の Tips としてもぜひ活用していただけたらと思います。
       ・ 繰り返しテーブルに既定で数行表示する Tips
・ 繰り返しテーブルにユーザー操作で行を追加させない Tips
・ XPath 式を活用した入力規則 Tips

奥田 うさぎ

InfoPath 文字数のカウント、文字数エラー

おはようございます。奥田です。
今日も InfoPath ネタですが、
フォームでテキスト ボックスやリッチ テキスト ボックスに入力された文字数を指定する Tips です。

   <完成イメージ>
  ipcount1

  ● 指定された文字数をオーバーした場合に、赤枠でエラーを表示する

        1.テキストボックスを選択し、[ホーム] タブの [ルールの管理] をクリック

        2.ルール ウィンドウで、[新規作成] – [入力規則] をクリック

        3.条件に フィールド名 が次の値に等しい string-length(フィールド名)>70 と設定
             ipcount2
 
            ヒントにエラーメッセージを入力

       

  ● 何文字かを表示し、指定された文字数をオーバーすると、赤字で文字数を表示する

        1.文字数を表示したい場所に、[算出値] コントロールを配置

        2.算出値の挿入 ダイアログでXpath に string-length(フィールド名) を指定
            ipcount3

        3.算出値コントロールを選択し、ルールウィンドウで、次の入力規則を設定
           
条件:フィールド名が次の値に等しい string-length(フィールド名)>70
                     (
テキストボックスの入力規則で設定した条件と同じ)
            書式:フォントを赤

以上、完成です うさぎ

InfoPath 文字の Upper、Lower を行いたい

InfoPath フォームで、テキストボックスに入力した文字列を大文字、小文字に変換する Tips のご紹介です。
Excel の UPPER 関数、Lower 関数と同様のことを InfoPath で行いたいときに。

テキスト ボックスの既定値に、次の数式をいれます。

  ● Upper の場合

  translate(フィールド, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")

  ● Lower の場合

  translate(フィールド, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")

 奥田 うさぎ

InfoPath 2007/2010 繰り返し項目内の開始日、終了日を取得する数式

こんばんは。奥田です。
今日は InfoPath です。繰り返しグループ内に日付フィールドがあり、複数の日付の開始日と終了日を既定値で取得する方法についてです。

なんだかどこかのセミナーかドキュメントで、過去ご紹介したことがあるようなないような気もするのですが、、
ちょうどお客さんから質問いただいたので、ブログに書こうと思います。in1

次のようなデータソース (メイン) とします。
in2

繰り返しテーブル内の日付の最小を開始日として、startdate フィールドに、最大を終了日として enddate フィールドに表示したいと思います。

□ startdate の既定値
1. 下記のように既定値に数式を入力します。
    date は [フィールドまたはグループの挿入] で、繰り返し内の日付フィールド   
     (/my:Report/my:Detail/my:Details/my:date) を設定します。

   date[translate(., “-“, “”) = min(eval(date, ‘translate(., “-“, “”)’))]

2. そのままでは動作しません。[XPath を編集する (上級)] をクリックし、date フィールドへの参照の2つ目の XPath を
   完全パスに編集します。
   in3

□ enddate の既定値
   
Min 関数ではなく、Max 関数に変更するだけで、startdate と同様です。

    date[translate(., “-“, “”) = max(eval(date, ‘translate(., “-“, “”)’))]