システム奮闘記:その99

Adempiereインストール



Tweet

(2012年11月5日に掲載)

Adempiereとの出会い

 オープンソースカンファレンス2012京都に参加した私。  以下の題名で講演した私だった。  「オープンソースだけでは解決しない! 中小企業IT化の現場の声! (PDF:209K)  発表後の質疑応答の時に、あるコンサルの方が  このソフトを紹介してよろしいでしょうか?  と言った。  私も興味を持ったので紹介していただく事になった。  オープンソース版ERPのAdempiere  だった。  その時、Adempiereの説明してくださったのが Adempiere Japan User Group (ADJUG)の代表の八塚さんだった。

ERPとは

 ERPといえば総合的な業務パッケージソフトを連想するのだが いざ説明しろと言われても・・・  ERPって何やねん?  なのだ。  そこで調べてみる事にした。すると、わかりやすいサイトがあった。  ERP(enterprise resource planning) − @IT情報マネジメント用語事典
ERPとは
Enterprise Resource Planningの略。
日本語訳としては企業資源計画」や「経営資源計画」がある。

生産や販売・購買・物流・会計・人事・給与などの企業内の
あらゆる経営資源(人、物的資産、資金、情報)を有効利用する観点から
これらを総合的に管理し、最適な配分をする事によって
効率的な経営活動を行っていくという経営手法や考え方。

 ERPとは経営手法や考え方を指す用語だった。
 もちろん、そんな事は・・・

 知らへんかった!!

 もちろん、それらを実現させるためのパッケージソフトを指す事もある。


 だが、既に基幹業務としてAS400を使っている、うちの会社。
 ERPを導入の可能性はないと思った。


OSC2012 東京秋

 OSC東京で八塚さんと私のセミナーがかち合ってしまった。
 八塚さんのセミナーが聞けず残念だったが、ブースで色々お話した。

 八塚さんから「共同で何かできたら面白そうですね」と提案してくださった。
 私の話に関心を持っていただいただけに、うれしかった。


 OSC東京にはAdempiere ERP プロジェクトのRedhuan D.oonさんと、
Carpline Zajacさんが来日していた。
 2人ともOSCの懇親会に参加したのだ。

 金髪美人が懇親会に来るのだから、男性諸君は大喜び。
 次から次へとツーショットの申込があった。もちろん私もツーショット。

Carpline Zajacさんとツーショット
ドイツ娘とツーショット

 美人とツーショットで

 人生の幸せを感じる (o)

 のだった。

 そして

 美人と仲良くなるにはAdempiere!

 と思った私。
 Adempiereを触ってみる事にした。


Adempiereのインストール

 さて美人と仲良くなるために、Adempiereを触る私。  もちろん、Adempiereと中小企業のIT化を考える私。  Adempiereがどんな物なのか知るために、 インストールを行なってみる事にした。  だが・・・  インストールマニュアルがあらへん  のだ。  その上、ネットを調べても  詳しく載っている所があらへん  だった。  お得意の七転八倒のはじまりになった。
目次として
(1) 失敗・その1
(2) 失敗・その2
(3) インストール成功


1回目のインストール (失敗編)
 インストールといっても、ネットに書いている事の丸写し。  こういう手順でインストール作業を進めた。
インストール手順
(1) JDKのインストールと設定
(2) PostgreSQLのインストールと設定
(3) Adempiereのインストールと設定
(補足)

この手順は、あくまでも、この編集を行う際に
読みやすくするために付け加えた物で、
インストールを試す際は、こんな事は
頭の中に入っていませんでした (^^)

 そして失敗の原因の1つは、Adempiereサーバーへの接続は
あるLinux端末からtelnetで接続して、遠隔操作で行った。

こんな風な操作をしていた
telnet接続でAdempiereサーバーに接続した
AdempireサーバーはGUI環境で設定いないと
うまく設定できないようだ。

だが、そんな事を知らないため、上図のような状態で
Adempiereサーバーの設定を行ったのだ。


 補足説明は、これぐらいにして、まずはJDKのインストールを行った。

JDKのインストール(1)
[root@server]# ./jdk-6u35-linux-i586.bin 
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
   creating: jdk1.6.0_35/
   creating: jdk1.6.0_35/jre/
   creating: jdk1.6.0_35/jre/bin/
  inflating: jdk1.6.0_35/jre/bin/java  
  inflating: jdk1.6.0_35/jre/bin/keytool  
  inflating: jdk1.6.0_35/jre/bin/policytool  
  inflating: jdk1.6.0_35/jre/bin/rmiregistry  

(途中、省略)

Creating jdk1.6.0_35/jre/lib/ext/localedata.jar
Creating jdk1.6.0_35/jre/lib/plugin.jar
Creating jdk1.6.0_35/jre/lib/javaws.jar
Creating jdk1.6.0_35/jre/lib/deploy.jar

Java(TM) SE Development Kit 6 successfully installed.

Product Registration is FREE and includes many benefits:
* Notification of new versions, patches, and updates
* Special offers on Oracle products, services and training
* Access to early releases and documentation

Product and system data will be collected. If your configuration
supports a browser, the JDK Product Registration form will
be presented. If you do not register, none of this information
will be saved. You may also register your JDK later by
opening the register.html file (located in the JDK installation
directory) in a browser.

For more information on what data Registration collects and 
how it is managed and used, see:
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html

Press Enter to continue.....

 ENTERキーを押すようにと指示が出た。
 一体、何が始まるのだろうかと思い、押した。

JDKのインストール(2)
Press Enter to continue.....

 
Done.
[root@server]# 
ENTERキーを押したが何もなかった。拍子抜け (^^;;

 次にJDKが使えるようにするため、環境設定だ。

 rootのディレクトリのbashの設定ファイルを
次のように書き加える。

.bashrcファイルの変更
書き加える前
# .bash_profile                                                                 

# Get the aliases and functions                                                 
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs                                

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
書き加えた後
# .bash_profile                                                                 

# Get the aliases and functions                                                 
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs                                

PATH=$PATH:$HOME/bin:$:/usr/local/jdk1.6.0_35/bin
JAVA_HOME=/usr/local/jdk1.6.0_35

export JAVA_HOME
export PATH
unset USERNAME

 環境設定の変更を反映させるために次の事を行う。

sourceコマンドで環境設定の変更を反映
[root@server]# source .bashrc
[root@server]# 

 反映されているかどうか確認する。

javaコマンドを打ってみる
[root@server]# java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) Client VM (build 20.10-b01, mixed mode, sharing)
[root@server]# 
無事、反映されているのが確認できた。

 無事、コマンドが使えるのがわかった。


 次にデータベースのPostgreSQLのインストールと設定を行った。
 インストールとコンパイルは割愛(後述しています)


 そしてデータベースの初期化を行うのだが
その前にユーザーを「root」のLinuxの管理者ではなく
PostgreSQLの管理者ユーザーの「postgres」に切り替える。

ユーザーの切り替え
[root@server]# su postgres
[postgres@server]$

 そしてデータベースの初期化を行う。

データベースの初期化
[postgres@server]$ initdb -D /usr/local/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale ja_JP.UTF-8.
The default database encoding has accordingly been set to UTF8.

fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers/max_fsm_pages ... 32MB/204800
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    postgres -D /usr/local/pgsql/data
or
    pg_ctl -D /usr/local/pgsql/data -l logfile start

[postgres@server]$ 
initdbコマンドで初期化を行う。

 PostgreSQLを起動させる。

PostgreSQLを起動させる
[postgres@server]$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &
[postgres@server]$ 


 さてAdempeireが使えうためのユーザー設定などが必要になる。
 ネットの丸写しで、以下のように決めた。

PostgreSQLの設定
データベース名 adempiere
ユーザー名 adempiere
パスワード adempiere

 極めて単純なのだ。
 実際の設定方法は以下の通り。

ユーザー名登録
[postgres@server]$ createuser adempiere
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y
CREATE ROLE
[postgres@server]$ 

 Adempiereが使うデータベース名を登録する。

データベース名を登録
[postgres@server]$ createdb -U adempiere adempiere
CREATE DATABASE
[postgres@server]$ 

 パスワード設定。

データベース接続のパスワード設定
[postgres@server]$ psql
Welcome to psql 8.2.22, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# ALTER USER adempiere with unencrypted password 'adempiere' ;
ALTER ROLE
postgres=# 
「PostgreSQLの管理者のパスワードがない」という
ツッコミはなしでお願いします。
あくまでも実験用なので、パスワードを設けていないだけです。

 これでデータベースの準備が整った。


 次にAdempiereの設定だ。
 インストール先のディレクトリを設定する。

インストールするディレクトリの設定
[root@server]# /opt
[root@server]# 
ネットの丸写しなのだ。

 そして展開させる。

圧縮ファイルを展開させる
[root@server]# unzip adempiere360_ja_rev002_install.zip
Archive:  adempiere360_ja_rev002_install.zip
   creating: Adempiere/
   creating: Adempiere/data/
   creating: Adempiere/data/import/
   creating: Adempiere/glassfish/

(途中、省略)

  inflating: Adempiere/utils/windows/Adempiere_Service_Uninstall.bat  
  inflating: Adempiere/utils/windows/license.txt  
  inflating: Adempiere/zkpackages/liberoMFG/lib/liberozkMFG.jar  
[root@server]#
この時、日本語対応の最新バージョンを使ってみた。

 そして実行ファイルのパーミッションの設定

実行ファイルのパーミッション設定
[root@server]# ls
AdempiereEnvTemplate.properties  RUN_silentsetup.sh  images        packages
RUN_Adempiere.bat                RUN_update.bat      index.html    utils
RUN_Adempiere.sh                 RUN_update.sh       install.html  zkpackages
RUN_setup.bat                    build.xml           jboss
RUN_setup.sh                     data                lib
RUN_silentsetup.bat              glassfish           license.html
[root@server]# chmod +x *.sh
[root@server]# 
展開した時点ではシェルファイルが実行可能になっていない。

 そしてAdempiereの各種設定を行うために
プログラムを走らせる。

Adempiere設定プログラムを起動させる
[root@server]# ./RUN_setup.sh 
Install Adempiere Server
JAVA_HOME is not set.
You may not be able to start the Setup
Set JAVA_HOME to the directory of your local JDK.
===================================
Setup Dialog
===================================
./RUN_setup.sh: line 29: java: command not found
===================================
Make .sh executable
===================================
Install Adempiere Server
./RUN_SignDatabaseBuild.sh: line 9: ./myEnvironment.sh: そのようなファイルやディレクトリはありません
[root@server]# 

 エラーが出た!

 エラーの内容を見ると、必要なファイルがないというのだ。
 そこで実際に確かめてみると・・・

 あらへんやん!

utilsのディレクトリを見てみた
[root@server]# ls
RUN_Adempiere.bat             RUN_ImportReference.sh     RUN_UnixEnvTemplate.sh
RUN_Adempiere.sh              RUN_Migrate.bat            RUN_WinEnvTemplate.bat
RUN_DBExport.bat              RUN_Migrate.sh             WinEnv.js
RUN_DBExport.sh               RUN_PostMigration.sh       adempiereDirectTemplate.jnlp
RUN_DBRestore.bat             RUN_PutExportTemplate.bat  ftpGetAdempiereTemplate.txt
RUN_DBRestore.sh              RUN_PutExportTemplate.sh   ftpPutExportTemplate.txt
RUN_DBStart.bat               RUN_Server2.bat            myDBcopyTemplate.bat
RUN_DBStart.sh                RUN_Server2.sh             myDBcopyTemplate.sh
RUN_DBStop.bat                RUN_Server2Stop.bat        myEnvironmentTemplate.bat
RUN_DBStop.sh                 RUN_Server2Stop.sh         myEnvironmentTemplate.sh
RUN_Env.bat                   RUN_SignDatabaseBuild.bat  mysql
RUN_Env.sh                    RUN_SignDatabaseBuild.sh   oracle
RUN_ExportReference.sh        RUN_Start.bat              oracleXE
RUN_GetAdempiereTemplate.bat  RUN_Stop.bat               postgresql
RUN_GetAdempiereTemplate.sh   RUN_TrlExport.bat          unix
RUN_ImportAdempiere.bat       RUN_TrlExport.sh           windows
RUN_ImportAdempiere.sh        RUN_TrlImport.bat
RUN_ImportReference.bat       RUN_TrlImport.sh
[root@server]#
シェルプログラムの「myEnvironmentTemplate.sh」はあっても
「myEnvironmentTemplate.sh」は存在しない。

 少しファイル名が異なる。
 一体、どういう事なんだろうか?

 Adempiereの開発者が問題を放置しているのか?
 オープンソースだから自力で修正しろなのか?

 わからないが、とりあえずエラーが出たシェルプログラムを
触ってみる事にした。

untis/RUN_SignDatabaseBuild.shを書き換える
書き換え前
#!/bin/sh
#
echo Install Adempiere Server
# $Header: /cvsroot/adempiere/install/Adempiere/RUN_setup.sh,v 1.19 2005/09/08 21:54:12 jjanke Exp $

if [ $ADEMPIERE_HOME ]; then
  cd $ADEMPIERE_HOME/utils
fi
. ./myEnvironment.sh Server
書き換え後
#!/bin/sh
#
echo Install Adempiere Server
# $Header: /cvsroot/adempiere/install/Adempiere/RUN_setup.sh,v 1.19 2005/09/08 21:54:12 jjanke Exp $

if [ $ADEMPIERE_HOME ]; then
  cd $ADEMPIERE_HOME/utils
fi
. ./myEnvironmentTemplate.sh Server

 そして再度、プログラムを走らせるのだが・・・

 なんでエラーが出るねん (TT)

再度、RUN_setup.shを走らせたが
[root@server]# ./RUN_setup.sh 
Install Adempiere Server
===================================
Setup Dialog
===================================

(途中、省略)


===================================
Sign Database Build
===================================
./RUN_SignDatabaseBuild.sh: line 18: @JAVA_HOME@/bin/java: そのようなファイルやディレクトリはありません
./RUN_setup.sh: line 46: ./RUN_UnixEnv.sh: そのようなファイルやディレクトリはありません
[root@server]# 
2ヶ所もエラーが出たのだ。

 色々、触ったりして、何度も挑戦したのだが

 全然、前に進まへん (TT)

 だった。

 そして、ついに最強の開き直りの文言

 事務員にわかるわけ、ねーだろ!

 という事でインストールを断念したのだった。


2度目のインストール (失敗編)


 Adempiereインストールの初挑戦は失敗に終わった。
 だが、ここままで退散するわけにはいかない。
 そこでネットなどを調べ直す事にした。

 ある事を発見した。

 GUI画面で設定しなければならない!

 初回はCUI画面で行ったため、失敗に終わったようだ。
 そこでGUI環境で再度、インストールに挑戦する事にした。

GUI環境で設定を行う事にした
GUI環境でAdempiereサーバーを設定
GUI環境でAdempiereを設定する事にした。

 まずは、JDKのインストールを行う。
 この時、以下のサイトを参考にした。
 CentOSにJava SE 6 Update 29をインストールする手順

JDKのインストール(1)
[root@server]# ./jdk-6u35-linux-i586.bin 
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
   creating: jdk1.6.0_35/
   creating: jdk1.6.0_35/jre/
   creating: jdk1.6.0_35/jre/bin/
  inflating: jdk1.6.0_35/jre/bin/java  
  inflating: jdk1.6.0_35/jre/bin/keytool  
  inflating: jdk1.6.0_35/jre/bin/policytool  
  inflating: jdk1.6.0_35/jre/bin/rmiregistry  

(途中、省略)

Creating jdk1.6.0_35/jre/lib/ext/localedata.jar
Creating jdk1.6.0_35/jre/lib/plugin.jar
Creating jdk1.6.0_35/jre/lib/javaws.jar
Creating jdk1.6.0_35/jre/lib/deploy.jar

Java(TM) SE Development Kit 6 successfully installed.

Product Registration is FREE and includes many benefits:
* Notification of new versions, patches, and updates
* Special offers on Oracle products, services and training
* Access to early releases and documentation

Product and system data will be collected. If your configuration
supports a browser, the JDK Product Registration form will
be presented. If you do not register, none of this information
will be saved. You may also register your JDK later by
opening the register.html file (located in the JDK installation
directory) in a browser.

For more information on what data Registration collects and 
how it is managed and used, see:
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html

Press Enter to continue.....

 ENTERキーを押すようにと指示が出た。
 一体、何が始まるのだろうかと思い、押した。

JDKのインストール(2)
Press Enter to continue.....

 
Done.
[root@server]# 
ENTERーキーを押すが何もないのだ。

 次にJDKが使えるようにするため、環境設定だ。

 rootのディレクトリのbashの設定ファイルを
次のように書き加える。

.bashrcファイルの変更
書き加える前
# .bash_profile                                                                 

# Get the aliases and functions                                                 
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs                                

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
書き加えた後
# .bash_profile                                                                 

# Get the aliases and functions                                                 
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs                                

PATH=$PATH:$HOME/bin:$:/usr/local/jdk1.6.0_35/bin
JAVA_HOME=/usr/local/jdk1.6.0_35

export JAVA_HOME
export PATH
unset USERNAME

 環境設定の変更を反映させるために次の事を行う。

sourceコマンドで環境設定の変更を反映
[root@server]# source .bashrc
[root@server]# 

 反映されているかどうか確認する。

javaコマンドを打ってみる
[root@server]# java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) Client VM (build 20.10-b01, mixed mode, sharing)
[root@server]# 
無事、反映されているのが確認できた。

 無事、コマンドが使えるのがわかった。


 次にデータベースのPostgreSQLのインストールと設定を行った。
 インストールとコンパイルは割愛(後述しています)


 そしてデータベースの初期化を行うのだが
その前にユーザーを「root」のLinuxの管理者ではなく
PostgreSQLの管理者ユーザーの「postgres」に切り替える。

ユーザーの切り替え
[root@server]# su postgres
[postgres@server]$

 そしてデータベースの初期化を行う。

データベースの初期化
[postgres@server]$ initdb -D /usr/local/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale ja_JP.UTF-8.
The default database encoding has accordingly been set to UTF8.

fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers/max_fsm_pages ... 32MB/204800
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    postgres -D /usr/local/pgsql/data
or
    pg_ctl -D /usr/local/pgsql/data -l logfile start

[postgres@server]$ 
initdbコマンドで初期化を行う。

 PostgreSQLを起動させる。

PostgreSQLを起動させる
[postgres@server]$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &
[postgres@server]$ 


 さてAdempeireが使えるようにするため、PostgreSQL上での
ユーザー設定などが必要になる。
 ネットの丸写しで、以下のように決めた。

PostgreSQLの設定
データベース名 adempiere
ユーザー名 adempiere
パスワード adempiere

 極めて単純なのだ。
 実際の設定方法は以下の通り。

ユーザー名登録
[postgres@server]$ createuser adempiere
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y
CREATE ROLE
[postgres@server]$ 

 Adempiereが使うデータベース名を登録する。

データベース名を登録
[postgres@server]$ createdb -U adempiere adempiere
CREATE DATABASE
[postgres@server]$ 

 パスワード設定。

データベース接続のパスワード設定
[postgres@server]$ psql
Welcome to psql 8.2.22, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# ALTER USER adempiere with unencrypted password 'adempiere' ;
ALTER ROLE
postgres=# 
「PostgreSQLの管理者のパスワードがない」という
ツッコミはなしでお願いします。
あくまでも実験用なので、パスワードを設けていないだけです。

 これでデータベースの準備が整った。


 次にAdempiereの設定だ。
 インストール先のディレクトリを設定する。

インストールするディレクトリの設定
[root@server]# /opt
[root@server]# 
ネットの丸写しなのだ。

 そして展開させる。

圧縮ファイルを展開させる
[root@server]# unzip adempiere360_ja_rev002_install.zip
Archive:  adempiere360_ja_rev002_install.zip
   creating: Adempiere/
   creating: Adempiere/data/
   creating: Adempiere/data/import/
   creating: Adempiere/glassfish/

(途中、省略)

  inflating: Adempiere/utils/windows/Adempiere_Service_Uninstall.bat  
  inflating: Adempiere/utils/windows/license.txt  
  inflating: Adempiere/zkpackages/liberoMFG/lib/liberozkMFG.jar  
[root@server]#
この時、日本語対応の最新バージョンを使ってみた。

 そして実行ファイルのパーミッションの設定

実行ファイルのパーミッション設定
[root@server]# ls
AdempiereEnvTemplate.properties  RUN_silentsetup.sh  images        packages
RUN_Adempiere.bat                RUN_update.bat      index.html    utils
RUN_Adempiere.sh                 RUN_update.sh       install.html  zkpackages
RUN_setup.bat                    build.xml           jboss
RUN_setup.sh                     data                lib
RUN_silentsetup.bat              glassfish           license.html
[root@server]# chmod +x *.sh
[root@server]# 
展開した時点ではシェルファイルが実行可能になっていない。

 次にPostgreSQLに、Adempiereのデータベースの定義ファイルを
取り込ませる必要がある。

Adempiereの定義ファイルをPostgreSQLに取り込む
postgres@server]$ psql -d adempiere -U adempiere -f /opt/Adempiere/data/Adempiere_pg.dmp 
SET
SET
SET
SET
SET
SET
psql:/opt/Adempiere/data/Adempiere_pg.dmp:16: ERROR:  permission denied for database adempiere
psql:/opt/Adempiere/data/Adempiere_pg.dmp:19: ERROR:  schema "adempiere" does not exist

(途中、省略)

ALTER TABLE
ALTER TABLE
psql:/opt/Adempiere/data/Adempiere_pg.dmp:216146: WARNING:  no privileges could be revoked for "public"
REVOKE
psql:/opt/Adempiere/data/Adempiere_pg.dmp:216147: WARNING:  no privileges could be revoked for "public"
REVOKE
psql:/opt/Adempiere/data/Adempiere_pg.dmp:216148: WARNING:  no privileges were granted for "public"
GRANT
psql:/opt/Adempiere/data/Adempiere_pg.dmp:216149: WARNING:  no privileges were granted for "public"
GRANT
[postgres@server]$ 
ユーザー名はPostgreSQLの管理者のpostgresで行った。
Adempiereのデータベースの定義ファイルを取り込めた。

 そしてAdempiereの各種設定を行うために
プログラムを走らせる。

Adempiereの設定処理プログラムを走らせる
[root@server]# /opt/Adempiere/utils/RUN_setup.sh 
Install Adempiere Server
===================================
Setup Dialog
===================================
*** 2012-09-27 16:52:52.781 Adempiere Log (CLogConsole) ***
16:52:52.781   CLogMgt.setLevel: CONFIG
16:52:53.013 Setup.<init>: ADempiere(r) Release 3.6.0LTS_2010-06-14 -Smart Suite ERP,CRM and SCM- (c) 1999-2010 ADempiere(r); Implementation: ADempiere 20101104-1628 - ADempiere
16:52:53.120 ConfigurationData.load: Defaults


 すると・・・

 GUIの設定画面が立ち上がった。

GUIの設定画面
GUIのAdempiereの設定画面

 そして設定変更を行う。

設定変更をする
Adempiereの設定でデータベースの部分の記述変更を行う
データベース設定は初期状態ではOracleXEなので
PostgreSQLに書き換える。
赤く囲んだ部分が変更した所だ。

この後、正常に動くかどうかの確認のために
「テスト」ボタンを押す必要がある。

 この時、初めて知った事がある。

 OracleXEは無償のデータベースだった!

 IBMのDB2なら無償版があるのは知っていたが
Oracleにもあったとは知らなかった。

 そして「テスト」ボタンを押して前に進めようとするが・・・

 エラーが出たのらー (--;;

エラー内容
JDBC接続エラーの画面

 これを見た時・・・

 JDBCって何やねん?

 だった。

 PostgreSQLの本を読んだ時にJavaと関連しているのは
知っていたが、具体的に何なのかは知らなかった。

 そこで調べてみた。

JDBCとは何か
Javaプログラムからデータベースに接続する橋渡し役。
プログラムなので命令や関数だったりする。

 でも、どうすれば解決できるのか。

JBOSSの部分に注目してみた
JBOSSの設定部分
JBOSSをインストールしていないので
これが原因ではないかと考えてみた。

 ところで・・・

 JBOSSって何やねん?

 だった。

 JDKはSUNが提供しているが、JBOSSはオープンソースだという。
 とりあえず、どんなソフトかは、わからんが、JBOSSの
インストールを行ってみる事にした。

 そこで以下のサイトを見てみた。
 自宅サーバー構築メモ JBOSSインストール&設定

 もちろん・・・

 ネットの丸写し

 なのだ (^^)

JBOSSのインストール(1)
[root@server]# cd /usr/local
[root@server]# tar xvfz jboss-as-7.1.1.Final.tar.gz
jboss-as-7.1.1.Final/
jboss-as-7.1.1.Final/appclient/
jboss-as-7.1.1.Final/appclient/configuration/
jboss-as-7.1.1.Final/bin/
jboss-as-7.1.1.Final/bin/client/

(途中、省略)

jboss-as-7.1.1.Final/standalone/configuration/application-users.properties
jboss-as-7.1.1.Final/standalone/configuration/mgmt-users.properties
jboss-as-7.1.1.Final/domain/tmp/auth/
[root@server]# 
まずはダウンロードした物を展開する。

 そしてシンボリックリンクを張る。

JBOSSのインストール(2)
[root@server]# ls
bin  games    jboss-as-7.1.1.Final  lib      sbin   src
etc  include  jdk1.6.0_35           libexec  share
[root@server]# ln -s jboss-as-7.1.1.Final jboss
[root@server]# 
シンボリックリンクを張った。
サイトの丸写しなのだ (^^)

 そして次のファイルに追加する記述があるという。

/usr/local/jboss/standalone/configuration/standalone.xml
書き換え前(257行目辺り)

 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
     <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
     <virtual-server name="default-host" enable-welcome-root="true">

追加後(257行目辺り)

 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
     <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
     <connector name="AJP" protocol="AJP/1.3" socket-binding="ajp"/>
     <virtual-server name="default-host" enable-welcome-root="true">


 もちろん、この記述の追加の意味は

 わかりませーん (^^)

 なのだ。気にしない。
 とりあえず、インストールする事が大事なのだ。

 次にJBOSSを動かすユーザーを追加する。

ユーザー「jobss」を追加
[root@server]# useradd jboss
[root@server]# chown -R jboss:jboss /usr/local/jboss
[root@server]# 
JBOSSを動かすユーザー「jboss」を追加する。
そしてJBOSS関連のファイルの所有者も「jboss」にする。

 そしてJBOSSを起動させる際のシェルを見てみる。

/usr/local/jboss/bin/init.d/jboss-as-standalone.shの中身
#!/bin/sh
#
# JBoss standalone control script
#
# chkconfig: - 80 20
# description: JBoss AS Standalone
# processname: standalone
# pidfile: /var/run/jboss-as/jboss-as-standalone.pid
# config: /etc/jboss-as/jboss-as.conf

JBOSS_USER=jboss
JBOSS_HOME=/usr/local/jboss
JAVA_HOME=/usr/local/jdk1.6.0_35
export JBOSS_USER JBOSS_HOME JAVA_HOME
これがJBOSSを起動するためのシェルだ。

 RedHat系で動かすには、所定のディレクトリに
ファイルをコピーする必要がある。

/etc/rc.d/init.d/jbossファイルを作成
#!/bin/sh

jbossctl="/usr/local/jboss/bin/init.d/jboss-as-standalone.sh"

case "$1" in
start|stop|status|restat|reload)
$jbossctl $@
;;
*)
;;
esac
JBOSSを自動起動させたりするには必要なファイルだ。

 そしてJBOSSを移動させる。

 これで準備良し。
 再度、Adempiereのインストールを行う。

Adempiereの設定画面
Adempiereの設定画面
ここで「テスト」ボタンを選ぶ。

 すると以下の画面が出てくる。

Adempiereサーバー関連の登録
Adempiereサーバー関連の登録
Adempiereのユーザー(サーバー)の情報入力だ。
お試しなので、初期値をそのまま使う。

そして緑の印のボタンを選ぶ。

 するとテストが終わる。
 
Adempiereの設定画面
Adempiereの設定画面
「保存」を押して、設定事項を反映させる。

 すると以下の画面が出てくる。

ライセンス合意の有無の画面
Adempiereのライセンス合意の有無の画面
これは「はい」を選ぶしかない。
拒否したら使えないからだ。

 そして処理が進み、最後には以下の画面が出てくる。

設定処理が正常終了を知らせる画面
設定処理が正常終了した事を知らせる画面

 これでAdempiereが使える状態になった。
 ここで

 インストール成功!!

 と言いたい所なのだが、話には続きがある。
 続きがあるという事は、この先にも問題があった事を意味する。


 さてAdempiereを起動させる。

Adempiereサーバーを起動させる
[root@server]# /opt/Adempiere/utils/RUN_Server2.sh 
Setting myEnvironment ....
=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /opt/Adempiere/jboss

  JAVA: /usr/local/jdk1.6.0_35/bin/java

(処理が進む)

 しばらくすると、Adempiereサーバーが稼働するのだ。


 早速、WebでAdempiereを触ってみる事にした。

 管理者画面のURLは

 http://(ドメイン)/webadmin

 なのだ。

ブラウザでAdempiereの画面を開く
ブラウザでAdempiereの画面を開く
「WebStart」のボタンを押す。

 するとファイルのダウンロードの有無を訊かれる。

jnlpファイルのダウンロードの有無を訊かれる
jnlpファイルのダウンロードの有無を訊かれる
この時、JNLPファイルが何なのかを知らずにダウンロードした。
パソコンの方にJREがインストールされている必要があるのだが
既にインストールされていた。もちろん、JREが何なのかは
この時は知らなかった。

 デジタル署名関係の画面が出てくる。

デジタル署名関係の画面
デジタル署名関係の画面
検証できなくても「実行」を押さない限り、前には進まないので
そのまま「実行」を選ぶ。

 Adempiereのログイン画面が出てくる。

Adempiereのログイン画面
Adempiereのログイン画面

 でも、これでは管理者画面ではログインできない。
 管理者としてログインする場合、初期値は次のようになっている。

管理者でログインするには(初期値)
ログイン名(ID) SuperUser
パスワード System

 もちろん、実験的にインストールなので、そのまま使う。

管理者でログインする
管理者でAdempireにログインする
ログイン名は「SuperUser」
パスワードは「system」だ。

 ログインすると以下の画面が出てくる。

ログイン後の画面
ログイン後の画面
ここではプリンターの設定ぐらいだ。

 いよいよAdempiereの操作画面が出てきた。

Adempiereの操作画面
Adempiereの操作画面

 ここでAdempiereを使う予定の企業(団体)の登録を行う。

企業(団体)の登録
企業(団体)の登録
初期クライアントのセットアップを選ぶ
システム管理の中の「初期クライアントセットアップ」を選ぶ。

 するとクライアント(登録する企業・団体)を設定する画面が出てくる。

クライアント(登録する企業・団体)を設定する画面
クライアント(登録する企業・団体)を設定する画面

 導入実験なので適当な名前をいれてみる。
 ここでは

 神戸商事株式会社

 にしてみた。

クライアント(登録する企業・団体)を入力
クライアント(登録する企業・団体)を入力
管理者名、ユーザー名の登録も行う。
神戸商事株式会社のデータ管理を行う管理者。
使う側のユーザー名という意味だ。

(余談)
神戸在住の私なので「神戸商事株式会社」にした。
でも、生粋の神戸っ子ではないので、西宮育ちの宮っ子らしく
「西宮商事株式会社」にすべきだったと思った。
でも、大阪生まれなので、生粋の宮っ子でもないのだ。

 勘定科目のファイルだが、そんな物は作っていないので
無視して先に進める事にした。

 そして「開始」ボタンを押すとエラーが出た。

エラーの内容
Adempiereのクライアント登録で勘定科目ファイルが必要な警告
勘定科目のファイルを取り込む必要がある

 一体、どこに勘定科目のファイルがあるねん!

 そこでネットを探しまわる事にしたら、以下のサイトに
勘定科目のサンプルがあった。
 日本会計基準の一般企業向けのCoA(Court of account)と公益法人向けCoA

 早速、ダウンロードしてAdempiereに取り込む事にした

勘定科目ファイルをAdempiereに取り込む様子
勘定科目ファイルをAdempiereに取り込む様子
企業向け勘定科目マスターのCVSファイルを選ぶ

 これで準備が整った。

クライアント(登録する企業・団体)を入力完了
クライアント(登録する企業・団体)を入力完了
「開始」のボタンを押すのみ

 そして登録処理が進んで行く。

クライアント登録の処理中
クライアント登録の処理中

 だがエラーが出た。

 なんでやねん・・・ (TT)

エラーの内容
Adempiereで組織登録の際にエラーが出た
これだけでは何のエラーかは、わからないのだが
エラーが発生した事だけは、わかるのだ。

 これではクライアント登録ができないし、Adempiereの実験ができない。
 でも、エラー調査のための手がかりが少なすぎる。

 だが、同様のエラーに悩んでいる人はいるはずだ。
 そこでエラー対策を調べてみる事にしたら、英語のサイトを発見した。
 SourceForge.net: ADempiere ERP Business Suite: Error during "Initial Client Setup...

 日本男児たるもの鬼畜米英の言葉を使うか!

 と言いたくなるが、単なる英語嫌いであって
別に尊王攘夷を唱えているわけではないで、渋々、英語を読む事に。
 でも、内容は難しくなく

 PostgreSQLは9系以上でないとアカン

 だった。


Adempiereのインストール 成功編

 さて、Adempiereのインストール。  再々度の挑戦になった。  そこでインストールに必要なソフトの整理を行う。
Adempireに必要なソフト
(1) JDK
(2) JBOSS
(3) PostgreSQL (バージョン9.0以上)

 必要な環境としてGUIで操作できる環境だ。
 CUIでもできる方法があるかもしれないが
試していないので、ここでは割愛します。

 そして今回のAdempireインストールのために
使ったソフトのバージョンは以下の通りなのだ。

Adempireに必要なソフトのバージョン
JDK 1.0.6_35
JBOSS 7.1.1_final
PostgreSQL 9.1.5
Adempiere 3.6.0LTS

JDKのインストール

 まずはJDKのインストールを行う。
JDKのインストール(1)
[root@server]# ./jdk-6u35-linux-i586.bin 
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
   creating: jdk1.6.0_35/
   creating: jdk1.6.0_35/jre/
   creating: jdk1.6.0_35/jre/bin/
  inflating: jdk1.6.0_35/jre/bin/java  
  inflating: jdk1.6.0_35/jre/bin/keytool  
  inflating: jdk1.6.0_35/jre/bin/policytool  
  inflating: jdk1.6.0_35/jre/bin/rmiregistry  

(途中、省略)

Creating jdk1.6.0_35/jre/lib/ext/localedata.jar
Creating jdk1.6.0_35/jre/lib/plugin.jar
Creating jdk1.6.0_35/jre/lib/javaws.jar
Creating jdk1.6.0_35/jre/lib/deploy.jar

Java(TM) SE Development Kit 6 successfully installed.

Product Registration is FREE and includes many benefits:
* Notification of new versions, patches, and updates
* Special offers on Oracle products, services and training
* Access to early releases and documentation

Product and system data will be collected. If your configuration
supports a browser, the JDK Product Registration form will
be presented. If you do not register, none of this information
will be saved. You may also register your JDK later by
opening the register.html file (located in the JDK installation
directory) in a browser.

For more information on what data Registration collects and 
how it is managed and used, see:
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html

Press Enter to continue.....

 ここでは何も迷う事なくENTERキーを押す。

JDKのインストール(2)
Press Enter to continue.....

 
Done.
[root@server]# 

 これでインストールの作業が終わった。

 次にJDKが使えるようにするため、環境設定だ。
 rootのディレクトリのbashの設定ファイルを
次のように書き加える。

.bashrcファイルの変更
書き加える前
# .bash_profile                                                                 

# Get the aliases and functions                                                 
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs                                

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
書き加えた後
# .bash_profile                                                                 

# Get the aliases and functions                                                 
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs                                

PATH=$PATH:$HOME/bin:$:/usr/local/jdk1.6.0_35/bin
JAVA_HOME=/usr/local/jdk1.6.0_35

export JAVA_HOME
export PATH
unset USERNAME

 環境設定の変更を反映させるために次の事を行う。

sourceコマンドで環境設定の変更を反映
[root@server]# source .bashrc
[root@server]# 

 反映されているかどうか確認する。

javaコマンドを打ってみる
[root@server]# java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) Client VM (build 20.10-b01, mixed mode, sharing)
[root@server]# 
無事、反映されているのが確認できた。

 これでJDKのインストールは終わった。

JBOSSのインストール

 次にJBOSSのインストールだ。
JBOSSのインストール(1)
[root@server]# cd /usr/local
[root@server]# tar xvfz jboss-as-7.1.1.Final.tar.gz
jboss-as-7.1.1.Final/
jboss-as-7.1.1.Final/appclient/
jboss-as-7.1.1.Final/appclient/configuration/
jboss-as-7.1.1.Final/bin/
jboss-as-7.1.1.Final/bin/client/

(途中、省略)

jboss-as-7.1.1.Final/standalone/configuration/application-users.properties
jboss-as-7.1.1.Final/standalone/configuration/mgmt-users.properties
jboss-as-7.1.1.Final/domain/tmp/auth/
[root@server]# 
まずはダウンロードした物を展開する。

 そしてシンボリックリンクを張る。

JBOSSのインストール(2)
[root@server]# ls
bin  games    jboss-as-7.1.1.Final  lib      sbin   src
etc  include  jdk1.6.0_35           libexec  share
[root@server]# ln -s jboss-as-7.1.1.Final jboss
[root@server]# 
シンボリックリンクを張った。
サイトの丸写しなのだ (^^)

 そして次のファイルに対して記述追加を行う。

/usr/local/jboss/standalone/configuration/standalone.xml
書き換え前(257行目辺り)

 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
     <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
     <virtual-server name="default-host" enable-welcome-root="true">

追加後(257行目辺り)

 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
     <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
     <connector name="AJP" protocol="AJP/1.3" socket-binding="ajp"/>
     <virtual-server name="default-host" enable-welcome-root="true">


 次にJBOSSを動かすユーザーを追加する。

ユーザー「jobss」を追加
[root@server]# useradd jboss
[root@server]# chown -R jboss:jboss /usr/local/jboss
[root@server]# 
JBOSSを動かすユーザー「jboss」を追加する。
そしてJBOSS関連のファイルの所有者も「jboss」にする。

 そしてJBOSSを起動させる際のシェルを見てみる。

/usr/local/jboss/bin/init.d/jboss-as-standalone.shの中身
#!/bin/sh
#
# JBoss standalone control script
#
# chkconfig: - 80 20
# description: JBoss AS Standalone
# processname: standalone
# pidfile: /var/run/jboss-as/jboss-as-standalone.pid
# config: /etc/jboss-as/jboss-as.conf

JBOSS_USER=jboss
JBOSS_HOME=/usr/local/jboss
JAVA_HOME=/usr/local/jdk1.6.0_35
export JBOSS_USER JBOSS_HOME JAVA_HOME
これがJBOSSを起動するためのシェルだ。

 RedHat系で動かすには、所定のディレクトリに
ファイルをコピーする必要がある。

/etc/rc.d/init.d/jbossファイルを作成
#!/bin/sh

jbossctl="/usr/local/jboss/bin/init.d/jboss-as-standalone.sh"

case "$1" in
start|stop|status|restat|reload)
$jbossctl $@
;;
*)
;;
esac
JBOSSを自動起動させたりするには必要なファイルだ。

 そしてJBOSSを移動させる。

PostgreSQLのインストール

 次にデータベースのPostgreSQLのインストールと設定を行う。
ファイルの展開
[root@server]# tar xvfz postgresql-9.1.5.tar.gz
postgresql-9.1.5/
postgresql-9.1.5/contrib/
postgresql-9.1.5/contrib/sslinfo/

(途中、省略)

postgresql-9.1.5/configure.in
postgresql-9.1.5/INSTALL
[root@server]# cd postgresql-9.1.5
[root@server]# 
ファイルを展開して、展開したディレクトリに移動する。

 そしてコンパイルするためのMakefile作成のために
configureを行う。

configureを行う
[root@server]# ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking which template to use... linux
checking whether to build with 64-bit integer date/time support... yes
checking whether NLS is wanted... no

(途中、省略)

config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h
config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port
[root@server]# 

 そしてコンパイルを行う。

makeコマンドでコンパイル
[root@server]# make
make -C src all
make[1]: ディレクトリ `/usr/local/src/postgresql-9.1.5/src' に入ります
make -C port all
make[2]: ディレクトリ `/usr/local/src/postgresql-9.1.5/src/port' に入ります
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -I../../src/port -DFRONTEND -I../../src/include -D_GNU_SOURCE   -c -o strlcat.o strlcat.c


(途中、省略)

gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -I../../src/port -DFRONTEND -I../../src/include -D_GNU_SOURCE   -c -o exec.o exec.c
make[2]: *** [exec.o] 割り込み
make[1]: *** [all-port-recurse] 割り込み
make: *** [all-src-recurse] 割り込み
[root@server]# 
コンパイル成功だ。

 そしてインストールを行う。

make install でインストールを行う
[root@server]# make install
make -C src install
make[1]: ディレクトリ `/usr/local/src/postgresql-9.1.5/src' に入ります
make -C port install
make[2]: ディレクトリ `/usr/local/src/postgresql-9.1.5/src/port' に入ります
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -I../../src/port -DFRONTEND -I../../src/include -D_GNU_SOURCE   -c -o exec.o exec.c

(途中、省略)

make[1]: ディレクトリ `/usr/local/src/postgresql-9.1.5/config' に入ります
/bin/mkdir -p '/usr/local/pgsql/lib/pgxs/config'
/bin/sh ../config/install-sh -c -m 755 ./install-sh '/usr/local/pgsql/lib/pgxs/config/install-sh'
make[1]: ディレクトリ `/usr/local/src/postgresql-9.1.5/config' から出ます
PostgreSQL installation complete.
[root@server]# 
インストール成功

 そしてPostgreSQLを動かすために設定を行う。

 まずはPostgreSQLの管理者ユーザーを設ける。
 管理者名を「postgres」にする。

ユーザー「postgres」を追加
[root@server]# useradd postgres
[root@server]# 
PostgreSQLの管理者ユーザーを登録した。

 そしてデータベースや設定ファイルの格納庫を設ける設定だ。

データベースの格納庫の設定
[root@server]# mkdir /usr/local/pgsql/data
[root@server]# chown -R postgres /usr/local/pgsql/data/
[root@server]# 
ソースコンパイルでインストールすると、特に指定がない場合
PostgreSQL関連の実行ファイルやライブラリは
/usr/local/pgsqlディレクトリーに格納される。

そこでデータを格納したり設定ファイルを格納するディレクトリを
/usr/local/pgsql/dataにする。
そして、そのディレクトリの所有者をPosgtreSQLの
管理者ユーザー「posgtres」に変更しておく。

 そして設定ファイルの変更を行う。

設定ファイルを変更
[postgres@server]$ cd /usr/local/pgsql/data/
[postgres@server]$ ls
PG_VERSION  global   pg_hba.conf    pg_multixact  pg_serial    pg_subtrans  pg_twophase  postgresql.conf
base        pg_clog  pg_ident.conf  pg_notify     pg_stat_tmp  pg_tblspc    pg_xlog
[postgres@server]$ emacs pg_hba.conf
PostgreSQLに接続できるマシンの設定を行うため
pg_hba.confファイルを触る。

 そしてpg_hba.confファイルを触る。

pg_hba.confファイルを触る
変更前
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                trust
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust
変更後
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                trust
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust

host   all         all     192.168.X.0/16       trust
PostgreSQLに接続できるマシンを192.168.X.Y/16に設定する。
「X」は定数だが内緒。

 そしてPostgreSQLを起動させる。

PostgreSQLの起動
[postgres@server]$ postmaster -i &
[postgres@server]$ LOG:  could not create IPv6 socket: アドレスファミリはプロトコルによってサポートされていません
LOG:  database system was shut down at 2012-09-29 09:53:12 JST
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

[postgres@server]$ 
PostgreSQLが起動する。

 そしてデータベースの初期化を行う。

データベースの初期化を行う
[postgres@server]$ /usr/local/pgsql/bin/initdb -E UTF8 -D /usr/local/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale ja_JP.UTF-8.
initdb: could not find suitable text search configuration for locale ja_JP.UTF-8
The default text search configuration will be set to "simple".

fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
or
    /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

[postgres@server]$ 
PostgreSQLのコマンド「initdb」で初期化を行う。
データベースに保管するデータの文字コードをUTF8にする。

 さてAdempeireが使えるためのユーザー設定などが必要になる。

PostgreSQLの設定
データベース名 adempiere
ユーザー名 adempiere
パスワード adempiere

 極めて単純なのだ。
 実際の設定方法は以下の通り。

ユーザー名登録
[postgres@server]$ createuser adempiere
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y
CREATE ROLE
[postgres@server]$ 

 Adempiereが使うデータベース名を登録する。

データベース名を登録
[postgres@server]$ createdb -U adempiere adempiere
CREATE DATABASE
[postgres@server]$ 

 パスワード設定。

データベース接続のパスワード設定
[postgres@server]$ psql
Welcome to psql 8.2.22, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# ALTER USER adempiere with unencrypted password 'adempiere' ;
ALTER ROLE
postgres=# 

 これでデータベースの準備が整った。

Adempiereのインストール

 これでAdempiereのインストールの準備が整った。  そしてAdempiereのインストールを行う。
インストールするディレクトリの設定
[root@server]# /opt
[root@server]# 
/optディレクトリにAdempiereのファイルを置く。

 そして展開させる。

圧縮ファイルを展開させる
[root@server]# unzip adempiere360_ja_rev002_install.zip
Archive:  adempiere360_ja_rev002_install.zip
   creating: Adempiere/
   creating: Adempiere/data/
   creating: Adempiere/data/import/
   creating: Adempiere/glassfish/

(途中、省略)

  inflating: Adempiere/utils/windows/Adempiere_Service_Uninstall.bat  
  inflating: Adempiere/utils/windows/license.txt  
  inflating: Adempiere/zkpackages/liberoMFG/lib/liberozkMFG.jar  
[root@server]#

 そして実行ファイルのパーミッションの設定。

実行ファイルのパーミッション設定
[root@server]# ls
AdempiereEnvTemplate.properties  RUN_silentsetup.sh  images        packages
RUN_Adempiere.bat                RUN_update.bat      index.html    utils
RUN_Adempiere.sh                 RUN_update.sh       install.html  zkpackages
RUN_setup.bat                    build.xml           jboss
RUN_setup.sh                     data                lib
RUN_silentsetup.bat              glassfish           license.html
[root@server]# chmod +x *.sh
[root@server]# 
展開した時点ではシェルファイルが実行可能になっていない。

 ここでPostgreSQLに、Adempiereが使うデータベースの
定義ファイルなどを取り込ませる必要がある。

 PostgreSQLの管理者ユーザー「posgtres」になって
Adempiereの定義ファイルを取り込む。

Adempiereの定義ファイルをPostgreSQLに取り込む
postgres@server]$ psql -d adempiere -U adempiere -f /opt/Adempiere/data/Adempiere_pg.dmp 
SET
SET
SET
SET
SET
SET
psql:/opt/Adempiere/data/Adempiere_pg.dmp:16: ERROR:  permission denied for database adempiere
psql:/opt/Adempiere/data/Adempiere_pg.dmp:19: ERROR:  schema "adempiere" does not exist

(途中、省略)

ALTER TABLE
ALTER TABLE
psql:/opt/Adempiere/data/Adempiere_pg.dmp:216146: WARNING:  no privileges could be revoked for "public"
REVOKE
psql:/opt/Adempiere/data/Adempiere_pg.dmp:216147: WARNING:  no privileges could be revoked for "public"
REVOKE
psql:/opt/Adempiere/data/Adempiere_pg.dmp:216148: WARNING:  no privileges were granted for "public"
GRANT
psql:/opt/Adempiere/data/Adempiere_pg.dmp:216149: WARNING:  no privileges were granted for "public"
GRANT
[postgres@server]$ 
ユーザー名はPostgreSQLの管理者のpostgresで行った。
Adempiereのデータベースの定義ファイルを取り込めた。

 そしてAdempiereの各種設定を行うために
プログラムを走らせる。

Adempiereのサーバーの設定処理プログラムを走らせる
[root@server]# /opt/Adempiere/RUN_setup.sh 
Install Adempiere Server
===================================
Setup Dialog
===================================
*** 2012-09-27 16:52:52.781 Adempiere Log (CLogConsole) ***
16:52:52.781   CLogMgt.setLevel: CONFIG
16:52:53.013 Setup.<init>: ADempiere(r) Release 3.6.0LTS_2010-06-14 -Smart Suite ERP,CRM and SCM- (c) 1999-2010 ADempiere(r); Implementation: ADempiere 20101104-1628 - ADempiere
16:52:53.120 ConfigurationData.load: Defaults


 すると、GUIの設定画面が立ち上げる。

GUIの設定画面
GUIのAdempiereの設定画面

 そして設定変更を行う。

設定変更をする
Adempiereの設定でデータベースの部分の記述変更を行う
データベース設定は初期状態ではOracleXEなので
PostgreSQLに書き換える。
赤く囲んだ部分が変更した所だ。

この後、正常に動くかどうかの確認のために
「テスト」ボタンを押す必要がある。

 そして「テスト」ボタンを押す。
 すると以下の画面が出てくる。

Adempiereサーバー関連の登録
Adempiereサーバー関連の登録
Adempiereのユーザー(サーバー)の情報入力だ。
お試しなので、初期値をそのまま使う。

そして緑の印のボタンを選ぶ。

 するとテストが終わる。
 
Adempiereの設定画面
Adempiereの設定画面
「保存」を押して、設定事項を反映させる。

 すると以下の画面が出てくる。

ライセンス合意の有無の画面
Adempiereのライセンス合意の有無の画面
これは「はい」を選ぶしかない。
拒否したら使えないからだ。

 そして処理が進み、最後には以下の画面が出てくる。

設定処理が正常終了を知らせる画面
設定処理が正常終了した事を知らせる画面

 これで設定完了だ。

Adempiereサーバーの起動

 さてAdempiereを起動させる。
Adempiereサーバーを起動させる
[root@server]# /opt/Adempiere/utils/RUN_Server2.sh 
Setting myEnvironment ....
=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /opt/Adempiere/jboss

  JAVA: /usr/local/jdk1.6.0_35/bin/java

(処理が進む)

 しばらくすると、Adempiereサーバーが稼働するのだ。

Adempiereのクライアント設定

 Adempiereのクライアント設定する。  クライアント(企業・団体名)は  神戸商事株式会社  で登録する事にする。  Adempiere接続のためのURLは2通りある。
Adempiere接続のための2つのURL
独自の画面を出す方法 http://(ドメイン)/webadmin

端末側のパソコンにJREのインストールが必須
Web上で操作を行う場合 http://(ドメイン)/webui

 どちらでも良いのだが、端末側でJAVAを起動させて
独自の画面を出す方法を使ってみる事にする。

 まずはブラウザを起動させる。

ブラウザでAdempiereの画面を開く
ブラウザでAdempiereの画面を開く
http://(ドメイン)/webadminでブラウザを起動させる。
「WebStart」のボタンを押す。

 するとファイルのダウンロードの有無を訊かれる。

jnlpファイルのダウンロードの有無を訊かれる
jnlpファイルのダウンロードの有無を訊かれる
「jnpl」ファイルについては後述しています。

 プログラムで開くを選ぶ。
 デジタル署名関係の画面が出てくる。

デジタル署名関係の画面
デジタル署名関係の画面
検証できなくても「実行」を押さない限り、前には進まないので
そのまま「実行」を選ぶ。

 Adempiereのログイン画面が出てくる。

Adempiereのログイン画面
Adempiereのログイン画面

 でも、これでは管理者画面ではログインできない。
 管理者としてログインする場合、初期値は次のようになっている。

管理者でログインするには(初期値)
ログイン名(ID) SuperUser
パスワード System

 もちろん、実験的にインストールなので、そのまま使う。

管理者でログインする
管理者でAdempireにログインする
ログイン名は「SuperUser」
パスワードは「system」だ。

 ログインすると以下の画面が出てくる。

ログイン後の画面
ログイン後の画面
ここではプリンターの設定ぐらいだ。

 いよいよAdempiereの操作画面が出てきた。

Adempiereの操作画面
Adempiereの操作画面

 ここでAdempiereを使う予定の企業(団体)の登録を行う。

企業(団体)の登録
企業(団体)の登録
初期クライアントのセットアップを選ぶ
システム管理の中の「初期クライアントセットアップ」を選ぶ。

 するとクライアント(登録する企業・団体)を設定する画面が出てくる。

クライアント(登録する企業・団体)を設定する画面
クライアント(登録する企業・団体)を設定する画面

 ここでは

 神戸商事株式会社

 を入れる。

クライアント(登録する企業・団体)を入力
クライアント(登録する企業・団体)を入力
管理者名、ユーザー名の登録も行う。
神戸商事株式会社のデータ管理を行う管理者。
使う側のユーザー名という意味だ。


 勘定科目のファイルだが、以下のサイトから
勘定科目のサンプルをダウンロードする。

 日本会計基準の一般企業向けのCoA(Court of account)と公益法人向けCoA

 そしてAdempiereに取り込む。

勘定科目ファイルをAdempiereに取り込む様子
勘定科目ファイルをAdempiereに取り込む様子
企業向け勘定科目マスターのCVSファイルを選ぶ

 これでクライアント(企業・団体)の基本的な登録が終わった。

クライアント(登録する企業・団体)を入力完了
クライアント(登録する企業・団体)を入力完了
「開始」のボタンを押すのみ

 そして登録処理が進んで行く。

クライアント登録の処理中
クライアント登録の処理中

 そして無事、勘定科目が取り込まれ、クライアント(企業・団体)の
登録が終わった。

クライアント(企業・団体)の登録成功の画面
PostgreSQL8.2系では、ここでエラーが出たのだが
9.1系では問題なく成功した。

 そしてAdempiereの管理者画面を終了させる。

Adempiereの管理者画面を終了させる
Adempiereの管理者画面を終了させる
「ファイル」→「ログアウト」を選択する。

 そしてログイン画面が出てくる。

ログイン画面
ログイン画面
神戸商事株式会社の管理者ユーザーと、一般ユーザーが
登録されているのが一目瞭然だ。

 ログインするユーザー名を神戸商事株式会社の管理者にする。

神戸商事株式会社の管理者にする
神戸商事株式会社の管理者にする

 ログインするとAdempiereの接続関連の画面が出てくる。

Adempiereの接続関連の画面
Adempiereの接続関連の画面
そのまま初期設定の状態にしておく。

 そして、めでたく神戸商事株式会社の企業情報や
運営方法の設定画面(管理者画面)が出てきたのだ。

神戸商事株式会社の管理画面
神戸商事株式会社の管理画面

 これでERPを触って勉強する状態になった。

JDKとJRE

 Adempiereインストール際、サーバー側にJDKをインストールした。  端末側でブラウザではなく、独自の画面を使う場合は JREのインストールが必要だ。  でも・・・  JDKとJREって何やねん?  だったので、JDKとJREとは何かを調べる事にした。
JDKとJRE
JDK Java Developement Kitの略

Javaプログラムを行ったり、Javaでシステム開発する時の道具だ。
JRE Java Runtime Environmentの略

Java言語で書かれたプログラムを実行するのに必要なソフト。

 JREを図式化すると、こういう役目を果たす。

JREの役割
JREとは何か
Javaプログラムを走らせるために必要なソフトだ。
図式化すると、JREの上でJavaを走らせているのだ。

 もう少し調べると、JVMという言葉が出てきた。
 JVMの「VM」という文字を見て、仮想マシンを連想する。

JREとJVM
Javaプログラムを動かす仕組み
Javaプログラムは、どのOS、どのハードウェアでも動く
プログラムとして登場した物だ。
実際は、互換性の問題があったりするのだが・・・

JavaをJVM上で動かしている。JVMはJREの機能の一部で
Javaの命令を、ここのOSやハードウェアで動く言語に
翻訳する機能がある。

まるで仮想化と同じなのでJava Virtual Machineと呼ばれる。

 こんな事、知らへんかった!!

 少し賢くなった。

 さらにネットで調べると、わかりやすい説明を発見した。
 日経ITPro 人に聞けないJavaの常識(2)


 JREとJDKの関係は、次の図の関係だという。

JREとJDKの関係図
JREとJDKの関係図
JREはJavaプログラムを動かすためのソフトだ。
JDKは、Javaプログラムを動かすだけでなく
Javaの開発環境も含めたソフトだという。

ちなみに、JVM単体では何もできないためJRE全体で
Javaプログラムを動かすのだ。

 勉強になった。


 ここで思った。

 JNPLファイルを取り込むにはJREが必要

 確かに、Adempiereを端末側(パソコン)で触る場合
JNPLファイルを取り込む作業がある。

jnlpファイルのダウンロードの有無を訊かれる
jnlpファイルのダウンロードの有無を訊かれる
http://(サーバーアドレス)/webadminで接続した場合
Adempiere操作画面は、Web上ではなく、独自の画面が立ち上がる。
そのために、jnplファイルを取り込む必要があるのだが
これを動かすにはJREが必要だというのだ。

 jnplファイルを動かすにはJREが必要。

 jnplファイルとJREとの関係は何やねん?

 そこで調べてみる事にした。すると以下のサイトを発見した。
 jnplファイルの作り方

 JavaアプリをWebでクライアントに配布する

 Java Web Startという仕組みがある!

 どうやってJavaアプリを取り込むのかを記述したファイルが
jnplファイルだという。
 「Java Network Launching Protocol」の略だというのだ。

 だが、これを読んだままでは

 Java Web Startって何やねん? 

 なのだ。

 そこで調べてみると以下のサイトがあった。
 Java Web Start とは何ですか。また、どうやって起動しますか。

Java Web Start
ブラウザを使ってJavaプログラムをを端末に配布して
クライアント(端末)上でJavaを動かす仕組みだという。

クライアント上でJavaを動かすために、クライアントに
JREが必要になるのだ。

 Adempiereを端末(パソコン)で操作する場合
独自の画面が出てくるのは、JavaのGUIを使っているからであり
Javaを動かすには、JREが必要になるというのだ。

 ところで・・・

 JNLPファイルの中身はどうなってんねん?

 そこでAdempiereの端末(クライアント)側を起動させる時に取り込んだ
adempiere.jnlpファイルの中身を見てみる事にした。

adempiere.jnlpファイルの中身

<?xml version = "1.0" encoding = "UTF-8"?> <jnlp spec = "1.6+" version = "3.6.0LTS" codebase = "http://(AdempiereサーバーのURL)/admin/adempiereHome" 	href = "http://(AdempiereサーバーのURL)/admin/adempiere.jnlp">
 <information>
   <title>Adempiere Client 3.6.0LTS http://(AdempiereサーバーのURL)/admin</title>
   <vendor>ADempiere, Inc.</vendor>
   <homepage href = "http://www.adempiere.org"/>
   <offline-allowed/>
   <description>Adempiere ERP+CRM (http://(AdempiereサーバーのURL)/admin) - Smart Business Solution for Distribution and Service - globally</description>
   <description kind = "short">Adempiere ERP+CRM (http://(AdempiereサーバーのURL)/admin)</description>
   <description kind = "one-line">Adempiere ERP+CRM</description>
   <description kind = "tooltip">Adempiere ERP+CRM (http://(AdempiereサーバーのURL)/admin)</description>
   <icon href = "http://(AdempiereサーバーのURL)/admin/C32.gif"/>
   <shortcut online="true">
     <desktop/>
     <menu submenu="Adempiere 3.6.0LTS http://(AdempiereサーバーのURL)/admin"/>
   </shortcut>
 </information>

 <security>
  <all-permissions/>
 </security>

  <resources>
   <j2se version = "1.6+" href = "http://java.sun.com/products/autodl/j2se" initial-heap-size = "32m" max-heap-size = "512m"/>
   <jar href = "Adempiere.jar" main = "true" download = "eager"/>
   <jar href = "AdempiereCLib.jar" main = "false" download = "eager"/>
   <jar href = "CompiereJasperReqs.jar" main = "false" download = "eager"/>
   <property name="adempiereJNLP" value="http://(AdempiereサーバーのURL)/admin"/>
  </resources>

  <application-desc main-class = "org.compiere.Adempiere"/>

</jnlp>


XML形式で書かれているのだが、チンプンカンプンなのだ。
<resources>タグに囲まれた部分では、取り込むJavaプログラムと
そのプログラムの置き場が記述されている感じがする。



JBOSSとは

 Adempiereを動かすには、JBOSSが必要だ。  Javaに関係する物なのは、わかるのだが  一体、何なのか、知らへん!  だった。  総務の事務員なので知らなくても当然。  だが、知るは一時の恥、知らぬは一生の恥。  事務員と名乗って開き直っている私は「わからへん」と言うのは 別に何とも思わないが、知らないまま放置しているのは、格好が悪い。  そこで調べてみる事にした。  すると、JavaEEアプリケーションサーバーだという。  JavaEEアプリケーションサーバーって何やねん?  そしてJBOSSの事を「EJBコンテナ」と書いているサイトもあった。  EJBって何やねん?  という事で調べてみた。
EJBとは
Enterprise JavaBeansの略だという。
Beansの意味は、本来は「豆」なのだがコンピューターでは
派生して「部品化されたプログラム」になっているようだ。

JavaBeansの意味は次のようになる。
「Javaで書かれた再利用可能なソフトウェアコンポーネント
もしくは、その仕様」という意味だ。

C言語のライブラリみたいな物だろうか?

 わかったような、わからんような感じだった。
 そこで、もう少し調べてみる事にした。

 すると、3つぐらいの定義みたいな物を発見した。

JBOSSとは
(1) オープンソースミドルウェア
(2) Webアプリ開発のためのフレームワーク
(3) J2EEアプリケーションサーバー

 これだと、よくわからんので、アプリケーションサーバーとは何かを
調べてみた。

アプリケーションサーバーとは
ミドルウェアの一種。
アプリケーションを構築する上で、土台となるアプリケーション

ところでミドルウェアとは何かを調べてみた。
IT用語辞典 ミドルウェア
各アプリケーションで共通して使う機能を、個々に開発していたら
非効率なので、共有できるソフトの事を言うのだ。
データベースが良い例なのだ。

 これだけだと、具体的な物が見えてこない。
 そこで調べると、ThinkITのサイトで、
Webアプリケーションサーバーを図式化した物を発見した。
 第1回:J2EE仕様準拠のAPサーバ 〜 JBoss

Webアプリケーションサーバーを図式化した物
Webアプリケーションサーバーを図式化した物
各アプリが共通して使う機能(認証機構など)を提供して
各アプリの開発効率を良くしたりするためのソフトが
アプリケーションサーバーなのだ。

 これでアプリケーションサーバーの意味がわかった。
 ThinkITのサイトを見ていくと、JBOSSのアーキテクチャの図があった。

JBOSSのアーキテクチャー
JBOSSのアーキテクチャー
JBOSSもアプリケーションサーバーの1つで
Javaプログラムで必要な機能を提供しているのだ。

ところでJBOSSはマイクロカーネルというのだ。
JBOSSカーネルが簡単な処理や調整を行い
カーネルとは独立した形で、他の機能が動いているのだ。

 わかったような、わからん話だ

 知ったかぶりしても何も得がない上、メッキが剥がれる方が
格好が悪いので、さっさと「わからん」と言うのが吉なのだ。

 ちなみに、JBOSSの場合、起動させる必要がある。
 JBOSSカーネルを動かすためなのだ。

AdempiereとJBOSSとの関係

 Adempiereの設定時にも、JBOSSを起動させていた。  ところで2つは、どういう関係なのか図にすると以下のようになる。
Adempiereのアーキテクチャー
Adempiereのアーキテクチャー
この図式は、あるサイトで見たのだが、失念してしまった。

JBOSSはJavaプログラムで汎用性のある機能を提供しているので
Adempiereの土台になっているといっても問題ないと思う。

 これでようやくJavaの話の概略が理解できたのだ。


Adempiereは日本で普及するのか

 Adempiereは日本に普及するのか。  だが、ここに大きな問題が横たわっている。  欧米の発想で作られた業務システム  なのだ。  これは重要になってくる。  日本でのERP導入事例を調べていくと、結構、失敗事例を発見する。  そして日本企業が抱える問題点を鋭く指摘した記事を発見した。  日経ITPro なぜ多くの日本企業がERP導入に失敗したのか  日経ITPro IFRSとERPに共通する欧米的価値観  欧米は性悪説で合理主義。そのため、ガッチリと契約でかためる契約社会。  日本では性善説で呵吽の呼吸。契約が曖昧になる上、非合理がまかり通る。  そのため、日本では普通に行われている業務は、 欧米では考えられないのだ。
欧米ではありえない日本の商習慣
(1) 単価未決で出荷
(2) 受注処理をせずに、先に出荷する行為
(3) 「掛」での取引。
その月で締めて、まとめて支払うという形態がない。
欧米では性悪説なので食いっぱぐれがないように
現金取引だったりする
(4) 約束手形での支払い
欧米では、数ヶ月先の現金化はありえない

 日本企業に、どっぷり浸かった私。
 しかも欧米で働いた事がないだけに・・・

 このぐらいしか思いつかへん (--;;

 のだ。


 記事を読むと、欧米とは違い、日本の場合、競争の優位性を出すために

 顧客の無理な取引要求を飲む

 があるという。
 確かに、色々な要望がやってくる。
 全て応えた場合、業務処理が増えたり、複雑化

 業務の標準化ができない!

 問題が発生する。
 人海戦術の時代ならまだしも、システム化の時代
臨機応変な処理が行いにくくなっている。
 システムの処理項目の追加や変更で時間と費用もかかってしまう。


 ところで契約社会の欧米では、契約書が大事になってくるのだが

 電話での口頭での発注はあるのか?

 と思った。

 日本では当たり前に行われているのだが、欧米ではどうなのか?
 確かめようがないのだが、日本で当たり前に行われている事が
欧米では非常識になるかもしれない事が、色々、出てくるかもしれない。

 合理性を追求した欧米の業務にあったERP。
 とてもじゃないが、日本には適用しにくい状態だ。


 こんなサイトを見つけた。
 ERPシステム(1)日本式経営との適合性 | 香港★起業★日記

 経営陣の現状把握と現場の生産性の犠牲

 責任の所在が明確な欧米。曖昧な日本。
 そして・・・

 的確な経営判断と株主への説明が求められる欧米

 なので、欧米の経営陣が自分の地位を確保できるために
ERPのような会社全体の状態を俯瞰できるシステムが強く求められているようだ。

 日本の場合、株主と経営陣が緊張関係にあるのだろうか?
 となれば、立派なERPを導入しても、緊張感がないために
経営状態を活用する事を考えずに、売上げが悪い部署に「頑張れ」と言って
仕事をした気になっている役員がいても不思議ではない。


 そして、思ったのは、現場の生産性が下がった場合

 欧米では人員を補充するのだろうか?

 日本だと現場の生産性が下がっても、根性論や精神論が横たわり
残業が増える結果になってしまう。

東南アジアでの普及と日本の未来

 東南アジアでのAdempiereの導入事例を、いくつか発見する。  DempiereとPentaho、、、 ADempiereの各国の導入状況(あとIFRSも少し)  発展途上国では、経営のあり方、業務方式などが未成熟だと思われる。  色々な意味で整備が進められるのだが、整備の過程において 欧米の合理的な取り入れて定着する事も考えられる。  そして、こんな資料まで発見してしまった。  ERPやITに象徴される経営者と社員 日本vs欧米やアジア企業  PDFファイルの資料を読んでいく。  そしてふと思った。  恐ろしい未来が待っている
日本企業が迎える恐ろしい未来予想
国内でしか通用しないガラパゴス業務がまかり通る昨今。
だが、非合理的な上、標準化が得意なITとは、相性も悪い。

今は東南アジアの業務や制度が未発達だが、欧米の合理的な考えが
東南アジアに浸透し、ERPを導入していけば、賃金だけでなく
生産性の向上も考えられる。

はたして、日本は、高い賃金と非効率の業務が維持できるのだろうか?
日本の凋落が予感できるだけに、恐ろしさを感じてしまった。

 もう、ITうんぬんではなく、経営手法にメスを入れていかないと
解決できない問題だ。そして個々の企業だけでなく日本企業全体の問題だ。

 だが、私が勤務先の処方箋を書いたとしても取引先などが
同調して、同じように改革を行わないと意味がない。
 抜け駆けしようにも、できないのだ。


 そして書店などに並ぶ経営の書籍は、大半が欧米の手法だ。

 日本人気質に合わない場合が多い!

 と思われる。

 SWOT分析、クロス分析といった経営戦略の入門の話でも
日本人には向いていないからだ。

経営戦略と日本人気質
SWOT分析 欧米では各人の価値観・考えが異なるのが前提なので
お互いの違いや視点を明確にするために、書き出し
価値観や考えの共有化が目的。

だが、日本では「言わなくてもわかるだろ」で
自分と他者の考えが類似しているという幻想が起こるため
「書き出せ」と言っても、書き出さない。

その上、違った意見を言う事を恐れるため
周囲の様子を見て、意見を出さなかったり
後出しジャンケンになりがちでもある。
クロス分析 欧米では意見対立と衝突が前提
対立している項目をぶつけて、新しい物を見出す発想。

だが、日本で対立を嫌う上、意見対立すると
感情まで対立するという未成熟な所があるため
意見対立を前提とした手法は機能しない。

 経営戦略手法については「システム奮闘記:その97」(経営戦略入門)をご覧下さい。


 本来なら、経営手法の話が、より効率的な経営を目指すための
基本的な方法なのに、日本人気質に向いていないため
日本では機能不全を起こす。

 そのため・・・

 理論と実践は異なる!

 といった履き違えた意見が出てくるのだ。


 国際化社会。日本の良い面は残しても、無意味な非合理的な所は
見直していかない限り、国際競争力がつかない。

 それにしても大きな問題が横たわっているのが見えたと同時に、
自分の力では、どうにもならない状態に、無力感を感じてしまう。


最後に  オープンソースERPのAdempiereのインストールの話を書きました。  四苦八苦しながらも、なんとかインストールできました。  次はAdempiereを実際に触っていく段階です。  事業を起こした気持ちで、架空の会社名を登録して 業務の疑似体験ができれば、ERPの勉強ができると思う。  このAdempiereが日本の企業に広がるかどうかは 日本の商習慣を断ち切って、欧米に近づけるかが鍵になると思った。  Adempiereとシステム奮闘記の連携。  中小企業のIT化のいう題材で、面白そうな企画ができるかもしれない。  そんな夢(妄想?)を描いてしまう今日この頃。

次章:「婚活 Yahooお見合い データマッチングと婚活」を読む
前章:「電気回路入門」を読む
目次:システム奮闘記に戻る

Tweet