Plugin: Beluga Serverprint

From iDempiere en
Jump to navigation Jump to search
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 dependent on the organization, the business partner, the active user, the calling tab and of course the document type. This reports than can be printed on 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 it works:

  • You first have to create some 'Copy Type', for example "for the customer" or "for the company", which represent the purpose of the result.

Screenshot Copy Type

  • Next there ist the print configuration where particular ways of printing for example "printing on letterhead" are defined and connected to a concrete printer configuration, dependent on organization and user.

Screenshot print configurationScreenshot print configuration entry

  • At the moment only printer supporting the IPP (internet printing protocol) are usable, but tested only with cups as IPP server. Enter the printer name known by cups (or other print server), but leave it blank if printing directly to an IPP printer. We'll test directly printing in January 2020, so you can try it now but it depends on printers features, whether it will work. In this configuration the data to access the printer, the possible attributes and attributes to achieve a way of printing are located. Soon we will populate the possible attributes automatically. By now you have to do it by yourself.

Screenshot printer configuration Screenshot Printer configuration attributes Screenshot Printer attributes Screenshot Printer attributes value

  • 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 provided with an additional parameter to for example create with the same report a result once with and once without logo.
  • 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 (that bad in the moment as the editing before sending is not working yet). Setting the check mark 'senddirectly' will cause the mail to be sent immediately, else it can be edited (sorry, not yet) 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.
  • And at least you can deposit the result 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:

  • 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 profile, 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)

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 and can not be overwritten at the moment.