Friday 30 August 2013

Form Personalization in Oracle Apps

Form Personalization in Oracle Apps

Form Personalization

Oracle has provided a simple and easy feature to implement the customer specific requirements without modifying the underlying forms code or CUSTOM library. Although CUSTOM library still can be used for forms customization to implement the complex business logic, the personalization feature provided in the latest release is easy, faster and requires minimum development effort.
If user needs to personalize any details in a form like changing field names, adding some validations, etc, then Form Personalization can provide the way out in few simple steps.

Please follow here to go through Steps with example

Steps:

Step – 1:

Go to the specific form where you need the changes

Then we need to note down the block and field name which is needed in next steps.
So keep the cursor on the required field and then Go to Help --> Diagnostics --> Examine


Note down the Block and Field value.

Step -2:

Now the step to do the personalization
Follow this navigation
Help à Diagnostics à Custom Code à Personalize

This will show the Form Personalization window

Here you need to do the customization as per the requirement.
As you can see in this form, there are mainly 4 sections
1.       Rule
2.       Condition
3.       Actions
4.       Context

Step – 3:

Rule:

This is the section where you need to create the rules how your requirement is going to be executed. This section contains 4 segments, Seq, description, Level and Enabled flag.
Seq : Need to give the Sequence how the rule will execute (a number)
Description: Write a sort description of the rule which you are going to create
Level: Select the level where you want the rule to execute
Enabled: This is the flag which will enable or disable the rule.

Example:

Step – 4:

Condition:

Now need to set the condition.
This is the section where you will define when the rule will be executed.
This section contains 4 segments, Trigger Event, Trigger Object, Condition and Processing mode.

Trigger Event: This specifies where the rule will be executed. There are mainly 5 types of event which decided the trigger of the rule.

Trigger Object:  This is the Object in the form which decides at what level the rule will be executed.
The values can be “<Form Name>”, ‘<Block Name>” or “<Item Name>”
Condition: Here mention any SQL statement to control the execution of the rule when the mentioned criterion is met.
Processing Mode: This is the mode where you want the rules to be executed.

Example:

Step – 5:

Actions:

This decides what will happen when the rule will execute.
This contains 2 sections.
Left sections contains Seq, Type, Description, Language, Enabled
Seq: Mention the Action sequence which this rule will execute
Type: This is of 4 types, Property, Message, Builtin, Menu.
This decides which type of action, the rule will perform.
According to this the right section will come and need to fill the detailed actions.
Description: Write a description on the action which this will perform.
Language: Select the language
Enabled: You can enable or disable the actions here.
Right Section is a dynamic section; it appears depending on the Type field value in Left section.

Action Types:

Property
The action type “Property” is used to set the properties of the objects. The various objects include
“Item, Window, and Block etc.”.  Actual object name defined in the form should be entered after selecting the object type.
Property Name is the property to be changed
Value is the new desired value for the property.
The current value of the property will be displayed when clicked on the “Get Value” button.
Example:
Object Type = “Item”
Target Object = “:ORDER.ORDER_NUMBER”
Property Name = “PROMPT_TEXT”
Value = “Claim Number”
The value is interpreted at runtime, so you can use SQL functions and operators. Any value started with “=” operator will be interpreted at runtime; otherwise the value is treated as is entered in the value field


Message:
The action type “Message” is used to display custom messages during runtime. Message Type and Description should be entered after selecting the action type as “Message”. The available message types are “Error, Warning, Hint, Question and Debug”. Depending on the response expected from the user, the appropriate message type should be selected.
Example:
Message Type = “Hint”
Message Text = “Please Follow the Date format DD-MON-YYYY”


Builtin:
The action type “Builtin” is used to execute the form and AOL API’s. Depending on the API type selected, the parameters should be entered.
Example:
Builtin Type = FND_UTILITIES.OPEN_URL
Argument = http://www.oracle.com


Menu:
The action type “Menu” is used to activate the available special menus on the Tools menu.
Oracle Applications provide 45 special menus under Tools menu which can be used by customers based on their requirements.
Select the SPECIAL menu which is not used by the form. Menu label is the prompt which appears to the users when Tools menu is invoked, block specifies the blocks for which the special menu should be activated and Icon name is the .ico file name.
A separator can be created above the activated special menu by selecting the “Render line before menu” checkbox.
Example:
Menu Entry = SPECIAL4
Menu Label = Additional Order Header Information
Enabled in Blocks(s) = ORDER
Icon Name = Flower.ico


Step – 6:

Context:

Context manages to whom the personalization should apply. This is similar to the concept of using profile options in Oracle Applications. The various levels are Site, Responsibility, Industry and User. During runtime, the values provided in the context are evaluated and personalization rules will be applied. Usage of context is very vital in implementing the personalization to prevent the inappropriate users accessing these customizations of the form.
Example:
Context = Responsibility
Value = Order Management Super User



Step by Step Analysis

Requirement: Don’t allow the user to use more than 1 qty in Order line Qty field during creation of a sales order.

Solution:

Step -1:
Go to the specific form where you need the changes
Here in this case this will be the Sales Orders form and then Line Items tab.


Then we need to note down the block and field name which is needed in next steps.
So keep the cursor on the required field and then Go to Help à Diagnostics à Examine


Note down the Block and Field value.
Step -2:

Help --> Diagnostics --> Custom Code --> Personalize

Step – 3:
Fill the Rule section

Step – 4:
Fill the Condition section

Step – 5:
Fill the Actions section

Step – 6:
Fill the context As you need.
Save this.
Log out of the application and login again, then in Sales Order line item tab enter Qty field value as 1 and try to save, you can see the message.

Wednesday 14 August 2013

JOIN CONDITIONS USED IN ORACLE APPS(GL,AP,AR,INV ETC)



KEY JOINS

GL AND AP
GL_CODE_COMBINATIONS AP_INVOICES_ALL
code_combination_id = acct_pay_code_combination_id
GL_CODE_COMBINATIONS AP_INVOICES_DISTRIBUTIONS_ALL
code_combination_id = dist_code_combination_id
GL_SETS_OF_BOOKS AP_INVOICES_ALL
set_of_books_id = set_of_books_id

GL AND AR
GL_CODE_COMBINATIONS RA_CUST_TRX_LINE__GL_DIST_ALL
code_combination_id = code_combination_id

GL AND INV
GL_CODE_COMBINATIONS MTL_SYSTEM_ITEMS_B
code_combination_id = cost_of_sales_account


GL AND PO
GL_CODE_COMBINATIONS PO_DISTRIBUTIONS_ALL
code_combination_id = code_combination_id


PO AND AP
PO_DISTRIBUTIONS_ALL AP_INVOICE_DISTRIBUTIONS_ALL
Po_distribution_id = po_distribution_id

PO_VENDORS AP_INVOICES_ALL
vendor_id = vendor_id

PO AND SHIPMENTS
PO_HEADERS_ALL RCV_TRANSACTIONS
Po_header_id = po_header_id

PO_DISTRIBUTIONS_ALL RCV_TRANSACTIONS
Po_distribution_id = po_distribution_id

SHIPMENTS AND INVOICE
RCV_TRANSACTIONS AP_INVOICE_DISTRIBUTIONS_ALL
RCV_TRANSACTION_ID = RCV_TRANSACTION_ID


PO AND INV
PO_REQUISITION_LINES_ALL MTL_SYSTEM_ITEMS_B
item_id = inventory_item_id
org_id = organization_id

PO AND HRMS
PO_HEADERS_ALL HR_EMPLOYEES
Agent_id = employee_id

PO AND REQUISITION
PO_DISTRIBUTIONS_ALL PO_REQ_DISTRIBUTIONS_ALL
req_distribution_id = distribution_id


SHIPMENTS AND INV
RCV_TRANSACTIONS MTL_SYSTEM_ITEMS_B
Organization_id = organization_id

INV AND HRMS
MTL_SYSTEM_ITEMS_B HR_EMPLOYEES
buyer_id = employee_id

OM AND AR
OE_ORDER_HEADERS_ALL RA_CUSTOMER_TRX_LINES_ALL
TO_CHAR( Order_number) = interface_line_attribute1
OE_ORDER_LINES_ALL RA_CUSTOMER_TRX_LINES_ALL
TO_CHAR(Line_id) = interface_line_attribute6

OE_ORDER_LINES_ALL RA_CUSTOMER_TRX_LINES_ALL
reference_customer_trx_line_id = customer_trx_line_id

OM AND SHIPPING
OE_ORDER_HEADERS_ALL WSH_DELIVARY_DETAILS

HEADER_ID = SOURCE_HEADER_ID

OE_ORDER_HEADERS_ALL WSH_DELIVARY_DETAILS
LINE_ID = SOURCE_LINE_ID
AP AND AR (BANKS)
AR_CASH_RECEIPTS_ALL AP_BANK_ACCOUNTS
REMITTANCE_BANK_ACCOUNT_ID = ABA.BANK_ACCOUNT_ID
AP AND AR
HZ_PARTIES AP_INVOICES_ALL

PARTY_ID = PARTY_ID

OM AND CRM
OE_ORDER_LINES_ALL CSI_ITEM_INSTANCES(Install Base)

LINE_ID = LAST_OE_ORDER_LINE_ID
Table Name: Po_Requisition_Headers_All A
Column Names Table Name Column Name
A. REQUISITION_HEADER_ID PO_REQUISITION_LINES_ALL REQUISITION_HEADER_ID
A. TYPE_LOOKUP_CODE PO_DOCUMENT_TYPES DOCUMENT_SUBTYPE
A. PREPARER_ID PER_PEOPLE_F PERSON_ID
A. ORG_ID MTL_SYSTEM_ITEMS ORGANIZATION_ID
A. ORG_ID MTL_ORGANIZATIONS ORGANIZATION_ID
Table Name: Po_Requisition_Lines_All B
Column Names Table Name Column Name
B .REQUISITION_HEADER_ID PO_REQUISITION_HEADERS_ALL REQUISITION_HEADER_ID
B .REQUISITION_LINE_ID PO_REQ_DISTRIBUTIONS_ALL REQUISITION_LINE_ID
B .LINE_TYPE_ID PO_LINE_TYPES LINE_TYPE_ID
B .ITEM_ID MTL_SYSTEM_ITEMS INVENTORY_ITEM_ID
B .ORG_ID MTL_SYSTEM_ITEMS ORGANIZATION_ID
Table Name: Po_Requisition_Distributions_All C .
Column Names Table Name Column Name
C .REQUISITION_LINE_ID PO_REQUISITION_LINES_ALL REQUISITION_LINE_ID
C .DISTRIBUTION_ID PO_DISTRIBUTIONS_ALL REQ_DISTRIBUTION_ID
C .SET_OF_BOOKS_ID GL_SETS_OF_BOOKS SET_OF_BOOKS_ID
C .CODE_COMBINATION_ID GL_CODE-COMBINATIONS CODE_COMBINATION_ID
Table Name: Po_Distributions_All D .
Column Names Table Name Column Name
D .PO_LINE_ID PO_LINES PO_LINE_ID
D .REQ_DISTRIBUTION_ID PO_REQ_DISTRIBUTIONS_ALL DISTRIBUTION_ID
D .PO_DISTRIBUTION_ID AP_INVOICE_DISTRIBUTIONS_ALL PO_DISTRIBUTION_ID
Table Name: Po_Headers_All E .
Column Names Table Name Column Name
E .PO_HEADER_ID PO_LINES PO_HEADER_ID
E .PO_HEADER_ID RCV_SHIPMENT_LINES PO_HEADER_ID
E .VENDOR_ID PO_VENDORS VENDOR_ID
E .AGENT_ID PER_PEOPLE PERSON_ID
E .TYPE_LOOK_UP_CODE PO_DOCUMENT_TYPES DOCUMENT_SUBTYPE
Table Name: Po_Lines_All F.
Column Names Table Name Column Name
F.PO_HEADER_ID PO_HEADERS PO_HEADER_ID
F.PO_LINE_ID PO_DISTRIBUTIONS_ALL PO_LINE_ID
F.ITEM_ID MTL_SYSTEM_ITEMS ITEM_ID
Table Name: Rcv_Shipment_Lines G.
Column Names Table Name Column Name
G.PO_HEADER_ID PO_HEADERS PO_HEADER_ID
G.SHIPMENT_HEADER_ID RCV_SHIPMENT_HEADERS SHIPMENT_HEADER_ID
Table Name: Ap_Invoices_All H.
Column Names Table Name Column Name
H. INVOICE_ID AP_INVOICE_DISTRIBUTIONS_ALL INVOICE_ID
Table Name: Oe_Order_Headers_All I.
Column Names Table Name Column Name
I.HEADER_ID OE_ORDER_LINES HEADER_ID
I.SOURCE_HEADER_ID WISH_DELIVERY_DETAILS SOURCE_HEADER_ID
I.PRICE_LIST_ID QP_LIST_HEADERS_TL LIST_HEADER_ID
I.ORG_ID MTL_ORGANIZATIONS ORGANIZATION_ID
I.SALESREP_ID JTF_RS_SALESREPS SALESREP_ID
I.ORDER_TYPE_ID OE_TRANSACTION_TYPES TRANSACTION_TYPE_ID
I.ORDER_SOURCE_ID OE_ORDER_SOURCES ORDER_SOURCE_ID
I.ACCOUNTING_RULE_ID RA_RULES RULE_ID
I.PAYMENT_TERM_ID RA_TERMS TERM_ID
I.SOLD_TO_ORG_ID HZ_CUST_ACCOUNTS CUST_ACCOUNT_ID
I.SHIP_FROM_ORG_ID MTL_PARAMETERS ORGANIZATION_ID
I.SHIP_TO_ORG_ID HZ_CUST_SITE_USES_ALL SITE_USE_ID
Table Name: Oe_Order_Lines_All J.
Column Names Table Name Column Name
J.LINE_TYPE_ID OE_TRANSACTION_TYPES_TL TRANSACTION_TYPE_ID
J.INVOICING_RULE_ID RA_RULES RULE_ID
Table Name: Hz_Parties K.
Column Names Table Name Column Name
K.PATY_ID HZ_CUST_ACCOUNTS PATY_ID
K.CUST_ACCOUNT_ID OE_ORDER_LINES SOLD_TO_ORG_ID
Table Name: Hz_Party_Sites_All L.
Column Names Table Name Column Name
L.PATY_ID HZ_PARTIES PATY_ID
L. LOCATION_ID HZ_LOCATIONS LOCATION_ID
Table Name: Wsh_delivery_details M.
Column Names Table Name Column Name
M.SOURCE_HEADER_ID OE_ORDER_HEADERS SOURCE_HEADER_ID
M.DELIVERY_DETAIL_ID WSH_DELIVERY_ASSIGNMENTS DELIVERY_DETAIL_ID
M.DELIVERY_ID WSH_NEW_DELIVERIES DELIVERY_ID
M.INVENTORY_ITEM_ID MTL_SYSTEM_ITEMS INVENTORY_ITEM_ID
Table Name: RA_CUSTOMER_TRX_ALL N.
Column Names Table Name Column Name
N.CUSTOMER_TRX_ID AR_RECEIVABLE_APPLICATIONS_ALL APPLIED_CUSTOMER_TRX_ID
N.TERM_ID RA_TERMS TERM_ID
N.CUSTOMER_TRX_ID RA_CUST_TRX_LINE_GL_DIST CUSTOMER_TRX_ID
Table Name: AR_CASH_REC EIPTS_ALL O.
Column Names Table Name Column Name
O.CASH_RECEIPT_ID AR_RECEIVABLE_APPLICATIONS_ALL CASH_RECEIPT_ID
O.SET_OF_BOOKS_ID GL_SETS_OF_BOOKS SET_OF_BOOKS_ID

ORDER MANAGEMENT TABLES

Entered
oe_order_headers_all 1 record created in header table
oe_order_lines_all Lines for particular records
oe_price_adjustments When discount gets applied
oe_order_price_attribs If line has price attributes then populated
oe_order_holds_all If any hold applied for order like credit check etc.
Booked
oe_order_headers_all Booked_flag=Y Order booked.
wsh_delivery_details Released_status Ready to release
Pick Released
wsh_delivery_details Released_status=Y Released to Warehouse (Line has been released to Inventory for processing)
wsh_picking_batches After batch is created for pick release.
mtl_reservations This is only soft reservations. No physical movement of stock
Full Transaction
mtl_material_transactions No records in mtl_material_transactions
mtl_txn_request_headers
mtl_txn_request_lines
wsh_delivery_details Released to warehouse.
wsh_new_deliveries if Auto-Create is Yes then data populated.
wsh_delivery_assignments deliveries get assigned
Pick Confirmed
wsh_delivery_details Released_status=Y Hard Reservations. Picked the stock. Physical movement of stock
Ship Confirmed
wsh_delivery_details Released_status=C Y To C:Shipped ;Delivery Note get printed Delivery assigned to trip stopquantity will be decreased from staged
mtl_material_transactions On the ship confirm form, check Ship all box
wsh_new_deliveries If Defer Interface is checked I.e its deferred then OM & inventory not updated. If Defer Interface is not checked.: Shipped
oe_order_lines_all Shipped_quantity get populated.
wsh_delivery_legs 1 leg is called as 1 trip.1 Pickup & drop up stop for each trip.
oe_order_headers_all If all the lines get shipped then only flag N
Autoinvoice
wsh_delivery_details Released_status=I Need to run workflow background process.
ra_interface_lines_all Data will be populated after wkfw process.
ra_customer_trx_all After running Autoinvoice Master Program for
ra_customer_trx_lines_all specific batch transaction tables get populated
Price Details
qp_list_headers_b To Get Item Price Details.
qp_list_lines
Items On Hand Qty
mtl_onhand_quantities TO check On Hand Qty Items.
Payment Terms
ra_terms Payment terms
AutoMatic Numbering System
ar_system_parametes_all you can chk Automactic Numbering is enabled/disabled.
Customer Information
hz_parties Get Customer information include name,contacts,Address and Phone
hz_party_sites
hz_locations
hz_cust_accounts
hz_cust_account_sites_all
hz_cust_site_uses_all
ra_customers
Document Sequence
fnd_document_sequences Document Sequence Numbers
fnd_doc_sequence_categories
fnd_doc_sequence_assignments
Default rules for Price List
oe_def_attr_def_rules Price List Default Rules
oe_def_attr_condns
ak_object_attributes
End User Details
csi_t_party_details To capture End user Details
Sales Credit Sales Credit Information(How much credit can get)
oe_sales_credits

Attaching Documents
fnd_attached_documents Attched Documents and Text information
fnd_documents_tl
fnd_documents_short_text
Blanket Sales Order
oe_blanket_headers_all Blanket Sales Order Information.
oe_blanket_lines_all

Processing Constraints
oe_pc_assignments Sales order Shipment schedule Processing Constratins
oe_pc_exclusions
Sales Order Holds
oe_hold_definitions Order Hold and Managing Details.
oe_hold_authorizations
oe_hold_sources_all
oe_order_holds_all
Hold Relaese
oe_hold_releases_all Hold released Sales Order.
Credit Chk Details
oe_credit_check_rules To get the Credit Check Againt Customer.
Cancel Orders
oe_order_lines_all Cancel Order Details.

IMPORTANT APPS TABLES

PO Modules:
1. Po_requisition_headers_all -- Req. Header Info
2. Po_requisition_lines_all -- Req. Lines Info
3. Po_req_distributions_all -- Req.Distributions Info
4. PO_HEADERS_ALL -- PO Header Information
5. PO_LINES_AL -- PO Line Information
6. PO_LINE_LOCATIONS_ALL -- PO Line Shipment Info
7. PO_DISTRIBUTIONS_ALL -- PO Accounting Info
8. rcv_shipment_headers -- Receipt Header Info
9. rcv_shipment_lines -- Receipt Line Info
10. rcv_transactions -- Receipt Transactions
11. rcv_routing_headers -- Receipt Routing info
12. po_vendors -- Supplier Header
13. po_vendor_sites_all -- supplier site level info
14. po_vendor_contacts -- Supplier Contacts Info
15. hr_locations -- Supplier Physical address info

Order Management Tables
1. oe_order_headers_all -- Order Header info
2. oe_order_lines_all -- order line info
3. oe_transaction_types_tl -- Order Type
4. hz_cust_accounts -- Customer Info
5. hz_parties -- Party Info
6. hz_cust_site_uses_all -- Customer site info
7. hz_cust_acct_sites_all -- Customer acct
8. hz_party_sites -- customer site level info
9. hz_locations -- Customer Phsyical Location
10.ra_sales_reps_all -- Sales Reps
11.Qp_list_headers_tl -- Pricing info
12.wsh_delivery_detials -- Shipping DElivery details
13.wsh_delivery_assignments --shipping deliver assignments
14.wsh_new_deliveries -- Delivery Header info
15.oe_order_holds -- order hold info
16.oe_hold_sources_all -- hold source
17.oe_hold_releases_ll -- hold releases
18.oe_hold_definitions

General Ledger (GL)
1.gl_je_batches -- Journal Batches
2.gl_je_headers -- Journal Header
3.gl_je_lines -- Jounral Lines
4.gl_je_sources -- Journal Sources
5.gl_je_categories -- Journal Categories
6.gl_code_combinations -- Accounting Info
7.gl_balances -- Journal Balances
8.gl_sets_of_books -- Set of books info
Accounts Payables (AP)

1. ap_invoices_all --- Invoice Header info
2. ap_invoice_distributions_all -- Invoice Line info
3. ap_invoice_payments_All -- Invoice Payment Info
4. ap_payment_schedules_all
5. ap_checks_all -- Check Info
6. ap_banks
7. ap_bank_branches -- bank branches
8. ap_ae_headers_all -- accounting header info
9. ap_ae_lines_all -- accounting lines info
10.ap_Accounting_events_all -- accounting event info
11. po_vendors -- Supplier Header
12. po_vendor_sites_all -- supplier site level info
13. po_vendor_contacts -- Supplier Contacts Info
14. hr_locations -- Supplier Physicaal info

Accounts Receivables (AR)

1. ra_customer_trx_all -- transaction header info
2. ra_customer_trx_lines_all -- transaction lines
3. ra_cust_trx_line_gl_dist_all -- transaction acct info
4. ar_cash_receipts_all -- receipt info
5. ar_receivable_applications_all
6. hz_cust_accounts -- Customer Info
7. hz_parties -- Party Info
8. hz_cust_site_uses_all -- Customer site info
9. hz_cust_acct_sites_all -- Customer acct
10.hz_party_sites -- customer site level info
11.hz_locations -- Customer Phsyical Location
12.ra_cust_trx_types_all -- Transaction Types

General Ledger (GL)

1.gl_je_batches -- Journal Batches
2.gl_je_headers -- Journal Header
3.gl_je_lines -- Jounral Lines
4.gl_je_sources -- Journal Sources
5.gl_je_categories -- Journal Categories
6.gl_code_combinations -- Accounting Info
7.gl_balances -- Journal Balances
8.gl_sets_of_books -- Set of books info
9.gl_charts_of_accounts -- Chart of accounts info



Inventory (Inv)

1.mtl_system_items_b -- item info
2.mtl_onhand_quantities -- Item onhand qty
3.mtl_reservations -- Item Reservations
4.mtl_material_transactions -- Inventory Transaction
5.mtl_txn_request_headers -- Move Order Header Info
6.mtl_txn_request_lines -- Move order line info
7.mtl_item_locations -- Item Physical Locations
8.org_organization_definitions -- Organization info
9.mtl_categories_b -- Item Categories info
10.mtl_transaction_accounts -- Item Tranaction acct
11.mtl_txn_source_types -- Transaction Sources
12.mtl_secondary+inventories -- Subinventory info