<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.idempiere.org/w-en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Red1</id>
	<title>iDempiere en - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.idempiere.org/w-en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Red1"/>
	<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/en/Special:Contributions/Red1"/>
	<updated>2026-09-30T21:11:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23623</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23623"/>
		<updated>2026-01-23T23:44:25Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
Maintainer: [[User:Red1|Redhuan D.]] Oon, CTFL. (red1org@gmail.com)&lt;br /&gt;
&lt;br /&gt;
Based on: OFB-Consulting, Chile&lt;br /&gt;
&lt;br /&gt;
Sponsor: Zeeshan Hasan (zeeshan@sysnova.com)&lt;br /&gt;
&lt;br /&gt;
Current Version: 2.1.0.3 for iDempiere 13&lt;br /&gt;
&lt;br /&gt;
License: GPLv2&lt;br /&gt;
&lt;br /&gt;
====Source: https://github.com/red1oon/idempiere-asset-maintenance&amp;lt;nowiki/&amp;gt;====&lt;br /&gt;
Binary: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/org.asset.maintenance_2.1.0.202601231802.jar org.asset.maintenance_2.X.X.jar] (available in target/ folder)&lt;br /&gt;
&lt;br /&gt;
Garden World: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/SampleData2Pack.zip Sample Data]&lt;br /&gt;
&lt;br /&gt;
Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow)&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
===Features:===&lt;br /&gt;
&lt;br /&gt;
====Core Functionality:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, calendar days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling with configurable intervals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined task sequences&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Plans linked to assets with scheduling rules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order (OT) generation from maintenance plans or requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order task tracking with duration and resource allocation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging with reading history&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Request workflow (Draft → Approved → Work Order)&lt;br /&gt;
&lt;br /&gt;
==== Windows:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter - Define meter types (Kilometers, Operating Hours, Calendar Days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard - Create reusable job templates with task lists&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance - Asset maintenance plans with scheduling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Order/Work Order (OT) - Work order management and execution&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Request - Maintenance request submission and approval&lt;br /&gt;
&lt;br /&gt;
====Reference Lists:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard Type (AA-Asset Adjustment, CM-Corrective, PM-Preventive, PD-Predictive)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintain Area (EL-Electrical, ME-Mechanical, OP-Operational, SF-Safety)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Document Status for Request (AP-Approved, VO-Voided, WC-Waiting Confirmation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Resource Type (BP-Business Partner, BT-B.Partner Type, HH-Human, RR-Resource, TT-Tool/Equipment)&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
===Release Notes:===&lt;br /&gt;
Version 2.1.0.3 (January 2026) - iDempiere 13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Tested: Silent pack-in support with proper filename format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: SQLStatement format for sample data (FK-safe import)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: GardenWorld sample data with 3 assets, 3 job standards, 3 maintenance plans&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: MP_RefList values aligned with AD_Reference definitions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Document Status values (AP/VO/WC) for Request workflow&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Resource Type values (BP/BT/HH/RR/TT) for work order resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: HELP text added at AD_Tab level for all windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: Dict2Pack - silent dictionary export from PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: GenericPO2Pack --sql - FK-safe sample data export&lt;br /&gt;
&lt;br /&gt;
====Version 2.0.0 (2024)====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Initial release for iDempiere 12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Core maintenance management functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Based on OFB-Consulting Chile original work&lt;br /&gt;
&lt;br /&gt;
====Version 1.x (Legacy) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Original ADempiere/Compiere version by OFB-Consulting&lt;br /&gt;
&lt;br /&gt;
==== Installation:====&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
  - Copy org.asset.maintenance_2.0.0.jar to $IDEMPIERE_HOME/plugins/&lt;br /&gt;
&lt;br /&gt;
2. OSGI Plugins Console - Install and Press Start. &lt;br /&gt;
&lt;br /&gt;
3. Load sample data (as GardenWorld Admin)&lt;br /&gt;
&lt;br /&gt;
  - Pack In &amp;gt; data/SampleData2Pack.zip&lt;br /&gt;
&lt;br /&gt;
  - Or silent: copy as 202601231700_GardenWorld_SampleData.zip&lt;br /&gt;
&lt;br /&gt;
  - Or SQL: psql -d idempiere -f data/GardenWorldSample.sql&lt;br /&gt;
&lt;br /&gt;
4. Sync sequences (System Admin)&lt;br /&gt;
&lt;br /&gt;
  - System Admin &amp;gt; Sequence Check (process)&lt;br /&gt;
&lt;br /&gt;
Silent Pack-In Filename Format:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt;_&amp;lt;AD_Client.Value&amp;gt;_&amp;lt;Description&amp;gt;.zip&lt;br /&gt;
&lt;br /&gt;
  Examples:&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_SYSTEM_AssetMaintenance.zip (dictionary to System)&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_GardenWorld_SampleData.zip (data to GardenWorld)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page or GitHub Issues.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23622</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23622"/>
		<updated>2026-01-23T20:10:28Z</updated>

		<summary type="html">&lt;p&gt;Red1: user tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
==== Maintainer: [[User:Red1|Redhuan D.]] Oon, CTFL. (red1org@gmail.com)====&lt;br /&gt;
&lt;br /&gt;
====Based on: OFB-Consulting, Chile====&lt;br /&gt;
&lt;br /&gt;
====Sponsor: Zeeshan Hasan (zeeshan@sysnova.com)====&lt;br /&gt;
&lt;br /&gt;
====Current Version: 2.1.0.3 for iDempiere 13====&lt;br /&gt;
&lt;br /&gt;
====License: GPLv2====&lt;br /&gt;
&lt;br /&gt;
====Source: https://github.com/red1oon/idempiere-asset-maintenance&amp;lt;nowiki/&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
====Binary: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/org.asset.maintenance_2.1.0.202601231802.jar org.asset.maintenance_2.X.X.jar] (available in target/ folder)====&lt;br /&gt;
&lt;br /&gt;
====Garden World: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/SampleData2Pack.zip Sample Data]====&lt;br /&gt;
&lt;br /&gt;
====Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow)====&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
===Features:===&lt;br /&gt;
&lt;br /&gt;
====Core Functionality:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, calendar days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling with configurable intervals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined task sequences&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Plans linked to assets with scheduling rules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order (OT) generation from maintenance plans or requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order task tracking with duration and resource allocation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging with reading history&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Request workflow (Draft → Approved → Work Order)&lt;br /&gt;
&lt;br /&gt;
==== Windows:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter - Define meter types (Kilometers, Operating Hours, Calendar Days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard - Create reusable job templates with task lists&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance - Asset maintenance plans with scheduling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Order/Work Order (OT) - Work order management and execution&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Request - Maintenance request submission and approval&lt;br /&gt;
&lt;br /&gt;
====Reference Lists:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard Type (AA-Asset Adjustment, CM-Corrective, PM-Preventive, PD-Predictive)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintain Area (EL-Electrical, ME-Mechanical, OP-Operational, SF-Safety)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Document Status for Request (AP-Approved, VO-Voided, WC-Waiting Confirmation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Resource Type (BP-Business Partner, BT-B.Partner Type, HH-Human, RR-Resource, TT-Tool/Equipment)&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
===Release Notes:===&lt;br /&gt;
Version 2.1.0.3 (January 2026) - iDempiere 13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Tested: Silent pack-in support with proper filename format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: SQLStatement format for sample data (FK-safe import)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: GardenWorld sample data with 3 assets, 3 job standards, 3 maintenance plans&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: MP_RefList values aligned with AD_Reference definitions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Document Status values (AP/VO/WC) for Request workflow&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Resource Type values (BP/BT/HH/RR/TT) for work order resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: HELP text added at AD_Tab level for all windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: Dict2Pack - silent dictionary export from PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: GenericPO2Pack --sql - FK-safe sample data export&lt;br /&gt;
&lt;br /&gt;
====Version 2.0.0 (2024)====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Initial release for iDempiere 12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Core maintenance management functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Based on OFB-Consulting Chile original work&lt;br /&gt;
&lt;br /&gt;
====Version 1.x (Legacy) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Original ADempiere/Compiere version by OFB-Consulting&lt;br /&gt;
&lt;br /&gt;
==== Installation:====&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
  - Copy org.asset.maintenance_2.0.0.jar to $IDEMPIERE_HOME/plugins/&lt;br /&gt;
&lt;br /&gt;
2. OSGI Plugins Console - Install and Press Start. &lt;br /&gt;
&lt;br /&gt;
3. Load sample data (as GardenWorld Admin)&lt;br /&gt;
&lt;br /&gt;
  - Pack In &amp;gt; data/SampleData2Pack.zip&lt;br /&gt;
&lt;br /&gt;
  - Or silent: copy as 202601231700_GardenWorld_SampleData.zip&lt;br /&gt;
&lt;br /&gt;
  - Or SQL: psql -d idempiere -f data/GardenWorldSample.sql&lt;br /&gt;
&lt;br /&gt;
4. Sync sequences (System Admin)&lt;br /&gt;
&lt;br /&gt;
  - System Admin &amp;gt; Sequence Check (process)&lt;br /&gt;
&lt;br /&gt;
Silent Pack-In Filename Format:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt;_&amp;lt;AD_Client.Value&amp;gt;_&amp;lt;Description&amp;gt;.zip&lt;br /&gt;
&lt;br /&gt;
  Examples:&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_SYSTEM_AssetMaintenance.zip (dictionary to System)&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_GardenWorld_SampleData.zip (data to GardenWorld)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page or GitHub Issues.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=User_talk:Red1&amp;diff=23621</id>
		<title>User talk:Red1</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=User_talk:Red1&amp;diff=23621"/>
		<updated>2026-01-23T20:07:11Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My email is red1org@gmail.com.&amp;lt;br&amp;gt; &lt;br /&gt;
I have lost my previous red1.org to squatters during the plandemic, together with its historical forums. But it is archived [https://web.archive.org/web/20200922052554/http://red1.org/adempiere/index.php here]  [User:Red1]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23620</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23620"/>
		<updated>2026-01-23T19:50:02Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Maintainer: Red1 (talk) - Redhuan D. Oon red1org@gmail.com */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
==== Maintainer: Red1 (talk) - Redhuan D. Oon, CTFL. (red1org@gmail.com)====&lt;br /&gt;
&lt;br /&gt;
====Based on: OFB-Consulting, Chile====&lt;br /&gt;
&lt;br /&gt;
====Sponsor: Zeeshan Hasan (zeeshan@sysnova.com)====&lt;br /&gt;
&lt;br /&gt;
====Current Version: 2.1.0.3 for iDempiere 13====&lt;br /&gt;
&lt;br /&gt;
====License: GPLv2====&lt;br /&gt;
&lt;br /&gt;
====Source: https://github.com/red1oon/idempiere-asset-maintenance&amp;lt;nowiki/&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
====Binary: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/org.asset.maintenance_2.1.0.202601231802.jar org.asset.maintenance_2.X.X.jar] (available in target/ folder)====&lt;br /&gt;
&lt;br /&gt;
====Garden World: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/SampleData2Pack.zip Sample Data]====&lt;br /&gt;
&lt;br /&gt;
====Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow)====&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
===Features:===&lt;br /&gt;
&lt;br /&gt;
====Core Functionality:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, calendar days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling with configurable intervals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined task sequences&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Plans linked to assets with scheduling rules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order (OT) generation from maintenance plans or requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order task tracking with duration and resource allocation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging with reading history&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Request workflow (Draft → Approved → Work Order)&lt;br /&gt;
&lt;br /&gt;
==== Windows:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter - Define meter types (Kilometers, Operating Hours, Calendar Days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard - Create reusable job templates with task lists&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance - Asset maintenance plans with scheduling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Order/Work Order (OT) - Work order management and execution&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Request - Maintenance request submission and approval&lt;br /&gt;
&lt;br /&gt;
====Reference Lists:====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard Type (AA-Asset Adjustment, CM-Corrective, PM-Preventive, PD-Predictive)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintain Area (EL-Electrical, ME-Mechanical, OP-Operational, SF-Safety)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Document Status for Request (AP-Approved, VO-Voided, WC-Waiting Confirmation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Resource Type (BP-Business Partner, BT-B.Partner Type, HH-Human, RR-Resource, TT-Tool/Equipment)&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
===Release Notes:===&lt;br /&gt;
Version 2.1.0.3 (January 2026) - iDempiere 13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Tested: Silent pack-in support with proper filename format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: SQLStatement format for sample data (FK-safe import)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: GardenWorld sample data with 3 assets, 3 job standards, 3 maintenance plans&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: MP_RefList values aligned with AD_Reference definitions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Document Status values (AP/VO/WC) for Request workflow&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Resource Type values (BP/BT/HH/RR/TT) for work order resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: HELP text added at AD_Tab level for all windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: Dict2Pack - silent dictionary export from PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: GenericPO2Pack --sql - FK-safe sample data export&lt;br /&gt;
&lt;br /&gt;
====Version 2.0.0 (2024)====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Initial release for iDempiere 12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Core maintenance management functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Based on OFB-Consulting Chile original work&lt;br /&gt;
&lt;br /&gt;
====Version 1.x (Legacy) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Original ADempiere/Compiere version by OFB-Consulting&lt;br /&gt;
&lt;br /&gt;
==== Installation:====&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
  - Copy org.asset.maintenance_2.0.0.jar to $IDEMPIERE_HOME/plugins/&lt;br /&gt;
&lt;br /&gt;
2. OSGI Plugins Console - Install and Press Start. &lt;br /&gt;
&lt;br /&gt;
3. Load sample data (as GardenWorld Admin)&lt;br /&gt;
&lt;br /&gt;
  - Pack In &amp;gt; data/SampleData2Pack.zip&lt;br /&gt;
&lt;br /&gt;
  - Or silent: copy as 202601231700_GardenWorld_SampleData.zip&lt;br /&gt;
&lt;br /&gt;
  - Or SQL: psql -d idempiere -f data/GardenWorldSample.sql&lt;br /&gt;
&lt;br /&gt;
4. Sync sequences (System Admin)&lt;br /&gt;
&lt;br /&gt;
  - System Admin &amp;gt; Sequence Check (process)&lt;br /&gt;
&lt;br /&gt;
Silent Pack-In Filename Format:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt;_&amp;lt;AD_Client.Value&amp;gt;_&amp;lt;Description&amp;gt;.zip&lt;br /&gt;
&lt;br /&gt;
  Examples:&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_SYSTEM_AssetMaintenance.zip (dictionary to System)&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_GardenWorld_SampleData.zip (data to GardenWorld)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page or GitHub Issues.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23619</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23619"/>
		<updated>2026-01-23T19:47:21Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Release Notes: */ redundant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
==== Maintainer: Red1 (talk) - Redhuan D. Oon red1org@gmail.com ====&lt;br /&gt;
&lt;br /&gt;
==== Based on: OFB-Consulting, Chile ====&lt;br /&gt;
&lt;br /&gt;
==== Sponsor: zeeshan@sysnova.com ====&lt;br /&gt;
&lt;br /&gt;
==== Current Version: 2.1.0.3 for iDempiere 13 ====&lt;br /&gt;
&lt;br /&gt;
==== License: GPLv2 ====&lt;br /&gt;
&lt;br /&gt;
==== Source: https://github.com/red1oon/idempiere-asset-maintenance ====&lt;br /&gt;
&lt;br /&gt;
==== Binary: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/org.asset.maintenance_2.1.0.202601231802.jar org.asset.maintenance_2.X.X.jar] (available in target/ folder) ====&lt;br /&gt;
&lt;br /&gt;
==== Garden World: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/SampleData2Pack.zip Sample Data] ====&lt;br /&gt;
&lt;br /&gt;
==== Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow) ====&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
=== Features: ===&lt;br /&gt;
&lt;br /&gt;
==== Core Functionality: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, calendar days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling with configurable intervals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined task sequences&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Plans linked to assets with scheduling rules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order (OT) generation from maintenance plans or requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order task tracking with duration and resource allocation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging with reading history&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Request workflow (Draft → Approved → Work Order)&lt;br /&gt;
&lt;br /&gt;
==== Windows: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter - Define meter types (Kilometers, Operating Hours, Calendar Days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard - Create reusable job templates with task lists&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance - Asset maintenance plans with scheduling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Order/Work Order (OT) - Work order management and execution&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Request - Maintenance request submission and approval&lt;br /&gt;
&lt;br /&gt;
==== Reference Lists: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard Type (AA-Asset Adjustment, CM-Corrective, PM-Preventive, PD-Predictive)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintain Area (EL-Electrical, ME-Mechanical, OP-Operational, SF-Safety)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Document Status for Request (AP-Approved, VO-Voided, WC-Waiting Confirmation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Resource Type (BP-Business Partner, BT-B.Partner Type, HH-Human, RR-Resource, TT-Tool/Equipment)&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Release Notes: ===&lt;br /&gt;
Version 2.1.0.3 (January 2026) - iDempiere 13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Tested: Silent pack-in support with proper filename format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: SQLStatement format for sample data (FK-safe import)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: GardenWorld sample data with 3 assets, 3 job standards, 3 maintenance plans&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: MP_RefList values aligned with AD_Reference definitions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Document Status values (AP/VO/WC) for Request workflow&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Resource Type values (BP/BT/HH/RR/TT) for work order resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: HELP text added at AD_Tab level for all windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: Dict2Pack - silent dictionary export from PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: GenericPO2Pack --sql - FK-safe sample data export&lt;br /&gt;
&lt;br /&gt;
==== Version 2.0.0 (2024) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Initial release for iDempiere 12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Core maintenance management functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Based on OFB-Consulting Chile original work&lt;br /&gt;
&lt;br /&gt;
==== Version 1.x (Legacy) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Original ADempiere/Compiere version by OFB-Consulting&lt;br /&gt;
&lt;br /&gt;
==== Installation: ====&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
  - Copy org.asset.maintenance_2.0.0.jar to $IDEMPIERE_HOME/plugins/&lt;br /&gt;
&lt;br /&gt;
2. OSGI Plugins Console - Install and Press Start. &lt;br /&gt;
&lt;br /&gt;
3. Load sample data (as GardenWorld Admin)&lt;br /&gt;
&lt;br /&gt;
  - Pack In &amp;gt; data/SampleData2Pack.zip&lt;br /&gt;
&lt;br /&gt;
  - Or silent: copy as 202601231700_GardenWorld_SampleData.zip&lt;br /&gt;
&lt;br /&gt;
  - Or SQL: psql -d idempiere -f data/GardenWorldSample.sql&lt;br /&gt;
&lt;br /&gt;
4. Sync sequences (System Admin)&lt;br /&gt;
&lt;br /&gt;
  - System Admin &amp;gt; Sequence Check (process)&lt;br /&gt;
&lt;br /&gt;
Silent Pack-In Filename Format:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt;_&amp;lt;AD_Client.Value&amp;gt;_&amp;lt;Description&amp;gt;.zip&lt;br /&gt;
&lt;br /&gt;
  Examples:&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_SYSTEM_AssetMaintenance.zip (dictionary to System)&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_GardenWorld_SampleData.zip (data to GardenWorld)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page or GitHub Issues.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23618</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23618"/>
		<updated>2026-01-23T19:46:01Z</updated>

		<summary type="html">&lt;p&gt;Red1: readability, accuracy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
==== Maintainer: Red1 (talk) - Redhuan D. Oon red1org@gmail.com ====&lt;br /&gt;
&lt;br /&gt;
==== Based on: OFB-Consulting, Chile ====&lt;br /&gt;
&lt;br /&gt;
==== Sponsor: zeeshan@sysnova.com ====&lt;br /&gt;
&lt;br /&gt;
==== Current Version: 2.1.0.3 for iDempiere 13 ====&lt;br /&gt;
&lt;br /&gt;
==== License: GPLv2 ====&lt;br /&gt;
&lt;br /&gt;
==== Source: https://github.com/red1oon/idempiere-asset-maintenance ====&lt;br /&gt;
&lt;br /&gt;
==== Binary: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/org.asset.maintenance_2.1.0.202601231802.jar org.asset.maintenance_2.X.X.jar] (available in target/ folder) ====&lt;br /&gt;
&lt;br /&gt;
==== Garden World: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/SampleData2Pack.zip Sample Data] ====&lt;br /&gt;
&lt;br /&gt;
==== Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow) ====&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
=== Features: ===&lt;br /&gt;
&lt;br /&gt;
==== Core Functionality: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, calendar days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling with configurable intervals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined task sequences&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Plans linked to assets with scheduling rules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order (OT) generation from maintenance plans or requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order task tracking with duration and resource allocation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging with reading history&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Request workflow (Draft → Approved → Work Order)&lt;br /&gt;
&lt;br /&gt;
==== Windows: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter - Define meter types (Kilometers, Operating Hours, Calendar Days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard - Create reusable job templates with task lists&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance - Asset maintenance plans with scheduling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Order/Work Order (OT) - Work order management and execution&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Request - Maintenance request submission and approval&lt;br /&gt;
&lt;br /&gt;
==== Reference Lists: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard Type (AA-Asset Adjustment, CM-Corrective, PM-Preventive, PD-Predictive)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintain Area (EL-Electrical, ME-Mechanical, OP-Operational, SF-Safety)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Document Status for Request (AP-Approved, VO-Voided, WC-Waiting Confirmation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Resource Type (BP-Business Partner, BT-B.Partner Type, HH-Human, RR-Resource, TT-Tool/Equipment)&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Release Notes: ===&lt;br /&gt;
Version 2.1.0.3 (January 2026) - iDempiere 13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Tested: Silent pack-in support with proper filename format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: SQLStatement format for sample data (FK-safe import)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: GardenWorld sample data with 3 assets, 3 job standards, 3 maintenance plans&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: MP_RefList values aligned with AD_Reference definitions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Document Status values (AP/VO/WC) for Request workflow&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Resource Type values (BP/BT/HH/RR/TT) for work order resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: HELP text added at AD_Tab level for all windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: Dict2Pack - silent dictionary export from PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: GenericPO2Pack --sql - FK-safe sample data export&lt;br /&gt;
&lt;br /&gt;
==== Version 2.0.0 (2024) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Initial release for iDempiere 12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Core maintenance management functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Based on OFB-Consulting Chile original work&lt;br /&gt;
&lt;br /&gt;
==== Version 1.x (Legacy) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Original ADempiere/Compiere version by OFB-Consulting&lt;br /&gt;
&lt;br /&gt;
==== Installation: ====&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
  - Copy org.asset.maintenance_2.0.0.jar to $IDEMPIERE_HOME/plugins/&lt;br /&gt;
&lt;br /&gt;
2. OSGI Plugins Console - Install and Press Start. &lt;br /&gt;
&lt;br /&gt;
2.1 Login System : Do Sequence Check and Synch Terminology&lt;br /&gt;
&lt;br /&gt;
3. Load sample data (as GardenWorld Admin)&lt;br /&gt;
&lt;br /&gt;
  - Pack In &amp;gt; data/SampleData2Pack.zip&lt;br /&gt;
&lt;br /&gt;
  - Or silent: copy as 202601231700_GardenWorld_SampleData.zip&lt;br /&gt;
&lt;br /&gt;
  - Or SQL: psql -d idempiere -f data/GardenWorldSample.sql&lt;br /&gt;
&lt;br /&gt;
4. Sync sequences (System Admin)&lt;br /&gt;
&lt;br /&gt;
  - System Admin &amp;gt; Sequence Check (process)&lt;br /&gt;
&lt;br /&gt;
Silent Pack-In Filename Format:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt;_&amp;lt;AD_Client.Value&amp;gt;_&amp;lt;Description&amp;gt;.zip&lt;br /&gt;
&lt;br /&gt;
  Examples:&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_SYSTEM_AssetMaintenance.zip (dictionary to System)&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_GardenWorld_SampleData.zip (data to GardenWorld)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page or GitHub Issues.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23614</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23614"/>
		<updated>2026-01-23T10:27:01Z</updated>

		<summary type="html">&lt;p&gt;Red1: name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
Maintainer: Red1 (talk) - Redhuan D. Oon&lt;br /&gt;
&lt;br /&gt;
Based on: OFB-Consulting, Chile&lt;br /&gt;
&lt;br /&gt;
Copyright: red1org@gmail.com&lt;br /&gt;
&lt;br /&gt;
Sponsor: zeeshan@sysnova.com&lt;br /&gt;
&lt;br /&gt;
Current Version: 2.1.0.3 for iDempiere 13&lt;br /&gt;
&lt;br /&gt;
License: GPLv2&lt;br /&gt;
&lt;br /&gt;
Source: https://github.com/red1oon/idempiere-asset-maintenance&lt;br /&gt;
&lt;br /&gt;
Binary: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/org.asset.maintenance_2.1.0.202601231802.jar org.asset.maintenance_2.0.0.jar] (available in target/ folder)&lt;br /&gt;
&lt;br /&gt;
Garden World [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/SampleData2Pack.zip Sample Data]&lt;br /&gt;
&lt;br /&gt;
Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow)&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
==== Core Functionality: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, calendar days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling with configurable intervals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined task sequences&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Plans linked to assets with scheduling rules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order (OT) generation from maintenance plans or requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order task tracking with duration and resource allocation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging with reading history&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Request workflow (Draft → Approved → Work Order)&lt;br /&gt;
&lt;br /&gt;
==== Windows: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter - Define meter types (Kilometers, Operating Hours, Calendar Days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard - Create reusable job templates with task lists&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance - Asset maintenance plans with scheduling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Order/Work Order (OT) - Work order management and execution&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Request - Maintenance request submission and approval&lt;br /&gt;
&lt;br /&gt;
==== Reference Lists: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard Type (AA-Asset Adjustment, CM-Corrective, PM-Preventive, PD-Predictive)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintain Area (EL-Electrical, ME-Mechanical, OP-Operational, SF-Safety)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Document Status for Request (AP-Approved, VO-Voided, WC-Waiting Confirmation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Resource Type (BP-Business Partner, BT-B.Partner Type, HH-Human, RR-Resource, TT-Tool/Equipment)&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
==== Release Notes: ====&lt;br /&gt;
Version 2.1.0.3 (January 2026) - iDempiere 13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: Silent pack-in support with proper filename format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: SQLStatement format for sample data (FK-safe import)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: GardenWorld sample data with 3 assets, 3 job standards, 3 maintenance plans&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: MP_RefList values aligned with AD_Reference definitions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Document Status values (AP/VO/WC) for Request workflow&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Resource Type values (BP/BT/HH/RR/TT) for work order resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: HELP text added at AD_Tab level for all windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: Dict2Pack - silent dictionary export from PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: GenericPO2Pack --sql - FK-safe sample data export&lt;br /&gt;
&lt;br /&gt;
==== Version 2.0.0 (2024) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Initial release for iDempiere 12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Core maintenance management functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Based on OFB-Consulting Chile original work&lt;br /&gt;
&lt;br /&gt;
==== Version 1.x (Legacy) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Original ADempiere/Compiere version by OFB-Consulting&lt;br /&gt;
&lt;br /&gt;
==== Installation: ====&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
  - Copy org.asset.maintenance_2.0.0.jar to $IDEMPIERE_HOME/plugins/&lt;br /&gt;
&lt;br /&gt;
2. OSGI Plugins Console - Install and Press Start. &lt;br /&gt;
&lt;br /&gt;
2.1 Login System : Do Sequence Check and Synch Terminology&lt;br /&gt;
&lt;br /&gt;
3. Load sample data (as GardenWorld Admin)&lt;br /&gt;
&lt;br /&gt;
  - Pack In &amp;gt; data/SampleData2Pack.zip&lt;br /&gt;
&lt;br /&gt;
  - Or silent: copy as 202601231700_GardenWorld_SampleData.zip&lt;br /&gt;
&lt;br /&gt;
  - Or SQL: psql -d idempiere -f data/GardenWorldSample.sql&lt;br /&gt;
&lt;br /&gt;
4. Sync sequences (System Admin)&lt;br /&gt;
&lt;br /&gt;
  - System Admin &amp;gt; Sequence Check (process)&lt;br /&gt;
&lt;br /&gt;
Silent Pack-In Filename Format:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt;_&amp;lt;AD_Client.Value&amp;gt;_&amp;lt;Description&amp;gt;.zip&lt;br /&gt;
&lt;br /&gt;
  Examples:&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_SYSTEM_AssetMaintenance.zip (dictionary to System)&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_GardenWorld_SampleData.zip (data to GardenWorld)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page or GitHub Issues.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23613</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23613"/>
		<updated>2026-01-23T10:26:15Z</updated>

		<summary type="html">&lt;p&gt;Red1: 2.1.0.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
Maintainer: Red1 (talk) - RED1.org&lt;br /&gt;
&lt;br /&gt;
Based on: OFB-Consulting, Chile&lt;br /&gt;
&lt;br /&gt;
Copyright: red1org@gmail.com&lt;br /&gt;
&lt;br /&gt;
Sponsor: zeeshan@sysnova.com&lt;br /&gt;
&lt;br /&gt;
Current Version: 2.1.0.3 for iDempiere 13&lt;br /&gt;
&lt;br /&gt;
License: GPLv2&lt;br /&gt;
&lt;br /&gt;
Source: https://github.com/red1oon/idempiere-asset-maintenance&lt;br /&gt;
&lt;br /&gt;
Binary: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/org.asset.maintenance_2.1.0.202601231802.jar org.asset.maintenance_2.0.0.jar] (available in target/ folder)&lt;br /&gt;
&lt;br /&gt;
Garden World [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/Release2.1.0.3/SampleData2Pack.zip Sample Data]&lt;br /&gt;
&lt;br /&gt;
Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow)&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
==== Core Functionality: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, calendar days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling with configurable intervals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined task sequences&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Plans linked to assets with scheduling rules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order (OT) generation from maintenance plans or requests&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order task tracking with duration and resource allocation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging with reading history&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance Request workflow (Draft → Approved → Work Order)&lt;br /&gt;
&lt;br /&gt;
==== Windows: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter - Define meter types (Kilometers, Operating Hours, Calendar Days)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard - Create reusable job templates with task lists&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance - Asset maintenance plans with scheduling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Order/Work Order (OT) - Work order management and execution&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Request - Maintenance request submission and approval&lt;br /&gt;
&lt;br /&gt;
==== Reference Lists: ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Job Standard Type (AA-Asset Adjustment, CM-Corrective, PM-Preventive, PD-Predictive)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintain Area (EL-Electrical, ME-Mechanical, OP-Operational, SF-Safety)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Document Status for Request (AP-Approved, VO-Voided, WC-Waiting Confirmation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Resource Type (BP-Business Partner, BT-B.Partner Type, HH-Human, RR-Resource, TT-Tool/Equipment)&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
==== Release Notes: ====&lt;br /&gt;
Version 2.1.0.3 (January 2026) - iDempiere 13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: Silent pack-in support with proper filename format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: SQLStatement format for sample data (FK-safe import)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; NEW: GardenWorld sample data with 3 assets, 3 job standards, 3 maintenance plans&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: MP_RefList values aligned with AD_Reference definitions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Document Status values (AP/VO/WC) for Request workflow&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: Resource Type values (BP/BT/HH/RR/TT) for work order resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; FIX: HELP text added at AD_Tab level for all windows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: Dict2Pack - silent dictionary export from PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; TOOL: GenericPO2Pack --sql - FK-safe sample data export&lt;br /&gt;
&lt;br /&gt;
==== Version 2.0.0 (2024) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Initial release for iDempiere 12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Core maintenance management functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Based on OFB-Consulting Chile original work&lt;br /&gt;
&lt;br /&gt;
==== Version 1.x (Legacy) ====&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Original ADempiere/Compiere version by OFB-Consulting&lt;br /&gt;
&lt;br /&gt;
==== Installation: ====&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
  - Copy org.asset.maintenance_2.0.0.jar to $IDEMPIERE_HOME/plugins/&lt;br /&gt;
&lt;br /&gt;
2. OSGI Plugins Console - Install and Press Start. &lt;br /&gt;
&lt;br /&gt;
2.1 Login System : Do Sequence Check and Synch Terminology&lt;br /&gt;
&lt;br /&gt;
3. Load sample data (as GardenWorld Admin)&lt;br /&gt;
&lt;br /&gt;
  - Pack In &amp;gt; data/SampleData2Pack.zip&lt;br /&gt;
&lt;br /&gt;
  - Or silent: copy as 202601231700_GardenWorld_SampleData.zip&lt;br /&gt;
&lt;br /&gt;
  - Or SQL: psql -d idempiere -f data/GardenWorldSample.sql&lt;br /&gt;
&lt;br /&gt;
4. Sync sequences (System Admin)&lt;br /&gt;
&lt;br /&gt;
  - System Admin &amp;gt; Sequence Check (process)&lt;br /&gt;
&lt;br /&gt;
Silent Pack-In Filename Format:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt;_&amp;lt;AD_Client.Value&amp;gt;_&amp;lt;Description&amp;gt;.zip&lt;br /&gt;
&lt;br /&gt;
  Examples:&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_SYSTEM_AssetMaintenance.zip (dictionary to System)&lt;br /&gt;
&lt;br /&gt;
  - 202601231700_GardenWorld_SampleData.zip (data to GardenWorld)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page or GitHub Issues.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23605</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23605"/>
		<updated>2026-01-22T00:07:04Z</updated>

		<summary type="html">&lt;p&gt;Red1: Give links to successful jar release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
Maintainer: Red1 (talk) - RED1.org&lt;br /&gt;
&lt;br /&gt;
Based on: OFB-Consulting, Chile&lt;br /&gt;
&lt;br /&gt;
Copyright: red1org@gmail.com&lt;br /&gt;
&lt;br /&gt;
Sponsor: zeeshan@sysnova.com&lt;br /&gt;
&lt;br /&gt;
Current Version: 2.1 for iDempiere 13&lt;br /&gt;
&lt;br /&gt;
License: GPLv2&lt;br /&gt;
&lt;br /&gt;
Source: https://github.com/red1oon/idempiere-asset-maintenance&lt;br /&gt;
&lt;br /&gt;
Binary: [https://github.com/red1oon/idempiere-asset-maintenance/releases/download/OSGIPlugin/org.asset.maintenance_13.0.0.202601220757.jar org.asset.maintenance_2.0.0.jar] (available in target/ folder)&lt;br /&gt;
&lt;br /&gt;
Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS PAGE IS UNDER CONSTRUCTION)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;Description&amp;lt;/big&amp;gt; ===&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;Features:&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, etc.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling (days, weeks, months)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined tasks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance forecasting for upcoming maintenance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order generation and tracking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;Installation:&amp;lt;/big&amp;gt; ===&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
2. Run 2Pack import from META-INF/2Pack.zip&lt;br /&gt;
&lt;br /&gt;
3. Load sample data in GardenWorld Admin / Pack In (data/SampleGardenWorld.zip)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23604</id>
		<title>Plugin: Asset Maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Asset_Maintenance&amp;diff=23604"/>
		<updated>2026-01-21T23:23:42Z</updated>

		<summary type="html">&lt;p&gt;Red1: Upgraded Release notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
Maintainer: Red1 (talk) - RED1.org&lt;br /&gt;
&lt;br /&gt;
Based on: OFB-Consulting, Chile&lt;br /&gt;
&lt;br /&gt;
Copyright: red1org@gmail.com&lt;br /&gt;
&lt;br /&gt;
Sponsor: zeeshan@sysnova.com&lt;br /&gt;
&lt;br /&gt;
Current Version: 2.1 for iDempiere 13&lt;br /&gt;
&lt;br /&gt;
License: GPLv2&lt;br /&gt;
&lt;br /&gt;
Source: &amp;lt;nowiki&amp;gt;https://github.com/red1oon/idempiere-asset-maintenance&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Binary: org.asset.maintenance_2.0.0.jar (available in target/ folder)&lt;br /&gt;
&lt;br /&gt;
Guide: AssetMaintenanceUserGuide.docx (in doc/ folder) IN PROGRESS (come back tomorrow)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS PAGE IS UNDER CONSTRUCTION)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;Description&amp;lt;/big&amp;gt; ===&lt;br /&gt;
Asset Maintenance is a lightweight plugin for preventive maintenance of enterprise assets in iDempiere.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;Features:&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Meter-based scheduling (kilometers, operating hours, etc.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Calendar-based scheduling (days, weeks, months)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Standard Job templates with predefined tasks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Maintenance forecasting for upcoming maintenance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Work Order generation and tracking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Asset Meter logging&lt;br /&gt;
&lt;br /&gt;
The plugin is server-side only (no Swing client) - simplified as a single OSGi bundle.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;Installation:&amp;lt;/big&amp;gt; ===&lt;br /&gt;
1. Deploy JAR to iDempiere plugins folder&lt;br /&gt;
&lt;br /&gt;
2. Run 2Pack import from META-INF/2Pack.zip&lt;br /&gt;
&lt;br /&gt;
3. Load sample data in GardenWorld Admin / Pack In (data/SampleGardenWorld.zip)&lt;br /&gt;
&lt;br /&gt;
For comments and questions, use the Discussion page.&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=User:Red1&amp;diff=23603</id>
		<title>User:Red1</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=User:Red1&amp;diff=23603"/>
		<updated>2026-01-21T23:13:04Z</updated>

		<summary type="html">&lt;p&gt;Red1: updated reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Main user page: http://wiki.idempiere.org/wiki/User:Red1&lt;br /&gt;
*My present works are in https://github.com/red1oon/&lt;br /&gt;
*Email: red1org@gmail.com (If you do not hear from me, i am most likely not impressed enough just yet.)&lt;br /&gt;
&lt;br /&gt;
=I have a dream=&lt;br /&gt;
*That all code will be free and all wealth is shared more equitably.&lt;br /&gt;
*That all miserable people who claimed their kids do not have enough to eat stop complaining and start contributing. Then their kids will not be so fat and the world is a better place.&lt;br /&gt;
*That human beings remain decent and not cheat when using open source by hiding their improvements from others to help them improve it.&lt;br /&gt;
*That more of you implementers out there engage the top contributors professionally instead of hiring your own coders which will leave you to die. Don't take my word for it. It happened to most of you i met all over the world.&lt;br /&gt;
*By contributing then you become like us, a branded name, where more inquiries will gravitate towards you instead of others. The more honest you are, the more it attracts high value projects. Even when you die (everyone dies) your karma will get you a better life.&lt;br /&gt;
*Case in point - http://red1.org/BlackPaper.pdf&lt;br /&gt;
&lt;br /&gt;
=Steal From Me=&lt;br /&gt;
*Yes, you heard me right. I encourage you to fork and copy all my work to displace the other bloated giants been used. In the interim term, the trickle effect is tremendous and guess who stands out most? &lt;br /&gt;
*If you do credit me back, i just have to thank you. If you don't i will still thank you (anonymously).&lt;br /&gt;
*Anyway i have enough credit in my http://red1.org/guestbook/ since a decade ago now frozen due to spam.&lt;br /&gt;
*You can get my stuff at the Files Download section of my SourceForge.net account: http://sf.net/projects/red1/files/&lt;br /&gt;
&lt;br /&gt;
=Talk To Me=&lt;br /&gt;
*If you find any shit in my work then post in the forum for me to fix it.&lt;br /&gt;
*If you find any shit with any other's work, then write to me to expose their evil.&lt;br /&gt;
*If you wish to engage me for a project together with the local them there, i give priority to the following countries at this moment (I change the list once it is out of my bucket list):&lt;br /&gt;
**North Korea&lt;br /&gt;
**Iran&lt;br /&gt;
**Iceland&lt;br /&gt;
**Mongolia&lt;br /&gt;
**Tibet&lt;br /&gt;
**Antartica&lt;br /&gt;
*I usually will work with the local FOSS spirited person there. If none exists, i usually take on an apprentice and soon s/he is the one. This is not poetry. This is my history.&lt;br /&gt;
&lt;br /&gt;
=Some Good Stuff=&lt;br /&gt;
*This list may change depending on what i analyse to be really interesting stuff for any project member to delve in too. Of course, tell me what you think or knock me on the head.&lt;br /&gt;
*[[PO_Wrapper]] is the E=mc2 of the code.&lt;br /&gt;
*[[Plugin:_Purchasing_Forecast]] is one example of perfect 100% separation of plugin from core.&lt;br /&gt;
&lt;br /&gt;
=Help Me!=&lt;br /&gt;
*Yes, I need your help too. For one if you help me translate some of my PDFs into your own language and publish it or I publish it for you. Like this amigo here: http://sourceforge.net/projects/red1/files/Espanol/&lt;br /&gt;
*You can also submit subtitles to my Youtube movies: http://www.youtube.com/user/redhuanoon/videos&lt;br /&gt;
*If you have an interesting large ERP challenge that can contribute to the project then call me.&lt;br /&gt;
&lt;br /&gt;
=My votes=&lt;br /&gt;
*Can you all please do us a favour and vote for as many plugins that you find useful. That is the least you can do to show your moral support. Do check them out here http://wiki.idempiere.org/en/Category:Available_Plugins. Thanks!&lt;br /&gt;
&amp;lt;w4grb_ratinglist uservotes user=&amp;quot;Red1&amp;quot; items=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=IDempiere_workshop_2019&amp;diff=15785</id>
		<title>IDempiere workshop 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=IDempiere_workshop_2019&amp;diff=15785"/>
		<updated>2019-11-20T01:38:44Z</updated>

		<summary type="html">&lt;p&gt;Red1: mostly capitalizations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The workshop at the 2019 conference started without a fixed agenda. This page is used for a transcript of what we did there.&lt;br /&gt;
&lt;br /&gt;
= JIRA tickets =&lt;br /&gt;
&lt;br /&gt;
You can find all JIRA tickets we created or touched here:&lt;br /&gt;
&lt;br /&gt;
[https://idempiere.atlassian.net/issues/?jql=labels%20%3D%20%22ChateauChapeau2019%22 JIRA label ChateauChapeau2019]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Suggested topics =&lt;br /&gt;
&lt;br /&gt;
Some participants proposing what items we can discuss.&lt;br /&gt;
&lt;br /&gt;
* Workflows (Frank)&lt;br /&gt;
&lt;br /&gt;
* DMS Solution by Deepak&lt;br /&gt;
&lt;br /&gt;
* Norbert is interested in REST&lt;br /&gt;
** (Sergey, Norbert, Deepak, Carlos)&lt;br /&gt;
** -&amp;gt; responsive UI, integration with other frameworks&lt;br /&gt;
** authentication&lt;br /&gt;
** Client side development&lt;br /&gt;
** Heng Sin implementation of REST&lt;br /&gt;
&lt;br /&gt;
* Client Side Callouts&lt;br /&gt;
* User Experience (zk)&lt;br /&gt;
** Accessibility&lt;br /&gt;
* How to display kiosk screens/data visualisation (Anton)&lt;br /&gt;
* Ask for input callouts&lt;br /&gt;
* Multi selection fields&lt;br /&gt;
* Process callouts&lt;br /&gt;
* Styles on info window&lt;br /&gt;
* Editable info window&lt;br /&gt;
* Combobox auto-filter&lt;br /&gt;
* Alternatives for zk&lt;br /&gt;
&lt;br /&gt;
* Modularization - decoupling (Carlos)&lt;br /&gt;
** Distros&lt;br /&gt;
** identify functionalities that are core vs plugin&lt;br /&gt;
* Plugin Marketplace (Thomas)&lt;br /&gt;
** Best practices&lt;br /&gt;
** Validation - certification&lt;br /&gt;
&lt;br /&gt;
* How to collect business features (Norbert)&lt;br /&gt;
** CMS&lt;br /&gt;
** costing recalculation&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
** Who is doing what&lt;br /&gt;
&lt;br /&gt;
* DB Transaction management - for long trx (Chuck)&lt;br /&gt;
* Distribution (Chuck)&lt;br /&gt;
** Shipment vs Move+Shipment&lt;br /&gt;
** Stock monitor&lt;br /&gt;
** move confirmation&lt;br /&gt;
* Charges and Products (Chuck)&lt;br /&gt;
** Charge on requisition&lt;br /&gt;
** Using product as charge&lt;br /&gt;
* product dependency on price list (Chuck)&lt;br /&gt;
* machine learning (Chuck)&lt;br /&gt;
* Selective data Replication (Chuck)&lt;br /&gt;
* User export of data in large quantities&lt;br /&gt;
* Oracle to postgres migration&lt;br /&gt;
&lt;br /&gt;
* Asset - core has some fundamental things wrong (Anton)&lt;br /&gt;
** Dependency between asset and product&lt;br /&gt;
** Asset maintenance&lt;br /&gt;
** Asset must be an dimension on fact_acct&lt;br /&gt;
** Fixed assets vs asset management&lt;br /&gt;
** Asset Tracking (Deepak)&lt;br /&gt;
* More free configurable dimensions in fact_acct (Anton)&lt;br /&gt;
* BP Accounting&lt;br /&gt;
** Customer vs vendor accounting&lt;br /&gt;
* Currency rate by document or transaction&lt;br /&gt;
* Open item management at fact_acct (Anton)&lt;br /&gt;
&lt;br /&gt;
* BI&lt;br /&gt;
-&amp;gt; Primefaces app for BI&lt;br /&gt;
&lt;br /&gt;
* Tab context (Anton)&lt;br /&gt;
* Tab ID and SubTab ID in context&lt;br /&gt;
* &amp;quot;Go to line&amp;quot; in detail tabs&lt;br /&gt;
* Foreign context&lt;br /&gt;
* Multi-Row Process button (that is already done, but quite new)&lt;br /&gt;
** Pagination problem&lt;br /&gt;
* User Preference to see inactive records&lt;br /&gt;
** Other user preferences&lt;br /&gt;
* Open window with a predefined search&lt;br /&gt;
* Share saved searches - share tab customization... other user preferences&lt;br /&gt;
** Saved search accessible from toolbar button&lt;br /&gt;
** Relative search&lt;br /&gt;
** Multiple tab customization - accessible from toolbar button, shareable&lt;br /&gt;
* User preference formulas (Murilo)&lt;br /&gt;
&lt;br /&gt;
* Bulk changes&lt;br /&gt;
&lt;br /&gt;
* JSON and JSON-Blobl field type (Norbert)&lt;br /&gt;
** Nosql&lt;br /&gt;
&lt;br /&gt;
* Oracle vs PostgreSQL - trend of postgres only features (CHuck)&lt;br /&gt;
&lt;br /&gt;
* Form development - best practices (Chuck)&lt;br /&gt;
&lt;br /&gt;
* Development environment management (Murilo)&lt;br /&gt;
** projects, developers, tools (sonar), plugins&lt;br /&gt;
&lt;br /&gt;
* Simple production (Anton implemented this and has some improvements)&lt;br /&gt;
&lt;br /&gt;
* Aggregated fact_acct ??&lt;br /&gt;
&lt;br /&gt;
* Average costing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= First day =&lt;br /&gt;
&lt;br /&gt;
== Oracle to Postgres migration (and other database migration issues) ==&lt;br /&gt;
&lt;br /&gt;
Carlos used this tool for a long time http://www.adempiere.com/Migration/DDLUtils and it worked very well. For very big databases it does not work. It seems to load everything into memory. He then tried [http://ora2pg.darold.net/start.html Ora2Pg] but there seems to be no documentation about using this with iDempiere.&lt;br /&gt;
&lt;br /&gt;
Also an interesting tool to copy databases is:&lt;br /&gt;
&lt;br /&gt;
* https://wiki.idempiere.org/en/NF6.2_Copy_Client&lt;br /&gt;
&lt;br /&gt;
You can use this tool to read from Oracle and write to PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
This process help to migrate tenants. It does not copy system data. That means you have to be prepared before and have 2packs for system customizations.&lt;br /&gt;
&lt;br /&gt;
If you use that process everything is validated well even if you copy only parts of the database. It can preserve IDs or create new ones. Look at the wikipage and the screenshots there to get an overview.&lt;br /&gt;
&lt;br /&gt;
https://wiki.idempiere.org/en/NF6.2_Migrate_ID can help if you get problems with IDs that are already in the database.&lt;br /&gt;
&lt;br /&gt;
Both processes do not (yet) work with multiple selection fields.&lt;br /&gt;
&lt;br /&gt;
== Oracle vs PostgreSQL ==&lt;br /&gt;
&lt;br /&gt;
Carlos would always choose Postgres for new installations. Sometimes user companies want Oracle for several reasons - mostly historical reasons.&lt;br /&gt;
&lt;br /&gt;
Chuck asked if we like to change that the internal sql language of iDempiere is Oracle. Carlos does not like to change that. Oracle is still an important market.&lt;br /&gt;
&lt;br /&gt;
Carlos said that PostgreSQL has become very effients in optimizing complicated queries. He advises to use the analyze command before these kind of queries.&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL optimization ==&lt;br /&gt;
&lt;br /&gt;
Chuck suggested [http://pgbadger.darold.net/ pgbadger] to analyze database queries. It analyses the logs of postgresql and gives hints about wrong or slow or a lot used queries. Norbert uses it and has good experiences using it.&lt;br /&gt;
&lt;br /&gt;
Norbert uses https://explain.depesz.com/ to better understand the &amp;quot;explain analyse&amp;quot; command of postgresql. We had a look at this page and it does a nice job and it has also good documentation about how optimizing postgresql works.&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL Replication ==&lt;br /&gt;
&lt;br /&gt;
iDempiere has some functions about Replication:&lt;br /&gt;
&lt;br /&gt;
* https://wiki.idempiere.org/en/Manual#Replication_Data&lt;br /&gt;
&lt;br /&gt;
Chuck also told us that you can use &amp;quot;foreign data wrappers&amp;quot; (fdw) of PostgreSQL to connect databases. You can use a VPN to connect far away databases and e.g. create a materialized view from an foreign table and so you have an effient way to work with the foreign data and extract records that you need.&lt;br /&gt;
&lt;br /&gt;
== Virtual UI columns (Murilo) ==&lt;br /&gt;
&lt;br /&gt;
Murilo showed the new functionality of virtual ui columns.&lt;br /&gt;
&lt;br /&gt;
Thomas advised to add the possiblility of &amp;quot;virtual search columns&amp;quot; to have virtual columns to search with an sql formula. Perhaps we can even use that for reports. Carlos liked the idea.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4087 IDEMPIERE-4087]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ask for Input improvements (Murilo) ==&lt;br /&gt;
&lt;br /&gt;
Murilo showed us how to use the Input windows. We have improved functionality of https://wiki.idempiere.org/en/NF2.1_Ask_Input_Within_Process&lt;br /&gt;
&lt;br /&gt;
In [https://idempiere.atlassian.net/browse/IDEMPIERE-3969 IDEMPIERE-3969] you can find that. Murilo did some example Process and Callout code for that and showed us.&lt;br /&gt;
&lt;br /&gt;
== Special Forms (Murilo) ==&lt;br /&gt;
&lt;br /&gt;
Murilo talked about &amp;quot;special forms&amp;quot; that are included in the core. The special form can use user selected data (choosen from an infowindow) to do something useful.&lt;br /&gt;
&lt;br /&gt;
We talked about how to make the creation of forms more easy. It was thought to do a form modelled in the application dictionary but that is not really possible. A besser solution is to create ready made components that we can use in our java code to fasten the creation of forms.&lt;br /&gt;
&lt;br /&gt;
Carlos had the idea to create a form definition in the application dictionary that consists of ad_field entries. That makes the fields configurable. He does not likes to use ad_tab for that because it needs to create ad_table and ad_column for every form. But it even may be possible to create a view for every form. Then we got the idea to use the InfoWindow structure for that. It gives us a directory of fields connected to system elements.&lt;br /&gt;
&lt;br /&gt;
It is worthful to avoid forms because they are special work. And even if we think about using another ui library than zk in the future then the forms will be a huge lot of work to reimplement one by one.&lt;br /&gt;
&lt;br /&gt;
A lot of form tasks may also be solved in an InfoWindow.&lt;br /&gt;
&lt;br /&gt;
The goal should be to have a more generic way to create forms using a common standard way by using common components.&lt;br /&gt;
&lt;br /&gt;
=== Embedded snippets ===&lt;br /&gt;
&lt;br /&gt;
Norbert said we can improve the rest interface and create the form in javascript on the client. But that is a very different approach. It may be we talk more about that when we discuss the rest interface. Carlos summarized this as: &amp;quot;Allowing non-zk forms by using rest access.&amp;quot; Norbert said &amp;quot;Embedded Snipped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Client side callouts ===&lt;br /&gt;
&lt;br /&gt;
Deepak talked about the possibility that Java code can inject JavaScript code into the ui elements to create client side callouts. It may be interesting to use that in very special circumstances.&lt;br /&gt;
The idea is: Having Java Script callouts in the dictionary that can be attached to fields on browser side.&lt;br /&gt;
&lt;br /&gt;
== Multi selection field ==&lt;br /&gt;
&lt;br /&gt;
Murilo showed us a good extension that they use about multi selection fields. But after seeing the new functionality in core that Heng Sin did he likes that more. We had a deeper look at it. You can create fields with &amp;quot;multi selection table&amp;quot; and &amp;quot;multi selection search&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
That field allows us to use multiple records in search parameters.&lt;br /&gt;
&lt;br /&gt;
== Community communication / messenger ==&lt;br /&gt;
&lt;br /&gt;
We asked ourselves how we can improve the communication of the community. We asked if IRC is still the best tool for a fast communication. One other way can be to use a Telegram group. Norbert likes slack but we are not sure if it is free. One advantage to e.g. Telegram is that it supports threads. Diego proposed [https://gitter.im/ gitter] ([https://en.wikipedia.org/wiki/Gitter Gitter at Wikipedia]). It is similar than slack.&lt;br /&gt;
&lt;br /&gt;
Hideaki sometimes does an summarize of jira tickets and wiki changes. Carlos likes the idea but someone has to dG that manually or moderated.&lt;br /&gt;
&lt;br /&gt;
We also think about guidelines to create jira tickets to not create too much noise at jira.&lt;br /&gt;
&lt;br /&gt;
== multiple choice representation in database ==&lt;br /&gt;
&lt;br /&gt;
Deepak suggested to use the array data type and not comma separated string values for the multiple choice fields. He suspects that this can give us referential integrity. Paul says that it does not. We should review that.&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
Thomas wants to have guidelines e.g. for plugins. That allows to know about and judge guidelines. It will also improve documentation.&lt;br /&gt;
&lt;br /&gt;
[[Plugin Guidelines]]&lt;br /&gt;
&lt;br /&gt;
= Second day =&lt;br /&gt;
&lt;br /&gt;
== Product dependency on price list ==&lt;br /&gt;
&lt;br /&gt;
We want no dependency on pricelists. (Chuck) We can have a flag at the product to make a pricelist that have prices mandatory or not. Norbert  proposed his own solution where in the document type there is a flag to make the product price mandatory. Thomas said that he uses a plugin for conditions &amp;amp; calculations that creates prices without using a price list. This plugin should not be broken when we change things.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4086 IDEMPIERE-4086 product dependency on price list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== More free configurable dimensions in fact_acct ==&lt;br /&gt;
&lt;br /&gt;
Anton asked for that. There are reasons to have dimensions for warehouse, charge, asset, locator&lt;br /&gt;
&lt;br /&gt;
(Chuck opened a ticket before about this) TODO: add chucks ticket&lt;br /&gt;
&lt;br /&gt;
Carlos thinks that it can be worth to add more columns as User1 and User2. Two of them might be not enough.&lt;br /&gt;
&lt;br /&gt;
== Currency rate by document or transaction ==&lt;br /&gt;
&lt;br /&gt;
There is a patch from Trek Global that uses a spot currency rate type (e.g. &amp;quot;manual&amp;quot;) that allows to enter a currency rate for every single document.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4083 IDEMPIERE-4083]&lt;br /&gt;
&lt;br /&gt;
== User preferences to see inactive records (and even more) ==&lt;br /&gt;
&lt;br /&gt;
Thomas and Nicolas proposed to have it possible to not show inactive records in the search. There are different ways to do that.&lt;br /&gt;
&lt;br /&gt;
* We can do a default search value.&lt;br /&gt;
* Another way is to create a special SQL where filter in the tab definition.&lt;br /&gt;
* As Carlos mentioned the SQL filter can use environment variables. That allows to use user preferences to switch this kind of filter on and off (because they also are in the environment).&lt;br /&gt;
&lt;br /&gt;
Thomas liked also to have preferences to switch fields on or off or make it read-only or so. As the user preferences are in the environment you are able to configure different levels of information or read/write using a system preference.&lt;br /&gt;
&lt;br /&gt;
Carlos advised us to revisit the proposal from Nicolas to see if we can include a useful way in the search window to implement that. [https://idempiere.atlassian.net/browse/IDEMPIERE-733 IDEMPIERE-733 Show only active records by default when opening a window]&lt;br /&gt;
&lt;br /&gt;
Thomas did a proof of concept of a solution to this problem and it worked well. He used user preferences in a WHERE CLAUSE of a tab. He dosumented it in IDEMPIERE-733. We can think about adding that to the standard configuration in core.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Open window with a predefined search ==&lt;br /&gt;
&lt;br /&gt;
Chuck advised to be able to save searches and use them in the toolbar buttons.&lt;br /&gt;
&lt;br /&gt;
Thomas said that we want to share searches to all users or to a specific role. Chuck said we can have a default search (perhaps configured in system) for a window (up to now it is configured by table).&lt;br /&gt;
&lt;br /&gt;
An additional idea: We want to have relative formulas in the searches (to do things like &amp;quot;last month&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Instead (or additional to) the virtual search columns we can have sql code in a relative formula. For that we can use a flag for superuser to use sql in the search definition. Then the field &amp;quot;validation code&amp;quot; can contain &amp;quot;@SQL=&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Norbert proposed that already in the last workshop and Diego added tickets at this time:&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-2837 IDEMPIERE-2837 use in a better way saved searches] &lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-2836 IDEMPIERE-2836 sql searches for advanced users] &lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-2835 IDEMPIERE-2835 Allow relative searchs] &lt;br /&gt;
&lt;br /&gt;
Someone should review these tickets and optionally open new tickets or add description based on what we spoke about today.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dynamic validation in search ==&lt;br /&gt;
&lt;br /&gt;
Paul complained that opening a search window with dynamic validation fields that can be very slow because all the validations load when the search opens.&lt;br /&gt;
&lt;br /&gt;
Murilo said that this is nearly solved but some small issues still pending.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-3981 IDEMPIERE-3981]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Search in the toolbar ==&lt;br /&gt;
&lt;br /&gt;
We like to have preconfigured searches in the toolbar. We can add these as a submenu to the search button or as a combobox. The combobox also shows the actual search's name in the ui. (Norbert showed us his implementation)&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4085 IDEMPIERE-4085]&lt;br /&gt;
&lt;br /&gt;
== Improve Toolbar ==&lt;br /&gt;
&lt;br /&gt;
Norbert showed us his toolbar. It looked good. He has icons and text buttons and you have only some buttons shown at the left and a &amp;quot;more&amp;quot; drop down menu at the very right.&lt;br /&gt;
&lt;br /&gt;
The audience agreed that Norberts toolbar is nice and we should open a ticket to add his changes.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4084 IDEMPIERE-4084]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transportation management system ==&lt;br /&gt;
&lt;br /&gt;
Norbert showed an example of his transportation management.&lt;br /&gt;
&lt;br /&gt;
They use shipping region tabl and a shipping slot.&lt;br /&gt;
&lt;br /&gt;
Evan and Ben also use a sophisticated transportation management in their &amp;quot;big dog erp&amp;quot;. Thomas also has an implementation of that.&lt;br /&gt;
&lt;br /&gt;
We liked to talk about that later in a smaller circle of an &amp;quot;[[Transportation Management System]] workgroup&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Workflows ==&lt;br /&gt;
&lt;br /&gt;
Frank was interested in subworkflows. They are not implemented yet in iDempiere. We talked about several features of workflows.&lt;br /&gt;
&lt;br /&gt;
We have no real workflows in iDempiere. There are just basic capabilities beyond the simple document workflow.&lt;br /&gt;
&lt;br /&gt;
== REST ==&lt;br /&gt;
&lt;br /&gt;
Sergey showed us what state the REST implementations have. There is an implementation from Heng Sin and one from Sergey.&lt;br /&gt;
&lt;br /&gt;
Heng Sin created authentication services, services to get window definitions and data object of PO objects. His code is very generic.&lt;br /&gt;
&lt;br /&gt;
It seems that you can replace the ui using that. Heng Sin is not here to explain. Carlos noted that it will not call callouts or have dynamic validation. It may also be the plan to configure a tab and fields for special needs (for a client side application) in the application dictionary and use it here in a generic way. This will not be a real window but a definition of the interface of fields to exchange with a client application that may add its own logic.&lt;br /&gt;
&lt;br /&gt;
Carlos advised to have a look at http://odata.org&lt;br /&gt;
&lt;br /&gt;
Someone said that we can use the JSON parser code to also include document data into pdfs (for example use this German standard https://www.ferd-net.de/zugferd/definition/was-ist-zugferd.html).&lt;br /&gt;
&lt;br /&gt;
Norbert and Paul talked about [https://graphql.org GraphQL]. That can be a more modern alternative to using REST.&lt;br /&gt;
&lt;br /&gt;
== Replication from Norbert ==&lt;br /&gt;
&lt;br /&gt;
Norbert has an system to replicate data between iDempiere systems. You define your own Export formats, then configure one of very different export processors (export to another database but also to other things like a file or an nosql store). He uses that also to replicate to mobile clients and the like. He uses different configurable replication strategies for different use cases. For example replicating only several tables. In his usecase he uses ActiveMQ and sends JSON objects for the exchange of replicated data.&lt;br /&gt;
&lt;br /&gt;
== share tab customizations ==&lt;br /&gt;
&lt;br /&gt;
A superuser should be able to create a tab layout, give it a name and make it as a system or client standard or share it with a role or another user.&lt;br /&gt;
&lt;br /&gt;
If a user copies it he creates an own copy and does not change the global customization.&lt;br /&gt;
&lt;br /&gt;
''(not Chuck)'' Thomas had the idea to add an customization to the export window. That allows to export e.g. csv files with different columns.&lt;br /&gt;
&lt;br /&gt;
We like to have several different grid customizations. Norbert says there is a ticket Hiep is working at. [https://idempiere.atlassian.net/browse/IDEMPIERE-2708 IDEMPIERE-2708]&lt;br /&gt;
&lt;br /&gt;
Carlos wants to add a tab customization field to the user search query table. That allows to open a specific customization if the user uses a specific search. Thomas idea is to add an ordering for that. We can save it in the customization record.&lt;br /&gt;
&lt;br /&gt;
Chuck advised that he likes to have a way to see if something is customized or not.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4088 IDEMPIERE-4088 share tab customizations]&lt;br /&gt;
&lt;br /&gt;
=== Bug in csv export ===&lt;br /&gt;
&lt;br /&gt;
No - Chuck did not say that, it was Thomas idea. ;-) But Chuck said that virtual columns do not work in csv files. &lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4089 IDEMPIERE-4089]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple Production ==&lt;br /&gt;
&lt;br /&gt;
* Document type (Deepak has already code for that)&lt;br /&gt;
* Manufacturing setup (Anton)&lt;br /&gt;
* Adaxa improvements&lt;br /&gt;
* Multi-BOM (TrekGlobal, Chuck suggested a hack using views replacing M_ProductBOM)&lt;br /&gt;
* Negative BOM Line quantity (verify)&lt;br /&gt;
* WIP - financial and inventory move&lt;br /&gt;
* reservations when preparing production documents&lt;br /&gt;
* Production (single) vs Production (multi) - worth to consider enabling it back?&lt;br /&gt;
&lt;br /&gt;
Chuck has experience with using http://frepple.com as a production planning system. One of his friends integrated this into iDempiere.&lt;br /&gt;
&lt;br /&gt;
== Processes working on multiple records ==&lt;br /&gt;
&lt;br /&gt;
Now we have the possibility to check several records (using the checkmark at the very left of the grid view). Deepak did it. This is discussed and documented here: https://groups.google.com/forum/#!topic/idempiere/YDnr8nCFGyA&lt;br /&gt;
&lt;br /&gt;
This functionality suffers of pagination. It can work only on what is shown on the current page (maximum of 25 records).&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-3998 IDEMPIERE-3998 Execute Toolbar Process on Multiple Records]&lt;br /&gt;
&lt;br /&gt;
Thomas likes to have something that work on all records in the search query.&lt;br /&gt;
&lt;br /&gt;
Thomas had the idea the create a kind of automatically loop that calls a process for every single record. That allows to use all older processes for that. But Carlos said that can cause problems because then it is not checked if the button is available or not (or even not visible) - that may be dependent on fields of the record.&lt;br /&gt;
&lt;br /&gt;
== bulk changes ==&lt;br /&gt;
&lt;br /&gt;
Carlos thought about bulk changes. That is to have a button that shows all fields that can be changed in all shown records. There will be big issues because we do not know if everything can be changed or will be shown. After thinking about it it seems not a good idea.&lt;br /&gt;
&lt;br /&gt;
The original proposal was about deleting or completing things. That can better be done with a simple process or with the csv importer.&lt;br /&gt;
&lt;br /&gt;
== Aggregating accounting in fact_acct ==&lt;br /&gt;
&lt;br /&gt;
Norbert proposed to have a more similar accounting. For example if we complete an invoice with several product lines we get several lines in the accounting. He likes to have only one line for all products to make it simpler for him. Especially to make the tables smaller.&lt;br /&gt;
&lt;br /&gt;
Carlos shows us a link to an quite old explanation from Jörg Janke about this: https://www.compieresource.com/2007/08/financial-data-warehouse.html&lt;br /&gt;
&lt;br /&gt;
What Norbert proposed is doable, not easy, and not recommended&lt;br /&gt;
&lt;br /&gt;
== Assets ==&lt;br /&gt;
&lt;br /&gt;
Anton has some issues with Assets. He says that you first have to create a product. Then you do a vendor invoice to buy the thing and the you can create an asset record.&lt;br /&gt;
&lt;br /&gt;
Chuck explains that an asset can be created in two ways: From an product (if you buy it) or from an project (that you create yourself). The process to create it from an project does not work very well.&lt;br /&gt;
&lt;br /&gt;
Some issues we found:&lt;br /&gt;
* Dependency between asset and product&lt;br /&gt;
* Asset maintenance&lt;br /&gt;
* Asset must be dimension in fact_acct&lt;br /&gt;
* Fixed assets vs asset management&lt;br /&gt;
* Creating an asset group is not pre-filling default accounts&lt;br /&gt;
* Chuck suggests to &amp;quot;pluginize&amp;quot; it -&amp;gt; knowledge group - &amp;gt; Anton, Chuck, Deepak, Steven/Paul&lt;br /&gt;
* Improvement in core to support better Assets -&amp;gt; Product as a Charge that posts in material receipt and not just in Invoice (Chuck to collect and document this here: [https://idempiere.atlassian.net/browse/IDEMPIERE-4092 IDEMPIERE-4092]&lt;br /&gt;
&lt;br /&gt;
There are problems if you mix the concepts of &amp;quot;fixed assets&amp;quot; and &amp;quot;maintenance assets&amp;quot;. Both use the same tables but they are very different.&lt;br /&gt;
&lt;br /&gt;
Chuck already talked to Steven about the charge product he suggests and tries to figure out how to improve it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Combobox auto filter ==&lt;br /&gt;
&lt;br /&gt;
There is a new field reference type to create a combobox with an auto filter facility. You use a &amp;quot;table direct&amp;quot; and you set the &amp;quot;Autocomplete&amp;quot; flag. This is done in [https://idempiere.atlassian.net/browse/IDEMPIERE-3851 IDEMPIERE-3851 Filtering list box (AP2-671 TrekGlobal)].&lt;br /&gt;
&lt;br /&gt;
Thomas has problems using it because it is not very performant with big data sets.&lt;br /&gt;
&lt;br /&gt;
Norbert uses https://fusejs.io to do that on client side.&lt;br /&gt;
&lt;br /&gt;
Carlos had a look into our source code. It seems that it does not use the database for every keystroke but it sorts data on the server and has to resend it to the client. Something in this process is too slow.&lt;br /&gt;
&lt;br /&gt;
Strategies to solve it:&lt;br /&gt;
&lt;br /&gt;
* make it configurable when it searches 'ab%' vs. '%abc%'&lt;br /&gt;
* wait e.g. half a second before you run the query&lt;br /&gt;
* run the query not in the foreground but in a background thread&lt;br /&gt;
* see if we can cache data in the client and process it there&lt;br /&gt;
&lt;br /&gt;
* we added [https://idempiere.atlassian.net/browse/IDEMPIERE-4093 IDEMPIERE-4093]&lt;br /&gt;
&lt;br /&gt;
= third day =&lt;br /&gt;
&lt;br /&gt;
== DB Transaction management - for long trx ==&lt;br /&gt;
&lt;br /&gt;
Chuck asked how to do that. These kind of processes happen when a new user fills tables when he starts working with iDempiere but there are also users that need to import long data day by day.&lt;br /&gt;
&lt;br /&gt;
Carlos says there is an hardcoded limit to have no SQL transaction longer than 2 hours.&lt;br /&gt;
&lt;br /&gt;
=== Improved process transaction management ===&lt;br /&gt;
&lt;br /&gt;
Chucks question was if it is possible for an process source code to get the transaction handle of this transaction, commit it and create a new transaction.&lt;br /&gt;
&lt;br /&gt;
Diego led us to Event Handlers for PRE_PROCESS &amp;amp; POSTPROCESS. You can find them in IEventTopics.java. They are done with [https://idempiere.atlassian.net/browse/IDEMPIERE-3924 IDEMPIERE-3924 Implement EventHandler for pre/after/post processes] The OSGi Interface IEventManager can be used.&lt;br /&gt;
&lt;br /&gt;
That can be used to extend the timeout of Trx, or to implement the postgresql no-logging.&lt;br /&gt;
&lt;br /&gt;
Some of that are connected to ticket [https://idempiere.atlassian.net/browse/IDEMPIERE-3969 IDEMPIERE-3969]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call csv import in smaller parts ===&lt;br /&gt;
&lt;br /&gt;
Thomas did a bash script that split a very long CSV file into parts calling a web-service to import every part in a single transaction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CSV import button vs. CSV process button ===&lt;br /&gt;
&lt;br /&gt;
CSV Import Button is slow. (That is the button that is in every window). It uses the UI thread. So it blocks the UI. It emulates to use the actual shown user interface.&lt;br /&gt;
&lt;br /&gt;
The CSV process button (that has to be configured for specific tasks) uses an dedicated process and emulates just a smaller kind of a window (it also uses callouts). It runs much more performant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dedicated server for background processes ===&lt;br /&gt;
&lt;br /&gt;
Norberts idea is that it should be possible in an environment with multiple application servers to send a background process to a configurable dedicated service server.&lt;br /&gt;
&lt;br /&gt;
An advanced idea is to make it possible to send a job to an external system working e.g. with [https://aws.amazon.com/de/lambda/ AWS lambda].&lt;br /&gt;
&lt;br /&gt;
We talked about improving the discovery strategy (schedulers). How to implement server groups and how to find out which servers are working or when to even start new server instances. For example EC2-tags, server variables, server name, etc.&lt;br /&gt;
&lt;br /&gt;
[https://idempiere.atlassian.net/browse/IDEMPIERE-4090 IDEMPIERE-4090 start background processes on a dedicated service server]&lt;br /&gt;
&lt;br /&gt;
== TMS Transportation Management System ==&lt;br /&gt;
&lt;br /&gt;
A meeting will be coordinated in future. [[Transportation Management System]]&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&lt;br /&gt;
We talked about:&lt;br /&gt;
* a staging/experimental/prototype server&lt;br /&gt;
** Hiep already has an experimental server from an experimental branch. It helped to do complicated topics that needed several functions and ticketsan&lt;br /&gt;
&lt;br /&gt;
Norbert showed us a list of User Eperience changes he likes to have. We started a discussion about how to work on these items perhaps with a working group or so.&lt;br /&gt;
&lt;br /&gt;
ONe idea was to open a kind of special branch for new user experience functionalities and use jenkins to automatically create a test server for that. A test server might be very helpful especially for User Experience issues because people that are interested in that are not developers and may like to see and use the new things.&lt;br /&gt;
&lt;br /&gt;
== Attract developers and implementors ==&lt;br /&gt;
&lt;br /&gt;
We talked about doing more trainings. That is what Diego proposed in the conference. We do not all like the idea to have a certificate for that.&lt;br /&gt;
&lt;br /&gt;
Carlos had the thought that teachers are a good point to see new students and see their abilities. In our community Chuck is the one to see new worthful developers. We may improve things to attract these.&lt;br /&gt;
&lt;br /&gt;
There can be different views of the project and its parts. At the end we have the same thougts be we need to find a better way to view the structure of the project (and also on code) that is not centric to one center (or even one center).&lt;br /&gt;
&lt;br /&gt;
== User Experience Focus Group ==&lt;br /&gt;
&lt;br /&gt;
We like to build a user experience user group.&lt;br /&gt;
&lt;br /&gt;
== Other user Experience topics ==&lt;br /&gt;
&lt;br /&gt;
* Guidelines about window layouts&lt;br /&gt;
* Multi-Dashboard - the layout of home windows is outdated&lt;br /&gt;
&lt;br /&gt;
== Accesibility == &lt;br /&gt;
&lt;br /&gt;
Alain expresses the importance of accessibility for people with disabilities in the UI, in countries such as France there are laws of ´inclusive-society´, therefore the software being used in companies need to be compliant with these laws easing the user experience for people with visual disabilities for example.&lt;br /&gt;
&lt;br /&gt;
The focus of this work can also include mobile and high resolution displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alternatives for zk ==&lt;br /&gt;
&lt;br /&gt;
* Evolving REST could lead to a client-side client&lt;br /&gt;
* Evolving REST is strategic&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Distribution / shipment process ==&lt;br /&gt;
&lt;br /&gt;
Chuck expained that the workflow of shipment is quite simple. And he thinks to change or extend the way it works for complex cases. He want some intermediate place for inventory entries to go. Carlso says that is part of warehouse management but it does not work well in core.&lt;br /&gt;
&lt;br /&gt;
* shipment vs move + shipment&lt;br /&gt;
* stock monitor&lt;br /&gt;
* move confirmation&lt;br /&gt;
&lt;br /&gt;
It was talked about a way to move items from a warehouse locator (that keeps big palettes) to a picking locator (that keeps single opened packages) to a packing locator (where items are prepared for shipping). Only the packing locator can be shipped. We thought how items can be moved from one locator to the other. That can be done based on replenishment or orders or we even have to create a custom version of them.&lt;br /&gt;
&lt;br /&gt;
Chuck advised that it should be possible to change the generate shipments process to work with different locators. Some things have to be done with replenishment.&lt;br /&gt;
&lt;br /&gt;
* it must be a replenishment algorithm that takes into acount the date needed&lt;br /&gt;
* To support complex cases we need an allocation inventory document and a storage allocated view/table&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DMS ==&lt;br /&gt;
&lt;br /&gt;
Deepak explained how he implemented his DMS system.&lt;br /&gt;
&lt;br /&gt;
We were interested how he implemented the storage provider. He still did not implement an CMIS interface.&lt;br /&gt;
&lt;br /&gt;
If you like to access the files as a filesystem you can use the filesystem storage provider and access it as a direct filesystem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to display kiosk screens ==&lt;br /&gt;
&lt;br /&gt;
* REST will make it easy to implement outside applications to do that&lt;br /&gt;
&lt;br /&gt;
Thomas likes to have a way to use one single http call to&lt;br /&gt;
* login as a dedicated user&lt;br /&gt;
* opening a dedicated window&lt;br /&gt;
* in a borderless view&lt;br /&gt;
* that refreshes after a set timeout&lt;br /&gt;
* it can even be good to open more than one window and let the view cycle through them&lt;br /&gt;
&lt;br /&gt;
* ZK_SESSION_TIMEOUT_IN_SECONDS has to work not globally but on a single user (kiosk user without timeout) &lt;br /&gt;
* we can use dashboards to collect data in one window&lt;br /&gt;
** Norbert explained that dashboard layout may be improved&lt;br /&gt;
* integration with external kiosk tools - via sending HTML or screenshots periodically&lt;br /&gt;
* /kiosk like idempiereMonitor -&amp;gt; dedicated to show the required info&lt;br /&gt;
* could use the cookie information to login -&amp;gt; problem - how to relogin in a server crash&lt;br /&gt;
* Carlso says there is an extension to refresh chrome every minute. As that creates a session every x minutes we should better have autorefresh windows&lt;br /&gt;
&lt;br /&gt;
What already works:&lt;br /&gt;
* if you close the borders (left, right and at the top) for a single user, this is persisted&lt;br /&gt;
* you can automatic open a window when you login using menu favourites (you set a sequence there)&lt;br /&gt;
* one can refresh a chrome tab in some ways&lt;br /&gt;
&lt;br /&gt;
What does not work&lt;br /&gt;
* automatic passwordless login&lt;br /&gt;
** Deepak already uses authentication login in web services&lt;br /&gt;
** using cookies does not work on a server crash&lt;br /&gt;
* no menu for the kiosk user&lt;br /&gt;
* automatic refresh e.g. for normal data windows, reports, etc.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4094 IDEMPIERE-4094 kiosk mode screens]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Column reference type for json/jsonb ==&lt;br /&gt;
&lt;br /&gt;
Norbert thinks about adding JSON and/or JSONB field types. He says that allows to work as in a nosql database. There is a datatype for JSON objects in PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
Carlos proposed to change ASI to a JSON field.&lt;br /&gt;
&lt;br /&gt;
We could maybe link JSON fields to attribute definiton.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Machine learning ==&lt;br /&gt;
&lt;br /&gt;
Chuck talked about machine learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Open item management on fact_acct ==&lt;br /&gt;
&lt;br /&gt;
Anton has problems to bring the balance of accounting together with the balancing of open items and reconcile everything. Especially using different currencys.&lt;br /&gt;
&lt;br /&gt;
== Customer and vendor accounting ==&lt;br /&gt;
&lt;br /&gt;
There was a question from the audience how the difference in accounting for customers and vendors work.&lt;br /&gt;
&lt;br /&gt;
There are accounting tabs for both of them in the business partner window. The preset for these can be set in the business partner group - that is copied when you create a new business partner. There is a button in the group to copy a changed group setting to all business partners that belong to this group.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Charge on requisition ==&lt;br /&gt;
&lt;br /&gt;
Deepak has done that and will open this code soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Documentation - who is doing what ==&lt;br /&gt;
&lt;br /&gt;
* Chuck advice: much of the documentation is in the code&lt;br /&gt;
* Manual from compiere is not available any more in the internet&lt;br /&gt;
* we have ADempiere books&lt;br /&gt;
* There is a compiere book&lt;br /&gt;
* There is documentation from Red1&lt;br /&gt;
* We have our wiki&lt;br /&gt;
* There is a book from Michael McKay at http://adempiere.gitbook.io&lt;br /&gt;
* Jan Thielemann did a lot of documentations in the wiki and in a video&lt;br /&gt;
An example for a implementor specific documentation using docbook is (in portuguese language):&lt;br /&gt;
* http://docs.devcoffee.com.br&lt;br /&gt;
&lt;br /&gt;
Chuck showed us what his Open Source ERP Academy offers and gave us an overview.&lt;br /&gt;
&lt;br /&gt;
We talked about that someone wants to write a book. See e.g. http://erp-fundamentals.chuckboecking.com/basics/ that Chuck did using markdown and [https://gohugo.io hugo].&lt;br /&gt;
&lt;br /&gt;
Chuck likes to write the book. It will be open and on his website but it should also be able to be printed. Everyone will be free to translate it to other languages.&lt;br /&gt;
&lt;br /&gt;
== Foreign context ==&lt;br /&gt;
&lt;br /&gt;
* Document&lt;br /&gt;
* Think how to standardize - take into account backward compatibility.&lt;br /&gt;
&lt;br /&gt;
== Tab context for processes ==&lt;br /&gt;
&lt;br /&gt;
Anton opened this topic. When a process is launched by a button it can not access the state of the ui. To e.g. work on a range of all records in a window we need to know what is the actual window where the process has called from. It would help to include a tab identification (context variable id?) in the context.&lt;br /&gt;
&lt;br /&gt;
The bug that Anton had should be solved now and it is possible to get the context of the right tab.&lt;br /&gt;
&lt;br /&gt;
Chuck did a nice documentation about that and sent it to Carlos by mail. Someone has to copy that to our wiki. Please. ;-)&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=IDempiere_workshop_2019&amp;diff=15784</id>
		<title>IDempiere workshop 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=IDempiere_workshop_2019&amp;diff=15784"/>
		<updated>2019-11-20T01:12:46Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* multiple choice represantation in database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The workshop at the 2019 conference started without a fixed agenda. This page is used for a transcript of what we did there.&lt;br /&gt;
&lt;br /&gt;
= JIRA tickets =&lt;br /&gt;
&lt;br /&gt;
You can find all JIRA tickets we created or touched here:&lt;br /&gt;
&lt;br /&gt;
[https://idempiere.atlassian.net/issues/?jql=labels%20%3D%20%22ChateauChapeau2019%22 JIRA label ChateauChapeau2019]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= suggestions for topics =&lt;br /&gt;
&lt;br /&gt;
Some people question for things that we can discuss.&lt;br /&gt;
&lt;br /&gt;
* Workflows (Frank)&lt;br /&gt;
&lt;br /&gt;
* DMS Solution by Deepak&lt;br /&gt;
&lt;br /&gt;
* Norbert is interested in REST&lt;br /&gt;
** (Sergey, Norbert, Deepak, Carlos)&lt;br /&gt;
** -&amp;gt; responsive UI, integration with other frameworks&lt;br /&gt;
** authentication&lt;br /&gt;
** Client side development&lt;br /&gt;
** Heng Sin implementation of REST&lt;br /&gt;
&lt;br /&gt;
* Client side callouts&lt;br /&gt;
* User Experience (zk)&lt;br /&gt;
** Accessibility&lt;br /&gt;
* How to display kiosk screens/data visualisation (Anton)&lt;br /&gt;
* Ask for input callouts&lt;br /&gt;
* Multi selection fields&lt;br /&gt;
* Process callouts&lt;br /&gt;
* Styles on info window&lt;br /&gt;
* Editable info window&lt;br /&gt;
* Combobox auto-filter&lt;br /&gt;
* Alternatives for zk&lt;br /&gt;
&lt;br /&gt;
* Modularization - decoupling (Carlos)&lt;br /&gt;
** Distros&lt;br /&gt;
** identify functionalities that are core vs plugin&lt;br /&gt;
* Plugin Marketplace (Thomas)&lt;br /&gt;
** Best practices&lt;br /&gt;
** Validation - certification&lt;br /&gt;
&lt;br /&gt;
* How to collect business features (Norbert)&lt;br /&gt;
** CMS&lt;br /&gt;
** costing recalculation&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
** who is doing what&lt;br /&gt;
&lt;br /&gt;
* DB Transaction management - for long trx (Chuck)&lt;br /&gt;
* Distribution (Chuck)&lt;br /&gt;
** Shipment vs Move+Shipment&lt;br /&gt;
** Stock monitor&lt;br /&gt;
** move confirmation&lt;br /&gt;
* Charges and Products (Chuck)&lt;br /&gt;
** Charge on requisition&lt;br /&gt;
** Using product as charge&lt;br /&gt;
* product dependency on price list (Chuck)&lt;br /&gt;
* machine learning (Chuck)&lt;br /&gt;
* Selective data Replication (Chuck)&lt;br /&gt;
* User export of data in large quantities&lt;br /&gt;
* Oracle to postgres migration&lt;br /&gt;
&lt;br /&gt;
* Asset - core has some fundamental things wrong (Anton)&lt;br /&gt;
** Dependency between asset and product&lt;br /&gt;
** asset maintenance&lt;br /&gt;
** asset must be an dimension on fact_acct&lt;br /&gt;
** fixed assets vs asset management&lt;br /&gt;
** Asset Tracking (Deepak)&lt;br /&gt;
* more free configurable dimensions in fact_acct (Anton)&lt;br /&gt;
* BP Accounting&lt;br /&gt;
** customer vs vendor accounting&lt;br /&gt;
* currency rate by document or transaction&lt;br /&gt;
* open item management at fact_acct (Anton)&lt;br /&gt;
&lt;br /&gt;
* BI&lt;br /&gt;
-&amp;gt; primefaces app for BI&lt;br /&gt;
&lt;br /&gt;
* Tab context (Anton)&lt;br /&gt;
* Tab ID and SubTab ID in context&lt;br /&gt;
* &amp;quot;go to line&amp;quot; in detail tabs&lt;br /&gt;
* foreign context&lt;br /&gt;
* Multi-Row Process button (that is already done, but quite new)&lt;br /&gt;
** pagination problem&lt;br /&gt;
* User Preference to see inactive records&lt;br /&gt;
** other user preferences&lt;br /&gt;
* Open window with a predefined search&lt;br /&gt;
* share saved searches - share tab customization... other user preferences&lt;br /&gt;
** saved search accessible from toolbar button&lt;br /&gt;
** relative search&lt;br /&gt;
** multiple tab customization - accessible from toolbar button, shareable&lt;br /&gt;
* User preference formulas (Murilo)&lt;br /&gt;
&lt;br /&gt;
* Bulk changes&lt;br /&gt;
&lt;br /&gt;
* JSON and JSON-Blobl field type (Norbert)&lt;br /&gt;
** nosql&lt;br /&gt;
&lt;br /&gt;
* Oracle vs PostgreSQL - trend of postgres only features (CHuck)&lt;br /&gt;
&lt;br /&gt;
* Form development - best practices (Chuck)&lt;br /&gt;
&lt;br /&gt;
* Development environment management (Murilo)&lt;br /&gt;
** projects, developers, tools (sonar), plugins&lt;br /&gt;
&lt;br /&gt;
* Simple production (Anton implemented this and has some improvements)&lt;br /&gt;
&lt;br /&gt;
* Aggregated fact_acct ??&lt;br /&gt;
&lt;br /&gt;
* Average costing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= first day =&lt;br /&gt;
&lt;br /&gt;
== oracle to postgres migration (and other database migration issues) ==&lt;br /&gt;
&lt;br /&gt;
Carlos used this tool for a long time http://www.adempiere.com/Migration/DDLUtils and it worked very well. For very big databases it does not work. It seems to load everything into memory. He then tried [http://ora2pg.darold.net/start.html Ora2Pg] but there seems to be no documentation about using this with iDempiere.&lt;br /&gt;
&lt;br /&gt;
Also an interesting tool to copy databases is:&lt;br /&gt;
&lt;br /&gt;
* https://wiki.idempiere.org/en/NF6.2_Copy_Client&lt;br /&gt;
&lt;br /&gt;
You can use this tool to read from Oracle and write to PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
This process help to migrate tenants. It does not copy system data. That means you have to be prepared before and have 2packs for system customizations.&lt;br /&gt;
&lt;br /&gt;
If you use that process everything is validated well even if you copy only parts of the database. It can preserve IDs or create new ones. Look at the wikipage and the screenshots there to get an overview.&lt;br /&gt;
&lt;br /&gt;
https://wiki.idempiere.org/en/NF6.2_Migrate_ID can help if you get problems with IDs that are already in the database.&lt;br /&gt;
&lt;br /&gt;
Both processes do not (yet) work with multiple selection fields.&lt;br /&gt;
&lt;br /&gt;
== Oracle vs PostgreSQL ==&lt;br /&gt;
&lt;br /&gt;
Carlos would always choose Postgres for new installations. Sometimes user companies want Oracle for several reasons - mostly historical reasons.&lt;br /&gt;
&lt;br /&gt;
Chuck asked if we like to change that the internal sql language of iDempiere is Oracle. Carlos does not like to change that. Oracle is still an important market.&lt;br /&gt;
&lt;br /&gt;
Carlos says that PostgreSQL has become very effients in optimizing complicated queries. He advises to use the analyze command before these kind of queries.&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL optimization ==&lt;br /&gt;
&lt;br /&gt;
Chuck advises [http://pgbadger.darold.net/ pgbadger] to analyze database queries. It analyses the logs of postgresql and gives hints about wrong or slow or a lot used queries. Norbert uses it and has good experiences using it.&lt;br /&gt;
&lt;br /&gt;
Norbert uses https://explain.depesz.com/ to better understand the &amp;quot;explain analyse&amp;quot; command of postgresql. We had a look at this page and it does a nice job and it has also good documentation about how optimizing postgresql works.&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL Replication ==&lt;br /&gt;
&lt;br /&gt;
iDempiere has some functions about Replication:&lt;br /&gt;
&lt;br /&gt;
* https://wiki.idempiere.org/en/Manual#Replication_Data&lt;br /&gt;
&lt;br /&gt;
Chuck also told us that you can use &amp;quot;foreign data wrappers&amp;quot; (fdw) of PostgreSQL to connect databases. You can use a VPN to connect far away databases and e.g. create a materialized view from an foreign table and so you have an effient way to work with the foreign data and extract records that you need.&lt;br /&gt;
&lt;br /&gt;
== Virtual UI columns (Murilo) ==&lt;br /&gt;
&lt;br /&gt;
Murilo showed the new functionality of virtual ui columns.&lt;br /&gt;
&lt;br /&gt;
Thomas advised to add the possiblility of &amp;quot;virtual search columns&amp;quot; to have virtual columns to search with an sql formula. Perhaps we can even use that for reports. Carlos liked the idea.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4087 IDEMPIERE-4087]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ask for Input improvements (Murilo) ==&lt;br /&gt;
&lt;br /&gt;
Murilo showed us how to use the Input windows. We have improved functionality of https://wiki.idempiere.org/en/NF2.1_Ask_Input_Within_Process&lt;br /&gt;
&lt;br /&gt;
In [https://idempiere.atlassian.net/browse/IDEMPIERE-3969 IDEMPIERE-3969] you can find that. Murilo did some example Process and Callout code for that and showed us.&lt;br /&gt;
&lt;br /&gt;
== Special Forms (Murilo) ==&lt;br /&gt;
&lt;br /&gt;
Murilo talked about &amp;quot;special forms&amp;quot; that are included in the core. The special form can use user selected data (choosen from an infowindow) to do something useful.&lt;br /&gt;
&lt;br /&gt;
We talked about how to make the creation of forms more easy. It was thought to do a form modelled in the application dictionary but that is not really possible. A besser solution is to create ready made components that we can use in our java code to fasten the creation of forms.&lt;br /&gt;
&lt;br /&gt;
Carlos had the idea to create a form definition in the application dictionary that consists of ad_field entries. That makes the fields configurable. He does not likes to use ad_tab for that because it needs to create ad_table and ad_column for every form. But it even may be possible to create a view for every form. Then we got the idea to use the InfoWindow structure for that. It gives us a directory of fields connected to system elements.&lt;br /&gt;
&lt;br /&gt;
It is worthful to avoid forms because they are special work. And even if we think about using another ui library than zk in the future then the forms will be a huge lot of work to reimplement one by one.&lt;br /&gt;
&lt;br /&gt;
A lot of form tasks may also be solved in an infowindow.&lt;br /&gt;
&lt;br /&gt;
The goal should be to have a more generic way to create forms using a common standard way by using common components.&lt;br /&gt;
&lt;br /&gt;
=== embedded snippets ===&lt;br /&gt;
&lt;br /&gt;
Norbert said we can improve the rest interface and create the form in javascript on the client. But that is a very different approach. It may be we talk more about that when we discuss the rest interface. Carlos summarized this as: &amp;quot;Allowing non-zk forms by using rest access.&amp;quot; Norbert said &amp;quot;Embedded Snipped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== client side callouts ===&lt;br /&gt;
&lt;br /&gt;
Deepak talked about the possibility that Java code can inject JavaScript code into the ui elements to create client side callouts. It may be interesting to use that in very special circumstances.&lt;br /&gt;
The idea is: Having Java Script callouts in the dictionary that can be attached to fields on browser side.&lt;br /&gt;
&lt;br /&gt;
== Multi selection field ==&lt;br /&gt;
&lt;br /&gt;
Murilo showed us a good extension that they use about multi selection fields. But after seeing the new functionality in core that Heng Sin did he likes that more. We had a deeper look at it. You can create fields with &amp;quot;multi selection table&amp;quot; and &amp;quot;multi selection search&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
That field allows us to use multiple records in search parameters.&lt;br /&gt;
&lt;br /&gt;
== community communication / messenger ==&lt;br /&gt;
&lt;br /&gt;
We asked ourselves how we can improve the communication of the community. We asked if IRC is still the best tool for a fast communication. One other way can be to use a Telegram group. Norbert likes slack but we are not sure if it is free. One advantage to e.g. Telegram is that it supports threads. Diego proposed [https://gitter.im/ gitter] ([https://en.wikipedia.org/wiki/Gitter Gitter at Wikipedia]). It is similar than slack.&lt;br /&gt;
&lt;br /&gt;
Hideaki sometimes does an summarize of jira tickets and wiki changes. Carlos likes the idea but someone has to do that manually or moderated.&lt;br /&gt;
&lt;br /&gt;
We also think about guidelines to create jira tickets to not create too much noise at jira.&lt;br /&gt;
&lt;br /&gt;
== multiple choice representation in database ==&lt;br /&gt;
&lt;br /&gt;
Deepak suggested to use the array data type and not comma separated string values for the multiple choice fields. He suspects that this can give us referential integrity. Paul says that it does not. We should review that.&lt;br /&gt;
&lt;br /&gt;
== guidelines ==&lt;br /&gt;
&lt;br /&gt;
Thomas wants to have guidelines e.g. for plugins. That allows to know about and judge guidelines. It will also improve documentation.&lt;br /&gt;
&lt;br /&gt;
[[Plugin Guidelines]]&lt;br /&gt;
&lt;br /&gt;
= second day =&lt;br /&gt;
&lt;br /&gt;
== product dependency on price list ==&lt;br /&gt;
&lt;br /&gt;
We want no dependency on pricelists. (Chuck) We can have a flag at the product to make a pricelist that have prices mandatory or not. Norbert  proposed his own solution where in the document type there is a flag to make the product price mandatory. Thomas said that he uses a plugin for conditions &amp;amp; calculations that creates prices without using a price list. This plugin should not be broken when we change things.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4086 IDEMPIERE-4086 product dependency on price list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== more free configurable dimensions in fact_acct ==&lt;br /&gt;
&lt;br /&gt;
Anton asked for that. There are reasons to have dimensions for warehouse, charge, asset, locator&lt;br /&gt;
&lt;br /&gt;
(Chuck opened a ticket before about this) TODO: add chucks ticket&lt;br /&gt;
&lt;br /&gt;
Carlos thinks that it can be worth to add more columns as User1 and User2. Two of them might be not enough.&lt;br /&gt;
&lt;br /&gt;
== currency rate by document or transaction ==&lt;br /&gt;
&lt;br /&gt;
There is a patch from Trek Global that uses a spot currency rate type (e.g. &amp;quot;manual&amp;quot;) that allows to enter a currency rate for every single document.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4083 IDEMPIERE-4083]&lt;br /&gt;
&lt;br /&gt;
== user preferences to see inactive records (and even more) ==&lt;br /&gt;
&lt;br /&gt;
Thomas and Nicolas proposed to have it possible to not show inactive records in the search. There are different ways to do that.&lt;br /&gt;
&lt;br /&gt;
* We can do a default search value.&lt;br /&gt;
* Another way is to create a special SQL where filter in the tab definition.&lt;br /&gt;
* As Carlos mentioned the SQL filter can use environment variables. That allows to use user preferences to switch this kind of filter on and off (because they also are in the environment).&lt;br /&gt;
&lt;br /&gt;
Thomas liked also to have preferences to switch fields on or off or make it read-only or so. As the user preferences are in the environment you are able to configure different levels of information or read/write using a system preference.&lt;br /&gt;
&lt;br /&gt;
Carlos advised us to revisit the proposal from Nicolas to see if we can include a useful way in the search window to implement that. [https://idempiere.atlassian.net/browse/IDEMPIERE-733 IDEMPIERE-733 Show only active records by default when opening a window]&lt;br /&gt;
&lt;br /&gt;
Thomas did a proof of concept of a solution to this problem and it worked well. He used user preferences in a WHERE CLAUSE of a tab. He dosumented it in IDEMPIERE-733. We can think about adding that to the standard configuration in core.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Open window with a predefined search ==&lt;br /&gt;
&lt;br /&gt;
Chuck advised to be able to save searches and use them in the toolbar buttons.&lt;br /&gt;
&lt;br /&gt;
Thomas said that we want to share searches to all users or to a specific role. Chuck said we can have a default search (perhaps configured in system) for a window (up to now it is configured by table).&lt;br /&gt;
&lt;br /&gt;
An additional idea: We want to have relative formulas in the searches (to do things like &amp;quot;last month&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Instead (or additional to) the virtual search columns we can have sql code in a relative formula. For that we can use a flag for superuser to use sql in the search definition. Then the field &amp;quot;validation code&amp;quot; can contain &amp;quot;@SQL=&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Norbert proposed that already in the last workshop and Diego added tickets at this time:&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-2837 IDEMPIERE-2837 use in a better way saved searches] &lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-2836 IDEMPIERE-2836 sql searches for advanced users] &lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-2835 IDEMPIERE-2835 Allow relative searchs] &lt;br /&gt;
&lt;br /&gt;
Someone should review these tickets and optionally open new tickets or add description based on what we spoke about today.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== dynamic validation in search ==&lt;br /&gt;
&lt;br /&gt;
Paul complained that opening a search window with dynamic vaildation fields that can be very slow because all the validations load when the search opens.&lt;br /&gt;
&lt;br /&gt;
Murilo said that this is nearly solved but some small issues have to be solved.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-3981 IDEMPIERE-3981]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== search in the toolbar ==&lt;br /&gt;
&lt;br /&gt;
We like to have preconfigured searches in the toolbar. We can add these as a submenu to the search button or as a combobox. The combobox also shows the actual search's name in the ui. (Norbert showed us his implementation)&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4085 IDEMPIERE-4085]&lt;br /&gt;
&lt;br /&gt;
== improve toolbar ==&lt;br /&gt;
&lt;br /&gt;
Norbert showed us his toolbar. It looked good. He has icons and text buttons and you have only some buttons shown at the left and a &amp;quot;more&amp;quot; drop down menu at the very right.&lt;br /&gt;
&lt;br /&gt;
The audience agreed that Norberts toolbar is nice and we should open a ticket to add his changes.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4084 IDEMPIERE-4084]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== transportation management system ==&lt;br /&gt;
&lt;br /&gt;
Norbert showed an example of its transportation management.&lt;br /&gt;
&lt;br /&gt;
They use shipping region tabel and a shipping slot.&lt;br /&gt;
&lt;br /&gt;
Evan and Ben also use a sophisticated transportation management in their &amp;quot;big dog erp&amp;quot;. Thomas also has an implementation of that.&lt;br /&gt;
&lt;br /&gt;
We liked to talk about that later in a smaller circle of an &amp;quot;[[Transportation Management System]] workgroup&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== workflows ==&lt;br /&gt;
&lt;br /&gt;
Frank was interested in subworkflows. They are not implemented yet in iDempiere. We talked about several features of workflows.&lt;br /&gt;
&lt;br /&gt;
We have no real workflows in iDempiere. There are just basic capabilities beyond the simple document workflow.&lt;br /&gt;
&lt;br /&gt;
== REST ==&lt;br /&gt;
&lt;br /&gt;
Sergey showed us what state the REST implementations have. There is an implementation from Heng Sin and one from Sergey.&lt;br /&gt;
&lt;br /&gt;
Heng Sin created authentification services, services to get window definitions and data object of PO objects. His code is very generic.&lt;br /&gt;
&lt;br /&gt;
It seems that you can replace the ui using that. HEng Sin is not here to explain. Carlos noted that it will not call callouts or have dynamic validation. It may also be the plan to configure a tab and fields for special needs (for a client side application) in the application dictionary and use it here in a generic way. This will not be a real window but a definition of the interface of fields to exchange with a client application that may add its own logic.&lt;br /&gt;
&lt;br /&gt;
Carlos advised to have a look at http://odata.org&lt;br /&gt;
&lt;br /&gt;
Someone said that we can use the JSON parser code to also include document data into pdfs (for example use this german standard https://www.ferd-net.de/zugferd/definition/was-ist-zugferd.html).&lt;br /&gt;
&lt;br /&gt;
Norbert and Paul talked about [https://graphql.org GraphQL]. That can be a more modern alternative to using REST.&lt;br /&gt;
&lt;br /&gt;
== Replication from Norbert ==&lt;br /&gt;
&lt;br /&gt;
Norbert has an system to replicate data between iDempiere systems. You define your own Export formats, then configure one of very different export processors (export to another database but also to other things like a file or an nosql store). He uses that also to replicate to mobile clients and the like. He uses different configurable replication strategies for different use cases. For example replicating only several tables. In his usecase he uses ActiveMQ and sends JSON objects for the exchange of replicated data.&lt;br /&gt;
&lt;br /&gt;
== share tab customizations ==&lt;br /&gt;
&lt;br /&gt;
A superuser should be able to create a tab layout, give it a name and make it as a system or client standard or share it with a role or another user.&lt;br /&gt;
&lt;br /&gt;
If a user copies it he creates an own copy and does not change the global customization.&lt;br /&gt;
&lt;br /&gt;
''(not Chuck)'' Thomas had the idea to add an customization to the export window. That allows to export e.g. csv files with different columns.&lt;br /&gt;
&lt;br /&gt;
We like to have several different grid customizations. Norbert says there is a ticket Hiep is working at. [https://idempiere.atlassian.net/browse/IDEMPIERE-2708 IDEMPIERE-2708]&lt;br /&gt;
&lt;br /&gt;
Carlos wants to add a tab customization field to the user search query table. That allows to open a specific customization if the user ues a specific search. Thomas idea is to add an ordering for that. We can save it in the customization record.&lt;br /&gt;
&lt;br /&gt;
Chuck advised that he likes to have a way to see if something is customized or not.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4088 IDEMPIERE-4088 share tab customizations]&lt;br /&gt;
&lt;br /&gt;
=== bug in csv export ===&lt;br /&gt;
&lt;br /&gt;
No - Chuck did not say that, it was Thomas idea. ;-) But Chuck said that virtual columns do not work in csv files. &lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4089 IDEMPIERE-4089]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== simple production ==&lt;br /&gt;
&lt;br /&gt;
* Document type (Deepak has already code for that)&lt;br /&gt;
* Manufacturing setup (Anton)&lt;br /&gt;
* Adaxa improvements&lt;br /&gt;
* Multi-BOM (TrekGlobal, Chuck suggested a hack using views replacing M_ProductBOM)&lt;br /&gt;
* Negative BOM Line quantity (verify)&lt;br /&gt;
* WIP - financial and inventory move&lt;br /&gt;
* reservations when preparing production documents&lt;br /&gt;
* Production (single) vs Production (multi) - worth to consider enabling it back?&lt;br /&gt;
&lt;br /&gt;
Chuck has experience with using http://frepple.com as a production planning system. One of his friends integrated this into iDempiere.&lt;br /&gt;
&lt;br /&gt;
== processes working on multiple records ==&lt;br /&gt;
&lt;br /&gt;
Now we have the possibility to check several records (using the checkmark at the very left of the grid view). Deepak did it. This is discussed and documented here: https://groups.google.com/forum/#!topic/idempiere/YDnr8nCFGyA&lt;br /&gt;
&lt;br /&gt;
This functionality suffers of pagination. It can work only on what is shown on the current page (maximum of 25 records).&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-3998 IDEMPIERE-3998 Execute Toolbar Process on Multiple Records]&lt;br /&gt;
&lt;br /&gt;
Thomas likes to have something that work on all records in the search query.&lt;br /&gt;
&lt;br /&gt;
Thomas had the idea the create a kind of automatically loop that calls a process for every single record. That allows to use all older processes for that. But Carlos said that can cause problems because then it is not checked if the button is available or not (or even not visible) - that may be dependent on fields of the record.&lt;br /&gt;
&lt;br /&gt;
== bulk changes ==&lt;br /&gt;
&lt;br /&gt;
Carlos thought about bulk changes. That is to have a button that shows all fields that can be changed in all shown records. There will be big issues because we do not know if everything can be changed or will be shown. After thinking about it it seems not a good idea.&lt;br /&gt;
&lt;br /&gt;
The original proposal was about deleting or completing things. That can better be done with a simple process or with the csv importer.&lt;br /&gt;
&lt;br /&gt;
== aggregating accounting in fact_acct ==&lt;br /&gt;
&lt;br /&gt;
Norbert proposed to have a more similar accounting. For example if we complete an invoice with several product lines we get several lines in the accounting. He likes to have only one line for all products to make it simpler for him. Especially to make the tables smaller.&lt;br /&gt;
&lt;br /&gt;
Carlos shows us a link to an quite old explanation from Jörg Janke about this: https://www.compieresource.com/2007/08/financial-data-warehouse.html&lt;br /&gt;
&lt;br /&gt;
What Norbert proposed is doable, not easy, and not recommended&lt;br /&gt;
&lt;br /&gt;
== Assets ==&lt;br /&gt;
&lt;br /&gt;
Anton has some issues with Assets. He says that you first have to create a product. Then you do a vendor invoice to buy the thing and the you can create an asset record.&lt;br /&gt;
&lt;br /&gt;
Chuck explains that an asset can be created in two ways: From an product (if you buy it) or from an project (that you create yourself). The process to create it from an project does not work very well.&lt;br /&gt;
&lt;br /&gt;
Some issues we found:&lt;br /&gt;
* dependency between asset and product&lt;br /&gt;
* asset maintenance&lt;br /&gt;
* asset must be dimension in fact_acct&lt;br /&gt;
* fixed assets vs asset management&lt;br /&gt;
* creating an asset group is not pre-filling default accounts&lt;br /&gt;
* Chuck suggests to &amp;quot;pluginize&amp;quot; it -&amp;gt; knowledge group - &amp;gt; Anton, Chuck, Deepak, Steven/Paul&lt;br /&gt;
* Improvement in core to support better Assets -&amp;gt; Product as a Charge that posts in material receipt and not just in Invoice (Chuck to collect and document this here: [https://idempiere.atlassian.net/browse/IDEMPIERE-4092 IDEMPIERE-4092]&lt;br /&gt;
&lt;br /&gt;
There are problems if you mix the concepts of &amp;quot;fixed assets&amp;quot; and &amp;quot;maintenance assets&amp;quot;. Both use the same tables but they are very different.&lt;br /&gt;
&lt;br /&gt;
Chuck already talked to Steven about the charge product he suggests and tries to figure out how to improve it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== combobox auto filter ==&lt;br /&gt;
&lt;br /&gt;
There is a new field reference type to create a combobox with an auto filter facility. You use a &amp;quot;table direct&amp;quot; and you set the &amp;quot;Autocomplete&amp;quot; flag. This is done in [https://idempiere.atlassian.net/browse/IDEMPIERE-3851 IDEMPIERE-3851 Filtering list box (AP2-671 TrekGlobal)].&lt;br /&gt;
&lt;br /&gt;
Thomas has problems using it because it is not very performant with big data sets.&lt;br /&gt;
&lt;br /&gt;
Norbert uses https://fusejs.io to do that on client side.&lt;br /&gt;
&lt;br /&gt;
Carlos had a look into our source code. It seems that it does not use the database for every keystroke but it sorts data on the server and has to resend it to the client. Something in this process is too slow.&lt;br /&gt;
&lt;br /&gt;
Strategies to solve it:&lt;br /&gt;
&lt;br /&gt;
* make it configurable when it searches 'ab%' vs. '%abc%'&lt;br /&gt;
* wait e.g. half a second before you run the query&lt;br /&gt;
* run the query not in the foreground but in a background thread&lt;br /&gt;
* see if we can cache data in the client and process it there&lt;br /&gt;
&lt;br /&gt;
* we added [https://idempiere.atlassian.net/browse/IDEMPIERE-4093 IDEMPIERE-4093]&lt;br /&gt;
&lt;br /&gt;
= third day =&lt;br /&gt;
&lt;br /&gt;
== DB Transaction management - for long trx ==&lt;br /&gt;
&lt;br /&gt;
Chuck asked how to do that. These kind of processes happen when a new user fills tables when he starts working with iDempiere but there are also users that need to import long data day by day.&lt;br /&gt;
&lt;br /&gt;
Carlos says there is an hardcoded limit to have no SQL transaction longer than 2 hours.&lt;br /&gt;
&lt;br /&gt;
=== improved process transaction management ===&lt;br /&gt;
&lt;br /&gt;
Chucks question was if it is possible for an process source code to get the transaction handle of this transaction, commit it and create a new transaction.&lt;br /&gt;
&lt;br /&gt;
Diego leaded us to Event Handlers for PRE_PROCESS &amp;amp; POSTPROCESS. You can find them in IEventTopics.java. They are done with [https://idempiere.atlassian.net/browse/IDEMPIERE-3924 IDEMPIERE-3924 Implement EventHandler for pre/after/post processes] The OSGi Interface IEventManager can be used.&lt;br /&gt;
&lt;br /&gt;
That can be used to extend the timeout of trx, or to implement the postgresql no-logging.&lt;br /&gt;
&lt;br /&gt;
Some of that can be connected with the ticket [https://idempiere.atlassian.net/browse/IDEMPIERE-3969 IDEMPIERE-3969]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== call csv import in smaller parts ===&lt;br /&gt;
&lt;br /&gt;
Thomas did a bash script that splitted a very long csv file into parts and called a webservice to import every part in a single transaction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CSV import button vs. CSV process button ===&lt;br /&gt;
&lt;br /&gt;
CSV Import Button is slow. (That is the button that is in every window). It uses the UI thread. So it blocks the UI. It emulates to use the actual shown user interface.&lt;br /&gt;
&lt;br /&gt;
The CSV process button (that has to be configured for specific tasks) uses an dedicated process and emulates just a smaller kind of a window (it also uses callouts). It runs much more performant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== dedicated server for background processes ===&lt;br /&gt;
&lt;br /&gt;
Norberts idea is that it should be possible in an environment with multiple application servers to send a background process to a configurable dedicated service server.&lt;br /&gt;
&lt;br /&gt;
An advanced idea is to make it possible to send a job to an external system working e.g. with [https://aws.amazon.com/de/lambda/ AWS lambda].&lt;br /&gt;
&lt;br /&gt;
We talked about improving the discovery strategy (schedulers). How to implement server groups and how to find out which servers are working or when to even start new server instances. For example EC2-tags, server variables, server name, etc.&lt;br /&gt;
&lt;br /&gt;
[https://idempiere.atlassian.net/browse/IDEMPIERE-4090 IDEMPIERE-4090 start background processes on a dedicated service server]&lt;br /&gt;
&lt;br /&gt;
== TMS Transportation Management System ==&lt;br /&gt;
&lt;br /&gt;
A meeting will be coordinated in future. [[Transportation Management System]]&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&lt;br /&gt;
We talked about:&lt;br /&gt;
* a staging/experimental/prototype server&lt;br /&gt;
** Hiep already has an experimental server from an experimental branch. It helped to do complicated topics that needed several functions and ticketsan&lt;br /&gt;
&lt;br /&gt;
Norbert showed us a list of User Eperience changes he likes to have. We started a discussion about how to work on these items perhaps with a working group or so.&lt;br /&gt;
&lt;br /&gt;
ONe idea was to open a kind of special branch for new user experience functionalities and use jenkins to automatically create a test server for that. A test server might be very helpful especially for User Experience issues because people that are interested in that are not developers and may like to see and use the new things.&lt;br /&gt;
&lt;br /&gt;
== attract developers and implementors ==&lt;br /&gt;
&lt;br /&gt;
We talked about doing more trainings. That is what Diego proposed in the conference. We do not all like the idea to have a certificate for that.&lt;br /&gt;
&lt;br /&gt;
Carlos had the thought that teachers are a good point to see new students and see their abilities. In our community Chuck is the one to see new worthful developers. We may improve things to attract these.&lt;br /&gt;
&lt;br /&gt;
There can be different views of the project and its parts. At the end we have the same thougts be we need to find a better way to view the structure of the project (and also on code) that is not centric to one center (or even one center).&lt;br /&gt;
&lt;br /&gt;
== User Experience Focus Group ==&lt;br /&gt;
&lt;br /&gt;
We like to build a user experience user group.&lt;br /&gt;
&lt;br /&gt;
== other user Experience topics ==&lt;br /&gt;
&lt;br /&gt;
* Guidelines about window layouts&lt;br /&gt;
* Multi-Dashboard - the layout of home windows is outdated&lt;br /&gt;
&lt;br /&gt;
== Accesibility == &lt;br /&gt;
&lt;br /&gt;
Alain expresses the importance of accesibility for people with disabilities in the UI, in countries such as France there are laws of ´inclusive-society´, therefore the software being used in companies need to be compliant with these laws easing the user experience for people with visual disabilities for example.&lt;br /&gt;
&lt;br /&gt;
The focus of this work can also include mobile and high resolution displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alternatives for zk ==&lt;br /&gt;
&lt;br /&gt;
* Evolving REST could lead to a client-side client&lt;br /&gt;
* Evolving REST is strategic&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== distribution / shipment process ==&lt;br /&gt;
&lt;br /&gt;
Chuck expained that the workflow of shipment is quite simple. And he thinks to change or extend the way it works for complex cases. He want some intermediate place for inventory entries to go. Carlso says that is part of warehouse management but it does not work well in core.&lt;br /&gt;
&lt;br /&gt;
* shipment vs move + shipment&lt;br /&gt;
* stock monitor&lt;br /&gt;
* move confirmation&lt;br /&gt;
&lt;br /&gt;
It was talked about a way to move items from a warehouse locator (that keeps big palettes) to a picking locator (that keeps single opened packages) to a packing locator (where items are prepared for shipping). Only the packing locator can be shipped. We thought how items can be moved from one locator to the other. That can be done based on replenishment or orders or we even have to create a custom version of them.&lt;br /&gt;
&lt;br /&gt;
Chuck advised that it should be possible to change the generate shipments process to work with different locators. Some things have to be done with replenishment.&lt;br /&gt;
&lt;br /&gt;
* it must be a replenishment algorithm that takes into acount the date needed&lt;br /&gt;
* To support complex cases we need an allocation inventory document and a storage allocated view/table&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DMS ==&lt;br /&gt;
&lt;br /&gt;
Deepak explained how he implemented his DMS system.&lt;br /&gt;
&lt;br /&gt;
We were interested how he implemented the storage provider. He still did not implement an CMIS interface.&lt;br /&gt;
&lt;br /&gt;
If you like to access the files as a filesystem you can use the filesystem storage provider and access it as a direct filesystem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== how to display kiosk screens ==&lt;br /&gt;
&lt;br /&gt;
* REST will make it easy to implement outside applications to do that&lt;br /&gt;
&lt;br /&gt;
Thomas likes to have a way to use one single http call to&lt;br /&gt;
* login as a dedicated user&lt;br /&gt;
* opening a dedicated window&lt;br /&gt;
* in a borderless view&lt;br /&gt;
* that refreshes after a set timeout&lt;br /&gt;
* it can even be good to open more than one window and let the view cycle through them&lt;br /&gt;
&lt;br /&gt;
* ZK_SESSION_TIMEOUT_IN_SECONDS has to work not globally but on a single user (kiosk user without timeout) &lt;br /&gt;
* we can use dashboards to collect data in one window&lt;br /&gt;
** Norbert explained that dashboard layout may be improved&lt;br /&gt;
* integration with external kiosk tools - via sending HTML or screenshots periodically&lt;br /&gt;
* /kiosk like idempiereMonitor -&amp;gt; dedicated to show the required info&lt;br /&gt;
* could use the cookie information to login -&amp;gt; problem - how to relogin in a server crash&lt;br /&gt;
* Carlso says there is an extension to refresh chrome every minute. As that creates a session every x minutes we should better have autorefresh windows&lt;br /&gt;
&lt;br /&gt;
What already works:&lt;br /&gt;
* if you close the borders (left, right and at the top) for a single user, this is persisted&lt;br /&gt;
* you can automatic open a window when you login using menu favourites (you set a sequence there)&lt;br /&gt;
* one can refresh a chrome tab in some ways&lt;br /&gt;
&lt;br /&gt;
what does not work&lt;br /&gt;
* automatic passwordless login&lt;br /&gt;
** Deepak already uses authentication login in web services&lt;br /&gt;
** using cookies does not work on a server crash&lt;br /&gt;
* no menu for the kiosk user&lt;br /&gt;
* automatic refresh e.g. for normal data windows, reports, etc.&lt;br /&gt;
&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-4094 IDEMPIERE-4094 kiosk mode screens]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== column reference type for json/jsonb ==&lt;br /&gt;
&lt;br /&gt;
Norbert thinks about adding JSON and/or JSONB field types. He says that allows to work as in a nosql database. There is a datatype for JSON objects in PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
Carlos proposed to change ASI to a JSON field.&lt;br /&gt;
&lt;br /&gt;
We could maybe link JSON fields to attribute definiton.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== machine learning ==&lt;br /&gt;
&lt;br /&gt;
Chuck talked about machine learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== open item management on fact_acct ==&lt;br /&gt;
&lt;br /&gt;
Anton has problems to bring the balance of accounting together with the balancing of open items and reconcile everything. Especially using different currencys.&lt;br /&gt;
&lt;br /&gt;
== customer and vendor accounting ==&lt;br /&gt;
&lt;br /&gt;
There was a question from the audience how the difference in accounting for customers and vendors work.&lt;br /&gt;
&lt;br /&gt;
There are accounting tabs for both of them in the business partner window. The preset for these can be set in the business partner group - that is copied when you create a new business partner. There is a button in the group to copy a changed group setting to all business partners that belong to this group.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== charge on requisition ==&lt;br /&gt;
&lt;br /&gt;
Deepak has done that and will open this code soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Documentation - who is doing what ==&lt;br /&gt;
&lt;br /&gt;
* Chuck advice: much of the documentation is in the code&lt;br /&gt;
* manual from compiere is not available any more in the internet&lt;br /&gt;
* we have ADempiere books&lt;br /&gt;
* there is a compiere book&lt;br /&gt;
* There is documentation from Redhun&lt;br /&gt;
* we have our wiki&lt;br /&gt;
* there is a book from Michael McKay at http://adempiere.gitbook.io&lt;br /&gt;
* Jan Thielemann did a lot of documentations in the wiki and in a video&lt;br /&gt;
An example for a implementor specific documentation using docbook is (in portuguese language):&lt;br /&gt;
* http://docs.devcoffee.com.br&lt;br /&gt;
&lt;br /&gt;
Chuck showed us what his Open Source ERP Academy offers and gave us an overview.&lt;br /&gt;
&lt;br /&gt;
We talked about that someone wants to write a book. See e.g. http://erp-fundamentals.chuckboecking.com/basics/ that Chuck did using markdown and [https://gohugo.io hugo].&lt;br /&gt;
&lt;br /&gt;
Chuck likes to write the book. It will be open and on his website but it should also be able to be printed. Everyone will be free to translate it to other languages.&lt;br /&gt;
&lt;br /&gt;
== foreign context ==&lt;br /&gt;
&lt;br /&gt;
* Document&lt;br /&gt;
* think how to standardize - take into account backward compability&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tab context for processes ==&lt;br /&gt;
&lt;br /&gt;
Anton openened this topic. When a process is launched by a button it can not access the state of the ui. To e.g. work on a range of all records in a window we need to know what is the actual window where the process has called from. It would help to include a tab identification (context variable id?) in the context.&lt;br /&gt;
&lt;br /&gt;
The bug that Anton had should be solved now and it is possible to get the context of the right tab.&lt;br /&gt;
&lt;br /&gt;
Chuck did a nice documentation about that and sent it to Carlos by mail. Someone has to copy that to our wiki. Please. ;-)&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=NF1.0_PasswordRules&amp;diff=14750</id>
		<title>NF1.0 PasswordRules</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=NF1.0_PasswordRules&amp;diff=14750"/>
		<updated>2019-06-12T10:26:41Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Feature: Password Rules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= '''Feature:''' Password Rules =&lt;br /&gt;
&lt;br /&gt;
'''Goal:''' Security&lt;br /&gt;
&lt;br /&gt;
'''Sponsor:''' [[Sponsor:Trek_Global|Trek Global]]&lt;br /&gt;
&lt;br /&gt;
'''External Credits:''' Supported on [http://code.google.com/p/vt-middleware/wiki/vtpassword vt-password] and [http://code.google.com/p/vt-middleware/wiki/vtdictionary vt-dictionary] libraries by [http://www.middleware.vt.edu Middleware Services] at [http://www.vt.edu/ Virginia Tech].&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
&lt;br /&gt;
* Implementors can define now system wide password policies using the window ''Password Rule'', in this window you can configure:&lt;br /&gt;
** Lengths: maximum and/or minimum&lt;br /&gt;
** Number of Characters Required per type: Alphabetical, Digit, Uppercase, Lowercase, Non-Alphanumeric&lt;br /&gt;
** Length of sequences to Forbid per type: Alphabetical, Numerical, QWERTY (keyboard), Repeated characters&lt;br /&gt;
** Disallow using username within the password&lt;br /&gt;
** Disallow whitespaces within the password&lt;br /&gt;
** Check password against a text configurable dictionary, in this case you can also configure if the match will be checked backwards also and the minimum word length to check&lt;br /&gt;
&lt;br /&gt;
* On ''Client'' just for System Client window you can configure the specific password policies that you want to apply to each client&lt;br /&gt;
&lt;br /&gt;
[[Image:NF001_SEC_PasswordRules.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Technical Info:''' [http://idempiere.atlassian.net/browse/IDEMPIERE-221 IDEMPIERE-221]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[en:NF1.0_PasswordRules]] &lt;br /&gt;
[[de:NF1.0 Passwort Regeln]]&lt;br /&gt;
[[fr:NF1.0_Règles_du_mot_de_passe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:New Features|S]]&lt;br /&gt;
[[Category:New Features v1.0|S]]&lt;br /&gt;
[[Category:New Features Security]]&lt;br /&gt;
[[Category:Security Features]]&lt;br /&gt;
[[Category:User Manual]]&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
[[Category:Role]]&lt;br /&gt;
[[Category:User]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Info_Window_Print&amp;diff=14548</id>
		<title>Info Window Print</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Info_Window_Print&amp;diff=14548"/>
		<updated>2019-03-12T05:34:00Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
* '''Maintainer:''' [[User:Hieplq|Hieplq]] ([[User talk:Hieplq|talk]])&lt;br /&gt;
* '''Main Copyright:''' Hieplq. &lt;br /&gt;
* '''Lesser Copyright:''' Hieplq&lt;br /&gt;
* '''Current Version:''' 1.0&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''sponsor:''' Thailand project&lt;br /&gt;
* '''Source:''' [https://bitbucket.org/idplugin/th.motive.idempiere.info.print th.motive.idempiere.info.print]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
This wiki will guide you how to activate and use Print button plugin for Info-Window. [https://bitbucket.org/idplugin/th.motive.idempiere.info.print th.motive.idempiere.info.print]&lt;br /&gt;
&lt;br /&gt;
== install ==&lt;br /&gt;
* Apply patch at [https://idempiere.atlassian.net/browse/IDEMPIERE-3784 IDEMPIERE-3784]&lt;br /&gt;
**This patch provides ability to turn on or off display icon of Print button&lt;br /&gt;
**This patch handles the click-event when button is used&lt;br /&gt;
&lt;br /&gt;
*Install plugin at [https://bitbucket.org/idplugin/th.motive.idempiere.info.print th.motive.idempiere.info.print]&lt;br /&gt;
*This plugin utilizes services approach. So it is a lazy plugin. As it contains a 2pack you will need to start it manually the first time.&lt;br /&gt;
&lt;br /&gt;
== setup (use system role) ==&lt;br /&gt;
* Create a report/process&lt;br /&gt;
[[File:Report.process.invoice.info.print.png|300px|frame|center]]&lt;br /&gt;
&lt;br /&gt;
    This report use a jasper to print, this jasper will receive parameter name INFO_SELECTED_KEYS, value is a collection contain all key of selected record&lt;br /&gt;
    on main query you can use bellow code to query &amp;quot;WHERE  $X{IN, inv.c_invoice_ID, INFO_SELECTED_KEYS}&amp;quot;&lt;br /&gt;
    this step can be done by packin file [https://bitbucket.org/idplugin/th.motive.idempiere.info.print/src/default/META-INF/demoInvoceInfoProcess.zip demoInvoceInfoProcess.zip]&lt;br /&gt;
&lt;br /&gt;
* Set report for info window&lt;br /&gt;
    open info window and navigate to record &amp;quot;Invoice Info&amp;quot;&lt;br /&gt;
    set value of new field &amp;quot;Process&amp;quot; = &amp;quot;Info Barcode Print&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Use (gardenword use) ==&lt;br /&gt;
default idempiere open info window from View on single selection mode, you can choose other way to open on multi selection mode, for me i change code to test&lt;br /&gt;
&lt;br /&gt;
* go to class DefaultInfoFactory &lt;br /&gt;
&lt;br /&gt;
    change  InfoPanel info = create(-1, tableName, keyColumn, null, false, null, AD_InfoWindow_ID, false);&lt;br /&gt;
    to      InfoPanel info = create(-1, tableName, keyColumn, null, true, null, AD_InfoWindow_ID, false);&lt;br /&gt;
&lt;br /&gt;
* open invoice info&lt;br /&gt;
    now print button come up&lt;br /&gt;
    do query and choose some record&lt;br /&gt;
    click print button&lt;br /&gt;
    jasper report is called and show you result on other tab&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Info_Window_Print&amp;diff=14547</id>
		<title>Info Window Print</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Info_Window_Print&amp;diff=14547"/>
		<updated>2019-03-12T05:21:13Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
* '''Maintainer:''' [[User:Hieplq|Hieplq]] ([[User talk:Hieplq|talk]])&lt;br /&gt;
* '''Main Copyright:''' Hieplq. &lt;br /&gt;
* '''Lesser Copyright:''' Hieplq&lt;br /&gt;
* '''Current Version:''' 1.0&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''sponsor:''' Thailand project&lt;br /&gt;
* '''Source:''' [https://bitbucket.org/idplugin/th.motive.idempiere.info.print th.motive.idempiere.info.print]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
This wiki will guide you how to activate and use Print button plugin for Info-Window. [https://bitbucket.org/idplugin/th.motive.idempiere.info.print th.motive.idempiere.info.print]&lt;br /&gt;
&lt;br /&gt;
== install ==&lt;br /&gt;
* Apply patch at [https://idempiere.atlassian.net/browse/IDEMPIERE-3784 IDEMPIERE-3784]&lt;br /&gt;
this patch provide ability to add plugin control status (display/invisible) of print button&lt;br /&gt;
&lt;br /&gt;
this patch also provide ability to add plugin to handle event click this button&lt;br /&gt;
&lt;br /&gt;
* install plugin at [https://bitbucket.org/idplugin/th.motive.idempiere.info.print th.motive.idempiere.info.print]&lt;br /&gt;
'''this plugin contain service to manage print button. So it's lazy plugin. but it contain 2pack so need to start it manual first time.'''&lt;br /&gt;
&lt;br /&gt;
== setup (use system role) ==&lt;br /&gt;
* Create a report/process&lt;br /&gt;
[[File:Report.process.invoice.info.print.png|300px|frame|center]]&lt;br /&gt;
&lt;br /&gt;
    This report use a jasper to print, this jasper will receive parameter name INFO_SELECTED_KEYS, value is a collection contain all key of selected record&lt;br /&gt;
    on main query you can use bellow code to query &amp;quot;WHERE  $X{IN, inv.c_invoice_ID, INFO_SELECTED_KEYS}&amp;quot;&lt;br /&gt;
    this step can be done by packin file [https://bitbucket.org/idplugin/th.motive.idempiere.info.print/src/default/META-INF/demoInvoceInfoProcess.zip demoInvoceInfoProcess.zip]&lt;br /&gt;
&lt;br /&gt;
* Set report for info window&lt;br /&gt;
    open info window and navigate to record &amp;quot;Invoice Info&amp;quot;&lt;br /&gt;
    set value of new field &amp;quot;Process&amp;quot; = &amp;quot;Info Barcode Print&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Use (gardenword use) ==&lt;br /&gt;
default idempiere open info window from View on single selection mode, you can choose other way to open on multi selection mode, for me i change code to test&lt;br /&gt;
&lt;br /&gt;
* go to class DefaultInfoFactory &lt;br /&gt;
&lt;br /&gt;
    change  InfoPanel info = create(-1, tableName, keyColumn, null, false, null, AD_InfoWindow_ID, false);&lt;br /&gt;
    to      InfoPanel info = create(-1, tableName, keyColumn, null, true, null, AD_InfoWindow_ID, false);&lt;br /&gt;
&lt;br /&gt;
* open invoice info&lt;br /&gt;
    now print button come up&lt;br /&gt;
    do query and choose some record&lt;br /&gt;
    click print button&lt;br /&gt;
    jasper report is called and show you result on other tab&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14418</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14418"/>
		<updated>2018-11-16T03:31:42Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot; and &amp;quot;Maven Tycho Utilities&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click '''Open Catalog'''&lt;br /&gt;
# On Find field, enter '''Tycho'''&lt;br /&gt;
# Select '''Tycho Configurator''', click '''Finish''' to install it&lt;br /&gt;
# Restart Eclipse and use the same dialog to install '''m2e connector for maven-dependency-plugin'''&lt;br /&gt;
&lt;br /&gt;
Note: Use Help &amp;gt; About Eclipse IDE &amp;gt; Installation Details &amp;gt; Installed Software to find out the list of m2e Connector and Tycho plugins that you have installed.&lt;br /&gt;
&lt;br /&gt;
== Steps to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step is needed for both headless build and setup of Eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to a folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and execute command &amp;quot;mvn verify&amp;quot; (in case you focus to setup eclipse, don't want to build product, use &amp;quot;mvn validate&amp;quot;)&lt;br /&gt;
##* Downloads all libraries on Bundle-ClassPath&lt;br /&gt;
##* Build all projects and output binary to [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup Eclipse Workspace&lt;br /&gt;
## Import Projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### At Import dialog, choose Maven/Existing Maven Projects&lt;br /&gt;
### Click Next button and Browse to [idempiere-home]&lt;br /&gt;
### Select all projects, click Finish to complete the import&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Set Target Platform&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### At Import dialog, choose General/Existing Projects into Workspace&lt;br /&gt;
### Click Next button and Browse to [idempiere-home]/org.idempiere.p2.targetplatform. Click Finish to complete the import&lt;br /&gt;
### Open the org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target file. This is the default target platform definition with remote url&lt;br /&gt;
### At Target Editor, click the &amp;quot;Set as Active Target Platform&amp;quot; link&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform. Click the &amp;quot;Reload Target Platform&amp;quot; link if some download fail&lt;br /&gt;
## Say good bye to Buckminster&lt;br /&gt;
&lt;br /&gt;
[[User:Hengsin|Hengsin]] ([[User talk:Hengsin|talk]]) 05:54, 20 October 2018 (UTC), org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is slow and error prone for me. I'm not sure that's the intended alternative but idempiere/org.idempiere.p2/target/repository works fine for me as Target Platform (add new empty target platform and add the idempiere/org.idempiere.p2/target/repository folder/directory to it) and without all the hassle with org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target&lt;br /&gt;
&lt;br /&gt;
== Config For Jenkins ==&lt;br /&gt;
# Setup Maven for Jenkins&lt;br /&gt;
# Create a Maven Project&lt;br /&gt;
# In &amp;quot;Source Code Management&amp;quot; Section&lt;br /&gt;
#* Repository URL=ssh://hg@bitbucket.org/idempiere/idempiere-experimental (or the url of your target repository)&lt;br /&gt;
#* Revision=experimental (or the revision of your target repository)&lt;br /&gt;
# On build step, setup with value:&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== How to set an OSGi Plugin as a Maven Project ==&lt;br /&gt;
# Create a normal plugin/feature project on eclipse&lt;br /&gt;
# Right click on project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# At dialog, value of &amp;quot;Package&amp;quot; type field depends on type of plug-in&lt;br /&gt;
#* Eclipse feature =&amp;gt; &amp;quot;eclipse-feature&amp;quot;&lt;br /&gt;
#* Eclipse plugin/fragment =&amp;gt; &amp;quot;eclipse-plugin&amp;quot;&lt;br /&gt;
# After eclipse has converted project, there will be a pom.xml inside project space, please adjust value as below:&lt;br /&gt;
#* Add parent section&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;parent&amp;gt;&lt;br /&gt;
        &amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
	&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
    &amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Open MANIFEST.MF and continue checking..&lt;br /&gt;
#* At Runtime tab, section classpath has item &amp;quot;.&amp;quot; if not, you should create one&lt;br /&gt;
# In build.properties &lt;br /&gt;
#* Adjust Output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* In case your project has source, make sure it is stated: &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# Reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* Core project&lt;br /&gt;
&lt;br /&gt;
== Build Extra Plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Script from local ===&lt;br /&gt;
# Build idempiere core so we have a p2 repository that contains idempiere core plus dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# Host this repository with a web server. If you don't have one, you can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin] to host it&lt;br /&gt;
# Create a maven tycho target plugin point to the p2 repository server setup at step 2&lt;br /&gt;
# Build extra plugin by using target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Jenkins Job ===&lt;br /&gt;
Because you have to check out from multi repository, I prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
Besides, normal pipeline plugin, you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For newbie to jenkins pipeline, I suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Steps to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, for access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# Successful build will copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# This is pipeline for build idempiere-core&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository to feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) that build with command &amp;quot;mvn verify -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* parent pom with common configuration, for other bundle to inherit from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, currently use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define OSGi bundles feed from maven repositories&lt;br /&gt;
&lt;br /&gt;
== Known Issue ==&lt;br /&gt;
# Before the completion of step 2.2 (Set Target Platform), you should turn off &amp;quot;Project/Build Automatically&amp;quot;. Before the setting of Active Target Platform, build will be slow and full with errors.&lt;br /&gt;
# Sometimes due to condition in Sourceforge, the setting of Active Target Platform ends with errors, hindering a complete clean build. Take a look bellow for tips:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[[Update_JDK]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=IDempiere_light&amp;diff=14297</id>
		<title>IDempiere light</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=IDempiere_light&amp;diff=14297"/>
		<updated>2018-06-30T01:42:59Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the [[IDempiere_Workshop_2014]] we talked about some possibilities to restrict iDempiere. There are different usecases we want to cover:&lt;br /&gt;
&lt;br /&gt;
* Creating a demo with a small functional overview to not confuse new users&lt;br /&gt;
* fast creation of a new client with some standard functionalities&lt;br /&gt;
* dividing the functional areas of iDempiere into modules that can be activated during an installation&lt;br /&gt;
&lt;br /&gt;
There was a discussion on irc if we begin by creating a &amp;quot;Tiny iDempiere&amp;quot; to get a system with a minimal functionality or by first defining functional areas and think how we define modules. We agreed that we have to begin somewhere and want to do it iterative.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== technical base ==&lt;br /&gt;
&lt;br /&gt;
We discussed in the workshop about using ASP and/or Master Roles (using Window Customizations) for that as the technical base. This discussion did not lead to a final decision for one or the other way. Some differences are:&lt;br /&gt;
&lt;br /&gt;
* Roles allow always to open a role to use the full functionality (or use the admin role to access everything). That can be a blessing or a curse...&lt;br /&gt;
* ASP may be a better way if we want to switch off an functionality totally (like manufacturing in a trading company).&lt;br /&gt;
* ASP allows to define &amp;quot;modules&amp;quot; and &amp;quot;levels&amp;quot;. At the end you can give access to some of them, but only client based.&lt;br /&gt;
&lt;br /&gt;
It seems that both things deal with the same issues and need a similar functional grouping. ASP is good on a low layer to let a user have &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== what is missing? ==&lt;br /&gt;
&lt;br /&gt;
Some things seem to be missing in the code:&lt;br /&gt;
&lt;br /&gt;
JIRA tickets that are connected to this project can be found [[https://idempiere.atlassian.net/issues/?jql=labels%20%3D%20iDempiereLight with this JIRA search term]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== check if one of my roles allows something ===&lt;br /&gt;
&lt;br /&gt;
At some points we want to limit access with a formula e.g. with a display logic like &amp;quot;#AD_Role = 1000001&amp;quot;. I see two problems with this approach:&lt;br /&gt;
* The ID of the role can change if we load the &amp;quot;System Master Roles&amp;quot; with 2pack.&lt;br /&gt;
* We will create a hierarchical system of master roles. The display logic in our package will likely depend on a master role not on the given user's role&lt;br /&gt;
&lt;br /&gt;
We need a way to ask &amp;quot;Do I have the rights of role 'blabla'&amp;quot;. Two ideas to do that:&lt;br /&gt;
* create an SQL query for that that works recursive through all my roles&lt;br /&gt;
* allow a (master) role to set an special context variable. (This is a bit similar like the aktivation of accounting dimensions works.) A EventValidator at Login time could do that.&lt;br /&gt;
&lt;br /&gt;
=== change where clause depending on role ===&lt;br /&gt;
&lt;br /&gt;
It should be possible that we want some roles see only some of the records in a table. I would like to override the WHERE-clause of a table in the Windows Customizations.&lt;br /&gt;
&lt;br /&gt;
While talking to a customer about &amp;quot;deleting things&amp;quot; in the database I wonder if it would be possible to create a user role that does not see any deactivated records and an admin role to see all records.&lt;br /&gt;
&lt;br /&gt;
Any other ideas?!&lt;br /&gt;
&lt;br /&gt;
=== deal with &amp;quot;crossing&amp;quot; of roles (dimensions of roles) ===&lt;br /&gt;
&lt;br /&gt;
Lets say we have a module for a base and one for manufacturing. Now I want to use accounting. The accounting module is a third one. It opens the accounting functions of the base module. Now the question: what about the accounting of manufacturing?!? Is it a fourth module? Is it activated automatically?&lt;br /&gt;
&lt;br /&gt;
And what if we want to add reporting? Do we need &amp;quot;base reporting&amp;quot;, &amp;quot;accountant reporting&amp;quot;, &amp;quot;manufacturing reporting&amp;quot; and &amp;quot;manufacturing accounting reporting&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
One of the most important crossing dimensions is &amp;quot;administration&amp;quot;. MAny modules will have functions that we want to use regularly and some windows that are only needed to configure them.&lt;br /&gt;
&lt;br /&gt;
wdyt?&lt;br /&gt;
&lt;br /&gt;
=== Document Type Access ===&lt;br /&gt;
&lt;br /&gt;
The configuration of the allowed actions for a document type can be much work. Because document types belong to the client it may be a problem to do that in System. Any ideas?&lt;br /&gt;
&lt;br /&gt;
=== take back rights ===&lt;br /&gt;
&lt;br /&gt;
What if a user says he wants the &amp;quot;accounting reports&amp;quot; but does not need one or two of them? Is it possible to take back a right only for one user? Or can one role take back the right that another role gives?&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
&lt;br /&gt;
This list is only a first proposal and should work as a seed for further thinkings.&lt;br /&gt;
&lt;br /&gt;
* Base&lt;br /&gt;
: Is there a base without an ERP? What if someone wants to use iDempiere to maintain his stamps collection in some self-created tables? Is this an abstract idea to help us finding the &amp;quot;inner core&amp;quot;?&lt;br /&gt;
* Base ERP User&lt;br /&gt;
: This allows to work with the smallest thinkable system. I see a small one-man company that wants to sell some services to some businesspartners. Accounting is not done in-house. Products can be sold but there is no inventory, warehouse, etc.&lt;br /&gt;
: Is it part of this base to deal with incoming invoices? Or is this another module &amp;quot;Purchase&amp;quot;?&lt;br /&gt;
: Is there a subrole for &amp;quot;Sales&amp;quot; too?&lt;br /&gt;
* Base ERP Admin&lt;br /&gt;
: Configuration of some minor used things like groups, categories, etc.&lt;br /&gt;
: Setup of things that have to be set up only once like bank account, etc.&lt;br /&gt;
* User Admin&lt;br /&gt;
: A role that is needed to deal with users, roles and security&lt;br /&gt;
* Open Items&lt;br /&gt;
* Accounting&lt;br /&gt;
* Inventory&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
*[http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1849 Simple Menu Tree Manager] by [[User:Red1|Red1]] ([[User talk:Red1|talk]])&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;br /&gt;
[[Category: Community]]&lt;br /&gt;
[[Category: Meetings|4]]&lt;br /&gt;
[[Category: Meetings 2014]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Australian_ABA_Export&amp;diff=14294</id>
		<title>Plugin: Australian ABA Export</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Australian_ABA_Export&amp;diff=14294"/>
		<updated>2018-05-25T18:53:11Z</updated>

		<summary type="html">&lt;p&gt;Red1: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''Creator/Maintainter:''' [[User:PhilB|Phil Barnett]] ([[User talk:PhilB|talk]])&lt;br /&gt;
* '''Current Version:''' 1.0.1&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [https://bitbucket.org/fullnoize/bmidempiere BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [https://bitbucket.org/fullnoize/bmidempiere/downloads/au.blindmot.abapaymentexport_1.0.1.201805212305.jar]&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__ &lt;br /&gt;
&lt;br /&gt;
Many Australian banks use the '.ABA' file format for importing payment files, an ancient, fixed width flat file format that really should have been replaced by an XML equivalent at least a decade ago. See http://ddkonline.blogspot.com.au/2009/01/aba-bank-payment-file-format-australian.html for more info. This plugin makes use of the PaymentExport interface to allow multiple payments to be prepared in the Payment Selection Window. Then an .aba file can be created from the 'Payment Export' window, allowing multiple payments to made using the one file.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
After installing the plugin:&lt;br /&gt;
*Go to the Business Partner window of the Business Partners you would like to pay and click on the Bank Account tab. Create a new record and add the details of the Australian bank account you'd like to pay.&lt;br /&gt;
*Go to the Bank / Cash window and ensure that a record exists for the Australian bank account you will be using to pay your business partners from. &lt;br /&gt;
*In the Payment Export Class field of the Bank / Cash window enter 'au.blindmot.ABAPaymentExport.ABAPaymentExporter'. &lt;br /&gt;
*In the 'Bank Account Document' tab, ensure there's an appropriate Bank Account document associated with this bank account.&lt;br /&gt;
&lt;br /&gt;
== Making payments ==&lt;br /&gt;
*To start using the plugin, first create a Payment Selection record, ensuring that bank account records exist for both the source bank account and for the business partners being paid.&lt;br /&gt;
*Click the 'Prepare payment' button.&lt;br /&gt;
*Got to the 'Open Items' menu and select 'Payment Print / Export'.&lt;br /&gt;
*Search and select the record you just created in the 'Payment Selection' field.&lt;br /&gt;
*Ensure that the 'Payment Rule' drop down contains a valid payment rule.&lt;br /&gt;
*The export button in the bottom left of the window should be active. Click it to start the export.&lt;br /&gt;
*Once you've saved the file, close the 'Record saved' dialogue, then in the next dialogue where you're asked &amp;quot;Is the payment print correct ? If answered yes, then it will create and complete payments.&amp;quot; click the OK button. Idempiere will then process the payments, allocating a payment and marking the invoices you're paying as 'Paid'.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:BP_bank2018-05-21 22-13-25.png|BP bank record&lt;br /&gt;
File:Client bank2018-05-21 22-21-26.png|thumb|Australian BP bank details&lt;br /&gt;
File:Payment selection2018-05-21 22-30-27.png|Payment Selection window&lt;br /&gt;
File:Payment export window2018-05-21 22-31-43.png|thumb|Payment export window.&lt;br /&gt;
File:File exported 2018-05-21 22-31-58.png|File has been exported and saved.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Improvements in recent versions =&lt;br /&gt;
&lt;br /&gt;
For Version 1.0.1:&lt;br /&gt;
* More descriptive empty BP bank account error message.&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
Please rate this plugin:&lt;br /&gt;
 &lt;br /&gt;
{{#w4grb_rate:Plugin:_Australian ABA Export}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;w4grb_ratinglist pagevotes idpage=&amp;quot;Plugin:_Australian ABA Export&amp;quot; items=&amp;quot;30&amp;quot; notitle/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_Australian ABA Export|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14219</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14219"/>
		<updated>2018-03-23T14:10:01Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* How to set an OSGi Plugin as a Maven Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and execute command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all libraries on Bundle-ClassPath&lt;br /&gt;
##* Compiles all projects&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup Eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to previous Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config For Jenkins ==&lt;br /&gt;
# Setup Maven for Jenkins&lt;br /&gt;
# Create a Maven Project&lt;br /&gt;
# In &amp;quot;Source Code Management&amp;quot; Section&lt;br /&gt;
#* Repository URL=ssh://hg@bitbucket.org/idempiere/idempiere-experimental (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# On build step, setup with value:&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== How to set an OSGi Plugin as a Maven Project ==&lt;br /&gt;
# Create a normal plugin/feature project on eclipse&lt;br /&gt;
# Right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# In dialog, field &amp;quot;Package&amp;quot; type value depends on type of plug-in&lt;br /&gt;
#* Eclipse feature =&amp;gt; &amp;quot;Eclipse-feature&amp;quot;&lt;br /&gt;
#* Eclipse plugin/fragment =&amp;gt; &amp;quot;Eclipse-plugin&amp;quot;&lt;br /&gt;
# After eclipse has converted project, there will be a pom.xml inside project space, please adjust value as below:&lt;br /&gt;
#* Add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Open MANIFEST.MF and continue checking..&lt;br /&gt;
#* At Runtime tab, section classpath has item &amp;quot;.&amp;quot; if not, you should create one&lt;br /&gt;
# In build.properties &lt;br /&gt;
#* Adjust Output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* In case your project has source, make sure it is stated: &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# Reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* Core project&lt;br /&gt;
&lt;br /&gt;
== Build Extra Plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Script from local ===&lt;br /&gt;
# Build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# Host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# Create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# Build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Jenkins Job ===&lt;br /&gt;
Because you have to check out from multi repository, I prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
Besides, normal pipeline plugin, you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For newbie to jenkins pipeline, I suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Steps to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, for access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# Successful build will copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# This is pipeline for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known Issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot;, uncheck &amp;quot;project/automatically&amp;quot;, because that time the Target Platform is still inactive, so build becomes slow and cannot complete.&lt;br /&gt;
# Sometimes due to condition in Sourceforge, the active Target Platform ends with errors, hindering a complete clean build. Take a look bellow for tips:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14218</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14218"/>
		<updated>2018-03-23T14:09:01Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Config For Jenkins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and execute command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all libraries on Bundle-ClassPath&lt;br /&gt;
##* Compiles all projects&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup Eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to previous Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config For Jenkins ==&lt;br /&gt;
# Setup Maven for Jenkins&lt;br /&gt;
# Create a Maven Project&lt;br /&gt;
# In &amp;quot;Source Code Management&amp;quot; Section&lt;br /&gt;
#* Repository URL=ssh://hg@bitbucket.org/idempiere/idempiere-experimental (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# On build step, setup with value:&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== How to set an OSGi Plugin as a Maven Project ==&lt;br /&gt;
# Create a normal plugin/feature project on eclipse&lt;br /&gt;
# Right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# In dialog, field &amp;quot;Package&amp;quot; type value depends on type of plug-in&lt;br /&gt;
#* Eclipse feature =&amp;gt; &amp;quot;Eclipse-feature&amp;quot;&lt;br /&gt;
#* Eclipse plugin/fragment =&amp;gt; &amp;quot;Eclipse-plugin&amp;quot;&lt;br /&gt;
# After eclipse has converted project, there will be a pom.xml inside project space, please adjust value as below:&lt;br /&gt;
#* Add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Open MANIFEST.MF and continue checking..&lt;br /&gt;
#* At Runtime tab, section classpath has item &amp;quot;.&amp;quot; if not, you should create one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* Adjust Output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* In case your project has source, make sure it is stated: &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# Reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* Core project&lt;br /&gt;
&lt;br /&gt;
== Build Extra Plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Script from local ===&lt;br /&gt;
# Build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# Host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# Create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# Build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Jenkins Job ===&lt;br /&gt;
Because you have to check out from multi repository, I prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
Besides, normal pipeline plugin, you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For newbie to jenkins pipeline, I suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Steps to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, for access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# Successful build will copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# This is pipeline for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known Issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot;, uncheck &amp;quot;project/automatically&amp;quot;, because that time the Target Platform is still inactive, so build becomes slow and cannot complete.&lt;br /&gt;
# Sometimes due to condition in Sourceforge, the active Target Platform ends with errors, hindering a complete clean build. Take a look bellow for tips:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14217</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14217"/>
		<updated>2018-03-23T08:43:16Z</updated>

		<summary type="html">&lt;p&gt;Red1: continue english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and execute command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all libraries on Bundle-ClassPath&lt;br /&gt;
##* Compiles all projects&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup Eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to previous Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config For Jenkins ==&lt;br /&gt;
# Setup Maven for Jenkins&lt;br /&gt;
# Create a Maven Project&lt;br /&gt;
# In &amp;quot;Source Code Management&amp;quot; Section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# On build step, setup with value:&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== How to set an OSGi Plugin as a Maven Project ==&lt;br /&gt;
# Create a normal plugin/feature project on eclipse&lt;br /&gt;
# Right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# In dialog, field &amp;quot;Package&amp;quot; type value depends on type of plug-in&lt;br /&gt;
#* Eclipse feature =&amp;gt; &amp;quot;Eclipse-feature&amp;quot;&lt;br /&gt;
#* Eclipse plugin/fragment =&amp;gt; &amp;quot;Eclipse-plugin&amp;quot;&lt;br /&gt;
# After eclipse has converted project, there will be a pom.xml inside project space, please adjust value as below:&lt;br /&gt;
#* Add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Open MANIFEST.MF and continue checking..&lt;br /&gt;
#* At Runtime tab, section classpath has item &amp;quot;.&amp;quot; if not, you should create one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* Adjust Output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* In case your project has source, make sure it is stated: &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# Reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* Core project&lt;br /&gt;
&lt;br /&gt;
== Build Extra Plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Script from local ===&lt;br /&gt;
# Build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# Host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# Create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# Build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Jenkins Job ===&lt;br /&gt;
Because you have to check out from multi repository, I prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
Besides, normal pipeline plugin, you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For newbie to jenkins pipeline, I suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Steps to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, for access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# Successful build will copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# This is pipeline for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known Issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot;, uncheck &amp;quot;project/automatically&amp;quot;, because that time the Target Platform is still inactive, so build becomes slow and cannot complete.&lt;br /&gt;
# Sometimes due to condition in Sourceforge, the active Target Platform ends with errors, hindering a complete clean build. Take a look bellow for tips:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14216</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14216"/>
		<updated>2018-03-23T08:39:22Z</updated>

		<summary type="html">&lt;p&gt;Red1: continue english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and execute command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all libraries on Bundle-ClassPath&lt;br /&gt;
##* Compiles all projects&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup Eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to previous Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config For Jenkins ==&lt;br /&gt;
# Setup Maven for Jenkins&lt;br /&gt;
# Create a Maven Project&lt;br /&gt;
# In &amp;quot;Source Code Management&amp;quot; Section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# On build step, setup with value:&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== How to set an OSGi Plugin as a Maven Project ==&lt;br /&gt;
# Create a normal plugin/feature project on eclipse&lt;br /&gt;
# Right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# In dialog, field &amp;quot;Package&amp;quot; type value depends on type of plug-in&lt;br /&gt;
#* Eclipse feature =&amp;gt; &amp;quot;Eclipse-feature&amp;quot;&lt;br /&gt;
#* Eclipse plugin/fragment =&amp;gt; &amp;quot;Eclipse-plugin&amp;quot;&lt;br /&gt;
# After eclipse has converted project, there will be a pom.xml inside project space, please adjust value as below:&lt;br /&gt;
#* Add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Open MANIFEST.MF and continue checking..&lt;br /&gt;
#* At Runtime tab, section classpath has item &amp;quot;.&amp;quot; if not, you should create one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* Adjust Output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* In case your project has source, make sure it is stated: &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# Reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* Core project&lt;br /&gt;
&lt;br /&gt;
== Build Extra Plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Script from local ===&lt;br /&gt;
# Build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# Host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# Create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# Build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by Run Jenkins Job ===&lt;br /&gt;
Because you have to check out from multi repository, I prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
Besides, normal pipeline plugin, you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For newbie to jenkins pipeline, I suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Steps to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, for access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# Successful build will copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# This is pipeline for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot; uncheck &amp;quot;project/automatically&amp;quot;, because that time the target platform is still inactive, so build became slow and can't complete.&lt;br /&gt;
# Sometimes due to sourceforge, active target platform done with errors, so can't complete build complete. Follow bellow:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14215</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14215"/>
		<updated>2018-03-23T08:17:48Z</updated>

		<summary type="html">&lt;p&gt;Red1: continue english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and execute command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all libraries on Bundle-ClassPath&lt;br /&gt;
##* Compiles all projects&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup Eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to previous Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config For Jenkins ==&lt;br /&gt;
# Setup Maven for Jenkins&lt;br /&gt;
# Create a Maven Project&lt;br /&gt;
# In &amp;quot;Source Code Management&amp;quot; Section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# On build step, setup with value:&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== How to set an OSGi Plugin as a Maven Project ==&lt;br /&gt;
# Create a normal plugin/feature project on eclipse&lt;br /&gt;
# Right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# In dialog, field &amp;quot;Package&amp;quot; type value depends on type of plug-in&lt;br /&gt;
#* Eclipse feature =&amp;gt; &amp;quot;Eclipse-feature&amp;quot;&lt;br /&gt;
#* Eclipse plugin/fragment =&amp;gt; &amp;quot;Eclipse-plugin&amp;quot;&lt;br /&gt;
# After eclipse has converted project, there will be a pom.xml inside project space, please adjust value as below:&lt;br /&gt;
#* Add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Open MANIFEST.MF and continue checking..&lt;br /&gt;
#* At Runtime tab, section classpath has item &amp;quot;.&amp;quot; if not, you should create one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* Adjust Output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* In case your project has source, make sure it is stated: &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# Reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* Core project&lt;br /&gt;
&lt;br /&gt;
== Build extra plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by run script from local ===&lt;br /&gt;
# build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by run jenkins job ===&lt;br /&gt;
because you have to check out from multi repository, i prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
beside normal pipeline plugin you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for newbie to jenkins pipeline, i suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Step to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, so access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# when success build copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# this is pipe line for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot; uncheck &amp;quot;project/automatically&amp;quot;, because that time the target platform is still inactive, so build became slow and can't complete.&lt;br /&gt;
# Sometimes due to sourceforge, active target platform done with errors, so can't complete build complete. Follow bellow:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14214</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14214"/>
		<updated>2018-03-23T08:11:20Z</updated>

		<summary type="html">&lt;p&gt;Red1: continue english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and execute command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all libraries on Bundle-ClassPath&lt;br /&gt;
##* Compiles all projects&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup Eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to previous Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config For Jenkins ==&lt;br /&gt;
# Setup Maven for Jenkins&lt;br /&gt;
# Create a Maven Project&lt;br /&gt;
# In &amp;quot;Source Code Management&amp;quot; Section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# On build step, setup with value:&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== Make a Osgi plugin become maven project ==&lt;br /&gt;
# create a normal plugin/feature project on eclipse&lt;br /&gt;
# right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# on dialog, field &amp;quot;Package&amp;quot; type value depend on type of plug-in&lt;br /&gt;
#* eclipse feature =&amp;gt; &amp;quot;eclipse-feature&amp;quot;&lt;br /&gt;
#* eclipse plugin/fragment =&amp;gt; &amp;quot;eclipse-plugin&amp;quot;&lt;br /&gt;
# after eclipse do convert project. it add a pom.xml to project, i advice you adjust below value&lt;br /&gt;
#* add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# open MANIFEST.MF and make sure below thing&lt;br /&gt;
#* on runtime tab, section classpath have item &amp;quot;.&amp;quot; if don't have one, you should create new one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* adjust output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* in case your project have source, make sure it list on &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* core project&lt;br /&gt;
&lt;br /&gt;
== Build extra plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by run script from local ===&lt;br /&gt;
# build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by run jenkins job ===&lt;br /&gt;
because you have to check out from multi repository, i prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
beside normal pipeline plugin you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for newbie to jenkins pipeline, i suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Step to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, so access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# when success build copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# this is pipe line for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot; uncheck &amp;quot;project/automatically&amp;quot;, because that time the target platform is still inactive, so build became slow and can't complete.&lt;br /&gt;
# Sometimes due to sourceforge, active target platform done with errors, so can't complete build complete. Follow bellow:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14213</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14213"/>
		<updated>2018-03-23T08:10:04Z</updated>

		<summary type="html">&lt;p&gt;Red1: continue english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and execute command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all libraries on Bundle-ClassPath&lt;br /&gt;
##* Compiles all projects&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup Eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to previous Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config a jenkins ==&lt;br /&gt;
# setup maven for jenkins&lt;br /&gt;
# create a maven project&lt;br /&gt;
# on &amp;quot;Source Code Management&amp;quot; section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# on build step, setup below value&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== Make a Osgi plugin become maven project ==&lt;br /&gt;
# create a normal plugin/feature project on eclipse&lt;br /&gt;
# right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# on dialog, field &amp;quot;Package&amp;quot; type value depend on type of plug-in&lt;br /&gt;
#* eclipse feature =&amp;gt; &amp;quot;eclipse-feature&amp;quot;&lt;br /&gt;
#* eclipse plugin/fragment =&amp;gt; &amp;quot;eclipse-plugin&amp;quot;&lt;br /&gt;
# after eclipse do convert project. it add a pom.xml to project, i advice you adjust below value&lt;br /&gt;
#* add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# open MANIFEST.MF and make sure below thing&lt;br /&gt;
#* on runtime tab, section classpath have item &amp;quot;.&amp;quot; if don't have one, you should create new one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* adjust output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* in case your project have source, make sure it list on &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* core project&lt;br /&gt;
&lt;br /&gt;
== Build extra plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by run script from local ===&lt;br /&gt;
# build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by run jenkins job ===&lt;br /&gt;
because you have to check out from multi repository, i prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
beside normal pipeline plugin you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for newbie to jenkins pipeline, i suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Step to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, so access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# when success build copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# this is pipe line for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot; uncheck &amp;quot;project/automatically&amp;quot;, because that time the target platform is still inactive, so build became slow and can't complete.&lt;br /&gt;
# Sometimes due to sourceforge, active target platform done with errors, so can't complete build complete. Follow bellow:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14212</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14212"/>
		<updated>2018-03-23T06:17:59Z</updated>

		<summary type="html">&lt;p&gt;Red1: continue english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and fire command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all library on Bundle-ClassPath&lt;br /&gt;
##* Compiles all project&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose file/import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From Dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config a jenkins ==&lt;br /&gt;
# setup maven for jenkins&lt;br /&gt;
# create a maven project&lt;br /&gt;
# on &amp;quot;Source Code Management&amp;quot; section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# on build step, setup below value&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== Make a Osgi plugin become maven project ==&lt;br /&gt;
# create a normal plugin/feature project on eclipse&lt;br /&gt;
# right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# on dialog, field &amp;quot;Package&amp;quot; type value depend on type of plug-in&lt;br /&gt;
#* eclipse feature =&amp;gt; &amp;quot;eclipse-feature&amp;quot;&lt;br /&gt;
#* eclipse plugin/fragment =&amp;gt; &amp;quot;eclipse-plugin&amp;quot;&lt;br /&gt;
# after eclipse do convert project. it add a pom.xml to project, i advice you adjust below value&lt;br /&gt;
#* add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# open MANIFEST.MF and make sure below thing&lt;br /&gt;
#* on runtime tab, section classpath have item &amp;quot;.&amp;quot; if don't have one, you should create new one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* adjust output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* in case your project have source, make sure it list on &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* core project&lt;br /&gt;
&lt;br /&gt;
== Build extra plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by run script from local ===&lt;br /&gt;
# build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by run jenkins job ===&lt;br /&gt;
because you have to check out from multi repository, i prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
beside normal pipeline plugin you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for newbie to jenkins pipeline, i suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Step to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, so access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# when success build copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# this is pipe line for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot; uncheck &amp;quot;project/automatically&amp;quot;, because that time the target platform is still inactive, so build became slow and can't complete.&lt;br /&gt;
# Sometimes due to sourceforge, active target platform done with errors, so can't complete build complete. Follow bellow:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configure tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html More API to configure tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[http://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[http://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[http://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guide about tycho setup] (Must read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14211</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14211"/>
		<updated>2018-03-23T06:07:01Z</updated>

		<summary type="html">&lt;p&gt;Red1: continue english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and fire command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all library on Bundle-ClassPath&lt;br /&gt;
##* Compiles all project&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose file/import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From Dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config a jenkins ==&lt;br /&gt;
# setup maven for jenkins&lt;br /&gt;
# create a maven project&lt;br /&gt;
# on &amp;quot;Source Code Management&amp;quot; section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# on build step, setup below value&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== Make a Osgi plugin become maven project ==&lt;br /&gt;
# create a normal plugin/feature project on eclipse&lt;br /&gt;
# right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# on dialog, field &amp;quot;Package&amp;quot; type value depend on type of plug-in&lt;br /&gt;
#* eclipse feature =&amp;gt; &amp;quot;eclipse-feature&amp;quot;&lt;br /&gt;
#* eclipse plugin/fragment =&amp;gt; &amp;quot;eclipse-plugin&amp;quot;&lt;br /&gt;
# after eclipse do convert project. it add a pom.xml to project, i advice you adjust below value&lt;br /&gt;
#* add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# open MANIFEST.MF and make sure below thing&lt;br /&gt;
#* on runtime tab, section classpath have item &amp;quot;.&amp;quot; if don't have one, you should create new one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* adjust output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* in case your project have source, make sure it list on &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* core project&lt;br /&gt;
&lt;br /&gt;
== Build extra plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by run script from local ===&lt;br /&gt;
# build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by run jenkins job ===&lt;br /&gt;
because you have to check out from multi repository, i prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
beside normal pipeline plugin you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for newbie to jenkins pipeline, i suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Step to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, so access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# when success build copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# this is pipe line for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Known issue ==&lt;br /&gt;
# Before step 2.2.1 &amp;quot;On eclipse menu choose file/import&amp;quot; uncheck &amp;quot;project/automatically&amp;quot;, because that time the target platform is still inactive, so build became slow and can't complete.&lt;br /&gt;
# Sometimes due to sourceforge, active target platform done with errors, so can't complete build complete. Follow bellow:&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configuration tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html API to configuration extra tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[https://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[https://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guild about tycho setup] (Have to read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14210</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14210"/>
		<updated>2018-03-23T06:04:51Z</updated>

		<summary type="html">&lt;p&gt;Red1: continue english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## Clone source from [http://bitbucket.org/idempiere/idempiere bitbucket.org] to folder [idempiere-home]&lt;br /&gt;
## Open terminal, cd to [idempiere-home] and fire command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* It downloads all library on Bundle-ClassPath&lt;br /&gt;
##* Compiles all project&lt;br /&gt;
##* Package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### Open Eclipse with Workspace at [idempiere-home]&lt;br /&gt;
### From Eclipse Menu, choose file/import&lt;br /&gt;
### From dialog, choose Maven/Exist maven project&lt;br /&gt;
### Next dialog, browse to [idempiere-home]&lt;br /&gt;
### Select all projects and finish dialog&lt;br /&gt;
### All projects are loaded to workspace&lt;br /&gt;
## Activate a target file&lt;br /&gt;
### From Eclipse Menu, choose File/Import&lt;br /&gt;
### From Dialog, choose &amp;quot;Existing projects into workspace&amp;quot;&lt;br /&gt;
### Choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### Open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### From Target Editor, click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### Wait for Eclipse to download bundles onto target platform&lt;br /&gt;
## Now your environment is similar to Buckminster's.&lt;br /&gt;
&lt;br /&gt;
== Config a jenkins ==&lt;br /&gt;
# setup maven for jenkins&lt;br /&gt;
# create a maven project&lt;br /&gt;
# on &amp;quot;Source Code Management&amp;quot; section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# on build step, setup below value&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== Make a Osgi plugin become maven project ==&lt;br /&gt;
# create a normal plugin/feature project on eclipse&lt;br /&gt;
# right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# on dialog, field &amp;quot;Package&amp;quot; type value depend on type of plug-in&lt;br /&gt;
#* eclipse feature =&amp;gt; &amp;quot;eclipse-feature&amp;quot;&lt;br /&gt;
#* eclipse plugin/fragment =&amp;gt; &amp;quot;eclipse-plugin&amp;quot;&lt;br /&gt;
# after eclipse do convert project. it add a pom.xml to project, i advice you adjust below value&lt;br /&gt;
#* add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# open MANIFEST.MF and make sure below thing&lt;br /&gt;
#* on runtime tab, section classpath have item &amp;quot;.&amp;quot; if don't have one, you should create new one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* adjust output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* in case your project have source, make sure it list on &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* core project&lt;br /&gt;
&lt;br /&gt;
== Build extra plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by run script from local ===&lt;br /&gt;
# build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by run jenkins job ===&lt;br /&gt;
because you have to check out from multi repository, i prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
beside normal pipeline plugin you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for newbie to jenkins pipeline, i suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Step to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, so access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# when success build copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# this is pipe line for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Know issue ==&lt;br /&gt;
# before step 2.2.1 &amp;quot;on eclipse menu choose file/import&amp;quot; un-tick &amp;quot;project/automatically&amp;quot;, because that time not yet active target platform, so build make slow and can't complete.&lt;br /&gt;
# some time by sourceforge, active target platform done with error, so can't build complete. check like bellow&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configuration tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html API to configuration extra tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[https://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[https://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guild about tycho setup] (Have to read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14209</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14209"/>
		<updated>2018-03-23T06:00:44Z</updated>

		<summary type="html">&lt;p&gt;Red1: continuing english edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
# Buckminster is no longer maintained&lt;br /&gt;
# Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## clone source from [[Bitbucket.org/idempiere/idempiere|bitbucket.org]] to folder [idempiere-home]&lt;br /&gt;
## open terminal, cd to [idempiere-home] and fire command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* it download all library on Bundle-ClassPath&lt;br /&gt;
##* compiler all project&lt;br /&gt;
##* package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### open eclipse with workspace at [idempiere-home]&lt;br /&gt;
### on eclipse menu choose file/import&lt;br /&gt;
### on dialog choose Maven/Exist maven project&lt;br /&gt;
### next dialog browse to [idempiere-home]&lt;br /&gt;
### select all project and finish dialog&lt;br /&gt;
### all project is loaded to workspace&lt;br /&gt;
## Active a target file&lt;br /&gt;
### on eclipse menu choose file/import&lt;br /&gt;
### on dialog choose &amp;quot;existing projects into workspace&amp;quot;&lt;br /&gt;
### choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### on target editor click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### waiting eclipse download bundles to target platform&lt;br /&gt;
## now you have environment same buckminster age&lt;br /&gt;
&lt;br /&gt;
== Config a jenkins ==&lt;br /&gt;
# setup maven for jenkins&lt;br /&gt;
# create a maven project&lt;br /&gt;
# on &amp;quot;Source Code Management&amp;quot; section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# on build step, setup below value&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== Make a Osgi plugin become maven project ==&lt;br /&gt;
# create a normal plugin/feature project on eclipse&lt;br /&gt;
# right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# on dialog, field &amp;quot;Package&amp;quot; type value depend on type of plug-in&lt;br /&gt;
#* eclipse feature =&amp;gt; &amp;quot;eclipse-feature&amp;quot;&lt;br /&gt;
#* eclipse plugin/fragment =&amp;gt; &amp;quot;eclipse-plugin&amp;quot;&lt;br /&gt;
# after eclipse do convert project. it add a pom.xml to project, i advice you adjust below value&lt;br /&gt;
#* add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# open MANIFEST.MF and make sure below thing&lt;br /&gt;
#* on runtime tab, section classpath have item &amp;quot;.&amp;quot; if don't have one, you should create new one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* adjust output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* in case your project have source, make sure it list on &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* core project&lt;br /&gt;
&lt;br /&gt;
== Build extra plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by run script from local ===&lt;br /&gt;
# build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by run jenkins job ===&lt;br /&gt;
because you have to check out from multi repository, i prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
beside normal pipeline plugin you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for newbie to jenkins pipeline, i suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Step to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, so access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# when success build copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# this is pipe line for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Know issue ==&lt;br /&gt;
# before step 2.2.1 &amp;quot;on eclipse menu choose file/import&amp;quot; un-tick &amp;quot;project/automatically&amp;quot;, because that time not yet active target platform, so build make slow and can't complete.&lt;br /&gt;
# some time by sourceforge, active target platform done with error, so can't build complete. check like bellow&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configuration tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html API to configuration extra tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[https://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[https://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guild about tycho setup] (Have to read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14208</id>
		<title>Building iDempiere by tycho</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Building_iDempiere_by_tycho&amp;diff=14208"/>
		<updated>2018-03-23T06:00:02Z</updated>

		<summary type="html">&lt;p&gt;Red1: editing english&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why move to [http://www.eclipse.org/tycho/ Maven Tycho]? ==&lt;br /&gt;
1. Buckminster is no longer maintained&lt;br /&gt;
2. Maven has huge following&lt;br /&gt;
&lt;br /&gt;
More discussion at [http://idempiere.atlassian.net/browse/IDEMPIERE-3531 IDEMPIERE-3531] and [http://groups.google.com/forum/#!msg/idempiere/yBU69qw8ZDk/_ZVjwF7vBAAJ group]&lt;br /&gt;
&lt;br /&gt;
== Prepare Eclipse to handle Tycho Project ==&lt;br /&gt;
=== Install Tycho Support ===&lt;br /&gt;
# Go to Eclipse Marketplace&lt;br /&gt;
# Search for Tycho&lt;br /&gt;
# Choose to install &amp;quot;Tycho Build Tools&amp;quot;, &amp;quot;maven tycho utility&amp;quot;&lt;br /&gt;
=== Install m2e Connector ===&lt;br /&gt;
# Go to Window/Preferences&lt;br /&gt;
# Menu Maven/Discovery&lt;br /&gt;
# Click to open Catalog&lt;br /&gt;
# On find field type &amp;quot;Tycho&amp;quot;&lt;br /&gt;
# Choose tycho configurator and install it&lt;br /&gt;
# Do same for &amp;quot;m2e connector for the maven dependency plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step to build and setup development environment ==&lt;br /&gt;
# Materialize and build (this step use for headless build also use for setup development for eclipse)&lt;br /&gt;
## clone source from [[Bitbucket.org/idempiere/idempiere|bitbucket.org]] to folder [idempiere-home]&lt;br /&gt;
## open terminal, cd to [idempiere-home] and fire command &amp;quot;mvn verify&amp;quot;&lt;br /&gt;
##* it download all library on Bundle-ClassPath&lt;br /&gt;
##* compiler all project&lt;br /&gt;
##* package a binary at [idempiere-home]/org.idempiere.p2/target/products&lt;br /&gt;
# Setup eclipse&lt;br /&gt;
## Import projects&lt;br /&gt;
### open eclipse with workspace at [idempiere-home]&lt;br /&gt;
### on eclipse menu choose file/import&lt;br /&gt;
### on dialog choose Maven/Exist maven project&lt;br /&gt;
### next dialog browse to [idempiere-home]&lt;br /&gt;
### select all project and finish dialog&lt;br /&gt;
### all project is loaded to workspace&lt;br /&gt;
## Active a target file&lt;br /&gt;
### on eclipse menu choose file/import&lt;br /&gt;
### on dialog choose &amp;quot;existing projects into workspace&amp;quot;&lt;br /&gt;
### choose [idempiere-home]/org.idempiere.p2.targetplatform and click finish&lt;br /&gt;
### open a target file org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target is default with remote url&lt;br /&gt;
### on target editor click to &amp;quot;Set as active target platform&amp;quot;&lt;br /&gt;
### waiting eclipse download bundles to target platform&lt;br /&gt;
## now you have environment same buckminster age&lt;br /&gt;
&lt;br /&gt;
== Config a jenkins ==&lt;br /&gt;
# setup maven for jenkins&lt;br /&gt;
# create a maven project&lt;br /&gt;
# on &amp;quot;Source Code Management&amp;quot; section&lt;br /&gt;
#* Repository URL=[[ssh://hg@bitbucket.org/idempiere/idempiere-experimental]] (up to your actual repository)&lt;br /&gt;
#* Revision=experimental (up to your actual repository)&lt;br /&gt;
# on build step, setup below value&lt;br /&gt;
#* Root POM=pom.xml&lt;br /&gt;
#* Goals and options=verify&lt;br /&gt;
&lt;br /&gt;
== Make a Osgi plugin become maven project ==&lt;br /&gt;
# create a normal plugin/feature project on eclipse&lt;br /&gt;
# right click to project and choose &amp;quot;''Configure/Convert to Maven Project&amp;quot;''&lt;br /&gt;
# on dialog, field &amp;quot;Package&amp;quot; type value depend on type of plug-in&lt;br /&gt;
#* eclipse feature =&amp;gt; &amp;quot;eclipse-feature&amp;quot;&lt;br /&gt;
#* eclipse plugin/fragment =&amp;gt; &amp;quot;eclipse-plugin&amp;quot;&lt;br /&gt;
# after eclipse do convert project. it add a pom.xml to project, i advice you adjust below value&lt;br /&gt;
#* add parent section&lt;br /&gt;
#** &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
		&amp;lt;groupId&amp;gt;org.idempiere&amp;lt;/groupId&amp;gt;&lt;br /&gt;
		&amp;lt;artifactId&amp;gt;org.idempiere.parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;5.1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;relativePath&amp;gt;../org.idempiere.parent/pom.xml&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
	&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# open MANIFEST.MF and make sure below thing&lt;br /&gt;
#* on runtime tab, section classpath have item &amp;quot;.&amp;quot; if don't have one, you should create new one&lt;br /&gt;
# on build.properties &lt;br /&gt;
#* adjust output to &amp;quot;/target/classes&amp;quot;&lt;br /&gt;
#* in case your project have source, make sure it list on &amp;quot;source.. = src/&amp;quot;&lt;br /&gt;
# reference:&lt;br /&gt;
#* http://codeandme.blogspot.co.at/2012/12/tycho-build-1-building-plug-ins.html&lt;br /&gt;
#* core project&lt;br /&gt;
&lt;br /&gt;
== Build extra plugin ==&lt;br /&gt;
&lt;br /&gt;
=== Build by run script from local ===&lt;br /&gt;
# build idempiere core so we have a p2 repository contain all idempiere core also dependency at idempiere/org.idempiere.p2/target/repository&lt;br /&gt;
# host this repository to a web server. can use [https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal jetty-maven-plugin]&lt;br /&gt;
# create a maven tycho target plugin point to server setup at step 2&lt;br /&gt;
# build extra plugin by use target at step 3&lt;br /&gt;
Full example and step by step guideline [https://bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle/overview here]&lt;br /&gt;
&lt;br /&gt;
=== Build by run jenkins job ===&lt;br /&gt;
because you have to check out from multi repository, i prefer to use jenkins pipeline&lt;br /&gt;
&lt;br /&gt;
beside normal pipeline plugin you have to install &amp;quot;Pipeline Maven Integration Plugin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for newbie to jenkins pipeline, i suggest to use this tool to generate script http://&amp;amp;#x5B;jenkins_server&amp;amp;#x5D;/job/&amp;amp;#x5B;job_name&amp;amp;#x5D;/pipeline-syntax/&lt;br /&gt;
[[File:Pipeline syntax.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Step to build ====&lt;br /&gt;
# Setup a web server (like apache httpd at port 80 on same server jenkin, so access by localhost), assume document dir at /var/www/html&lt;br /&gt;
# Setup a jenkins job to build idempiere core.&lt;br /&gt;
# when success build copy artifact to /var/www/html/idempiere-core/latest&lt;br /&gt;
# this is pipe line for build idempiere-core&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh &amp;quot;cd ${WORKSPACE}/idempiere &amp;amp;&amp;amp; mvn verify&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        sh '''p2OutputDir=&amp;quot;${WORKSPACE}/idempiere/org.idempiere.p2/target/repository&amp;quot;&lt;br /&gt;
            webDir=&amp;quot;/var/www/html/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            mkdir -p ${webDir}&lt;br /&gt;
            cp -r ${p2OutputDir}/* ${webDir}'''&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Setup other jenkins job to build extra plugin&lt;br /&gt;
# This's pipeline script&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
node {&lt;br /&gt;
   def mvnHome&lt;br /&gt;
   stage('Preparation') { // for display purposes&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/idempiere', subdir: 'idempiere'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/idplugin/idempiere.maven.tycho.build.extra.bundle', subdir: 'idempiere.maven.tycho.build.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/project.extra.bundle', subdir: 'project.extra.bundle'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', revision: 'hsv', source: 'ssh://hg@bitbucket.org/hasuvimex/org.idempiere.customize-feature', subdir: 'project.extra.bundle/org.idempiere.customize-feature'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.idempiere.base', subdir: 'project.extra.bundle/th.motive.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasper.report.font', subdir: 'project.extra.bundle/th.motive.jasper.report.font'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.utility', subdir: 'project.extra.bundle/th.motive.utility'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.editor.currencyrate', subdir: 'project.extra.bundle/vn.hsv.editor.currencyRate'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.base', subdir: 'project.extra.bundle/vn.hsv.idempiere.base'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.idempiere.override', subdir: 'project.extra.bundle/vn.hsv.idempiere.override'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/hasuvimex/vn.hsv.jasperreport.install', subdir: 'project.extra.bundle/vn.hsv.jasperreport.install'])&lt;br /&gt;
        checkout([$class: 'MercurialSCM', clean: true, credentialsId: 'mainSshKey', source: 'ssh://hg@bitbucket.org/idplugin/th.motive.jasperreport.configuration', subdir: 'project.extra.bundle/th.motive.jasperreport.configuration'])&lt;br /&gt;
        &lt;br /&gt;
   }&lt;br /&gt;
   stage('Build') {&lt;br /&gt;
            &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh  '''&lt;br /&gt;
                    ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/update.version.sh &amp;quot;/var/www/html/repository/idempiere-hsv-core/latest/plugins&amp;quot; &amp;quot;org.adempiere.base_*.jar&amp;quot;&lt;br /&gt;
                '''&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        sh '''newP2Url=&amp;quot;http://localhost/repository/idempiere-hsv-core/latest&amp;quot;&lt;br /&gt;
            oldP2Url=http://localhost:8080/idempiere-core&lt;br /&gt;
            sed -ri &amp;quot;s|${oldP2Url}|${newP2Url}|g&amp;quot; ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle/org.idempiere.p2.build.extra.bundle.targetplatform/org.idempiere.p2.build.extra.bundle.targetplatform.target'''&lt;br /&gt;
        &lt;br /&gt;
        withMaven(jdk: 'openjdk', maven: 'build-in maven', publisherStrategy: 'EXPLICIT') {&lt;br /&gt;
            sh '''cd ${WORKSPACE}/idempiere.maven.tycho.build.extra.bundle &amp;amp;&amp;amp; mvn verify -Didempiere.target=&amp;quot;org.idempiere.p2.build.extra.bundle.targetplatform&amp;quot;'''&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
   stage('Results') {&lt;br /&gt;
 &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;note: you still have to checkout idempire on this job, because some plugin refer to parent pom on idempiere&lt;br /&gt;
&lt;br /&gt;
== Common command ==&lt;br /&gt;
* mvn verify -P online&lt;br /&gt;
** build idempiere with online profile (will use remote repository for feed all dependency bundle)&lt;br /&gt;
&lt;br /&gt;
== Summary about tycho use on idempiere (for full [http://www.eclipse.org/tycho/sitedocs/index.html reference tycho API]) ==&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/pom.xml ===&lt;br /&gt;
setup list of module (bundle) will build with command &amp;quot;mvn -P online&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [idempiere-root]/org.idempiere.parent/pom.xml ===&lt;br /&gt;
* is parent pom with almost configuration, other bundle will inheritance from this pom&lt;br /&gt;
* profiles&lt;br /&gt;
** Set properties for build condition, current use to setup online and offline repository&lt;br /&gt;
* repositories&lt;br /&gt;
** Setup list of repository use to resolve dependency&lt;br /&gt;
** with P2 repository use &amp;quot;&amp;lt;layout&amp;gt;p2&amp;lt;/layout&amp;gt;&amp;quot;&lt;br /&gt;
* dependencies&lt;br /&gt;
** define Osgi bundle feed from maven repositorys&lt;br /&gt;
&lt;br /&gt;
== Know issue ==&lt;br /&gt;
# before step 2.2.1 &amp;quot;on eclipse menu choose file/import&amp;quot; un-tick &amp;quot;project/automatically&amp;quot;, because that time not yet active target platform, so build make slow and can't complete.&lt;br /&gt;
# some time by sourceforge, active target platform done with error, so can't build complete. check like bellow&lt;br /&gt;
[[File:TargetIssue.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs/index.html API to configuration tycho]&lt;br /&gt;
&lt;br /&gt;
[http://www.eclipse.org/tycho/sitedocs-extras/index.html API to configuration extra tycho plugin]&lt;br /&gt;
&lt;br /&gt;
[https://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-release/tycho-versions-plugin/update-eclipse-metadata-mojo.html Sync bundle version on manifest with version on pom.xml]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.eclipse.org/Tycho/Packaging_Types Tycho package type]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/FTSRG/cheat-sheets/wiki/Maven-and-Eclipse A good summary]&lt;br /&gt;
&lt;br /&gt;
[https://stackoverflow.com/questions/11373009/should-i-use-pom-first-or-manifest-first-when-developing-osgi-application-with-m Idempiere maven tycho is MANIFEST-First]&lt;br /&gt;
&lt;br /&gt;
[http://codeandme.blogspot.co.at/p/tycho-articles.html A complete guild about tycho setup] (Have to read)&lt;br /&gt;
&lt;br /&gt;
[http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/ Explain about root-ui for feature]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Note_Update_To_5.1&amp;diff=14122</id>
		<title>Note Update To 5.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Note_Update_To_5.1&amp;diff=14122"/>
		<updated>2017-12-18T02:36:56Z</updated>

		<summary type="html">&lt;p&gt;Red1: English&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Note about update from experiment branch ==&lt;br /&gt;
* update jetty to latest&lt;br /&gt;
* update Equinox to latest (neon 3)&lt;br /&gt;
* update zk to 8.0.2.2&lt;br /&gt;
* update jasper report to 6.3.1 and use osgi library&lt;br /&gt;
* [https://idempiere.atlassian.net/browse/IDEMPIERE-3353 IDEMPIERE-3353]&lt;br /&gt;
* remove some warning&lt;br /&gt;
* org.idempiere.customize-feature become option&lt;br /&gt;
* [https://groups.google.com/forum/?utm_medium=email&amp;amp;utm_source=footer#!msg/idempiere/fe_Sm3cXTpQ/d2K0QmdfAgAJ Atmosphere]&lt;br /&gt;
&lt;br /&gt;
== How to update launch after change plugin list [https://idempiere.atlassian.net/browse/IDEMPIERE-3353 IDEMPIERE-3353] ==&lt;br /&gt;
=== Why have to change ===&lt;br /&gt;
Normal idempiere use eclipse debug configuration to manage list of active plug-ins at development phase&lt;br /&gt;
&lt;br /&gt;
On debug configuration you can use features or plugin mode to define collection active plug-ins&lt;br /&gt;
&lt;br /&gt;
[[File:DebugConfigurationSelectMode.png|300px|thumb|center|DebugConfigurationSelectMode]]&lt;br /&gt;
&lt;br /&gt;
Advanced of plugin mode selection is you can quick select/un-select particular plugin for test your configuration&lt;br /&gt;
&lt;br /&gt;
Idempiere use server.product to manage to manage list plug-ins at product phase. it use feature mode define collection of active plugin&lt;br /&gt;
&lt;br /&gt;
Feature mode help us clear group relate plugin together.&lt;br /&gt;
&lt;br /&gt;
Normal we don't get any issue with this configuration.&lt;br /&gt;
&lt;br /&gt;
But when you get update, special update equinox framework or jetty. &lt;br /&gt;
&lt;br /&gt;
It get a set of new plugins and hard to figure out plugin to update debug configuration.&lt;br /&gt;
&lt;br /&gt;
It's also hard working when you maintain a customize launching, because you have a group of customize plugin.&lt;br /&gt;
&lt;br /&gt;
Eclipse maintain launching on text file and list of active plugin on a line. order of plugin is messy hard to keep track with mercurial.&lt;br /&gt;
&lt;br /&gt;
Is not easy for you to sync your customize launching file with new file of idempiere&lt;br /&gt;
&lt;br /&gt;
=== New process to update launching file ===&lt;br /&gt;
==== Change set of active plug-ins ====&lt;br /&gt;
1. add/remove plug-ins from it's feature&lt;br /&gt;
&lt;br /&gt;
2. open server.product tab overview, click to &amp;quot;launch an eclipse application&amp;quot; or &amp;quot;launch an eclipse application on debug mode&amp;quot;&lt;br /&gt;
[[File:SyncLaunching.png|300px|thumb|center|SyncLaunching]]&lt;br /&gt;
&lt;br /&gt;
3. dialog display to you can choose a launching for sync&lt;br /&gt;
[[File:ChooseLaunching.png|300px|thumb|center|ChooseLaunching]]&lt;br /&gt;
&lt;br /&gt;
4. now your launching of eclipse is synchronized with your product. if it run well mean your binary also run same.&lt;br /&gt;
&lt;br /&gt;
5. from now you can run your application like before (from debug/run gear) util you change profile &lt;br /&gt;
[[File:LaunchFromGear.png|300px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
==== Change parameter ====&lt;br /&gt;
1. parameter also sync from  product to debug configuration, so keep change from product and use &amp;quot;launch an eclipse application&amp;quot; to sync&lt;br /&gt;
[[File:SyncParameter.png|300px|thumb|center|SyncParameter]]&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
=== Post materialize ===&lt;br /&gt;
Do a restart after materialize, by limit of neon, it just recognize feature after you restart.&lt;br /&gt;
&lt;br /&gt;
=== [[Add_customize_plugin_to_package_with_core|org.idempiere.customize-feature become option]] ===&lt;br /&gt;
1. org.idempiere.customize-feature is empty feature, purpose to add customize plugin&lt;br /&gt;
&lt;br /&gt;
so i setup it become option, and delete it from core, materialize and create product still work well.&lt;br /&gt;
&lt;br /&gt;
2. Now how to add customize plugin?&lt;br /&gt;
&lt;br /&gt;
you have to create org.idempiere.customize-feature by yourself when you use it. if you don't have customize plugin, just ignore it.&lt;br /&gt;
&lt;br /&gt;
you can add this feature to idempiere source and make a commit, but i recommend place it separate from core.&lt;br /&gt;
&lt;br /&gt;
when you separate it from core, you can let idempiere auto materialize by add entry to org.adempiere.sdk-feature/materialize.properties&lt;br /&gt;
&lt;br /&gt;
example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
extend.bundle.folder.1=[relative path from idempiere-experimental/org.adempiere.sdk-feature to folder contain org.idempiere.customize-feature]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. by improve of [https://idempiere.atlassian.net/browse/IDEMPIERE-3353 IDEMPIERE-3353] when you add/remove plugin on org.idempiere.customize-feature (or any feature), it auto reflex after you sync launch&lt;br /&gt;
&lt;br /&gt;
=== Found two entries for component ===&lt;br /&gt;
1. Overview&lt;br /&gt;
Jenkin build 1st is successfully, but when build at 2nd it get error &amp;quot;has no  action, group, or local artifact named bundle.jar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! CSpec org.apache.httpcomponents.httpclient.source:osgi.bundle$4.3.6.v201511171540 has no  action, group, or local artifact named bundle.jar&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
org.eclipse.buckminster.core.cspec.model.MissingAttributeException: CSpec org.apache.httpcomponents.httpclient.source:osgi.bundle$4.3.6.v201511171540 has no  action, group, or local artifact named bundle.jar&lt;br /&gt;
	at org.eclipse.buckminster.core.cspec.model.CSpec.getRequiredAttribute(CSpec.java:653)&lt;br /&gt;
	at org.eclipse.buckminster.core.cspec.model.CSpec.getReferencedAttribute(CSpec.java:624)&lt;br /&gt;
	at org.eclipse.buckminster.core.cspec.model.Prerequisite.getReferencedAttribute(Prerequisite.java:146)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:327)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.addAttributeChildren(PerformManager.java:329)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.getOrderedActionList(PerformManager.java:414)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.internalPerform(PerformManager.java:435)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.perform(PerformManager.java:293)&lt;br /&gt;
	at org.eclipse.buckminster.core.internal.actor.PerformManager.perform(PerformManager.java:305)&lt;br /&gt;
	at org.eclipse.buckminster.core.commands.Perform.internalRun(Perform.java:108)&lt;br /&gt;
	at org.eclipse.buckminster.core.commands.WorkspaceCommand.run(WorkspaceCommand.java:86)&lt;br /&gt;
	at org.eclipse.buckminster.cmdline.AbstractCommand.basicRun(AbstractCommand.java:200)&lt;br /&gt;
	at org.eclipse.buckminster.cmdline.Headless.run(Headless.java:343)&lt;br /&gt;
	at org.eclipse.buckminster.cmdline.Headless.run(Headless.java:284)&lt;br /&gt;
	at org.eclipse.buckminster.cmdline.Headless.start(Headless.java:358)&lt;br /&gt;
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)&lt;br /&gt;
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)&lt;br /&gt;
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)&lt;br /&gt;
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)&lt;br /&gt;
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)&lt;br /&gt;
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&lt;br /&gt;
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&lt;br /&gt;
	at java.lang.reflect.Method.invoke(Method.java:498)&lt;br /&gt;
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)&lt;br /&gt;
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)&lt;br /&gt;
	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)&lt;br /&gt;
	at org.eclipse.equinox.launcher.Main.main(Main.java:1438)&lt;br /&gt;
CSpec org.apache.httpcomponents.httpclient.source:osgi.bundle$4.3.6.v201511171540 has no  action, group, or local artifact named bundle.jar&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Reason (Just guess)&lt;br /&gt;
orbit repository have 2 version of org.apache.httpcomponents.httpclient&lt;br /&gt;
&lt;br /&gt;
1st do materialize, buckminster get correct verison org.apache.httpcomponents.httpclient and org.apache.httpcomponents.httpclient.source at version 4.3.6&lt;br /&gt;
&lt;br /&gt;
2nd do materialize at without clear old one (like on jenkin) it will get new one version of source at 4.5.2&lt;br /&gt;
&lt;br /&gt;
i guest issue by wrong process resolve dependency on org.idempiere.eclipse.platform-feature&lt;br /&gt;
after 1st materialize, cspec of org.idempiere.eclipse.platform-feature have dependency to org.apache.httpcomponents.httpclient.source and it will get newest version.&lt;br /&gt;
&lt;br /&gt;
* don't know why it don't happen to org.apache.httpcomponents.httpclient bundle just happen source bundle&lt;br /&gt;
* org.apache.commons.codec.source have same condition, it get two source version, but don't effect to create product process.&lt;br /&gt;
I guest reason because org.idempiere.eclipse.platform-feature have customize step on org.adempiere.server-feature/buckminster.cspex&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! customize step on org.adempiere.server-feature/buckminster.cspex&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
       &amp;lt;alterGroups&amp;gt;&lt;br /&gt;
		&amp;lt;public name=&amp;quot;bundle.jars&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;attribute name=&amp;quot;bundle.jars&amp;quot; component=&amp;quot;org.idempiere.eclipse.platform&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;attribute name=&amp;quot;bundle.jars&amp;quot; component=&amp;quot;org.idempiere.fitnesse.fixture&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;attribute name=&amp;quot;bundle.jars&amp;quot; component=&amp;quot;org.idempiere.fitnesse.server&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;attribute name=&amp;quot;bundle.jars&amp;quot; component=&amp;quot;org.idempiere.fitnesse&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;attribute name=&amp;quot;bundle.jars&amp;quot; component=&amp;quot;org.idempiere.fitrecorder&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;attribute name=&amp;quot;bundle.jars&amp;quot; component=&amp;quot;org.idempiere.ui.zk.selenium&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/public&amp;gt;&lt;br /&gt;
		&amp;lt;public name=&amp;quot;feature.references&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;attribute name=&amp;quot;feature.jars&amp;quot; component=&amp;quot;org.idempiere.eclipse.platform&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;attribute name=&amp;quot;feature.jars&amp;quot; component=&amp;quot;org.idempiere.fitnesse&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/public&amp;gt;&lt;br /&gt;
       &amp;lt;/alterGroups&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Break materialize process by repository host at sourceforge ===&lt;br /&gt;
I get success at local but try fail after a lot of try with Jenkin (i guess it host at Germany)&lt;br /&gt;
&lt;br /&gt;
I guest when i upload repository to sourceforge, it will upload to Asian server, and replicate to other zone.&lt;br /&gt;
&lt;br /&gt;
When i run jenkin, it isn't finish at to replicate to Euro zone, so Jenkin get fail&lt;br /&gt;
&lt;br /&gt;
When i change url to http://jaist.dl.sourceforge.net/project/idempiere/binary.file it always get success.&lt;br /&gt;
&lt;br /&gt;
So in case you can't materialize with error relate sourceforge get a try by do bellow step&lt;br /&gt;
&lt;br /&gt;
    [idempiere]/org.adempiere.sdk-feature/materialize.properties&lt;br /&gt;
    change local.repository.root=http://downloads.sourceforge.net/project/idempiere/binary.file&lt;br /&gt;
    to local.repository.root=http://jaist.dl.sourceforge.net/project/idempiere/binary.file&lt;br /&gt;
&lt;br /&gt;
=== You also can offline sourceforge by below command ====&lt;br /&gt;
# offline file from sourceforge&lt;br /&gt;
rsync -avrPq hiepgau,idempiere@frs.sourceforge.net:/home/frs/project/idempiere/binary.file /path/to/offline/folder&lt;br /&gt;
&lt;br /&gt;
# open file&lt;br /&gt;
[idempiere-root]/org.adempiere.sdk-feature/materialize.properties&lt;br /&gt;
&lt;br /&gt;
# modify&lt;br /&gt;
local.repository.root=http://downloads.sourceforge.net/project/idempiere/binary.file&lt;br /&gt;
by&lt;br /&gt;
local.repository.root=file:///path/to/offline/folder&lt;br /&gt;
&lt;br /&gt;
(*) change hiepgau by your account&lt;br /&gt;
&lt;br /&gt;
offline all document here: http://wiki.idempiere.org/en/Offline_all_material_of_idempiere&lt;br /&gt;
&lt;br /&gt;
=== Atmosphere -jetty ===&lt;br /&gt;
[https://idempiere.atlassian.net/browse/IDEMPIERE-3369 atmosphere websocket jetty conflict]&lt;br /&gt;
&lt;br /&gt;
=== Separate zk configuration of development and runtime ===&lt;br /&gt;
https://bitbucket.org/idempiere/idempiere/commits/bdfb673f22d3c580e8ac8c5bb4837eefc8de3c5f&lt;br /&gt;
&lt;br /&gt;
== Update environment development ==&lt;br /&gt;
when you update to 5.1 (or any release) you have to do the following 4 steps:&lt;br /&gt;
&lt;br /&gt;
# delete folders &amp;quot;.metadata, targetPlatform, RemoteSystemsTempFiles, jettyhome&amp;quot; &lt;br /&gt;
# delete all jar file on [idempiere-home] and sub folder &lt;br /&gt;
# open eclipse and run materialize again &lt;br /&gt;
# run script update your db http://wiki.idempiere.org/en/Importing_DB_Seed_Manually#Applying_additional_migration_scripts&lt;br /&gt;
&lt;br /&gt;
if i correct some jar file still on bitbucket, not yet take out. please check by hg. &lt;br /&gt;
&lt;br /&gt;
if you see hg show any jar file is remove, just revert for that files&lt;br /&gt;
&lt;br /&gt;
for 5.1 make sure you use eclipse oxygen&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo-Technical]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_WMS&amp;diff=14109</id>
		<title>Plugin: WMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_WMS&amp;diff=14109"/>
		<updated>2017-12-06T02:35:20Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''Maintainer:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org] &lt;br /&gt;
* '''Copyright:''' red1, SYSNOVA&lt;br /&gt;
* '''Current Version:''' 1.0 BETA&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Guide:''' [http://sourceforge.net/projects/red1/files/Warehousing/WMSGuide.pdf/download Download PDF]&lt;br /&gt;
*'''Download Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ Click on org.red1.wms.jar]&lt;br /&gt;
*'''SourceCode:''' [http://bitbucket.org/red1/org.red1.wms BitBucket/red1/wms]&lt;br /&gt;
*'''Ninja Excel:''' [http://sourceforge.net/projects/red1/files/Warehousing/WMS_Excel.xlsx/download  Data Model].&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
*This is a fresh rewritten WMS (Warehouse Management System) version based on ideas from SAP's HandlingUnit and EmptyStorage together with expert domain advice from consultants and users.&lt;br /&gt;
*It is useful on its own or in conjunction with other plugins described in the forum below.&lt;br /&gt;
*Please follow the forum used in developing this at http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1839&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_WMS|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_WMS&amp;diff=11989</id>
		<title>Plugin: WMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_WMS&amp;diff=11989"/>
		<updated>2017-10-01T11:06:27Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''Maintainer:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org] &lt;br /&gt;
* '''Copyright:''' red1, SYSNOVA&lt;br /&gt;
* '''Current Version:''' 1.0 BETA&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Guide:''' [http://sourceforge.net/projects/red1/files/Warehousing/WMSGuide.pdf/download Download PDF]&lt;br /&gt;
*'''Download Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ Click on org.red1.wms.jar]&lt;br /&gt;
*'''SourceCode:''' [http://bitbucket.org/red1/org.red1.wms BitBucket/red1/wms]&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
*This is a fresh rewritten WMS (Warehouse Management System) version based on ideas from SAP's HandlingUnit and EmptyStorage together with expert domain advice from consultants and users.&lt;br /&gt;
*It is useful on its own or in conjunction with other plugins described in the forum below.&lt;br /&gt;
*Please follow the forum used in developing this at http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1839&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_WMS|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_WMS&amp;diff=11988</id>
		<title>Plugin: WMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_WMS&amp;diff=11988"/>
		<updated>2017-10-01T11:04:30Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''Maintainer:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org] &lt;br /&gt;
* '''Copyright:''' red1, SYSNOVA&lt;br /&gt;
* '''Current Version:''' 1.0 BETA&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Guide:''' [http://sourceforge.net/projects/red1/files/Warehousing/WMSGuide.pdf/download Download PDF]&lt;br /&gt;
*'''Download Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ Click on org.red1.wms.jar]&lt;br /&gt;
*'''SourceCode:''' [http://bitbucket.org/red1/org.red1.wms BitBucket/red1/wms]&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
*This is a fresh rewritten WMS version based on ideas from SAP's HandlingUnit and EmptyStorage together with expert domain advice from consultants and users.&lt;br /&gt;
*Please follow the forum used in developing this at http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1839&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_WMS|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_WMS&amp;diff=11987</id>
		<title>Plugin: WMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_WMS&amp;diff=11987"/>
		<updated>2017-10-01T11:02:25Z</updated>

		<summary type="html">&lt;p&gt;Red1: Created page with &amp;quot;* '''Maintainer:''' Red1 (talk) - [http://red1.org RED1.org]  * '''Copyright:''' red1, SYSNOVA * '''Current Version:''' 1.0 BETA * '''License:...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''Maintainer:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org] &lt;br /&gt;
* '''Copyright:''' red1, SYSNOVA&lt;br /&gt;
* '''Current Version:''' 1.0 BETA&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Guide:''' [http://sourceforge.net/projects/red1/files/Warehousing/WMSGuide.pdf/download Download PDF]&lt;br /&gt;
*'''Download Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ org.red1.wms..]&lt;br /&gt;
*'''SourceCode:''' [http://bitbucket.org/red1/org.red1.wms BitBucket/red1/wms]&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
*This is a fresh rewritten WMS version based on ideas from SAP's HandlingUnit and EmptyStorage together with expert domain advice from consultants and users.&lt;br /&gt;
*Please follow the forum used in developing this at http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1839&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_WMS|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Vaadin_Mobile&amp;diff=11955</id>
		<title>Plugin: Vaadin Mobile</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_Vaadin_Mobile&amp;diff=11955"/>
		<updated>2017-09-07T03:29:05Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*'''Maintainer:''' [[User:Diego.ruiz|Diego Ruiz - Bx Service GmbH]]&lt;br /&gt;
*'''Status:''' Beta&lt;br /&gt;
*'''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2]&lt;br /&gt;
*'''Sources:''' [https://bitbucket.org/druiz/vaadinmobile]&lt;br /&gt;
*'''Jenkins files:''' [http://ci.idempiere.org/job/vaadinmobile/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
*This plugin is based on [http://wiki.idempiere.org/en/Plugin:_ADAXA_Mobile the iuiMobile client] and ZK client&lt;br /&gt;
*It eases the use of iDempiere in mobile devices ('''It is specially designed for phones''')&lt;br /&gt;
&lt;br /&gt;
The plugin is based on both iuiMobile and ZK, it was intended to take the simplicity of iui but with the proper context and model management of ZK.&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
Please rate this plugin:&lt;br /&gt;
 &lt;br /&gt;
{{#w4grb_rate:Plugin:_Vaadin_Mobile}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;w4grb_ratinglist pagevotes idpage=&amp;quot;Plugin:_Vaadin_Mobile&amp;quot; items=&amp;quot;30&amp;quot; notitle/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_Vaadin_Mobile|Discussion page]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
No configuration required - just install and use navigating to /m in your server&lt;br /&gt;
&lt;br /&gt;
== Changing the Theme ==&lt;br /&gt;
The UI is designed with css, so the theme can be fully changed and customized. &lt;br /&gt;
&lt;br /&gt;
To change the theme, add a folder with the name of your theme and your own css and scss files under the folder VAADIN/themes and set the SysConfig VAADIN_THEME with your theme name.&lt;br /&gt;
&lt;br /&gt;
'''''Vaadin needs to compile the theme before using it, this can be done with the vaadin plugin in eclipse or via console with the following command: java -cp '$VAADIN_REPOSITORY/com.trekglobal.vaadinmobile/WEB-INF/lib/*' com.vaadin.sass.SassCompiler styles.scss styles.css'''''&lt;br /&gt;
&lt;br /&gt;
== How to Install ==&lt;br /&gt;
=== From command line ===&lt;br /&gt;
 update-prd.sh http://ci.idempiere.org/job/vaadinmobile/ws/buckminster.output/com.trekglobal.vaadin.update_1.0.0-eclipse.feature/site.p2/ com.trekglobal.vaadinmobile&lt;br /&gt;
=== From apache felix ===&lt;br /&gt;
Download the jar file with name &lt;br /&gt;
&amp;lt;code&amp;gt;com.trekglobal.vaadinmobile_4.1.0.v[timestamp].jar&amp;lt;/code&amp;gt;&lt;br /&gt;
from this link:&lt;br /&gt;
http://ci.idempiere.org/job/vaadinmobile/ws/buckminster.output/com.trekglobal.vaadin.update_1.0.0-eclipse.feature/site.p2/plugins/&lt;br /&gt;
and install using the felix console as usual - recommended start level 6&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
== Limitations ==&lt;br /&gt;
The following features are not yet supported by vaadin client:&lt;br /&gt;
*Reports (Only pdf supported, in development)&lt;br /&gt;
*Forms (Out of scope)&lt;br /&gt;
*Workflows (Need review on which are worthy to implement)&lt;br /&gt;
*Account fields (Not supported, in development)&lt;br /&gt;
*PAttribute (Not supported, in development)&lt;br /&gt;
*Tablet UI (Need review on if this is worthy to implement)&lt;br /&gt;
*When a window has too many records it takes long to open the window, a way to avoid this behaviour and control the initial number of rows being displayed will be developed&lt;br /&gt;
&lt;br /&gt;
== Different behaviour ==&lt;br /&gt;
The following features behave different than ZK&lt;br /&gt;
*Info windows are displayed with the identifiers columns and the records can be look only using those fields as filter&lt;br /&gt;
*Different field types are currently being displayed as Text fields:&lt;br /&gt;
**ID&lt;br /&gt;
**Binary&lt;br /&gt;
**Row ID&lt;br /&gt;
**Color&lt;br /&gt;
**Image (In development - will be supported)&lt;br /&gt;
**FilePath&lt;br /&gt;
**URL&lt;br /&gt;
**Printer Name&lt;br /&gt;
*Search and Locator field type are currently being displayed as combo boxes, this will be changed in future version&lt;br /&gt;
*No buttons are displayed in the single record view, all are presented in the process menu of each window (In development - will be supported)&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11928</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11928"/>
		<updated>2017-09-02T13:45:19Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|450px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''Sponsor:''' SYSNOVA (as bonus feature of WMS).&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1844#p8925 red1.org]   &lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Knows which BackOrder is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Knows which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Knows where the stock are located across different warehouses.&lt;br /&gt;
*Knows what other BackOrders are pending.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
*Further processes can be added to this cockpit source using Ninja plugin.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory Constraints often result in back-orders that need follow up.&lt;br /&gt;
*Plugin gives full 360 degree visibility to commitment and inventory readiness prioritizing lines to ship.&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed but undelivered Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is installed, its WMS Picking function will turn on.&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11927</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11927"/>
		<updated>2017-09-02T11:58:49Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Coupling With WMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|450px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA (as bonus feature of WMS).&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1844#p8925 red1.org]   &lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Knows which BackOrder is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Knows which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Knows where the stock are located across different warehouses.&lt;br /&gt;
*Knows what other BackOrders are pending.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
*Further processes can be added to this cockpit source using Ninja plugin.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed but undelivered Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is installed, its WMS Picking function will turn on.&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11926</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11926"/>
		<updated>2017-09-02T11:57:51Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|450px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA (as bonus feature of WMS).&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1844#p8925 red1.org]   &lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Knows which BackOrder is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Knows which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Knows where the stock are located across different warehouses.&lt;br /&gt;
*Knows what other BackOrders are pending.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
*Further processes can be added to this cockpit source using Ninja plugin.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed but undelivered Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is available, its WMS Picking function will turn on (pending version 2.0)&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11925</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11925"/>
		<updated>2017-09-02T11:53:53Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Feedback */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|450px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA (as bonus feature of WMS).&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1844#p8925 red1.org]   &lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Knows which BackOrder is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Knows which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Knows where the stock are located across different warehouses.&lt;br /&gt;
*Knows what other BackOrders are pending.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
*Further processes can be added to this cockpit source using Ninja plugin.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is available, its WMS Picking function will turn on (pending version 2.0)&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Available_Plugins]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11924</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11924"/>
		<updated>2017-09-02T11:29:04Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|450px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA (as bonus feature of WMS).&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1844#p8925 red1.org]   &lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Knows which BackOrder is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Knows which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Knows where the stock are located across different warehouses.&lt;br /&gt;
*Knows what other BackOrders are pending.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
*Further processes can be added to this cockpit source using Ninja plugin.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is available, its WMS Picking function will turn on (pending version 2.0)&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
Please rate this plugin:&lt;br /&gt;
 &lt;br /&gt;
{{#w4grb_rate:Plugin:_BackOrder_Management}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;w4grb_ratinglist pagevotes idpage=&amp;quot;Plugin:_BackOrder_Management&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11923</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11923"/>
		<updated>2017-09-02T11:27:13Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|450px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA (as bonus feature of WMS).&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1844#p8925 red1.org]   &lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Knows which BackOrder is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Knows which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Knows where the stock are located across different warehouses.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is available, its WMS Picking function will turn on (pending version 2.0)&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
Please rate this plugin:&lt;br /&gt;
 &lt;br /&gt;
{{#w4grb_rate:Plugin:_BackOrder_Management}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;w4grb_ratinglist pagevotes idpage=&amp;quot;Plugin:_BackOrder_Management&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11922</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11922"/>
		<updated>2017-09-02T11:25:36Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|450px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA (as bonus feature of WMS).&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Warehousing/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1844#p8925 red1.org]   &lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Know which Back Order is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Know which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is available, its WMS Picking function will turn on (pending version 2.0)&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
Please rate this plugin:&lt;br /&gt;
 &lt;br /&gt;
{{#w4grb_rate:Plugin:_BackOrder_Management}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;w4grb_ratinglist pagevotes idpage=&amp;quot;Plugin:_BackOrder_Management&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11921</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11921"/>
		<updated>2017-09-02T11:24:01Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|450px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA (as bonus feature of WMS).&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Business/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1844#p8925 red1.org]   &lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Know which Back Order is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Know which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is available, its WMS Picking function will turn on (pending version 2.0)&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
Please rate this plugin:&lt;br /&gt;
 &lt;br /&gt;
{{#w4grb_rate:Plugin:_BackOrder_Management}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;w4grb_ratinglist pagevotes idpage=&amp;quot;Plugin:_BackOrder_Management&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11920</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11920"/>
		<updated>2017-09-02T11:21:57Z</updated>

		<summary type="html">&lt;p&gt;Red1: /* Couopling With WMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|500px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Business/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1814 red1.org] &lt;br /&gt;
* '''Document:''' [http://sourceforge.net/projects/red1/files/LiberoManufacturing/BOMDrop.pdf/download Download PDF]&lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Know which Back Order is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Know which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Coupling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is available, its WMS Picking function will turn on (pending version 2.0)&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
Please rate this plugin:&lt;br /&gt;
 &lt;br /&gt;
{{#w4grb_rate:Plugin:_BackOrder_Management}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;w4grb_ratinglist pagevotes idpage=&amp;quot;Plugin:_BackOrder_Management&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11919</id>
		<title>Plugin: BackOrder Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=Plugin:_BackOrder_Management&amp;diff=11919"/>
		<updated>2017-09-02T11:20:30Z</updated>

		<summary type="html">&lt;p&gt;Red1: Created page with &amp;quot;right * '''Creator:''' Red1 (talk) - [http://red1.org RED1.org] * '''SPONSOR:''' SYSNOVA * '''License:'''...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BackOrderInitiate.png|500px|right]]&lt;br /&gt;
* '''Creator:''' [[User:Red1|Red1]] ([[User talk:Red1|talk]]) - [http://red1.org RED1.org]&lt;br /&gt;
* '''SPONSOR:''' SYSNOVA&lt;br /&gt;
* '''License:''' [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] - Free as in Freedom not Free Lunch&lt;br /&gt;
* '''Source:''' [http://bitbucket.org/red1/org.backorder.management BitBucket repository]&lt;br /&gt;
* '''Plugin:''' [http://sourceforge.net/projects/red1/files/Business/ org.backorder.management]&lt;br /&gt;
* '''Forum:''' [http://red1.org/adempiere/viewtopic.php?f=45&amp;amp;t=1814 red1.org] &lt;br /&gt;
* '''Document:''' [http://sourceforge.net/projects/red1/files/LiberoManufacturing/BOMDrop.pdf/download Download PDF]&lt;br /&gt;
[[File:BackOrderReadiness.png|600px|right]]&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Features==&lt;br /&gt;
*Know which Back Order is ready to Ship by looking at the 'Ready' flag.&lt;br /&gt;
*Know which supply or production to chase by looking at the 'Insufficient' flag.&lt;br /&gt;
*Generate Sales Order much faster without touching core but modify cockpit plugin.&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*Management Inventory constraint results in back orders that needs follow up&lt;br /&gt;
*Plugin gives full 360 degree visibility as to its status and readiness of back order lines to ship&lt;br /&gt;
==Usage==&lt;br /&gt;
*Go to Main Menu, BackOrder Management window for easy definition of Sales Order details and Generate Sales Order&lt;br /&gt;
*Completed Sales Orders can be viewed in BackOrder AvailableToShip Info-Window&lt;br /&gt;
*Refresh to get up-to-date status&lt;br /&gt;
**'Ready' flag will recalculate based on available stock to fulfil order lines from the top. &lt;br /&gt;
**Reset LineNo back at BackOrder line tab to get sorted for priority shipment&lt;br /&gt;
*Generate (WMS) Shipment (pending) -- use normal iDempiere.&lt;br /&gt;
&lt;br /&gt;
==Couopling With WMS==&lt;br /&gt;
*This is a standalone plugin not needing the WMS plugin which it was originally created for.&lt;br /&gt;
*When WMS plugin is available, its WMS Picking function will turn on.&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
Please rate this plugin:&lt;br /&gt;
 &lt;br /&gt;
{{#w4grb_rate:Plugin:_BackOrder_Management}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;w4grb_ratinglist pagevotes idpage=&amp;quot;Plugin:_BackOrder_Management&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to provide additional comments, please use the [[Talk:Plugin:_BackOrder_Management|Discussion page]].&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=File:BackOrderReadiness.png&amp;diff=11918</id>
		<title>File:BackOrderReadiness.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=File:BackOrderReadiness.png&amp;diff=11918"/>
		<updated>2017-09-02T11:13:31Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=File:BackOrderInitiate.png&amp;diff=11917</id>
		<title>File:BackOrderInitiate.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=File:BackOrderInitiate.png&amp;diff=11917"/>
		<updated>2017-09-02T11:05:57Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
	<entry>
		<id>https://wiki.idempiere.org/w-en/index.php?title=NF2.1_InfoWindow_Improvements&amp;diff=11426</id>
		<title>NF2.1 InfoWindow Improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.idempiere.org/w-en/index.php?title=NF2.1_InfoWindow_Improvements&amp;diff=11426"/>
		<updated>2017-05-12T11:29:28Z</updated>

		<summary type="html">&lt;p&gt;Red1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= '''Feature:''' InfoWindow Improvements =&lt;br /&gt;
'''Goal:''' Usability&lt;br /&gt;
To make user more comfortable with info window&lt;br /&gt;
 &lt;br /&gt;
'''Description:'''&lt;br /&gt;
'''''1. Add button reset to all infoWindow'''''&lt;br /&gt;
When clicked, it resets all criteria field to initial value.&lt;br /&gt;
* Where field has default value, it resets to default value&lt;br /&gt;
* Where field has a preference value it resets to preference value&lt;br /&gt;
* Where value of field init to a value (as &amp;quot;Price List Version&amp;quot; in produce info) it reset to this value.&lt;br /&gt;
* Others reset to a blank value&lt;br /&gt;
&lt;br /&gt;
[[File:Infowindow_reset.png|550px]]&lt;br /&gt;
&lt;br /&gt;
'''''2. Add ability define &amp;quot;Default Logic&amp;quot; value for criteria field'''''&lt;br /&gt;
&lt;br /&gt;
same default logic field at standard window&lt;br /&gt;
&lt;br /&gt;
[[File:Infowindow_defaultValue.png|550px]]&lt;br /&gt;
&lt;br /&gt;
'''''3. Add is mandatory to criteria field'''''&lt;br /&gt;
&lt;br /&gt;
*Improvement as submitted at [http://idempiere.atlassian.net/browse/IDEMPIERE-1970 IDEMPIERE-1970].&lt;br /&gt;
**Info-Window data not only comes from a Table, it can also come from a View.&lt;br /&gt;
&lt;br /&gt;
*Improvement as submitted at [http://idempiere.atlassian.net/browse/IDEMPIERE-1334 IDEMPIERE-1334]. &lt;br /&gt;
**You can define a process run for group record, other process run for other group record.&lt;br /&gt;
**So, you have to set the mandatory parameter.&lt;br /&gt;
**You also can define display logic for process button by value input at criteria field. &lt;br /&gt;
**According to the filter at the group, only the suitable process button is displayed&lt;br /&gt;
&lt;br /&gt;
[[File:Infowindow_displayLogicProcess.png|550px]]&lt;br /&gt;
 &lt;br /&gt;
'''Technical Info:''' [http://idempiere.atlassian.net/browse/IDEMPIERE-1378 IDEMPIERE-1378], [http://idempiere.atlassian.net/browse/IDEMPIERE-1792 IDEMPIERE-1792], [http://idempiere.atlassian.net/browse/IDEMPIERE-1972 IDEMPIERE-1972], [http://idempiere.atlassian.net/browse/IDEMPIERE-1973 IDEMPIERE-1973]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:New Features|U]]&lt;br /&gt;
[[Category:New Features v2.1|U]]&lt;br /&gt;
[[Category:New Features User Experience (Usability)]]&lt;/div&gt;</summary>
		<author><name>Red1</name></author>
	</entry>
</feed>