xdfgen issue

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

xdfgen issue

VinodNN
Hello Erman!
Facing this issue with xdfgen:

[applmgr@erpigwdintg ~]$ perl $FND_TOP/bin/xdfgen.pl apps EMPLOYEE_PERIOD_TS_DET_SNAP owner_app_shortname=XXNTS

Enter the APPS schema password:

              Copyright (c) 2003 Oracle Corporation
                 Redwood Shores, California, USA
            XDF(XML Object Description File) Generator


Unable to get unique owner/type for the given object name : EMPLOYEE_PERIOD_TS_DET_SNAP

Please provide owner_app_shortname parameter.

The table EMPLOYEE_PERIOD_TS_DET_SNAP exists in two schemas - TNE_APPS and TS_APPS.
TS_APPS is registered as XXNTS, then why this Unable to get unique owner/type error?
And why is it still saying "Please provide owner_app_shortname parameter."

Second case:

[applmgr@erpigwdintg ~]$ perl $FND_TOP/bin/xdfgen.pl apps GBL_FilterData_Compl_Report owner_app_shortname=XXNTS

Enter the APPS schema password:

              Copyright (c) 2003 Oracle Corporation
                 Redwood Shores, California, USA
            XDF(XML Object Description File) Generator


The object Name does not exist in the target database : GBL_FILTERDATA_COMPL_REPORT

Please provide owner_app_shortname parameter.

Table GBL_FilterData_Compl_Report does exist, but looks like it is having upper as well as lower case letters in its name.

Can you please shed some light on these errors.
Reply | Threaded
Open this post in threaded view
|

Re: xdfgen issue

ErmanArslansOracleBlog
Administrator
Lets grab it from one of the cases. Check ->

Whether XXNTS exists in FND_APPLICATION with the exact case you're passing
 Whether the FND_APPLICATION → FND_PRODUCT_INSTALLATIONS → FND_ORACLE_USERID join resolves to TS_APPS
Whether TS_APPS is in FND_ORACLE_USERID
Whether bypassing FND with owner=TS_APPS works — if yes, the FND registration is the problem, not xdfgen
 How XXNTS was originally registered (FNDLOAD .ldt? adsplice? manual?) — likely incomplete
Reply | Threaded
Open this post in threaded view
|

Re: xdfgen issue

VinodNN
Whether XXNTS exists in FND_APPLICATION with the exact case you're passing - it exists

 Whether the FND_APPLICATION → FND_PRODUCT_INSTALLATIONS → FND_ORACLE_USERID join resolves to TS_APPS
SELECT  fa.application_id,
        fa.application_short_name,
        fou.oracle_id,
        fou.oracle_username
FROM    fnd_application fa,
        fnd_product_installations fpi,
        fnd_oracle_userid fou
WHERE   fa.application_id = fpi.application_id
AND     fpi.oracle_id     = fou.oracle_id
and fa.application_id=50005;

50005 XXNTS 50005 TS_APPS

Whether TS_APPS is in FND_ORACLE_USERID -- Yes it is.

Whether bypassing FND with owner=TS_APPS works — if yes, the FND registration is the problem, not xdfgen -- Bypassing owner=TS_APPS does not work, using it also doesn't work

How XXNTS was originally registered (FNDLOAD .ldt? adsplice? manual?) — likely incomplete -- with adsplice. I verified success with following queries:

SQL> select * from fnd_application where application_short_name = 'XXNTS';
This statement should return one row only.

SQL> select * from fnd_product_installations where APPLICATION_ID = 50005;
This statement should return a single row.

SQL> select * from dba_users where username = 'XXNTS' -- user is NOT present
This statement should return one row only.

To ensure the new environment file is picked up, log out and back in again as applmgr, then run the following command to confirm the $XXNTS_TOP environment variable is correctly set:
$ env | grep XXNTS -- works

Run the following command to check the file system has been created correctly. You should see a directory listing returned as shown:
$ ls $XXNTS_TOP
admin log mesg out sql -- works
Reply | Threaded
Open this post in threaded view
|

Re: xdfgen issue

ErmanArslansOracleBlog
Administrator
For Case 1:

SELECT table_name, application_id
FROM ad_tables
WHERE table_name = 'EMPLOYEE_PERIOD_TS_DET_SNAP';

--> If 0 rows return: The table exists in the database but isn't registered in the EBS dictionary. You must register it using the AD_DDL package or FND_TABLE_PKG.Register. If it returns a row but the application_id belongs to TNE_APPS: That is why xdfgen is failing; it thinks the object belongs to the other application.
So check!


For Case 2:

SELECT owner, table_name
FROM dba_tables
WHERE upper(table_name) = 'GBL_FILTERDATA_COMPL_REPORT';

---> Let's see if it comes back in mixed case. If it is in upper case, ensure APPS account has a synonym for or direct access to. Ensure a public synonym exists or that APPS has explicit grants on it.
Reply | Threaded
Open this post in threaded view
|

Re: xdfgen issue

VinodNN
I think there is a typo.. I couldn't find any object names AD_TABLES..

Does xdfgen fail if the table of the same name exists in two different custom schemas?
Reply | Threaded
Open this post in threaded view
|

Re: xdfgen issue

ErmanArslansOracleBlog
Administrator
Sorry. It should be AD_OBJECTS and FND_OBJECTS.

Note that, AD_OBJECTS can also be used to check the object status to see whether the object is “actual” (a real object) in the current edition, or a "stub" object (the object definition was inherited from a previous edition).

And yes, it will probably fail if a table with the exact same name exists in two different schemas
Reply | Threaded
Open this post in threaded view
|

Re: xdfgen issue

VinodNN
Thanks, Erman! This helps.
Regards,
Vinod