1 返信 最新の回答 日時: Jun 29, 2017 5:34 PM ユーザー:nagnag

    ActiveXオートメーションでの不可解な現象

    nagnag

      お世話になります。

      外部システムとの連携目的で、VBScriptでActiveXオートメーションを使っております。

      • 外部システムからIDを引数としてVBScriptを実行し、FileMakerで指定IDのレコードを表示する、といった振る舞いです。
      • FMP12の頃に構築した仕組みで、現在はFMP15でも動作させています。
      • データベースはFMS14で共有しているため、VBSから開くのはローカルの連携用DBファイルで、外部データソースでサーバ上のDBを指定してサーバDBのスクリプトを呼び出すようにしています。
      • VBSでは、CreateObject("FMPRO.Application")でFMPのインスタンスを取得しており、FMPが起動されているかどうかにかかわらず、正しく動作しておりました。

       

      ところが、最近になって、以下のような不可解な現象が発生するようになりました。
      特定の端末のみで発生し、Win8.1+FMP12、Win10+FMP15(64)の2つの環境で発生を確認しています。

      (開発環境では再現できておらず、検証はユーザ環境のみのため、なかなか捗っておりません)

      • FMPが起動されていない状態でVBSによる連携を動作させると、FMPが起動された上で正常な期待した動作となり、以降、何度連携を繰り返しても正常に動作する(連携によって起動されたFMPだと何度連携を繰り返しても正常動作)。
      • ところが、FMPを手動で起動した状態でVBSによる連携を動作させると、VBS上のCreateObject("FMPRO.Application")のステップで「起動センター」(FMP12の場合はクイックスタート)が表示され、ユーザの操作待ちのような状態で止まってしまう。
        しかし、そのまま15秒ほど放置すると、(タイムアウトしたかのように)次のステップに進む。
        次のステップではエラー判定を行っており、CreateObjectでErr.Number=429(オブジェクトを作成できない)のエラーが発生。

       

      上記の「FMPを手動で起動」の場合の現象(起動センター表示で止まり、そのあげく、エラーとなる)について、情報をお持ちの方はいらっしゃいませんか?

        • 1. Re: ActiveXオートメーションでの不可解な現象
          nagnag

          本件の現象は、結局、原因がわからず、解消できなかったため、VBScriptからFileMakerスクリプトを呼び出す方式をActiveXオートメーションからFMPプロトコルによるリクエストに書き換えて解決しました。

          ActiveXオートメーションまわりは情報が少なく、サーバでホストされたDBを直接開けない制約もあるため、今後はFMPプロトコル利用に切り替えていくつもりです。