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.
    JQ

    Delete 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
    Krisztian

    Hi 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,
    Raghu

    If 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,
    Alain

    Hi 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,
    Ragavan

    Hi,
    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!
    Simo

    Hello 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>

  • Dynamic Datasource creation

    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,
    Fahd

    Hi 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 AM

    Hi,
    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! :)

  • The value returned from the load function is not of type numeric  errors after migration to Coldfusion 11

    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
    Chris

    Chris,
    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,
    Ab

    Are 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