みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
有難う御座います
このまましばらく様子を見てみます
FileMakerServer
いつもお世話になっております
OBDC接続のMySQLにFMSのデータを同期させるスクリプトを各テーブル分作り、スクリプトスケジュール用に新たにスクリプト作って、その中に「スクリプトの実行」を並べてみたのですが、実際の動きとしては最初のスクリプトが終わる前に次のスクリプトが始まってしまうのでしょうか
もしそうであれば、各テーブルごとのスクリプトを一つのスクリプトに羅列した方が良いかと思いご相談させて頂きました。
スクリプトスケジュール用スクリプトD
スクリプト実行[指定:一覧から;「スクリプトA」; 引数: ]
スクリプト実行[指定:一覧から;「スクリプトB」; 引数: ]
スクリプト実行[指定:一覧から;「スクリプトC」; 引数: ]
【経過報告】最適化保存を行いましたが、症状が再発しました。
名前を付けて保存→データなし→データのインポートを試してみます
ファイルの損傷を疑いますが。
そちらでしたか...
とりあえず最適化保存を行って様子を見てみます。
有難う御座いました
いつもお世話になっております
WindowsServer2019でFMS17をインストールして運用しています。
2か月に1度とかのレベルではあるのですが、突然fmappでの接続が出来なくなる事象が発生致します。
原因としては拡張アクセス権設定のfmappがすべて消えており、完全アクセス権アカウントのfmapp接続も消えてしまっているのでFMSでデータベースを停止させて、ローカルのデータベースフォルダから直接開いて拡張アクセス権を再設定する事で復旧致します。
同じような経験をされた方や、解決方法をご存じの方がいましたらアドバイスをお願い出来ればと思います。
完全アクセス権のアカウントは私の個人アカウントと、予備としてadminのアカウントの2つだけなので、誰かが変更する事は無いと思います。
はいFMデータ→MySQLの一方向のみで大丈夫です
一覧表示は編集不可にしていて編集する時は同レコードをフォーム形式で開いているので閉じるボタンのスクリプトで都度MySQLに書き込みという手も考えたのですがクライアント側に任せるより
サーバーのスクリプトスケジュールの方が良いかな?と考えていました。オブジェクトの扱いに関しては未知の世界で次の課題になります...
同期というのは、FMのデータをMySQLに入れるだけ(片方向)でいいのですか?
ポータルの子で使われないテーブルなら、onRecordCommitのトリガスクリプトを使う(1レコードごとに変更時に即同期)ことも考えられますが、やったことはないです。レイアウトに依存するので危険?
オブジェクトフィールドがどうだったかな...かなり前にはBASE64でテキスト化して保存しないとだめだった記憶がありますが...
WindowsServer2019(FilemakerServer17)
Windows10(Filemaker15~17)
外部サーバーMySQL(5.7.40)
この構成で外部レンタルサーバー(KAGOYA)のSQLサーバーとの接続は出来て、リレーションシップにもMySQLのテーブルが表示されていてユニークキーであるシリアルNo(数値)でリレーションを組んでいます。
やりたい事としてはFilemakerServerの一部データ(テキスト・日付・内部格納PDF)をMySQLのサーバーの同名フィールドと同期をしたいと考えています。全レコード数としては60,000レコードくらいですが、更新は有っても数百レコードだと思います
単純にn時間ごとに更新時刻で抽出してLoopで回す手もあると思いますが、出来るだけ負荷をかけずに同期をするにはどうしたらいいか考えていましたが、こちらでお聞きした方が素敵な回答がもらえるかと思い甘えに来ました。
ただ、SQLに関しては超初心者なのでSQL文に関してはコピペしか出来ないかもです。
皆様のお力添えをお待ちしております。
FileMakerServer17(WindowsServer2019)
FileMakerPro15~17の混在(Windows10)
ローカル環境が8割、外からのSSL接続が2割
テーブルA:受注案件データ
テーブルB:所在地ログ[現在は1,000レコードくらいですが商品が移動する度に増え続ける]
テーブルAーテーブルBはシリアルNo(数値、索引設定済)でリレーション[作成時タイムスタンプの降順でソート]
テーブルAのリスト形式の表示[全体約60,000レコードから必要な約4,000レコードを該当レイアウトを開く時にスクリプトで検索済み]に、テーブルBの所在地フィールド[テキスト]を表示させるとテーブルAのスクロールがかなり遅くなるかと思います。
テーブルAにも所在地フィールド[テキストを]作っておいて、テーブルBの所在地ログの新規レコード作成時に、リレーション先のテーブルAの所在地フィールドに同じ書き込みをする事も検討しましたが、同タイミングでテーブルAを誰か他の人が編集中の可能性もあり躊躇しています。
もし何かいい方法があればご教示頂きたいです
qb_dp様
「Quote() をはずすだけ」の方で解決致しました。
いつもありがとうございます。
いつもお世話になっております
こちらの返信を参考にファイルを挿入で特定フォルダを開くスクリプトを組んでいましたが、いつのまにかおかしくなり、フォルダパスの頭にある\\が\\\と3つになってしまっておりフォルダを開く事が出来なくなりました。
もちろんエクスプローラーで頭の\を一つ消せば正しいパスを開いてはくれます。フォルダパスを入力しているフィールドの入力値を確認しましたが、やはり\は2個から始まっていて、Event を送信のPowerShell内容もフィールド名以外は同じでした。
環境:FMS17・FM17・Windows10
症状:
フィールド値:\\192.168.100.200\親フォルダ\子フォルダ
PowerShell実行値:\\\192.168.100.200\親フォルダ\子フォルダ
PowerShellを全く理解出来ておらずご教示頂けると助かります
チポ様
いつもお世話になります
大変遅くなりましたが教えて頂いた関数で問題無く組む事が出来ました
有難う御座いました
FM16 Windows10
FMS15 WindowSserver
お世話になります
上記で運用しているデータベースですがリスト表示の左端に「詳細」ボタンをつけてボタンを押すと新規ウインドウで詳細(フォーム形式)が表示される作りになっています。
詳細は「閉じる」ボタンで閉じて、閉じる時に抽出用の値(数値)を計算式で計算した値(数値)にスクリプトで上書きしてから閉じるようにして、一覧表示での検索(抽出)を早くする工夫をしてみました。
ここまでは良かったのですが、実際の利用者が詳細画面の入力後に「閉じる」ボタンを押さず裏に残っているリストで別レコードの「詳細」を押して次の案件に行くので数値の更新がされないケースが増えて来ました。
そこで「詳細」ウインドウが開いているかを判断して、開いていれば先に値の更新をしてから該当レコードを開くようにスクリプトを組みたいのですが、Get(ウインドウ名)だと「詳細」ボタンのあるメインウインドウの名前しか拾えずに行き詰っています。
イメージ的には
if(「詳細ウインドウ」有り;「詳細ウインドウ」を選択、値の更新、「詳細ウインドウ」を閉じる、関連レコードを新規ウインドウ「詳細ウインドウ」で開く;関連レコードを新規ウインドウ「詳細ウインドウ」で開く)
という感じです。
皆様のお知恵もしくは代替案を教えて頂ければと思います
https://fm-aid.com/bbs2/viewtopic.php?id=6900
上記トピックの続きのような質問になります。
WindowsServer2012R2 FMServer15(レンタルサーバー)
Windows10 FMPro
拠点A~C拠点は相互VPNでつながっています。(IPは仮の値です)
拠点A デフォルトゲートウェイ192.168.1.1
拠点A ファイルサーバー192.168.1.100
拠点B デフォルトゲートウェイ192.168.10.1
拠点C デフォルトゲートウェイ192.168.100.1
レンタルサーバー デフォルトゲートウェイ192.168.150.1
拠点AにFMServerではない、普通のファイルサーバー(192.168.1.100)がありスクリプトの
「URLを開く」で拠点Aのファイルサーバーを開いているのですが、外出先から誤ってVPN
接続せずに「URLを開く」スクリプトを走らせるとそのままフリーズしてしまいます。
それを回避しようとGet ( システム IP アドレス )を使ってみましたが、拠点B及び拠点Cの
スタッフは自拠点へVPN接続を行う為、例えば拠点Bの社員だと戻り値が
「拠点BのIPアドレス 、モバイルルーターのIPアドレス」
になってしまい、拠点Aの値が拾えないです。
何かおすすめの方法ありますでしょうか?
Shin様
いつもありがとうございます。
やはり難しいのですね...
ファイル統合までの期間ですので手入力で頑張ってもらいます!
Windows7 FileMakerPro15
WindowsServer2012R2 FileMakerServer15
過去のトピックやGoogle検索でみつからなかったので、ご教授下さい。
ファイルA→アカウント名:各自の社員番号 パスワード:各自で設定(30日で強制更新)
ファイルB→アカウント名:共有で固定 パスワード:管理者が設定してメールで共有(定期更新)
元々はファイルBを社内で共有していたのですが、ログ等のセキュリティを考えファイルAを新たに作成して
データベースを作り直しています。こちらは各自にアカウントを持たせてパスワードも各自で設定する形に
したのですが、データベースの構築が追いつかずとりあえず過去の顧客DB等は旧ファイルをリレーションさせて
参照しておいて、将来的にはファイルAに統合しようと思っています。
リレーションは問題なく組めて機能的には動く状態ではあるのですがファイルBを参照する際に、当然ながら
ファイルBのアカウント名とパスワードを求められます。仮にファイルBにファイルAと同じアカウントを
作成したとしても30日更新のタイミングのずれからパスワードがややこしくなるので、できればファイルB
のアカウント名とパスワードをスクリプトで指定できればと考えているのですが何か方法はありますでしょうか?
宜しくお願い致します。
qb_dp様
返信が遅くなり申し訳ありませんでした。
教えて頂いた内容で問題なくファイルを添付する事ができました。
ありがとうございます!
Windows7 FileMakerPro15
WindowsServer2012R2 FileMakerServer15
http://joy-h.com/bbs2/viewtopic.php?id=6897
前に上記で質問させて頂いた者です。
メール送信は可能になったのですが添付ファイルが添付されずご相談になります。
スクリプトA
変数を設定 $$ファイル名:Get(デスクトップパス)&"【題名】 " & フィールド名 & ".pdf"
レコードをPDFとして保存:$$ファイル名
スクリプト実行[スクリプトB]
スクリプトB
宛先、CC、件名、本文をの変数に格納
Eventを送信で下記の記述
"powershell -windowstyle hidden -Command \"
$Outlook = New-Object -ComObject Outlook.Application;
$Mail = $Outlook.CreateItem(0);
$Mail.Display();
$Mail.To = '"& $宛先 &"';
$Mail.Cc = '"& $Cc &"';
$Mail.Subject = '"& $件名 &"';
$Mail.Body = '"& $本文 &"';
$Attachment=New-Object Net.Mail.Attachment('" & $$ファイル名 & "')
$Mail.Attachments.Add($Attachment)
add-type -AssemblyName microsoft.VisualBasic;
add-type -AssemblyName System.Windows.Forms;
$ps = Get-Process | Where-Object {$_.Name -eq 'OUTLOOK'};
foreach($process in $ps){
if($process.MainWindowTitle -ne '') {
if($process.MainWindowTitle -match 'メッセージ') {
[Microsoft.VisualBasic.Interaction]::AppActivate($process.ID);
}
}
}
\""
outlookが立ち上がり、宛先、CC、件名、本文は問題ないのですが、添付ファイルが添付されません。
デスクトップへのpdf保存はできております。何か記述でおかしい箇所があればご教示頂ければと思います。
※スクリプトA、スクリプトBに分けているのは大きな意味はありません。長文にすると分かりにくくなるので分割しただけです。
この質問と同じ悩みを持っているのですが、レスもないという事は不可能という事でしょうか?
見出し線欲しいです...
Hiro様
何から何まで本当に有難う御座いました。
お陰様でイメージ通りの仕組を作ることが出来ました。
とはいえコピペでクリアしてしまったので根本的な知識に関することが伴っておりませんが...
まずは、いただいた計算式を一つずつ解読していきます。
今後とも宜しくお願い致します。
Hiro様
大変遅くなりましたが、集計結果を表示するところまでは出来ました。
ただ今回「検索絞込みレコードを集計対象にしたい」にしたいのですが下記の部分が理解出来ませんでした。
>一覧集計フィールドで対象レコードのレコードID一覧リストを得て、
>サンプル全使用リレーションにこの照合条件を追加条件設定してください。
フィールドタイプ:集計、繰り返しの集計:全体(個別)でIDを一覧にするフィールドを作ってみましたが
マスターテーブル2とリレーションを張ろうにもグレーアウトしていて選択出来ませんでした。
恐れ入りますが上記の部分をご教示下さい。
Hiroさん
すみません解読中にわからないので早速質問させてください。
「使用年数キー」フィールドの計算式 Min(使用年数; 30) ですがMin(フィールド名)はそのフィールド内で一番小さな数字を返す関数だと記憶しておりますが「;数字」をつける事によってフィールドの数字が「;数字」より大きい場合は「;数字」の数を返すという関数に変わるのでしょうか?
本当に無知で申し訳ありません。
Hiroさん
すばらしい!のひと言です!
まさにやりたいのはこんな感じなのですがサンプル見ても、わたしの知識ではすぐに理解できないですwww
いただいたサンプルを読み解いて、不明点があれば(きっとあります)再度ご質問させていただきます!
本当にいつもありがとうございます。
環境:Windows8、Windows10、 FMPro15、WindoesServer2012 FMServer15
いつもお世話になっています。
数字フィールドに入力している使用年数(日付ではなく整数のみ)を年数毎(1、2、3、〜29までは1年毎で30以上は一まとめ)
に件数を棒グラフ化したいのですが、カテゴリが2つ(A or B)あります。
以下のような計算式でフィールドを60個(集計を入れると120個)作れば出来る事は理解しておりますが
if(カテゴリフィールド = "A" and 数字フィールド = 1;1;0)
グラフだけの為に120フィールドも増やすのは無駄だと思いますので何かいい方法があれば教えて頂きたいと思います。
また、カテゴリを選択式(選択後に検索してレコード抽出)にして、カテゴリ=Aのみ・カテゴリ=Bのみ・両方(積み上げグラフ)ができれば完璧です。
ちなみに集計対象のレコード数は100〜2000くらいで、複数の人が同時に操作していますので全置換は好ましくないです。
何卒よろしくお願い致します。
いつもお世話になります。
相談というより、何かご存知の事があれば教えて頂きたいと思い書かせて頂きます。
色々な操作時にスクリプトでログを取っていて、作業内容を変数に格納してからログテーブルのウインドを小さく開き
スクリプトで新規レコードを作成して、ログテーブルの作業内容フィールドに変数の作業内容を書き込んでいます。
今日起こった現象としては上記の作業内容は問題なく書き込まれているのですが下記自動化フィールドが空白になっていました。
・作成日フィールド:入力値の自動化→作成情報「タイムスタンプ(日付と時刻)」
・作成者フィールド:入力値の自動化→作成情報「アカウント名」
・持続IDフィールド:入力値の自動化→計算値「Get(持続ID)」
・デバイスフィールド:入力値の自動化→計算値「Get(デバイス)」
・プラットフォームフィールド:入力値の自動化→計算値「Get(システムプラットフォーム)」
※値変更の禁止にはレ点を入れていますのでクライアントが消すことは不可能です
しかも特定のクライアント端末のみで今日の朝から昼過ぎまでのログのみ空白で、それ以降のログ及び他のクライアントに関しては
問題なく記録されております。
すでに何もせずに解決済み?なので再現もできないのですが、皆様の経験上何かご存知の事があれば教えて頂ければと思います。
サーバー環境:WindowsServer2012 R2 FMS15
クライアント環境:Windows8.1 FMP15
qb_dp様
なるほど!
直接指定するのではなく、拡大を繰り返して元のズームサイズに戻せば良いんですね!
勉強になります。
[ Generated in 0.009 seconds, 7 queries executed - Memory usage: 671.39 KiB (Peak: 725.55 KiB) ]