マニュアル‎ > ‎

[排他制御|iill_MMpStatus]

iill_MMpStatus( int )

MailMakerPop+.fmx 2.0.1.3 以降

構文
iill_MMpStatus( 0 or 1 )

引数
0 or 1

1 = プラグインの使用開始を宣言する。
0 = プラグインの使用終了を宣言する。

戻り値
0 or タイムスタンプ

引数(1)の場合、
別のプロセスで既にプラグインの使用開始宣言がされている場合、
その時のタイムスタンプ
プラグインの使用開始宣言がされていない場合、
0

引数(0)の場合、
0

説明
FileMaker Server スケジュールでMailMakerPop+ for FileMaker Server】を使用する場合の排他制御の為に使用します。
FileMaker Pro(クライアント)でMailMakerPop+】を利用の場合は、特に「iill_MMpStatus( int )」関数を設定する必要は、ありません。

MailMakerPop+ for FileMaker Server】は、プラグイン内部で情報(メモリ)を共有しています。
その為、FileMaker Server スケジュールでMailMakerPop+ for FileMaker Server】を利用したFileMakerスクリプトの実行が重なってしまうと動作不良になります。

FileMaker Server スケジュールから実行する場合、「MailMakerPop+ for FileMaker Server」を使用したスクリプトの実行が、重ならない様に設定すると共にiill_MMpStatus( int )」関数で明示的に排他制御を行なって下さい。

※注意!
iill_MMpStatus( int )」関数は、プラグインの使用開始・終了のフラグを立てているだけで、この関数自体で排他制御をしているわけではありません。
排他制御は、FileMakerのスクリプトで行なって下さい。



例:
#プラグインの使用開始を宣言する。
変数を設定 [$MMpStatus; 値:iill_MMpStatus(1)]

既にプラグインの使用開始宣言がされている場合、
その時のタイムスタンプ 例:2013/3/7 17:18:30 が返ります。

プラグインの使用開始宣言がされていない場合、「0」 が返ります。

戻り値が「0」の場合、処理をすすめる。
戻り値が タイムスタンプ 例:2013/3/7 17:18:30 の場合、処理を停止するようにFileMakerスクリプトを設定して下さい。

#プラグインの使用終了を宣言する。
変数を設定 [$MMpStatus; 値:iill_MMpStatus(0)]

※別のプロセスの宣言でも強制的に「0」を設定します。



#例では、何かしらのトラブルでプラグインの使用開始状態のままで20分以上立っている場合は、強制解除し、スクリプトの処理を続行するようになっています!

変数を設定 [$MMpStatus; 値:iill_MMpStatus(1)]
If [$MMpStatus ≠ 0]
    変数を設定 [$MMpStatusTS; 値:GetAsTimestamp ( $MMpStatus )]
        #20分以上立っている場合は、強制解除
        If [$MMpStatusTS+1200 < Get ( タイムスタンプ )]
            変数を設定 [$MMpStatus; 値:iill_MMpStatus(0)]
            変数を設定 [$MMpStatus; 値:iill_MMpStatus(1)]
        Else
            #Log記録|MMPLib_Error_Log
            変数を設定 [$Log; 値:"-ER|" & Get ( アプリケーションバージョン ) & "|スクリプト:lib_Test_login...|" & $MMpStatus & " から他のスクリプトで   「MMP+」が、利用されています。|" & MMPLib::gAccount & "/" & MMPLib::gServer]
            現在のスクリプト終了 [結果: $Log]
        End If
End If
#
Comments