以前営業の西島さんが作成した Requisiton (購買依頼)から Purchase Order を作成したとき、ワークフロー的な機能はなんだろう?と思い、思いつきで "Request" を作成してみました。
いろいろ入力してみたものの、よく分からず今回は断念しました(というわけでワークフロー的には「声をかける」という原始的なプロセスを設定)。
まぁ、そまでは良いのですが、 Request を中途半端な状態のまま残してしまって消せなくなってしまいました。
メッセージを見ると、消そうとしてテーブル "r_request" のレコードは他のテーブル "r_requestaction" から参照されているので、消せないとか。。
r_requestaction のテーブルをどうやって消すのかわからないし、、、ぢゃテーブル直接いじっちゃいますか。。。。(やっていいかは解らないので人様には勧めませんが、今後DBを直接いじることも出てくると思いますので予行演習ということで、、)
まずssh でサーバーへ接続。
PC から Putty 使っても、VNCでデスクトップ開いてもいいのですが、私はMAC のターミナル使ってサーバーにアクセスしました。
(必要であればそれぞれ以前の記事のリンクを参照ください。)
MacのターミナルでAWSのサーバーにログインします。
# su - postgres
[root@ip ~]# su - postgres-bash-4.1$
-bash-4.1$ psql -d idempiere -U adempiere
psql (9.3.5)
Type "help" for help.
---------------------------------------------
テーブル群を見てみます。
テーブル:r_request と r_requestaction がありました。
---------------------------------------------
idempiere=# \d
List of relations
Schema | Name | Type | Owner
-----------+-------------------------------+-------+-----------
adempiere | a_asset | table | adempiere
adempiere | a_asset_acct | table | adempiere
-----省略------
adempiere | r_request | table | adempiere
adempiere | r_request_v | view | adempiere
adempiere | r_requestaction | table | adempiere
----省略------
idempiere=#
---------------------------------------------
テーブル:r_request のrequest IDを見てみます。
エラーメッセージの中に示されていた 1000004があります。
これの参照元をさがします。
---------------------------------------------
select r_request_id from r_request;
r_request_id
--------------
100
1000001
1000002
1000003
1000004
(5 rows)
---------------------------------------------
テーブル:r_requestaction の request_IDを見てみます。
エラーメッセージの中に示されていた 1000004があります。
---------------------------------------------
idempiere=#
select r_request_id from r_requestaction;
r_request_id
--------------
100
100
1000004
(3 rows)
---------------------------------------------
(良いか悪いか不明ですが、、)消しちゃいましょう。
---------------------------------------------
idempiere=# delete from r_requestaction where r_request_id = '1000004';
DELETE 1
iDempiere の画面に戻って、 Request を削除してみます。
adempiere | r_request | table | adempiere
adempiere | r_request_v | view | adempiere
adempiere | r_requestaction | table | adempiere
----省略------
---------------------------------------------
テーブル:r_request のrequest IDを見てみます。
エラーメッセージの中に示されていた 1000004があります。
これの参照元をさがします。
---------------------------------------------
select r_request_id from r_request;
r_request_id
--------------
100
1000001
1000002
1000003
1000004
(5 rows)
テーブル:r_requestaction の request_IDを見てみます。
エラーメッセージの中に示されていた 1000004があります。
---------------------------------------------
idempiere=#
select r_request_id from r_requestaction;
r_request_id
--------------
100
100
1000004
(3 rows)
---------------------------------------------
(良いか悪いか不明ですが、、)消しちゃいましょう。
---------------------------------------------
idempiere=# delete from r_requestaction where r_request_id = '1000004';
DELETE 1
ちなみに Postgresql にてテーブルを探すときは
¥d ですが、
¥d の後ろにテーブル名を付けると、そのテーブルが持つ項目名が出力されます。
(あれば)マニュアルを読むのが理想ですが、解らなければ項目名を確認したりデータそのものを出力させるなどすればデータに対する理解が進みます。
(DBの世界では「今見えているもの」だけで項目の定義を判断するのはとっても危険なのですが、それを理解した上で手っ取り早く外観を知るには結構使う手です。)
今までの流れからは脱線しましたが、DBを直接見たりいじったりする必要は出てくると思いますので、予行演習がてら試してみました。
(外部からSQLなどでデータに手を付けると iDempiereが担保している整合性を壊す可能性があるため、本来は十分な理解の上行うべきです。)
脱線ついでに以前ログインパスワードの暗号化のところで気になったテーブルを見てみました。
現時点はパスワードが平文であることがわかります。
今度暗号化を指定してもう一度テーブルを確認してみたいと思います。
idempiere=# select ad_user_id, name, password from ad_user;
ad_user_id | name | password
------------+----------------------------+---------------
102 | GardenUser | GardenUser
103 | Joe Sales |
104 | Carl Boss |
101 | GardenAdmin | GardenAdmin
50001 | WebService | WebService
100 | SuperUser | System
1000006 | clientUser | clientUser
1000005 | clientAdmin | clientAdmin
0 | System | System
1000020 | TaroSasaki | taro
1000030 | hamadaj | hamadaj
1000027 | NishijimaO | nishijimao
1000028 | UedaE | uedae
1000029 | takadas | takadas
0 件のコメント:
コメントを投稿