Preference

From InfiniteERP Wiki
Jump to: navigation, search
Back button.png   Back to General Setup


Introduction


A preference is a type of session value which can either be an attribute or a property.

Every time a user logs in Openbravo a new Openbravo session is opened.

While loging in the user enters several variables such as the Role, the Client and the Organization and once in navigates to a Window. All those variables have a key influence on the session values the user will get.

In other words, Preferences allow to define session values, session values which can either be a property or an attribute defined for a single client or for all of them, or for a single organization or for all of them.

Preferences can be assigned to the system or to a specific module, therefore while exporting that module, the preferences it has assigned will also be exported so those general settings can be reused.

For instance, there is an existing Property named "Implements an alternative Invoice Process button". That existing property is currently assigned to the Module "Advanced Payables and Receivables Management" with a value = "Y" for any client, organization, user, role and window:

  • Above preference means that if the Advanced Payables and Receivables Management module is installed, it will use an alternative invoice process button, besides every user loging in Openbravo will get that feature working regardless its role, user and the client or the organization it is working on.

For instance, there is an Attribute named "Autosave" which is currently assigned to the system with a value ="Y". This attribute is visible and therefore applicable to System client and to (*) organization for any user, role and window.

  • Above preference means that every user loging in Openbravo will get that feature working regardless its role and user and the client or the organization it is working on.

Preference


Preference window allow to define and maintain session values which can be visible and therefore applied to different levels such as Client, Organization, User, Role and Window.

Preferences Definition


Preference1.png

As shown in the image above there is one field named "Property List" which is key in defining a preference as a property or as an attribute:

  • if the Property List checkbox is checked, the preference is configured as a property to be take from an existing list of properties. There are many types of properties already created, besides modules can add new properties to that list with the aim of getting that other modules or even the system can take advantage of them by setting the corresponding properties values.
    Some of the available properties are listed and briefly explained below:
    • Enable UOM Management.
      If set to Value = "Y" at "System" level, it allows to define alternative UOM for a product, besides product's UOM.
      Same way a new field named "Operative Quantity" will then be shown in purchase, inventory and sales transaction documents, therefore "Ordered Quantity", "Movement Quantity" and "Invoiced Quantity" always shows "Operative Quantity" entered by the end-user, converted to the product's UOM.
      For additional information, please review How to manage alternative UOM wiki article.
    • Enable automatic Price Difference Corrections.
      If set to Value = "Y", it allows the creation of Price Difference correction cost adjustments.
    • Enable Negative Stock Corrections.
      If set to Value = "Y", it allows the creation of Negative Stock correction cost adjustments.
    • Enable Cancel and Replace.
      If set to Value = "Y", it allows to Cancel and Replace booked sales orders.
    • Cancel and Replace - Associate shipment lines to new order.
      This preference requires "Enable Cancel and Replace" preference enabled, and it only works if "Create netting shipment on Cancel and Replace" preference is not enabled
      If set to Value = "Y", it assignes the shipment(s) related to the cancelled sales order lines to the replaced sales order lines. For additional information, please review Cancel and Replace feature.
    • Cancel and Replace - Create netting goods shipment
      This preference requires "Enable Cancel and Replace" preference enabled, and it only works if "Cancel and Replace - Associate shipment lines to new order" preference is not enabled.
      If set to Value = "Y", it automatically creates and completes a "netting" goods shipment related to the cancelled, voided and replaced sales orders. For additional information, please review Cancel and Replace feature.
    • CSV Text Encoding
      If set to Value = "Y" allows to specify the encoding to be used in the Export to CSV process
    • Grid configuration
      If set to Value = "Y" every time a user changes a grid view, those changes are saved in this window linked to this property.
    • Implements customer Credit Used calculation
      This property is currently assigned to the Advanced Payables and Receivables management module with a property value ="Y". This property avoids the C_BP_SOCREDITUSED_REFRESH function calculation.
    • Implements an alternative Invoice Process button
      This property is also assigned to the Advanced Payables and Receivables management module with a property value ="Y". This property avoids the usage of core invoice process button.
    • Implements an alternative Financial Management
      Same applies to this one which allows an alternative financial management for that module.
    • Implements Payment Monitor management
      Same applies to this one which disables core's background process and button on the invoice header that manage the payment monitor.
      Recent views shown in the workspace property set to "Y"
      This one allows that the recent views are shown in the user workspace
    • Show MRP and Production fields property set to "Y"
      This one allows that the MRP and production fields are shown
    • Not allow to change exchange rate and amount
      If you set this property with value = "Y", exchange rate and amount are read only in Add Payment from Sales Invoice, Purchase Invoice, Payment In, Payment Out, Financial Account, in Select Expected Payments from Payment Proposal and in Funds Transfer from Financial Account.
    • Write-off limit
      This property with a property value ="Y" allows to configure write-off limit in Add Payment from Sales Invoice, Purchase Invoice, Payment In, Payment Out, Financial Account and in Select Expected Payments from Payment Proposal. The write-off limit is set for each Financial Account in Financial Account window.
    • Show Product Characteristics Parents
      Values can be 1,2,3,4, etc. The number means how many levels in the hierarchy tree the user wants to show in form view in the Product window. For example if the tree is: Colour->Green->Green light->0034
    • Allow Multiple Tabs of Window
      If set to Value = 'Y' allows to open more than one tab of a single window.
    • Attach By Default
      • If set to Value = 'Y' the "Print Document" popup will not be shown, this popup is the one which asks if the user want to attach the document or instead of it just print it without attaching. When the value of the preference is set to 'Y' the document will be automaticaly attached.
      • If set to Value = 'N' the "Print Document" popup will not be shown, this popup is the one which asks if the user want to attach the document or instead of it just print it without attaching. When the value of the preference is set to 'N' the document won't be attached.
      • If Value is Undefined the "Print Document" popup will be shown with two options: "Yes" and "No, just print it". If "Yes" is selected, the document will be attached.If "No, just print it" is selected, the document won't be attached.
    • Direct Print
      • If set to Value = 'Y' the printer popup will appear.
      • If set to Value = 'N' or Undefined the document will be downloaded and the printer popup won't appear.
    • Allow Where Parameter
      • If set to Value = 'Y' it allows to get the "_where" parameter from manual datasources. A warning will be shown if the "_where" parameter is sent.
      • If set to Value = 'N' or Undefined it will not allow getting the "_where" parameter from manual datasources. An exception will be thrown if the "_where" parameter is sent.
    • Allow Unsecured Datasource Request
      • If set to Value = 'Y' it allows to do unsecured datasource request. A warning will be shown if current role does not have access.
      • If set to Value = 'N' or Undefined it will not allow doing unsecured datasource request. It is required to have a role with enough access permissions. An OBSecurityException is thrown if current role does not have access.
    • External Rebuild, when this preference is defined as system level with its value set to Y, it will not be possible to rebuild the system from Module Manager Console after installing/updating modules. It forces to rebuild the system from command line.
    • Bypass Access Level Entity Check, when this preference is defined with its value set to Y, it will allow to bypass the check that compares role's user level with entity's access level to completely prevent accessing latter one. For more details visit Role article.
    • Translate Yes/No Reference in Export To CSV, when this preference is defined with its value set to Y, the value of the columns whose reference is Yes/No will be translated to the current context language when exporting the grid of a standard window into CSV.
    • Disable Linked Items Section, when this preference is defined for a window with its value set to Y, the Linked Items section will be disabled for that window. If there is not any window defined in the visibility settings, this section will be disabled for every window in the application.
    • Enable Screen Reader, If this preference is set to Y the full screen reader will be enabled. This will improve the accessibility to visual impaired people.
    • Excel Export Format, this preference allows to set the export format to be used when generating Excel reports. Two values are supported: XLS or XLSX. When this preference is not defined, XLSX is the default Excel export format.
    • Filter by documents processed since N days ago" is related to Create Lines From in Sales/Purchase Invoice. It limits transactions starting from the current date to the defined days ago. If the preference is not defined then queries retrieve all records created since one year ago (365 days), else it will be filtered by the count of days defined as the preference value.
      • Properties.png
      • if the Property List checkbox is not checked, the preference is configured as an attribute. An attribute is a free text attribute which can get whatever value.
      • Attributes.png
    • "ShowAuditDefault" attribute allows to enable the Audit Trail feature. Audit Trail feature allows to track every change done to any Openbravo table or entity.
    • "ShowAcct" attribute allows to show Post buttons and Accounting tab whenever its value is set to "Y".
    • "ForcedLinkWindowDBTableName" where "DBTableName" is the name of the table in data base.
      This attribute allows a direct navigation to the window which UUID is set as attribute value, instead of using the standard navigation logic.
    • "ModalModuleModuleJavaPackage" where "ModuleJavaPackage" is the name of the module's Java Package name or "ModalModuleModuleUUID" where Module UUID is the unique identifier of the module in the data base.
      This attribute defines whether the processes within a module invoked from a menu or a button or a tab are opened in browser popups (attribute value = "N") or in modal popus (attribute value ="Y").
      • Browser popus implies the deployment of the process in a new window in the browser
      • Modal popus implies the deployment of the process in another layer inside the application window.
      • "ModalProcessProcessUUID" where Process UUID is the UUID of the process.
        This attribute defines whether a give process is opened in modal popup (attribute value ="Y") or in browser popup (attribute value ="N").
        • This attribute has a higher preference than ModalModule one, therefore it is possible to define all processes in a module to open in modal popus but some of them
    • "SaveAttachmentsOldWay"
      This attribute defines whether attachments should be saved using the old attachment model. For more information on the attachments API refer here.

Preferences Visibility


Preference visibility section defines the levels where a preference is going to be used and therefore applied.
Preference levels can be set to a given value or left empty. If a level is left empty the preference will be valid for any value of that level. For instance, if user level is empty, any user will be able to see that preference. In case the same preference has values at different levels, the most specific one will then be used.
Available levels are:

  • Client - if this level is set to empty or to System, the preference will be visible from any client used to log in.
  • Organization - if this level is set to empty or to (*), the preference will be vissible from any organization used to log in.
  • User - if this level is set to a given user, only that user will be able to see that preference once logged in.
  • Role - if this level is set to a given role, only that role will be able to see that preference.
  • Window - if this level is set to a given window, only that window will be able to see that preference.

Preference Priority


Preference Priority section defines priority of multiple preferences defined for same Property
Preference Priority will be applied while loading the default Preferences of the Logged in Role.

  • Check Priority by Client (Visible at client) :
    • Undefined client visibility is handled as SYSTEM.
    • If pref1 or pref2 either of them which doesnt set to SYSTEM CLIENT will be considered.
    • If pref1 or pref2 both have value set and both not set to SYSTEM CLIENT then it will check Next Priority Level.
  • Check Priority by Organization (Visible at Organization) :
    • If pref1 or pref2 either of them which has value set will be considered.
    • If pref1 or pref2 both have value set then, It will check the depth of the value in Organization Tree and Highest Organization's Preferences will be Considered.
    • If pref1 or pref2 both have same value set then it will check Next Priority Level.
  • Check Priority by user (Visible at User) :
    • If pref1 or pref2 either of them which has value set will be considered.
    • If pref1 or pref2 both have value set then it will check Next Priority Level.
  • Check Priority by Role (Visible at Role) :
    • If pref1 or pref2 either of them which has value set will be considered.
    • If pref1 or pref2 both have value set then it will check Next Priority Level.
  • Check Priority by Window (Visible at Window) :
    • If pref1 or pref2 either of them which has value set will be considered.
    • If pref1 or pref2 both have value set then it will check Next Priority Level.
  • SAME PRIORITY:
    • If all the above levels are same then it will and will consider preference with column "selected"=true.

Preferences Values


When logging in Openbravo or changing the role or the organization, the preferences visible for that user, role, client, organization or window are stored in the Openbravo session. Those session values can be obtained by using the method: org.openbravo.erpCommon.utility.Utility.getContext method.

Additionally:

  • It is possible to look for the value of a given preference by using the method: org.openbravo.erpCommon.businessUtility.Preferences.getPreferenceValue.
    This method shows an exception in case:
    • a preference property has not a value defined for the required visibility level
    • or there is a conflict caused by the definition of more than one property values for the same preference property for a given visibility level

Conflicts can be manually resolved by checking and modifying the preference.


Full list of Preference window fields and their descriptions is available in the Preference Screen Reference.

Back button.png   Back to General Setup