4 返信 最新の回答 日時: Jun 8, 2014 9:53 PM ユーザー:tezutaku

    Goでのエクスポートとインポート

    tezutaku

      タイトル

      Goでのエクスポートとインポート

      フォーラムに投稿

           FileMaker Proで複数テーブルの関連フィールドをファイルにエクスポートして、そのファイルを別のテーブルにインポートするスクリプトを設定しているのですが、Goで動作しません。

           Goはエクスポートするファイル形式はFileMaker Pro形式をサポートせず、インポートではFileMaker Pro形式しかサポートしないという困った仕様になっていますよね?

           1テーブルのフィールドのエクスポートであれば、インポート用のFileMaker Pro(temp.fmp12)ファイルを用意して置き、そのファイルにインポートしてから、元のファイルの別テーブルにインポートするということで対応可能かと思うのですが、

           複数のテーブルの関連フィールドをまとめてインポートする必要があるので、対応できません。

           1テーブルに関連フィールドのデータをそのテーブル用のフィールドに転記しておいて、1テーブルで対応できるようにする方法があるかと思いますが、できれば関連フィールドのまま扱いたいと考えております。

           何か良い方法があるでしょうか?

        • 1. Re: Goでのエクスポートとインポート
          sago350@未来Switch

               1.2回実行する

               2.(temp.fmp12)側のスクリプトでインポートを実行させる。そうすると似たような動きになる。

               3.1テーブルに2テーブル分うまいこと入るような構造にする(ややこしいのでオススメしないし、自分ならやらない)

               4.そもそも2テーブルの内容を別の2テーブルに移動させたいならインポートエクスポート使わなくてもフィールド設定とループで出来るのでは(Proから商品マスタを書出してGoで取り込みたいという話しなら解る)


               いくつか方法はあると思うのですが、もう少し前提条件を教えて頂けますでしょうか。

          • 2. Re: Goでのエクスポートとインポート
            tezutaku

                 前提条件ですが、

                 見積テーブルと見積データテーブルでリレーションしていて、見積データテーブルのレコードをエクスポートする際に、見積テーブルの関連フィールドも合わせたデータを別の集計用テーブルに取り込んでいます。さらに見積テーブルでは、システムテーブル(会社のロゴオブジェクトや、住所、印刷用のフォームオブジェクト)のデータともリレーションしており、そちらのデータもエクスポートに含めます。

                 同じFileMaker Pro書類内でのインポートでは、同一テーブルのフィールドしか指定できないので、一旦外部にエクスポート(fmp12やcsv形式)してからインポートするという方法をとっています。最初の質問に書いたとおりこれがGoでは成り立たなくなっています。

                 >Goはエクスポートするファイル形式はFileMaker Pro形式をサポートせず、インポートではFileMaker Pro形式しかサポートしないという困った仕様

            →そもそもなんでこんな仕様なんだろう?

                  

            方法についてご提示いただきありがとうございます。

            1の方法については、どうするかがわかりません。

            2の方法でもインポートでは同一テーブルのフィールドしか指定できないので無理ではないでしょうか。

                 3については「1テーブルに関連フィールドのデータをそのテーブル用のフィールドに転記しておいて、1テーブルで対応できるようにする方法があるかと思います」と似た方法なので最悪、こちらの対応は考えております。

                 4についは2テーブルの内容を1テーブルに取り込むということなのですが、フィールド設定でループさせることは可能ですね。見積データの関連テーブルのフィールド合わせて60個あるのと、見積テーブルと集計テーブルではリレーションしていないので、いちどフィールドデータを変数に入れて、それをフィールド設定で転記することになりそうです。

                  

            • 3. Re: Goでのエクスポートとインポート
              sago350@未来Switch

                   エクスポートしなくても、直接に集計テーブルから見積テーブルをインポートすればいいのでは。
                   これで、FileMakerGoで動かない問題は解決するかと。

                    

                   2度実行するというのは、見積の親側(見積テーブル)と子側(見積データテーブル)それぞれで実行すればいいんじゃないかと。
                   (あ、でもこの2テーブルを集計テーブルにまとめるんですね。)

                   システムテーブルについては、見積テーブルにデータを持たせてしまえば同一テーブルとなるのでインポート出来るようになります。
                   参照するだけの計算フィールドを用意しておくといいかも。

                   リレーション無しとなると、必要なフィールドだけをそれぞれのテーブルからインポートして集計テーブルにまとめるという形か、
                   もしくは、変数に格納してフィールド設定でループするか。
                   もしくは、ExecuteSQL関数でひっぱってくるか、といった所かと思います。

              • 4. Re: Goでのエクスポートとインポート
                tezutaku

                     sago35さん、回答いただき有り難うございます。

                     ------エクスポートしなくても、直接に集計テーブルから見積テーブルをインポートすればいいのでは。

                これで、FileMakerGoで動かない問題は解決するかと。---

                これができれば最高なのですが、

                インポートするフィールドが複数のテーブルにわたっているので、無理ではないでしょうか?

                何かのキーを元に「対象レコードで一致するレコードを更新」で、インポートしたいテーブル分繰り返せばいいということでしょうか?