Sunday, August 22, 2021

Custom.pll and Form Personalization precedence

1.What would be the precedence if both custom library and Forms Personalization have the same set of events?

Oracle Forms Libraries first invoke the Forms Personalization, and then call goes to the CUSTOM library for the same set of events. Forms personalization will override if the same set of events are passed as that of CUSTOM library.
The first call goes to Form personalization from Oracle Form libraries so the customization done using form personalization will be effective even if same set of events are available in custom library. So in this case custom library would not effective.

2.What is difference between Form personalization and custom library?

Form Personalization is an alternative way to do the same task as done in the custom library. Form Personalization has all the common used activities of CUSTOM library.
However form personalization has its own limitation, which does not allow achieving complex business logic's.
Limitations of Form Personalization:
Form Personalization allows you to respond to a Zoom event - it does not allow you to enable Zoom on a form. If you want to do that you must use CUSTOM library - custom.pll

Thursday, August 19, 2021

Barcode Font formatting in Oracle XML Publisher / BI Publisher

Before going to the barcode implementation in XML Publisher, let's understand what is a Barcode?

A barcode consists of bars and spaces of varying width that can be read with an optical barcode scanner. When we go to a supermarket or a convenient store, to bill a product we need to scan the barcode of the product using a barcode scanner and the billing systems identify the product based on the barcode. What if there are no barcodes? e need to manually enter the product name or product number in the system to identify the exact product and its price and if you are buying many items, it takes very long time to enter each product number or name. Hence the barcodes and barcode readers came to solve this problem.

What are the components of a barcode?

As shown in the barcode components link, in general, there are 4 components to a barcode.

  1. Quiet Zone - Blank Margin located on either sides of barcode
  2. Start / Stop Characters - Represents the start and end of data
  3. Data - The actual data for which the barcode is generated
  4. Check Digit - Digit for checking if the encoded barcode data is correct

Now that we have seen the components of a barcode, the next thing is how do we convert the data into barcode format?

There are font encoders that reads the data and converts them into barcode format. Font encoder is the code (for simplicity, let's assume it as a java class) that reads the data and encodes it i.e. add start/stop characters and check digit. Usually the barcode font encoders i.e. java classes are provided by the barcode vendors.

Since barcodes are such an import functionality, XML Publisher also offers the ability to display data in barcode fonts in the report output.

Now let's see how to implement this barcode font formatting in XML Publisher.

The implementation requires 4 steps:

  1. Define Barcode Font Mapping (In this post, I am showing the steps for IDAutomationC128M Barcode font family which is of code128a barcode type.
  2. Place the encoding class file in the application server that can be used by XML Publisher at runtime to carry out the encoding at runtime
  3. In the form field of a template 
    1. register barcode encoding class - <?register-barcode-vendor:'java_class_name';'barcode_vendor_id'?>
    2. encode data - <?format-barcode:data;'barcodetype';'barcode_vendor_id'?> 
  4. Provide the font mapping defined in step1 under template configuration.
Define Barcode Font:
Navigation: XML Publisher Administration > Home > Administration

Click on Font Mappings > Create Font Mapping set











Place the encoding java class file in Application Server.


Tags to be added in the form field of template

<?register-barcode-vendor:'oracle.apps.xdo.template.rtf.util.BarcodeUtil';'XMLPBarVendor'?><?format-barcode:ORDER_NUMBER;'code128a';'XMLPBarVendor'?>

Once we complete the above steps, whenever XML publisher see the format-barcode tag, it will encode the data by using the encoding method (code128a in this case) in the class file that we mentioned in the register-barcode tag and generates the barcode format.








Note: As shown in the below screenshot, the language and territory of the template file should be same as that of the font mapping set. If they don't match, then XML Publisher will not encode the data into barcode format.





Wednesday, August 18, 2021

Mirror Items / Synchronized Items in Oracle Forms

In Oracle Forms, Mirror items or Synchronized items are achieved through the property called "Synchronize with Item property Description" and below are the property details

Synchronize with Item property Description

Specifies the name of the item from which the current item should derive its value. Setting this property synchronizes the values of the two items, so that they effectively mirror each other. When the end user or the application changes the value of either item, the value of the other item also changes.

Applies to all items except OLE containers Set Form Builder

Required/Optional: Optional 

Default: NULL

Usage Notes:

  • In earlier releases, this property was called the Mirror Item property
  • You can set Synchronize with Item for base table or control blocks. When Synchronize with Item is specified, the current item’s Base Table Item property is ignored, and the item derives its value from the mirror item specified, rather than from a column in the database.
  • If you use the GET_ITEM_PROPERTY built-in to obtain a Base Table Item property, it will obtain the value from the mirror item specified.
  • You can use mirror item to create more than one item in a block that display the same database column value. Synchronize with Item restrictions
  • The maximum number of items in a form that can point to the same mirror item is 100.



Wednesday, August 4, 2021

UNIX

Oracle Support Notes

FNDLOAD Commands

Download Concurrent Program LDT file
====================================
FNDLOAD apps/<apps_pwd> O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct <filename>.ldt PROGRAM APPLICATION_SHORT_NAME="<conc_prog_appl_short_name" CONCURRENT_PROGRAM_NAME="<conc_prog_short_name>"


Download Lookup LDT file
========================
FNDLOAD apps/<apps_pwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct <filename>.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME = "lookup_appl_short_name" LOOKUP_TYPE="<lookup_type"


Download LDT file to attach concurrent program to request group
===============================================================
FNDLOAD apps/<apps_pwd> O Y DOWNLOAD $FND_TOP/patch/115/import/afcpreqg.lct <filename>.ldt REQUEST_GROUP REQUEST_GROUP_NAME="request_group_code" APPLICATION_SHORT_NAME="request_group_appl_short_name" REQUEST_GROUP_UNIT UNIT_NAME="conc_prog_short_name"


Download Value set LDT file
===========================
$FND_TOP/bin/FNDLOAD apps/<apps_pwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct <filename>.ldt VALUE_SET FLEX_VALUE_SET_NAME="<value_set_name>"

Download Request Set and its Links files
========================================
FNDLOAD apps/<apps_pwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct <filename>.ldt REQ_SET REQUEST_SET_NAME = "<request_set_code>"

FNDLOAD apps/<apps_pwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct <file_name>.ldt REQ_SET_LINKS REQUEST_SET_NAME = "request_set_code"

Download WebADI LDT file
========================
$FND_TOP/bin/FNDLOAD apps/<apps_pwd> 0 Y DOWNLOAD $BNE_TOP/patch/115/import/bneintegrator.lct <file_name>.ldt BNE_INTEGRATORS INTEGRATOR_ASN="<integrator_appl_short_name" INTEGRATOR_CODE="integrator_short_code"

Download Alerts LDT file
========================
FNDLOAD apps/<apps_pwd 0 Y DOWNLOAD $ALR_TOP/patch/115/import/alr.lct <file_name>.ldt ALR_ALERTS APPLICATION_SHORT_NAME="alert_appl_short_name" ALERT_NAME="<alert_name>"

SQL Queries

Thursday, July 15, 2021

How to know the version of a Form in Oracle Apps?

 We can know the version of a Form in 2 methods.

Method1: 

Login to application and open the form for which we want to know the version.

Go to Help > About Oracle Applications as shown below








Scroll down to the Current Form section to get the current form version.







Method 2:

Login to UNIX server and go to forms top i.e. $AU_TOP/forms/US and execute the below command

adident Header formname.fmb

Ex: adident Header OEXOEORD.fmb




Monday, July 5, 2021

How to know/check 802.11 radio types supported by your laptop?

  Press Windows R to open the Run prompt.

  Enter cmd as shown below and hit Ok button.


  Now, enter the command netsh wlan show drivers and hit enter.





Tuesday, June 29, 2021

How to know current Oracle EBS login password?

 CREATE OR REPLACE FUNCTION XXFND_USER_PASS_DECRYPT(KEY   IN VARCHAR2,

                                                   VALUE IN VARCHAR2)

  RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';


After creating the above function, we can use the below query to get the current password.

SELECT USR.USER_NAME,

       XXFND_USER_PASS_DECRYPT((SELECT (SELECT XXFND_USER_PASS_DECRYPT(FND_WEB_SEC.GET_GUEST_USERNAME_PWD,                                                                     USERTABLE.ENCRYPTED_FOUNDATION_PASSWORD)

                                         FROM DUAL) AS APPS_PASSWORD

                                 FROM FND_USER USERTABLE

                                WHERE USERTABLE.USER_NAME =

                                      (SELECT SUBSTR(FND_WEB_SEC.GET_GUEST_USERNAME_PWD,

                                                     1,

                                                     INSTR(FND_WEB_SEC.GET_GUEST_USERNAME_PWD,

                                                           '/') - 1)

                                         FROM DUAL)),

                               USR.ENCRYPTED_USER_PASSWORD) PASSWORD

  FROM FND_USER USR

 WHERE USR.USER_NAME = 'USERNAME'; 

Monday, June 28, 2021

Role Based Access Control (RBAC)

 











Microsoft Excel

CNTL+SHIFT+ DOWN ARROW > Highlight all the cells in the column from current cell till the first empty cell

CNTL+SHIFT+ LEFT ARROW > Highlight all the cells in the row from current cell till the first empty cell

To use absolute referencing for any column in a formula, prefix the cell number of that column with a $ sign.