フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
ご連絡ありがとうございます。
[サブルーチン(起動時での実行処理)]のアクションイベントの3番目の処理として、「アプリケーションを終了する()」が接続されているため、バッチファイル作成後すぐにアプリケーション終了処理に移っており、ファイル削除が実行されているものと思われます。
アプリケーションビルダー使用時の例外事項として、「アプリケーションを終了する()」を行ってもアプリケーションビルダー自体は終了せず維持されるため、[フレーム]表示が無いときは見た目で起動/終了が判別できないことがあります。
取り急ぎ、[サブルーチン(起動時での実行処理)]のアクションイベントの3番目の処理をご確認ください。よろしくお願い申し上げます。
- この返信は9ヶ月、 3週前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
ファイルの操作については[ファイル]コンポーネントを使用します。
[ファイル]にメソッド「ファイル名を設定する(String)」などでファイルを指定し、メソッド「削除(配下に何も存在しない場合)()」を実行します。他に「ディレクトリ、およびその配下を全て削除()」もあります。
確認メッセージなどは表示されず、ごみ箱に残ることもなく簡単に削除されてしまうので、注意が必要です。以上、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスターOSシャットダウン時にアプリケーション終了イベントの処理を実行させることができるかという件について回答いたします。
検討いたしましたが、OSシャットダウン時の処理でMZプラットフォームのアプリケーションのアプリケーション終了イベントの処理を実行させるのは、大変申し訳ございませんが現在のところ難しいです。[タイマー]等で一定の時間が来たら、終了処理を行うといったことはできるかと思います。
ご不明な点、ご要望等ございましたら、ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
取り急ぎ、アプリケーションの実行中にOSをシャットダウンすると、アプリケーション終了イベントは実行されるかというご質問について回答します。
OSシャットダウン時に動いているMZのアプリケーションはJava実行環境が強制終了という形になりますので、アプリケーション終了イベントの処理は実行されません。OS終了時の対処につきましては可能かどうか検討いたしますので、少々お時間を頂ければと存じます。よろしくお願い申し上げます。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
sqldum実行前に逐次batファイル中のファイル名の記述を変更する必要がありますが、[テキストファイル入力]を使ってbatファイルの内容を読み込み、現在日時の日付に該当箇所を置換えて[テキストファイル出力]で出力・保存することが考えられます。
現在日時の取得には[システム情報]または[カレンダー]を使用します。文字列の置き換えには[文字列格納変数]を使いますが、置き換え対象となる文字列は、正規表現で「[0-9]+」(1桁以上の0から9までの数字)と「_〇〇」の部分を組み合わせて指定します。
数字だけだと文中の他の数字を拾ってしまう恐れがあるため接尾の「_〇〇」も一緒に指定した方が良いかと思います。上記置換え処理の確認のため、簡単なサンプルファイルを添付いたしますので、ご確認ください。
ご不明な点、ご要望等ございましたら、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
工程管理アプリケーションのデータベース設定用のバッチファイルを流用しているため、「pause」コマンドが残っています。
バッチファイルの一番最後の行の「pause」を削除してお試しください。
よろしくお願いいたします。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
購買管理チュートリアルで使用しているローカルMySQLの管理画面は、元々工程管理アプリケーション簡易版で使用している複合コンポーネントと同一のものです。チュートリアルを簡単に進めるためにコピーして使用しています。
大変申し訳ございませんが、工程管理アプリケーション簡易版ではダンプの生成の機能はデータ連携機能を使用している場合のみ有効で、また購買管理アプリケーション内ではこの機能を使用しておりません。
ダンプ生成のボタンはMySQLdump.exeへのパスを指定するものです。アプリケーション内でダンプ処理は行われておりません。大変お手数をお掛けして申し訳ございませんでした。ボタンを押したらデータベースの内容をダンプファイルへ出力する処理を行うには[外部プログラム通信]でバッチファイルを起動することが考えられます。
1)バッチファイルを準備します。
ファイルは例えば以下のように準備できます。
(1)C:\MZPlatform\4.0\AP_DATA\Production内のdbsetup80.batをWindowsアプリのメモ帳で開き、別名で保存します。(2)以下の内容を確認します。MySQLのフォルダーの位置やバージョンをご自分の環境に合わせてご確認ください。
——————————-
「set MYSQL_HOME=C:\Program Files\MySQL\MySQL Server 8.0
if not exist “%MYSQL_HOME%” set MYSQL_HOME=C:\Program Files (x86)\MySQL\MySQL Server 8.0
“%MYSQL_HOME%\bin\mysql.exe” -u root -p < production.sql」 ------------------------ (3)3行目のみを書き換えます。他は変更しません。 3行目は書いていただいた通り、以下のようになるかと思います。 "%MYSQL_HOME%\bin\mysqldump.exe" –no-tablespaces -h (ホスト名) -u (ユーザー名) -p (DB名) > (ローカルPCのパス)(4)ファイル名を確認して保存します。
2)[ボタン]のアクションイベントの接続先処理に[外部プログラム通信]を設定します。メソッドは「標準のアプリケーションでファイルを開く(File)」です。引数にバッチファイルまでのパスを指定します。
3)ボタンを押すとmysqldump.exeが起動されます。
以上お試しいただき、ご不明な点やご要望等ございましたら、再度ご連絡いただければ幸いです。どうぞよろしくお願い申し上げます。
- この返信は10ヶ月、 1週前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
幾つか方法が考えられます。
1)複合コンポーネントの参照機能を利用する
例えばGUI複合コンポーネント内に接続情報を作成し、この複合コンポーネントを各アプリケーションから参照して利用します。
複合コンポーネントの参照機能については『アプリケーションビルダー操作説明書』のpp.118-120をご参照ください。
ただし、参照する複合コンポーネントは同一PC内あるいはネットワークドライブなど参照できる範囲内に置く必要があります。
また、複合コンポーネントの編集をした場合は、アプリケーションとは別に複合コンポーネントのみの保存も必ず行ってください。2)iniファイルを利用する
iniファイルに例えばユーザーとパスワード用の項目と値を新たに作成し、その項目を読み込みます。ただし、各アプリケーション内にiniファイル読み込みとそれを利用するための処理を作成する必要があります。
ユーザー会のHPからダウンロードできるスマート製造ツールキットのアプリケーションでは、mzapp.iniというファイルを作成し、その値を読み込んでいます。以上ご検討いただき、ご不明な点がございましたら、どうぞご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
一般的にはファイルサイズが小さい方が読込みの時間は掛からないかと存じます。
ただしMZ上に一旦ロードしてしまえば、どちらのファイルタイプでも動作に変わりはありません。
対策していただいているようですが、どうしても画面構成部品上に大きなデータが残っているとどファイルサイズは大きくなります。将来的にJava実行環境を変える際の煩雑さを避けるためにXML形式での保存を開発した経緯もあり、ローダーでの起動もぜひご検討ください。
ご不明な点がございましたら、ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスター追記です。
MZ Platformの使用バージョンを変更する場合、ユーザーPCにインストールされているMZも同じバージョンに統一し、そのバージョンに合わせたバイナリファイルを使用します。
ビルダーでの編集時だけでなく、ローダーでも使用するJavaのバージョンが違うと読み込めないので注意する必要があります。 -
投稿者投稿