Plugin: Beluga Serverprint

From iDempiere en

creating printable documents and distribute or print them

Logo Martin Schönbeck Beratungen GmbH


  • The plugin Beluga Serverprint evolved as a result of the requirement to print shipments and invoices directly from server once on the letterhead and once on blank paper. As usual some requirements where added and some ideas came across.
  • Now it's able to create jasper reports with print profiles which depend on the organization, the business partner, the active user, the calling tab and of course the document type. This reports than can be printed in several ways, archived, sent by mail or stored in a directory on the server, for example to pass it over to a DMS
  • The plugin is built without changing the default processes of iDempiere, so it can be installed without side effects on the ongoing operation. Visible is only an additional toolbar button beneath the normal print button. This button starts the server printing. Without pressing this button iDempiere behaves as before.


  • Simply install it via Felix-Console. You are done.
  • German translation is included.

This is how to configure it:

creating a Copy Type

  • You first have to create some 'Copy Type', for example "for the customer" or "for the company", which represent the purpose of the result. This entries define the copies potentially created. When starting the printing serverprint will try to find a valid configuration for each of these copy types. If not found this copy won't be produced.

Screenshot Copy Type

configure a printer

  • Then you need to define printers (if you really want to print). At the moment only the IPP (internet printing protocol) is supported. You can use it via an IPP-server (usually cups) or sending it directly to a printer supporting IPP. Enter the printer name known by cups (or other print server), but leave it blank if printing directly to an IPP printer. If you are going to select special features on a printer (media tray e.g.) you'll have to set some attributes. To ease this, the plugin can read all available attributes with all available attribute values from the printer or the IPP-server. Actually 'til now we didn't find a printer delivering a valid set of attributes while cups does it.

Screenshot printer

  • If you selected to read the attributes automatically they will appear in the tab Printer Attributes and their Values in the tab Printer Attribute Values. You may choose to change the Name of both, e.g. if you can't remember what pf-700-a means. You should normally not change the value of Printer Attribute Name, it won't work than. But of course you may enter attributes and attribute values manually if you know, your printer knows them but doesn't deliver them to be automatically inserted.

Screenshot Printer attributes Screenshot Printer attributes value

  • After having created the attributes you can combine them to define configurations for your print jobs.

Screenshot printer configuration Screenshot Printer configuration attributes

  • now you were able to print on a given printer in a defined fashion. But because different user may want to do the printing on different printers we need an additional step.

create a print configuration

  • In the print configuration we define a way to print a required result (e.g. printing on letterhead) for different users. You can define one entry for each print configuration as default so that all users without a special assignment print on that printer.

Screenshot print configuration Screenshot print configuration entry

the print profile

  • All this is then connected in the print profile. The profile ist connected to the organization (or all of them), has a priority and can be labeled as standard.

Screenshot print profile

  • The next level called 'sub print profile' is defined by the tab, the document type or both.

Screenshot sub print profile

  • It collects the 'copies' where the jasper report and the copy type is defined. The jasper report can be called with an additional parameter to for example create with the same report a result once with and once without logo. The parameter is called 'ReportVariant'. You can select output formats other than pdf (default) if e.g. you want to send an order as csv-file via mail to an automatic ordering portal.
  • This jasper report together with it's parameter is called only once independently of the number of occurences in different entries. Further more this tab defines what to do with the result of the jasper report.
  • The check mark named 'to archive' is speaking for itself.
  • The scope 'Printing' defines which print configuration defined before is to be used and how much copies have to be printed. If either no print configuration is given or the number of copies is 0 nothing is printed.
  • The scope E-Mail allows to sent the document as pdf via email to user given in the document (ad_user_id), additional as CC: oder exclusively as To: to a given email address. To do this an email template can be selected, if not the content and subject of the mail is empty. Setting the check mark 'senddirectly' will cause the mail to be sent immediately, else it can be edited before sending. The mail configuration of the actual user will be used for From: if marked, otherwise the information configured in the client setup will be used. Beside the document you can add additional attachments by putting them into the attachments of the document. Only attachments whose name start with one of the prefixes given in the field here are attached.
  • And at least you can deposit the resulting document in a directory on the server, where it perhaps can be processed by a DMS or printed by a job from elsewhere.

Screenshot copies

The process than is as follows:

  • Hit the button right to the normal printing button.
  • For each Copy Type which is defined exactly one sub print profile will be looked up. Any one Copy Type may stem from a different sub print profile. Looking up the sub print profile is done by searching all print profiles, which match the organization (or all) and either are marked as standard or directly connected with the business partner. The profiles are sorted by priority first, than those not marked as standard, than those with exact matching organization. The sub print profile will be ordered first those where tab and document type match, than those without tab and matching the document type and than those without document type and matching tab.
  • Only the first resulting sub print profile for each Copy Type will be used. All entries of those sub print profiles for the selected Copy Type will than be executed.
  • A typical usage for example would be a standard profile for invoices with one printout "for the customer" and one "for the company". Customer which have to receive the invoice by mail will be connected to a profile containing only an entry for the Copy Type "for the customer" witch then produces the mail (and voids the corresponding entry in the standard profile). If you want to remove a Copy Type which is defined in the standard profile simply create a profile which has an empty copy entry for this Copy Type.

Using it in workflows:

  • you can now use it in workflows, the process has the previously internally used parameters as process parameters defined. The parameter AD_Table_ID is currently only used to archive the document and should be set to the ID of the table. The AD_Tab_ID is used to identify the required print configuration where it is not defined by the document type. Set it to the correct ID. When setting the user remember, that @#AD_User_ID@ is case sensitive. The Record_ID is the record ID of the workflow, since 8.2 it can be overwritten by entering a parameter which is not connected to a process parameter and has the Attribute Name 'Record_ID'.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.