Page 1 of 1

BaseDocumenter - to document your Base apps

PostPosted: Mon Aug 13, 2018 3:06 pm
by JPL
BaseDocumenter is a new LibreOffice extension producing a full documentation of a LibreOffice Base application.

The documentation produced by BaseDocumenter is bundled as one set of static HTML pages.
The layout of the produced HTML pages is highly customizable.

The documentation describes in detail all the items (tables, queries, Basic procedures, ...) being part of the Base application.

Additionally it identifies all the dependencies between items. E.g. a query might use one or more tables. Knowing exhaustively which items are used by other items is invaluable for the developer of the application. This knowledge allows for example a detailed impact analysis of design changes.

Dependencies are of 2 types:
  • parent/child: e.g. a field is the child of a table.
  • uses/used by: e.g. a query uses a table or a table is used by a query. In BaseDocumenter, such dependencies are very simply revealed by the use of hyperlinks. Clicking on one of them makes the browser jump to the description of the linked item.
The software includes also
  • a Basic parser to identify a.o. which procedures are called by which procedures
  • a SQL beautifier to make simple or complex SQL statements much more readable
Full documentation of the software HERE.

Striking examples HERE and HERE.

Download from HERE.

 Edit: LAST VERSION: BaseDocumenter 0.6.0 


Any feedback from users is obviously very welcome on this forum.

JPL

Re: BaseDocumenter - to document your Base apps

PostPosted: Tue Aug 14, 2018 5:15 pm
by Villeroy
Fresh Ubuntu 18.4 installation with LO 6.0.3.2, Java10 and additional packages libreoffice-base, libreoffice-script-provider-python
...
...
Storing collected data ...
Msgbox "Read or write error on repository", title "BaseDocumenter"

Setup:
/home/andreas/Dokumente/LibreOffice/BaseDocumenter/BD_TOC_Template.html
/home/andreas/Dokumente/LibreOffice/BaseDocumenter/BD_Template.html
/home/andreas/Dokumente/LibreOffice/BaseDocumenter/Output/
[it's all in my home]

Re: BaseDocumenter - to document your Base apps

PostPosted: Tue Aug 14, 2018 5:43 pm
by JPL
@ Villeroy,

setup seems OK. Difference with mine: LO 6.1.0.2 - Java 1.8 or 10 does not matter.
The message indicates that you were finalizing the scan. Between scan and doc generation the repository is closed and reopened to be sure that memory buffers are written down on disc.

A few questions:
- is the repository still empty after the incident ? Are the 2 tables empty ? Could you send me (PM) a copy of the repository ?
- more sensitive: can I get a copy of your scanned database ?

JPL

Re: BaseDocumenter - to document your Base apps

PostPosted: Tue Aug 14, 2018 8:08 pm
by Villeroy
The tables are filled with meta info about my database which is an external jdbc:hsql:file: database. May be that was a good choice to catch that error. However, I have similar databases that do work with your documenter. My database in question is strictly confidential. The only "special" thing I can see: it has 2 text tables with iimport data and 2 views on those text tables.
I'll see if I can debug your code.
 Edit: No, I can't debug this. I sent you a copy of that database with all data stripped 


But I have another one for you
Error #1511 (Form 'Filter Data' could not be opened) occurred in a call to function 'OpenForm'

I found 3 databases throwing this error. One of them is an embedded one from this forum: https://forum.openoffice.org/en/forum/d ... p?id=31652

Re: BaseDocumenter - to document your Base apps

PostPosted: Thu Aug 16, 2018 1:07 pm
by JPL
Hi Villeroy,
But I have another one for you
Error #1511 (Form 'Filter Data' could not be opened) occurred in a call to function 'OpenForm'

I downloaded the proposed case from this forum.
... and it ran like a charm thru BaseDocumenter and LibreOffice 6.1.

In http://www.access2base.com/basedocument ... imitations you can read next sentence:
Forms may have more than 1 data source. This feature is seldom used in practice. However multiple data sources are identified only if BaseDocumenter is installed near LibreOffice 6.1 or later release.

In fact I should clarify and complete it : if you changed the Form | General | Name parameter from "MainForm" to something else (what you did and it was your absolute right, so it was my bug), then BaseDocumenter cannot find it, except if you run LO >= 6.1

This is exactly why I wrote in the documentation:
As a consequence BaseDocumenter requires a prior installation of at least LibreOffice 6.0. However, preferably, a prior installation of LibreOffice 6.1 is recommended.

Sorry for the inconvenience.
JPL

PS: I will soon have a look at the other case.

Re: BaseDocumenter - to document your Base apps

PostPosted: Thu Aug 16, 2018 3:05 pm
by JPL
@Villeroy,
Msgbox "Read or write error on repository", title "BaseDocumenter"

Here (again) I tested the database you sent me via PM. It ran smoothly thru BaseDocumenter under LibreOffice 6.1.

The error message is probably due also to the presence of 2 "root forms" in your unique form: Formular1, MainForm and qDiff.
But I can't investigate further without being able to reproduce the incident.

BTW your "WorldCup" database that I put in the examples (http://www.access2base.com/basedocument ... abase.html) uses hierarchical form names. I renamed them by replacing the / by a _. Hierarchical form names will be processed normally by BD as from LO 6.2. I posted indeed a commit in LO/master last week.

If you have more questions, let me know.
JPL