52
Open Source ERP Users Group 第 15 第第第第 2014 年 7 年 26 年 @ 年年年年年年年 年年年年年年年

Open Source ERP Users Group 第 15 回勉強会

  • Upload
    jude

  • View
    117

  • Download
    2

Embed Size (px)

DESCRIPTION

Open Source ERP Users Group 第 15 回勉強会. 2014 年 7 月 26 日 @ オープンソース・ワークショップ. 目次. はじめに [5min] お知らせ [5min] 特別編 [50min ] オープンプロジェクト [60min] モクモク会 [60min]. 目次. はじめに お知らせ 特別編 オープンプロジェクト モクモク会. はじめに ( 勉強会の目的 ). 目的 ADempiere に関する知識を共有し、全般的な理解を深める。 想定参加者 ADempiere の利用に興味を持っている人 - PowerPoint PPT Presentation

Citation preview

Open Source ERP Users Group第 15 回勉強会

2014 年 7 月 26 日@ オープンソース・ワーク

ショップ

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.2

目次

1. はじめに [5min]2. お知らせ [5min]3. 特別編 [50min]4. オープンプロジェクト [60min]5. モクモク会 [60min]

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.3

目次

1. はじめに2. お知らせ3. 特別編4. オープンプロジェクト5. モクモク会

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.4

はじめに( 勉強会の目的 )目的

ADempiere に関する知識を共有し、全般的な理解を深める。

想定参加者ADempiere の利用に興味を持っている人( 当面はユーザ視点に立ち、 ADempiere の標準機能を説明の中心とする。 )

参加者の前提知識特になし

勉強会の構成・業務編・システム編・特別編

参考資料●Bayu Chauya Pamungkas, “ADempiere 3.4 ERP Solutions “, PACKT● 湯浅和雄 , 「この 1 冊ですべてわかる 物流とロジスティクスの基本」 , 日本実業出版社

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.5

はじめに( 勉強会の目的 )

領域

理解度実利用に求められる知識に対して、体系的な整理が行われていない

領域

理解度 連続勉強会により、体系的な情報整理⇒ 勉強会の知識を基礎として、より高次の知見へ展開

本勉強会では、 ADempiere の導入支援として、基礎となる体系的な情報整理とその共有を目指します。コミュニティ参加者には本勉強会の知識をベースとして、より高次の理解に取り組んで頂き、知り得た内容を、コミュニティに共有頂く、といった”お互いに教えあう場”となればと考えています。

以前の課題

勉強会の目標

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.6

はじめに( 勉強会の注意点 )

勉強会参加者の興味対象は、人によって異なるため、必ずしも参加者全員の知的欲求を満たせるとは限りません。当活動はボランティアベースであるため、 B さん、 C さんの興味対象であるが A さんの興味対象外の事柄については、 A さんに期待するのではなく、各自で取り組んでみましょう。

Aさんの興味

Bさんの興味

Cさんの興味

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.7

はじめに(ADempiere の紹介 )

ADempiere の概要中小企業向け ERP として開発された Compiere から 2006 年に分岐して、開発されているソフトウェアおよび、その開発コミュニティ。Eric Raymond の著作、『伽藍とバザール』のバザール方式により開発がすすめられているプロジェクト。

ADempiere のシステム機能– Enterprise Resource Planning (ERP)– Supply Chain Management (SCM)– Customer Relationship Management (CRM)– Financial Performance Analysis– Integrated Point of sale (POS) solution– Integrated Web Store

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.8

はじめに(ADempiere の紹介 )

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.9

はじめに(ADempiere の紹介 )

受注

出荷

売上

債権管理

入金

生産

在庫

財務会計

人事給与

発注

入荷

仕入

債務管理

支払

顧客 取引先販売管理

生産・在庫管理

購買管理

債務管理債権管理 人事管理

財務会計

商品 商品 商品 商品

注文 注文受注情報 発注指示

請求書 請求書

代金代金

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.10

目次

1. はじめに2. お知らせ3. 特別編4. オープンプロジェクト5. モクモク会

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.11

お知らせ( リリース情報 )• 特になし

• 翻訳確認– https://sourceforge.jp/ticket/browse.php?group_id=2599&tid=34053

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.12

お知らせ(ADempiere/iDempiere Wiki 更新 )• iDempiere Wiki 更新

– New Feature for v3.0• https://sourceforge.jp/ticket/browse.php?group_id=2599&tid=34053

– コンパイル環境構築• http://wiki.idempiere.org/w-en/index.php?title=Installation_in_Eclipse&oldid=5675

• ADempiere Wiki– Getting Started

• http://www.adempiere.com/JP/Table_of_Contents#Getting_Started

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.13

お知らせ( その他 )• iDempiere Wiki の atom feed

– 言語ごとに Atom フィードの URL が異なる。主要な記事は EN配下で作成されている

• Prior Period Adjustment– 米国会計では、過去月の仕分けを修正する場合は、 Retained Earning ( 資本勘定 ) を直接修正

• 8/5 に Open Source Initiativeインタビュー– OSI director の Tony Wasserman にインタビューを予定しており、 SaaSSや AGPL問題

などに対する意見を確認予定

• Bitbucket と GitHub の違い– GitHub はオープンソースとすることを前提とする開発プラットフォームである一

方、 Bitbucket はソースを限定公開することも可能。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.14

目次

1. はじめに2. お知らせ3. 特別編

1. Lightening Talk 2. コードリーディング /初期クライアント作成3. JUnit 入門4. Selenium 入門

4. オープンプロジェクト5. 今後の活動

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.15

Lightning TalkIFRS 各論 簡易説明 ( ジョイントアレンジメント )

IFRSとは

国際財務報告基準( IFRS: International Financial Reporting Standards)とは、国際会計基準審議会( IASB)および IASB の前身である国際会計基準委員会( IASC)により設定された会計基準( IAS および IFRS)および IFRS 解釈指針委員会( IFRIC)および IFRIC の前身である解釈指針委員会( SIC)により発表された解釈指針( SICs および IFRICs)の総称です。このうち会計基準については、財務諸表の作成および表示に関する概念フレームワーク、 IAS 第 1号から IAS 第 41号および IFRS 第 1号から IFRS 第 13号( 2011 年 6 月時点)までの個別基準書から構成されています。

IFRS導入によるメリット

財務諸表の透明性、比較可能性の向上グローバルな資金調達による資本調達コストの削減投資家向け広報活動( IR)を通じた、海外の投資家やその他の利害関係者とのコミュニケーションの向上と円滑化海外子会社を含む連結グループを統一された会計基準で管理・業績評価することが可能 IFRS導入を契機としたグループ全体の財務報告プロセスの効率化及び透明化

参考 HPhttp://www.shinnihon.or.jp/services/ifrs/about-ifrs/

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.16

IFRS 各論 簡易説明 ( ジョイントアレンジメント )

ジョイント・ベンチャーからジョイント・アレンジメントへ

新基準では、従来の基準 IAS 第 31号におけるジョイント・ベンチャーの概念をジョイント・アレンジメントという名称に変更し、踏襲している。従来のジョイントベンチャーの 3 分類 (( 1)共同支配の営業活動、( 2)共同支配の資産、( 3)共同支配企業 ) の概念に代わって、ジョイント・アレンジメントを( 1)ジョイント・オペレーション、( 2)ジョイント・ベンチャー の 2 つに分類している。

ジョイント・アレンジメントとは

ジョイント・アレンジメントは、複数の当事者が共同支配を有する取り決め(アレンジメント)と定義される。ここで共同支配とは、重要な意思決定は当事者単独ではなく複数の当事者の合意が必要であることを意味する。。例えば、 2 つの当事者がそれぞれ 50% ずつ議決権を有し、重要な決議には 51% 以上の賛成を要する旨の取り決めが行われている場合、いずれの当事者も単独では重要な意思決定を行うことができませんので、この場合は共同支配を有しています。さらに、ジョイント・アレンジメントは、その当事者の権利と義務の性格により「ジョイント・オペレーション」と「ジョイント・ベンチャー」の 2 つに分類される。。

簡潔にいうと、合弁会社等を設立した場合の投資会社の会計処理を規定した基準。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.17

IFRS 各論 簡易説明 ( ジョイントアレンジメント )

ジョイント・オペレーションとは

ジョイント・オペレーションとは、「アレンジメントを共同支配する当事者が、アレンジメントに関連する個々の資産に対する権利あるいは個々の負債に対する義務を有する取り決め」と定義される。会計的には、共同支配を有する当事者は、資産・負債等を個々に処理する権利を持つ。

ジョイント・ベンチャーとは

ジョイント・ベンチャーとは、「アレンジメントを共同支配する当事者が、アレンジメントの純資産に対する権利を有する取り決め」と定義される。出資者は、会計的には、純資産に対する権利を持つ。

資産

負債

純資産

ジョイント・アレンジメントの分類分類の視点:共同支配を有する当事者は、ジョイントアレンジメントの被投資企業の B/S の何に対する権利を有しているか?

資産・負債に対する権利 /義務→共同支配事業 (Joint operation)

純資産に対する権利 /義務→共同支配事業 (Joint venture)

ジョイント・アレンジメントの分類のまとめ図

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.18

IFRS 各論 簡易説明 ( ジョイントアレンジメント )

実務への影響

比例連結の適用不可

比例連結では、ジョイント・ベンチャーの資産・負債・収益・費用のうち自社の持分が財務諸表に合算されていたが、持分法ではこれらが全て投資勘定と持分法損益のみで表示されるため、有形固定資産・無形資産・収益等の個々の財務諸表項目の金額が減少する結果となる。またこれ以外にも、未実現利益消去・債権債務消去等の会計処理が異なるため、財務数値が大きく変更される可能性がある。

参考 HP

http://www.cfonews.jp/?p=5873

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.19

目次

1. はじめに2. お知らせ3. 特別編

1. Lightening Talk 2. コードリーディング /初期クライアント作成3. JUnit 入門4. Selenium 入門

4. オープンプロジェクト5. 今後の活動

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.20

コードリーディング(初期クライアント作成 /背景および事前準備 )

<背景 >• 初期クライアント作成を行ったところ、以前は、自動

生成されるカレンダーの名称が、「 XXX Calendar 」であったのに対し、今回は、「 XXX カレンダー」と日本になっている。

• 初期クライアント作成は何をやっているのか気になった。

< 事前準備 >• ソースは以下手順で eclipse に取り込むことが可能で

す。– http://www.adempiere.com/JP/Setup_Development_Environment

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.21

コードリーディング(初期クライアント作成 /ADempiere ソースフォルダ構成 )

<パッケージフォルダ >• base/src

– org.adempiere– org.compiere– org.eevolution

• glassfishfacet/src• jbossfacet/src• …

<通常フォルダ >• adempiere• base• client• data• doc• …

ソースファイルは以下フォルダ構成に格納。パッケージフォルダ上のソースがコンパイル対象 (?)Base/src に処理ロジックが実装された主要コードが格納。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.22

コードリーディング(初期クライアント作成 /InitialClientSetup)

• base/src– org.adempiere.process

• InitialClientSetup.java

• バッチプロセスは、一律 SrvProcess を継承

• 画面の入力パラメータがメンバー変数として管理され、 prepareメソッドでメンバー変数を取得し、 doIt でバッチ実行

⇒カレンダーを含むシードデータ作成は、 doIt に実装されている。

バッチ処理のソースは、 org.adempiere.process配下に格納。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.23

コードリーディング(初期クライアント作成 /InitialClientSetup)

1. 必須項目チェック2. クライアントおよびユーザーの重複チェック3. City_ID(都市 ) が入力されている場合は City_Name(都市名 ) を上書き

4. COA の読み取りチェック5. セットアップ処理 (Msetup.createClient) <- クライアント

の作成6. 会計設定 (Msetup.createAccounting) <- 会計設定7. 出力結果画面表示

InitialClientSetup.java の doIt は以下流れでの実装となってます。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.24

コードリーディング(初期クライアント作成 /MSetup)

1. カレンダーの作成 (Mcalendar)2. 勘定科目エレメントの作成3. 勘定科目の作成4. 会計スキーマの作成5. 会計スキーマエレメントの作成6. デフォルト勘定科目の作成7. GLカテゴリーの作成8. Baseドキュメントタイプの作成

カレンダーデータの作成は、 Msetup.createAccounting で実装。 createAccounting は以下が実装されている。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.25

コードリーディング(初期クライアント作成 /MCalendar)

public MCalendar (MClient client){

super(client.getCtx(), 0, client.get_TrxName());setClientOrg(client);setName(client.getName() + " " + Msg.translate(client.getCtx(), "C_Calendar_ID"));

} // MCalendar

Mcalendar は以下となってます。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.26

コードリーディング(初期クライアント作成 /translateメソッド )

public static String translate(Properties ctx, String text){

if (text == null || text.length() == 0)return text;String s = (String)ctx.getProperty(text);if (s != null && s.length() > 0)return s;return translate (Env.getAD_Language(ctx), Env.isSOTrx(ctx),

text);} // translate

Translateメソッドの実装はいかとなってます。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.27

コードリーディング(初期クライアント作成 /getAD_Language)

public static String getAD_Language (Properties ctx){if (ctx != null){String lang = getContext(ctx, LANGUAGE);if (!Util.isEmpty(lang))return lang;}return Language.getBaseAD_Language();} // getAD_Language

getAD_Language の実装はいかとなってます。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.28

コードリーディング(初期クライアント作成 /ctxの取得 )

• MSetup ms = new MSetup(Env.getCtx(), WINDOW_THIS_PROCESS);

getAD_Language は、 ctx に依存するが、 ctx 自体は、 Msetup のインスタンスの際に、以下のように取得

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.29

コードリーディング(初期クライアント作成 / まとめ )

• 初期クライアント設定の際には、英語の画面で実行した方がよい?

• モデルは compiere からあまりかわっていない• プロセスのロジックを見る場合には、 org.compiere/

adempiere.process をあたると、そこから先は、 modelに格納されており、 util 上のクラスが呼び出される、という階層関係にある。

• context 上で、セッション情報が格納されており、どのようにセットアップされるのかは、継続調査が必要。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.30

目次

1. はじめに2. お知らせ3. 特別編

1. Lightening Talk 2. コードリーディング /初期クライアント作成3. JUnit 入門4. Selenium 入門

4. オープンプロジェクト5. 今後の活動

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.31

JUnit 入門

1. JUnit とは2. インストール3. テストコードの作成4. テストコードの実行

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.32

JUnit 入門(JUnit とは )

< 概要 >• Java で開発された単体テストの自動化フレームワーク• Common Public License

<推奨される理由 >• 一度作成すれば素早くテスト可能• テストコードで仕様がわかる• 誰でも同じテストを行える

<Junit 利用上の課題とその対応 >• 仕様変更ごとにテストコードを作り直さなければならない

– テスト駆動開発では、仕様がテストコードにて伝えられるため、解消される (?)

• テストコードの作成に時間がかかる– ツールによりテストコードを自動生成できる ( 機能テストという位置づけで見なせば、十分 ?)

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.33

JUnit 入門(JUnit のインストール )

< コンソールでテストする場合 >• JUnit の jar ファイル

<Eclipse でテストする場合 >• Eclipse および、 JUnit plugin (Eclipse Helios 以降は標準搭載 )• Quick JUnit ( テスティングペアがないクラスを通知し、テ

ストクラスを自動生成 )• CodePro ( テストコードを自動生成 )• EclEmma ( コードカバレッジをビジュアル表示 )

以下をインストールする必要がある。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.34

JUnit 入門( テストコードの作成 )

• テストクラスは public クラスとする• テストメソッドは、 org.junit.Test アノテーションを付与

した publicメソッドとする• テストメソッドは、戻り値が void であり、引数を持た

ない• Throuws句は自由に定義可能

以下のルールにのっとり作成する必要がある。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.35

JUnit 入門( テストコードの作成 )

1. テスト対象コードを生成2. Src と並列に test コードのソースフォルダを作成3. Junit Test Case を作成4. テストコードを実装

以下流れでテストコードを作成する

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.36

JUnit 入門( テストコードの作成 / サンプルテストコードの作成 )

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.37

JUnit 入門( テストコードの作成 / サンプルソース )

package junit.tutorial;

public class Calculator {

public int multiply(int x, int y){return x*y;}

public float divide(int x, int y){

if(y==0)throw new IllegalArgumentException("divide by zero");return (float) x /(float) y;}}

}

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.38

JUnit 入門( テストコードの作成 / サンプルテストコード )package junit.tutorial.temp;

import static org.hamcrest.CoreMatchers.is;import static org.junit.Assert.*;import org.junit.Test;

public class CalculatorTest {

@Testpublic void multipyで3と4の乗算結果が取得できる () {

Calculator calc=new Calculator();int expected = 12;int actual=calc.multiply(3, 4);assertThat(actual, is(expected));

}

@Testpublic void multipyで5と7の乗算結果が取得できる () {

Calculator calc=new Calculator();int expected = 35;int actual=calc.multiply(5, 7);assertThat(actual, is(expected));

}

@Test (expected=IllegalArgumentException.class)public void divideで5と0のとき IllegalArgumentExceptionを送出する() {

Calculator calc=new Calculator();calc.divide(5, 0);

}}

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.39

JUnit 入門( テストコードの作成 / サンプルテストコード )

1. CodePro から、ソースを自動生成 ( ソースを選択の状態で、右クリック ->Code Pro Tools -> Generate Test Caseを選択 )1. テストコードが自動生成

CodePro から、テストコードを自動生成することも可能です。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.40

JUnit 入門( テストコードの実行 )

1. Run As -> Junit Test を実行1. 実行結果の OK/NG件数が表示

2. EclEmma を実行1. ソースファイルを見ると、通過パスが緑、未通過パスが赤で表示

2. ソースおよびテストケースの実行カバレッジが表示

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.41

目次

1. はじめに2. お知らせ3. 特別編

1. Lightening Talk 2. コードリーディング /初期クライアント作成3. JUnit 入門4. Selenium 入門

4. オープンプロジェクト5. 今後の活動

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.42

Selenium 入門

1. Selenium とは2. インストール3. テストコードの作成4. テストコードの実行

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.43

Selenium 入門(Selenium とは )

< 概要 >• Java で開発された Web アプリケーションの自動テストツール• Apache License2.0• Selenium IDE, Client API, RC, Web Driver, Grid から構成される• Jenkins, Grails, Maven, Visual Studio, Drupal との連携が可能

<Selenium 利用のメリット >• 回帰テストの簡易化• テストの前倒し ( 開発工程での品質向上 )• テストケースの反復実行• テストケースおよびバグのレポート作成• CI の実現等

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.44

Selenium 入門(Selenium とは )

Selenium2 は、以下のモジュールから構成される。(初代 Selenium から変更が発生してます )

モジュール 機能Selenium IDE Firefox のアドオンとして動作し、画面操作を記録し、

スクリプトとして保存。アサーションによる検証内容を定義できる。

Selenium WebDriver プログラム言語からの Client API コールを受けて、ブラウザのドライバを介して、ブラウザでの処理を実行するもの。対応言語としては、 Python, Ruby, Java, C# 。Selenium RC の後継

Selenium Grid リモートマシン上 (WebDriver ノード ) でのテスト実行を実現するためのサーバーモジュール

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.45

Selenium 入門(Selenium とは )

Web アプリケーション

Webブラウザ

Selenium Web Driver

Test Code(Java, .Net, Ruby Python)

プログラムから、 Selenium Web Driver を経由して、テストを制御することもできる。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.46

Selenium 入門(インストール )

1. Selenium のサイトにアクセスし、インストーラをダウンロード1. http://seleniumhq.org

2. インストールが終わると、ツールメニューから、以下のように Selenium IDE を起動できるようになります。

Selenium IDE のインストール、実行を以後に記載します

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.47

Selenium 入門( テストコードの作成 )

処理ステップの情報が記録される。Assert もしくは、 verify から始まるコマンドで検証ロジックを実装。

画面操作で記録されたものを後から手動編集できる。

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.48

Selenium 入門( テストコードの作成 )

ZK Library が利用されている ADempiere / iDempiere だと、 Element ID が同的に変化するため、画面項目の値を検証できない (?)

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.49

目次

1. はじめに2. お知らせ3. 特別編4. オープンプロジェクト5. 今後の活動6. モクモク会

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.50

オープンプロジェクト

• 準備の関係で、今回はなし

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.51

目次

1. はじめに2. お知らせ3. 特別編4. オープンプロジェクト5. モクモク会

Copyright © 2013 Open Source ERP Users GroupAll Rights Reserved.52

著作権・免責事項

著作権本書の記載内容は、著作権の対象となっています。本書の内容の全部または一部について、私的使用または引用等著作権法上認められた行為として、適宜の方法により出所を明示することにより、引用・転載複製を行うことができます。

免責事項本書に記載されている情報の正確さについては万全を期しておりますが、利用者が本書の情報を用いて行う一切の行為について、何ら責任を負うものではありません。

その他本書は、予告なしに内容を変更または SourceForge.jp からの公開の取りやめを行う場合がありますが、あらかじめご了承ください。

本書の記載内容に関するお問い合わせ先Open Source ERP Users Group

http://www.oss-erp.jp/