Anda di halaman 1dari 51

Quries on Oracle Purchasing

Muhammad Rafi Aamiri Madani on Saturday, March 14, 2009

CANCEL REQUISITIONS SELECT ,prh.REQUISITION_HEADER_ID ,prh.PREPARER_ID ,prh.SEGMENT1 "REQ NUM" ,trunc(prh.CREATION_DATE) ,prh.DESCRIPTION ,prh.NOTE_TO_AUTHORIZER FROM ,apps.Po_Requisition_headers_all prh ,apps.po_action_history pah WHERE action_code='CANCEL' and pah.object_type_code='REQUISITION' and pah.object_id=prh.REQUISITION_HEADER_ID -----------------------------------------------------------------------------------------------------------INTERNAL REQUISITIONS THAT DO NOT HAVE AN ASSOCIATED INTERNAL SALES ORDER SELECT ,RQH.SEGMENT1 ,RQL.LINE_NUM ,RQL.REQUISITION_HEADER_ID ,RQL.REQUISITION_LINE_ID ,RQL.ITEM_ID ,RQL.UNIT_MEAS_LOOKUP_CODE ,RQL.UNIT_PRICE ,RQL.QUANTITY ,RQL.QUANTITY_CANCELLED ,RQL.QUANTITY_DELIVERED ,RQL.CANCEL_FLAG ,RQL.SOURCE_TYPE_CODE ,RQL.SOURCE_ORGANIZATION_ID ,RQL.DESTINATION_ORGANIZATION_ID

,RQH.TRANSFERRED_TO_OE_FLAG FROM ,PO_REQUISITION_LINES_ALL RQL ,PO_REQUISITION_HEADERS_ALL RQH WHERE RQL.REQUISITION_HEADER_ID = RQH.REQUISITION_HEADER_ID and RQL.SOURCE_TYPE_CODE = 'INVENTORY' and RQL.SOURCE_ORGANIZATION_ID is not null and not exists (select 'existing internal order'from OE_ORDER_LINES_ALL LIN where LIN.SOURCE_DOCUMENT_LINE_ID = RQL.REQUISITION_LINE_ID and LIN.SOURCE_DOCUMENT_TYPE_ID = 10) ORDER BY RQH.REQUISITION_HEADER_ID, RQL.LINE_NUM -----------------------------------------------------------------------------------------------------------DISPLAY WHAT REQUISITION AND PO ARE LINKED (Relation with Requisition and PO ) SELECT ,r.segment1 "Req Num" ,p.segment1 "PO Num" from ,po_headers_all p ,po_distributions_all d ,po_req_distributions_all rd ,po_requisition_lines_all rl ,po_requisition_headers_all r WHERE p.po_header_id = d.po_header_id and d.req_distribution_id = rd.distribution_id and rd.requisition_line_id = rl.requisition_line_id and rl.requisition_header_id = r.requisition_header_id -----------------------------------------------------------------------------------------------------------PURCHASE REQUISITION WITHOUT PO THAT MEANS A PR HAS NOT BEEN AUTOCREATED TO PO (Purchase Requisition without a Purchase Order) SELECT ,prh.segment1 "PR NUM" ,trunc(prh.creation_date) "CREATED ON" ,trunc(prl.creation_date) "Line Creation Date" ,prl.line_num "Seq #" ,msi.segment1 "Item Num" ,prl.item_description "Description"

,prl.quantity "Qty" ,trunc(prl.need_by_date) "Required By" ,ppf1.full_name "REQUESTOR" ,ppf2.agent_name "BUYER" FROM ,po.po_requisition_headers_all prh ,po.po_requisition_lines_all prl ,apps.per_people_f ppf1 ,(select distinct agent_id,agent_name from apps.po_agents_v ) ppf2 ,po.po_req_distributions_all prd ,inv.mtl_system_items_b msi ,po.po_line_locations_all pll ,po.po_lines_all pl ,po.po_headers_all ph WHERE prh.requisition_header_id = prl.requisition_header_id and prl.requisition_line_id = prd.requisition_line_id and ppf1.person_id = prh.preparer_id and prh.creation_date between ppf1.effective_start_date and ppf1.effective_end_date and ppf2.agent_id(+) = msi.buyer_id and msi.inventory_item_id = prl.item_id and msi.organization_id = prl.destination_organization_id and pll.line_location_id(+) = prl.line_location_id and pll.po_header_id = ph.po_header_id(+) and pll.pl_line_id = pl.po_line_id(+) and prh.authorization_status = 'APPROVED' and pll.line_location_id is NULL and prl.closed_code is NULL and nvl(prl.cancel_flag,'N') <> 'Y' ORDER BY 1,2 -----------------------------------------------------------------------------------------------------------INFORMATION FROM PR to PO (Requisition moved from different stages till converting into PR) SELECT DISTINCT ,u.description "Requestor" ,porh.segment1 as "Req Number" ,trunc(porh.Creation_Date) "Created On" ,pord.LAST_UPDATED_BY ,porh.Authorization_Status "Status" ,porh.Description "Description"

,poh.segment1 "PO Number" ,trunc(poh.Creation_date) "PO Creation Date" ,poh.AUTHORIZATION_STATUS "PO Status" ,trunc(poh.Approved_Date) "Approved Date" FROM ,apps.po_headers_all poh ,apps.po_distributions_all pod ,apps.po_req_distributions_all pord ,apps.po_requisition_lines_all porl ,apps.po_requisition_headers_all porh ,apps.fnd_user u WHERE porh.requisition_header_id = porl.requisition_header_id and porl.requisition_line_id = pord.requisition_line_id and pord.distribution_id = pod.req_distribution_id(+) and pod.po_header_id = poh.po_header_id(+) and porh.created_by = u.user_id order by 2 -----------------------------------------------------------------------------------------------------------POs WHICH DOES NOT HAVE ANY PRs SELECT ,prh.segment1 "PR NUM" ,trunc(prh.creation_date) "CREATED ON" ,trunc(prl.creation_date) "Line Creation Date" ,prl.line_num "Seq #" ,msi.segment1 "Item Num" ,prl.item_description "Description" ,prl.quantity "Qty" ,trunc(prl.need_by_date) "Required By" ,ppf1.full_name "REQUESTOR" ,ppf2.agent_name "BUYER" FROM ,po.po_requisition_headers_all prh ,po.po_requisition_lines_all prl ,apps.per_people_f ppf1 ,(select distinct agent_id,agent_name from apps.po_agents_v ) ppf2 ,po.po_req_distributions_all prd ,inv.mtl_system_items_b msi ,po.po_line_locations_all pll ,po.po_lines_all pl ,po.po_headers_all ph

WHERE prh.requisition_header_id = prl.requisition_header_id and prl.requisition_line_id = prd.requisition_line_id and ppf1.person_id = prh.preparer_id and prh.creation_date between ppf1.effective_start_date and ppf1.effective_end_date and ppf2.agent_id(+) = msi.buyer_id and msi.inventory_item_id = prl.item_id and msi.organization_id = prl.destination_organization_id and pll.line_location_id(+) = prl.line_location_id and pll.po_header_id = ph.po_header_id(+) and pll.po_line_id = pl.po_line_id(+) and prh.authorization_status = 'APPROVED' and pll.line_location_id is NULL and prl.closed_code is NULL and nvl(prl.cancel_flag,'N') <> 'Y' ORDER BY 1,2 -----------------------------------------------------------------------------------------------------------ALL POs WITH APPROVAL, INVOICE, & PAYMENT DETAILS SELECT ,a.org_id "ORG ID" ,E.SEGMENT1 "VENDOR NUM" ,e.vendor_name "SUPPLIER NAME" ,UPPER(e.vendor_type_lookup_code) "VENDOR TYPE" ,f.vendor_site_code "VENDOR SITE CODE" ,f.ADDRESS_LINE1 "ADDRESS" ,f.city "CITY" ,f.country "COUNTRY" ,to_char(trunc(d.CREATION_DATE)) "PO Date" ,d.segment1 "PO NUM" ,d.type_lookup_code "PO Type" ,c.quantity_ordered "QTY ORDERED" ,c.quantity_cancelled "QTY CANCELLED" ,g.item_id "ITEM ID" ,g.item_description "ITEM DESCRIPTION" ,g.unit_price "UNIT PRICE" ,(NVL(c.quantity_ordered,0)-NVL(c.quantity_cancelled,0))*NVL(g.unit_price,0) "PO Line Amount" ,(select decode(ph.approved_FLAG, 'Y', 'Approved') from po.po_headers_all ph where,ph.po_header_ID = d.po_header_id) "PO Approved?" , a.invoice_type_lookup_code "INVOICE TYPE" ,a.invoice_amount "INVOICE AMOUNT" ,to_char(trunc(a.INVOICE_DATE)) "INVOICE DATE"

,a.invoice_num "INVOICE NUMBER" ,(select decode(x.MATCH_STATUS_FLAG, 'A', 'Approved') from ap.ap_invoice_distributions_all x where ,x.invoice_distribution_id = b.invoice_distribution_id) "Invoice Approved?" ,a.amount_paid ,h.amount ,h.check_id ,h.invoice_payment_id "Payment Id" ,i.check_number "Cheque Number" ,to_char(trunc(i.check_DATE)) "Payment Date" FROM ,AP.AP_INVOICES_ALL A ,AP.AP_INVOICE_DISTRIBUTIONS_ALL B ,PO.PO_DISTRIBUTIONS_ALL C ,PO.PO_HEADERS_ALL D ,PO.PO_VENDORS E ,PO.PO_VENDOR_SITES_ALL F ,PO.PO_LINES_ALL G ,AP.AP_INVOICE_PAYMENTS_ALL H ,AP.AP_CHECKS_ALL I WHERE ,a.invoice_id = b.invoice_id and b.po_distribution_id = c. po_distribution_id (+) and c.po_header_id = d.po_header_id (+) and e.vendor_id (+) = d.VENDOR_ID and f.vendor_site_id (+) = d.vendor_site_id and d.po_header_id = g.po_header_id and c.po_line_id = g.po_line_id and a.invoice_id = h.invoice_id and h.check_id = i.check_id and f.vendor_site_id = i.vendor_site_id and c.PO_HEADER_ID is not null and a.payment_status_flag = 'Y' and d.type_lookup_code != 'BLANKET' -----------------------------------------------------------------------------------------------------------ALL OPEN PO'S SELECT ,h.segment1 "PO NUM" ,h.authorization_status "STATUS" ,l.line_num "SEQ NUM" ,ll.line_location_id ,d.po_distribution_id

,h.type_lookup_code "TYPE" FROM ,po.po_headers_all h ,po.po_lines_all l ,po.po_line_locations_all ll ,po.po_distributions_all d WHERE h.po_header_id = l.po_header_id and ll.po_line_id = l.po_Line_id and ll.line_location_id = d.line_location_id and h.closed_date is NULL and h.type_lookup_code not in ('QUOTATION') -----------------------------------------------------------------------------------------------------------STEPS TO DEBUG A PURCHASE ORDER Get po_header_id first and run each query and then analyze the data. For better understanding this is splited into 5 major stages. Stage 1: PO Creation PO_HEADERS_ALL select po_header_id from po_headers_all where segment1 =; select * from po_headers_all where po_header_id =; PO_LINES_ALL select * from po_lines_all where po_header_id =; PO_LINE_LOCATIONS_ALL select * from po_line_locations_all where po_header_id =; PO_DISTRIBUTIONS_ALL select * from po_distributions_all where po_header_id =; PO_RELEASES_ALL SELECT * FROM po_releases_all WHERE po_header_id =; Stage 2: Once PO is received, data is moved to respective receving tables and inventory tables RCV_SHIPMENT_HEADERS select * from rcv_shipment_headers where shipment_header_id in (select shipment_header_id from rcv_shipment_lineswhere po_header_id =); RCV_SHIPMENT_LINES select * from rcv_shipment_lines where po_header_id =; RCV_TRANSACTIONS select * from rcv_transactions where po_header_id =; RCV_ACCOUNTING_EVENTS SELECT * FROM rcv_Accounting_Events WHERE rcv_transaction_id IN

(select transaction_id from rcv_transactionswhere po_header_id =); RCV_RECEIVING_SUB_LEDGER select * from rcv_receiving_sub_ledger where rcv_transaction_id IN (select transaction_id from rcv_transactions where po_header_id =); RCV_SUB_LEDGER_DETAILS select * from rcv_sub_ledger_detailswhere rcv_transaction_id IN (select transaction_id from rcv_transactions where po_header_id =); MTL_MATERIAL_TRANSACTIONS select * from mtl_material_transactions where transaction_source_id =; MTL_TRANSACTION_ACCOUNTS select * from mtl_transaction_accounts where transaction_id IN (select transaction_id from mtl_material_transactions where transaction_source_id =); Stage 3: Invoicing details AP_INVOICE_DISTRIBUTIONS_ALL select * from ap_invoice_distributions_all where po_distribution_id in ( select po_distribution_id from po_distributions_all where po_header_id =); AP_INVOICES_ALL select * from ap_invoices_all where invoice_id in (select invoice_id from ap_invoice_distributions_all where po_distribution_id in( select po_distribution_id from po_distributions_all where po_header_id =)); Stage 4 : Mostly there is tie up with Project related PO PA_EXPENDITURE_ITEMS_ALL select * from pa_expenditure_items_all peia where peia.orig_transaction_reference IN (select to_char(transaction_id) from mtl_material_transactions where transaction_source_id = ); Stage 5 : General Ledger Prompt 17. GL_BC_PACKETS ..This is for encumbrances SELECT * FROM gl_bc_packets WHERE reference2 IN (); GL_INTERFACE select * from gl_interface gli where user_je_source_name =Purchasing and gl_sl_link_table =RSL and reference21=PO and exists (select 1 from rcv_receiving_sub_ledger rrsl where gli.reference22 =RRSL.reference2 and GLI.reference23 =RRSL.reference3AND GLI.reference24 =RRSL.reference4AND RRSL.rcv_transaction_id in(select transaction_id from rcv_transactionswhere po_header_id )); GL_IMPORT_REFERENCES SELECT *FROM gl_import_references GLIR WHERE reference_1=PO AND gl_sl_link_table =RSLAND EXISTS ( SELECT 1 FROM rcv_receiving_sub_ledger RRSLWHERE GLIR.reference_2 =RRSL.reference2AND GLIR.reference_3 =RRSL.reference3 AND GLIR.reference_4 =RRSL.reference4AND

RRSL.rcv_transaction_id in (select transaction_id from rcv_transactions where po_header_id =))


Posted by Muhammad Rafi Aamiri Madani

Deleting a Scheduled Request


Muhammad Rafi Aamiri Madani on Monday, March 16, 2009

There is no standard functionality to delete any saved schedule. The saved schedules are being stored in the table fnd_conc_release_classes_vl SELECT ,release_class_id ,application_id ,release_class_name schedule_name ,description ,class_type schedule_type FROM fnd_conc_release_classes_vl WHERE owner_req_id is null and enabled_flag != N and nvl(start_date_active,sysdate) <= sysdate and nvl(end_date_active, sysdate) >= sysdate order by release_class_name If you want to delete any saved schedule then you can perform any of the following: Delete the row from the table FND_CONC_RELEASE_CLASSES_VL for the saved schedule. OR It will be better to update the ENABLED_FLAG = N for the saved schedule instead of deleting the row from the table FND_CONC_RELEASE_CLASSES_VL.
Posted by Muhammad Rafi Aamiri Madani

Trace a concurrent request and generate TKPROF file


Muhammad Rafi Aamiri Madani on Monday, March 16, 2009

Steps to enable tracing for the Concurrent Manager Program Responsibility: System Administrator Navigate: Concurrent > Program > Define Query Concurrent Program Select the Enable Trace Checkbox Turn ON Tracing Responsibility: System Administrator Navigate: Profiles > System Query Profile Option Concurrent: Allow Debugging Set profile to Yes Run concurrent program with tracing turned ON Logon to the Responsibility that runs the Concurrent Program In the Submit Request Screen click on Debug Options (B) Select the Checkbox for SQL Trace Query to find Trace File Name Run the following SQL to find out the Raw trace name and location for the concurrent program. The SQL prompts the user for the request id SELECT 'Request id: 'request_id ,'Trace id: 'oracle_Process_id ,'Trace Flag: 'req.enable_trace ,'Trace Name: 'dest.value'/'lower(dbnm.value) '_ora_' oracle_process_id '.trc' ,'Prog. Name: 'prog.user_concurrent_program_name ,'File Name: 'execname.execution_file_name execname.subroutine_name ,'Status : 'decode(phase_code,'R','Running') '-'decode(status_code,'R','Normal') ,'SID Serial: 'ses.sid',' ses.serial# , 'Module : 'ses.module FROM fnd_concurrent_requests req ,v$session ses ,v$process proc

,v$parameter dest ,v$parameter dbnm ,fnd_concurrent_programs_vl prog ,fnd_executables execname WHERE req.request_id = &request and req.oracle_process_id=proc.spid(+) and proc.addr = ses.paddr(+) and dest.name='user_dump_dest' and dbnm.name='db_name' and req.concurrent_program_id = prog.concurrent_program_id and req.program_application_id = prog.application_id and prog.application_id = execname.application_id and prog.executable_id=execname.executable_id TKPROF Trace File Once you have obtained the Raw trace file you need to format the file using TKPROF. $tkprof raw_trace_file.trc output_file.prf explain=apps/apps sort=(exeela,fchela) sys=no raw_trace_file.trc: Name of trace file output_file: tkprof out file explain: This option provides the explain plan for the sql statements sort: This provides the sort criteria in which all sql statements will be sorted and would bring the bad sql at the top of the outputfile. sys=no: Disables sql statements issued by user SYS Another example: To get (TKPROF) sorted by longest running queries first and limits the results to the Top 10 long running queries $ tkprof sys=no explain=apps/ sort=(prsela,exeela,fchela) print=10
Posted by Muhammad Rafi Aamiri Madani

Oracle E-Business Tax


Muhammad Rafi Aamiri Madani on Wednesday, March 18, 2009

Taxation is having very complex model from implementation mapping point of view and must can be considered in two dimension. U.S. TAXES Sales Tax Sellers Use Tax Consumers Use Tax Rental Tax Leasing Tax INTERNATIONAL TAXES Input VAT Output VAT Import VAT Export VAT Acquisition VAT Consumption Tax Goods and Services Tax VAT In simple layman term you understand like when you sell something you add on tax which is payable to the tax authorities. When you buy something you are able to recover the tax.Normally the net amount is paid to the tax authorities. Certain items are not recoverable, hence the term recoverable and non recoverable taxes are considered. VAT is imposed on the value added to goods or services at each stage of their supply. The VAT charged on a customer invoice is referred to as Output Tax. Any VAT paid on a vendor invoice is referred to as Input Tax. The amount due each period can be described as follows: Amount Due = Output Tax - Input Tax GST Goods and Services Tax used in Canada and Australia ,Singapore Similar to VAT Withholding Taxes A withholding tax is where an amount is withheld from a payment to the supplier and paid to the tax authorities. If the overall payment due to a supplier was say 120, it may be that they are only paid 100, the remaning 20 being paid over. Essential you are acting as a tax collector. This only applies to certain types of supplier in certain countries.

Recoverable Tax Recoverable tax is one , which you can recover from your sales. You can say VAT system. one suffer Tax when a person makes sales and which can be adjusted against the tax suffered when you make a purchase(Recoverable portion only) , end of the day , you pay to the tax authorities the Net of Tax paid on purchase and tax included on your sales. Sales Tax Sales taxes are tax levies charged on applicable revenues according to law; and reported and paid periodically to the relevant taxing jurisdiction. Understanding is very important . Take a case with USA implemenation. There is one basic rule that we need to understand when it comes to calculating tax, which is always calculated for the destination shipping address. Take senarios : Dell.com is an online retail website. It ships all its orders from a Warehouse. There are a couple of customers ordering a laptop of Model xyz drive on the website. One of the customers resides in NY and the other resides in the CA. Now we have to decide which states tax law should we apply for calculating tax for the Laptop? Is it Dell for both of the customers? No its not. For the customer who resides in NY, NYs states law will apply and for the customer in CA, CAs tax laws will apply. Lets understand the simple method: List price of Laptop = $800 Tax on Laptop in NY = 7 % Tax on Laptop in CA = 5 % Sale price of Laptop for the customer in NY = $856.00 Sale price of Laptop for the customer in CA = $840.00 So, we understand that two customers, in two different states, might end up paying two different prices for the same product purchased. Use Tax or consumption tax These are some sort of levied by local jurisdictions where goods and services are delivered from outside the jurisdiction but consumed locally, and are often accrued and paid by the buyer rather than the seller. Thailand is one such usage of such tax.Japan levies a consumption tax on the value of goods.

More on VAT As Value Added Tax or VAT is a tax or levy on the business at all levels of the manufacture and production of a good or service rendered and based on the increase in price, or value, is provided at each level. The percentages of VAT vary depending on the goods or services provided. Benefits of VAT The VAT has numerous benefits. They are: It reduces cascading affects of taxes and removes distortions It removes artificial incentives affecting choice of location of business since the VAT percentage on a particular type of good or service is same across all territories within the country It is eminently collectible and more transparent; it renders high cost to businesses not being part of VAT chain; ...i.e. if someone conceals the output, one cannot get refund on input Exports could be freed from Tax burden with World Trade Organization (WTO) compatibility VAT @EBS The VAT is defined as a Tax code in Oracle Applications in Accounts Payable module and the tax is attached to the invoice lines so that the tax is calculated as a positive tax on the invoice distribution lines. What is important for Implementor for Tax Data identification and configuration (aka set up) Sales and use tax software integration (If using any third party tax software) Record retention Reporting : what is required is comprehensive data requirements of a tax department and tax reporting feature in ERP Where is the Tax integration required 1.Order Management :Estimation of Sales Tax on Sales Orders 2.Accounts Receivables (AR) :Calculation of Sales Tax on Standard AR Invoices ,Credit memos/Debit memos & Adjustments ,Recurring invoices ,Manual invoices 3.iReceivables (credit memo requests) 4.Service & Project Billing (via AutoInvoice to AR) 5.CRM (iStore and Quoting via Order Capture) 6.Oracle Internet Expenses 7.Payables : GST included tax supplier Invoice 8.Purchasing :Estimate sales tax on POs, and update committed spend in Projects 9.Inventory :Self-accrue use tax on material transaction movements 10.General Ledger: Manually keyin Journal Entries

11.Oracle Trade Management 12.Oracle Services Contracts Third Party tax @EBS Vertex and Taxware are the two supported 3rd Party Software Vendors that Oracle Receivables uses to integrate with for tax calculating purposes. If you setup the integration the tax rates that are stored in the Oracle locations and rates tables are override and the calculation is done in the tax vendor.There is another Third party tax software called is SABRIX which is also widely used.
Posted by Muhammad Rafi Aamiri Madani

Supplier Bank Details


Muhammad Rafi Aamiri Madani on Thursday, April 30, 2009

/* For Supplier Bank Account Number Use This One */

SELECT bank_account_name, bank_account_num, branch_id FROM iby_ext_bank_accounts WHERE ext_bank_account_id IN ( SELECT ext_bank_account_id FROM iby_account_owners WHERE account_owner_party_id IN ( SELECT party_id FROM hz_party_sites WHERE party_site_name LIKE %UPC%))

/* USE THIS QUERY TO GET BANK NAME AND BANK BRANCH NAME OF SUPPLIER BANK*/

SELECT BANKORGPROFILE.HOME_COUNTRY BANK_HOME_COUNTRY, BANKORGPROFILE.PARTY_ID BANK_PARTY_ID, BANKORGPROFILE.ORGANIZATION_NAME BANK_NAME, BANKORGPROFILE.BANK_OR_BRANCH_NUMBER BANK_NUMBER, BRANCHPARTY.PARTY_ID BRANCH_PARTY_ID, BRANCHPARTY.PARTY_NAME BANK_BRANCH_NAME, BRANCHPARTY.PARTY_ID

FROM HZ_ORGANIZATION_PROFILES BANKORGPROFILE, HZ_CODE_ASSIGNMENTS BANKCA, HZ_PARTIES BRANCHPARTY, HZ_ORGANIZATION_PROFILES BRANCHORGPROFILE, HZ_CODE_ASSIGNMENTS BRANCHCA, HZ_RELATIONSHIPS BRREL, HZ_CODE_ASSIGNMENTS BRANCHTYPECA, HZ_CONTACT_POINTS BRANCHCP, HZ_CONTACT_POINTS EDICP WHERE SYSDATE BETWEEN TRUNC (BANKORGPROFILE.EFFECTIVE_START_DATE) AND NVL (TRUNC (BANKORGPROFILE.EFFECTIVE_END_DATE), SYSDATE + 1) AND BANKCA.CLASS_CATEGORY = BANK_INSTITUTION_TYPE AND BANKCA.CLASS_CODE IN (BANK, CLEARINGHOUSE) AND BANKCA.OWNER_TABLE_NAME = HZ_PARTIES AND (BANKCA.STATUS = A OR BANKCA.STATUS IS NULL) AND BANKCA.OWNER_TABLE_ID = BANKORGPROFILE.PARTY_ID AND BRANCHPARTY.PARTY_TYPE = ORGANIZATION AND BRANCHPARTY.STATUS = A AND BRANCHORGPROFILE.PARTY_ID = BRANCHPARTY.PARTY_ID AND SYSDATE BETWEEN TRUNC (BRANCHORGPROFILE.EFFECTIVE_START_DATE) AND NVL (TRUNC (BRANCHORGPROFILE.EFFECTIVE_END_DATE), SYSDATE + 1) AND BRANCHCA.CLASS_CATEGORY = BANK_INSTITUTION_TYPE AND BRANCHCA.CLASS_CODE IN (BANK_BRANCH, CLEARINGHOUSE_BRANCH) AND BRANCHCA.OWNER_TABLE_NAME = HZ_PARTIES AND (BRANCHCA.STATUS = A OR BRANCHCA.STATUS IS NULL) AND BRANCHCA.OWNER_TABLE_ID = BRANCHPARTY.PARTY_ID AND BANKORGPROFILE.PARTY_ID = BRREL.OBJECT_ID AND BRREL.RELATIONSHIP_TYPE = BANK_AND_BRANCH AND BRREL.RELATIONSHIP_CODE = BRANCH_OF AND BRREL.STATUS = A AND BRREL.SUBJECT_TABLE_NAME = HZ_PARTIES AND BRREL.SUBJECT_TYPE = ORGANIZATION AND BRREL.OBJECT_TABLE_NAME = HZ_PARTIES AND BRREL.OBJECT_TYPE = ORGANIZATION AND BRREL.SUBJECT_ID = BRANCHPARTY.PARTY_ID AND BRANCHTYPECA.CLASS_CATEGORY(+) = BANK_BRANCH_TYPE AND BRANCHTYPECA.PRIMARY_FLAG(+) = Y AND BRANCHTYPECA.OWNER_TABLE_NAME(+) = HZ_PARTIES AND BRANCHTYPECA.OWNER_TABLE_ID(+) = BRANCHPARTY.PARTY_ID

AND BRANCHTYPECA.STATUS(+) = A AND BRANCHCP.OWNER_TABLE_NAME(+) = HZ_PARTIES AND BRANCHCP.OWNER_TABLE_ID(+) = BRANCHPARTY.PARTY_ID AND BRANCHCP.CONTACT_POINT_TYPE(+) = EFT AND BRANCHCP.STATUS(+) = A AND EDICP.OWNER_TABLE_NAME(+) = HZ_PARTIES AND EDICP.OWNER_TABLE_ID(+) = BRANCHPARTY.PARTY_ID AND EDICP.CONTACT_POINT_TYPE(+) = EDI AND EDICP.STATUS(+) = A AND BRANCHCA.OWNER_TABLE_ID = :IBY_BRANCH_ID /*USER BRANCH ID FROM ABOVE QUERY*/
Posted by Muhammad Rafi Aamiri Madani

Document Access and Security Level


Muhammad Rafi Aamiri Madani on Thursday, April 30, 2009

Document Access Levels Specify an access level to control what modification and control actions can take on a particular document once user gain access. Document owners always have full access to their documents. The following are Access level options : View Only - Accessing employees can only view the document. Only the document owner may modify or control xxxxxxxxxxxxxthe document. Modify xx - Accessing employees can view, modify, freeze and close the document. Full xxxxx - Accessing employees can view, modify, freeze, close, cancel and finally close the document. Document Security Levels Anyone with menu access to the document entry window can create a document. These individuals then become the document owners. Security levels can be set for each document type. Following are Security level options Private .xx - Only the document owner and subsequent approvers can access the document. Purchasing - Only the document owner, subsequent approvers, and individuals defined as buyers can access the

xxxxxxxxxxxxxxdocument. Hierarchyx - Only the document owner, subsequent approvers, and individuals above the document owner in the xxxxxxxxxxxxxxsecurity hierarchy can access the document. Public xxxx- All system users can access the document.
Posted by Muhammad Rafi Aamiri Madani

Steps to debug the Approval Workflow for Purchase Order or Purchase Requisition
Muhammad Rafi Aamiri Madani on Friday, May 1, 2009

Step 1 Review the action history of the document having a problem. This is done in the Purchasing Summary screens either Requisitions Requisitions Summary or Purchase Orders Purchase Order Summary. If you attempt to view the action history and you receive the following error: APP-14288 This document is either incomplete or you do not have access to it Then this represents that Workflow has not yet performed a submit into the action history table. The document approval manager performs the action of submitting a record into the Action History and therefore is required to be running. It should be confirmed that the document approval manager is running. Step 2 Notification Summary review the Notification Summary for the user that submitted the document. Are there any notifications present? Because online form messaging alerts are now present in the form of notifications, it is imperative that the summary be reviewed for any informative notifications explaining in more detail as to the problem. Step 3 Confirmation that the Workflow Background Process has been run via the System Administrator responsibility. This is done via Requests Run within the System Administrator Responsibility. The parameters should be the Item Type PO or Requisition Approval and then Processed Deferred = Yes,

Process Time Out = Yes. Process Stuck = Yes if the Process Stuck parameter is available. Step 4 Ensure that all tables contain the necessary space to record the Workflow processing data. As users submit a document for Approval and the Workflow process is called, data is recorded into a series of Workflow tables. To quickly confirm whether the tables are having space limitations or not? Run the following in SQL: select value from v$parameter where name like background_dump_dest; The value returned by this SQL statement represents the location of the alert log on the database server, For the instance in question. Please ask the Database Administrator to review the latest entries into the alert.log to confirm if any errors are being thrown with regards to table space. The most common scenario that has been linked to table space, is when a user hits the Approve button in the approval screen, only to have nothing happen. There is no message returned stating document has been submitted for Approval, nothing happens. The hourglass comes for 1 second, and then leaves, and the approval form is still present. This is most likely a table space issue. Step 5 Workflow Monitor from the Purchase Summary screens. Utilize the Workflow monitor to track the path which the document has taken during its submission to Workflow. Some important milestones to look for in the Workflow monitor are Can Owner Approve and Does Approver have Approval Authority. Are there any processes that contain errors? Or does it appear that a process has stopped at a point that is incorrect? Example is if a process stopped at a point that is not referencing a notification or some other request point for user interaction
Posted by Muhammad Rafi Aamiri Madani

Turn On About This Page in Oracle R12 Web Forms


Muhammad Rafi Aamiri Madani on Friday, May 1, 2009

Set Following Profile Options as Required at User or Site Personalize Self-Service Defn...........................= YES FND: Personalization Region Link Enabled.........= YES Disable Self-Service Personal..........................= NO (Only at Site) FND: Diagnostics ...........................................= Yes Bounce the Apache Server Login to Application you can see the About This Page Link on all web pages By Using About This Page link you can have almost all information of technology Stack

Purchasing FAQs
Muhammad Rafi Aamiri Madani on Saturday, May 2, 2009

What if there is more than one holder in a job or position? Multiple holders in the same job or position can only occur if Oracle Human Resources is installed. If only Oracle Purchasing is installed, you can assign only one employee to each job or position. If multiple holders exist when using position approval hierarchies, Oracle Workflow will route the document to the holder based on alphabetical order. You can see who the system will route the document to by clicking the Forward radio button, overriding the defaulted name if needed. What if there are changes to the position approval hierarchy? Personnel changes are updated in the position approval hierarchy by running the Fill Employee Hierarchy process which reviews the employee record to determine the current position assignment. You will probably want to schedule this process to run on a frequent basis to ensure smooth processing of all approval requests. Structural changes to the position approval hierarchy require the hierarchy to be rebuilt from the point where the change occurs to the bottom of that branch. Documents are routed according to the hierarchy in effect at the time they are submitted for approval. What if Human Resources were already implemented with jobs set up, but no positions? Unless the decision to set up jobs only and no positions can be revisited, you will have to route all documents by the employee/supervisor relationship and maintain this data on the employee records. What if the approver is unavailable for an extended period? Oracle Purchasing has the ability to automatically forward documents when users do not respond to notifications. This tool should be used when possible to prevent documents from holding up business

productivity. Oracle Workflow manages this functionality, typically set up to send a first and second reminder after pre-determined time periods before forwarding the notification to the next approver. What if the document has a status of Pre-Approved? The status of Pre-Approved is the outcome of a person forwarding a document for approval even though the forwarding person has the necessary authority to approve it. The document may have been forwarded by mistake or for business reasons. Once the person it was forwarded to approves the document, the status will be changed to Approved and subsequent actions such as receiving and invoicing can be completed. What if there is no account range on an approval group assigned to a job or position? By default, all accounts are excluded from an approval group and therefore documents governed by this approval group cannot be approved. You avoid this situation by ensuring that there is at least one Account Range Include rule on every Approval Group. What if Workflow cant find a supervisor to approve the document? If this occurs, the person submitting the request for approval must forward the document to a different person in the list of values for Forward To. If this isnt done, the document will be returned to an Incomplete status and a notification will be sent stating No Approver Found - Please Select a Forward To Employee. If using employee/supervisor relationship to determine approval paths, the list of values will include all active employees. If using position approval hierarchies to determine approval paths, the list of values will include all employees in the hierarchy selected. What if a job or position has different authority levels for different document types? You may have jobs or positions that can approve one document up to a specified dollar amount, while they can approve another document at a lower dollar amount. If this occurs, simply set up multiple approval groups with the rules properly defined for the differences and ensure that the right approval group is assigned to the correct document type. What if documents flow employee/supervisor, but approval rules are needed? Approval Groups can be used whether approval paths are determined by employee/supervisor relationships or by position approval hierarchies.
Posted by Muhammad Rafi Aamiri Madani

trength and Weakness of Approval Hierarchies in Oracle Purchasing


Muhammad Rafi Aamiri Madani on Saturday, May 2, 2009

Using the Employee/Supervisor Relationship Strengths Allows flexibility of establishing approval groups around either jobs or positions. Assuming Oracle Human Resources (HR) is installed and the data is being maintained, Purchasing uses the supervisor name on the employee which should be entered and maintained for HR purposes already. Weaknesses Documents may not travel by the employee/supervisor relationship for approval purposes, but take a different path in part or entirely. Documents can get hung up more frequently due to the volume of personnel changes that typically occur in companies. Higher volumes of documents need to be rerouted using the Forward-To settings. Recall that the first name alphabetically appears as the default. Using Position Approval Hierarchies Strengths Allows approval paths to be set up that follow the actual flow of documents for approval. Assuming Human Resources is installed and the data is being maintained, Purchasing can make an employee representation of the position approval hierarchy by simply running the Fill Employee Hierarchy process. This will allow changes occurring in personnel assignments to be updated in the position approval hierarchy. Documents can get hung up less frequently due to the lower volume of structural hierarchy changes compared to the higher volume of personnel changes that typically occur in companies. Lower volumes of documents need to be re-routed using the Forward To settings, especially when there are multiple holders in a particular job or position. Recall that the first name alphabetically appears as the default when there are multiple holders. Weaknesses Cannot be used with jobs, but must be used with positions.

Period Close Checklist in AR


Muhammad Rafi Aamiri Madani on Saturday, May 2, 2009

Complete manual payments and adjustments for the period (including cleanup of Out of Balance batches) Check and Complete final Receivables Interface from Order Management

Complete manual invoices, DEBIT Memos and credit memos Run your final Auto Invoice process Correct ALL Auto Invoice rejects and re-run Clear all receipts from Cash Management Apply receipts against Invoices and Debit Memos Review the Unapplied Receipts Register Reconcile receipts Apply Credit memo to Debit Memo and Invoices Approve or reject ALL Pending Adjustments Complete or delete ALL Incomplete invoices Complete or delete ALL Incomplete credit memos Correct and post ALL open Lockbox batches (If Lock Box Implemented) Print Dunning (Reminder) Letters (Optional) Run Journal Entries Reports Review Journal Entries reports for unusual accounts and correct as needed Run Period End Reports Balance to the Aged Trial Balance Post to the General Ledger using the period start date through the period end date - Verify all the steps. Close the period - verify that there are no items in error Open the next period and the next Future period

Post Journal Entries (In General Ledger) Balance to the General Ledger (for the key accounts)

Posted by Muhammad Rafi Aamiri Madani

Tables used in Auto Invoice Master Program


Muhammad Rafi Aamiri Madani on Sunday, May 3, 2009

When the Auto invoice program is run, data is populated into the tables listed below. 1. RA_BATCHES_ALL 2. RA_CUSTOMER_TRX_ALL 3. RA_CUSTOMER_TRX_LINES_ALL 4. RA_CUST_TRX_LINE_GL_DIST_ALL 5. RA_CUST_TRX_LINE_SALESREPS_ALL 6. AR_RECEIVABLE_APPLICATIONS_ALL 7. AR_PAYMENT_SCHEDULES_ALL 8. AR_PAYMENT_SCHEDULES_ALL 9. RA_INTERFACE_ERRORS_ALL Query to check Invoices in Error SELECT ,ria.line_type ,ria.description ,ria.currency_code ,ria.amount ,ria.trx_date ,ria.quantity ,ria.quantity_ordered ,ria.sales_order ,ria.sales_order_line ,ria.sales_order_date ,ria.inventory_item_id ,riea.interface_line_id ,riea.MESSAGE_TEXT

,riea.org_id FROM ,ra_interface_errors_all riea ,ra_interface_lines_all ria WHERE ,riea.interface_line_id = ria.interface_line_id AND ,riea.org_id = ria.org_id
Posted by Muhammad Rafi Aamiri Madani

Oracle General Ledger - Tables


Muhammad Rafi Aamiri Madani on Sunday, May 3, 2009

The commonly used tables in GL modules are GL_SETS_OF_BOOKS GL_IMPORT_REFERENCES GL_DAILY_RATES GL_JE_LINES GL_PERIODS GL_JE_HEADERS GL_JE_BATCHES GL_BALANCES GL_CODE_COMBINATIONS GL_SETS_OF_BOOKS Stores information about the sets of books you define in your Oracle General Ledger application. Each row includes the set of books name, description, functional currency, and other information. This table corresponds to the Set of Books form. GL_IMPORT_REFERENCES Stores individual transactions from subledgers that have been summarized into Oracle General Ledger journal entry lines through the Journal Import process. You can specify the journal entry sources for which you want to maintain your transactions origin by entering Yes in the Import Journal References field of the Journal Sources form. For each source that has Import Journal References set to Yes, Oracle General Ledger will populate GL_IMPORT_REFERENCES with one record for each transaction in your feeder system.

GL_DAILY_RATES Stores the daily conversion rates for foreign currency transactions. It replaces the GL_DAILY_CONVERSION_RATES table. It stores the rate to use when converting between two currencies for a given conversion date and conversion type. Each row in this table has a corresponding inverse row in which the from and to currencies are switched. For example, if this table contains a row with a from_currency of YEN, a to_currency of CND, a conversion_type of Spot, and a conversion_date of January 1, 1997, it will also contain a row with a from_currency of CND, a to_currency of YEN, a conversion_type of Spot, and a conversion_date of January 1, 1997. In general, this row will contain a rate that is the inverse of the matching row. One should never insert directly into this table. They should instead insert into the DAILY_RATES_INTERFACE table. Data inserted into the GL_DAILY_RATES_INTERFACE table will be automatically copied into this table. GL_JE_LINES Stores the journal entry lines that you enter in the Enter Journals form. There is a onetomany relationship between journal entries and journal entry lines. Each row in this table stores the associated journal entry header ID, the line number, the associated code combination ID, and the debits or credits associated with the journal line. STATUS is U for unposted or P for posted. GL_PERIODS Stores information about the accounting periods you define using the Accounting Calendar form. Each row includes the start date and end date of the period, the period type, the fiscal year, the period number, and other information. There is a onetomany relationship between a row in the GL_PERIOD_SETS table and rows inthis table. GL_JE_HEADERS Stores journal entries. There is a onetomany relationship between journal entry batches and journal entries. Each row in this table includes the associated batch ID, the journal entry name and description, and other information about the journal entry. This table corresponds to the Journals window of the Enter Journals form. STATUS is U for unposted, P for posted. Other statuses indicate that an error condition was found. CONVERSION_FLAG equal to N indicates that you manually changed a converted amount in the Journal Entry Lines zone of a foreign currency journal entry. In this case, the posting program does not reconvert your foreign amounts. This can happen only if your user profile option MULTIPLE_RATES_PER_JE is Yes. BALANCING_SEGMENT_VALUE is null if there is only one balancing segment value in your journal entry. If there is more than one, BALANCING_SEGMENT_VALUE is the greatest balancing segment value in your journal entry. GL_JE_BATCHES Stores journal entry batches. Each row includes the batch name, description, status, running total debits and credits, and other information. This table corresponds to the Batch window of the Enter

Journals form. STATUS is U for unposted, P for posted, S for selected, I for in the process of being posted. Other values of status indicate an error condition. STATUS_VERIFIED is N when you create or modify an unposted journal entry batch. The posting program changes STATUS_VERIFIED to I when posting is in process and Y after posting is complete. GL_BALANCES Stores actual, budget, and encumbrance balances for detail and summary accounts. This table stores functional currency, foreign currency, and statistical balances for each accounting period that has ever been opened. ACTUAL_FLAG is either A, B, or E for actual, budget, or encumbrance balances, respectively. If ACTUAL_FLAG is B, then BUDGET_VERSION_ID is required. If ACTUAL_FLAG is E, then ENCUMBRANCE_TYPE_ID is required. GL_BALANCES stores period activity for an account in the PERIOD_NET_DR and PERIOD_NET_CR columns. The table stores the period beginning balances in BEGIN_BALANCE_DR and BEGIN_BALANCE_CR. An accounts yeartodate balance is calculated as BEGIN_BALANCE_DR BEGIN_BALANCE_CR + PERIOD_NET_DR PERIOD_NET_CR. Detail and summary foreign currency balances that are the result of posted foreign currency journal entries have TRANSLATED_FLAG set to R, to indicate that the row is a candidate for revaluation. For foreign currency rows, the begin balance and period net columns contain the foreign currency balance, while the begin balance and period net BEQ columns contain the converted functional currency balance. Detail foreign currency balances that are the result of foreign currency translation have TRANSLATED_FLAG set to Y or N. N indicates that the translation is out of date (i.e., the account needs to be retranslated). Y indicates that the translation is current. Summary foreign currency balances that are the result of foreign currency translation have TRANSLATED_FLAG set to NULL. All summary account balances have TEMPLATE_ID not NULL. The columns that end in ADB are not used. Also, the REVALUATION_STATUS column is notused. GL_CODE_COMBINATIONS Stores valid account combinations foreach Accounting Flexfield structure within your Oracle General Ledger application. Associated with each account are certain codes and flags, including whether the account is enabled, whether detail posting ordetail budgeting is allowed, and others. Segment values are stored in the SEGMENT columns. Note that each Accounting Flexfield structure may use different SEGMENT columns within the table to store the flexfield value combination. Moreover, the SEGMENT columns that are used are not guaranteed to be in any order. The Oracle Application Object Library table FND_ID_FLEX_SEGMENTS stores information about which column in this table is used for each segment of each Accounting Flexfield structure. Summary accounts have SUMMARY_FLAG = Y and TEMPLATE_ID not NULL. Detail accounts have SUMMARY_FLAG = N and TEMPLATE_ID NULL.
Posted by Muhammad Rafi Aamiri Madani

Daily Close and End of Day Reporting


Muhammad Rafi Aamiri Madani on Monday, May 4, 2009

Client Industry - Banking and Financial Institution Summary One of my banking clients had a business need to enhance end of day reporting by using a new "processing date" field, by preventing posting of future dated transactions, and storing daily balances to support end of day reporting requirements. Standard Functionality Limitations since Oracle General Ledger (GL) is a real-time system, the standard posting functionality will update the account balances of detail and summary accounts. When you post to an earlier effective date or open period, actual balances roll forward through the latest open period. If you post a journal entry into a prior year, Oracle GL adjusts your retained earnings balance for the effect on your income and expense accounts. End of day reporting is complicated with a single instance and server time stamp worldwide. Business Case Banks and Financial Institutions in US are regulated Corporations subject to daily, weekly, monthly, quarterly and annual report requirements as defined by the SEC, the Federal Reserve, and IRS. Additionally, the global branches and subsidiaries are subject to foreign regulatory agencies. These banks requires that the Oracle Financials Application's GL support the requirement that transaction processing be cut off based on an end of day and reporting generated as a result of that end of day. Currently, the standard functionality of Oracle GL does not support the concept of end of day. The Open/Close is controlled by Accounting Periods in months, not days. Solution Overview A custom solution was developed incorporating three types of changes that are required to support end of day processing requirements: Add Processing Date Store Daily Balances Prevent future dated transactions from affecting end of day balances
Posted by Muhammad Rafi Aamiri Madani

General Ledger Tables


Muhammad Rafi Aamiri Madani on Sunday, May 17, 2009

GL_SETS_OF_BOOKS Stores information about the sets of books you define in your Oracle General Ledger application. Each row includes the set of books name, description, functional currency, and other information. This table corresponds to the Set of Books form. GL_IMPORT_REFERENCES Stores individual transactions from subledgers that have been summarized into Oracle General Ledger journal entry lines through the Journal Import process. You can specify the journal entry sources for which you want to maintain your transactions origin by entering Yes in the Import Journal References field of the Journal Sources form. For each source that has Import Journal References set to Yes, Oracle General Ledger will populate GL_IMPORT_REFERENCES with one record for each transaction in your feeder system. GL_DAILY_RATES Stores the daily conversion rates for foreign currency transactions. It replaces the GL_DAILY_CONVERSION_RATES table. It stores the rate to use when converting between two currencies for a given conversion date and conversion type. Each row in this table has a corresponding inverse row in which the from and to currencies are switched. For example, if this table contains a row with a from_currency of YEN, a to_currency of CND, a conversion_type of Spot, and a conversion_date of January 1, 1997, it will also contain a row with a from_currency of CND, a to_currency of YEN, a conversion_type of Spot, and a conversion_date of January 1, 1997. In general, this row will contain a rate that is the inverse of the matching row. One should never insert directly into this table. They should instead insert into the DAILY_RATES_INTERFACE table. Data inserted into the GL_DAILY_RATES_INTERFACE table will be automatically copied into this table. GL_JE_LINES Stores the journal entry lines that you enter in the Enter Journals form. There is a one to many relationship between journal entries and journal entry lines. Each row in this table stores the associated journal entry header ID, the line number, the associated code combination ID, and the debits or credits associated with the journal line. STATUS is U for unposted or P for posted. GL_PERIODS Stores information about the accounting periods you define using the Accounting Calendar form. Each

row includes the start date and end date of the period, the period type, the fiscal year, the period number, and other information. There is a one to many relationship between a row in the GL_PERIOD_SETS table and rows inthis table. GL_JE_HEADERS Stores journal entries. There is a one to many relationship between journal entry batches and journal entries. Each row in this table includes the associated batch ID, the journal entry name and description, and other information about the journal entry. This table corresponds to the Journals window of the Enter Journals form. STATUS is U for unposted, P for posted. Other statuses indicate that an error condition was found. CONVERSION_FLAG equal to N indicates that you manually changed a converted amount in the Journal Entry Lines zone of a foreign currency journal entry. In this case, the posting program does not re convert your foreign amounts. This can happen only if your user profile option MULTIPLE_RATES_PER_JE is Yes. BALANCING_SEGMENT_VALUE is null if there is only one balancing segment value in your journal entry. If there is more than one, BALANCING_SEGMENT_VALUE is the greatest balancing segment value in your journal entry. GL_JE_BATCHES Stores journal entry batches. Each row includes the batch name, description, status, running total debits and credits, and other information. This table corresponds to the Batch window of the Enter Journals form. STATUS is U for unposted, P for posted, S for selected, I for in the process of being posted. Other values of status indicate an error condition. STATUS_VERIFIED is N when you create or modify an unposted journal entry batch. The posting program changes STATUS_VERIFIED to I when posting is in process and Y after posting is complete. GL_BALANCES Stores actual, budget, and encumbrance balances for detail and summary accounts. This table stores functional currency, foreign currency, and statistical balances for each accounting period that has ever been opened. ACTUAL_FLAG is either A, B, or E for actual, budget, or encumbrance balances, respectively. If ACTUAL_FLAG is B, then BUDGET_VERSION_ID is required. If ACTUAL_FLAG is E, then ENCUMBRANCE_TYPE_ID is required. GL_BALANCES stores period activity for an account in the PERIOD_NET_DR and PERIOD_NET_CR columns. The table stores the period beginning balances in BEGIN_BALANCE_DR and BEGIN_BALANCE_CR.

An accounts year to date balance is calculated as BEGIN_BALANCE_DR - BEGIN_BALANCE_CR + PERIOD_NET_DR PERIOD_NET_CR. Detail and summary foreign currency balances that are the result of posted foreign currency journal entries have TRANSLATED_FLAG set to R, to indicate that the row is a candidate for revaluation. For foreign currency rows, the begin balance and period net columns contain the foreign currency balance, while the begin balance and period net BEQ columns contain the converted functional currency balance. Detail foreign currency balances that are the result of foreign currency translation have TRANSLATED_FLAG set to Y or N. N indicates that the translation is out of date (i.e., the account needs to be re translated). Y indicates that the translation is current. Summary foreign currency balances that are the result of foreign currency translation have TRANSLATED_FLAG set to NULL. All summary account balances have TEMPLATE_ID not NULL. The columns that end in ADB are not used. Also, the REVALUATION_STATUS column is not used. GL_CODE_COMBINATIONS Stores valid account combinations foreach Accounting Flexfield structure within your Oracle General Ledger application. Associated with each account are certain codes and flags, including whether the account is enabled, whether detail posting ordetail budgeting is allowed, and others. Segment values are stored in the SEGMENT columns. Note that each Accounting Flexfield structure may use different SEGMENT columns within the table to store the flexfield value combination. Moreover, the SEGMENT columns that are used are not guaranteed to be in any order. The Oracle Application Object Library table FND_ID_FLEX_SEGMENTS stores information about which column in this table is used for each segment of each Accounting Flexfield structure. Summary accounts have SUMMARY_FLAG = Y and TEMPLATE_ID not NULL. Detail accounts have SUMMARY_FLAG = N and TEMPLATE_ID NULL.
Posted by Muhammad Rafi Aamiri Madani

Oracle Application Framework


Muhammad Rafi Aamiri Madani on Monday, June 1, 2009

Oracle Application Framework is the development platform for HTML-based applications. It consist of a java-based application tier framework and associated services. It designed to facilitate the rapid deployment of HTML-based applications.

Oracle Application Framework uses below components:

AOL JAVA or AOL/J


It provides the OAF with underlying security and applicaiton Java Services.Also OAF with its connection to the DB and with application-specific functionality for e.g attachments and flexfields.

BC4J
JDeveloper incluedes BC4J. Java Business components are created by BC4J for representing business logic.It seperates the business logic from UI by mapping the relational tables to java objects.

Java Controller
It processes the programmatic UI definition.

Metadata UI Definition
Apache Jserv module provides the Java servlet engine uses metadata dictionary to to construct the Framework UI.

HTML Generator UIX


UIX , the HTML Generator HTML-based applicaiton uses the following path with OAF on application Tiers. The steps are discussed below. a) User b) URL c) User click request a to access function the on web validated browser listener (HTML sent by hyperlink by access). browser. AOL/J.

d) Page definition is loaded from the metadata dicitionary on the DB tier into the application Tier (i,e. Metadata UI definition)

e) BC4J objects that contain the application logic and access the database are instantiated. f) Java controller programatically manipulates the page definition as necessary, based on dynamic UI rules.

g) HTML UI Generatior (UIX)interprets the page definition. It creates the related HTML based on UI standards, and send the page to the browser.

Posted by Muhammad Rafi Aamiri Madani

Set Profile Option Value from back end


Muhammad Rafi Aamiri Madani on Monday, June 22, 2009

The PROFILE_OPTION_NAME can be found by the SQL statement, SELECT profile_option_name FROM fnd_profile_options_tl WHERE user_profile_option_name LIKE 'MO%'

It returns more than one row but i can make out that "ORG_ID" is the PROFILE_OPTION_NAME for MO: Operating Unit. Inorder to know the Org_ID of the Org whose value is to be set in MO: Operating Unit the following SQL statement is used. SELECT organization_id, NAME FROM hr_all_organization_units; From the above query the default Operating Unit is found and the below code below is used to set the profile option value usingfnd_profile.save DECLARE stat BOOLEAN; BEGIN DBMS_OUTPUT.DISABLE; DBMS_OUTPUT.ENABLE (100000); stat := fnd_profile.SAVE ('ORG_ID', 286, 'SITE'); IF stat THEN DBMS_OUTPUT.put_line ('Stat = TRUE - profile updated');

ELSE DBMS_OUTPUT.put_line ('Stat = FALSE - profile NOT updated'); END IF; COMMIT; END;
Posted by Muhammad Rafi Aamiri Madani

API of Profiles
Muhammad Rafi Aamiri Madani on Saturday, July 4, 2009

Inside API

Retrieve user profile values for the current run-time environment Set user profile values for the current run-time environment

There are various Objects that can be used with this API's. These are discussed below: 1. Put :This can be used to put a value to the specified user profile option. Usage:

FND_Profile.Put('PROFILE_NAME','New_Value') FND_Profile.Put('USERNAME', Usr_Name) FND_Profile.Put('RESP_ID', Resp_ID) FND_Profile.Put('RESP_APPL_ID', Resp_App_ID) FND_Profile.Put('USER_ID', User_ID)

2.DEFINED : this is function returns TRUE if a value has been assigned to the specified profile option. Usage:

SELECT fnd_profile.defined('ACCOUNT_GENERATOR:DEBUG_MODE') ACC_GEN_DEBUG_SESSION_MODE FROM DUAL;

3.GET :This is used to retrieve the current value of the specified user profile option Usage :

Different type of options can be retrieved like

FND_Profile.Get('PROFILENAME', Profile_name); FND_Profile.Get('CONC_LOGIN_ID', Conc_login_id); FND_Profile.Get('LOGIN_ID', loginid);

4.VALUE : This is function which returns a character string. Used to retrieve the current value of the specified user profile option. Usage:

fnd_profile.value('PROFILEOPTION') fnd_profile.value('MFG_ORGANIZATION_ID') fnd_profile.value('login_ID') fnd_profile.value('USER_ID') fnd_profile.value('USERNAME') fnd_profile.value('CONCURRENT_REQUEST_ID') fnd_profile.value('GL_SET_OF_BKS_ID') fnd_profile.value('ORG_ID') fnd_profile.value('SO_ORGANIZATION_ID') fnd_profile.value('APPL_SHRT_NAME') fnd_profile.value('RESP_NAME') fnd_profile.value('RESP_ID')

5.VALUE_WNPS: This is a function, returns a character string. This is Used to retrieve the current value of the specified user profile option without caching it. 6.SAVE_USER :This is function used to save a value for a profile option permanently to the database, for the current user level. It is necessary to explicitly issue a commit when using this function. Returns TRUE if profile option is successfully saved, otherwise FALSE. 7.SAVE :This is function used to save a value for a profile option permanently to the database, for a specified level. It is necessary to explicitly issue a commit when using this function. Returns TRUE if profile option is successfully saved, otherwise FALSE. Usage

fnd_profile.save('GUEST_USER_PWD', 'GUEST/ORACLE', 'SITE');

8.INITIALIZE :This is used by internal Applications Object Library to initialize the internal profile information at the level context. The cache is first cleared of all database options.

Usage:

fnd_profile.initialize(user_id);

9.PUTMULTIPLE :This is used by internal Applications Object Library to set multiple pairs of profile options and values.

Posted by Muhammad Rafi Aamiri Madani

R12 Core HR Lookups


Muhammad Rafi Aamiri Madani on Sunday, July 12, 2009

LOOK UP CODE
TITLE SEX PERSON_TYPE ORG_TYPE MAR_STATUS NATIONALITY REGISTERED_DISABLED ADDRESS_TYPE ABSENCE_CATEGORY ABSENCE_REASON APL_ASSIGN_REASON APL_INTERVIEW_TYPE EMP_EVENT_TYPE PER_CM_MTHD

DESCRIPTION Represents TITLE in People Screen. Represents Gender in People Screen. Represents Person Types in People Screen. Represents the Organization Type. Represents Marital Status in People Screen. Represents Nationality in People Screen. Represents Registered Disabled in People Screen. Represents Address Type in People Screen. Represents Absence Category in Absence Screen. Represents Absence Reason in Absence Screen. Represents Assignment Change Reason in Application Screen. Represents Interview Type in Interview Screen. Represents Type in Bookings Screen. Represents Delivery Methods in Communication Delivery Methods Screen. Represents Source of Proficiency Rating in Competence Profile Screen. Represents Source of Certification Method in Competence Profile Screen. Represents Relationship Type in Contact Screen. Represents Contract Type in Contract Screen. Represents Contract Status in Contract Screen. Represents Contract Status Reason in Contract Screen. Represents Document Status in Contract Screen. Represents Contract Start Reason in Contract Screen. Represents Contract End Reason in Contract Screen.

PROFICIENCY_SOURCE

CERTIFICATION_METHOD CONTACT CONTRACT_TYPE CONTRACT_STATUS CONTRACT_STATUS_REASON DOCUMENT_STATUS CONTRACT_START_REASON CONTRACT_END_REASON

DISABILITY_CATEGORY DISABILITY_REASON TERM_APL_REASON LEAV_REAS CONSULTATION_TYPE CONSULTATION_RESULT PHONE_TYPE PER_SUBJECT_STATUSES PER_SUBJECT PER_WORK_HOURS PER_WORK_SCHEDULE PER_FTE_CAPACITY VACANCY_CATEGORY VACANCY_STATUS REC_TYPE

Represents Disability Category in Disability Screen. Represents Disability Reason in Disability Screen. Represents Reason for Ending an Application in End Application Screen. Represents Leaving Reason in End Employment Screen. Represents Consultation Type in Medical Assessment Screen. Represents Consultation Result in Medical Assessment Screen. Represents Phone Type in Phones Screen. Represents Status of Qualification in Qualifications Screen. Represents Subject in Qualification Screen. Represents Work Hours in Work Preferences Screen. Represents Work Schedule in Work Preferences Screen. Represents FTE Capacity in Work Preferences Screen. Represents Vacancy Category in Requisition and Vacancy Screen. Represents Vacancy Status in Requisition and Vacancy Screen.

Represents Source Type for Recruitment Activity in Requisition and Vacancy Sc

FREQUENCY

Represents Frequency for Review Salary, Review Performance, and Working Ho in Assignment Screen.

QUALIFYING UNITS PQP_EMPLOYER_TYPE PQP_EMPLOYER_SUBTYPE DOCUMENT_CATEGORY

Represents Units for Probation Period and Notice Period in Assignment Screen. Represents Employer Type in Employment History Screen. Represents Employer Sub Type in Employment History Screen. Represents Document Category in Documents of Record Screen.

Posted by Muhammad Rafi Aamiri Madani

Service Tax Flow


Muhammad Rafi Aamiri Madani on Tuesday, July 14, 2009

Service Tax is a form of indirect tax imposed on specified services called "taxable services". Service tax cannot be levied on any service which is not included in the list of taxable services. Over the past few years, service tax been expanded to cover new services. The intention of the government is to gradually increase the list of taxable services until most services fall within the scope of service tax.In the Union Budget of India for the year 2006-2007, service tax has been increased from 10% to 12%. For the purpose of levying service tax, the value of any taxable service should

be the gross amount charged by the service provider for the service rendered by him

Readers, pl. update this section by providing your comments Accounting for Service Tax

Service tax follows 'cash basis' of accounting. The actual service tax impact occurs on the event of the closure of the document. For example, the service tax recovery occurs at the time of payment of AP invoice and service tax liability occurs at the time of entering receipts in AR. To integrate the cash basis accounting with the 'accrual basis' of accounting, minimum of four new accounts are setup in Oracle. They are the Service Tax Interim Recovery account, the Service Tax Interim Liability Account, Service Tax Receivable A/c and Service Tax Payable A/c.

Accounting flow in Service tax is simple and intutive.

On PO Receipt

Service Tax Interim Recovery A/c Dr AP Accrual A/c Cr

On Payment of receipt matched invoice

Service Tax Receivable A/c Dr Service Tax Interim Recovery A/c Cr

On entry of AR Invoice

Receivables A/c Dr Service Tax Interim Liability A/c Cr

On applying the receipt against the invoice

Service Tax Interim Liability A/c Dr Service Tax Payable A/c Cr.

On settlement, if there is a net service tax payable, an invoice is generated on the tax authority

Service Tax Payable A/c Dr Supplier Liability A/c Cr

Other Features

1. You can net off service tax payable against Cenvat (RG / PLA) accounts

2. You can distribute service tax from one OU to multiple OUs

Since Service tax is an evolving legislation there will be a lot of new knowledge being generated. I want this site to be a one stop shop for Service Tax setting up in Oracle. Pl. be active with your comments so that all the users and viewers to this site can benefit.
Posted by Muhammad Rafi Aamiri Madani

Colours in Concurrent Request


Muhammad Rafi Aamiri Madani on Wednesday, July 22, 2009

Have you noticed the colours when the concurrent requests are submitted? Green when it is in pending or running status Yellow for warning Red for the errors Do you know these colours are controlled by a profile called FND: Indicator Colors. If you se the value to Yes, you will these colors, if you say No, you will see no colors. Also I noticed, the prameters that are required while submiting the concurrent program usually show up in Yello color (standard for required fields). If you set this profile value to No, even they are becoming white. Try it and feel the effect !
Posted by Muhammad Rafi Aamiri Madani

Increasing Auto Invoice Performance


Muhammad Rafi Aamiri Madani on Tuesday, September 8, 2009

The performance of Auto Invoice is affected by several factors. Checking the following could improve performance considerably. When using the interface_line_attribute fields, create indexes on RA_INTERFACE_LINES_ALL for these fields. Use the minimum number of interface_line_attribute fields.

Some installations use RA_INTERFACE_DISTRIBUTIONS_ALL to populate accounting details while populating segments instead of code combination IDs. In this instance, create an index for segments to improve performance. If possible, populate all the code IDs for the RA_CUSTOMER_TRX_TYPES_ALL, MTL_SYSTEMS_ITEMS, and RA_TERRITORIES tables in RA_INTERFACE_LINES_ALL instead of passing values. When loading more than 5,000 invoices, split them into batches of 5,000. A batch of more than 5,000 rapidly decreases Auto Invoice performance. For a batch with 3,000 to 5,000 invoices, run more than one instance of AutoI nvoice by giving a value between five and eight in the Number of Instances field in the Auto Invoice Run screen. This will split your data into five to eight batches (and five to eight import programs), increasing performance.

The amount of memory allocated to Auto Invoice for validation can affect performance. \Navigate System System Options Invoice and Customers and enter three MB in the Max Memory (In Bytes) field.

SQL*Trace to uncover bottleneck areas.

Posted by Muhammad Rafi Aamiri Madani

Common Queries - Responsibility


Muhammad Rafi Aamiri Madani on Friday, September 25, 2009

List of Responsibilities

SELECT (SELECT application_short_name FROM fnd_application fa WHERE fa.application_id = frt.application_id) application, frt.responsibility_id, frt.responsibility_name FROM apps.fnd_responsibility_tl frt; Menus associated with Responsibility

SELECT DISTINCT a.responsibility_name, c.user_menu_name FROM apps.fnd_responsibility_tl a, apps.fnd_responsibility b,

apps.fnd_menus_tl c, apps.fnd_menus d, apps.fnd_application_tl e, apps.fnd_application f WHERE a.responsibility_id(+) = b.responsibility_id AND AND AND AND AND AND a.responsibility_name p_responsbility_name b.menu_id b.menu_id = c.menu_id = d.menu_id

e.application_id = f.application_id f.application_id = b.application_id a.LANGUAGE = 'US';

Sub Menus and Function attached to this Main Menu

SELECT c.prompt, c.description FROM apps.fnd_menus_tl a, fnd_menu_entries_tl c = c.menu_id

WHERE a.menu_id AND

a.user_menu_name = p_menu_name;

Assigned Responsibility to a User

SELECT DISTINCT u.user_id ,SUBSTR (u.user_name, 1, 30) user_name ,SUBSTR (r.responsibility_name, 1, 60) ,SUBSTR (a.application_name, 1, 50) FROM fnd_user u, fnd_user_resp_groups g, fnd_application_tl a, fnd_responsibility_tl r WHERE g.user_id(+) AND AND AND = u.user_id responsibility application

g.responsibility_application_id = a.application_id a.application_id g.responsibility_id = r.application_id = r.responsibility_id

ORDER BY SUBSTR (user_name, 1, 30), SUBSTR (a.application_name, 1, 50), SUBSTR (r.responsibility_name, 1, 60);

Responsibility and attached Request Groups

SELECT FROM

responsibility_name responsibility,request_group_name,frg.description fnd_request_groups frg, fnd_responsibility_vl frv

WHERE

frv.request_group_id = frg.request_group_id

ORDER BY responsibility_name;

Request attached to Responsibility Listing

SELECT

responsibility_name, frg.request_group_name

,fcpv.user_concurrent_program_name, fcpv.description FROM fnd_request_groups frg, fnd_request_group_units frgu, fnd_concurrent_programs_vl fcpv, fnd_responsibility_vl frv WHERE AND AND AND frgu.request_unit_type = 'P' frgu.request_group_id = frg.request_group_id frgu.request_unit_id frv.request_group_id = fcpv.concurrent_program_id = frg.request_group_id

ORDER BY responsibility_name;

All Request with Application

SELECT fa.application_short_name, fcpv.user_concurrent_program_name, description,DECODE (fcpv.execution_method_code, 'B', 'Request Set Stage Function', 'Q', 'SQL*Plus', 'H', 'Host', 'L', 'SQL*Loader', 'A', 'Spawned', 'I', 'PL/SQL Stored Procedure', 'P', 'Oracle Reports', 'S', 'Immediate', fcpv.execution_method_code ) exe_method, output_file_type, program_type, printer_name,minimum_width, minimum_length, concurrent_program_name,concurrent_program_id FROM fnd_concurrent_programs_vl fcpv, fnd_application fa

WHERE fcpv.application_id = fa.application_id ORDER BY description

Request Status Listing

SELECT f.request_id ,pt.user_concurrent_program_name user_concurrent_program_name ,f.actual_start_date actual_start_date ,f.actual_completion_date actual_completion_date

,floor(((f.actual_completion_date-f.actual_start_date)*24*60*60)/3600) || ' HOURS ' || floor((((f.actual_completion_date-f.actual_start_date)*24 *60*60) - floor(((f.actual_completion_date-f.actual_start_date)*24*60 *60)/3600) *3600)/60) || ' MINUTES ' || round((((f.actual_completion_date-f.actual_start_date)*24*60*60) - floor(((f.actual_completion_date-f.actual_start_date)*24*60*60)/ 3600) *3600 - (floor((((f.actual_completion_date-f.actual_start_date)*24*60*60) - floor(((f.actual_completion_date-f.actual_start_date)*24*60*60)/3600) *3600)/60)*60) )) || ' SECS ' time_difference, DECODE (p.concurrent_program_name,'ALECDC' ,p.concurrent_program_name||'['||f.description||']' ,p.concurrent_program_name) concurrent_program_name ,decode(f.phase_code,'R','Running','C','Complete',f.phase_code) Phase ,f.status_code FROM apps.fnd_concurrent_programs p ,apps.fnd_concurrent_programs_tl pt ,apps.fnd_concurrent_requests f WHERE f.concurrent_program_id = p.concurrent_program_id AND AND AND AND AND f.program_application_id = p.application_id f.concurrent_program_id = pt.concurrent_program_id f.program_application_id = pt.application_id pt.language = USERENV('Lang') f.actual_start_date IS NOT NULL;

Posted by Muhammad Rafi Aamiri Madani

API for Customer Conversion


Muhammad Rafi Aamiri Madani on Friday, November 13, 2009

STEP 1 STEP 2

Create Party using the API hz_party_v2pub.create_organization

Once party is created then the customer accounts should be created using the API

hz_cust_account_v2pub.create_cust_account STEP 3 Party & Accounts are created, customer account sites and its uses should be created. But before that location and party_sites should be created and attached to party. hz_location_v2pub.create_location API is used to create location. hz_party_site_v2pub.create_party_site API is used to create party_site. STEP 4 Now that we have created the party_sites next is to create customer site using API hz_cust_account_site_v2pub.create_cust_acct_site STEP 5 The site use(SHIP_TO, BILL_TO etc.) can be created using APIhz_cust_account_site_v2pub.create_cust_site_use For BILL_TO the customer profiles can be created using APIhz_customer_profile_v2pub.create_customer_profile

Posted by Muhammad Rafi Aamiri Madani

FAQ Account Receivables


Muhammad Rafi Aamiri Madani on Sunday, November 29, 2009

Adjust the payment terms to run from the date that a service was provided The 'Payment Terms' field is linked to the Transaction 'Date' field. This field can be backdated to the date that the service was provided; the standard 30 days payment terms will start from that date and the due date will be adjusted accordingly. Check when payment is due for an invoice To see a summary of a Transaction (invoice), enter the AR responsibility and select Collections, followed by Transaction Overview. Enter the invoice number if known, or use one of the range of other search fields, then click on 'Find'. Due date is one of the fields displayed. Obtain a copy of an invoice I've raised Enter the AR responsibility; under Transactions, Transactions. From the Transactions screen, select the 'View' menu, then 'Requests'. From the 'Find Requests' screen, click on 'Submit a New Request'. Make sure 'Single Request' is selected and click on 'OK'. In the 'Name' box enter 'DCC Emailed Transaction (Copy)'. Enter the Invoice number you wish to

view; the email address field is pre-populated with your email address although the address can be changed if necessary. Submit the request. The copy purchase order will then be issued. Please note that although the invoice will be marked 'Copy', it will not be printed on controlled stationery and as such should not be used to re-issue an invoice to a customer. If a customer contacts you having misplaced an invoice please ask Oracle Admin to reissue the invoice to the customer on your behalf. View a list of invoices raised to customers which are currently outstanding Follow the steps above and select 'Single Request'. In the 'Name' box, enter 'Aging 7 Buckets By Salesperson'. A list of Parameters will appear. For 'Report Summary', select 'Invoice Summary'. For 'Report Format', select 'Detailed'. For 'Aging Bucket Name', select 'Collections'. Under 'Salesperson', select the name of your school. Submit the request. The subsequent report gives an aged debtor report for each of your invoices. Cancel an invoice that I've raised On occasion you may raise an invoice in error; perhaps the invoice was issued to the wrong customer, or sent to the wrong address. The problem can easily be rectified in Oracle by issuing a credit note to the customer. To raise a credit for the entire value of the invoice, first select 'Transactions', then 'Credit Transactions' from the Accounts Receivable responsibility in Oracle. Enter the invoice number you wish to credit in the 'Number' field and click on 'Find. If the number entered is valid a window labelled 'Credit Transactions' will open; enter a reason for the credit, and a contact name and telephone number to appear on the credit note. Click on the button marked 'Credit Balance'; Oracle will automatically credit the outstanding balance on the invoice. Click on 'Complete and make a note of the credit memo 'Number; a credit note will be sent to the customer. Change the value of an invoice that I've raised Although you can't amend an invoice once it has been issued, you can either raise a credit, or an additional charge, to the customer. If you've overcharged a customer on an invoice, you are able to issue a credit note against part of the value of that invoice. Follow the steps above to locate the invoice you wish to credit and add a reason and contact details to the credit note.

Click on 'Credit Lines'; enter the amount you wish to credit as a minus figure against the line or lines that the credit relates to. Close the 'Lines' window and click on 'Complete'. Make a note of the credit memo 'Number' for future reference. If you have undercharged the customer on the original invoice you will need to raise a new invoice to charge the customer for the balance.
Posted by Muhammad Rafi Aamiri Madani

Types of Concurrent Manager


Muhammad Rafi Aamiri Madani on Sunday, November 29, 2009

Concurrent Program A program that implements a business functionality and needs to be executed again and again at regular interval or as per business needs is called concurrent program. They can be implement in PL/SQL, Shell Script, C/C++ etc.. Concurrent Manager Now when a concurrent program is written, it needs to be executed daily at particular time. If we do it manual, there might be chances of delays or it might happen that two different people run the same program at the same time which might lead problems. So we need a manager which can do all this tasks for us. The responsibility for execution of concurrent programs is given to Concurrent Manager, which ensures that each concurrent program can run successfully without any conflicts. They also ensures that the applications are not overwhelmed with requests. They also manages the batch processing and report generation. The default installation of Oracle Applications comes with a number of pre defined concurrent managers however you can create your custom concurrent managers to spread out the load of your job processing. Apart from taking care of the load of your jobs the concurrent managers can also schedule the jobs periodically. Also we can assign specific priority and specific times to the different programs, so that the concurrent managers can run them in specific workshifts. Concurrent managers also allows you to tweak the number of concurrent process that it can handle concurrently. If any request exceed this prescribed limit they are automatically put on pending state. The processing of a request takes place based on the time of request submission and priority of the request submitted.

There are many pre-configured Concurrent Managers, each governing flow within each Oracle Apps areas. In addition there are "super" Concurrent Managers whose job is to govern the behavior of the slave Concurrent Managers. The Oracle e-Business suite has three important master Concurrent Managers: Internal Concurrent Manager The master manager is called the Internal Concurrent Manager (ICM) because it controls the behavior of all of the other managers, and because the ICM is the boss, it must be running before any other managers can be activated. The main functions of the ICM are to start up and shutdown the individual concurrent managers, and reset the other managers after one them has a failure. Standard Manager Another important master Concurrent Manager is called the Standard Manager (SM). The SM functions to run any reports and batch jobs that have not been defined to run in any specific product manager. Examples of specific concurrent managers include the Inventory Manager, CRP Inquiry Manager, and the Receivables Tax Manager. Conflict Resolution Manager The Conflict Resolution Manager (CRM) functions to check concurrent program definitions for incompatibility rules. However, the ICM can be configured to take over the CRM's job to resolve incompatibilities. Apart from these three concurrent manages there is another type of concurrent manager known as the Transaction Manager also exists. The transaction manager is responsible for taking the load off the concurrent request table for pooling the request submitted by the user.The transaction manager takes care of these requests and sends it to standard manager directly.In a RAC environment the Transaction manager is required to be activated on each node of the RAC environment. From the front end you could view the status of your concurrent manager by logging with the System Administration responsibility and going to the Concurrent Manager administer screen.

The status of concurrent managers and the nodes on which they are configured can also be known from the Oracle Applications manager.

Concurrent Manager Processes

The concurrent managers are like other process which run on the oracle applications executable FNDLIBR. The FNDLIBR executable is located at $FND_TOP/bin. You could also grep the FNDLIBR executable to check if any concurrent manager process are running $ ps -ef|grep FNDLIBR The $FND_TOP/sql/afcmstat.sql script gives you a list of concurrent managers and their respective status. Below is the list of Most of the Concurrent manager processes. FNDLIBR manages following Managers Marketing Data Mining Manager Transportation Manager Session History Cleanup UWQ Worklist Items Release for Crashed session Collections Manager OAM Metrics Collection Manager Contracts Core Concurrent Manager Standard Manager WMS Task Archiving Manager Oracle Provisioning Manager

INVLIBR manages following Managers Inventory Manager

MRCLIB manages following Managers MRP Manager

PALIBR manages following Managers PA Streamline Manager

FNDSM The Generic Service Management Framework Process

FNDSM is executable and core component in GSM ( Generic Service Management Framework discussed above). You start FNDSM services via application listener on all Nodes in Application Tier in E-Business Suite.

Concurrent Manager Scripts Oracle supplies several useful scripts, (located in $FND_TOP/sql directory), for monitoring the concurrent managers:

afcmstat.sql afimchk.sql afcmcreq.sql afrqwait.sql afrqstat.sql

Displays all the defined managers, their maximum capacity, pids, and their status. Displays the status of ICM and PMON method in effect, the ICM's log file, and determines if the concurrent manger monitor is running. Displays the concurrent manager and the name of its log file that processed a request. Displays the requests that are pending, held, and scheduled. Displays of summary of concurrent request execution time and status since a particular date.

Displays the operating system process id of the FNDLIBR process based on a afqpmrid.sql concurrent request id. The process id can then be used with the ORADEBUG utility. Displays the process id, terminal, and process id that may be causing locks that the ICM and CRM are waiting to get. You should run this script if there are long delays when submitting jobs, or if you suspect the ICM is in a gridlock with another oracle process.

afimlock.sql

Posted by Muhammad Rafi Aamiri Madani

Adding DBlink from GL Responsibility


Muhammad Rafi Aamiri Madani on Tuesday, December 1, 2009

To create an FSG report from Database instance "UAT" to instance "PROD" (import the report). The COA setup of both instance should be the same. Only one step needed : From GL Super User, navigate to (N) Setup System Database Links

Specify the below, Database Connect String Domain Name APPS User Name APPS password UAT
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=192.168.10.139) (PORT=1522)) (CONNECT_DATA=(SERVICE_NAME=UAT)))

WORLD APPS apps (use your password)

Done, You could try to import the FSG report from UAT instance to PROD instance Note: The connect string is the same connection string taken from client's (e.g. your PC) tnsnames.ora file
Posted by Muhammad Rafi Aamiri Madani

Initialize Session
Muhammad Rafi Aamiri Madani on Tuesday, December 8, 2009

If you are working with Oracle Applications, here's how you can initialize your session in whatever tool you are using to mimic the login process and pick up profile option values. The key profile option here is usually org_id so you can select from organization aware views, but it applied equally to other profile options, i.e. you can then use fnd_profile.value('PROFILE_OPTION_NAME'); to get values from profile options. You need to be logged into the database as the APPS user. The examples set up the session for SYSADMIN user, System Administrator responsibility. e.g. SQL*Plus exec fnd_global.apps_initialize(0,20420,1); e.g. for PL/SQL, TOAD, SQLDeveloper, SQL Navigator etc.: begin fnd_global.apps_initialize(0,20420,1); end; The parameters used here are:

1. 2. 3.

User_ID Responsibility_ID Responsibility_Application_ID

To get these you have a couple of choices a) SQL - Replace SYSADMIN and System Administrator with your user and responsibility: select 'begin fnd_global.apps_initialize(' || fu.user_id || ',' || fr.responsibility_id || ',' || fr.application_id || '); end;' || chr(10) || '/' from , where and fnd_user fu fnd_responsibility_tl fr fu.user_name = 'SYSADMIN' fr.responsibility_name = 'System Administrator';

b) In your Oracle Applications forms session. Login as your user and navigate to the required responsibility. Open a function that uses Oracle forms Go to Help > Diagnostics > Examine In the Block enter $PROFILES$ In the field enter the appropriate field name for the parameter:
1. 2. 3.

User_ID = USER_ID Responsibility_ID = RESP_ID Responsibility_Application_ID = RESP_APPL_ID

Posted by Muhammad Rafi Aamiri Madani

Anda mungkin juga menyukai