困ったね MicroSoftの進化の方向

MicroSoftの製品は常に進化していきます。
それは大変素晴らしいことだと思いますし、その姿勢には敬意を表します。

ただ、毎度困るのは操作性が一新してしまうことですね。この辺りは国民性も関係してくることかもしれませんし、日本人は保守的なのかもしれませんが、大幅な操作方法の変更というのには慣れていない方が多いと思います。基本的に、日本で作るソフトウェアはバージョンアップしても従来の操作性や機能は保持させるという伝統があります。

例えば、Windows8で消えた「スタートボタン」。これはうまくない見本のようなものですね。開発者としてはこれまでのコンセプトとは大幅に異なる操作性の実現、ということだと思いますが、新しいPCを購入してきて、いきなり使うことができませんでした、という方が実に多いですし、実際どのような操作をしたら簡単にコントロールパネルが表示されるのか悩みます。ノートPCやタブレットを意識しての操作性の変革なのでしょうが、デスクトップ機を使用する場合は、特にディスプレイが大型化してきており、「スタートボタン」からの操作なしでは目が回ってしまいます。

良くしたもので、Smart Menu 8なるフリーソフトをインストールすると、スタートボタン・スタートメニューが追加され、大変快適に操作することができるようになります。Windows XPの時は「スタート」と書かれたボタンがあって、「スタートボタンをクリックして…」とお話しすれば、皆さんすぐに分かってもらえましたが、その後それも丸いアイコンになって、この時でも「どうして使うかわからない」という声が多かったと記憶しています。基本的にWindows8のタイルインタフェースは特にデスクトップ機では使いづらいですね。Windows 8.1ではスタートボタンのような機能が復活するという噂ですが、それでもスタートメニューはないようですね。

お客様がWindows 8のPCを購入されました。そのときOutlookExpressのアドレス帳をWindows Live メールに移し替えてもらったのだそうです。ところがWindows Live メールが使いづらい。私もWindows Live メールは途中で使えないと判断しましたが、このお客様もそのように感じられました。見るとOutlook2013がインストールされています。それではと、Windows Live メールの連絡先をOutlook2013に移行させようと思ったら、これがとんでもなく簡単にはいきません。これまでの簡単なインポート機能が廃止されていたのですね。64ビット版のOutlook2013への移行は出来ないようです。32ビット版では一応はできます[32ビット版のOutlook2013への連絡先の移行]が、Excelを介すというロングストーリーになっています。

Windows Vistaが出たばかりの頃、すぐに購入してしまい、Windowsの操作もOffice2007の操作もどうしていいかわからなくなって、それぞれ相当に分厚いマニュアルを購入されたお客様がいましたが、それを見るだけで溜息を付いておられたのを思い出します。

Firefox のPDFビューアー まだまだ

Firefox 19からリリースされたPDFビューアー

確かにAcrobat Readerのバグで、PDFをAcrobat Readerに設定していると問題はいろいろあります。特にプリンタ出力に非常に時間が掛かるなど、ユーザーは突然の変貌に驚いてしまいます。PDFビューアーがそういったPDFリーダーの影響から開放されるのは歓迎ですが、このFirefoxのPDFビューアーはかなりお粗末です。

基本的に文字や罫線がボケて表示されたり、用紙サイズが異なる場合の出力位置が変わったり、バージョンアップの都度確認していますがなかなか良くなりません。Firefox19以降にバージョンアップすると、PDF出力の際に対応するクライアントサイドのプログラムが「Firefoxでプレビュー表示」に切り替わってしまいます。この部分が変わらなければいいのですが。

変更するには「ツール」-「オプション」でオプションダイアログを表示し「プログラム」タブでPDF出力をこれまで設定していたAdobe ReaderやFoxit Readerなどに変更すれば元に戻ります。

ちなみに私はプリンタ出力が速いのでPDF ReaderにはFoxit Readerを使用しています。

Web Application Pack Excel活用在庫管理システム J-SaaSからもサービス開始

kcs2001_l

J-SaaSにもWeb Application Pack Excel活用在庫管理システムを登録しました。

在庫管理をExcelで行なっているお客様にピッタリ!

商品管理・入出庫入力・棚卸入力をExcelで行えます。データはクラウド上のデータベースで一元管理します。

データベースから最新在庫数の計算された棚卸Excelシートをエクスポート。

棚卸担当者はノートPCやタブレット端末を倉庫に持ち込んでExcelシートに棚卸数量を入力します。

インターネットに接続できるところから、棚卸Excelシートをデータベースにインポートすると、データベース更新させることができます。

Excelの代わりにオープンソースソフトウェア(OSS)のLibreOfficeCalc(無償で利用できます。)を使用することができます。 外部に提供するデータはExcelをご利用いただき、社内データはLibreOfficeに統一しトータルコストの低減を図ってみてはいかがでしょうか?

安価なタブレット端末でもデータベースにアクセスできます。

※取り扱える商品点数は10000点に設定しています。Excel出力できる行数も10000行分までとしています。

推奨環境(ブラウザ):
Windows環境
IE 9 , Firefox , Chrome , Safari
Android環境
Firefox
Ubuntu環境
Firefox

IE10 へのアップグレードはちょっと待って!

お客様から「使っているクラウドサービス『メールワイズ クラウド』にログインできなくなった!」というヘルプがありました。

使われているクラウドサービスは、お客様にとって業務の中核をなすサービスで、ログイン出来ないことには困ります。使えなくなったのはお一人だけで、その方が使用している2台のPCでまったく同じ現象が発生していました。ログインIDを入力するとその脇に「✕」が表示されます。そして、ログインボタンをクリックすると認証エラーとなります。ブラウザーをFirefoxに変えると問題なくログインできます。

「ひょっとして」とIEのバージョンを確認すると10でした。

IE10ではセキュリティ機能が向上した、ということです。マイクロソフトの説明によると
「SmartScreenフィルターとDo Not Trackヘッダーは、Internet Explorer 10 で簡単に有効化できます。」
と書かれていますが、お客様はご自分では「有効化」の設定をしたわけでもないし、そもそもIE10に自動アップグレードしていたこともご存知ではありませんでした。

これはしばらく問題となるかもしれませんね。

調べてみると、「iCloudでログインできなくなった」事例などが出ています。
信頼済のサイトに「https://www.icloud.com」を登録したら解決しました。
と書かれています。「メールワイズ クラウド」も「iCloud」も「不審なサイト」ではありませんし、解決方法もまちまちのようです。

マイクロソフトでは「グラフィックドライバーを入れなおしてみて下さい」などとアドバイスしていますが、普通の方はそれが解決方法だとしてもそんな怖いことは簡単にはできませんよね。
IE10をアンインストールすることも普通の方だと出来ないでしょう。

ちなみに本件では、IE8でないと動作しないサービスが有ったということで、IE10をアンインストールしたのですが、「コントロールパネル」-「プログラム」-「プログラムと機能」から左側のメニューで「インストールされた更新プログラムを表示」をクリックして、一覧表示から「Microsoft Windows」の一覧の中から「Internet Explorer 10」をクリックしてアンインストールする、なんてことを誰でもができるわけではないことを、マイクロソフトにはわかって貰いたいです。

クラウドワークスクエア情報セミナー 開催

東京商工会議所 クラウドワークスクエアにて
情報セミナー 「クラウドで変わる販売管理・在庫業務管理 ~ Web Application Pack ~」を開催しました。

日 時:2013年 7月17日(水) 16:00~16:45
場 所:東京商工会議所ビル 1階クラウドワークスクエアセミナールーム
〒100 -0005 東京都千代田区丸の内3-2-2
地下鉄千代田線二重橋前駅下車 B7出口 徒歩1分
http://www.tokyo-cci.or.jp/about/map/

ワクラウドワークスクエア 情報セミナー
パッケージソフトで販売管理を稼働させているユーザー様向けに、クラウドでの運用によりどのような変革ができるかを、実例を持ってご説明

“クラウドワークスクエア情報セミナー 開催” の続きを読む

進化するJimdo

Jimdoが進化しています。
http://jp.jimdo.com/

はじめて紹介された時のJimdoは正直に言ってあまり目を引くところはありませんでした。

昨年、「みんビズ」を紹介されたときは、かなり驚きました。
http://www.minbiz.jp/
ドメインを取得し、レンタルサーバーを借りて、普通にホームページを作るよりも、はるかに手軽で、安くて、素晴らしいサイトが作れます。
何よりも業種別の最適デザインが用意されているのは素晴らしいと思いました。
昨年は今のようにテンプレートが公開されていなかったようですが、今はらくらく選んでいけます。

2013年度長岡市担い手育成総合支援協議会主催 商品パッケージ研修会では、Jimdoを使用したホームページ作成を、農業従事者を対象に講習することにしました。
そこで、Jimdoを使ってみるとまずはレイアウトパターンがたくさん用意されています。htmlタグもかなり自由に使えます。
無料版でも5商品まではショッピングカートを作れます。ただし、地域別の送料設定などはまだ設定出来ません。
スマホ版なども自動的に作られているようです。

WordPressより手軽でいいのではないでしょうか。
どんどん進化しているように思います。

EC-CUBE のカスタマイズ その1(インストール)

EC-CUBEをカスタマイズする機会があり、これは記録に残しておいたほうがいいと思いました。システムが継ぎ足されて機能追加されているようで、例えば管理機能では、商品管理と会員管理とではClassの構造も異なっているみたいです。カスタマイズはPHPで行うことを前提としますが、EC-CUBE内で行うケースと、PHPExceltcpdfなどのライブラリを使うためEC-CUBEから外に出したアドオン開発の必要があるケースにも及ぶことを想定します。

それでは、最初にインストールから参りましょう。

ダウンロード

EC-CUBEのダウンロードサイトからzipファイルをダウンロードして解凍します。

バージョンがeccube-2.13.2であれば右図キャプチャのようにいくつものディレクトリとファイルが展開されます。このうちアップロードするのはdataとhtmlの2つのディレクトリだけです。

インストールの前に決めておくこと

インストールする前に、以下の項目を決めておきます。

店名 お店の名前です。後で管理画面から変更できます。
メールアドレス お客様が買物をした時などにメールが送られてきます。
ログインID 管理画面のログインID(初期値)管理画面で追加修正できますが、インストール完了後すぐに使用しますので控えておいたほうがいいです。
パスワード 管理画面のパスワード(初期値)管理画面で修正できますが、インストール完了後すぐに使用しますので控えておいたほうがいいです。
データベースの種類 PostgreSQL か MySQL
あらかじめインストールし、PHPで使用できるようにしておく必要があります。
また、phpPgAdminかphpMyAdminもインストールしておいたほうが便利です。
データベース名 eccube_db(初期値)あらかじめ作成しておきます。
データベースのユーザー名 eccube_db_user(初期値)あらかじめ作成しておきます。
ユーザーのパスワード

データベースの種類ですが、カスタマイズを前提としていますので、ライセンスの違いから私はPostgreSQLを選択しています。PostgreSQLはBSDライセンスですが、MySQLはGPLライセンスです。カスタマイズ部分を配布しないのであれば問題はないとしても、著作権者がOracle社だということで生理的な不安感がある、という程度のことですが。

サーバーへアップロード

htmlとdataディレクトリをドキュメントルートにアップするわけですが、通常通りアップすると、インストールした時にディレクトリやファイルのパーミッションをいくつも変更してやる必要があり、これは実に時間と手間がかかることになります。
これを解決してくれる情報が下街ぶろぐ(東京下街タウン情報)に書かれています。これは大変に助かります。ぜひご参照下さい。

上記サイトではFFFTPを使用して、アップロード時のオプション設定によりディレクトリ単位でパーミッションの設定を予め行っておく、という方法が紹介されています。そのため、サーバーにはvsftpdなどをインストールしておく必要があります。この設定でhtmlとdataをアップします。

PHPExcelやtcpdfなどを使用するためアドオンによるカスタマイズを行う場合、その部分をhtmlディレクトリ内に配置してEC-CUBEのカスタマイズと分けることを想定し、htmlおよびdataの各フォルダごとアップロードすることにいたします。ドキュメントルートの下にhtmlやdataというディレクトリが入りますので、Apacheのエイリアス設定をした方がいいでしょう。

ドメインがhogehoge.jp、ルートディレクトリが/home/ec_testであればhttpd.confに例えば以下の様なエイリアスが切られていることを前提として、書き進めていきます。

Alias /ec_test/ “/home/ec_test/html/”

次のページヘ

EC-CUBE のカスタマイズ その2(EC-CUBEのデータベース構造)

eccube-2.13.2をダウンロードすると、docsフォルダ内に以下の様なデータベースの構造を記したドキュメントがあります。

  1. eccube-diagram.jude
  2. ER-D_Logical.pdf
  3. ER-D_Physical.pdf
  4. table_definition.xls
  5. テーブル定義書(EC-CUBE2.13dev).xlsx

eccube-diagram.judeは、システム内でのアクション(例えば「商品登録」)と使用しているテーブルとの相関マトリックスやE-R図などが全て網羅されたファイルです。astah* communityという無償のUMLモデリングツールで参照できます。astah* communityはここからダウンロードできます。

テーブルにはmtb_で始まるテーブルとdtb_で始まるテーブルとが有ります。

マスタデータ

mtb_で始まるテーブルは全て以下の列より構成されています。

id              smallint (primary key)
name        text
rank          smallint

これらのテーブルは、管理画面において「システム設定」-「マスタデータ管理」でテーブル名を選択して直接メンテナンスが出来ます。

マスタデータ管理

ただし、このデータはdata/cacheにテーブル名.serialというファイル名で保存され、キャッシュとして利用されていますので、メンテナンス後にこの内容を削除する必要があります。そうしないと、いくらメンテナンスしてもシステムには反映されません。削除しても新たにシステムがマスタデータを取得する際にキャッシュします。

新規にmtb_hogehogeを同じ内容で追加すると、他のマスタデータと同様に「マスタデータ管理」でメンテナンスを行うことが出来ます。顧客情報や商品情報に属性を追加したいような場合に利用できます。

顧客情報はdtb_customer、受注情報はdtb_orderとdtb_order_detailというようにわかりやすいのですが、商品情報はやや複雑になっていますので、以下に説明いたします。

次のページヘ

EC-CUBEのカスタマイズ その3(カスタマイズの仕方)

Smartyとプラグイン

EC-CUBEではSmartyというテンプレートエンジンを使用しています。data/Smarty/templates配下に以下のディレクトリが作成されています。

  1. admin
  2. default
  3. mobile
  4. sphone

管理機能はadmin配下に、フロント機能はPC用についてはdefault配下に、携帯電話用についてはmobile配下に、そしてスマホ用はsphone配下に各機能毎に階層化されてtplファイルが配置されています。tplファイルはHTMLにSmarty変数やSmarty関数を埋め込んだもので、検索画面や一覧表示画面といったユーザーインターフェース部分になります。例えばデータベースから検索条件に適合した内容を抽出するサーバー機能のphpプログラムから一覧表示画面のtplファイルに出力することで一覧表示が行われます。抽出機能と画面表示機能を分離することで開発作業の効率化を図るとともに、Smartyの機能で高速化も図られます。

管理機能の会員登録画面のテンプレートはadmin/customer/edit.tplです。その入力確認画面はadmin/customer/edit_confirm.tplです。PC用のフロント機能についてはヘッダー部分がdefault/header.tpl、商品の一覧画面はdefault/products/list.tplとなります。入力項目や表示内容を追加したり修正したりする場合は、テンプレートとして該当するファイルをカスタマイズすることになりますが、直接カスタマイズしたのでは、EC-CUBEのバージョンアップに対応できなくなるばかりでなく、修正箇所がわからなくなりシステムのメンテナンスができなくなってしまう可能性があります。そこでプラグインの機能を使用します。

EC-CUBEのプラグイン

EC-CUBEのプラグインでは次のことが出来ます。

  1. EC-CUBE本体処理へ介入して処理・結果を書き換える。
  2. EC-CUBE本体のテンプレートを変更する。

ここでは画面入出力内容のカスタマイズにプラグインの2の機能を使用します。入出力項目のカスタマイズが必要な場合には、データベースのテーブルへの列追加が必要になるケースがありますので、画面の変更と合わせてテーブルへの列追加もプラグインに組み込み、本番環境への移植も容易にすることを目的とします。

なお、下記「プラグイン仕様書」を参考にされるといいでしょう。

拡張クラスのカスタマイズ

サーバー機能のphpプログラムは、data/class配下に機能的に階層化され登録されています。

管理機能の会員登録についてはpages/admin/customer/LC_Page_Admin_Customer_Edit.phpですが、dtb_customerに関する関数がSC_Customer.phpやhelper/SC_Helper_Customer.phpに記述されています。

直接カスタマイズする場合はこの部分を修正・追加するわけですが、ここでは拡張クラスにカスタマイズ部分を記述するという方式を取ります。

EC-CUBEではdata/class_extends配下にほぼ同じ構成でファイルが登録されています。classと異なるのは、class_extends配下ではディレクトリ名には「_extends」がファイル名には「_Ex」が付けられているくらいです。また、ファイル内容はclass内の同機能のclassを継承しているという宣言があるだけで、中身は空っぽとなっています。カスタマイズしたいclassに記述されている関数を、class_extendsに移植しその内容を修正すると、実行時にはclassの中は元のままでもカスタマイズした内容でプログラムが機能します。

拡張クラスのカスタマイズが推奨されている方式ですが、バージョンアップの際対応しづらいとか、一部正しく機能しない場合があるとか、開発効率が落ちるといった問題があることを承知のうえで、ここでは「元々の機能が保証される」「カスタマイズした内容が明確になる」という理由だけで拡張クラスのカスタマイズ方式としています。直接カスタマイズすることを選択しても構いません。

次回は今回のカスタマイズ内容について解説します。

EC-CUBEのカスタマイズ その4(カスタマイズ内容)

今回のカスタマイズ内容

EC-CUBEでは商品に設定する価格は「通常価格」と「販売価格」とがありますが、「通常価格」は商品の詳細画面に表示されるだけで、どの会員にも一律同じ「販売価格」で商品を提供しています。今回のカスタマイズでは、会員情報に「会員分類」という項目を追加します。

会員分類はmtb_bunruiというマスタファイルを追加し、「1:小売会員」には通常価格で、「2:卸売会員」には販売価格で提供することにします。

今回のカスタマイズ範囲は下記のとおりとします。

[管理機能]

  1. 会員情報(dtb_customer)に会員分類(plg_bunrui)を追加する。
  2. 会員登録画面に会員分類を追加し、リストボックスで選択できるようにする。
  3. 会員マスターの検索条件に会員分類を追加し、リストボックスで選択できるようにする。
  4. 会員検索結果一覧に会員分類を追加する。

[フロント機能]

  1. 卸売会員がログインした場合は販売価格を卸売価格と表示し、商品情報の販売価格で表示する。
  2. 上記以外の場合は商品の通常価格で表示する。
  3. 商品詳細画面では通常価格、販売価格の2重表示を止め、卸売価格もしくは販売価格のみを表示する。

本来は上記以外にも変更すべき箇所はありますが、以上にとどめます。

会員分類マスタの追加

データベースはPostgreSQLを使用し、phpPgAdminで管理することを前提としていますので、phpPgAdminを起動し下記SQLを実行します。

CREATE TABLE mtb_bunrui (
id                                      SMALLINT NOT NULL  DEFAULT 0,
name                                    TEXT DEFAULT '',
rank                                    SMALLINT DEFAULT 0,
PRIMARY KEY (id));
COMMENT ON TABLE mtb_bunrui IS '会員分類マスタ';
COMMENT ON COLUMN mtb_bunrui.id IS '会員分類ID';
COMMENT ON COLUMN mtb_bunrui.name IS '会員分類名称';
COMMENT ON COLUMN mtb_bunrui.rank IS 'ランク';

phpPgAdminを使用する場合、コメントが表示されたほうがわかりやすいので追加しましたが、除外しても結構です。また、MySQLの場合はコメントを付けるSQLは異なりますので、同じく除外して下さい。

会員分類マスタ1

会員分類マスタ2会員分類マスタの登録

マスタ登録は管理画面で行います。「システム設定」-「マスターデータ管理」を選択し、リストボックスから追加した「mtb_bunrui」を選択し、[選択]ボタンをクリックして登録します。

会員分類マスタ3
画面の修正はプラグインで行い、ロジックについては拡張クラスのカスタマイズ方式とします。

次回はプラグインでの画面修正について解説します。