Author: jleroux
Date: Thu Sep 7 09:24:17 2017
New Revision: 1807573
URL: http://svn.apache.org/viewvc?rev=1807573&view=rev
Log:
No functional change.
Moves all *md.html files to tools/wiki-files
README.md.html will be removed in the next commit
Added:
ofbiz/tools/wiki-files/
ofbiz/tools/wiki-files/Creating reports.md.html (with props)
ofbiz/tools/wiki-files/How to use flexible reports.md.html (with props)
ofbiz/tools/wiki-files/README.md.html (with props)
ofbiz/tools/wiki-files/Report master creation.md.html (with props)
ofbiz/tools/wiki-files/Using the Birt Report Designer.md.html (with props)
Removed:
ofbiz/ofbiz-plugins/trunk/birt/documents/Creating reports.md.html
ofbiz/ofbiz-plugins/trunk/birt/documents/How to use flexible reports.md.html
ofbiz/ofbiz-plugins/trunk/birt/documents/Report master creation.md.html
ofbiz/ofbiz-plugins/trunk/birt/documents/Using the Birt Report
Designer.md.html
Added: ofbiz/tools/wiki-files/Creating reports.md.html
URL:
http://svn.apache.org/viewvc/ofbiz/tools/wiki-files/Creating%20reports.md.html?rev=1807573&view=auto
==============================================================================
--- ofbiz/tools/wiki-files/Creating reports.md.html (added)
+++ ofbiz/tools/wiki-files/Creating reports.md.html Thu Sep 7 09:24:17 2017
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta name="generator" content="pandoc" />
+ <title></title>
+ <style type="text/css">code{white-space: pre;}</style>
+</head>
+<body>
+<h1 id="report-creation---adminsuper-user">Report creation -
Admin/Super-User</h1>
+<h2 id="introduction">Introduction</h2>
+<p>A flexible report is an OFBiz content of FLEXIBLE_REPORT type that allows a
final user to make use of the reporting module to obtain flexible reports, ie
reports which are created from an entity or view definition and even from a
service. A flexible report is created from a Report Master (content
REPORT_MASTER), and an optional XML override of the parent form.</p>
+<h2 id="pre-requisite">Pre-requisite</h2>
+<ul>
+<li>OFBiz framework</li>
+<li>The Birt plugin</li>
+<li>The BIRT Report Designer</li>
+</ul>
+<h2 id="report-creation">Report creation</h2>
+<ol style="list-style-type: decimal">
+<li>Get to Birt component in OFBiz <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Birt%20Menus.png?api=v2"
alt="Birt menus" /></li>
+<li>Click on the "Flexible Report" menu (varies depending on
themes)</li>
+<li>Click on the "Generate report" button, you get to this
screen:</li>
+<li>Fill the form: <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Example%20Report.png?api=v2"
alt="Example Report" /></li>
+</ol>
+<ul>
+<li>The list "Choose report topic" will let you choose among
predefined report masters your topic of interest.</li>
+<li>The report name is a simple short name from which the file name will be
generated.</li>
+<li>The description is a short description which will allow you to recognise
the report and its topic.</li>
+<li>The box "Generate filters in design" will add in the design the
visualisation of the filters filled in the filtering form.</li>
+</ul>
+<p>Finally, if you don't find what you want, you will need to create a new
Report Master...</p>
+<p>Once the form is validated, OFBiz will show you the "Edit Report"
screen. <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Edit%20Report%20screen.png?api=v2"
alt="Edit Report screen" /></p>
+<h2 id="report-information">Report information</h2>
+<p>This first panel allows you to change the report description and status.
Actually it does not make sense changing the status to published before having
downloaded the .rptdesign file (Birt Report Designer file) from the server (in
database), edited and uploaded it back to the server. This is explained in the
section below. Changing the status allows users to use your reports. But if you
publish without any change the report will render as empty.</p>
+<h2 id="the-.rptdesign-report-file-donwload-edit-upload-and-publish-it">The
.rptdesign report file: donwload, edit, upload and publish it</h2>
+<p>To really use the report you need to download the .rptdesign file from the
server in a location from where you can edit it with the BIRT Report Designer.
So you need to install first the BIRT Report Designer. Then you can edit the
.rptdesign file in the BIRT Report Designer. For that refer to the <a
href="https://svn.apache.org/repos/asf/ofbiz/ofbiz-plugins/trunk/birt/documents/Using%20the%20Birt%20Report%20Designer.md.html">"Using
the Birt Report Designer.md.html" file</a>. You can also find the
Markdonw version in the same directory: ofbiz-framework/plugins/birt/documents
### Editing the downloaded file ### Once you installed the BIRT Report Designer
and have downloaded the .rptdesign file, you can edit it with the Birt Report
Designer. When you have edited it suiting your needs you must upload it to the
server for your changes to be taken into account by OFBiz.</p>
+<p><span style="color:red"><strong>This is when things begin to be really
interesting</strong>.</span> You can then test your report using the
"Preview" panel. There you can temporarily filter the result, and use
the export format you prefer, once done click "Send". You can then
decide to change the report content in the Birt Report Designer again or keep
your changes. Once done in the Birt Report Designer, simply select the changed
file to upload, and upload it again. You can re-test your changes and continue
until you really get what you want! You can then publish the report to allow
users to select and use it. There are 2 ways to publish a report from the
"Manage reports" screen or directly in the "Report
information" panel. We will see the "Manage reports" screen
below.</p>
+<h2 id="filters-overriding">Filters Overriding</h2>
+<p>You may want to overide the default filters. You can then use the Xml
"Override filters" panel to override and personnalize the form, once
done click "Save". If you ignore that step, it will
<strong>NOT</strong> prevent the report creation, <strong>it is already
done</strong>, it will just be with the generic filtering form inherited from
the master from. ><em>Note</em>: if no preview is available, it is usually
due to a mistake in the master form code. You can edit it in the database.</p>
+<h2 id="manage-reports">Manage reports</h2>
+<p>The "Manage reports" button get you to a screen which allows to
edit (get back to current page), publish or delete a report.</p>
+<h2 id="use-a-report">Use a report</h2>
+<p>Users can select and use any published report from that screen. When they
select a report they then get the same "Preview" Panel and can do the
same things than in the "Edit Report" screen. Refer users to</p>
+</body>
+</html>
Propchange: ofbiz/tools/wiki-files/Creating reports.md.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/tools/wiki-files/Creating reports.md.html
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange: ofbiz/tools/wiki-files/Creating reports.md.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: ofbiz/tools/wiki-files/How to use flexible reports.md.html
URL:
http://svn.apache.org/viewvc/ofbiz/tools/wiki-files/How%20to%20use%20flexible%20reports.md.html?rev=1807573&view=auto
==============================================================================
--- ofbiz/tools/wiki-files/How to use flexible reports.md.html (added)
+++ ofbiz/tools/wiki-files/How to use flexible reports.md.html Thu Sep 7
09:24:17 2017
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta name="generator" content="pandoc" />
+ <title></title>
+ <style type="text/css">code{white-space: pre;}</style>
+</head>
+<body>
+<h1 id="using-a-flexible-report---user">Using a flexible report - User</h1>
+<h2 id="introduction">Introduction</h2>
+<p>A flexible report is an OFBiz content of FLEXIBLE_REPORT type which allows
the final user to obtain reports using the Birt reporting module. It will be
produced at a specific time of your choosing, with your chosen output format,
filtering the data with a few parameters defined during report design
creation.</p>
+<h2 id="pre-requisite">Pre-requisite</h2>
+<ul>
+<li>OFBiz</li>
+<li>The Birt plugin</li>
+<li>Pre-published reports created from report masters</li>
+</ul>
+<h2 id="using-the-report">Using the report</h2>
+<ol style="list-style-type: decimal">
+<li>go to the Birt component or to another page harboring reports.</li>
+<li>In the Birt component, click "Use a report".</li>
+<li>Select your report and hit "Send".</li>
+<li>The next screen will allow you to filter your data through a set of
pre-defined criteria. Should you leave it empty, you will retrieve unfiltered
data.</li>
+<li>Select the desired export format</li>
+<li>Upon validation, your report is now loaded and can be saved.</li>
+</ol>
+<blockquote>
+<p><em>Note</em>: Report loading can be a bit long depending on the data
treatment</p>
+</blockquote>
+</body>
+</html>
Propchange: ofbiz/tools/wiki-files/How to use flexible reports.md.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/tools/wiki-files/How to use flexible reports.md.html
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange: ofbiz/tools/wiki-files/How to use flexible reports.md.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: ofbiz/tools/wiki-files/README.md.html
URL:
http://svn.apache.org/viewvc/ofbiz/tools/wiki-files/README.md.html?rev=1807573&view=auto
==============================================================================
--- ofbiz/tools/wiki-files/README.md.html (added)
+++ ofbiz/tools/wiki-files/README.md.html Thu Sep 7 09:24:17 2017
@@ -0,0 +1,384 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta name="generator" content="pandoc" />
+ <title></title>
+ <style type="text/css">code{white-space: pre;}</style>
+</head>
+<body>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<h1 id="apache-ofbiz">Apache OFBiz®</h1>
+<p>Welcome to <strong>Apache OFBiz®</strong>! A powerful top level Apache
software project. OFBiz is an Enterprise Resource Planning (ERP) System written
in Java and houses a large set of libraries, entities, services and features to
run all aspects of your business.</p>
+<p>For more details about OFBiz please visit the OFBiz Documentation page:</p>
+<p><a href="http://ofbiz.apache.org/documentation.html">OFBiz
documentation</a></p>
+<p><a href="http://www.apache.org/licenses/LICENSE-2.0">OFBiz License</a></p>
+<blockquote>
+<p><em>Note</em>: If you want to use Eclipse, read the "Setup eclipse
project for OFBiz" section to set it up.</p>
+</blockquote>
+<blockquote>
+<p><em>Note</em>: If you want to use an external database like MySQL or
PostgreSQL, read the "Setup an external database" section to set it
up.</p>
+</blockquote>
+<blockquote>
+<p>Note : The directory structure and repositories have changed. For more
information read the "Repository and directory structure" section.</p>
+</blockquote>
+<h2 id="system-requirements">System requirements</h2>
+<p>The only requirement to run OFBiz is to have the Java Development Kit (JDK)
version 8 installed on your system (not just the JRE, but the full JDK) which
you can download from the below link. Make sure of setting the $JAVA_HOME
environment variable.</p>
+<p><a
href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK
download</a></p>
+<h2 id="quick-start">Quick start</h2>
+<p>To quickly install and fire-up OFBiz, please follow the below instructions
from the command line at the OFBiz top level directory (folder)</p>
+<h3 id="prepare-ofbiz">Prepare OFBiz:</h3>
+<p><strong>Note</strong>: Depending on your Internet connection speed it might
take a long time for this step to complete if you are using OFBiz for the first
time as it needs to download all dependencies. So please be patient!</p>
+<p>MS Windows: <code>gradlew cleanAll loadAll</code></p>
+<p>Unix-like OS: <code>./gradlew cleanAll loadAll</code></p>
+<h3 id="start-ofbiz">Start OFBiz:</h3>
+<p>MS Windows: <code>gradlew ofbiz</code></p>
+<p>Unix-like OS: <code>./gradlew ofbiz</code></p>
+<blockquote>
+<p><em>Note</em>: Ignore the % progress indicator because this task does not
end as long as OFBiz is running.</p>
+</blockquote>
+<h3 id="visit-ofbiz-through-your-browser">Visit OFBiz through your
browser:</h3>
+<p><a href="https://localhost:8443/ordermgr">Order Back Office</a></p>
+<p><a href="https://localhost:8443/accounting">Accounting Back Office</a></p>
+<p><a href="https://localhost:8443/webtools">Administrator interface</a></p>
+<p>You can log in with the user <strong>admin</strong> and password
<strong>ofbiz</strong>.</p>
+<h2 id="security">Security</h2>
+<p>If you find a security issue, please report it to: security @
ofbiz.apache.org. Once proper mitigations to the security issues are complete
the OFBiz team will disclose this information to the public mailing list.</p>
+<p>You can find more information about security in OFBiz at <a
href="https://cwiki.apache.org/confluence/display/OFBIZ/Keeping+OFBiz+secure">Keeping
OFBiz secure</a></p>
+<hr />
+<h2 id="build-system-syntax">Build system syntax</h2>
+<p>All build tasks are executed using the <strong>Gradle</strong> build system
which is embedded in OFBiz. To execute build tasks go to OFBiz top-level
directory (folder) and execute tasks from there.</p>
+<h3 id="operating-system-syntax">Operating System Syntax</h3>
+<p>The syntax for tasks differ slightly between windows and Unix-like
systems</p>
+<ul>
+<li><p><strong>Windows</strong>: <code>gradlew
<tasks-in-here></code></p></li>
+<li><p><strong>Unix-like</strong>: <code>./gradlew
<tasks-in-here></code></p></li>
+</ul>
+<p>For the rest of this document, we will use the windows syntax, if you are
on a Unix-like system, you need to add the <code>./</code> to gradlew</p>
+<h3 id="types-of-tasks-in-gradle">Types of tasks in Gradle</h3>
+<p>There are two types of tasks designed for OFBiz in Gradle:</p>
+<ul>
+<li><p><strong>Standard tasks</strong>: To execute general standard Gradle
tasks</p></li>
+<li><strong>OFBiz server tasks</strong>: To execute OFBiz startup commands.
These tasks start with one of the following words:</li>
+<li><strong>ofbiz</strong> : standard server commands</li>
+<li><strong>ofbizDebug</strong> : server commands running in remote debug
mode</li>
+<li><p><strong>ofbizBackground</strong> ; server commands running in a
background forked process</p></li>
+</ul>
+<p>Tips:</p>
+<ul>
+<li><p>OFBiz <strong>server commands</strong> require
<strong>"quoting"</strong> the commands. For example: <code>gradlew
"ofbiz --help"</code></p></li>
+<li><p>Shortcuts to task names can be used by writing the first letter of
every word in a task name. However, you cannot use the shortcut form for OFBiz
server tasks. Example: <code>gradlew loadAdminUserLogin
-PuserLoginId=myadmin</code> = <code>gradlew lAUL
-PuserLoginId=myadmin</code></p></li>
+</ul>
+<h4 id="example-standard-tasks">Example standard tasks</h4>
+<p><code>gradlew build</code></p>
+<p><code>gradlew cleanAll loadAll testIntegration</code></p>
+<h4 id="example-ofbiz-server-tasks">Example OFBiz server tasks</h4>
+<p><code>gradlew "ofbiz --help"</code></p>
+<p><code>gradlew "ofbizDebug --test"</code></p>
+<p><code>gradlew "ofbizBackground --start --portoffset
10000"</code></p>
+<p><code>gradlew "ofbiz --shutdown --portoffset 10000"</code></p>
+<p><code>gradlew ofbiz</code> (default is --start)</p>
+<h4 id="example-mixed-tasks-standard-and-ofbiz-server">Example mixed tasks
(standard and OFBiz server)</h4>
+<p><code>gradlew cleanAll loadAll "ofbiz --start --portoffset
10000"</code></p>
+<hr />
+<h2 id="quick-reference">Quick reference</h2>
+<p>You can use the below common list of tasks as a quick reference for
controlling the system. This document uses the windows task syntax, if you are
on a Unix-like system, you need to add the <code>./</code> to gradlew i.e.
<code>./gradlew</code></p>
+<hr />
+<h3 id="help-tasks">Help tasks</h3>
+<h4 id="list-ofbiz-server-commands">List OFBiz server commands</h4>
+<p>List all available commands to control the OFBiz server</p>
+<p><code>gradlew "ofbiz --help"</code></p>
+<h4 id="list-build-tasks">List build tasks</h4>
+<p>List all available tasks from the build system</p>
+<p><code>gradlew tasks</code></p>
+<h4 id="list-build-projects">List build projects</h4>
+<p>List all available projects in the build system</p>
+<p><code>gradlew projects</code></p>
+<h4 id="gradle-build-system-help">Gradle build system help</h4>
+<p>Show usage and options for the Gradle build system</p>
+<p><code>gradlew --help</code></p>
+<hr />
+<h3 id="server-command-tasks">Server command tasks</h3>
+<h4 id="start-ofbiz-1">Start OFBiz</h4>
+<p><code>gradlew "ofbiz --start"</code></p>
+<p>start is the default server task so this also works:</p>
+<p><code>gradlew ofbiz</code></p>
+<h4 id="shutdown-ofbiz">Shutdown OFBiz</h4>
+<p><code>gradlew "ofbiz --shutdown"</code></p>
+<h4 id="get-ofbiz-status">Get OFBiz status</h4>
+<p><code>gradlew "ofbiz --status"</code></p>
+<h4 id="force-ofbiz-shutdown">Force OFBiz shutdown</h4>
+<p>Terminate all running OFBiz server instances by calling the appropriate
operating system kill command. Use this command to force OFBiz termination if
the --shutdown command does not work. Usually this is needed when in the middle
of data loading or testing in OFBiz.</p>
+<p>Warning: Be careful in using this command as force termination might lead
to inconsistent state / data</p>
+<p><code>gradlew terminateOfbiz</code></p>
+<h4 id="start-ofbiz-in-remote-debug-mode">Start OFBiz in remote debug mode</h4>
+<p>Starts OFBiz in remote debug mode and waits for debugger or IDEs to connect
on port <strong>5005</strong></p>
+<p><code>gradlew "ofbizDebug --start"</code></p>
+<p>OR</p>
+<p><code>gradlew ofbizDebug</code></p>
+<h4 id="start-ofbiz-on-a-different-port">Start OFBiz on a different port</h4>
+<p>Start OFBiz of the network port offsetted by the range provided in the
argument to --portoffset</p>
+<p><code>gradlew "ofbiz --start --portoffset 10000"</code></p>
+<h4 id="start-ofbiz-in-the-background">Start OFBiz in the background</h4>
+<p>Start OFBiz in the background by forking it to a new process and
redirecting the output to <strong>runtime/logs/console.log</strong></p>
+<p><code>gradlew "ofbizBackground --start"</code></p>
+<p>OR</p>
+<p><code>gradlew ofbizBackground</code></p>
+<p>You can also offset the port, for example:</p>
+<p><code>gradlew "ofbizBackground --start --portoffset
10000"</code></p>
+<hr />
+<h3 id="data-loading-tasks">Data loading tasks</h3>
+<p>OFBiz contains the following data reader types:</p>
+<ul>
+<li><strong>seed</strong>: OFBiz and External Seed Data - to be maintained
along with source and updated whenever a system deployment is updated</li>
+<li><strong>seed-initial</strong>: OFBiz and External Seed Data - to be
maintained along with source like other seed data, but only loaded initially
and not updated when a system is updated except manually reviewing each
line</li>
+<li><strong>demo</strong>: OFBiz Only Demo Data</li>
+<li><strong>ext</strong>: External General Data (custom)</li>
+<li><strong>ext-test</strong>: External Test Data (custom)</li>
+<li><strong>ext-demo</strong>: External Demo Data (custom)</li>
+</ul>
+<p>Available options for the --load-data server command are the following:</p>
+<ul>
+<li><strong>readers=[name]</strong>: only load data from certain readers
separated by comma. e.g. seed,seed-initial,ext</li>
+<li><strong>file=[path]</strong>: load a single file from location or several
files separated by commas. e.g. /my/file/1,/my/file/2</li>
+<li><strong>dir=[path]</strong>: load all data files found in directory</li>
+<li><strong>component=[name]</strong>: only load data from a specific
component. e.g. base</li>
+<li><strong>delegator=[name]</strong>: use the defined delegator. Default is
"default". If the value passed is
<strong>"all-tenants"</strong> then OFBiz will load the data for all
defined tenants in the system.</li>
+<li><strong>group=[name]</strong>: override the entity group
(org.apache.ofbiz). e.g. com.example.something</li>
+<li><strong>timeout=[millis]</strong>: timeout in milliseconds</li>
+<li><strong>create-pks</strong>: create primary keys</li>
+<li><strong>drop-pks</strong>: drop primary keys</li>
+<li><strong>create-constraints</strong>: create indexes and foreign keys after
loading</li>
+<li><strong>drop-constraints</strong>: drop indexes and foreign keys before
loading</li>
+<li><strong>create-fks</strong>: create dummy (placeholder) foreign keys</li>
+<li><strong>maintain-txs</strong>: maintain timestamps in data file</li>
+<li><strong>try-inserts</strong>: use mostly inserts</li>
+<li><strong>repair-columns</strong>: repair column sizes (default is true w/
drop-constraints)</li>
+<li><strong>continue-on-failure</strong>: By default OFBiz will fail and stop
if it is unable to load any of the files it is attempting to load. By passing
this property OFBiz will ignore failures and continue loading all files</li>
+</ul>
+<h4 id="load-specific-ofbiz-data">Load specific OFBiz data</h4>
+<p>you can choose which data readers to pass in the following syntax:</p>
+<p><code>gradlew "ofbiz --load-data
readers=<readers-here-comma-separated>"</code></p>
+<p>Example:</p>
+<p><code>gradlew "ofbiz --load-data
readers=seed,seed-initial,ext,ext-demo"</code></p>
+<h4 id="load-all-ofbiz-data">Load all OFBiz data</h4>
+<p>Loads all data sets; meant for initial loading of generic OFBiz data. Can
be applied for development, testing, demonstration, etc. purposes. Be aware
that executing this task can result in your data being overwritten in your
database of choice. Use with caution in production environments.</p>
+<p><code>gradlew loadAll</code></p>
+<p>OR</p>
+<p><code>gradlew "ofbiz --load-data"</code></p>
+<h4 id="load-seed-data">Load seed data</h4>
+<p>Load ONLY the seed data (not seed-initial, demo, ext* or anything else);
meant for use after an update of the code to reload the seed data as it is
generally maintained along with the code and needs to be in sync for
operation</p>
+<p><code>gradlew "ofbiz --load-data readers=seed"</code></p>
+<h4 id="load-ext-data">load ext data</h4>
+<p>Load seed, seed-initial and ext data; meant for manual/generic testing,
development, or going into production with a derived system based on stock
OFBiz where the ext data basically replaces the demo data</p>
+<p><code>gradlew "ofbiz --load-data
readers=seed,seed-initial,ext"</code></p>
+<h4 id="load-ext-test-data">load ext test data</h4>
+<p>Load seed, seed-initial, ext and ext-test data; meant for automated testing
with a derived system based on stock OFBiz</p>
+<p><code>gradlew "ofbiz --load-data
readers=seed,seed-initial,ext,ext-test"</code></p>
+<h4 id="load-data-from-an-entity-file">load data from an entity file</h4>
+<p>Load data from an XML file holding entity data.</p>
+<p><code>gradlew "ofbiz --load-data
file=foo/bar/FileNameHere.xml"</code></p>
+<h4 id="create-a-new-tenant">create a new tenant</h4>
+<p>Create a new tenant in your environment, create the delegator, load initial
data with admin-user and password (needs multitenant=Y in general.properties).
The following project parameters are passed:</p>
+<ul>
+<li>tenantId: mandatory</li>
+<li>tenantName: optional, default is value of tenantId</li>
+<li>domainName: optional, default is org.apache.ofbiz</li>
+<li>tenantReaders: optional, default value is seed,seed-initial,demo</li>
+<li>dbPlatform: optional, D(Derby), M(MySQL), O(Oracle), P(PostgreSQL)
(default D)</li>
+<li>dbIp: optional, ip address of the database</li>
+<li>dbUser: optional, username of the database</li>
+<li>dbPassword: optional, password of the database</li>
+</ul>
+<p><code>gradlew createTenant -PtenantId=mytenant</code></p>
+<p><code>gradlew createTenant -PtenantId=mytenant -PtenantName="My
Name" -PdomainName=com.example -PtenantReaders=seed,seed-initial,ext
-PdbPlatform=M -PdbIp=127.0.0.1 -PdbUser=mydbuser
-PdbPassword=mydbpass</code></p>
+<p>If run successfully, the system creates a new tenant having:</p>
+<ul>
+<li>delegator: default#${tenandId} (e.g. default#mytenant)</li>
+<li>admin user: ${tenantId}-admin (e.g. mytenant-admin)</li>
+<li>admin user password: ofbiz</li>
+</ul>
+<h4 id="load-data-for-a-specific-tenant">load data for a specific tenant</h4>
+<p>Load data for one specific tenant in a multitenant environment. Note that
you must set multitenant=Y in general.properties and the following project
parameters are passed:</p>
+<ul>
+<li>tenantId (mandatory)</li>
+<li>tenantReaders (optional)</li>
+<li>tenantComponent (optional)</li>
+</ul>
+<p><code>gradlew loadTenant -PtenantId=mytenant</code></p>
+<p><code>gradlew loadTenant -PtenantId=mytenant
-PtenantReaders=seed,seed-initial,demo -PtenantComponent=base</code></p>
+<hr />
+<h3 id="testing-tasks">Testing tasks</h3>
+<h4 id="execute-all-unit-tests">Execute all unit tests</h4>
+<p><code>gradlew test</code></p>
+<h4 id="execute-all-integration-tests">Execute all integration tests</h4>
+<p><code>gradlew testIntegration</code></p>
+<p>OR</p>
+<p><code>gradlew 'ofbiz --test'</code></p>
+<h4 id="execute-integration-tests-with-a-different-log-level">Execute
integration tests with a different log level</h4>
+<p>It is possible to start integration tests with a log level different from
the default one. The log levels allowed are listed below from most verbose to
least verbose:</p>
+<ul>
+<li>always</li>
+<li>verbose</li>
+<li>timing</li>
+<li>info</li>
+<li>important</li>
+<li>warning</li>
+<li>error</li>
+<li>fatal</li>
+</ul>
+<p><code>gradlew "ofbiz --test loglevel=fatal"</code></p>
+<h4 id="execute-an-integration-test-case">Execute an integration test case</h4>
+<p>run a test case, in this example the component is "entity" and
the case name is "entity-tests"</p>
+<p><code>gradlew "ofbiz --test component=entity --test
suitename=entitytests --test case=entity-query-tests"</code></p>
+<h4
id="execute-an-integration-test-case-in-debug-mode-with-verbose-log">Execute an
integration test case in debug mode with verbose log</h4>
+<p>listens on port <strong>5005</strong></p>
+<p><code>gradlew "ofbizDebug --test component=entity --test
loglevel=verbose"</code></p>
+<h4 id="execute-an-integration-test-suite">Execute an integration test
suite</h4>
+<p><code>gradlew "ofbiz --test component=entity --test
suitename=entitytests"</code></p>
+<h4 id="execute-an-integration-test-suite-in-debug-mode">Execute an
integration test suite in debug mode</h4>
+<p>listens on port <strong>5005</strong></p>
+<p><code>gradlew "ofbizDebug --test component=entity --test
suitename=entitytests"</code></p>
+<hr />
+<h3 id="miscellaneous-tasks">Miscellaneous tasks</h3>
+<h4 id="run-all-tests-on-a-clean-system">Run all tests on a clean system</h4>
+<p><code>gradlew cleanAll loadAll testIntegration</code></p>
+<h4 id="clean-all-generated-artifacts">Clean all generated artifacts</h4>
+<p><code>gradlew cleanAll</code></p>
+<h4 id="refresh-the-generated-artifacts">Refresh the generated artifacts</h4>
+<p><code>gradlew clean build</code></p>
+<h4 id="create-an-admin-user-account">Create an admin user account</h4>
+<p>Create an admin user with login name MyUserName and default password with
value "ofbiz". Upon first login OFBiz will request changing the
default password</p>
+<p><code>gradlew loadAdminUserLogin -PuserLoginId=MyUserName</code></p>
+<h4 id="compile-java-using-xlint-output">Compile Java using Xlint output</h4>
+<p>Xlint prints output of all warnings detected by the compiler</p>
+<p><code>gradlew -PXlint build</code></p>
+<h4 id="run-owasp-tool-to-identify-dependency-vulnerabilities-cves">Run OWASP
tool to identify dependency vulnerabilities (CVEs)</h4>
+<p>The below command activates a gradle plugin (OWASP) and Identifies and
reports known vulnerabilities (CVEs) in OFBiz library dependencies. This
command takes a long time to execute because it needs to download all plugin
dependencies and the CVE identification process is also time consuming. But
it's the only way to check OFBiz does not use vulnerable libraries.</p>
+<p><code>gradlew -PenableOwasp dependencyCheck</code></p>
+<h4 id="setup-eclipse-project-for-ofbiz">Setup eclipse project for OFBiz</h4>
+<p>Setting up OFBiz on eclipse is done by simply running the below command and
then importing the project to eclipse. This command will generate the necessary
<strong>.classpath</strong> and <strong>.project</strong> files for eclipse and
it will also make the source code for external libraries available in eclipse
(i.e. you can view source through Ctrl + Click)</p>
+<p>The first time you run this command it will take a long time to execute
because it will download source packages available for project dependencies.</p>
+<p><code>gradlew eclipse</code></p>
+<hr />
+<h2 id="ofbiz-plugin-system">OFBiz plugin system</h2>
+<p>OFBiz provides an extension mechanism through plugins. Plugins are standard
OFBiz components that reside in the plugins directory. Plugins can be added
manually or fetched from a maven repository. The standard tasks for managing
plugins are listed below.</p>
+<blockquote>
+<p><em>Note</em>: OFBiz plugin versions follow <a
href="http://semver.org/">Semantic Versioning 2.0.0</a></p>
+</blockquote>
+<h3 id="pull-download-and-install-a-plugin-automatically">Pull (download and
install) a plugin automatically</h3>
+<p>Download a plugin with all its dependencies (plugins) and install them
one-by-one starting with the dependencies and ending with the plugin itself.</p>
+<p><code>gradlew pullPlugin
-PdependencyId="org.apache.ofbiz.plugin:myplugin:0.1.0"</code></p>
+<p>If the plugin resides in a custom maven repository (not jcenter or
localhost) then you can use specify the repository using below command:</p>
+<p><code>gradlew pullPlugin
-PrepoUrl="http://www.example.com/custom-maven"
-PdependencyId="org.apache.ofbiz.plugin:myplugin:0.1.0"</code></p>
+<p>If you need username and password to access the custom repository:</p>
+<p><code>gradlew pullPlugin
-PrepoUrl="http://www.example.com/custom-maven" -PrepoUser=myuser
-PrepoPassword=mypassword
-PdependencyId="org.apache.ofbiz.plugin:myplugin:0.1.0"</code></p>
+<h3 id="pull-an-official-plugin-from-source-control">Pull an official plugin
from source control</h3>
+<p>Download an official plugin from source control (currently subversion) and
place it in the plugins directory. In addition, this task also executes the
"install" task if it is defined for the plugin being downloaded.</p>
+<p>This task is mostly useful when working on the trunk branch as it pulls in
the latest version of a plugin.</p>
+<p><code>gradlew pullPluginSource -PpluginId=ecommerce</code></p>
+<blockquote>
+<p><em>Note</em>: This plugin will have its own .svn directory placed inside
the plugin directory.</p>
+</blockquote>
+<h3 id="pull-all-official-plugins-from-source-control">Pull all official
plugins from source control</h3>
+<p>Download all officially supported plugins from source control (currently
subversion) and place them inclusive of their ".svn" directory in
/plugins. WARNING! This task deletes the /plugins directory and replaces it
with the official plugins.</p>
+<p><code>gradlew pullAllPluginsSource</code></p>
+<p>This task makes it easy to download and develop officially supported
plugins. It is mostly used by developers or individuals working on the trunk
branch. We do not recommend using this task on releases of OFBiz, instead
consider using the "pullPlugin" task to get the correct version of a
plugin compatible with your release.</p>
+<blockquote>
+<p><em>Note</em>: All the plugins will share a .svn directory placed in the
plugins directory.</p>
+</blockquote>
+<h3 id="install-a-plugin">Install a plugin</h3>
+<p>If you have a plugin called mycustomplugin and want to install it in OFBiz
follow the below instructions:</p>
+<ul>
+<li>Extract the plugin if it is compressed</li>
+<li>Place the extracted directory into /plugins</li>
+<li>Run the below command</li>
+</ul>
+<p><code>gradlew installPlugin -PpluginId=myplugin</code></p>
+<p>The above commands executes the task "install" in the plugin's
build.gradle file if it exists</p>
+<h3 id="uninstall-a-plugin">Uninstall a plugin</h3>
+<p>If you have an existing plugin called mycustomplugin and you wish to
uninstall run the below command</p>
+<p><code>gradlew uninstallPlugin -PpluginId=myplugin</code></p>
+<p>The above command executes the task "uninstall" in the plugin's
build.gradle file if it exists</p>
+<h3 id="remove-a-plugin">Remove a plugin</h3>
+<p>Calls <strong>uninstallPlugin</strong> on an existing plugin and then
delete it from the file-system</p>
+<p><code>gradlew removePlugin -PpluginId=myplugin</code></p>
+<h3 id="create-a-new-plugin">Create a new plugin</h3>
+<p>Create a new plugin. The following project parameters are passed:</p>
+<ul>
+<li>pluginId: mandatory</li>
+<li>pluginResourceName: optional, default is the Capitalized value of
pluginId</li>
+<li>webappName: optional, default is the value of pluginId</li>
+<li>basePermission: optional, default is the UPPERCASE value of pluginId</li>
+</ul>
+<p><code>gradlew createPlugin -PpluginId=myplugin</code></p>
+<p><code>gradlew createPlugin -PpluginId=myplugin
-PpluginResourceName=MyPlugin -PwebappName=mypluginweb
-PbasePermission=MYSECURITY</code></p>
+<p>The above command creates a new plugin in /plugins/myplugin</p>
+<h3 id="push-a-plugin-to-a-repository">Push a plugin to a repository</h3>
+<p>This task publishes an OFBiz plugin into a maven package and then uploads
it to a maven repository. Currently, pushing is limited to localhost maven
repository (work in progress). To push a plugin the following parameters are
passed:</p>
+<ul>
+<li>pluginId: mandatory</li>
+<li>groupId: optional, defaults to org.apache.ofbiz.plugin</li>
+<li>pluginVersion: optional, defaults to 0.1.0-SNAPSHOT</li>
+<li>pluginDescription: optional, defaults to "Publication of OFBiz plugin
${pluginId}"</li>
+</ul>
+<p><code>gradlew pushPlugin -PpluginId=myplugin</code></p>
+<p><code>gradlew pushPlugin -PpluginId=mycompany
-PpluginGroup=com.mycompany.ofbiz.plugin -PpluginVersion=1.2.3
-PpluginDescription="Introduce special functionality X"</code></p>
+<hr />
+<h2 id="miscellaneous-documentation">Miscellaneous Documentation</h2>
+<h3 id="repository-and-directory-structure">Repository and directory
structure</h3>
+<p>OFBiz is split into two repositories:</p>
+<ul>
+<li><p><strong>ofbiz-framework</strong>: Contains the core framework and main
applications in the system like accounting, party, order, etc</p></li>
+<li><p><strong>ofbiz-plugins</strong>: Renamed from
"special-purpose" and contains optional components that are
officially supported by the community</p></li>
+</ul>
+<p>Furthermore, the hot-deploy directory is removed as the plugins directory
works as a replacement for both "special-purpose" and
"hot-deploy".</p>
+<p>If you need to load the components in the plugins directory in a specific
order place a component-load.xml file in the plugins directory listing the
order.</p>
+<p>To check out a plugin from source control use the
<strong>pullPluginSource</strong> Gradle task. To check out all plugins from
source control use the <strong>pullAllPluginsSource</strong>.
<strong>Beware</strong> this deletes a previously existing plugins
directory.</p>
+<h3 id="setup-an-external-database-like-mysql-postgresql-etc">Setup an
external database like MySQL, PostgreSQL, etc</h3>
+<p>To setup an external database instead of the default embedded Apache Derby,
you will need to follow the following instructions:</p>
+<ol style="list-style-type: decimal">
+<li>Find the JDBC driver suitable for your database using one of the following
options:</li>
+</ol>
+<ul>
+<li><p>Search for the JDBC driver in <a
href="https://bintray.com/bintray/jcenter">jcenter</a> and place it in
build.gradle dependencies e.g. <code>runtime
'mysql:mysql-connector-java:5.1.36'</code></p>
+<p>OR</p></li>
+<li><p>Download the JDBC driver jar and place it in $OFBIZ_HOME/lib or the lib
sub-directory of any component</p></li>
+</ul>
+<ol start="2" style="list-style-type: decimal">
+<li>Modify the entityengine.xml file located in
$OFBIZ_HOME/framework/entity/config to switch the default database to the one
you selected. For more details you can read the relevant section in the <a
href="https://cwiki.apache.org/confluence/display/OFBIZ/Apache+OFBiz+Technical+Production+Setup+Guide">technical
setup guide</a></li>
+</ol>
+<h3 id="setup-gradle-tab-completion-on-unix-like-systems">Setup gradle
tab-completion on Unix-like systems:</h3>
+<p>To get tab completion (auto complete gradle commands by pressing tab) you
can download the script from the below link and place it in the appropriate
location for your system.</p>
+<p><a href="https://edub.me/gradle-completion-bash">Gradle tab
completion</a></p>
+<p>For example, on debian based systems, you can use the following command:</p>
+<p><code>sudo curl -L -s https://edub.me/gradle-completion-bash -o
/etc/bash_completion.d/gradle-tab-completion.bash</code></p>
+<hr />
+<h2 id="crypto-notice">Crypto notice</h2>
+<p>This distribution includes cryptographic software. The country in which you
currently reside may have restrictions on the import, possession, use, and/or
re-export to another country, of encryption software. BEFORE using any
encryption software, please check your country's laws, regulations and policies
concerning the import, possession, or use, and re-export of encryption
software, to see if this is permitted. See <a href="http://www.wassenaar.org/"
class="uri">http://www.wassenaar.org/</a> for more information.</p>
+<p>The U.S. Government Department of Commerce, Bureau of Industry and Security
(BIS), has classified this software as Export Commodity Control Number (ECCN)
5D002.C.1, which includes information security software using or performing
cryptographic functions with asymmetric algorithms. The form and manner of this
Apache Software Foundation distribution makes it eligible for export under the
License Exception ENC Technology Software Unrestricted (TSU) exception (see the
BIS Export Administration Regulations, Section 740.13) for both object code and
source code.</p>
+<p>The following provides more details on the included cryptographic
software:</p>
+<ul>
+<li>Various classes in OFBiz, including DesCrypt, HashCrypt, and BlowFishCrypt
use libraries from the Sun Java JDK API including java.security.* and
javax.crypto.* (the JCE, Java Cryptography Extensions API)</li>
+<li>Other classes such as HttpClient and various related ones use the JSSE
(Java Secure Sockets Extension) API</li>
+</ul>
+</body>
+</html>
Propchange: ofbiz/tools/wiki-files/README.md.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/tools/wiki-files/README.md.html
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange: ofbiz/tools/wiki-files/README.md.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: ofbiz/tools/wiki-files/Report master creation.md.html
URL:
http://svn.apache.org/viewvc/ofbiz/tools/wiki-files/Report%20master%20creation.md.html?rev=1807573&view=auto
==============================================================================
--- ofbiz/tools/wiki-files/Report master creation.md.html (added)
+++ ofbiz/tools/wiki-files/Report master creation.md.html Thu Sep 7 09:24:17
2017
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta name="generator" content="pandoc" />
+ <title></title>
+ <style type="text/css">code{white-space: pre;}</style>
+ <style type="text/css">
+div.sourceCode { overflow-x: auto; }
+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
+ margin: 0; padding: 0; vertical-align: baseline; border: none; }
+table.sourceCode { width: 100%; line-height: 100%; }
+td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px;
color: #aaaaaa; border-right: 1px solid #aaaaaa; }
+td.sourceCode { padding-left: 5px; }
+code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
+code > span.dt { color: #902000; } /* DataType */
+code > span.dv { color: #40a070; } /* DecVal */
+code > span.bn { color: #40a070; } /* BaseN */
+code > span.fl { color: #40a070; } /* Float */
+code > span.ch { color: #4070a0; } /* Char */
+code > span.st { color: #4070a0; } /* String */
+code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
+code > span.ot { color: #007020; } /* Other */
+code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
+code > span.fu { color: #06287e; } /* Function */
+code > span.er { color: #ff0000; font-weight: bold; } /* Error */
+code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /*
Warning */
+code > span.cn { color: #880000; } /* Constant */
+code > span.sc { color: #4070a0; } /* SpecialChar */
+code > span.vs { color: #4070a0; } /* VerbatimString */
+code > span.ss { color: #bb6688; } /* SpecialString */
+code > span.im { } /* Import */
+code > span.va { color: #19177c; } /* Variable */
+code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
+code > span.op { color: #666666; } /* Operator */
+code > span.bu { } /* BuiltIn */
+code > span.ex { } /* Extension */
+code > span.pp { color: #bc7a00; } /* Preprocessor */
+code > span.at { color: #7d9029; } /* Attribute */
+code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
+code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /*
Annotation */
+code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /*
CommentVar */
+code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /*
Information */
+ </style>
+</head>
+<body>
+<h1 id="report-master-creation">Report master creation</h1>
+<h2 id="introduction">Introduction</h2>
+<p>A report master is an OFBiz content which allows a user to generate data
reports. It defines data connexion, and a general filtering form for data. It
can be based on an entity, a dedicated service, or in a wider sense on any
shape a data connexion can take and return back a map.</p>
+<h2 id="pre-requisite">Pre-requisite</h2>
+<ul>
+<li>OFBiz</li>
+<li>Birt plugin</li>
+</ul>
+<h2 id="report-master-based-on-an-entityview">Report Master based on an
entity/view</h2>
+<ol style="list-style-type: decimal">
+<li>Create or choice a database entity or view</li>
+<li>Create the general filtering form within the file
plugins/birt/widget/birt/BirtMasterForms.xml. The only informations to be
changed are entity-name and form name.</li>
+</ol>
+<div class="sourceCode"><pre class="sourceCode xml"><code class="sourceCode
xml"> <span class="kw"><form</span><span class="ot"> name=</span><span
class="st">"CTNT_MASTER_EXAMPLE"</span><span class="ot">
type=</span><span class="st">"single"</span><span class="ot">
extends=</span><span
class="st">"AbstractFlexibleReportSearchForm"</span><span
class="kw">></span>
+ <span class="kw"><auto-fields-entity</span><span class="ot">
entity-name=</span><span class="st">"Example"</span><span class="ot">
default-field-type=</span><span class="st">"find"</span><span
class="kw">/></span>
+ <span class="kw"></form></span></code></pre></div>
+<ol start="3" style="list-style-type: decimal">
+<li>Add the informations about this Master in the database using the file
plugins/birt/data/BirtMasterData.xml</li>
+</ol>
+<div class="sourceCode"><pre class="sourceCode xml"><code class="sourceCode
xml"> <span class="kw"><DataResource</span><span class="ot">
dataResourceId=</span><span
class="st">"DR_MASTER_EXAMPLE"</span><span class="ot">
dataResourceTypeId=</span><span
class="st">"ELECTRONIC_TEXT"</span><span class="ot">
dataTemplateTypeId=</span><span class="st">"FORM_COMBINED"</span>
<span class="kw">/></span>
+ <span class="kw"><ElectronicText</span><span class="ot">
dataResourceId=</span><span
class="st">"DR_MASTER_EXAMPLE"</span><span class="kw">></span>
+ <span class="kw"><textData></span><span
class="bn"><![CDATA[</span><!--default domain form-->
+ <form name="${masterContentId}_${contentId}"
type="single" extends="${masterContentId}" extends-
resource="component://birt/widget/birt/BirtMasterForms.xml">
+ </form><span class="bn">]]></span>
+ <span class="kw"></textData></span>
+ <span class="kw"></ElectronicText></span>
+ <span class="kw"><Content</span><span class="ot">
contentId=</span><span class="st">"CTNT_MASTER_EXAMPLE"</span><span
class="ot"> contentTypeId=</span><span
class="st">"REPORT_MASTER"</span><span class="ot">
dataResourceId=</span><span
class="st">"DR_MASTER_EXAMPLE"</span><span class="ot">
statusId=</span><span class="st">"CTNT_PUBLISHED"</span><span
class="ot"> contentName=</span><span class="st">"Example"</span><span
class="ot"> description=</span><span class="st">"Master Content for
Example"</span> <span class="kw">/></span>
+ <span class="co"><!-- Data retrieval will be done using perform find on
entity Example--></span>
+ <span class="kw"><ContentAttribute</span><span class="ot">
contentId=</span><span class="st">"CTNT_MASTER_EXAMPLE"</span><span
class="ot"> attrName=</span><span class="st">"Entity"</span><span
class="ot"> attrValue=</span><span class="st">"Example"</span><span
class="kw">/></span></code></pre></div>
+<p>The form in the database is the form that will allow users to change form
parameters. You can add any field you desire. Some field names are though
reserved: reportContentId, overrideFilters, entityViewName, birtContentType.</p>
+<ol start="4" style="list-style-type: decimal">
+<li>Add in the file content/config/contentEntityLabels.xml the Property that
will allow translation for your report master description.</li>
+</ol>
+<div class="sourceCode"><pre class="sourceCode xml"><code class="sourceCode
xml"> <span class="kw"><property</span><span class="ot"> key=</span><span
class="st">"Content.description.CTNT_MASTER_EXAMPLE"</span><span
class="kw">></span>
+ <span class="kw"><value</span><span class="ot">
xml:lang=</span><span class="st">"en"</span><span
class="kw">></span>Example<span class="kw"></value></span>
+ <span class="kw"><value</span><span class="ot">
xml:lang=</span><span class="st">"fr"</span><span
class="kw">></span>Exemple<span class="kw"></value></span>
+ <span class="kw"></property></span></code></pre></div>
+<p>Your Report Master is created ! You can now create reports using it.</p>
+<h2 id="report-master-based-on-a-service">Report Master based on a service</h2>
+<p>Create in
plugins/birt/src/org/ofbiz/birt/birt/BirtMasterReportServices.java 2 dedicated
services (see examples there)</p>
+<ol style="list-style-type: decimal">
+<li>The first one, which name will return 4 items:</li>
+</ol>
+<ul>
+<li>an object of type Map<String, String> called dataMap.
<strong>Keys</strong>: data field names. <strong>Values</strong>: data types
(OFBiz types).</li>
+<li>an object of type Map<String, String> called fieldDisplayLabels.
<strong>Keys</strong>: data field names. <strong>Values</strong>: the names
displayed to the user. This output is optional, should it be missing, the keys
will be displayed.</li>
+<li>an object of type Map<String, String> called filterMap.
<strong>Keys</strong>: data filtering field names (exact names used for the
form fields). <strong>Values</strong>: data type (OFBiz type). This output is
optional, if missing, filters can not be displayed on the report.</li>
+<li>an object of type Map<String, String> called filterDisplayLabels.
<strong>Keys</strong>: data filtering field names (exact names used for the
form fields). <strong>Values</strong>: names to be displayed to the user. This
output is optional, should it be missing, the keys will be displayed.</li>
+</ul>
+<ol start="2" style="list-style-type: decimal">
+<li>The second service will actually get the data. It receives an object
(Object type) called reportContext. From this object, you can obtain the map
parameters using the following code:</li>
+</ol>
+<div class="sourceCode"><pre class="sourceCode java"><code class="sourceCode
java"> Map<String, Object> parameters = (Map<String, Object>)
reportContext.<span class="fu">getParameterValue</span>(<span
class="st">"parameters"</span>);</code></pre></div>
+<p>This Map will give access fields of the filtering form. This service will
return a list called list of type List<GenericValue>, containing the data. A
Map<String, Object> would also do.</p>
+<ol start="3" style="list-style-type: decimal">
+<li>create the parent form in the file
plugins/birt/widget/birt/BirtMasterForms.xml. Field names created here must be
then names used on the Map parameters of the previous service, and also
corresponding to the map filterMap.</li>
+</ol>
+<div class="sourceCode"><pre class="sourceCode xml"><code class="sourceCode
xml"> <span class="kw"><form</span><span class="ot"> name=</span><span
class="st">"CTNT_MASTER_TURNOVER"</span><span class="ot">
type=</span><span class="st">"single"</span><span class="ot">
extends=</span><span
class="st">"AbstractFlexibleReportSearchForm"</span><span
class="kw">></span>
+ <span class="kw"><field</span><span class="ot"> name=</span><span
class="st">"fromDate"</span><span
class="kw">><date-time</span><span class="ot"> type=</span><span
class="st">"date"</span><span class="kw">/></field></span>
+ <span class="kw"><field</span><span class="ot"> name=</span><span
class="st">"thruDate"</span><span
class="kw">><date-time</span><span class="ot"> type=</span><span
class="st">"date"</span><span class="kw">/></field></span>
+ <span class="kw"><field</span><span class="ot"> name=</span><span
class="st">"productCategoryId"</span><span
class="kw">><lookup</span><span class="ot"> target-form-name=</span><span
class="st">"LookupProductCategory"</span><span
class="kw">/></field></span>
+ <span class="kw"><field</span><span class="ot"> name=</span><span
class="st">"productStoreId"</span><span
class="kw">><lookup</span><span class="ot"> target-form-name=</span><span
class="st">"LookupProductStore"</span><span
class="kw">/></field></span>
+ <span class="kw"></form></span></code></pre></div>
+<ol start="4" style="list-style-type: decimal">
+<li>Create the master in database following.</li>
+</ol>
+<div class="sourceCode"><pre class="sourceCode xml"><code class="sourceCode
xml"> <span class="kw"><CustomMethod</span><span class="ot">
customMethodId=</span><span class="st">"CM_FB_TURNOVER"</span><span
class="ot"> customMethodTypeId=</span><span
class="st">"FLEXIBLE_BIRT"</span><span class="ot">
customMethodName=</span><span
class="st">"flexibleReportTurnOver"</span><span class="ot">
description=</span><span class="st">"service to resolve invoice for
turnover report domain"</span><span class="kw">/></span>
+ <span class="kw"><DataResource</span><span class="ot">
dataResourceId=</span><span
class="st">"DR_MASTER_TURNOVER"</span><span class="ot">
dataResourceTypeId=</span><span
class="st">"ELECTRONIC_TEXT"</span><span class="ot">
dataTemplateTypeId=</span><span class="st">"FORM_COMBINED"</span>
<span class="kw">/></span>
+ <span class="kw"><ElectronicText</span><span class="ot">
dataResourceId=</span><span
class="st">"DR_MASTER_TURNOVER"</span><span class="kw">></span>
+ <span class="kw"><textData></span><span
class="bn"><![CDATA[</span><!--default domain form-->
+ <form name="${masterContentId}_${contentId}"
type="single" extends="${masterContentId}"
extends-resource="component://birt/widget/birt/BirtMasterForms.xml">
+ </form><span class="bn">]]></span>
+ <span class="kw"></textData></span>
+ <span class="kw"></ElectronicText></span>
+ <span class="kw"><Content</span><span class="ot">
contentId=</span><span class="st">"CTNT_MASTER_TURNOVER"</span><span
class="ot"> customMethodId=</span><span
class="st">"CM_FB_TURNOVER"</span><span class="ot">
contentTypeId=</span><span class="st">"REPORT_MASTER"</span><span
class="ot"> dataResourceId=</span><span
class="st">"DR_MASTER_TURNOVER"</span><span class="ot">
statusId=</span><span class="st">"CTNT_PUBLISHED"</span><span
class="ot"> contentName=</span><span
class="st">"Turnover"</span><span class="ot">
description=</span><span class="st">"Master Content for TURNOVER
domain"</span> <span class="kw">/></span>
+ <span class="co"><!-- Data retrieval will be done using two service
calls. First the contentAttribute Service gives the service that will define
which data and label will be retrieved,</span>
+<span class="co"> and which filter and label are supported by the report
design (default value will call the second service with
"prepareField" suffix).</span>
+<span class="co"> Second, the custom method gives the service to retrieve
all data in the report design.</span>
+<span class="co"> Here : flexibleReportTurnOverPrepareFields
(customMethodName + "prepareFields") then
flexibleReportTurnOver--></span>
+ <span class="kw"><ContentAttribute</span><span class="ot">
contentId=</span><span class="st">"CTNT_MASTER_TURNOVER"</span><span
class="ot"> attrName=</span><span class="st">"Service"</span><span
class="ot"> attrValue=</span><span class="st">"default"</span><span
class="kw">/></span></code></pre></div>
+<p>The form in the database is the form that will allow users to change form
parameters. You can add any field you desire. Some field names are reserved:
reportContentId, overrideFilters, entityViewName, birtContentType.</p>
+<ol start="5" style="list-style-type: decimal">
+<li>Import these data in the base using Webtools XML import (or the longer
"gradlew 'ofbiz -l readers=seed,ext' command).</li>
+<li>Add in the file content/config/contentEntityLabels.xml the Property which
will translate your report Master description.</li>
+</ol>
+<div class="sourceCode"><pre class="sourceCode xml"><code class="sourceCode
xml"> <span class="kw"><property</span><span class="ot"> key=</span><span
class="st">"Content.description.CTNT_MASTER_TURNOVER"</span><span
class="kw">></span>
+ <span class="kw"><value</span><span class="ot">
xml:lang=</span><span class="st">"en"</span><span
class="kw">></span>Turnover (product)<span class="kw"></value></span>
+ <span class="kw"><value</span><span class="ot">
xml:lang=</span><span class="st">"fr"</span><span
class="kw">></span>Rotation (des stocks)<span
class="kw"></value></span>
+ <span class="kw"></property></span></code></pre></div>
+<h2 id="entities-diagram">Entities diagram</h2>
+<p>The following diagram shows the Entities linked with Content to store
report_master/report. <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Report_Master.png?api=v2"
alt="Report_Master" /></p>
+</body>
+</html>
Propchange: ofbiz/tools/wiki-files/Report master creation.md.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/tools/wiki-files/Report master creation.md.html
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange: ofbiz/tools/wiki-files/Report master creation.md.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: ofbiz/tools/wiki-files/Using the Birt Report Designer.md.html
URL:
http://svn.apache.org/viewvc/ofbiz/tools/wiki-files/Using%20the%20Birt%20Report%20Designer.md.html?rev=1807573&view=auto
==============================================================================
--- ofbiz/tools/wiki-files/Using the Birt Report Designer.md.html (added)
+++ ofbiz/tools/wiki-files/Using the Birt Report Designer.md.html Thu Sep 7
09:24:17 2017
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta name="generator" content="pandoc" />
+ <title></title>
+ <style type="text/css">code{white-space: pre;}</style>
+</head>
+<body>
+<h1 id="using-the-birt-report-designer---adminsuper-user">Using the Birt
Report Designer - Admin/Super-User</h1>
+<h2 id="introduction">Introduction</h2>
+<p>The creation of a flexible report goes through a design step of the initial
flexible report output under the Birt Report Designer.</p>
+<p>This document describes the simplest designs to connect to the data. It is
not exhaustive, and simply attempts to cover basic needs. You will find much
more documentation online. In our approach, the connection to the data is
generated automatically by OFBiz, only the design part of the report will be
discussed.</p>
+<h2 id="installing-the-birt-report-designer">Installing the BIRT Report
Designer</h2>
+<p>Installing the BIRT Report Designer is easy. If you use Eclipse, you can
include it as a plugin. You can also install the whole BIRT Report Designer. I
use Eclipse but I prefer the second way, to not mix things. So simply download
and install the whole all-in-one thing. Or install the plugin if you prefer and
use its "Report Design" view which allows to edit .rptdesign
files.</p>
+<blockquote>
+<p><em>Note</em>: if you installed the BIRT Report Designer under say, a Birt
directory, then by default the reports will be accessed from the BirtBuilder
directly and this is where you should put the .rptdesign files when downloading
them. Your mileage may wary...</p>
+</blockquote>
+<h2 id="different-areas-of-the-screen-and-their-role">Different areas of the
screen and their role</h2>
+<h3 id="navigator---report-builder">Navigator - Report Builder</h3>
+<p>This is where you should find the .rptdesign files you downloaded.</p>
+<div class="figure">
+<img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Report%20Builder.png?api=v2"
alt="Report Builder" />
+<p class="caption">Report Builder</p>
+</div>
+<h3 id="data-explorer">Data Explorer</h3>
+<p>The Data Explorer defaults to the right of your screen. It gives you access
to two things. The data fields available for the report, and the filter fields
that can be used for this report.</p>
+<div class="figure">
+<img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Data%20Explorer.png?api=v2"
alt="Data Explorer" />
+<p class="caption">Data Explorer</p>
+</div>
+<h3 id="palette">Palette</h3>
+<p>The palette provides the various tools you can insert in the report. Simple
text, image, table of data, layout table, graph, aggregation, etc. All objects
are added to the report by drag & drop. <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Palette.png?api=v2"
alt="Palette" /></p>
+<h3 id="tabs">Tabs</h3>
+<p>At the right bottom of the window is a series of five tabs.</p>
+<p>We will use two:</p>
+<ul>
+<li>Layout, which will allow most of the design.</li>
+<li>Master Page, which will give access by its owners to standard parameters
such as the orientation or size of the report.</li>
+</ul>
+<p>The preview is not accessible because it can not be executed outside of
OFBiz. Any changes to the scripts will be erased during the upload in OFBiz.</p>
+<h3 id="simple-design-without-break">Simple design without break</h3>
+<p>The simplest possible design is to insert in a table (table in the
palette), a part or all of the data set data fields. To do this, right-click on
Data Set in the Data Explorer -> Insert in Layout, and then select the
fields you want to see appear.</p>
+<h3 id="simple-design-with-break">Simple design with break</h3>
+<p>A break is a collection of data made by Birt from the data. It permits to
classify according to a field, and to give details for each category, then to
aggregate certain fields, etc.</p>
+<ol style="list-style-type: decimal">
+<li>Insert a table (Table) in the report -> OK</li>
+<li>Right-click on the table -> Edit Data Binding, select all fields</li>
+<li>In the data set field, change "None" in "Data Set",
validate</li>
+<li>Right-click the table -> Insert Group. Configure your group, eg: <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Group.png?api=v2"
alt="group" /></li>
+<li>Your table then has five lines:</li>
+</ol>
+<ul>
+<li>A global title line</li>
+<li>A title line of the group</li>
+<li>A group detail line</li>
+<li>A footer of the group</li>
+<li>A global footer line</li>
+</ul>
+<ol start="6" style="list-style-type: decimal">
+<li>Then insert some elements in the design: in the global header, everything
that does not depend on the group, for example the title of the report. In the
header of the group, everything that is common to the whole group and that you
want to see in its title. In the details, the fields that may appear for each
group line. As in the image below, the fields might be inserted by Copy/Paste
from the Data Set, and titles via a text element of the palette. You can add
lines and columns by right clicking on the end of the line (gray rectangle when
the table is selected), etc. <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Design%20with%20break.png?api=v2"
alt="Design with break" /></li>
+</ol>
+<h4 id="construction-of-aggregation">Construction of aggregation</h4>
+<p>The aggregations may be on the whole table, or only on a group. They are
characterized by an expression to aggregate (made up of different data fields),
a possible filter on the data lines, and an aggregation function, eg: <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Aggregation%20builder.png?api=v2"
alt="Aggregation builder" /> #### Expression builder #### The <em>fx</em> (for
expression and filter) buttons are used to open a complex expression
construction window. It is possible to use predefined functions, Javascript,
data fields, already built aggregations, and so on. This window can also be
used by including a data element, which allows to construct non-aggregated data
expressions. <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Expression%20builder.png?api=v2"
alt="Expression builder" /></p>
+<p>Footer lines often allow you to place aggregations, such as sums on the
group or table rows, eg <img
src="https://cwiki.apache.org/confluence/download/attachments/68720496/Design%20with%20break%20complete.png?api=v2"
alt="Design with break complete" /></p>
+<blockquote>
+<p>Warning: any unused line must be deleted, otherwise it generates white
spaces on the report.</p>
+</blockquote>
+<h2 id="layout-management">Layout Management</h2>
+<h3 id="general-settings">General settings</h3>
+<p>Right button leads to Properties Editor tab at bottom. Then click on the
Master Page tab, just above. In the Property Editor you will see a series of
general properties that will allow you to modify the general form of the
report.</p>
+<h3 id="styles">Styles</h3>
+<p>By right-clicking on any item in the table, you have access to the menu of
styles. From there they can be edited, applied, created. A style can be applied
to the whole picture, to a row or column, to a cell, or to an element in that
cell (text, data, ...).</p>
+</body>
+</html>
Propchange: ofbiz/tools/wiki-files/Using the Birt Report Designer.md.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/tools/wiki-files/Using the Birt Report Designer.md.html
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange: ofbiz/tools/wiki-files/Using the Birt Report Designer.md.html
------------------------------------------------------------------------------
svn:mime-type = text/html