基本に立ち返って検証作業
既存のシステムからのリプレースのために、新しいシステムの作成をしました。
これまで、既存のシステムに登録していたデータを、新しいシステムに登録して、画面に表示をすると、想定した通りの結果になりません。
既存のシステムと新しいシステムでは、データの扱い方を変え、画面への表示方法も変更しています。
そのため、仕方のないものと当初は考えていました。
テストでデータを登録すれば、必ず発生するわけでもなく、たまに発生するだけです。
システムの他の部分も、まだ正しく動作していなかったので、一旦保留としました。
Photo by Mimi Thian on Unsplash
改めて考えなおしてわかってくる
画面表示の部分以外が落ち着いてきたので、改めて、想定した通りの結果にならない理由を探し始めました。
想定した通りの結果にならないデータを見ると、想定していない設定がされていました。
想定している設定に変更して、データを処理しなおすと、想定した通りの結果になりました。
既存のシステムでは、想定していない設定がされていた場合、補正をするように、システムが作成されていると気がつきました。
新しいシステムでも、同様の補正を行うよう、システムを改修しました。
改修した結果、想定した通りのに、画面に表示されるようになりました。
もうこれで、想定した通りの結果しか表示されないだうろと、データをテスト登録して、画面の表示すると、まだ想定した通りにならない場合があります。
発生する箇所が特定の箇所だったので、表示する際に、なにか問題があるのではと、検証しやすいデータを改めて作成しました。
検証用しやすいデータを用いてテストをすると、問題が2種類あるのがわかり、2種類とも原因を突き止めて、システムを改修しました。
再度のシステムの改修の後は、画面の表示は、すべて想定した通りになっています。
既存のシステムに登録していたデータを用いてテストを行い、新しいシステムとの差異がわかり、システムを改修しました。
検証しやすいデータを用いてテストを行い、検証ができて、システムを改修しました。
既存と同じように動作というと、つい既存のシステムに登録していたデータばかりでテストを行ってしまいがちです。
検証しやすいデータは、これなら絶対こうなるはずと、わかりきった内容にしたおかげで、原因がわかりました。
PowerShellでネットワークドライブに接続
PowerShellを学んでいると記事に書きました。
ajya.hatenablog.jp
以前ツイートした、ネットワークドライブの割り当てを行うという目的のために学んでいます。
簡単なコマンドから使い方を学んでいきたいです。まずは、ネットワークドライブの割り当てを永続的に行う方法があるのか検索してみます。/MS開発者がツイート「コマンドプロンプトじゃなくPowerShellを使ってね」 https://t.co/2rWsWBg1ac
— AJYA (@ajyaa) May 28, 2020
試行錯誤した結果、PowerShellスクリプトでは、New-PSDriveコマンドレットでネットワークドライブを接続すると、スクリプトの実行中のみ、エクスプローラにも、接続したネットワークドライブも表示されます。
スクリプトの実行が終わると、接続したネットワークドライブは切断されて、エクスプローラに表示されなくなります。
PowerShellスクリプトを、Windowsの起動時に実行して、ネットワークドライブを接続して、常駐するプログラムを起動させようと考えています。
常駐するプログラムは、ドライブを意識して処理はしますが、ドライブが接続されているのか判定して、接続されていなかったら、接続を行う処理は実装したくありません。
どうすれば、PowerShellスクリプトで、ネットワークドライブを接続して、スクリプトの実行が終了しても、エクスプローラに表示され続けるのか試しました。
結果は、net useコマンドを使えばできるのが、わかりました。
Photo by Aman Upadhyay on Unsplash
ネットワークドライブが接続されていなかったら、念のため切断後、ネットワークドライブを接続する
PowerShellでは、Test-Pathコマンドレットでドライブの存在を確認できます。
Test-Pathコマンドレットで、ドライブの存在を確認して、ドライブが存在しなければ、net useコマンドで、ネットワークドライブを接続します。
念のため、net useコマンドで、ネットワークドライブを切断してから、net useコマンドで、ネットワークドライブ接続するようにしたのが、以下のスクリプトです。
if (Test-Path Z:) { } else { net use Z: /delete /yes net use Z: \\192.168.1.1\data Password /user:Admin /persistent:yes }
このスクリプトで、PowerShellスクリプトの実行が終わっても、ドライブが接続できるようになりました。
常駐プログラムの起動は、Start-Processコマンドレットでできるので、ドライブの接続の後に、起動を行います。
if (Test-Path Z:) { } else { net use Z: /delete /yes net use Z: \\192.168.1.1\data Password /user:Admin /persistent:yes } Start-Process -FilePath "C:\testpg\test.exe"
これで目的の動作が実現できました。
New-PSDriveコマンドレットでは、PowerShellスクリプトの実行が終了すると、エクスプローラにネットワークドライブが表示されなくて、驚きました。
幸い、代替手段があったので、対処できました。
このような使い方は、想定されていない使い方なのかもしれませんが、できれば、すべてコマンドレットで解決したかったです。
PowerShellについて学んだ1週間の振り返り(2020/6/27〜2020/7/3)
PowerShellについて学びが進んで、やりたいことをどうすればできるのかわかってきた、1週間を振り返ります。
- 2020/6/27(土)
妻と子どもの二人が出かけて、久しぶりに一人の時間を過ごしました。
ゆっくりする時間はあまりなく、髪の毛を切りに行ったり、車のオイル交換に行ったりして、一人の時間を過ごしました。
- 2020/6/28(日)
子どもの自転車にペダルを取り付けて、自転車に乗れるか練習したら、1回目から、ペダルをこいで自転車に乗れました。
前日の妻のママ友の特訓と、これまでの成果が出た瞬間でした。
- 2020/6/29(月)
先週修正作業を行っていたシステムを、本番環境に反映しました。
依頼元のWebページからのリンクがなかなかなくならず、待たされましたが、作業自体は短時間で終わり、できる限りの確認をも手早く終わらせました。
- 2020/6/30(火)
依頼元からシステムの機能について連絡があり、アカウントを忘れた場合の機能が書かれていました。
内容からすると、アカウントを忘れた場合ではなく、アカウントをわかっていて、単なるパスワードを更新する機能です。
名称と内容があっていないけれど、こちらの理解が間違っているのか、確認のメールを送りました。
- 2020/7/1(水)
依頼元から機能について4種類のファイルに分かれて連絡があり、内容に相違があるのがわかったので、じっくり内容を確認しました。
何か所も内容に相違点があるので、どれが正しいのか確認する点としてまとめました。
本来は、依頼元でまとめて欲しいです。
- 2020/7/2(木)
PowerShellスクリプトを少しずつ試していて、いろいろわかってきました。
できると思っていたことができなかったりと、思い違いだった点もあります。
別の方法で対処ができる内容だったので、対処をしています。
- 2020/7/3(金)
PowerShellスクリプトでできることを、引き続き学びました。
ネットワークドライブの接続に制約があるのがわかりました。
急いでいるのがわかるので、連絡があった当日に回答をしているのに、依頼元からの回答は、なかなかありません。
急いでいる雰囲気を出しているのは、依頼元の総意ではないのではないか、と疑いたくなります。
一人で食事を食べると、サラダを買ってきて、後はありあわせのものになります。
今回は卵焼きを作って、冷凍してあるパンをトースターで焼き、買ってきたサラダを食べました。