作成した返信
-
著者投稿
-
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が起動されます。
以上お試しいただき、ご不明な点やご要望等ございましたら、再度ご連絡いただければ幸いです。どうぞよろしくお願い申し上げます。
- この返信は、 MZPlatformユーザー会 により、 6 ヶ月, 3 週 前 に編集されました。
MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
幾つか方法が考えられます。
1)複合コンポーネントの参照機能を利用する
例えばGUI複合コンポーネント内に接続情報を作成し、この複合コンポーネントを各アプリケーションから参照して利用します。
複合コンポーネントの参照機能については『アプリケーションビルダー操作説明書』のpp.118-120をご参照ください。
ただし、参照する複合コンポーネントは同一PC内あるいはネットワークドライブなど参照できる範囲内に置く必要があります。
また、複合コンポーネントの編集をした場合は、アプリケーションとは別に複合コンポーネントのみの保存も必ず行ってください。2)iniファイルを利用する
iniファイルに例えばユーザーとパスワード用の項目と値を新たに作成し、その項目を読み込みます。ただし、各アプリケーション内にiniファイル読み込みとそれを利用するための処理を作成する必要があります。
ユーザー会のHPからダウンロードできるスマート製造ツールキットのアプリケーションでは、mzapp.iniというファイルを作成し、その値を読み込んでいます。以上ご検討いただき、ご不明な点がございましたら、どうぞご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
一般的にはファイルサイズが小さい方が読込みの時間は掛からないかと存じます。
ただしMZ上に一旦ロードしてしまえば、どちらのファイルタイプでも動作に変わりはありません。
対策していただいているようですが、どうしても画面構成部品上に大きなデータが残っているとどファイルサイズは大きくなります。将来的にJava実行環境を変える際の煩雑さを避けるためにXML形式での保存を開発した経緯もあり、ローダーでの起動もぜひご検討ください。
ご不明な点がございましたら、ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会サイト管理者追記です。
MZ Platformの使用バージョンを変更する場合、ユーザーPCにインストールされているMZも同じバージョンに統一し、そのバージョンに合わせたバイナリファイルを使用します。
ビルダーでの編集時だけでなく、ローダーでも使用するJavaのバージョンが違うと読み込めないので注意する必要があります。MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
まずパスワードをXMLファイルに設定できない理由ですが、設計内容は全てXML形式で保存されるので、パスワードを設定してもテキストエディタで開いて簡単に閲覧できてしまうので、設定しないようになっています。
したがって、パスワードを設定したmzasファイルをXML形式で出力保存することはできません。
保存に失敗しないよう留意してください。
なお、logフォルダに格納されるバックアップファイルは、バイナリ形式で保存されています。ファイルのサイズはバイナリファイルの方が小さくなる傾向があります。ただし大きなサイズの画像を含むときバイナリファイルの方がXML形式のファイルと比べて大きくなる場合もあります。
mzasファイルのみをロード・保存することも可能ですが、アプリケーションビルダーのオプションメニュー>[バイナリデータ自動保存]にチェックを入れてmzaxファイルを保存すると、mzasファイルも同名で同時に保存されます。常時自動保存の設定を有効にするにはplatform.iniの設定をします。
MZ Platformの使用バージョンを変更した場合、使用するJavaのバージョンも変わります。ビルダーやローダーとJavaのバージョンが違うバイナリファイルはロードできないことがあるので、その場合MZ Platform のツールのバイナリデータコンバータで変換する必要があります。
XML形式のファイルはJavaのバージョンには関係なく読み込むことができます。完成したアプリケーションファイルは、➀ファイルアイコンをダブルクリック、➁ファイルへのショートカットを作成して、ショートカットアイコンをダブルクリック、➂アプリケーションローダーのショートカットを作成し、プロパティでファイルへのパスを設定し起動できるようにする、➀から➂のいずれもアプリケーションローダーを使って実行できます。
アプリケーションローダーで実行した場合、ファイルを編集する機能はないのでファイルがユーザーに変更される恐れは低いかと思います。パスワード導入前に一度ご検討ください。以上、ご不明な点がございましたら、ご連絡いただけば幸いです。
よろしくお願い申し上げます。MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
こちらはSQL文の変更は難しそうですので、MZ上での処理の追加をお勧めいたします。
データベースからの検索結果を一旦[テーブル格納変数]等に入れた後、該当の列のセルの値を取得して[文字列格納変数]に設定し、メソッド「trim()」または「trimThenReplace()」を実行することが考えられます。このメソッドは設定した文字列の先頭と末尾の空白文字および改行やタブ文字、半角スペースなどを削除するものです。
「trim()」の方は変数の値は置き換わらず、戻り値が返ります。「・・・ThenReplace()」の方は[文字列格納変数]の値が置換わるので変数から値を取得します。
ただし、全角の空白文字は削除されないので注意してください。例えば以下のようのな処理が考えられます。
1)検索結果を取得した後[繰り返し制御(FOR)]でテーブルの行数分繰り返し処理を実行します。
2)[繰り返し制御(FOR)]のアクションイベントの接続先処理に[テーブル格納変数]「セルを位置指定で取得する(int,int)」を設定します。引数0(指定行)は[繰り返し制御(FOR)]の現在値、引数1(指定列)は固定値で指定します。
3)2番目の接続先処理に[文字列格納変数]「文字列を設定(String)」します。引数にはメソッド処理結果で(2)の返値を設定します。
4)3番目の接続先処理で「trim()」を実行します。
5)4番目に[テーブル格納変数]「セルデータを位置指定で設定する(String,int,int)」でメソッド処理結果で(4)の返値を取得して、[テーブル格納変数]の同じ位置のセルに値を設定します。以上お試しいただき、ご不明な点がございましたら、再度ご連絡ください。
どうぞよろしくお願いいたします。MZPlatformユーザー会サイト管理者ご確認ありがとうございます。
FAQ実現したいFAQ実現したい処理Q90のサンプルファイルは、アプリケーションを1つだけ立ち上げて、メインフレームとサブフレームとの間で連携しているので、複数のアプリケーション間で連携するのとは少し違っています。
独立した2つのアプリケーション間でデータを連携したい場合は、送信側、受信側それぞれにPlatfromNameとLocalhostAddress、RMIPortを記入したPlatfrom.iniをご用意ください。例えば
PlatformName=Platform01
LocalhostAddress=127.0.0.1
RMIPort=未記入(デフォルト1099)
PlatformName=Platform02
LocalhostAddress=127.0.0.1
RMIPort=3000
となります。以下3つの場合に分けて考えます。
1.アプリケーションビルダーまたはローダーを1つ起動し、一つのアプリケーション内のメインフレーム、サブフレーム間でデータを取得する場合。FAQ実現したい処理Q90のサンプルファイルのような状況です。
この場合、一つのPlatform.iniを編集し、PlatformNameとLocalhostAddressを設定します。hostsfile.iniとAccessPolicy.iniの設定はしなくても起動できます。2.同一のJava環境でビルダーまたはローダーを複数起動する場合。2つのアプリケーション間でデータの連携をする場合には、双方のビルダーまたはローダーに連携の設定をしておく必要があります。
iniファイルはデータ連携を利用して起動する数だけ作成し、ポート番号は他と競合しない任意の番号を設定します。例えばPlatform01.iniとPlatform02.iniが必要です。また、hostsfile.iniとAccessPolicy.iniもPlatform01とPlatform02について記述します。
hostsfile.iniは手順書の記述例に倣って記述します。
AccessPolicy.iniのallowAllの項は、例えば「allowAll=local, Platform01, Platform02」となります。3.2台の別々の環境のPCで起動する場合、ほぼ2と同じ考え方になります。
ポート番号は同一PC内で重ならなければ、他のPCと同じ番号も利用できます。以上、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会サイト管理者説明が不足していて申し訳ございません。
アプリケーションローダーでもビルダーでも、iniファイルに指定されているjava環境を使用しているので、データ連携用の設定をしている場合には、同一の環境で複数立ち上げることはできません。
前回検証用には実行環境をコピーして、元々インストールされていたものとは別環境にすることを提案いたしましたが、データ連携用にさらに複数のローダーあるいはビルダーを起動したいという場合には、一々コピーする訳にもいかないので、起動時のオプションにiniファイルを指定して起動する方法をご案内します。
1)etcフォルダの中にPlatformName、LocalhostAddres、RMIPortを指定したiniファイルを別名を付けて保存します。例えばPlatform01.iniとします。
2)PFBuilder.exe、(あるいはPFLoader.exe)のショートカットを作成します。
3)ショートカットを右クリック>プロパティを選択します。
4)プロパティ画面のショートカットタブをクリックし、リンク先項を以下のように書き換えます(ビルダーの場合)
C:\MZPlatform\4.0\PFBuilder.exe -ini etc/Platform01.ini
5)ショートカットをクリックすると、Platform01.iniを使ってビルダーが起動するようになります。
6)コマンドプロンプトを立ち上げて「C:\MZPlatform\4.0\PFBuilder.exe -ini etc/Platform01.ini」と入力しても、起動することができます。データ連携用にビルダー、ローダーを起動する数だけ、他と競合しないRMIPort番号を設定したiniファイルを作成し、別名で保存します。
以上お試しいただき、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
PlatformNameとLocalhostAddresを設定したiniファイルを使い起動したアプリケーションビルダーは、通信の準備をした状態でデフォルトでは1099のポートを使用し立ち上がっていることになります。
したがって、もう一つビルダーを立ち上げようとすると、アドレス及びポート番号が既に使われているというエラーが発生し、起動できません。検証用にもう一つアプリケーションビルダーを起動したい場合は、例えばC:\MZPlatformフォルダ内の「4.0」と「Java」のフォルダーを別なフォルダーにコピーし、こちらのPlatform.iniをデータ連携用に設定し、PFBuilder.exeをクリックして起動することが考えられます。
元々インストールされていたMZの方には外部連携機能は設定せず、コピーした方を検証用に使用するということです。
「4.0」と「Java」は同じフォルダ階層に置いてください。全てのファイルをコピーする必要はないのですが、容量に問題が無ければそのままコピーしてしまってください。また、同じPC内で2つのMZに外部連携機能は設定したい場合は、一方のPlatfrom.iniファイルのRMIPortに違うポート番号(例:3000)を設定してください。
以上、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。 -
著者投稿