作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
ご指摘の通り、現状のCSVファイル入力コンポーネントではShift-JISを前提としておりまして、UTF-8のCSVファイルを読み込むと文字化けしてしまいます。
対応策としては、まずテキストファイル入力コンポーネントで文字コードを指定して文字列として読み込み、その文字列をCSVファイル入力コンポーネントに渡してテーブルにします。詳細は、添付したZIPファイルを展開したアプリケーションの中身をビルダーでご覧ください。
添付ファイル:
MZPlatformユーザー会サイト管理者該当エラーについてネット上で調べておりますが,2016年6月のWindows update KB3163018(Win10の場合)/KB3161949(Win7の場合)の関係で,古いJava (JRE)を使用時にご提示のようなエラーが発生する場合があるという情報があります.また,SSL通信に求められるキーのビットが変更になり,古いJava (JRE)では対応できない場合があるという情報もあります.
もしこれに該当する場合,JREを新しいものでお試しいただくか,私どもとしてはお勧めできませんが,該当KBをアンインストールする方法をとるしかないようです.以下に参考にしたURLをお知らせします.
https://social.technet.microsoft.com/Forums/en-US/aaa61549-24e0-431d-9154-e4803f533c89/mssql-and-kb3163018?forum=win10itprogeneralMZPlatformユーザー会サイト管理者以下のページによりますと,ご提示のようなエラーは,encrypt プロパティが true に設定され,trustServerCertificate プロパティが false に設定され,接続文字列のサーバー名が SQL Server SSL 証明書のサーバー名に一致しない場合に発生するようです.
https://msdn.microsoft.com/ja-jp/library/bb879949(v=sql.110).aspx
実際の接続時の設定は,データベースURLに続く文字列に続くように,以下のように記述いたします.
jdbc:sqlserver://サーバー名:1433;databaseName=データベース名;encrypt=trueまたはfalse;trustServerCertificate=trueまたはfalse;または,Windows統合認証を使用されている場合には,integratedSecurity=trueをデータベース名;の後に付けることで,解決する場合もあるようです.
SQLServerの設定をご確認いただき,設定のご検討をお願い致します.
MZPlatformユーザー会サイト管理者まずは,以下のページをご参照になり,ご使用のJREのバージョンに対応するJDBCドライバをお試しいただけますでしょうか.MZプラットフォームVer2.5の標準インストールではJRE6,Ver3.4ではJRE8がインストールされます.
https://msdn.microsoft.com/ja-jp/library/ms378422(v=sql.110).aspxMZPlatformユーザー会サイト管理者お手数ですが、添付のZIPファイルを展開したWebアプリをサーバに配置して実行していただけますでしょうか。リストを選択して項目が表示されたら正常に動作していることになります。
添付のアプリが正常に動作した場合は、作成中のアプリ内に不具合があって、処理の過程でエラーが発生していることになります。
添付のアプリが正常に動作しない場合は、Webアプリの環境に問題がある可能性があります。ご使用のバージョンなどを詳細にお知らせいただけますでしょうか。また、他のサンプルアプリを実行してみて問題がないかご確認ください。
添付ファイル:
MZPlatformユーザー会サイト管理者TEST2mod1の処理では元の状態に戻りますので、このような記述をしてはいけません。同じアクションイベントに処理と判定処理を3組接続したら、必ず3回実行されます。処理と判定処理が1組だけ接続されるようにしてください。外部通信の中の処理を修正したファイルを添付します。
同様に、修正してはいませんが実行2ボタンの処理のように書いてもいけません。これは必ず3回実行されます。こちらは外部通信からイベントが出てくるので、そのイベントが発生したら次を実行するように書けば良いと思います。
添付ファイル:
MZPlatformユーザー会サイト管理者拝見しました。
外部通信の中の処理Aにサブルーチン4の「処理を呼び出す」が3回接続されていますので、このままでは常に3回実行します。改善方法は、処理Aに必ず実行する処理(サブルーチン4)と判定処理を接続する構造にすることです。例えば、サブルーチン4の処理の中で論理値格納変数を使ってOKのときにtrueを設定し、NGのときにfalseを設定しておけば、その値に従って処理を継続するかどうかを判定することができます。修正例を添付しますのでご覧ください。この例では、継続不可の場合に元のエラーメッセージが、継続可のときに別のメッセージが表示されるようにしてありますので、継続可のところに処理を追加すればOKのときのみ処理を継続することができると思います。
添付ファイル:
MZPlatformユーザー会サイト管理者たいへん恐縮ですが、文章だけですとこちらが正確に状況を理解できているか判断が難しい内容に思われます。できれば、状況を再現した簡潔なアプリケーションを添付していただけると助かります。
参考までに、処理の分岐を記述したアプリケーション(MZAX)をZIP形式に圧縮したファイルを添付します。2つのサブルーチンがあり、実行するとそれぞれメッセージダイアログが表示されます。チェックなしで開始ボタンを押すと処理1のみを実行し、チェックありで開始ボタンを押すと処理2まで実行します。
お問い合わせの中で、「外部からOKが来なかった時」の具体的な状況がわかりませんが、基本的には添付したアプリのように何らかの値を使って処理の分岐を書くことになります。イベント生成を使って分岐をすることにはならないと思いますが、状況によってはイベント伝播制御コンポーネントなどを使うことはあるかもしれません。
もう少し具体的な情報をいただければ詳細にご説明しますので、よろしくお願いします。
添付ファイル:
MZPlatformユーザー会サイト管理者Excelファイルの特定セルから日付を取得するためには、Excelファイルアクセスの「getCurrentCellValueAsDate()」メソッドを使います。
対象となるExcelファイルを開いてブックのシートを選択し、行からセルを選択した後、上記のメソッドを呼び出します。メソッド名が日本語化されていませんので、メソッド選択時は全メソッド対象にしてお探しください。
参考までに、Excelファイルアクセスのサンプルアプリに機能追加したサンプルおよびExcelファイルを添付します。
添付ファイル:
MZPlatformユーザー会サイト管理者MZ Platform 3.4のリリースノートに記述してありますように、Java8からJDBC-ODBCブリッジが削除されている影響で、MZの不具合ではありません。
Oracleからの発表は下記リンク先をご覧ください。
http://www.oracle.com/technetwork/jp/java/javase/overview/8-whats-new-2157071-ja.htmlMZのビルダーからその機能が使える理由は、MZでは暫定的にJava7を含めて配布しておりまして、対象のクラスがパスに含まれるように工夫しているからです。
Webアプリでは、Tomcat等のサーバをJava8で起動している場合、クラスパスに対象となるクラスが含まれませんので、ご報告いただいた状況が発生すると思います。
MZのビルダー側の措置はあくまでも暫定的なもので、今後JavaにJDBC-ODBCブリッジが含まれることはないと思われますので、AccessやExcelファイルをデータベースとして接続する処理は変更をご検討いただくか、商用のJDBC-ODBCブリッジを購入して利用するなどの対応をご検討ください。
-
著者投稿