プラグイン ドキュメンテーション

このドキュメントの最新バージョンは http://static.360works.com/plugins/SuperContainer/plugin-documentation.html (英語)でご覧いただけます。
 目次

SuperContainer Companion Plugin ユーザガイド

このプラグインは、360WorksのWebビューアのアドオン「SuperContainer」を使用するために必ずインストールしなくてはならないものではありませんが、このプラグインを使うと通常はユーザの操作を必要とする機能を自動化できます。

このプラグインは、オブジェクトフィールドからSuperContainerへのアップロードや、SuperContainerからローカルのオブジェクトフィールドへのダウンロードをサポートしています。さらに、SuperContainerに保管されているファイルの削除、ローカルドライブへのファイルのダウンロード、SuperContainerに保管されているファイルの詳細情報の取得などの機能も備えています。

このプラグインは、既存のソリューション中のオブジェクトフィールドからSuperContainerにデータを移行する際に、特に有用です。

注意: インスタントWeb公開のクライアントは、このプラグインを使ってファイルをアップロードすべきではありません。インスタントWeb公開ではプラグインはサーバー上にあるため、プラグインはサーバー上にあるファイルにのみアクセスできるためです。そのようにさせたいわけではないはずです! 代わりに、インスタントWeb公開のクライアントは、レイアウト上に配置されたWebビューア経由でファイルをアップロードするようにします。ソリューションには、インスタントWeb公開のアップロード用に別途レイアウトを用意するとよいでしょう。

重要:SuperContainerサーバーとやりとりをするすべてのプラグイン関数をコールする前に、SCSetBaseURLをコールして、サーバーの場所を渡す必要があります。ダウンロードファイルに含まれている「SuperContainer Example.fp7」のファイルでは、インスタントWeb公開のプラグインのアップロードは無効にしてあります。

たとえば、スタンドアローンのSuperContainerサーバーが開発用のコンピュータ上で動作している場合は、以下のようにコールします。

 SCSetBaseURL("http://server.mycompany.com:8020/SuperContainer/Files")

「Files」のコンポーネントまで、完全URLを渡していることに注目してください。これ以外のプラグイン関数はすべて、(完全URLではなく)相対的なフォルダパスをパラメータとして認識します。これはファイルが保管されている、または保管したいサーバー上のフォルダです。SuperContainerのホスト、ポート、アクションの名前はこれに含まれません。例を以下に示します。

SCGetContainer("staff/portraits/42")

通常は、SCSetBaseURLをスタートアップスクリプトでコールするように設定するでしょう。プラグインにサーバーへの完全URLをいったん認識させれば、その他のプラグイン関数に対して指定する必要があるのはサーバー上の相対パスだけです。

プラグインを使用する際に気をつけなくてはならないことがひとつあります。それは、プラグインのスクリプトは、SuperContainerが最後のアクションの処理を終了する前に戻ってくることがあるということです。そのため、プラグイン関数のSCSetContainerでファイルをアップロードすると、前のアクションが完了していないのに即座にSCGetInfoをコールすることがあります。ひとつの解決策は、2つのアクションの間に一時停止のスクリプトステップを入れておくことです。

プラグイン関数の使用例については、ヒント、コツ、FAQの「プラグインを活用する」セクションを参考にしてください。

SuperContainer Companion Pluginは、保管されたオブジェクトフィールドとして機能するだけでなく、さらにオブジェクトの参照と連携して動作します。

エラーの扱い/レポート

予期しないことが発生すると、プラグイン関数は"ERROR"の結果を返します。このため、エラーを簡単にチェックできます。プラグイン関数が"ERROR"を返した場合、SCLastError関数をコールして問題点の詳細を取得します。

以下に、基本的なエラーレポーティングの例を示します。

Set Variable [ $result = MyPluginFunction("x" ; "y" ; "z") ]
If [ $result = "ERROR" ]
    Show Custom Dialog [ "An error occurred: " & SCLastError ]
End If

複数の関数をまとめる

"ERROR"の文字列は、FileMakerによって評価されるときにエラーと評価します。また、ほとんどのプラグイン関数は処理が正しく実行されると1を返します。このため、複数の従属関係にあるプラグインの演算を"and"演算子を使ってまとめることができます。ただしこの場合、結果は1か0であり、"ERROR"ではありません。例を以下に示します。

// 複数のコールをまとめる
// いずれかの関数がエラーになった場合、
// この計算式はfalseの結果でショートカットされ、
// その後の関数のコールは評価されません。
Set Variable [ $success = 
    FirstPluginFunction("x") and 
    SecondPluginFunction("y") and 
    ThirdPluginFunction("z") 
]
If [not $success]
    Show Custom Dialog [ "An error occurred: " & SCLastError ]
End If

注意:上記の例は、正しく実行されたときに1を返すプラグイン関数にのみ有効です。このように使用したい各関数のドキュメントを確認してください。

この他のエラーチェック - プラグインがインストールされていない

プラグインが正しくインストールされていない場合、プラグイン関数のコールは "?"を返します。スタートアップスクリプトの一部として、これが発生していないかどうかを確認し、プラグインのインストールが必要であれば警告を表示する必要があります。注意:論理値のtrue/false(真/偽)として扱われる場合、FileMakerは?をtrue(真)と扱います。

インストール

システム条件

FileMaker バージョン7以降。

Java Virtual Machine(JVM)バージョン1.5以降(32ビット)。JVM 1.5より前のバージョンを使用している場合には、アップグレードが必要です。JVMを http://www.java.com/ja/download/ からダウンロードしてください。インストールされているJavaのバージョンが不明の場合は、WindowsまたはMac OS Xのコマンドラインで「java -version」を実行して調べることができます。

Windows、またはMac OS X v10.4以降。

Intel社製プロセッサ搭載のMacに関する注意:このプラグインは、Rosettaでの動作をサポートしていません。FileMaker 8.5にアップグレードして、Intelネイティブのモードでプラグインを使用してください。

FileMaker Proへのインストール手順

「MAC」または「WIN」フォルダから、プラグインをFileMakerの「Extensions」フォルダにドラッグし、FileMakerを再起動します。

プラグインが正しく読み込まれない場合は、システム条件を満たしているかどうかを再度確認してください。

FileMakerのWeb公開エンジン/インスタントWeb公開へのインストール手順

インスタントWeb公開、またはFileMaker Server AdvancedのカスタムWeb公開と組み合わせてこのプラグインを使う予定がある場合に限り、この手順が必要です。

FileMaker ServerまたはFileMaker Server AdvancedのWeb公開エンジンにインストールするには、「MAC」(.fmplugin ファイル)または「WIN」(.fmx ファイル)フォルダからプラグインを FileMaker Server/Web Publishing/publishing-engine/wpc/Plugins フォルダにドラッグします。wpcフォルダ内にPluginsフォルダがない場合は、手動でフォルダを作成してください。FileMakerのWeb公開を再起動すると、プラグインが使える状態になっています。

弊社や他のプラグインベンダからFileMaker社に報告済みのバグがあり、このバグのためWebのプラグインはMac OS X上のFileMaker Web Publishing Engine 8.0v4では動作しないことに注意してください。バージョン9などこれより新しいバージョンを使うか、または8.0v3などこれより古いバージョンを使う必要があります。Windows版のFileMaker Server 8.0v4にはこのバグはなく、正常に動作します。

プラグインが動作しているかどうかをテストする最も簡単な方法は、プラグインのバージョン関数をコールする計算式を作り、それをインスタントWeb公開のレイアウト上に表示することです。「?」と表示されたら、プラグインは動作していません。数字が表示されれば、プラグインは正しくインストールされています。

FileMaker Server 9以降へのインストール手順

FileMaker Server 9の新機能であるタスクスケジュールによるスクリプトの実行機能と組み合わせてこのプラグインを使う予定がある場合に限り、この手順が必要です。

  1. 「MAC」(.fmplugin ファイル)または「WIN」(.fmx ファイル)フォルダからプラグインをFileMaker ServerのExtensionsフォルダにドラッグします。OS Xでは、/Library/FileMaker Server/Database Server/Extensions フォルダです。Windowsでは、C:¥Program Files¥FileMaker¥FileMaker Server¥Database Server¥Extensions フォルダです。
  2. ServerのAdminアプリケーションで、FileMaker Serverを停止してから起動して、再起動します。
  3. 「設定」>「データベースサーバー」>「サーバープラグイン」を選択し、「FileMaker Serverでプラグインを使用できるようにする」のチェックボックスにチェックを付けてから、このプラグインの「有効にする」にチェックを付けます。「保存」ボタンをクリックして数秒間待ち、「有効にする」チェックボックスにチェックが付いていることを確認します。チェックが付いていなければ、プラグインのロードのエラーが発生しています。トラブルシューティングのために弊社までご連絡ください。これで、プラグインを使用するスクリプトを実行させるためのスケジュールを作れるようになります。

自動アップデート

360works社では、自動アップデートをより簡単に設定するために、自動アップデートヘルパーのデータベースを作成しました。このファイルには、サーバーに配置する設定済みプラグインファイルと、ソリューションにペーストして使える各プラグイン用の自動アップデートのスクリプトが含まれます。

「AutoUpdate360Works」ファイルは、fmp7://autoupdate.360works.com/AutoUpdate360Works から入手できます。手順は、自分の自動アップデートサーバーでホストするファイル、または弊社のサーバーから提供されるファイルに記載されていますので、それに従ってください。

プラグインをアンインストールする

プラグインをアンインストールするには、FileMaker Proを終了するかFileMaker Serverを停止して、プラグインのファイルをExtensionsのディレクトリから取り除きます。

フィードバック

弊社製品のさらなる向上のために、お客様からのご意見をお聞かせいただきたくお願いいたします。このプラグインを使用して発生した問題、機能のリクエスト、あるいはプラグインを使用してご満足いただけたことなどを、ぜひお知らせください。360WorksのWebサイトから、またはメールをお待ちしております!

なお、日本語でのお問い合わせはこちらをご利用ください。

関数の概要

  • SCChooseFile ( { 初期パス ; ファイルタイプ ; タイトル ; [ キー1=値1 ; キー2=値2 ; … ] } )
    • ユーザがローカルのハードディスクをブラウズできるように、ファイル選択のダイアログを開きます。
  • SCClearLocalCache
    • SuperContainer Companion Pluginによってダウンロードされた、ローカルにキャッシュされている一時ファイルをすべて削除します。
  • SCCopy ( フォルダパス ; コピー先パス {; ファイル名 } )
    • SuperContainerサーバー上でファイルを新しい場所へコピーします。
  • SCDelete ( フォルダパス )
    • 指定されたフォルダパスにより、SuperContainerのファイルを削除します。
  • SCDeleteLocalFile ( ローカルファイル )
    • ローカルのファイルシステムからファイルを削除します。
  • SCDownload ( フォルダパス { ; 保存先フォルダ ; 幅 ; 高さ; キー1=値1; キー2=値2; … } )
    • ファイルが存在しない場合やサーバー上のバージョンに対して最新でない場合に、SuperContainerサーバーからファイルを別の場所にダウンロードします。
  • SCGetContainer ( フォルダパス {; 幅 ; 高さ ; 解像度 ; ページ } )
    • SuperContainerのファイルのコンテンツを、オブジェクトデータとして取得します。
  • SCGetFolderURL ( Macのパス; Windowsのパス; フォルダパス )
    • 保管されたファイルのフォルダの場所を、マウントされた/マップされたファイルサーバーを指定するURLとして取得します。
  • SCGetInfo ( フォルダパス {; 追加のフィールド } )
    • ファイル名、サイズ、高さ、幅、大きさ、アップロードされた日付といった、SuperContainerのファイルに関するメタ情報を返します。
  • SCLastError
    • プラグイン関数のエラーが発生するたびに、"ERROR"の文字列を返します。
  • SCMove ( 旧フォルダパス ; 新フォルダパス {; ファイル名 } )
    • SuperContainerサーバー上でファイルを移動します。ダウンロードはしません。
  • SCMoveLocalFile ( ソースファイル ; 移動先ファイル )
    • ファイルを、ソースファイルから移動先ファイルへローカルで移動します。
  • SCScanDirectory ( パス {; 再帰 } )
    • ローカルのディレクトリをスキャンしてファイルを調べます。
  • SCSetBaseURL ( SuperContainerのURL {; ユーザ名 ; パスワード ; キー1=値1 ; … } )
    • プラグインが使用するSuperContainerサーバーのインスタンスの場所を設定します。
  • SCSetContainer ( フォルダパス ; データ {; パラメータ1 ; パラメータ2 ; … } )
    • FileMakerのオブジェクトフィールドからデータをSuperContainerのファイルにプッシュします。SuperContainerのファイルがすでに存在する場合は、上書きします。
  • SCVersion
    • SuperContainer Companion Pluginのバージョン番号を返します。

関数の詳細

SCChooseFile ( { 初期パス ; ファイルタイプ ; タイトル ; [ キー1=値1 ; キー2=値2 ; … ] } )

ユーザがローカルのハードディスクをブラウズできるように、ファイル選択のダイアログを開きます。ユーザがダイアログでファイルまたはディレクトリを選択して「OK」ボタンをクリックすると、この関数は選択されたファイルまたはディレクトリのパスを返します。ユーザが「キャンセル」ボタンをクリックすると、値を返しません。

ファイルタイプ

ファイルタイプのパラメータを指定することにより、ユーザにファイルだけを選択させたり、ディレクトリだけを選択させたり、ファイルとディレクトリの両方から選択させたりすることができます。デフォルトの動作では、ファイルの選択だけを許可します。

ファイルを選択する際、この関数をSCSetContainerと組み合わせて、ユーザのハードディスクから1つのファイルをSuperContainerに読み込むことができます。たとえば以下のコードを使用すると、ユーザが選択したローカルのファイルが、SuperContainerサーバーにアップロードされます。

 SCSetContainer(Asset::ID ; SCChooseFile);

ディレクトリを選択する際、この関数をSCScanDirectoryと組み合わせて、ディレクトリのコンテンツを一括で読み込めます。以下の例では、ユーザにディレクトリを選択させ、そのディレクトリを再帰的にスキャンします(このディレクトリ中の全ファイルのリストを返します)。

 SCScanDirectory ( SCChooseFile("" ; "directories" ) ; true)

注意:"directories"または"files + directories"のファイルタイプを指定すると、プラットフォームによっては非ネイティブのファイルダイアログが開きます。ネイティブのダイアログでは、ディレクトリの選択をサポートしていないためです。

パラメータ 

  • 初期パス
    • ファイル選択のダイアログで最初に選択される場所を指定するパス(オプション)。初期パスを指定していない場合、ユーザのホームディレクトリがデフォルトになります。
  • ファイルタイプ
    • "files"(ファイル)、"directories"(ディレクトリ)、"files + directories"(ファイルとディレクトリの両方)のうち、どれを選択可能にするか。
  • タイトル
    •  ファイル選択のダイアログのタイトルとして表示される、タイトルの文字列(オプション)
  •  キーと値のペア 
    •  キー = 値のペア(オプション)。オプション:useNativeをfalseに設定して、ネイティブのファイルダイアログの代わりにJavaのファイルダイアログを使用することができます。

戻り値

選択されたファイルのパス。ファイルが選択されなかった場合は、戻り値はなし。エラーが発生した場合は、"ERROR"。

SCClearLocalCache

SuperContainer Companion Pluginによってダウンロードされた、ローカルにキャッシュされている一時ファイルをすべて削除します。テンポラリのディレクトリ内のファイルのみを削除します。SuperContainer Companion Pluginは、SCGetContainer がパスを指定せずにコールされたときに一時ファイルを保存します。一時ファイルはテンポラリのディレクトリに保存されます。

戻り値

テンポラリのファイルがすべて正しく削除されたときには、1。1つ以上のファイルを削除できなかったときは、"ERROR"。

SCCopy ( フォルダパス ; コピー先パス {; ファイル名 } )

SuperContainerサーバー上でファイルを新しい場所へコピーします。オリジナルのファイルへの参照を失うことなくファイルを別の場所へ移動したい場合に便利です。

フォルダパスにファイルが存在しない場合、この関数はエラーを返します。

重要:この関数をコールする前に、SCSetBaseURLをコールしてSuperContainerサーバーの場所を設定する必要があります。

パラメータ

  • フォルダパス
    • コピーしたいファイルのフォルダパス。
  • コピー先パス

    • オリジナルのファイルのコピー先にしたいフォルダパス。
  • キーと値のペア

    • キー = 値のペア(オプション)。オプション:filename。例えば、filename=myNewName.txt。

戻り値

正しくコピーされた場合は、1。エラーが発生した場合は、"ERROR"。

SCDelete ( フォルダパス )

指定されたフォルダパスにより、SuperContainerのファイルを削除します。

指定されたフォルダパスにファイルが存在しない場合、サーバー上では何も変更されません。

重要:この関数をコールする前に、SCSetBaseURLをコールしてSuperContainerサーバーの場所を設定する必要があります。

ローカルのファイルシステムからファイルを削除するには、この関数ではなくSCDeleteLocalFile関数を使用します。

# 削除する
Set Variable [$result; Value:SCDelete( Get( LayoutTableName ) & "/" & ID)]
# 削除中のエラーをチェックする
If [$result = "ERROR"
Show Custom Dialog ["Could not delete file"; SCLastError]
End If
# Webビューアを更新して空のWebビューアを表示する
Set Web Viewer [Object Name: "webviewer"; Action: Reload]

パラメータ

  • フォルダパス
    • SuperContainerのファイルを一意に特定するパス。

戻り値

ファイルが正しく削除された場合、または存在しなかった場合には、1。エラーが発生した場合には、"ERROR"。

SCDeleteLocalFile ( ローカルファイル )

ローカルのファイルシステムからファイルを削除します。バッチ読み込みのプロセスの一部として、ファイルがSuperContainerに正しくアップロードされた後で削除するために使用できます。

注意:ローカルのファイルを削除する前に、正しくアップロードされたことを必ず確認してください!SuperContainerサーバーからファイルを削除するには、この関数ではなく SCDelete関数 を使用します。

パラメータ

  • ローカルファイル
    • 削除するローカルファイルのパス

戻り値

ファイルが正しく削除されたときは、1。ファイルが存在しなかったときは、""。ファイルは存在したが削除できなかったときは、"ERROR"。

SCDownload ( フォルダパス {; 保存先フォルダ ; 幅 ; 高さ ; キー1=値1 ; キー2=値2 ; … } )

ファイルが存在しない場合やサーバー上のバージョンに対して最新でない場合に、SuperContainerサーバーからファイルを別の場所にダウンロードします。この関数が同一のファイルに対して複数回コールされた場合、サーバー上のファイルが変更されていない限りは再度ダウンロードされることはありません。

注意:保存先のURLを指定していない場合、ダウンロードされたファイルはユーザのテンポラリのディレクトリに保管され、FileMakerを終了するときにユーザのローカルのドライブから削除されます。

この処理は同名のファイルを上書きするため、カスタムのパスを指定する際には十分注意してください!

この関数はURLを返すため、「Open URL(URLを開く)」スクリプトステップと組み合わせてダウンロードしたファイルを開くことができます。例を以下に示します。

Open URL [SCDownload("Photos/12345")]

フラグ

この関数では、以下のフラグを使用できます。

  • showSaveDialog
    • 保存のダイアログを開きたい場合に設定します。
  • checkForFile
    • ファイルがすでに存在するときに警告を表示したい場合に設定します。showSaveDialogが設定されていると、このフラグはデフォルトでfalseになります。ネイティブの保存ダイアログが自動でファイルをチェックするためです(showSaveDialogがfalseである場合のみ適用されます)。
  • filename
    • ダウンロードするファイルのファイル名を変更します(自動でファイル名のスペースを取り除きます。.txt や .pdf などの拡張子を付けるのを忘れないようにしてください!)。
  • progress
    • falseに設定すると、プログレスバーが無効になります。
  • returns
    • 返したいファイルパスのタイプを指定します(fmpath、filepath)

注意:filenameなどの名前のついたパラメータを指定すると、保存先フォルダ、幅、高さが必要になります。これらのパラメータは並び順に依存するためです。例を以下に示します。

SCDownload ( "Photos/Original/" & Photos::Photo ID ;  // Folder Path
Get( DesktopPath ) & "MyPhotos/" ; // Destination folder
0 ; 0 ; //width & height parameters
"filename=" & $fileName ; "returns=filepath" )

重要:この関数をコールする前に、SCSetBaseURL をコールしてSuperContainerサーバーの場所を設定する必要があります。

パラメータ

  • フォルダパス
    • 一意のSuperContainerのパス。
  • ユーザが定義した保存先パス
    • ファイルのダウンロード先となるフォルダのURLまたはFileMakerのパス(オプション)(例:/Macintosh HD/Users/Shared/Images)。
    • イメージの幅を表す整数値(オプション)。幅/高さが指定されている場合、イメージ以外のリソースはファイル全体ではなくファイル名だけがダウンロードされます。
  • 高さ
    • イメージの高さを表す整数値(オプション)。幅/高さが指定されている場合、イメージ以外のリソースはファイル全体ではなくファイル名だけがダウンロードされます。
  • フラグ
    • キーと値のペア - キー = 値のペア(オプション)。オプション:elfSignedSSL、returns、filename。例えば、selfSignedSSL=1。

戻り値

ファイルのダウンロード先のURL。ファイルが存在しない場合や何らかのエラーが発生した場合は、"ERROR"が返されます。

SCGetContainer ( フォルダパス {; 幅 ; 高さ ; 解像度 ; ページ } )

SuperContainerのファイルのコンテンツを、オブジェクトデータとして取得します。この関数は、SuperContainerのファイルのコンテンツを、FileMakerのオブジェクトフィールドに書き出すために使用することを意図しています。FileMakerのデータベース中でイメージやその他のファイルを表示したい場合は、この関数を使用するのではなく、レイアウトオブジェクトのWebビューアを用いてSuperContainerを直接参照します。

指定したフォルダパスにファイルが存在しない場合は、空の結果を返します。

重要:この関数をコールする前に、SCSetBaseURLをコールしてSuperContainerサーバーの場所を設定する必要があります。

パラメータ

  • フォルダパス
    • SuperContainerのファイルを一意に特定するパス。
    • 幅のパラメータ(オプション)。SuperContainerのファイルがイメージである場合、ここで指定した幅にサイズ変更されます。幅を制限しない場合は0を渡します。
  • 高さ
    • 高さのパラメータ(オプション)。SuperContainerのファイルがイメージである場合、ここで指定した高さにサイズ変更されます。高さを制限しない場合は0を渡します。
  • 解像度
    • 解像度のパラメータ(オプション)。SuperContainerのファイルがイメージである場合、そのファイルのJPEGのプレビューが指定した解像度でレンダリングされます。指定しない場合、デフォルトの解像度である72dpiが使用されます。

戻り値

正しく処理された場合は、オブジェクトデータ。指定したパスにファイルが存在しない場合は、戻り値はなし。エラーが発生した場合は、"ERROR"。

SCGetFolderURL ( Macのパス ; Windowsのパス ; フォルダパス )

保管されたファイルのフォルダの場所を、マウントされた/マップされたファイルサーバーを指定するURLとして取得します。SuperContainerサーバーからは何もダウンロードしないことに注意してください。この関数は、SuperContainerサーバー上に直接保管されているフォルダを指すURLを返します。この関数は、FileMakerの「Open URL(URLを開く)」スクリプトステップと組み合わせて、保管されているリソースをブラウズするのに便利です。

重要:この関数をコールする前に、SCSetBaseURL をコールしてSuperContainerサーバーの場所を設定する必要があります。

注意:参照するフォルダを開くには、アクセス可能なファイルシステムの保管場所がマウントされている、またはマップされていることが必要です。マウントまたはマップされていない場合、SCGetContainer を使ってファイルをローカルのハードディスクにダウンロードし、そのファイルを開く必要があります。

パラメータ

  • Macのパス
    • SuperContainerの保管場所をルートとするOS Xのパス。
  • Windowsのパス
    • SuperContainerの保管場所をルートとするWindowsのパス。
  • フォルダパス
    • SuperContainerのファイルのフォルダを一意に特定するパス。

SCGetInfo ( フォルダパス { ; 追加のフィールド } )

ファイル名、サイズ、高さ、幅、大きさ、アップロードされた日付といった、SuperContainerのファイルに関するメタ情報を返します。

結果は、改行で区切られた3個以上の値です。

  • ファイル名
  • ファイルのサイズ(単位はバイト)
  • ファイルがSuperContainerにアップロードされた日時

この関数に追加の引数を渡すことで、さらに別のメタデータを指定して取得できます。詳しくは後述する「追加のフィールド」を参照してください。

MD5ハッシュ

追加の引数として"md5"を渡すと、この関数の結果の中にファイルのMD5ハッシュが返されます。これはデジタルファイルのフィンガープリント(指紋)の役割を果たすもので、ファイルが複製されたかどうかを把握したりファイルの整合性を確認したりするために使用できます。例を以下に示します。

SCGetInfo("/photos/12345" ; "md5"; "width"; "height")

この式は、以下のような結果を返します。

Lucy.jpg
51231
4/8/08 3:02:56 PM
c7f47955c825ed83dfe2a6a2fac1a092
640
480

(4行目がMD5ハッシュです)

指定したフォルダパスにファイルが存在しない場合は、空の結果を返します。

重要:この関数をコールする前に、SCSetBaseURL をコールしてSuperContainerサーバーの場所を設定する必要があります。

パラメータ

  • フォルダパス
    • SuperContainerのファイルを一意に特定するパス。
  • 追加のフィールド
    • md5、height、width、dimension、pagecountから選択。

戻り値

リクエストされたデータ。ファイルが存在しない場合は、戻り値はなし。エラーが発生した場合は、"ERROR" 。

SCLastError

プラグイン関数のエラーが発生するたびに、"ERROR"の文字列を返します。直近のエラーを発生させたのは何かを認識できる形で取得するには、この関数をコールします。以下に使い方の例を示します。

If [ SCSetContainer( Asset::ID ; theContainer ) = "ERROR" ]
Show Custom Dialog ["Could not store this file"; SCLastError]
End If

戻り値

エラーメッセージ

SCMove ( 旧フォルダパス ; 新フォルダパス {; ファイル名 } )

SuperContainerサーバー上でファイルを移動します。ダウンロードはしません。FileMakerで何らかの理由でフォルダパスを変更し、関連するSuperContainerのファイルを移動させたい場合に便利です。

旧フォルダパスにファイルが存在しない場合、この関数はエラーを返します。

重要:この関数をコールする前に、SCSetBaseURL をコールしてSuperContainerサーバーの場所を設定する必要があります。

ローカルのファイルシステム上でファイルを移動するには、SCMoveLocalFile関数を使用します。

# 移動する
Set Variable [$result; Value:SCMove( Get( LayoutTableName ) & "/" & ID ; Get( LayoutTableName ) & "/" & DestID; "filename=New Word Document.docx")]
# 移動中のエラーをチェックする
If [$result = "ERROR"
Show Custom Dialog ["Could not move file"; SCLastError]
End If
# Webビューアを更新して新しいファイルを表示する
Set Web Viewer [Object Name: "webviewer"; Action: Reload] 

パラメータ

  • 旧フォルダパス
    • 移動したいファイルの、元のフォルダパス。
  • 新フォルダパス
    • ファイルを移動する先のフォルダパス。
  • キーと値のペア
    • キー = 値のペア(オプション)。オプション:filename。例えば、filename=myNewName.txt。

戻り値

正しく移動された場合は、1。エラーが発生した場合は、"ERROR"。

SCMoveLocalFile ( ソースファイル ; 移動先ファイル )

ファイルを、ソースファイルから移動先ファイルへローカルで移動します。SuperContainerサーバーとまったく通信しない便利な関数です。SCSetContainer関数でファイルをSuperContainerにアップロードした後に、作業していたディレクトリからファイルをこの関数で移動できます。

SuperContainerサーバー上でファイルを移動するには、SCMove関数を使用します。

パラメータ

  • ソースファイル
    • 移動されるファイルまたはディレクトリ。
  • 移動先ファイル
    • ソースファイルが移動する先のファイルまたはディレクトリ。

参考: SCScanDirectorySCMove

戻り値

正しく移動された場合は、FMType 1。ファイルを移動できなかった場合は"ERROR"。

SCScanDirectory ( パス {; 再帰 } )

ローカルのディレクトリをスキャンしてファイルを調べます。この関数を使ってディレクトリ中の全ファイルのリストを取得し、FileMakerでリストを反復して、SCSetContainer関数を用いてSuperContainerのインスタンスに複数のファイルを追加することができます。

パラメータ

パススキャンするディレクトリへのパス。再帰サブディレクトリに再帰するか、またはトップレベルのディレクトリ中のファイルのみを返すか。

参考: SCMoveLocalFile

戻り値

指定したディレクトリ下にある、ディレクトリを除くすべてのファイルのリスト。エラーが発生した場合は、"ERROR"。

SCSetBaseURL ( SuperContainerのURL { ; ユーザ名 ; パスワード ; キー1=値1 ; … } )

プラグインが使用するSuperContainerサーバーのインスタンスの場所を設定します。SuperContainerサーバーにアクセスするすべてのプラグイン関数をコールする前に、この関数をコールする必要があります! コンピュータ上でスタンドアローンのSuperContainerサーバーを使用している場合は、ホスト名としてlocalhostを使用できます。

SCSetBaseURL("http://localhost:8020/SuperContainer/Files")

ライブデプロイメントに使用する際には、SuperContainerの共有インスタンスを動作させるコンピュータのIPアドレスの実ホスト名を指定する必要があります。例を以下に示します。

SCSetBaseURL("http://server.mycompany.com:8020/SuperContainer/Files")

有効なURLを指定していても指定したホストに動作中のSuperContainerサーバーが存在しない場合、ベースURLは設定されますが、"ERROR"のエラーコードが返されます(詳しいエラーメッセージを取得するにはSCLastErrorを使用します)。

スタンドアローンのSuperContainerサーバーのデフォルトのポート番号は8020番であり、FileMaker Serverで展開している場合には80番であることに留意してください。

一般的には、この関数はFileMakerデータベースのスタートアップスクリプトでコールします。この関数は、FileMakerを起動するたびに、またはベースURLを変更するときに、一度だけコールする必要があります。

注意: selfSignedSSLなどの名前のついたパラメータを指定すると、ユーザ名とパスワードのフィールドが必要になります。これらのパラメータは並び順に依存するためです。ユーザ名/パスワードが使用されていない場合は、代わりに空のダブルクオーテーション("")を挿入します。例を以下に示します。

SCSetBaseURL("http://localhost:8020/SuperContainer/Files" ; "" ; "" ; "selfSignedSSL=1")

パラメータ

  • SuperContainerのURL
    • プラグインが使用するSuperContainerのインスタンスのURL。例えば、http://fmpro.example.com:8020/SuperContainer/Files 
  • ユーザ名
    • ユーザ名(オプション)。SuperContainerサーバーがパスワードで保護されている場合、ここでユーザ名を入れます。
  • パスワード
    • パスワード(オプション)。SuperContainerサーバーがパスワードで保護されている場合、ここでパスワードを入れます。
  • キーと値のペア
    • キー = 値のペア(オプション)。オプション:selfSignedSSL。たとえば、example selfSignedSSL=1。

戻り値

正しく処理された場合は、1。(空、または無効なURLのために)エラーが発生した場合は、"ERROR"。

SCSetContainer ( フォルダパス ; データ {; パラメータ1 ; パラメータ2 ; ..… )

FileMakerのオブジェクトフィールドからデータをSuperContainerのファイルにプッシュします。SuperContainerのファイルがすでに存在する場合は、上書きします。

注意:データのパラメータが空の場合、この関数はSuperContainerのファイルを削除しません。この関数ではなく、SCDelete関数を使用してください。

重要:この関数をコールする前に、SCSetBaseURLをコールしてSuperContainerサーバーの場所を設定する必要があります。

レイアウト上のWebビューアを更新して新たにアップロードされたファイルを表示したい場合は、アップロードのスクリプトに「Set Web Viewer [Action: Reload](Webビューアの設定[処理: 再読み込み])」スクリプトステップを追加します。このステップが、即座に更新するトリガーとなります。

オプションのパラメータ

SCSetContainer関数に、以下のパラメータを追加で渡すことができます。

  • filename
    • filename=desired_name で、ファイルに対し目的のファイル名を指定します。
  • showProgress
    • showProgress=false を使うと、アップロード中のプログレスバーが表示されなくなります。

例を以下に示します。

Set Variable[$result =
        SCSetContainer(
                "Documents/D23" ;
                Documents::Legacy Container ;
                "filename=newName.txt" ;
                "selfSignedSSL=1" ;
    )
]
# アップロードする
Set Variable [$result; Value:SCSetContainer( Get( LayoutTableName ) & "/" & ID ; SCChooseFile)]
# アップロード中のエラーをチェックする
If [$result = "ERROR"
Show Custom Dialog ["Could not upload file"; SCLastError]
End If
# Webビューアを更新して新しいファイルを表示する
Set Web Viewer [Object Name: "webviewer"; Action: Reload]

パラメータ

  • フォルダパス
    • SuperContainerのファイルを一意に特定するパス。
  • データ
    • 保管されているデータで、通常はオブジェクトフィールド。URL(例:http://server/someFile 、または file:///Users/Shared/aFile )も、ファイルのパス(例:/Macintosh HD/Users/Shared/aFile、またはC:¥Documents and Settings¥aFile)も使用できます。
  • パラメータ
    • オプションで追加するパラメータ(filename)。

戻り値

正しく処理された場合は、1。エラーが発生した場合は、"ERROR"。

SCVersion

SuperContainer Companion Pluginのバージョン番号を返します。

戻り値

バージョン番号。例:1.32。