5 返信 最新の回答 日時: Sep 10, 2009 12:55 AM ユーザー:vilmont2000

    インスタントWebから特定レコードをXMLインポートするには?

    vilmont2000

      タイトル

      インスタントWebから特定レコードをXMLインポートするには?

      フォーラムに投稿

      インスタントWebでデータ管理し、出力管理をランタイム版で行う、ネットワークシステムを構築しようと思っています。

        

      インスタントWebでデータを選択し、このデータについてのプリントアウトを行おうと思い、

       1)インスタントWebのレコードIDをフィールド化し、これをコピー

       2)ランタイム版の出力ファイルを開く

       3)1)でコピーした内容をグローバルフィールド(wk-id)に貼り付ける

       4)ランタイム版よりXMLインポートでRecid=wk-id、により特定化されたレコードだけインスタントWebから抽出

      という流れでスクリプトを組みました。

      しかし、IE6の特性のためか、1)のフィールドの内容コピーができないため、システム構築が暗礁に乗りかけています。

       

      FielMakerのWeb公開は簡単な反面、出力系が対応しておらず、この点を解消するため、

      考えたのが、インスタントWeb-ランタイム版、の連携ですが、うまくいきません。

      何か良い方法がないものか、どなたかご教示願います。

        

       

       

        • 1. Re: インスタントWebから特定レコードをXMLインポートするには?
          YODA
            

          vilmont2000 さん、こんにちは。

           

          FM7 以降 の インスタント Web 公開では、http リクエストを利用して、データベースに直接働きかける手法がつかえません。ファイルを開く所まではできますが...(恐らくセキュリティ対策のためと思われます)

           

          ご希望の動作を行うには、FileMaker Pro ではなく FileMaker Server (9以上)をホストとしてカスタム WEB 公開を行い、XMLインポートを行うような構築が必要ではないかと思われます。

           

          <ご参考>

          http://www.filemaker.co.jp/support/technologies/xml

           

          なお、インスタント Web の画面からランタイム上のレイアウトにフィールド値がコピーできない現象については、そもそも連携がスクリプトでできるのかよくわかりません。すみません。

           

          • 2. Re: インスタントWebから特定レコードをXMLインポートするには?
            Hiro
              

            環境の詳細説明がありませんが、

            お考えの手法は、Yodaさんの説明通り現状ではできないと思います。

            インスタントWebの出力の問題とは、具体的にどんなものの出力(印刷?ファイルダウンロード?静的/動的データ?)を想定しているのでしょうか?

            状況に依っては代替方法があるかもしれません。

             

             

            • 3. Re: インスタントWebから特定レコードをXMLインポートするには?
              vilmont2000
                

              説明を補足します。

              ホスト側は FileMaker Server Advanced 9です。

               

              ホスト側でのスクリプトで、現在選択中のレコード番号を取得しコピーします。

               フィールド設定[wk-recid;get( レコード ID )]

               コピー[選択;wk-recid]

               

              クライアント側で、ランタイム版で作成した帳票印刷用ファイルを開きます。

              XML取り込みのスクリプトは、コピーした情報をグローバルフィールド(seq wk)に貼り付け、

              この数値をもとにしてXMLインポートし、その後印刷に利用するものです。

               貼り付け[選択:seq wk]

               フィールド設定[hatugi::XML wk;"http://192.21.0.54/fmi/xml/FMPXMLRESULT.xml?-db=kanri_bunsyo&-lay=kian_work&-recid="  &  hatugi::seq wk  &  "&-find"]

               レコードのインポート[hatugi::XML wk]

               

              代替方法も含めてよろしくお願いします。

                

               

               

              • 4. Re: インスタントWebから特定レコードをXMLインポートするには?
                Hiro
                  

                あぁ、FM9SAならXML公開できるので、RunTimeクライアントのXMLインポートは問題ありませんネ。

                これと類似のアイデアは昔FM6の頃だったか、現在はPHP+FMで有名な堀直樹さんが講演されてたと記憶します。

                  http://blogs.yahoo.co.jp/nao_r1/45530337.html

                  http://codezine.jp/article/detail/2210

                もしこれが上手く行かなければご本人に直接お尋ねしても良いかもしれませんネ。

                 

                さて、問題の検索キー(seq wk)の受け渡しの点ですが、IEブラウザとランタイムFM間で考えると難しそうなので、

                これをランタイムFM+Webビューアにすれば出来そうに思います。

                試してみましたが、WebビューアにインスタントWebを表示するのは問題ありませんし、そのHTMLソースをGetLayoutObjectAttribute ("webビューア;"content") で取りだすのも問題ないようです。

                いっそのこと、レコードIDとは言わず目的のXMLサーチURLをWebビューア越しに受け渡した方が楽かもしれません。

                 

                 

                 

                 

                • 5. Re: インスタントWebから特定レコードをXMLインポートするには?
                  vilmont2000
                    

                  FileMaker Advanced 8.5 を使用して、WebビューアにインスタントWebを表示するところまではできました。

                   

                   しかし、ご回答いただいた内容のように、「目的のXMLサーチURLをWebビューア越しに受け渡し」

                  という点で、Webビューアの内容をインポートしたいのですが、行き詰まってしまいました。

                  1)GetLayoutObjectAttribute関数で、表示の内容をインポートしようとしましたがだめですし、

                  2)表示されているWeb画面から、キーになるレコードIDをコピーして、検索を行い、XMLインポートも試みましたが、コピーもできません。

                   

                  1)も2)もインスタントWebだからだめなのでしょうか? 制限があるためなのでしょうか? 

                  どのような方法だと、インスタントWeb画面から特定レコードがいんぽーとできるのか、教えていただきたく思います。

                  よろしくお願いします。

                    

                  にvilmont2000により編集されたメッセージ