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

Projects:Persist Organization Information

Contents

Background

There are some places (like accounting process) that do call to below pl functions:

Each call does not take a lot of time to be executed, but calling them several times in some places creates performance problems.

The idea is to include the information retrieved into columns in the ad_org table to improve the performance in such scenarios.

Introduction

This project aims to persist organization with the following information instead of getting it by calling PL functions every time.


OB3 Organization FBEspanaNorte InheritedOrgInfo.png

Implementation

Add following columns in AD_Org table.

Application Dictionary

Organization's Set Ready process

AD_Org_Ready is modified to set above columns using new functions AD_ORG_GETPERIODCONTROLALLOWTN, AD_ORG_GETCALENDAROWNERTN, AD_GET_ORG_LE_BU_TREENODE. Variables are used to store required information before setting them in AD_Org to avoid triggers mutating error in Oracle instance.

Refactoring existing function

Functions AD_ORG_GETPERIODCONTROLALLOW, AD_ORG_GETCALENDAROWNER and AD_GET_ORG_LE_BU are refactored to directly query appropriate new columns from ad_org table.

Modulescript

A modulescript is developed to update the old organization records with the inherited information in the respective columns.

Performance

More details on performance are summarized in following sheet.

Notes for Developers

Below are the new functions created and they are used in the flows where organization is not set as ready.

Bulbgraph.png   In processes where performance is important, it is highly recommended to directly query new columns from AD_Org table which holds required inherited information as above functions have very important performance issues.

References

Retrieved from "http://wiki.openbravo.com/wiki/Projects:Persist_Organization_Information"

This page has been accessed 834 times. This page was last modified on 2 May 2018, at 18:28. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.