2018年4月13日金曜日

FileMaker Server を監視して停止していたら起動する。

FileMaker Server を監視して停止していたら起動する。

OS:Windows
タスク スケジューラ 設定
名前:サービスを監視|FileMaker Server

powershell -Command "$SN='FileMaker  Server';$S=Get-Service -Name $SN;$S.Status;if($S.Status  -eq 'Stopped'){Start-Service -Name $SN -PassThru;}"

2018年3月8日木曜日

PowerShellでメールを受信|Receive email with PowerShell,OpenPop.NET

<#
OpenPOP.NET code repository http://hpop.sourceforge.net/
OpenPop.NET 日本語情報トップページ - OSDN : https://ja.osdn.net/projects/sfnet_hpop/
#>

Add-Type -Path "C:\OpenPop.NET 2.0.5\binaries\unsigned\OpenPop.dll" ;

$hostname="POP_Server";
$port=110;
$useSsl=$False;
$username="POP_Account";
$password="POP_Password";

$client = New-Object OpenPop.Pop3.Pop3Client

$client.Connect($hostname, $port, $useSsl);
$client.Authenticate($username, $password);

$messageCount = $client.GetMessageCount();
#$client.GetMessageUids();

$Message=$client.GetMessage(1);

$textVersions=$Message.FindAllTextVersions();
$TEXT= New-Object System.Text.StringBuilder;
$HTML= New-Object System.Text.StringBuilder;
foreach ($textVersion in $textVersions)
{
$MediaType=$textVersion.ContentType.MediaType;
$IsAttachment=$textVersion.IsAttachment;
IF($MediaType -eq "text/plain" -And $IsAttachment -eq $False ){
$TEXT.Append($textVersion.GetBodyAsText())| Out-Null;
}elseif($MediaType -eq "text/html" -And $IsAttachment -eq $False){
$HTML.Append($textVersion.GetBodyAsText())| Out-Null;
}
}

$PATH_LIST= New-Object System.Collections.ArrayList;
$attachments=$Message.FindAllAttachments();
 foreach ($attachment in $attachments)
  {
$PATH="C:\Users\USER\Desktop\attachment\" + $attachment.FileName;
  $attachment.Save($PATH);
  $PATH_LIST.Add($PATH)| Out-Null;
}

$Message.Headers.Subject;
$Message.Headers.From.Address;
$Message.Headers.From.DisplayName;
$Message.Headers.To.Address;
$Message.Headers.To.DisplayName;
$Message.Headers.Date;
$Message.Headers.DateSent;
$TEXT.ToString();
$HTML.ToString();
$PATH_LIST;

2018年2月17日土曜日

FileMaker Go や FileMaker Server 上のスクリプトのデバッグ。|Debugging scripts on FileMaker Go and FileMaker Server.

FileMaker Go や FileMaker Server 上のスクリプトのデバッグって中々困難です。
以下の方法を使えば、FileMaker Go や FileMaker Server 上で動作しているスクリプトを一時停止し、その時のフィールドや変数の値をPC上で確認することが出来ます。


動作検証
FileMaker Go 16
Windows 10

スクリプト 例:
変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
/*何らかの処理*/
変数を設定 [$n; 値:$n+1]
End Loop


上記例の「/*何らかの処理*/」の所で一時停止し、変数 $n の値をPCで確認する事ができます。


スクリプトを実行すると、FileMaker Go のスクリプトが一時停止状態となり、


PC上で、変数 $n の値が確認出来ます。

[はい(Y)]をクリックすると、FileMaker Go のスクリプトが再開されます。

それでは、デバッグするための準備をしていきましょう。
この処理を行うには、

ダウンロードし、展開した「ProcessMakerTL.exe 」を任意の場所に保存。
例では、C:ドライブとします。
Windowsの「ファイル名を指定して実行」(Windowsキー + R)で以下のようにして「ProcessMakerTL.exe」を起動します。
"C:\ProcessMakerTL.exe" "address=*" "port=8081"

「ProcessMakerTL.exe」が起動します。

「ProcessMakerTL.exe」が起動しない場合は、ProcessMakerTL.exe のファイルプロパティーを確認し、ブロックされている場合は、[ブロックの解除]をおこなって下さい。

「Windowsファイヤーウォールを介したアプリまたは機能を許可」に「ProcessMakerTL.exe」を追加して下さい。
※その他、セキュリティーソフトで通信を止められる場合があります。
 セキュリティーソフトで「ProcessMakerTL.exe」の通信を許可して下さい。

デバッグ用ファイル。
FMDebugger.fmp12 : https://sites.google.com/site/processmakertl/example/debugging-scripts-on-filemaker-go-and-filemaker-server

デバッグしたいスクリプト
スクリプト 例:

変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
/*何らかの処理*/
変数を設定 [$n; 値:$n+1]
End Loop


太字部分を追加。

変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
フィールド設定 [FMDebuggerTEST::Value; $n]
ウインドウ内容の再表示 []
スクリプト実行 [「fmDebugger(arg)」 , ファイル: 「FMDebugger」; 引数: 
"$CAPTION=" & Quote ( Get ( スクリプト名 ) ) & 
";$TEXT=" & Quote ( "$n=" & $n & ¶ & Get ( アプリケーションバージョン ) )
]
変数を設定 [$Result; 値:Get(スクリプトの結果)]
If [ not IsEmpty ( FilterValues ( $Result ; "No" ) )]
全スクリプト終了
End If
変数を設定 [$n; 値:$n+1]
End Loop

ファイル:FMDebugger.fmp12 のフィールド:URi を「ProcessMakerTL.exe」を起動したPCのIPアドレスに変更。

FileMaker Go のローカルでデバッグする場合は、ファイル:FMDebugger.fmp12 をFileMaker Go に保存すればOK。