Extract Employee and Supervisor Based on Position Hierarchy

This SQL will give you employee and Supervisor as per position hierarchy .

/* Formatted on 2009/10/19 15:01 (Formatter Plus v4.8.8) */
SELECT LPAD (‘ ‘, 5 * LEVEL) || has.NAME hierarchy, LEVEL,
hap.NAME parent_name, pse.parent_position_id, has.NAME child_name,
pse.subordinate_position_id
FROM (SELECT NAME, position_id
FROM hr_all_positions_f_tl
WHERE LANGUAGE = USERENV (‘LANG’)) hap,
(SELECT NAME, position_id
FROM hr_all_positions_f_tl
WHERE LANGUAGE = USERENV (‘LANG’)) has,
per_pos_structure_elements pse
WHERE pse.business_group_id = 81
AND hap.position_id = pse.parent_position_id
AND has.position_id = pse.subordinate_position_id
start with pse.parent_position_id = –40979 Base Position Id (like CEO etc)
CONNECT BY PRIOR pse.subordinate_position_id = pse.parent_position_id
AND PRIOR pse.pos_structure_version_id = pse.pos_structure_version_id
AND PRIOR pse.business_group_id = pse.business_group_id
ORDER BY 4

Oracle Procurement Contract (a step by step user guide)

Oracle Business Intelligence Applications 7.9.6 step by step installation and Configuration with screen shots.

Visit ERPstuff.com to download Installation and configuration Guide Version 1.0

Link

Note:- you have to be a registered member and should have access to Documents (Tutorials) Section in Forums

SQL Query to Get Diffrence in Values for Profile Options assigned on USER Level

I got this Query from Gareth Roberts BLOG …Very Very Useful during implementation specially if there are some custom profile options .

I used to work for a home appliances Manufacturing Organization . we used some custom profile options to setup level of security for Sales Manage, Sales Man and Warehouse User. Some Time we faced issues and the and discovered that it’s wrong profile option assignment.

/* Formatted on 2009/08/19 08:41 (Formatter Plus v4.8.8) */
SELECT *
FROM (WITH prof_di AS
(SELECT ‘USER’ level_name, fu.user_name level_value,
fpo.profile_option_id, fpot.user_profile_option_name,
fpo.profile_option_name, fpov.profile_option_value
FROM fnd_user fu,
fnd_profile_options fpo,
fnd_profile_option_values fpov,
fnd_profile_options_tl fpot
WHERE fu.user_id = fpov.level_value
AND fpo.profile_option_id = fpov.profile_option_id
AND fpo.profile_option_name = fpot.profile_option_name
AND fpot.LANGUAGE = ‘US’
AND fpov.level_id = 10004
AND fu.user_name = ‘SYSADMIN’), /*User Name Working Fine*/
prof_gr AS
(SELECT ‘USER’ level_name, fu.user_name level_value,
fpo.profile_option_id, fpot.user_profile_option_name,
fpo.profile_option_name, fpov.profile_option_value
FROM fnd_user fu,
fnd_profile_options fpo,
fnd_profile_option_values fpov,
fnd_profile_options_tl fpot
WHERE fu.user_id = fpov.level_value
AND fpo.profile_option_id = fpov.profile_option_id
AND fpo.profile_option_name = fpot.profile_option_name
AND fpot.LANGUAGE = ‘US’
AND fpov.level_id = 10004
AND fu.user_name = ‘AHMADBILAL’) /*User Name Where we are facing some issue*/
SELECT pd.profile_option_id, pd.user_profile_option_name,
pd.profile_option_name, pd.profile_option_value d_value,
pg.profile_option_value g_value,
DECODE (pd.profile_option_value,
pg.profile_option_value, ‘EQUAL’,
‘DIFF’
) status
FROM prof_di pd, prof_gr pg
WHERE pd.profile_option_name = pg.profile_option_name(+)
UNION
SELECT pg.profile_option_id, pg.user_profile_option_name,
pg.profile_option_name, pd.profile_option_value d_value,
pg.profile_option_value g_value,
DECODE (pg.profile_option_value,
pd.profile_option_value, ‘EQUAL’,
‘DIFF’
) status
FROM prof_di pd, prof_gr pg
WHERE pg.profile_option_name = pd.profile_option_name(+))
WHERE status != ‘EQUAL’;

How to Migrate Forms Personalization from One Instance to Other Instance.

It’s very normal during implementation that we need to move all personalization from TEST / DEVELOPMENT to PRODUCTION there are two way (best of my Knowledge)

Method 1
Open TEST instance navigate to form where you did personalization, simultaneously open PRODUCTION instance start copy pasting….. Sounds pathetic (at least to me)
Method 2
Use FNDLOAD (purely a DBA task)
Download for a specific form
FNDLOAD / 0 Y DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct FND_FORM_CUSTOM_RULES form_name=

Download all personalization
FNDLOAD / 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct FND_FORM_CUSTOM_RULES

Upload
FNDLOAD / 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct

For more information you can visit this LINK
http://oracle.anilpassi.com/oracle-fndload-script-examples.html

Daily Business Intelligence Features

Few days back for Pre sales meetings with some clients i was looking for some slides / information about Daily Business Intelligence and Oracle Business Intelligence Application and difference in both.I got some stuff related to Daily Business Intelligence believe it’s worth sharing.

Click to Download

OBIA Data Load by DAC causing Account Lock

I was implementing Oracle Business Intelligence Application 7.9.6. on one client site in Middle East . Everything was fine when my data warehouse was on Oracle Database 10.1.X but on DBA suggestion they changed it to 10.2.0.1.0 . once they changed Database version. it was disaster for me whenever i ran the task from DAC it was showing me Account is Locked…..duhhhhh.

Now DBA was no taking the responsibility at all, by saying this it’s some issue with DAC or TASK. but case was not that at all but i was not able to prove it :(

After some research i got to know in Oracle 10.2 they setup the default option for “FAILED_LOGIN_ATTEMPTS” as 10 so after 10 unsuccessful attempts DAC is Locking user Name i just used following SQL Statement to rectify this issue :)

Alter Profile “DEFAULT” LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

Julian to Gregorian Calender Switch impact on Oracle

Do you see something abnormal in following image?

oct-1582

Yes …….what’s this ……?

And same thing you will see on some other ERP solutions / software once you select September 1752.

Answer

The calendar snippet shows that there are no days between October 4 and October 15. This discontinuity is called the “cutover”.

What is Cutover

“This is a hybrid Julian/Gregorian calendar with a cutover on October 4/15 1582.” Any dates before a cutover are Julian, any dates during a cutover are nonexistent, and any dates after a cutover are Gregorian.

Mass Feature Available in Oracle Purchasing R12

How to Clear Application Cache by Using Funcational Administrator Responsiblity

1- Navigate to Functional Administrator Responsibility
2- Choose the “ Core Services” Tab
3- Choose “Caching Framework”
4- Click on “Global Configuration”
5- Click on “Clear All Cache”
6- The Click on yes on the display which will appear.

Meaningless Details (a story about project management)

I got this story from internet and I believe it’s worth sharing for Project Managers because most of us faced same situation during project management

This is a true story, although the details have been changed to protect the guilty parties.

I was hired as an outside consultant to manage a project for an international corporation. They were producing a new project – a multi-million dollar project that was supposed to go to market within a specific timeframe.

On the initial call with the new product team, I was introduced to the various people including the sponsor, the team leader, and the team. The sponsor turned the meeting over to the team leader and she introduced herself and then introduced the project.

“The codename for this project is ‘Ice’ because we’ll freeze out the competition when this product hits the market”. Okay, fair enough. I was the project manager of Project Ice.

We got started.

Less than a week later, we received a blanket email from the team leader. “We’ve changed the codename to ‘Project Snowstorm’ because we’re going to totally cover the market with this product.” Great! Now I was the project manager for Project Snowstorm.

We continued with the work.

Then, on our weekly team call, the team leader opened the call by saying “I’ve forgotten to tell most of you, but we’ve changed the codename to ‘Avalanche’ because we felt that it more accurately describes how we wanted to take our market by storm with this project.” So now I was the project manager for Project Avalanche.

We continued on the project.

Two days later, we got an email from the team lead: “The Senior V.P.’s don’t like the negative connotations of the term ‘avalanche’ so we’re going to give the codename a more positive spin, ‘Project Fire’ because we’re going to burn up the market!” So now I was the project manager for Project Fire.

And I continued to manage the project’s progress.

Then another email: “We’ve decided to change the codename again. ‘Project Fire’ was too general and didn’t seem like we had any focus, so we’re going to call it ‘Project Laser’.” So now I was the project manager for Project Laser.

… and on it went. The codename of the project changed 14 times. No, that is not an exaggeration or hyperbole. The project really did change codenames that many times.

If you’ve ever managed a project for another company, you know that it can be difficult to flex your project management muscle and say “enough is enough”. In the case of this project, I could have stepped in earlier but there were some political issues at play here and I needed to pick my battles (another lesson for another time).

In the end, the codenames didn’t extend the project timeline too much. But they did create a number of inefficiencies that could not be ignored. The timeline was impacted a little, and people were never sure who to talk to or where to file information or how to refer to the project because it was never clear.

To me, this is a perfect example of how a corporation can get caught up in a meaningless detail (a codename, of all things, and it had absolutely nothing to do with the final product name!) and forget the bigger picture: Completing a project successfully, on time and on budget.

Posted in General. 1 Comment »

Hyperion Startuppp (Appetizer for Hyperion Newbies)

How to Get Approval Group assigned to specific Job and Position in Oracle Purchasing

Remittance Advice by Email to Supplier by Using UTL_SMTP

Some Doubts………..In Oracle Purchasing

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 can’t 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 isn’t 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.

Accrual Accounting – Periodic Accrual on Period End

Debugging the Approval Workflow for Purchase Order or Purchase Requisition

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

How to Turn On “About This Page” in Oracle R12 Web Forms

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

Join Processing in Oracle

In a query involving more than one table, join processing is involved to determine the most optimal plan to perform the join. This comprises:

  1. Join cardinality
  2. Enumerating join orders
  3. Evaluating the costs associated with each join path under each join method.

Join Cardinality

Join cardinality is the determination of the number of rows that will make up the joined relation. In the worst case, we have no join predicates and the cardinality is the Cartesian product of the two or more tables involved. But typically when two or more tables participate in a join, the join is based on values of some columns. Using the statistical descriptions on the columns and the number of rows in each table, we calculate the cardinality of the joined form.

Join Orders

A “Join Order” is a particular permutation of ordering the access to tables participating in the join to complete the joined relation. Join orders depend on the type of join or the join topology. Depending on the structuring of the join predicates, joins can be classified into various types viz chain, star, cycle, complete graph, etc. For example, consider the query with a three table join -

SELECT … FROM t1,t2,t3 WHERE

t1.col1 = t2.col1 AND

t2.col1 = t3.col1 ;

Tables t1, t2 and t3 are joined in a chain order.

Tables t1,t2,t3 can be joined in n! i.e n factorial way .

where n is number of tables .

So in This case it will be 3*2*1=6

Possible join orders:

t1->t2->t3, t2->t1->t3, t2->t3->t1, t3->t2->t1

t1->t3->t2, t3->t1->t2

Note the Join orders such as t1->t3->t2, t3->t1->t2 are evaluated using

Cartesian product as there is no join predicate specified between t1 and t3.

Each of the join orders are possible and need to be evaluated for resource usage. As number of tables increase, depending on the join topology, the search space or the possible permutations go up steeply. Several techniques are used to prune the search space and reduce the work involved in identifying the best join order.

Evaluating Join Path Costs

For each join order, the optimizer evaluates the cost of performing the join by breaking the order into pairs. The first part is made of the relations already joined and the second part of the next table to be joined. Costs are considered using both join methods currently implemented in the kernel, the sort-merge join method and the nested-loops join method.

In the sort-merge method, the tables participating in the join are first sorted by the join columns. The sorted relations are then joined. The cost of performing join by this method includes the sorting costs and the cost of retrieving sorted records to perform the join.

In the nested-loops method, we scan the outer table row one at a time and for each row retrieved, we access the inner table based on the join columns. The outer table will actually be a joined relation where more than two tables are joined. The cost of performing the join in this method includes the cost of accessing the outer table and for each row retrieved and the cost of fetching the group of rows from the inner table based on the join columns.

For each table in a particular join order, there is a large number of possible access paths, the table can be accessed using a ROWID or could be accessed by doing a table scan. Alternatively, it may be accessed using a single index or a cluster scan or a merge of several single column no unique indexes.

Several rules are used to narrow down or prune the search space to speed up access path selection. For example, if there is a lookup by ROWID, it is considered the best and we don’t bother to evaluate other access paths open to the table.

Source := US Education Website

What is Content Set In Financial Statement Generator (FSG).

Content Set In FSG

A content set is used to override row set account assignments to generate different variations of the same report without defining separate reports. Most of the time, content sets are used to generate a given report for every value in a segment of the Chart of Accounts—for example, a Standard report that repeats for each company in the Chart of Accounts. To enter content sets, follow the navigation path Reports à Define à Content Set. Enter the name of the content set, an optional description, and the type. The type determines whether the run order of the reports will be sequential or parallel.

Next, define the Account Assignments for the content set. This is very similar to the Account Assignments form you saw in the Define Rows/Columns form. However, since content set overrides the row set, you do not need to fill in all segments. The segments without any value will fall back to the row set account assignments. Only need to define what display types to use to override the row set. Valid display types are listed in Below Table.

N

No override

CT

Summation of balances of all segment values within the account range.

PE

Expand the account range or parent value into detail segment values. In addition, it will page break after each segment value creating a different report.

PT

Override the account range but maintain the row set display types (E, T, B).

RE

Expand the account range or parent value into detail segment values. Same as E in defining rows.

RT

Total the segment values for the segment. Same as T in defining rows.

RB

Show both detail and total for the account range or the parent value. Same as B in defining rows.