Kaoru Okumura
in

InfoPath Dev

Kaoru Okumura

  • 日本語デモVideo:WSSPおよびFormsBoard

    日本語でのはじめてのデモビデオを2本作製しました。どうぞご参照ください。

    ++++++++++

    WSSPデモビデオ:  (小さいサイズ in YouTube ) 

    • Active Directoryの情報を元にInfoPathフォームに予めユーザ情報をフィルインする。
    • QueruyDBおよびQueryBuilderを使用して、コードやSQLクエリを書かずに、SQLデータの取得&フィルタリングを行い、その結果をInfoPathフォームで活用する

    WSSPの機能は、DBXL Trial Versionにてお試しいただけます。

    ++++++++++ 

    FormsBoardデモビデオ:  (小さいサイズ in YouTube ) 

    Qdabra社の企画する、フォームソリューションのホスティング サービスです。現在社内で試用しているアルファ版のデモをご覧いただけます。

  • DBXL v2.3 パフォーマンス解析

    DBXL v2.3 を利用したSharePointパフォーマンス向上に関する解析 -送信および、リストの取得

    SharePointへの送信

    DBXL Ver2.3では、XML文書をSharePointにマップする機能が追加されました。これによって、DBXLを用いたアプリケーションでは、XML文書のデータ保管場所として以下の3つが可能になりました。

    • DBXL自身が自動的に DBXL DB内に保管
    • DBXLを経由して、マッピングで指定したSQLデータベース に保管
    • DBXL を経由して、マッピングで指定したSharePointに保管

    SharePointユーザーがDBXL2.3を導入すると、今までどおりSharePointを使いながらも、SQLのデータを使ってSQLレポーティングやその他便利なSQL機能を使うことができます。さらにはXML文書を扱う際のパフォーマンスの向上も、大きな魅力であります。本文書ではDMXLによるパフォーマンス向上に関しての実験結果を示します。

    使用環境:

    • OS: Windows Server 2003
    • DBXL V2.3 & WSS 3.0
    • RAM: 1GB


    【実験A-1:SharePointへの送信】

    10個、50個、…、1000個のXML 文書をSharePointに送信して、所要時間(秒数)を計測。文書としては、InfoPath2007製品に付属の経費明細書を使用した。

    1. 通常のSharePoint【青】:SharePointフォームライブラリを作成し、文書を送信する(自動送信用バッチを作成して使用)
    2. SharePoint+DBXL【赤】:DBXLで文書タイプを作成し、DAT(DBXL管理ツール)を用いてSharePointにマップするよう設定。1と同じ文書をDBXLに対して送信する。結果としては、DBXL経由でSharePointに送信されて、1と同様の文書がSharePoint上にできることになる。
    送信文書数 1: SharePointに直接送信 2: DBXL経由でSharePointに送信
    10 73.25 27.66
    50 338.56 67.65
    100 621.68 150.60
    500 3229.54 781.24
    1000 6584.04 1624.64
     

    送信した文書数で所要時間を割り、1文書あたりの秒数をグラフにしたのが下記の図である

    文書数にかかわらず、所要時間はほぼ一定であることが分かる。さらには、DBXLを経由して送信した場合(1~3秒)には、直接SharePointに送信した場合(6~7秒)に比べて格段に速いことが示される。

    【実験A-2】

    次に、よりクライエントの体感に近い測定を行ってみよう。文書一個を送信して各回の所要時間を測定した。20回測定した元データ、および平均と標準偏差のグラフを以下に示す。

    1. SharePointに直接送信 〔青〕6.2秒±0.7秒
    2. DBXL経由でSharePointに送信〔赤〕 2.0秒±0.9秒
         


     

    SharePoint のリストのクエリを行ってInfoPathフォームに表示する際のパフォーマンス

    DBXL V2.3にはSharePointのリストを取得する機能もあります。このセクションでは、InfoPath組み込みのSharePointクエリを使用した場合と、DBXLのQuerySharePoint webメソッドを使用した場合のパフォーマンスを比較してみます。

    データ:アメリカの50州それぞれの郡の名前(3144個、列として州、および郡を設定)を、SharePointのリストとして作成

    【実験B-1】

    InfoPathフォームを作成し、このリストをon-loadでロードするときの所要時間を測定。

    1. 通常のInfoPathソリューション: InfoPathの組み込み関数SharePoint クエリデータ接続を使用。 平均 78.30秒、標準偏差6.6秒
    2. InfoPath+DBXL: DBXLのQuerySharePoint webメソッドを使用。平均 17.42秒、標準偏差3.1秒。

     

    DBXLのwebサービスを導入することにより、3000個強のリストを取得するのに、78秒から17秒と大幅に所要時間が短縮されましたが、さらにはQuerySharePointにはサーバー側でのフィルタリング機能もあります。あらかじめフィルタリングすると約3000件すべてをロードしなくてもよいので、さらなるスピードアップが期待できます。次の段落では、フィルタリング機能を用いたときの実験結果を述べます。

    【実験B-2】

    InfoPath製品に付属の出張申告書で、目的地のフィールドを州と郡の2つのドロップダウンリストに変更する。州の欄は、先のSharePointリストから州名のクエリを行ってユニークな値を設定。On-loadの所要時間を測定すると、11.78±1.53秒(10回の計測による平均および標準偏差)となった。(このやり方では約3000件のダウンロードが発生しているために、10秒以上もかかっている。その後ユニークな値を抽出すると50に絞られるが、州名のように固定した値の場合には、別にリストを準備した方が良い実現方法といえよう)

    さて、ユーザーがドロップダウンから州名を選んだら、InfoPahフォームは、QuerySharePointでフィルタを指定して、SharePointのリストからその州の郡名を取得する。その際の平均所要時間は2.52±0.16秒となった。

    DBXL V2.3の新機能であるQuerySharePointのフィルタリング機能を活用することによって、リストをロードする際の体感速度がさらに向上することがご理解いただけるかと思います。

  • WSSP/DBXL導入:予期しないエラー 2869

    エラーコード2869に関する、回避法の一つをご紹介します。

    導入の最後で、予期しないエラー2869が発生した場合には、まずイベントログを調べてください。
    1.スタート→ファイル名を指定して実行…→「eventvwr」と入力してOK
    2.左のパネルで、アプリケーションとサービスを開き、その下のQdabraをクリック
    当方が遭遇したケースは、該当プロダクトのインストール、アンインストールを複数回行ったマシンでした。

    イベントログによると、
        「QdabraDBXLデータベースを初期化できない」
    とあります。これだけですと、アクセス許可の問題が疑われますね。しかし、もう一つ前のエラー情報の中を見ますと、
        「(略)\MSSQL\DATA\QdabraDBXL.mdf' は既に存在するので作成できません」

    なるほど、SQL内部の不整合のようです。SQL Server Management Studio Expressでチェックしても、QdabraDBXLというデータベースは存在しないのに、ファイルだけは残ってしまったのでしょう。

    とすれば、データベース名を変更すればこの不整合を回避できそうです。そこで、WSSPあるいはDBXLを導入する際に、[SQL Server]タブの[データベース]の欄を、手動でQdabraDBXLから、QdabraDBXL2と変更してみました。このケースでは、これで導入に成功しました。

    [メモ] 2860エラーが発生して、フォーラム等で問い合わせをする際には、必ずイベントログの内容を添付してください。数個のイベントログが関連していることもありますので、時刻情報などから関連するすべてのエラーログをチェックするようお願いします。

  • Qdabra EnumDBユーザーマニュアル

     Qdabra DBXLおよびWSSP(Webサービスソリューションパック) v2.2における、EnumDB Webサービスのユーザーマニュアルをアップロードします。

    http://www.infopathdev.com/files/folders/wssp_v22_japanese/entry74056.aspx

    どうぞ導入検討の参考にも、ご利用ください。

  • FAQ: DBXL/qWSSP: アンインストール、修復、インストールのいずれも出来なくなりました。

    複数回インストールを実行したり、修復・アンインストール・インストールを繰り返したりした際に、エラーメッセージがでて、以降修復・アンインストール・インストールのいずれも出来なくなることがあります。これはInstallStateファイル(デフォルトインストールでは、C:\inetpub\wwwroot\QdabraWebService\install\Qdabra.Dbxl.Installer.InstallState)の内容が不整合になった、あるいはレジストリのインストール状況のデータに問題がある場合に起こりえます。

    【対策】

    1. 手元にDBXLをインストールしたマシンが他にもある場合、そのマシンのInstallStateファイルをコピーして問題のマシンのファイルを上書きする。 
    2. あるいは、下記附録の文字列で、InstallStateファイルを置き換えてみる。
    3. あるいは、マイクロソフトのWindows Installer CleanUp Utilityを試してみる。

    【附録:Qdabra.Dbxl.Installer.InstallStateの一例】

     <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  <SOAP-ENV:Body>    <a1:Hashtable id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <LoadFactor>0.72</LoadFactor>      <Version>2</Version>      <Comparer xsi:null="1"/>      <HashCodeProvider xsi:null="1"/>      <HashSize>11</HashSize>      <Keys href="#ref-2"/>      <Values href="#ref-3"/>    </a1:Hashtable>    <SOAP-ENC:Array id="ref-2" SOAP-ENC:arrayType="xsd:anyType[2]">      <item id="ref-4" xsi:type="SOAP-ENC:string">_reserved_nestedSavedStates</item>      <item id="ref-5" xsi:type="SOAP-ENC:string">_reserved_lastInstallerAttempted</item>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-3" SOAP-ENC:arrayType="xsd:anyType[2]">      <item href="#ref-6"/>      <item xsi:type="xsd:int">0</item>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-6" SOAP-ENC:arrayType="a1:IDictionary[1]" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <item href="#ref-7"/>    </SOAP-ENC:Array>    <a1:Hashtable id="ref-7" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <LoadFactor>0.72</LoadFactor>      <Version>7</Version>      <Comparer xsi:null="1"/>      <HashCodeProvider xsi:null="1"/>      <HashSize>11</HashSize>      <Keys href="#ref-8"/>      <Values href="#ref-9"/>    </a1:Hashtable>    <SOAP-ENC:Array id="ref-8" SOAP-ENC:arrayType="xsd:anyType[7]">      <item id="ref-10" xsi:type="SOAP-ENC:string">vdir</item>      <item id="ref-11" xsi:type="SOAP-ENC:string">DbxlDatabase</item>      <item id="ref-12" xsi:type="SOAP-ENC:string">DbxlRootUrl</item>      <item href="#ref-4"/>      <item id="ref-13" xsi:type="SOAP-ENC:string">site</item>      <item id="ref-14" xsi:type="SOAP-ENC:string">port</item>      <item href="#ref-5"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-9" SOAP-ENC:arrayType="xsd:anyType[7]">      <item id="ref-15" xsi:type="SOAP-ENC:string">QdabraWebService</item>      <item id="ref-16" xsi:type="SOAP-ENC:string">QdabraDBXL</item>      <item id="ref-17" xsi:type="SOAP-ENC:string">http://DEVESHR2/QdabraWebService</item>      <item href="#ref-18"/>      <item id="ref-19" xsi:type="SOAP-ENC:string">/localhost/W3SVC/1</item>      <item id="ref-20" xsi:type="SOAP-ENC:string"></item>      <item xsi:type="xsd:int">0</item>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-18" SOAP-ENC:arrayType="a1:IDictionary[1]" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <item href="#ref-21"/>    </SOAP-ENC:Array>    <a1:Hashtable id="ref-21" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <LoadFactor>0.72</LoadFactor>      <Version>4</Version>      <Comparer xsi:null="1"/>      <HashCodeProvider xsi:null="1"/>      <HashSize>11</HashSize>      <Keys href="#ref-22"/>      <Values href="#ref-23"/>    </a1:Hashtable>    <SOAP-ENC:Array id="ref-22" SOAP-ENC:arrayType="xsd:anyType[1]">      <item href="#ref-4"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-23" SOAP-ENC:arrayType="xsd:anyType[1]">      <item href="#ref-24"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-24" SOAP-ENC:arrayType="a1:IDictionary[4]" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <item href="#ref-25"/>      <item href="#ref-26"/>      <item href="#ref-27"/>      <item href="#ref-28"/>    </SOAP-ENC:Array>    <a1:Hashtable id="ref-25" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <LoadFactor>0.72</LoadFactor>      <Version>4</Version>      <Comparer xsi:null="1"/>      <HashCodeProvider xsi:null="1"/>      <HashSize>11</HashSize>      <Keys href="#ref-29"/>      <Values href="#ref-30"/>    </a1:Hashtable>    <a1:Hashtable id="ref-26" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <LoadFactor>0.72</LoadFactor>      <Version>7</Version>      <Comparer xsi:null="1"/>      <HashCodeProvider xsi:null="1"/>      <HashSize>11</HashSize>      <Keys href="#ref-31"/>      <Values href="#ref-32"/>    </a1:Hashtable>    <a1:Hashtable id="ref-27" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <LoadFactor>0.72</LoadFactor>      <Version>5</Version>      <Comparer xsi:null="1"/>      <HashCodeProvider xsi:null="1"/>      <HashSize>11</HashSize>      <Keys href="#ref-33"/>      <Values href="#ref-34"/>    </a1:Hashtable>    <a1:Hashtable id="ref-28" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">      <LoadFactor>0.72</LoadFactor>      <Version>7</Version>      <Comparer xsi:null="1"/>      <HashCodeProvider xsi:null="1"/>      <HashSize>11</HashSize>      <Keys href="#ref-35"/>      <Values href="#ref-36"/>    </a1:Hashtable>    <SOAP-ENC:Array id="ref-29" SOAP-ENC:arrayType="xsd:anyType[1]">      <item href="#ref-4"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-30" SOAP-ENC:arrayType="xsd:anyType[1]">      <item href="#ref-37"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-31" SOAP-ENC:arrayType="xsd:anyType[4]">      <item href="#ref-10"/>      <item href="#ref-4"/>      <item href="#ref-13"/>      <item href="#ref-14"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-32" SOAP-ENC:arrayType="xsd:anyType[4]">      <item href="#ref-15"/>      <item href="#ref-38"/>      <item id="ref-39" xsi:type="SOAP-ENC:string">/localhost/W3SVC/1</item>      <item href="#ref-20"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-33" SOAP-ENC:arrayType="xsd:anyType[2]">      <item href="#ref-4"/>      <item href="#ref-13"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-34" SOAP-ENC:arrayType="xsd:anyType[2]">      <item href="#ref-40"/>      <item id="ref-41" xsi:type="SOAP-ENC:string">/localhost/W3SVC/1</item>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-35" SOAP-ENC:arrayType="xsd:anyType[4]">      <item href="#ref-10"/>      <item href="#ref-4"/>      <item href="#ref-13"/>      <item href="#ref-14"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-36" SOAP-ENC:arrayType="xsd:anyType[4]">      <item href="#ref-15"/>      <item href="#ref-42"/>      <item id="ref-43" xsi:type="SOAP-ENC:string">/localhost/W3SVC/1</item>      <item href="#ref-20"/>    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-37" SOAP-ENC:arrayType="a1:IDictionary[0]" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-38" SOAP-ENC:arrayType="a1:IDictionary[0]" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-40" SOAP-ENC:arrayType="a1:IDictionary[0]" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">    </SOAP-ENC:Array>    <SOAP-ENC:Array id="ref-42" SOAP-ENC:arrayType="a1:IDictionary[0]" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">    </SOAP-ENC:Array>  </SOAP-ENV:Body></SOAP-ENV:Envelope>

  • DBXL FAQ: DBXLの様々なWEBサービスのレファレンスはありますか?

    DBXLをインストールした後、
    http://localhost/QdabraWebService/default.htm (Localhostは必要に応じて変更してください)から、
    リンク”Web Service Developer Reference”を選択してください。

    開発者用Web Service Referenceがご覧になれます。(現在英語版です。)


  • SQLのデータをInfoPathフォーム内で表示する

     DBXLのデータベースEnumerationサービスを利用すると、SQLからデータをフィルタリングやソートした結果をInfoPathフォーム内に表示することが出来ます。初めてお使いいただく方向けのチュートリアルを翻訳しましたので、興味のある方はお試しください。

    InfoPath以外のWebサービスでも利用可能です。

    http://www.infopathdev.com/files/folders/wssp_v22_japanese/entry74056.aspx  (日本語 Word文書)

  • ケーススタディ: オリンピア総合クリニックでの導入例

    Qdabra Database Accelerator (DBXL) による医療現場の情報化 、オリンピア複合クリニックでの導入例をケーススタディーとして、まとめました。

    ケーススタディー: オリンピア複合クリニックでの導入

    • お客様概要
    • チャレンジ
    • ソリューション
    • お客様からのフィードバック
    • マーシャル・マカビー医学博士からのメッセージ
    • DBXLソリューションのメリット

    A4 2ページ、一般向けパンフレットです。どうぞご覧ください。

     

Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.