ERPバージョンアップ奮闘記 その3

これまでの経緯1
これまでの経緯2

コンパイルエラーが続く中で、プロジェクトは大詰めを迎えていた。

白紙撤回を撤回した案件も、本番設定10日前、現状の環境・設定調査で、会議室を借り切って午前中3時間程、5名で打ち合わせ等を行った。

コロナ禍のため、会議室のドアは開けっ放しにし、対面はアクリル製の透明なボードが設置されており、全員マスク着用。

と、ここまで書くと、感の良い方は「この中でコロナに感染した人がいたのでは?」と推測されるかもしれない。

まさに、その通りで、5日後の夜9時頃、ベンダーから会社の携帯に電話があった。

後から着信に気づき、何となく会社のメールを開くと1通のメールが届いていた。

内容は衝撃なもので、打ち合わせの中の一人に3日前に発熱があり、PCR検査した結果、陽性反応が出たという報告だった。

ちなみに、保健所からは「その会議に参加した人は濃厚接触者には該当しない」との事だが・・感染してから2週間で症状が出るとなると、会議の時には既に罹患者だよな・・・。

同席していた残り3名は既にPCR検査を受けて結果待ち。自分は既にワクチンを2回接種しており、濃厚接触者じゃないとメールに記載されていたが、会社に報告した結果、自宅待機となった。

5日前の打ち合わせ翌日は出社したが、その後3日間はテレワークだったため、もし自分が感染していても、まき散らしている可能性は少ないが・・・本番設定まで、残り5日間!平日2日間、土・日・祝日で3日間という状況で、更にベンダーのキーマンがコロナに感染した場合、どうなるんだろう?

そんな不安を抱えていたところ、翌日(木曜)の夕方、当日会議に参加していた他3名のPCR検査が陰性である事が確認できた。

データセンターで作業するため、会社にあるPCやインストールメディアを取りに行くため、会社に許可を取り、金曜日、人が少なそうな夕方の時間に出勤。

残り3日間は休日・・・だが、C++も コンパイルが通っただけで、本番環境に設置して動かなかったらどうしよう?という不安は残っている。

(つづく)

カテゴリー: システム開発 | コメントする

ERPバージョンアップ奮闘記 その2

これまでの経緯

ERPバージョンアップで、大きな課題が3点、契約書の修正・白紙撤回された案件の対応・C++のコンパイル。

契約書の文言修正については、5回程のメールのやり取り&電話で何とか調整がつき、プロジェクト開始から約2ヶ月後、納品の半月前にようやく上司を説得の上、締結が出来た。

白紙撤回された案件については、直近2年間の経緯を纏め、「これしか対応方法が無い」ことが何とか伝えられた(?)ので、撤回を撤回する事が出来た。

残る最大の問題はC++のコンパイル。

エラーが多発したものの、一定の傾向が見られたので、一つずつ潰すしかないなと思い、ネットで検索し、エラー解決の方法を探ると、プロジェクトのプロパティ設定に解決方法がありそうだ!

1.文字セット
  Visual Studio の仕様か分からないけど、
  文字セットは「Unicode 文字セットを使用する」が
  デフォルトの設定となっており、これを
  「マルチ バイト文字セットを使用する」に変更するだけで、
  かなりのエラーが解消された。

2.共通言語ランタイムサポート

  こちらもデフォルトの設定ではエラーが生じるようで、
  「共通言語ランタイム サポート (/clr)」に
  変更する事で解消した。

等々、余りソースに手を加えず、何とかコンパイルが出来た。


さて、ベンダー側でバージョンアップ後の環境を構築して貰ったので、2時間程かけてこちら側の環境を設定して稼働確認をしてみると・・エラーが発生。

どうやらコンパイルに成功したプログラムの箇所でエラーになっているようだ。

エラー内容は、「コンピュータに MSVCP140D.dll がないためプログラムを開始できません」と。そもそもプログラムが起動していない!?

一応、VBのランタイムは導入しており、ネットで調べると「MSVCP140.dll」の対処方法はあったが、「MSVCP140D.dll」がなかなか見つからない。

Yahooの知恵袋で発見すると、「デバッグ版なので、コンパイル時に「Release」に変えてコンパイルする」ように記載があった。

但し、このプログラムはRelease版なので、その場では解決できず、持ち帰る事となった。

持ち帰って色々と調べると、これもプロジェクトのプロパティ設定で、ランタイムライブラリの設定が「マルチスレッド デバッグ DLL (/MDd)」となっており、「マルチスレッド DLL (/MD)」に変更するとエラーが解消。

(エラーは続くよ何処までも)

カテゴリー: システム開発 | コメントする

ERPバージョンアップ奮闘記

2022年にERPのサポートが切れる!

その約3年前の2019年に上司 及び 関係部署と打ち合わせを行い、2年後の2021年の夏季休暇中にバージョンアップをする事を決めた。

その年度末(2020年2月頃)、コロナの話題が出始め、3月末にはテレワークを推し進めるようにトップからの指示があり、4月緊急事態宣言が発令された。

どの会社も、2020年4~6月、業績は急激に悪かったと思うが、我が社も非常に厳しい状況だった。

但し、システムのサポート切れは待ってくれない!
2020年度末に予算取りをし、経営委員会の承認を取り付け、いざ契約する!となった時、ボスが変わった・・・。

現在使用しているERPを初期導入した時に締結した契約書の文面とほぼ同様の契約書(案)が届いたが、ボスが文面をチェックしたところ、ほぼ全ての条文に赤を入れられた。

契約を締結しないまま、プロジェクトは進む。

が、既に決まった事項についても、残り1ヶ月を切ったところで一旦白紙となり、ボスを説得するための資料作りに明け暮れた。他にもやらなければならない事が目白押しだが、今までの経緯を知らなボスの説得が第一優先だ。


問題はそれだけではなかった。
他システムからERPへシステム連携をするため、他の外部のベンダーに委託してシステム開発した機能がある。ERPのdllを内部(C++)でコールしているのだが、ERPバージョンアップにより、dllのPATHが変わるため、C++をリコンパイルする必要が出てきた。

ソースの納品 及び コンパイラー(Visual Studio 2010 Express)の納品を受領していたため、早速Visual Studio 2010 Expressをインストールしようとしたところ、MS社のサイトにアクセスし始め、既にインストーラーが無いためか、インストールエラーが発生して当時のコンパイラーが入手できない!

Visual Studio Expressを探したところ、最新版はどうやら2017らしい。一気にバージョンが上がるのは多少不安だが、試しにインストールしてみた。

不安は的中し、コンパイルエラーが多発した!!
開発したベンダーに連絡しようとするが、どうも廃業したらしく、メールが届かない。電話も通じない。

Visual Studio 2010 Expressに近い製品で入手できるのは、2012だったので、インストールしてコンパイルしたが、エラーが多発。

契約書・白紙の撤回・コンパイル・・・残り数週間で、この重たい課題を解決するのか・・と思うと焦りが募る。

(つづく)

カテゴリー: システム開発 | コメントする

【Excelマクロ(VBa)】[エラー]they are はこのマシンでは利用できないため・・・


 they are はこのマシンでは利用できないため、some オブジェクト s を読み込めませんでした。


Officeを2010から2019にバージョンアップしたところ、下記エラーメッセージが表示されるようになりました。



CDOでメールを送る処理を追加したため、cdosys.dll(Microsoft CDO for Windows 2000 Library)を参照してました。

この参照先は C:\Windows\System32\cdosys.dll でしたが、C:\Windows\SysWOW64\cdosys.dll に変更する事により、メッセージが出なくなります。



 変更方法


1.メニューの[ツール] - [参照設定] を起動する

 


2.「Microsoft CDO for Windows 2000 Library」のチェックを外し、[参照]ボタンを押下する




3.C:\Windows\SysWOW64\cdosys.dll を選択する

 




カテゴリー: VBa(Excelマクロ), システム開発 | コメントする

【C#】'Microsoft.CSharp.RuntimeBinder.Binder.Convert' がありません

過去に開発したプログラムを更新する際「ターゲット フレームワーク」を最新に変更する場合がある。
そのままコンパイルすると下記のようなエラーが発生したのでメモを残す。


 ターゲット フレームワークの変更


1.メニューより[プロジェクト] - [プロパティ]を選択する

プロジェクトメニュー
2.プロパティ画面の「ターゲット フレームワーク」の項目を変更する

プロジェクトのプロパティ


 エラー内容



[.NET Framework 3.5]から[.NET Framework 4.6.1]に変更したところ、下記のようなエラーが発生した。

エラーコード:CS0656
説明:コンパイラが必要とするメンバー 'Microsoft.CSharp.RuntimeBinder.Binder.Convert' がありません



発生した箇所は、ExcelのWorkbookやWorksheetを処理する箇所。


 対応方法



1.メニューより[プロジェクト] - [参照の追加]を選択する


2.参照マネージャー画面の[アセンブリ] - [フレームワーク] - [Micrsoft.CSharp]の項目にチェックする



カテゴリー: C#, システム開発 | コメントする