View source | View content page | Page history | Printable version   

Projects:APR Migration Tool/User Manual

Warning.png   This document is still a work in progress. It may contain inaccuracies or errors.


About this user manual

This manual explains how to use the migration tool for a smooth migration of the old financial data to be consistent with the new flow implemented by the Advanced Payables and Receivables module (APRM). It will also cover other aspects like how to manage the detailed log information generated during the process as well as how to identify all the migrated data and verify the process. Please read this document from the beginning to the end before running the migration tool. As the name of the module suggests, this process is designed for the initial migration of data which means the process must be run as first step before start operating with APRM flows.

Warning.png IMPORTANT

The module is already published in Controlled Release maturity status.

Early adopters / pioneers are able to install it and run the migration process in a testing environment. At the same time we can take benefit collecting valuable feedback from them.

The process has been successfully completed in a productive environment coming from one of our business partners.

As the migration is a very complex and critical process which must take in account all the different casuistic, we wanted to mature the module before moving it to General Availability.



This module provides an straightforward and robust tool for migrating the financial data from the old flow making it suitable for the new flow implemented through Advanced Payables and Receivables (APRM) module.

Getting started

Installing the Migration Tool module

Bulbgraph.png   This step is not needed if you are asked to run Migration Tool during the upgrade process from Openbravo 2.50 to Openbravo 3 because Migration Tool is automatically installed.

Log into the system using the System Administrator role and go to General Setup || Application || Module Management. Click the Add Modules tab and find the Migration Tool module within the list of all modules available in the central repository.

Note for Spanish speakers: If you want to use the Migration Tool module in Spanish, find within the list of all modules available in the central repository the Migration Tool Spanish (Spain) module and install it.

A detailed guide on how to install a new module can be found in the Install Module video.

Change to the role used to execute the migration process

Only the System Administrator role will have privileges to run the process. Log in as System Administrator and go to Application || General Setup || Client || Migration Tool.


Document Types with document base AP Payment and AP Receipt have to be created and actived.

Migration Process


The migration at first should be done in a staging environment. Procedure is the following:

  1. Testing environment: create a clone of the production environment (here is the tool to help).
  2. Do the migration in the Testing environment.
  3. Verify the migration.
  4. Repeat the process in the Production environment if previous steps are successful. Before running this steps is highly recommended to create a backup of the database.

Interpretation of Messages

At the end of the migration process a message is shown with the following information:


Error message


Summary of the process.

Success message


Payment Method

Each payment rule of All_Payment Rule reference list will be migrated as a new Payment Method. These are the default payment rules provided in Openbravo ERP master data. If you have modified or added any record to the list it will be also migrated.

Note: the migration process will skip NOT ACTIVE payment rules.

Equivalent payment methods will be available on Financial Management || Receivables & Payables || Setup || Payment Method || Payment Method

Default Payment Rule List
Migrated Payment Method List

Default configuration

Field Value
Name The name of the payment rule.
Description Generated by the Migration Tool process
Allow Payment IN / OUT Yes / Yes
Automatic receipt / deposit No / No
Automatic payment / withdrawn No / No
Execution type Manual
Upon receipt / deposit In transit
Upon deposit / withdrawn Deposit / Withdrawn
Upon clearing use Cleared account
View larger

Cash type payment method configuration

Cash payment rules will have a bit different configuration, having an automatic receipt / deposit and payment / withdrawn enabled. It will generate the payment and the transaction at one shot when processing an invoice using this payment method.

What does this means?

  • Automatic receipt / payment: on completion of a Sales / Purchase Invoice the payment is automatically received / made.
  • Automatic deposit / withdrawn: checking this option results in a payment received / made using this payment method being automatically deposited /withdrawn in the Financial Account.

How the process identifies which are the Cash payment rules?

Looking in the payment rule name, if it contains the cash string (no case sensitive) the process will consider them as cash type.

View larger

Linked entities

In the following windows the Form of Payment value has been migrated to the corresponding new Payment Method.


New column em_aprmt_payment_rule in fin_payment_method table will contain the reference to the corresponding payment rule.

Note: the field is not visible through the application.

Financial Account


Each Bank Account defined in the application in Financial Management || Receivables & Payables || Setup || Bank || Bank >> Bank Account will result on a new Financial Account of type Bank.

Bank Account - Financial Account mapping

Default mapping for Bank type Financial Accounts:

Old Flow New Flow
Table Column Table Column
C_Bank name FIN_Financial_Account name
C_Bank -- FIN_Financial_Account Description ('Generated by Migration Tool')
C_Bank -- FIN_Financial_Account Type: Bank (B)
C_Bank c_location_id FIN_Financial_Account c_location_id
C_Bank swiftcode FIN_Financial_Account swiftcode
C_Bank codebank FIN_Financial_Account codebank
C_Bank routingno FIN_Financial_Account routingno
C_Bank codebranch FIN_Financial_Account codebranch
C_Bank digitcontrol FIN_Financial_Account bank_digitcontrol
C_Bank ine_number FIN_Financial_Account ine_number
C_Bank c_bpartner_id FIN_Financial_Account c_bpartner_id
C_BankAccount accountno FIN_Financial_Account accountno
C_BankAccount iban FIN_Financial_Account iban
C_BankAccount codeaccount FIN_Financial_Account codeaccount
C_BankAccount digitcontrol FIN_Financial_Account account_digitcontrol
C_BankAccount isdefault FIN_Financial_Account isdefault
C_BankAccount creditlimit FIN_Financial_Account creditlimit
C_BankAccount c_currency_id FIN_Financial_Account c_currency_id
C_BankAccount -- FIN_Financial_Account currentbalance: sum of all bank statements of the the C_BankAccount.
C_BankAccount -- FIN_Financial_Account fin_matching_algorithm_id: null


Each CashBook defined Financial Management || Receivables & Payables || Setup || Cashbook || Cashbook will create a new Financial Account of Cash type.

CashBook - Financial Account mapping

Default mapping for Cash type Financial Accounts:

Old Flow New Flow
Table Column Table Column
C_CashBook name FIN_Financial_Account name
C_CashBook Description FIN_Financial_Account Description + 'Generated by Migration Tool'
C_CashBook -- FIN_Financial_Account Type: Cash (C)
C_CashBook c_currency_id FIN_Financial_Account c_currency_id
C_CashBook -- FIN_Financial_Account currentbalance: 0
C_CashBook -- FIN_Financial_Account creditlimit: 0
The rest of columns are left as null

Financial Account and Payment Method association

All the Payment Methods created in the payment method migration process will be associated to each Financial Account using as default the configuration of the payment method definition.

The affected table is fin_finacc_paymentmethod


As each bank account and cashbook is mapped with a new financial account, the migration tool will add new field which will allow the user to navigate to the corresponding Financial Account from the bank account or cashbook.

APRMT BankAccount.png
APRMT CashBook.png

Looking in the database

New column em_aprmt_financial_account_id in c_bankaccount and c_cashbook tables will contain the reference to the corresponding Financial Account.

Business Partner defaults

This process will migrate the defaults values defined for Business Partner playing the role of Customer and Vendor/Creditor.

Payment Method

The default Payment Method (Customer and Vendor/Creditor) will be filled with the previously created Payment Method for the corresponding Form of Payment defined in the following windows:
  • Master Data Management || Business Partner || Business Partner >> Customer
  • Master Data Management || Business Partner || Business Partner >> Vendor/Creditor
Old Flow New Flow
Table Column Table Column
C_BPartner paymentrule C_BPartner fin_paymentmethod_id
C_BPartner paymentrulepo C_BPartner po_paymentmethod_id
View larger

Financial Account

The default Financial Account (Customer and Vendor/Creditor) will be filled with the previously created Financial Account for the corresponding Bank Account defined in the following windows:
  • Master Data Management || Business Partner || Business Partner >> Customer
  • Master Data Management || Business Partner || Business Partner >> Vendor/Creditor
Old Flow New Flow
Table Column Table Column
C_BPartner so_bankaccount_id C_BPartner fin_financial_account_id
C_BPartner po_bankaccount_id C_BPartner po_financial_account_id
View larger


All the accounting configuration defined for Customer and Vendor/Creditor

will be deactivated following this rule:

All the records will be DEACTIVATED if the status is not neither empty (null) nor default (--).

Business Partner accounting


How do I know if an order will be migrated?

It needs to satisfy the following conditions:

No payments

If the order hasn't any payments a new Payment Plan will be created for the total of the order.

Migration of an order with no payments

With Payments

As a general rule, all the pending payments create a new payment plan with the total amount of the payment. Another payment plan is created with the outstanding amount (Total gross amount of the order - sum[amount of payments]).

In the following example a sales order of 200€ has been completed.

In Payment tab there are two records:

  1. Processed payment of 75€.
  2. Pending payment of 25€

In Payment Plan tab we can see what is the result:

Migration of and order with payments


Direct migration

Invoices of this group will be fully migrated. The records of Payment tab will be removed and will be replaced by the corresponding entries in the Payment Plan tab.

How do I know if an invoice will be fully migrated?

It needs to satisfy the following conditions:

Let's describe the process in pseudo-code

for each invoice in this group of invoices do
  for each old payment in invoice do
      create the equivalent payment plan
  end for
end for

In the following example we have an invoice which fulfills previous conditions. It has only one payment of 60€, which is not canceled and does not belong to any payment status management.

Direct migration of Invoices

Partial migration

In this case the migration process will not generate any new record in Payment Plan tab and the records in Payment tab will remain.

The process will search for NON CANCELED old payments in the rest of invoices (invoices which have been not covered in the previous group) and for each old payment it will generate a Payment of new flow (Payment In/Out) with the following information:

It can be done from the Payment In/Out window, clicking on Execute Payment button Financial Management || Receivables & Payables || Transactions || Payment In / Out


it is possible to execute payments in batch mode using Financial Management || Receivables & Payables || Transactions || Payment Execution || Payment Execution window.

When executing the application will show a popup where the user can enter the date when the payment takes place.

Partial migration of Invoices

This payment will have assigned a G/L Item as follows:

Let's explain it more visually:

The screenshot bellow shows in edit view the payment that will be migrated. The status of the payment is -- (default status) and it is related to McGiver Supplies business partner.

Old Payment that will be migrated

McGiver does not have accounting defined for default status (--) but it has for empty status:

Configured accounting in the Busines Partner

The G/L Item is created using the previous accounts:

Created G/L Item


This process will cover all the non canceled payments which are not related to any invoice/order.

The migration will consist in the same steps described for partial migration of Invoices.

In this case if the payment already has a G/L Item the process will reuse it when creating the new Payment In/Out. If not, the process will take charge of creating the corresponding G/L Item as described before.

Migration Log

Each execution of the migration process will produce an extensive log trace accessible from the application.

You should just go to: General Setup || Client || Migration Log || Migration Log

The following information is stored:

Migration Log grid view
Migration Log edit view


Before running the migration process use 'old' Payment Report in order to get a picture of all the outstanding payments grouped by business partner. You should first query for receivables and then for payables. Save both in pdf format, it will allow to compare the result after the migration.

Old payment report

Once the migration has been completed successfully we should do the same exercise using the new Payment Report and compare the result. They should match.

New payment report

The following example is taken from the SmallBazaar client avaiable in Openbravo ERP.

APRMT OldPR Result.png
APRMT NewPR Result.png

Retrieved from ""

This page has been accessed 11,801 times. This page was last modified on 8 June 2012, at 05:26. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.