Projects/CodeCleanupOB3

From InfiniteERP Wiki
Revision as of 12:16, 16 December 2021 by Wikiadmin (talk | contribs) (Created page with "{{WorkInProgress}} == Introduction == This project contains all the code cleanup work done for the Openbravo 3 release. This project did review the Openbravo code-base (bo...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Warning.png   This document is still a work in progress. It may contain inaccuracies or errors.

Introduction

This project contains all the code cleanup work done for the Openbravo 3 release.

This project did review the Openbravo code-base (both files and db-content) and removed a number of deprecated / legacy elements whichfrom the Openbravo 3 distribution. Most of those elements are available in one of three modules which have been created to provide a means to still use those legacy elements (where this was technically feasible).

Who is affected by those changes?

The following sections explain in which cases an instance might be affected by this cleanup work. They should help to decide if one or more of those modules above are needed even before doing a test-update of the instance.

AuthenticationManager changes

Bulbgraph.png   Note: This changes are included in 3.0MP4 not in 3.0RC7

The AuthenticationManager interface was changed to an abstract-class. If an instance has a custom AuthenticationManager, instead of implement the interface the the class needs to be a sub-class of AuthenticationManager and implement doLogin and doLogout methods: AuthenticationManager

Implementation

  • Previous to 3.0MP4

<source lang="java"> public class DefaultAuthenticationManager implements AuthenticationManager {

public String authenticate(HttpServletRequest request, HttpServletResponse response)
     throws AuthenticationException, ServletException, IOException {
   // authenticate implementation
}
public void logout(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
   // logout implementation
}

} </source>

  • In 3.0MP4 and above, the the custom authentication class needs to extend AuthenticationManager instead of trying to implement an interface. It needs to implement the doAuthenticate and doLogout in the same way it was doing before.

<source lang="java"> public class DefaultAuthenticationManager extends AuthenticationManager {

 @Override
 protected String doAuthenticate(HttpServletRequest request, HttpServletResponse response)
     throws AuthenticationException, ServletException, IOException {
   // authenticate implementation
 }
 @Override
 protected void doLogout(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
   // logout implementation
 }

} </source>

Using the LAM authentication manager

This applies only if your instance is using the LAM Authentication manager provided with Openbravo. If the instance does not use the parameter 'authentication.class=org.openbravo.authentication.lam.LamAuthenticationManager' in config/Openbravo.properties then you do not need this new module.

When using classic csv-file import data loader

If you use the Import Data Loader functionality earlier provided by core then you need to install this module to not loose that functionality.

Note: This applies also if some other module depends on this functionality. Examples for this are:

  • The legacy features module mentioned above
  • The POS Sync module for synchronizing data with Openbravo POS (a new version of that module has been published already which adds the needed dependency).

Use of removed 'Application Element'

It might be that some customization do indirectly depend on some application elements (ad_element) which have been removed during the cleanup. This can happen as the 'Synchronize Terminology' process matches elements by name so it might have connected some of the new columns with elements in core which have now been removed.

In this case two options are possible:

a.) Let the customization depend on the legacy module (discouraged) b.) Create a new ad_element entry in the customization module and use this one instead

Use of any of the other removed elements

If any of customization/module require use of one of the removed elements (files,tables, ...) then the immediate fix is to install the 'Legacy features' module during the upgrade.

This should fix the issue in most cases and let the customization continue to work without changes.

Exception: If some customized code does access any of the moved tables via DAL then a slight adjustment to that code will be necessary. This is needed as for technical reasons the java-package of the dal-model classes corresponding to those tables had to be changed.

Bulbgraph.png   The content of this legacy module is considered deprecated by Openbravo and only available to ensure a smoother upgrade process. It is strongly advised to change any customization using it to change their code to not require those elements anymore.

List of removed elements

The following sections list the main elements which have been remove from the core distribution and moved into the Legacy module.

The full list of moved elements can be seen as the Legacy modules' content in its mercurial repository here.

Especially individual moved files (html,xml,jrxml,... are not listed here).

Physical database objects

This list all the database objects which have been removed from core an moved into the Legacy module:

Tables

Tables
AD_ATTACHMENT
AD_CHANGELOG
AD_COLUMN_ACCESS
AD_NOTE
AD_PROPERTY_CONFIGURATION
AD_RECORD_ACCESS
AD_TASK_ACCESS
AD_TASK_TRL
AD_TASK
AD_TEST
AD_TREEBAR
AD_TREENODEBP
AD_TREENODEMM
AD_TREENODEPR
AD_WF_NODENEXT
AD_WF_NODE_TRL
AD_WF_NODE
AD_WORKFLOW_ACCESS
AD_WORKFLOW_TRL
AD_WORKFLOW
AT_COMMAND_TRL
AT_COMMAND
AT_LINE
AT_ROLLOGIN
AT_TESTDOCUMENTLINE
AT_TESTDOCUMENT
AT_TEST
C_INTERORG_ACCT
C_ORGASSIGNMENT
C_REVENUERECOGNITION_PLAN
C_REVENUERECOGNITION_RUN
C_REVENUERECOGNITION
C_SERVICELEVELLINE
C_SERVICELEVEL
MA_PC_CASE
MA_PC_VALUE
M_LOCATOR_TYPE
M_PERPETUALINV
M_REPLENISH
M_WH_PERIOD_INVOICED
M_WH_PERIOD
M_WH_SCHEDULE_PRODUCT
M_WH_SCHEDULE
R_CONTACTINTEREST
R_INTERESTAREA
R_MAILTEXT
R_REQUESTACTION
R_REQUESTPROCESSOR_ROUTE
R_REQUESTPROCESSOR
R_REQUESTTYPE
R_REQUEST
R_RESOURCEPLANCOST


Views

Views
A_ASSET_AMORTIZATION
AD_FIELD_V
AD_FIELD_VT
AD_TAB_V
AD_TAB_VT
AD_USER_ROLES_V
AD_WINDOW_VT
C_BPARTNER_V
C_CASH_DETAIL
C_INVOICE_CUSTOMERPRODQTR
C_INVOICE_CUSTOMERVENDQTR
C_INVOICE_DAY
C_INVOICE_HEADER_V
C_INVOICE_HEADER_VT
C_INVOICE_LINETAX_V
C_INVOICE_LINETAX_VT
C_INVOICE_MONTH
C_INVOICE_PRODMONTH
C_INVOICE_PRODWEEK
C_INVOICE_VENDORMONTH
C_INVOICE_WEEK
C_ORDER_HEADER_V
C_ORDER_HEADER_VT
C_ORDER_LINETAX_V
C_ORDER_OPEN
C_PROJECT_DETAILS_V
C_PROJECT_DETAILS_VT
C_PROJECT_HEADER_V
C_PROJECT_HEADER_VT
GL_JOURNALLINE_ACCT_V
MA_SEQUENCE_EMPLOYEE_COST
MA_SEQUENCE_INDIRECT_COST_COST
MA_SEQUENCE_MACHINE_COST
M_INOUT_HEADER_V
M_INOUT_HEADER_VT
M_INOUT_LINE_V
M_INOUT_LINE_VT
M_TRANSACTION_SUM
R_REQUEST_V


Triggers

Triggers
AD_PROPERTY_CONF_MOD_TRG
AD_TASK_TRG
AD_TASK_TRG2
AD_WF_NODE_MOD_TRG
AD_WF_NODENEXT_MOD_TRG
AD_WF_NODE_TRG
AD_WORKFLOW_MOD_TRG
AD_WORKFLOW_TRG
AT_COMMAND_TRG
C_BPARTNER_TRG2
C_REVENUERECOGNITION_PLAN_TRG
MA_PC_CASE_TRG

PL-Functions

PL-Functions
AD_DISPLAY_LIST
AD_GET_PROPERTY_VALUE
AD_MESSAGE_GET
AD_ORGLIST
AD_TRANSLATE_ID
AD_UPDATE_SEQUENCE
AT_TEST_COPY
AT_TEST_DELETE
C_ELEMENTVALUE_COPY
C_GETORDERLINE_TAXAMOUNT
C_GETPERIODNAME
C_ORDER_ACTUALIZE_PRICELIST
C_ORDER_FACT_RESET
C_PAYMENTTERM_DUEDATE
C_PAYMENTTERM_DUEDAYS
GL_PERIOD_OPEN
MA_PC_CASE_CREATE
M_GET_OFFERS_APPLIED
M_GET_PURCHASE_PRICE
M_PRODUCT_DELETE
M_WH_ACTIVATE_PERIODS
M_WH_PERIOD_GENERATE
R_REQUEST_DUETYPE
R_REQUEST_PROCESS
R_REQUEST_PROCESS0
R_REQUEST_REOPEN

Main Application Dictionary entries

This section list the removed elements from the application dictionary but only covers the main tables and not every detail:

Windows

ID Name
113 Workflow
114 Task
127 Test
128 Attachment
160 Withholding (1099)
161 Charge
174 Revenue Recognition
175 Perpetual Inventory
176 Vendor Details
193 Notice
201 Request
203 Request Processor
204 Mail Template
220 Service Level
232 Request All
244 Request Type
245 Areas of Interest
250 Application Translation Check
251 Asset
262 Vendor Expense Invoice
270 Change Log
272 Time Type
275 Invoice Payment Schedule
286 Service Project (deprecated)
800004 Simple Sales Order
800010 Warehouse Schedule
800012 Storage Bin Type
800021 Expense Invoice
800022 Document
800023 Role Login
800024 Instructions
800025 Command
800067 Periodic Quality Control Data
EFB5814F190840039AF5137B01C6E32B Property Configuration

Individual Tabs

Tab ID Window-name Tab-name
332 Organization Accounting
307 Role Workflow Access
313 Role Task Access
439 Business Partner Areas of Interest
182 Product Replenish
493 Resource Plan Costs
487 Session Change Log
483 Role Access Record Access
484 Role Access Column Access
556 Business Partner Info Partner Requests

Manual Forms

ID Form-name
105 Create Charges
106 Payment Print/Export
107 Payment Selection (manual)
111 Password Maintenance
112 Merge Entities
800000 In-Out Report
800008 Change Payment Status
800010 InvoiceVendorMultiline
800013 Remittance Cancellation/Return

Report & Processes

ID Process-name
126 Order Drilldown
152 Invoice Detail - old
158 Process Requests
177 Run Process
195 Reopen Request
209 Send Mail Text
800007 Report inventory
800009 Proposal print
800011 Bank Report - old
800012 Cash Report - old
800016 Invoice Customer Report
800028 Change Order Organization
800049 C_Invoice_Create1
800065 Create Periods
800066 Activate/Deactivate Periods
800071 Generate Help
800072 Invoiced Returns Dimensional Report
800078 Update Price List from Orders
800080 Generate 347 Model
800093 Account Dimensional Report
800095 Delete Lines from Test
800096 Copy Test Lines
800097 Test In
800120 Run Periodic Control
1004400007 Revenue and Expenses