Deleted datasources
Is there a way to find out who deleted the datasources from the InfoSources? This landscape environment that I am working with has no BIQ for locking things up and putting security there for testing the development work. People who are not working on the project have access to the development system. All development work to be tested are left there unsecured. How can this be prevented in the future if you have no BIQ?
Hi,
Thanks for the valuable relpy but I don't see how all this can make the implemenation much easier.
<i>Try to Block all Object change access in Production and allow only display access to all users..</i>
This is obvious in production system.
<i>Try to maintain Sync of both Dev and Prd systems as much as you can ..</i>
I don't think this is possible without the transport system between BID and BIP. BID is for development and you can experiment all sort of things on BID before you test it on BIQ as though it is BIP before you transport to BIP.
<i>most important thing..Transport Objects Carefully as there is no Quality Box.. even a single wrong transport can affect the PRD system...</i>
What's the point here. SAP recommends to have a 1:1 mapping of the ECC systems to BI systems.
I will take this opportunity to rant about this issue. There was this big thing about the issue of why you would have to have the 1:1 mapping of the ECC systems to the BI systems. Presales people are not technical and they think their world revolves around them. They think they do the most important jobs and technical people do the simplest thing to find out how this thing works or not. They worry about the most important things and technical people do not. Without the technical people, their sales efforts are just talk and nothing else. Who is going to implement the systems. Technical people are the people that validate their sales pitches. But sure enough they don't care how you do it just do it no matter how hard it would take for you to slave over it. I don't see the point of not having the BIQ system. I have never worked on projects no BIQ system exist in the landscape.
There were as many as 40 datasources that I created and now all of them have been deleted. I now have to re-assign them, activate them, and create the InfoPackages. I don't have time for this, and they constantly ask for statuses. People not on the project even came up to me and ask me about the statues.
Eveyone wants to rule the world but no one wants to make it a better place to work. Egos are running rampant...
Similar Messages
-
Having trouble to delete datasource from JDeveloper IDE
Hi,
I am having trouble to delete datasource from JDeveloper IDE, neither can I change it.
1. I deleted the datasource entry.
2. Then I delete the entry in SIQA-data-sources.xml file in project root directory. SIQA is my workspace.
3. There is no entry in C:\JDev10g\jdev\system10.1.2.0.0.1811\oc4j-config\data-sources.xml where is embedded oc4j server
after close JDeveloper embeded OC4J Server configuration dialog box and reopen it. It will come back.
I have no way to delete it or change database url.
The version I have is 10.1.2.
I hope to hear response asap.
Thanks in advance.
JQDelete the JDBC Connection in the Connections Navigator corresponding to the data source.
-
How to delete datasource registration from the administration tool?
Hello,
How could I delete datasource registration from the administration tool?
Thank you
KrisztianHi Krisztian,
You can not delete the datasource from the admin tool, but can do so
from the iPlanet registry -
- invoke kregedit
- Go to Software\iPlanet, Application Server, 6.0, DataSource
- Select the datasource you want to delete, Choose Edit-Delete from the menu
to delete the datasource.
Regards,
Jitin Sood.
"Krisztian Maraczi" <[email protected]> wrote in message
news:9kdhb2$[email protected]..
Hello,
How could I delete datasource registration from the administration tool?
Thank you
Krisztian -
Data from a deleted datasource
Hi guys,
I've deleted a datasource and since all data loaded with this datasource seems to be deleted in my cube when I do a report on these. Nevertheless, the requests of these are still in the cube.
Who can say me if the data have been really deleted ? If no, the way to retrieve them ?
MANY THANKS...Thanks for your answer...
Unfortunately the data in the PSA have been deleted in the same time I deleted the Datasource.
Is it normal that the system deletes data already loaded when we delete the datasource? -
To Retreive Deleted datasource-VERY URGENT
Hi BI Gurus,
There was a requirement for us to delete one cube.
By mistake we have deleted the datasource and the transfer rules related to that cube, but that datasource is used by some other cubes also.
Please let me know the possible ways of retreving the datasource and the transfer rules and this is not transported yet.
Thanks in advance.
Kind Regards,
RaghuIf you have saved your Transfer rules few days back then there is a slight possibility to get it. I am not sure if it will work.
Ask your basis team to take a back dated restore of the system. The date should lie betwwen the date you saved and activated your transfer rules and the date you deleted the DS.
But mind you, when you restore the system on a particular date, the henceforth developments will go away.
Regards
Gajendra -
Cannot replicate a datasource in BW, System asks for deletion
Hi All,
When I ask for "Replicate Datasources" in our BW system after an upgrade of R/3, it displays the "Deletion of Datasources" window specifying if we would want to delete the datasource since it cannot be replicated.
In what circumstances, do we get this message ?
Is that because BW is seeing new datasources in R/3 which has not been activated ? Then, why would the BW see the new datasources even if they are not active.
Is it safe to say YES to delete all the datasources that cannot be replicated ?
Thanks,
AlainHi Alain,
as explained in the OSS Note 589361 'Deleting DataSources in BW during replication',
"DataSources that cannot be found (perhaps only temporarily) when a certain component is being replicated are considered obsolete and are deleted...".
So, probably your upgrade process in R/3 deleted some datasource in your source system (no longer in use or no more supported or no more active and available only in D version...).
Try to verify that every datasource used by you is still in RSA6 in R/3...then click YES, I think with no problem...
Hope it helps!
Bye,
ROberto
...and please don't forget to reward the answers...it's THE way to say thanks here ! -
Delete Source System Assignment for a DataMart Infosource in BW3.0B
Hello Experts:
Can one of you assist me with how to delete source system assignment for a system generated infosource(ie., Infosource existing under data Mart). i noticed that in case of an Info Cube, system provides an option to delete the source system assignment but not for an ODS.
I am trying to delete the system data source 8* that has been assigned to the data mart info source 8* and reassign the data source to my custom info source.
Any ideas would be highly appreciated.
BTW, we are on BW3.0B
Thanks,
RagavanHi,
Go into the infosource with change mode. Open the transfer Rule/transfer structure and hit the delete button. It'll ask for delete datasource assignment. That would delete the source system assignment.
Cheers,
Kedar -
DataSource from a productive package to local package
I need to move a DataSource from a productive package (ZUPG) to the
local package ($TMP). From transaction RSA6, I've chosen the "Object
Directory" and tried to change the assignment.
However. the system prevents the user from moving an object from a
productive package to a local or test package. This is the message you
would get if you tried and changed the package to $TMP:
"Object R3TR OSOA 0REGION_TEXT has already been exported and is
therefore known in other systems. It is therefore not possible to
change the package from productive to local (private), since
inconsistencies and errors can occur."
In theory, this should be circumvented by deleting the DataSource, and
releasing the change request thereafter. The DataSource's entry in
TADIR should get deleted and it should be possible to choose the
package $TMP when re-activating the same DataSource again in the system.
However, this is not the case in my system. The entry is not deleted
from the TADIR, even after having released the request which contained
the (deleted) DataSource!
The question is: what could have caused such an inconsistency in
the system's TADIR? Why the entries aren't deleted after releasing the
change request, even though the DataSource had been deleted from the
repository?
Thanks!
SimoHello Kris,
unfortunately your suggestion doesn't work.
As Simone explained in his first message, in fact the system prevents the user from changing the DataSource's directory entry, with the following error message:
<i>Object R3TR OSOA 0REGION_TEXT has already been exported and is therefore known in other systems. It is therefore not possible to change the package from productive to local (private), since inconsistencies and errors can occur.</i>
The system documentation proposes the following steps to switch an object to a local package:
<i>1. Use the appropriate editor to copy the object to a local object with a different name.
2. Then delete the old object. A change request is used to transport this deletion to the other systems.</i>
Finally it is possible to rename the local object.
In other words, the DataSource is in a productive package, and it's been registered in a transport request.
As soon as an object is inserted in a productive package, you're not allowed to move it back to a local or test package anymore. You need to delete it, release the change request and recreate (re-activate in our case) the object again.
However, the system doesn't prompt the user for a package during re-activation (please refer to my previous post), because the involved entry in TADIR is not removed from the transport request at release time.
Cheers, <a href="https://wiki.sdn.sap.com/wiki/display/profile/Davide+Cavallari">Davide</a> -
I am trying to create datasources dynamically. Using an example from a previous
post,
mbeanHome = lookupMBeanHome();
JDBCDataSourceMBean dsMBean = (JDBCDataSourceMBean)mbeanHome.createAdminMBean(poolName,"JDBCDataSource",
mbeanHome.getDomainName());
dsMBean.setJNDIName(poolName);
dsMBean.setPoolName(poolName);
dsMBean.addTarget(tserverMBean);
dsMBean.setPersistenceEnabled(false);
How can I retrieve the proper TargetMBean reference to send to the addTarget method.
Does anyone know where I can find an entire class example of dynamically creating
datasources, or something similar.
Thanks in advance,
FahdHi Fahd,
Here is a sample I posted here some time ago
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.Set;
import javax.naming.Context;
import javax.sql.DataSource;
import weblogic.jndi.Environment;
import weblogic.management.configuration.JDBCDataSourceMBean;
import weblogic.management.configuration.ServerMBean;
import weblogic.management.MBeanHome;
* This class demonstrates dymamic creation,
* using and deletion of DataSource via
* Weblogic management API.
public class DynamicDataSource {
private Context ctx = null;
private JDBCDataSourceMBean dsMBean = null;
private MBeanHome mbeanHome = null;
private ServerMBean serverMBean = null;
// DataSource attributes
private String cpName = "yourPoolName";
private String dsJNDIName = "dynamic-data-source";
private String dsName = "dynamic-data-source";
// Security credentials
private String password = "admPasword";
private String serverName = "yourServer";
private String url = "t3://localhost:7701";
private String userName = "system";
* Creates and starts up a DataSource using
* management API.
public void createDataSource() throws SQLException {
System.out.println("Creating DataSource...");
try {
// Get context
Environment env = new Environment();
env.setProviderUrl(url);
env.setSecurityPrincipal(userName);
env.setSecurityCredentials(password);
ctx = env.getInitialContext();
// Lookup for MBean home
mbeanHome = (MBeanHome)ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
serverMBean = (ServerMBean)mbeanHome.getAdminMBean(serverName,
"Server");
// Delete if DataSource MBean already exists in active domain
Set dsMBeanSet = mbeanHome.getMBeansByType("JDBCDataSource",
mbeanHome.getDomainName());
Iterator iter = dsMBeanSet.iterator();
while(iter.hasNext()) {
JDBCDataSourceMBean dsmb = (JDBCDataSourceMBean) iter.next();
if (dsmb.getJNDIName().equals(dsJNDIName)) {
dsMBean = dsmb;
deleteDataSource();
break;
// Create DataSource MBean
dsMBean = (JDBCDataSourceMBean)mbeanHome.createAdminMBean(
dsName, "JDBCDataSource",
mbeanHome.getDomainName());
// Set DataSource attributes
dsMBean.setJNDIName(dsJNDIName);
dsMBean.setPoolName(cpName);
// Startup datasource
dsMBean.addTarget(serverMBean);
} catch (Exception ex) {
throw new SQLException(ex.toString());
* Symply gets and closes a connection from dynamic
* DataSource. Will throw a SQLException if datasource
* does not exists.
public void createConnection() throws SQLException {
System.out.println("Getting Connection...");
try {
DataSource ds = (DataSource)ctx.lookup (dsName);
Connection conn = ds.getConnection();
conn.close();
} catch (Exception ex) {
throw new SQLException(ex.toString());
* Shuts down and deletes DataSource from configuratrion
* using management API.
public void deleteDataSource() throws SQLException {
System.out.println("Deleting DataSource...");
try {
// Remove dynamically created datasource from the server
dsMBean.removeTarget(serverMBean);
// Remove dynamically created datasource from the configuration
mbeanHome.deleteMBean(dsMBean);
} catch (Exception ex) {
throw new SQLException(ex.toString());
public static void main(String args[]) {
DynamicDataSource dds = new DynamicDataSource();
try {
dds.createDataSource();
dds.createConnection();
dds.deleteDataSource();
} catch (SQLException ex) {
ex.printStackTrace();
"Fahd" <[email protected]> wrote in message
news:[email protected]...
>
I am trying to create datasources dynamically. Using an example from aprevious
post,
mbeanHome = lookupMBeanHome();
JDBCDataSourceMBean dsMBean =(JDBCDataSourceMBean)mbeanHome.createAdminMBean(poolName,"JDBCDataSource",
mbeanHome.getDomainName());
dsMBean.setJNDIName(poolName);
dsMBean.setPoolName(poolName);
dsMBean.addTarget(tserverMBean);
dsMBean.setPersistenceEnabled(false);
How can I retrieve the proper TargetMBean reference to send to theaddTarget method.
>
>
Does anyone know where I can find an entire class example of dynamicallycreating
datasources, or something similar.
Thanks in advance,
Fahd -
Value of ROCANCEL on datasource 2lis-12-vcitm
<Moderator Message: Please search the forums. This question has been asked already a lot of times>
hi guru,
could you tell me what ROCANCEL values look like on datasource 2lis-12-vcitm? it always "x"?
thanks.
brgds/steve
Edited by: Siegfried Szameitat on Jun 9, 2009 11:10 AMHi,
I hope there is data in Delta Queue, do if it is not production system, then first delete the DataSource in RSA7 and Delete Data in Setup tables, Delete Queue in LBWQ (if you have any). You also run/execute Delta InfoPackage in BW, then check in RSA7 and then delete datasource if you find.
Then fill setup tables and check in RSA3.
Note: It is better to use Queued delta to track the errors.
Thanks
Reddy -
"Create" Datasource Privilege for Deployer Role
Hi,
We want to enable the "create" datasource privilege for the Deployer Role, after reading some information for this role looks like they are only allow to modify or delete datasources, but not create them. Admin privilege is not a good option for this group.
Any ideas or suggestions...BoopathyVasagam wrote:
Thank you for your answer. So should I issue the below statement? (Since I dont have dba privs i couldn't test this)
GRANT CREATE VIEW to P_ETL_TEST_VIEW;
I doubt that above will prevent the error from being thrown.
prior to running anonymous block again; just do as below
SET ROLE NONE;
doing so should result in same error being thrown when invoking
BEGIN
p_etl_test_view;
END; -
Importing a Text File to Database
Hi There,
Years ago with limited Coldfusion experience I created a Cold fusion process (below) that deletes the contents of a database table and inserts the contents of a 7mb text file which is passed via FTP down to our web server at regular intervals. Admittingly the code below is probably clunky to the more experienced, however i have found this process to work for the last 4 years without a problem. Recently my web server (shared hosted environment) has been throwing this error when this page runs,
"Request aborted due to heavy system load.",
I asked my host if there has been any changes, extra sites recently added to the server that may be causing this congestion which they naturally replied "no". I even tried reducing the text file size to about 3mb but still got the same issue. Is there any other more efficient coldfusion code options I can try that may be quicker and prevent the error from being thrown?
Im on Coldfusion 7 and using MS SQL server, database and coldfusion are on differnt boxes in a shared environment.The text file can contain null values and is delimeted by a pipe character "|"
Any help appreciated
<cfsetting requesttimeout="600">
<cftransaction>
<cfquery name="delete" datasource="#client.dsn#" username="#client.username#" passWord="#client.password#">
delete from xxxxxx
</cfquery>
<cfhttp method="get" textqualifier=" " username="xxxxx" password="xxxxxx" firstrowasheaders="no" delimiter="|" name="test" url="http://xxxxxxxxxxxxxx/br_orders.txt">
Records Read <cfoutput>#test.recordcount#</cfoutput>
<cfloop query="test">
<cfquery name="insert" datasource="#client.dsn#" username="#client.username#" passWord="#client.password#">
INSERT INTO xxxxx
(OrderNo, Line, AccountNo, AccountNoShip, Shipment, PurchaseOrder, Completed, OrderDate, ShipmentDate, Product, QtyOrdered, QtyShipped, Price, Carrier, Connote, Delivery1, Delivery2, Delivery3, Delivery4, Delivery5, Delivery6, Delivery7, Delivery8, expected)
VALUES (
<cfqueryparam value='#test.column_1#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_2#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_3#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_4#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_5#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_6#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_7#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_8#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_9#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_10#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_11#' cfsqltype="cf_sql_float">,
<cfqueryparam value='#test.column_12#' cfsqltype="cf_sql_float">,
<cfqueryparam value='#test.column_13#' cfsqltype="cf_sql_float">,
<cfqueryparam value='#test.column_14#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_15#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_16#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_17#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_18#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_19#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_20#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_21#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_22#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_23#' cfsqltype="cf_sql_varchar">,
<cfqueryparam value='#test.column_24#' cfsqltype="cf_sql_varchar">
</cfquery>
</cfloop>
<cfparam name="OZ" default=""><cfset OZ=#dateAdd("h",18,now())#>
<cfset OZ=#CreateODBCDateTime(OZ)#>
<cfquery datasource="#client.dsn#" username="#client.username#" password="#client.password#">
UPDATE
UpdateTimes
SET
time=#OZ#
WHERE
id=<cfqueryparam value="1" cfsqltype="cf_sql_integer">
</cfquery>
</cftransaction>Girish Sharma wrote:
"I would be really grateful."
But now OP will not really grateful to you; because;
1.You are not going to perform/import the data at his machine.
2.You have not given him the required control file.... (even without knowning anything)
3.You have given only SQL Loader word; so now "oaf... i have to read Doc.."
Regards
Girish SharmaHahahaha . Supper.. ROFL! :) -
I am currently testing our website with CF11. It is currently working with CF8 however after migrating it to a new server running CF11 I have encountered the following error.
The value returned from the load function is not of type numeric.
The error occurred in
D:/Applications/CFusion/CustomTags/nec/com/objects/address.cfc: line 263
Called from D:/Applications/CFusion/CustomTags/nec/com/objects/contact.cfc: line 331
Called from D:/Applications/CFusion/CustomTags/nec/com/objects/user.cfc: line 510
Called from D:/Applications/CFusion/CustomTags/nec/com/objects/user.cfc: line 1675
Called from D:/website/NECPhase2/action.validate.cfm: line 54
261 : <cfif isNumeric(get.idCountry)>
262 : <cfset rc = this.objCountry.setID(get.idCountry)>
263 : <cfset rc = this.objCountry.load()>
264 : </cfif>
265 : <cfset this.sPostcode = get.sPostcode>
Have there been any changes between CF8 and CF11 that could cause this error?
Does anyone have ideas?This is the code in file object file country.cfc (nec.com.objects.country):
<cfcomponent displayname="Country object" hint="This is a Country object, it allows you to access and set values in the Country.">
<!---
// Construct this object
--->
<cfset this.objFunctions = CreateObject( 'component', 'nec.com.system.functions' )>
<cfscript>
this.idCountryID = 0;
this.sCountryName = "";
this.sISOCode = "";
this.sDHLCode = "";
this.iErrorID = "";
</cfscript>
<!---
// The following functions are the setters and getters. offering us a better way to get
// at the contents of the object
--->
<!---
// Getters
--->
<cffunction name="getID" displayname="Get ID" returntype="numeric" output="false" hint="This returns the ID of the current item.">
<cfreturn this.idCountryID>
</cffunction>
<cffunction name="getsCountryName" displayname="Get sCountryName" returntype="string" output="false" hint="This gets the sCountryName value of this item.">
<cfreturn this.sCountryName>
</cffunction>
<cffunction name="getsISOCode" displayname="Get sISOCode" returntype="string" output="false" hint="This gets the sISOCode value of this item.">
<cfreturn this.sISOCode>
</cffunction>
<cffunction name="getsDHLCode" displayname="Get sDHLCode" returntype="string" output="false" hint="This gets the sDHLCode value of this item.">
<cfreturn this.sDHLCode>
</cffunction>
<cffunction name="iError" displayname="Get iError" returntype="numeric" output="false" hint="This returns the iError of the current item.">
<cfreturn this.iError>
</cffunction>
<!---
// Setters
--->
<cffunction name="setID" displayname="Set ID" returntype="boolean" output="false" hint="This sets the ID value of this item.">
<cfargument name="idCountryID" required="true" type="numeric" displayname="ID" hint="The ID to use.">
<cfset this.idCountryID = arguments.idCountryID>
<cfreturn true>
</cffunction>
<cffunction name="setsCountryName" displayname="Set sCountryName" returntype="boolean" output="false" hint="This sets the sCountryName value of this item.">
<cfargument name="sCountryName" required="true" type="string" displayname="sCountryName" hint="The sCountryName to use.">
<cfset this.sCountryName = arguments.sCountryName>
<cfreturn true>
</cffunction>
<cffunction name="setsISOCode" displayname="Set sISOCode" returntype="boolean" output="false" hint="This sets the sISOCode value of this item.">
<cfargument name="sISOCode" required="true" type="string" displayname="sISOCode" hint="The sISOCode to use.">
<cfset this.sISOCode = arguments.sISOCode>
<cfreturn true>
</cffunction>
<cffunction name="setsDHLCode" displayname="Set sDHLCode" returntype="boolean" output="false" hint="This sets the sDHLCode value of this item.">
<cfargument name="sDHLCode" required="true" type="string" displayname="sDHLCode" hint="The sDHLCode to use.">
<cfset this.sDHLCode = arguments.sDHLCode>
<cfreturn true>
</cffunction>
<!---
// Clear, to empty out the contents of this object
--->
<cffunction name="clear" displayname="Clear items Details" returntype="boolean" output="false" hint="Clears out all of the items details.">
<cfscript>
this.sCountryName = "";
this.sISOCode = "";
this.sDHLCode = "";
this.iErrorID = "";
</cfscript>
<cfreturn true>
</cffunction>
<!---
// The following functions deal with the load, save and deleting of objects
--->
<!---
// Load
--->
<cffunction name="load" displayname="Load items details" returntype="numeric" output="false" hint="This loads in all the information about an item.">
<cfset rc = this.clear()>
<!---
// First of all we need to get the name of the data source we are going to be using
--->
<cfscript>
objDS = CreateObject("component","nec.com.system.settings");
sDatasource = objDS.getDatasource();
</cfscript>
<!---
// Check to see if it exists
--->
<cftry>
<cfquery name="checkID" datasource="#sDatasource#">
SELECT idCountryID
FROM tblCountry
WHERE idCountryID = #this.idCountryID#
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("load: checkID: '#this.idCountryID#' #cfcatch.detail#");
</cfscript>
<cfset this.iErrorID = iErrorID>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfif not checkID.recordCount>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
if(isDefined("session.afr")){
whichOne = "#session.afr.getsAFRNumber()#";
} else {
whichOne = "";
iErrorID = objError.addError("A Country with that id doesn't exists.[#this.idCountryID#][#whichOne#]");
</cfscript>
<cfset this.iErrorID = iErrorID>
<cfreturn iErrorID>
</cfif>
<!---
// If we got past all then then load in the details
--->
<cftry>
<cfquery name="get" datasource="#sDatasource#">
SELECT idCountryID, RTRIM(sCountryName) as sCountryName, RTRIM(sISOCode) as sISOCode, RTRIM(sDHLCode) as sDHLCode
FROM tblCountry
WHERE idCountryID = #this.idCountryID#
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("load: get: #cfcatch.detail#");
</cfscript>
<cfset this.iErrorID = iErrorID>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfset this.idCountryID = get.idCountryID>
<cfset this.sCountryName = get.sCountryName>
<cfset this.sISOCode = get.sISOCode>
<cfset this.sDHLCode = get.sDHLCode>
<cfset this.iErrorID = "">
<cfreturn true>
</cffunction>
<!---
// Save
--->
<cffunction name="save" displayname="Save items Details" returntype="numeric" output="false" hint="Saves (to some source) the current details for the ID of the item.">
<!---
// First of all we need to get the name of the data source we are going to be using
--->
<cfscript>
objDS = CreateObject("component","nec.com.system.settings");
sDatasource = objDS.getDatasource();
</cfscript>
<!---
// Now check to see if ithat ID exists
--->
<cftry>
<cfquery name="checkID" datasource="#sDatasource#">
SELECT idCountryID
FROM tblCountry
WHERE idCountryID = #this.idCountryID#
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("save: checkID: #cfcatch.detail#");
</cfscript>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<!---
// If it doesn't exist, then add the record, otherwise update the record
--->
<cfif not checkID.recordCount>
<cfreturn this.add()>
<cfelse>
<cfreturn this.update()>
</cfif>
</cffunction>
<!---
// Add
--->
<cffunction name="add" displayname="Add Country" returntype="numeric" output="false" hint="This adds a Country.">
<!---
// Check to see if that a different item isn't already using the same unique details
--->
<cftry>
<cfquery name="checkUnique" datasource="#sDatasource#">
SELECT idCountryID
FROM tblCountry
WHERE sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#'
OR sISOCOde = '#this.objFunctions.scrubText(this.sISOcode)#'
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("add: checkUnique: #cfcatch.detail#");
</cfscript>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfif checkUnique.recordCount>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("A Country with that name or ISO code already exists. idCountryID=#checkUnique.idCountryID#");
</cfscript>
<cfreturn iErrorID>
</cfif>
<cftry>
<cfquery name="add" datasource="#sDatasource#">
SET nocount on
INSERT INTO tblCountry(sCountryName, sISOCode, sDHLCode)
VALUES('#this.objFunctions.scrubText(this.sCountryName)#','#this.objFunctions.scrubText(t his.sISOCode)#','#this.objFunctions.scrubText(this.sDHLCode)#')
SELECT @@identity as autoID
SET nocount off
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("add: add: #cfcatch.detail#");
</cfscript>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfreturn add.autoID>
</cffunction>
<!---
// Update
--->
<cffunction name="update" displayname="Update Country" returntype="numeric" output="false" hint="This updates a Country record.">
<!---
// Check to see if that a different item isn't already using the same unique details
--->
<cftry>
<cfquery name="checkUnique" datasource="#sDatasource#">
SELECT idCountryID
FROM tblCountry
WHERE (sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#'
OR sISOCOde = '#this.objFunctions.scrubText(this.sISOcode)#')
AND idCountryID <> #this.idCountryID#
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("update: checkUnique: #cfcatch.detail#");
</cfscript>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfif checkUnique.recordCount>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("Another Country with that name already exists. idCountryID=#checkUnique.idCountryID#");
</cfscript>
<cfreturn iErrorID>
</cfif>
<!---
// Attempt to update the record to the datasource
// if this fails for any reason then we submit an error message
// to the error component and return the ID of the error
--->
<cftry>
<cfquery name="update" datasource="#sDatasource#">
UPDATE tblCountry
SET sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#',
sISOCode = '#this.objFunctions.scrubText(this.sISOCode)#',
sDHLCode = '#this.objFunctions.scrubText(this.sDHLCode)#'
WHERE idCountryID = #this.idCountryID#
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("update: update: #cfcatch.detail#");
</cfscript>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfreturn this.idCountryID>
</cffunction>
<!---
// Delete
--->
<cffunction name="delete" displayname="Delete Country" returntype="numeric" output="false" hint="This deletes a Country record.">
<!---
// First of all we need to get the name of the data source we are going to be using
--->
<cfscript>
objDS = CreateObject("component","nec.com.system.settings");
sDatasource = objDS.getDatasource();
</cfscript>
<!---
// Now check to see if ithat ID exists
--->
<cftry>
<cfquery name="checkID" datasource="#sDatasource#">
SELECT idCountryID
FROM tblCountry
WHERE idCountryID = #this.idCountryID#
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("delete: checkID: #cfcatch.detail#");
</cfscript>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfif not checkID.recordCount>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("A Country with that id doesn't exists, delete failed.");
</cfscript>
<cfreturn iErrorID>
</cfif>
<!---
// Now check to see if there are any dependancies, if so we can't delete the item
--->
<cftry>
<cfquery name="checkDependancies" datasource="#sDatasource#">
SELECT idCountry
FROM tblAddress
WHERE idCountry = #this.idCountryID#
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("delete: checkDependancies: idCountry: #cfcatch.detail#");
</cfscript>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfif checkDependancies.recordCount>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("That Country is being used by an address, delete failed.");
</cfscript>
<cfreturn iErrorID>
</cfif>
<!---
// Now attempt to remove the record.
// if this fails for any reason then we submit an error message
// to the error component and return the ID of the error
--->
<cftry>
<cfquery name="delete" datasource="#sDatasource#">
DELETE FROM tblCountry
WHERE idCountryID = #this.idCountryID#
</cfquery>
<cfcatch>
<cfscript>
objError = CreateObject("component","nec.com.system.errors");
iErrorID = objError.addError("delete: delete: #cfcatch.detail#");
</cfscript>
<cfreturn iErrorID>
</cfcatch>
</cftry>
<cfreturn this.idCountryID>
</cffunction>
</cfcomponent> -
Automatic creation of thumbnail image in BC4J App
I have created a BC4J application using the default wizards that displays the content of the following table:
CREATE TABLE EMPLOYEE_PHOTO (
ID NUMBER (3) NOT NULL,
DESCRIPTION VARCHAR2 (20),
PIC ORDIMAGE,
THUMB ORDIMAGE,
EMPLOYEE_NAME VARCHAR2 (50))
The 'browse' jsp displays the id, description and thumb image.
The 'edit' jsp allows the user to enter the description, employee_name and upload file details for the pic image.
I have 2 problems with the application.
1. How do I set the 'browse' jsp to display the thumb image as an anchor tag that points to the 'edit' jsp ?. I would also like to dynamically set the hint text for the thumb image to 'employee_name' from the database table.
2. In the 'edit' jsp I want to invoke the Intermedia processCopy method to automatically create the thumbnail image from the image file specified by the user. How do I accommodate this method into the default code ?
Thanks in advance
ChrisChris,
Basically, you have to use the "manual" mode of the rendering instead of the "automatic" mode. The JDev Wizard
generated JSP page uses the "automatic" mode which is hard to customize. The characteristic of the "automatic"
mode is using the <AttributeIterate> tag to iterate through all attributes. You have to change the following JSP files
to achieve what you wanted.
1. DataTableComponent.jsp
<%@ page language="java" import = "oracle.jbo.html.*, oracle.jbo.*" %>
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<%
RequestParameters params = HtmlServices.getRequestParameters(pageContext);
String editTargetParam = params.getParameter("edittarget");
if ("null".equalsIgnoreCase(editTargetParam))
editTargetParam = null;
%>
<jbo:DataSourceRef id="dsBrowse" reference='<%=params.getParameter("datasource")%>' />
<table class="clsTable" cellspacing="1" cellpadding="3">
<tr class="clsTableRow"><%
if (editTargetParam != null)
%>
<th class="clsTableHeader"> </th>
<th class="clsTableHeader"><a href="<jbo:UrlEvent targeturlparam='edittarget' event='Create' datasource='dsBrowse' extraparameters='<%=originURL=" + params.getParameter("originURL")%">'/>">New</a></th><%
%>
<th title="<jbo:ShowHint datasource="dsBrowse" hintname='TOOLTIP' dataitem="Id"/>" class="vrTableHeader"><jbo:ShowHint datasource="dsBrowse" hintname="LABEL" dataitem="Id">##Column</jbo:ShowHint></th>
<th title="<jbo:ShowHint datasource="dsBrowse" hintname='TOOLTIP' dataitem="Description"/>" class="vrTableHeader"><jbo:ShowHint datasource="dsBrowse" hintname="LABEL" dataitem="Description">##Column</jbo:ShowHint></th>
<th title="<jbo:ShowHint datasource="dsBrowse" hintname='TOOLTIP' dataitem="Thumb"/>" class="vrTableHeader"><jbo:ShowHint datasource="dsBrowse" hintname="LABEL" dataitem="Thumb">##Column</jbo:ShowHint></th>
</tr><%
Row currentRow = dsBrowse.getRowSet().getCurrentRow();
%>
<jbo:RowsetIterate datasource="dsBrowse" changecurrentrow="false" userange="true">
<jbo:Row id="aRow" datasource="dsBrowse" action="Active"/><%
String rowStyle;
if (aRow == currentRow)
rowStyle = "clsCurrentTableRow";
else
rowStyle = "clsTableRow";
%>
<tr class="<%=rowStyle%>"><%
if (editTargetParam != null)
%>
<td class="tablecell"><a href="<jbo:UrlEvent targeturlparam='originURL' event='Delete' datasource='dsBrowse' addrowkey='true'/>">Delete</a>
</td>
<td class="tablecell"><a href="<jbo:UrlEvent targeturlparam='edittarget' event='Edit' datasource='dsBrowse' addrowkey='true' extraparameters='<%="originURL=" + params.getParameter("originURL")%>'/>">Edit</a>
</td><%
%>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Id"/>" class="tablecell" >
<jbo:RenderValue datasource="dsBrowse" dataitem="Id">##Cell</jbo:RenderValue>
</td>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Description"/>" class="tablecell" >
<jbo:RenderValue datasource="dsBrowse" dataitem="Description">##Cell</jbo:RenderValue>
</td>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Thumb"/>" class="tablecell" >
<A href="<jbo:UrlEvent targeturlparam='edittarget' event='Edit' datasource='dsBrowse' addrowkey='true' extraparameters='<%="originURL=" + params.getParameter("originURL")%>'/>">
<jbo:EmbedImage datasource="dsBrowse" mediaattr="Thumb" altattr="EmployeeName" />
</A>
</td>
</tr>
</jbo:RowsetIterate>
</table>
2. DataEditComponent.jsp
<%@ page language="java" import = "oracle.jbo.html.*" %>
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<%
RequestParameters params = HtmlServices.getRequestParameters(pageContext);
String dsParam = params.getParameter("datasource");
String formName = dsParam + "_form";
String rowAction = "Current";
%>
<jbo:DataSourceRef id="dsEdit" reference="<%=dsParam%>" />
<jbo:OnEvent name="edit" datasource="dsEdit">
<% rowAction = "Get"; %>
</jbo:OnEvent>
<jbo:OnEvent name="create" datasource="dsEdit">
<% rowAction = "Create"; %>
</jbo:OnEvent>
<form name="<%=formName%>" action="<%=params.getParameter("targetURL")%>" method="post" enctype="multipart/form-data">
<jbo:Row id="rowEdit" datasource="dsEdit" rowkeyparam="jboRowKey" action="<%=rowAction%>">
<table border="0">
<tr>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Id"/>" align="right">
<b>
<jbo:ShowHint hintname="LABEL" dataitem="Id">##Column</jbo:ShowHint>
</b>
</td>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Id"/>">
<jbo:InputRender datasource="dsEdit" dataitem="Id" formname="<%=formName%>" />
</td>
</tr>
<tr>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Description"/>" align="right">
<b>
<jbo:ShowHint hintname="LABEL" dataitem="Description">##Column</jbo:ShowHint>
</b>
</td>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Description"/>">
<jbo:InputRender datasource="dsEdit" dataitem="Description" formname="<%=formName%>" />
</td>
</tr>
<tr>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Pic"/>" align="right">
<b>
<jbo:ShowHint hintname="LABEL" dataitem="Pic">##Column</jbo:ShowHint>
</b>
</td>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Pic"/>">
<jbo:InputRender datasource="dsEdit" dataitem="Pic" formname="<%=formName%>" />
</td>
</tr>
<tr>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="EmployeeName"/>" align="right">
<b>
<jbo:ShowHint hintname="LABEL" dataitem="EmployeeName">##Column</jbo:ShowHint>
</b>
</td>
<td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="EmployeeName"/>">
<jbo:InputRender datasource="dsEdit" dataitem="EmployeeName" formname="<%=formName%>" />
</td>
</tr>
</table>
<jbo:FormEvent event="update" datasource="dsEdit" addrowkey="true" />
</jbo:Row>
<%-- Pass along originURL parameter --%>
<input type="hidden" name="originURL" value="<%=params.getParameter("originURL")%>">
<input type="submit" value="Update">
<input type="reset" value="Reset">
</form>
3. DataHandlerComponent.jsp
<%@ page language="java" %>
<%@ page errorPage="errorpage.jsp" %>
<%@ page import="oracle.jbo.ApplicationModule" %>
<%@ page import="oracle.jbo.html.*" %>
<%@ page import="oracle.ord.im.*" %>
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<%
RequestParameters params = HtmlServices.getRequestParameters(pageContext);
String targetParam = params.getParameter("targetURL");
String amId = params.getParameter("amId");
String voName = params.getParameter("jboEventVo");
%>
<%
if (voName != null)
{ %>
<jbo:DataSource id="ds" appid="<%=amId%>" viewobject="<%=voName%>" />
<jbo:OnEvent name="update">
<jbo:Row id="myrow" datasource="ds" rowkeyparam="jboRowKey" action="Update" />
<%
myrow.setAttribute("Thumb", new OrdImageDomain());
String myRowKey = myrow.getKey().toStringFormat(false);
%>
<jbo:PostChanges appid="<%=amId%>" />
<jbo:Row id="theRow" datasource="ds" action="Find" rowkeyparam="jboRowKey" >
<%
OrdImageDomain pic = (OrdImageDomain) theRow.getAttribute("Pic");
OrdImageDomain thumb = (OrdImageDomain) theRow.getAttribute("Thumb");
pic.processCopy("scale=\"0.1\"", thumb);
%>
</jbo:Row>
</jbo:OnEvent>
<jbo:OnEvent name="delete">
<jbo:Row id="delrow" datasource="ds" rowkeyparam="jboRowKey" action="Delete" />
</jbo:OnEvent>
<%-- Scroll event handling --%>
<jbo:OnEvent list="firstset, nextset, previousset, lastset">
<jbo:RowsetNavigate datasource="ds" />
</jbo:OnEvent>
<%-- Navigation event handling --%>
<jbo:OnEvent list="first, next, previous, last">
<jbo:RowsetNavigate datasource="ds" />
</jbo:OnEvent>
<%-- Query event handling --%>
<jbo:OnEvent name="Del Criteria" >
<% String remove = params.getParameter("index"); %>
<jbo:ViewCriteria id="vc" datasource="ds" action="append">
<jbo:CriteriaRow id="row<%=remove%>" index="<%=remove%>" clearall="true" />
</jbo:ViewCriteria>
</jbo:OnEvent>
<jbo:OnEvent name="Clear All" >
<jbo:ViewCriteria id="vc" datasource="ds" action="new" />
</jbo:OnEvent>
<jbo:OnEvent list="Search, Add Criteria" >
<% String rowParam = params.getParameter("nRows");
int nRows = 0;
if (rowParam != null)
try { nRows = Integer.parseInt(rowParam); }
catch (Exception ex) { }
%>
<jbo:ViewCriteria id="vc" datasource="ds" action="new">
<% for (int index=0; index < nRows; index++)
{ %>
<jbo:CriteriaRow id="row<%=index%>" >
<jbo:AttributeIterate id="attrvc" datasource="ds" queriableonly="true">
<% String item = attrvc.getName();
String value = params.getParameter("row" + index + "_" + item); %>
<jbo:Criteria dataitem="<%=item%>" value="<%=value%>" />
</jbo:AttributeIterate>
</jbo:CriteriaRow>
<% } %>
</jbo:ViewCriteria>
</jbo:OnEvent>
<% }%>
<%-- Transaction event handling --%>
<jbo:OnEvent name="Commit" >
<jbo:Commit appid="<%=amId%>"/>
</jbo:OnEvent>
<jbo:OnEvent name="Rollback" >
<jbo:RollBack appid="<%=amId%>"/>
</jbo:OnEvent>
Hope this helps.
richard
</a> -
BEA-141230 Could Not locate descriptor file for System Resource: DS name
Guys,
When I start the Admin and Managed server ..I get below warning message.
*<Warning> <Management> <BEA-141230> <Could Not locate descriptor file for System Resource : datasource1.>*
I know that weblogic server is unable to locatie datasource1.xml file at <SOA_HOME>/user_projects/domains/base_domain/config/jdbc
Is there any way to to get rid off from this error? I tried to delete datasource from weblogic Admin console, but get below error:
java.lang.NullPointerException
All changes have been activated. No restarts are necessary.
Errors were encountered while performing this delete operation.
Thanks,
AbAre you starting servers with the root user? make sure that using whichever user you are starting server, it has full access on MW_Home and it's sub-directories. You may consider raising a support SR.
Regards,
Anuj
Maybe you are looking for
-
Sorry to ask again, but should I install Leopard on my 3 year old machine?
Can my system handle it? What steps should I take if I do decide to install Leopard clean (not upgrade.) I have an external drive and plan to back up any important settings or data. I have never wiped a Mac clean and reinstalled an operating system,
-
IMac G5 crashes during bootup (except safe mode)
Greetings! I shutdown my iMac G5 for the first time in about a month on Sunday. I started it up last night for the first time since then and I immediately noticed that I didn't get a startup chime - very odd. After displaying the gray screen for abou
-
Authorization Group (BEGRU) search help required in Easy DMS
Hi all, I had defined some value in authorization group (BEGRU) in SAP. When i opened the Document using CV01N/ CV02N transaction, then F4 help is available to me. but when i opened the same document via SAP Easy DMS 7.0, Search help functionality is
-
How to get Default Role fron the EmployeeInfo
How i can get the default role from the EmployeeInfo object ?
-
How do I get swf's to play immediately?
I have three projects that play one after another. The compiled swf's are 11 MB, 8 MB, and 4 MB. Is there a way to get the swf's to start playing for the end user before the entire file is done loading? thanks so much, Aaron