Friday, December 31, 2010

Registering Disco Workbook in Apps R12


1) Create the workbook

2) Open the workbook in the Discoverer Desktop or Plus edition and go to
'File->Manage Workbooks->Properties' look for the value for 'Identifier'. Save this value.

3) Create a form function. The form function definition includes the properties listed in these tabs:

3.1 Description tab:
3.1.1 Function Name: XX_[FUNCTION_NAME] (it is accepted practice to identify customizations with an XX prefix)
3.1.2 User Function Name: This is the name that will show in the menu
3.1.3 Description: Add a description of the function if you want.

3.2 Properties tab:
3.2.1 Type : SSWA jsp function
3.2.2 Maintenance Mode Support: Leave as "None"
3.2.3 Context Dependence: Leave as "Responsibility"

3.3 Form tab:
3.3.1 Form: Leave the field blank.
3.3.2 Application: Leave the field blank.
3.3.3 Parameters: mode=DISCO&workbook=(workbook identifier from step2)&parameters=(Disco parameters name/values)

3.4 Web HTML tab:
3.4.1 HTML call : OracleOasis.jsp

3.5 Web Host tab:
3.5.1 Leave all fields blank.

3.6 Region tab:
3.6.1 Leave all fields blank.

3.7 Save the form.

4) Open the menu form as sysadmin.

4.1 Search for the main menu under which you want the link to appear.
4.2 Add the information you need such as prompt, submenu, description etc.
4.3 Enter into the Function field the name of the function you created in step 3.
4.4 Save the menu form.

A message will appear saying that a concurrent program will run to regenerate the menus.

5) Set below Profile options, if your End User Layer Name = EUL_US
ICX: Discoverer Default End User Layer Schema Prefix = EUL
ICX: Discoverer EDW End User Layer Schema Prefix = US

6) Bounce Apache and Forms.

Tuesday, December 28, 2010

A is for ALPHA, it’s really all Greek,

B is for BRAVO, “three cheers” so to speak,

C is for CHARLIE, a Drake with a smile,

D is for DELTA, the mouth of the Nile,

E is for ECHO, a Sonar type ping,

F is for FOXTROT, a dancing type thing,

G is for GOLF, played with Ball and with Club,

H is for HOTEL, a posh sort of club,

I is for INDIA, far, far away,

J is for JULIET, in Shakespeare’s play,

K is for KILO, a thousand to you,

L is for LIMA, and thats in Peru,

M is for MIKE, makes your voice “loud and clear”,

N is for NOVEMBER, quite late in the year,

O is for OSCAR, a Wilde sort of chap,

P is for PAPA, a backward ApAp,

Q is for QUEBEC, far over the sea,

R is for ROMEO, ‘neath balcony,

S is for SIERRA, a mountain in Spain,

T is for TANGO, and dancing again,

U is for UNIFORM, white, black or blue,

V is for VICTOR, the man who beat you,

W is for WHISKEY, which TT’s deride,

X is for XRAY, to see your inside,

Y is for YANKEE, a New England man,

Z is for ZULU, he’s black (or dark tan!).

Friday, December 24, 2010

Pune Goa Direction

I know I am writing very late but it is for any on who wants to take NH 4 passing by Satara, Kolhapur and on the way to Belgaum. The road is wide, a high way and you can easily go up to a speed of 120-150. And is a nice ride.
Follow the Satara Road, go past kolhapur and then from Shankreshwara take a right turn.You will have to go down underthe bridge to take the right turn.
The small road will take you Gadgilanj or soemthing like this.Then coems Amboli Ghat and after that Sawantwadi.
From Sawantwadi its straight to Goa in 1 hour.
The whole journy for me takes not more then 8 to 10 hours driving with a speed of 100-120 on the highways and 60-80 on the inroads wiht one or two half hour stops in between. The distance is 450 kms approximately.
-----------------------------------------------------------------

to reach faster ...do pune to belgaum on the GQ ..u can easily do the 330 odd kms in about 4-5 hrs ...from belgaum you can tak eteh NH4A to panaji via Londa ...its a superb drive but you have to watch out for dumper trucks and also for loose sand on the corners ....

from belgaum to panaji its about 150 kms ...which should take you about 2.5 to 3 hours ...so the total time through this route should take about 8-10 hours max ..

-------------------------------------------------------------------


Pune - Satara - Kolhapur - Kagal - Nipani - Uttur - Ajara - Amboli - Sawantwadi - Goa. Total distance 491 kms. Driving speed 80Kmph in my friends van on the 4 lane NH-4 and between 60 - 80 kmph on State Highways 121 and 123 between Sankeshwar and Sawantwadi. Surprisingly it took us 8 hours and 45 minutes at these speeds to reach Goa with 2 Fuel stops, 1 flat tyre repair, 1 break for lunch and 1 at the Amboli waterfall.

For a better driving experience, get into Kolhapur city, ask for directions in the crowded and narrow laned town for 'Rankala' (This is a huge lake/reservoir). On reaching Rankala ask for directions to Gaganbawda ghat and enjoy the drive. This road takes you to Kankavli on NH-17 (Bombay - Goa highway) which is about 100 kms north from Sawantwadi. This route extends the journey distance by about 85-90 kms.

Other alternate route as mentioned by Satya. One from the same route is to go via Chorla ghat this is between Belgaum and Panji. Try this resort for a stay http://www.wildernest-goa.com/ . You will have to leave your car in their guarded parking lot. They transport you to the resort on bullock carts.

------------------------------------------------------------------

have driven many times from various routes from Pune to Goa and found that route via Tamhini ghat-NH17 is more time consuming as compared to Route via Kolhapur-amboli-sawantwadi. This has become faster with 4 lanes on bangalore highway taking you to kolhapur in just 3 hours. Amboli ghat/Sawantwadi is scenic but NH17 has its own charm. Route via chiplun is even longe

Wednesday, December 15, 2010

item supply/demand - basics on calculation

http://forums.oracle.com/forums/thread.jspa?threadID=665964


Depends a lot on how your instance is configured (mfg is there or not, external ATP sources are used or consigned inventorry exists etc)

For simple site in a distribution company looking back into my notes, here are the details:

this form is based on a table mtl_supply_demand_temp. This table is usually empty, but you can find rows here if you query the table when you are in the form after you query the form (don't close the details block, it will delete the records from this table).

One ATP rule will be automatically created in mtl_atp_rules table for every session and is used to identify the supply and demand sources. If you look at the ATP rule screen you will get an idea for the demand and supply for the quantity.

As far as the calculation goes, depending on the sources for demand and supply used in the ATP rule created, it will look at the following tables:

Supply:
mtl_supply (PO and req)
mtl_onhand_quantities_detail (onhand)
wip_discrete_jobs (wip jobs)
mrp_org_quantity_v and mrp_plans (production schedules) to name a few for supplies

Demand:
mtl_reservations
mtl_material_transactions_temp
again mrp plans may also be used if there is a component demand.



traditional form launches the native C function "INXDSD" from the INVDVDSD procedure



I tried using the same code used by the form in SQL. It worked. The only issue is that the ATP group Id specific to this request is not populating appropritely. It is always populating as 0. If I register as concurrent program probably it will populate correctly. This is required in order to delete the rows correctly belonging to that session from the mtl_supply_demand_temp at the end of the session.

You can try that if you are Ok with that approach. This way you do not have worry about finding out the tables to query. Here is that I did.

DECLARE
l_seq_num NUMBER;
rtvl NUMBER;
args1 VARCHAR (240);
args2 VARCHAR (240);
args3 VARCHAR (240);
args4 VARCHAR (240);
args5 VARCHAR (240);
args6 VARCHAR (240);
args7 VARCHAR (240);
args8 VARCHAR (240);
args9 VARCHAR (240);
args10 VARCHAR (240);
args11 VARCHAR (240);
args12 VARCHAR (240);
args13 VARCHAR (240);
args14 VARCHAR (240);
args15 VARCHAR (240);
args16 VARCHAR (240);
args17 VARCHAR (240);
args18 VARCHAR (240);
args19 VARCHAR (240);
args20 VARCHAR (240);
l_session_id NUMBER;
l_count NUMBER;
cutoff_date_j NUMBER;
l_total_temp VARCHAR2 (30);
l_avail_qty_temp VARCHAR2 (30);

CURSOR c1
IS
SELECT inventory_item_id
FROM mtl_system_items_b
WHERE organization_id = 204 AND segment1 IN ('AS18947', 'AS81414');
BEGIN
fnd_global.apps_initialize (1072, 50346, 401);
--fnd_profile.put ('CONC_DEBUG', 'TC');
/* fnd_global.initialize (session_id => l_session_id
, user_id => 1072
, resp_id => 50346
, resp_appl_id => 401
, security_group_id => 0
, site_id => 0
, login_id => 1833382
, conc_login_id => -1
, prog_appl_id => 401
, conc_program_id => 33808
, conc_request_id => fnd_global.conc_request_id
, conc_priority_request => -1
, form_id => 52654
, form_appl_id => 401
, conc_process_id => NULL
, conc_queue_id => NULL
, queue_appl_id => NULL
, server_id => 147
);*/
inv_globals.set_org_id (204);

SELECT mtl_demand_interface_s.NEXTVAL
INTO l_seq_num
FROM DUAL;

SELECT TO_CHAR (SYSDATE, 'j')
INTO cutoff_date_j
FROM DUAL;

FOR i IN c1
LOOP
IF (inv_tm.launch ('INXDSD'
, 'GROUP_ID='
|| TO_CHAR (l_seq_num)
|| ' '
|| 'ORGANIZATION_ID='
|| TO_CHAR (204)
|| ' '
|| 'INVENTORY_ITEM_ID='
|| TO_CHAR (i.inventory_item_id)
|| ' '
|| 'ONHAND_SOURCE='
|| TO_CHAR (1) --1 ATP Only, 2 For Net Subinventories, 3 all subinvs
|| ' '
|| 'CUTOFF_DATE="'
|| TO_CHAR (cutoff_date_j)
|| '" '
|| 'MRP_STATUS='
|| TO_CHAR (1)
|| ' '
|| 'ONHAND_FIELD=l_total_temp'
|| 'AVAIL_FIELD=l_avail_qty_temp'
, l_total_temp
, l_avail_qty_temp
) = FALSE
)
THEN
DBMS_OUTPUT.put_line ('FAILED');
ELSE
DBMS_OUTPUT.put_line ('SUCCESS');
DBMS_OUTPUT.put_line (l_total_temp);
DBMS_OUTPUT.put_line (l_avail_qty_temp);

INSERT INTO xx_mtl_supply_demand_temp
SELECT *
FROM mtl_supply_demand_temp
WHERE seq_num = 0;
END IF;
END LOOP;

-- fnd_profile.put ('CONC_DEBUG', NULL);
BEGIN
DELETE FROM mtl_atp_rules
WHERE rule_id IN (SELECT atp_rule_id
FROM mtl_group_atps_view
WHERE atp_group_id = 0);
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;

BEGIN
DELETE mtl_group_atps_view
WHERE atp_group_id = 0;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;

BEGIN
DELETE mtl_supply_demand_temp
WHERE seq_num = 0;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;

inv_utilities.do_sql ('commit');END;

As you can see I have to use seq_num as zero it was always populating as zero in this table where as from form it populates correctly.

Since this is a function, probably you can use this in discoverer queuries (I am not sure). Then query this custom table (mirror of mtl_supply_demand_temp) to show the report.

Tuesday, December 14, 2010

Bhargavi's Milestones


Craig Elementary 12 Aug 2015

Upper Front Incisor 14 Jul 2015

Upper Front Incisor 28 Jun 2015

Lower Front Incisor  7-Oct-2014

Lower Front Incisor  21-Sep-2014

Grace Christian Academy  Jun 2014

Parkway Preschool   Aug 2013

Zion Preschool   May 2012

Reached US - 16th Apr 2012

1st Complaint @ Play School - 30-Nov-2011 ( bday ) - Slapped Vedant

Play School - 13-Jun-2011 ( bday )

Walking w/o support - 13-Dec-2010 ( bday )

Walking with support - 18-Nov-2010

Standing Up with Support - 13-Nov-2010 ( bday )

Crawling - 8-Aug-2010

Sitting - 6-Aug-2010

Turning Over - 29 Mar 2010

Welcome - 13 Jan 2010

How to Run-In your new car

http://www.team-bhp.com/web/index.php?categoryid=13&p2_articleid=25

Although this is a controversial topic, we stand by the opinions of the manufacturers – after all, who knows your engine better than the company that made it? There are good reasons most manufacturers ask you to take it easy during the initial running period. Call us conservative, but we recommend the tried and tested method. The moving parts of your new engine need an adjustment period before reaching normal operating conditions, and these conditions are determined by how the engine has been run-in. The run-in involves settling the piston rings and ensuring that the bearings and cylinders wear evenly, but it’s not only the engine that needs a running-in. The transmission, tyres and brakes all benefit from it too.

• We recommend that you warm up the engine before putting it under any load.

• A 2,500 km running-in period is ideal. After this, you can high-rev her away to glory.

• For a petrol engine do not allow the RPMs to go over 2,500 for the first 1,000 km. After that, you can increase the limit to 3,000 RPMs until 1,500 km and then gradually increase it to the maximum by 2,500 km.

• Long highway trips or time spent in bumper-to-bumper traffic is bad for the run-in process. The key to the run-in is to subject the engine to a wide range of RPMs, so you will probably have to alter your driving style and make a point of driving under various conditions.

• Team-BHP recommends that you change your engine oil after the first 1,000 km. As with all new engines, you will find that some metal slivers have found their way into the oil. From this point onward you can stick to the manufacturer recommended intervals.

• Do not use synthetic oil for the first 10,000 km. The impressive lubrication properties of synthetic oil only slow the run-in process.

By following these simple steps you can help ensure that your engine reaches its maximum performance and endurance condition. This will maximize you car’s power, fuel economy and engine life. Many new cars are designed to minimize damage from a poor running-in, but even these engines benefit from the advantages of a proper run-in regime.

Saturday, November 6, 2010

http://money.outlookindia.com/article.aspx?87530

Should borrowing be only a last-resort option to raise money?


AMONG THE many questions that clients raise with a tax consultant, one of the most common is: "I need funds for such and such purpose. Given the fact that loans are available, should I borrow or would it be better to encash my investments and raise the money?" Tough decision on the face of it, but one that can easily be taken if one carefully assesses various qualitative and quantitative factors.
Among the qualitative factors, one would look at liquidity, the possibility of reinstating the investment out of future income, restrictive conditions attached to the borrowing and such like. But, of course, the crucial deciding factor will be the quantitative aspect, that is, the loss of post-tax returns from the investment and the post-tax cost of borrowing.


If the post-tax cost of borrowing is higher than the loss of post-tax returns from the investment, it’s better to disinvest your holdings, rather than borrow. If, on the other hand, the post-tax returns from the investment are higher than the post-tax cost of borrowing, it’s a better option to take a loan, than encash your investments.

Post-tax edge. So how does one compute the post-tax rate of returns and post-tax cost of borrowing? In computing the post-tax rate of returns or the cost of borrowing, one has to first compute the annualised rate of return or the cost of borrowing, and then adjust it for tax payments or savings.

To understand this better, let us consider a simple computation in a situation where an individual wants to buy a residential house for Rs 15 lakh. Let’s say he has Rs 5 lakh in hand, Public Provident Fund (PPF) investments that he can withdraw to the extent of Rs 10 lakh and company deposits of Rs 10 lakh that yield 11 per cent per annum compounded quarterly.

So, he has three options.
Option I: he can withdraw Rs 10 lakh from his PPF account.
Option II: he can break his company deposits, but in doing so, he will incur a penalty of 1 percentage point for premature encashment.
And Option III: he can take a home loan from a housing finance company at the rate of 11.5 per cent per annum (payable in equated monthly instalments with monthly reductions in the principal amount).

In the last case, he will have to pay a processing fee of 2 per cent of the amount of the loan.

Option I. In the case of the Public Provident Fund, after the recent reduction in interest rates on small savings, it will yield a return of 9 per cent per annum. Since this interest is paid annually, and there is no charge for withdrawals, the effective rate of return is equal to the coupon rate. Besides, since this interest payment is not taxable, this will be the post-tax rate of return as well.

Option II. At a rate of 11 per cent per annum compounded quarterly (2.75 per cent per quarter), the effective yield is 11.46 per cent. Since we are computing the loss of post-tax interest that arises due to disinvestment, we will also have to factor in the penalty for premature encashment.

The real rate of interest that has been lost due to premature encashment will, therefore, have to be computed by deducting the percentage of the penalty from 100, and dividing the annualised rate of return by this figure. In this case, by dividing 11.46 by 99 (100-1), the adjusted annualised rate of interest will be 11.58 per cent. Since this interest would have been taxable, and as the premature payment penalty would also be tax-deductible, this rate of interest will have to be discounted by 31.5 per cent (30 per cent plus surcharge of 5 per cent, which is the marginal tax rate applicable to the house buyer). Thus, the post-tax loss of interest would be 7.93 per cent.

Option III. In the case of the home loan, by compounding the monthly interest payable, the annualised rate of interest works out to 12.13 per cent. If we factor in the processing charge, we can deduct the charge of 2 per cent from the total loan amount (that, 100 per cent) to arrive at a net borrowing of 98 per cent. The adjusted annualised rate of interest thus works out to 12.37 per cent.

Since interest paid on housing loans is tax-deductible, this payment needs to be discounted by 31.5 per cent, giving us a cost of 8.48 per cent. The rebate available on the repayment of the principal amount of the housing loan will also need to be factored in. Since the rebate is available at the rate of 20 per cent to the extent of repayments of Rs 20,000 each year, and the rebate is to be computed before surcharge, the effective tax saving would be Rs 4,200 each year. On an average outstanding loan of Rs 5 lakh, the effective percentage of rebate works out to about 0.84 per cent. Thus, the post-tax cost of the housing loan from the finance company will be about 7.64 per cent (8.48 per cent minus 0.84 per cent).

What’s beneficial? Comparing the options we find that the post-tax cost of the loan is lower than the post-tax loss of interest in the case of the company deposits or PPF. And so, an individual will be better off taking a home loan to buy a house, rather than encashing either the PPF or the company deposits. If, however, the individual does opt to encash some investments, the company deposits are a better option than the PPF, since the loss of interest is of a lesser magnitude.

In the case that we have taken up, since the loan was being taken to buy a residential house, the interest was tax-deductible. Therefore, before you take a loan it makes sense to take a look at how you are going to utilise the borrowing and whether the interest is deductible for tax purposes. There may be many instances where interest will not be deductible for tax purposes. In such cases, the effective cost of the borrowing is generally far more than the rate of return that one could earn on most investments, and borrowings may, therefore, not be cost-effective.

The computation in the case we have looked at assumes that the eligible deductions on interest repayments and rebates on principal will continue to be available, and that the rates of interest will remain unchanged. In real-life situations, you will need to consider the prevailing tax laws and rates of interest to arrive at your best-case scenarios.

Of course, one can always use other similar methods of computation to compare the merits of various investments. Although other methods such as internal rate of return or net present value of cash flows are often superior decision-making tools, this method offers a simple and quick comparison for a person who is not a finance professional.