DataAccess Layer  in WebDynpro

HI
I want to use Webdynpro java as a Front end and Oracle as Backed for Developing Custom application.
in this scenario where do i create the DataAccess Layer?
As mentioned in java persistance tutorials in NWDSi know that preferred method is JSP as front end
but i want to use webdynpro java as front end.
I have created the DSN in Visual Admin and it is working fine.
Now,I want to write all the data acess functions in one class and refer that in my web dynpro java code?
any inputs on this will be helpful.
Regards
Rajendra

Hi Rajendrakumar,
Create Java DC to access the oracle database with getter/setter method and use Java bean model in the web dynpro to access model data.
Hope it will helps
Regards
Arun

Similar Messages

  • Dynamic query with Data Access Layer

    I have a program that has a multiselect box (JSP form) to select certifications and then search to see which employee may have them.
    I have no issues when searching by only one, but if I select multiple certifications from the multiselect box, it doesn't work. I've tried and tried and I can't seem to figure this out.
    Below is the code for returning employees that match what certifications were chosen. Again, it works fine if only 1 was selected. I wish for it to return only the employees that match all selections.
    the arguments passed to the DataAccess Layer are an array of certification ID's and the size variable is how many certifications were chosen. The for loop is supposed to dynamically append to the end of the query an extra "AND" sql operator to match up. The 3 tables selected in the query are Employee (a list of employees and ID's), Certificates (a list of possible certificates and their ID's) and Employee_Certificate (a table that matches which employees have which certificates).
    What am I doing wrong?
    public List certSearch(int cert[], int size) throws Exception{
             // connection instance
             ArrayList list = new ArrayList();
             Connection connection=null;
             PreparedStatement pstatement = null;
             try
                    list.clear();
                    StringBuffer queryString = new StringBuffer("SELECT * from EMPLOYEE, EMPLOYEE_CERTIFICATE, CERTIFICATE" +
                                         " WHERE employee_certificate.employee_id = employee.employee_id " +
                                         "AND certificate.certificate_id = employee_certificate.certificate_id ");
                    for (int incr = 0; incr < size; incr++){
                        queryString.append("AND certificate.certificate_id = " + cert[incr] + " ");
                    String query;
                    query = queryString.toString();
                    // Send query to database and store results.
                    Class.forName(Driver);
                    //Establish network connection to the db
                    connection = (Connection) DriverManager.getConnection(url, username, password);
                    pstatement = (PreparedStatement) connection.prepareStatement(query);
                    ResultSet rs = pstatement.executeQuery();
                    while (rs.next())
                        Employee emp = new Employee();
                        int empID=Integer.parseInt(rs.getString("employee_id"));
                        String first=rs.getString("first_name");
                        String last=rs.getString("last_name");
                        emp.setID(empID);
                        emp.setFirstName(first);
                        emp.setLastName(last);
                        list.add(emp);
               catch(Exception readerr)
                    System.err.println("Error reading  "+ readerr);
               finally
                try
                    // close the connection so it can be returned to the
                    // connection pool then return the SubjectCounselor instance
                    connection.close();
                catch (SQLException ex)
                       System.err.println("Error reading employee data: " + ex);
                return list;
        }Edited by: Snadinator on Aug 1, 2009 1:35 PM

    You don't get it.
    This should work :
    public List certSearch(int cert[], int size) throws Exception{
             // connection instance
             ArrayList list = new ArrayList();
             Connection connection=null;
             PreparedStatement pstatement = null;
             try
                    list.clear();
                    String query = buildQuery(cert);
                    // Send query to database and store results.
                    Class.forName(Driver);
                    //Establish network connection to the db
                    connection = (Connection) DriverManager.getConnection(url, username, password);
                    pstatement = (PreparedStatement) connection.prepareStatement(query);
                    ResultSet rs = pstatement.executeQuery();
                    while (rs.next())
                        Employee emp = new Employee();
                        int empID=Integer.parseInt(rs.getString("employee_id"));
                        String first=rs.getString("first_name");
                        String last=rs.getString("last_name");
                        emp.setID(empID);
                        emp.setFirstName(first);
                        emp.setLastName(last);
                        list.add(emp);
               catch(Exception readerr)
                    System.err.println("Error reading  "+ readerr);
               finally
                try
                    // close the connection so it can be returned to the
                    // connection pool then return the SubjectCounselor instance
                    connection.close();
                catch (SQLException ex)
                       System.err.println("Error reading employee data: " + ex);
                return list;
        // I used the MySQL syntax; if it doesn't work : just enclose the values by single quotes
        private String buildQuery(int[] cert) {
            StringBuffer queryString = new StringBuffer("SELECT * from EMPLOYEE, EMPLOYEE_CERTIFICATE, CERTIFICATE" +
                    " WHERE employee_certificate.employee_id = employee.employee_id " +
                    "AND certificate.certificate_id = employee_certificate.certificate_id " +
                    "AND certificate.certificate_id IN ( ");
            queryString.append(cert[0]);
            for (int i = 1; i < cert.length; i++) {
                queryString.append(" ,");
                queryString.append(cert);
    queryString.append(" )");
    return queryString.toString();

  • Front end technologies

    I am new to java and am very much confused with these terms.What technologies in java can we use to design the front end
    what are the technologies for businesslayer?
    What are the technologies that can be used for dataaccess layer?
    Thanks in advance.

    I am new to java and am very much confused with these
    terms.What technologies in java can we use to design
    the front end
    what are the technologies for businesslayer?
    What are the technologies that can be used for
    dataaccess layer?
    Thanks in advance.I am pretty sick of that word "technologies". It is really a generic catch all. Java is a "specific technology" so what is it you mean ? There isn't only one manner in which to create a front end. There are dozens if not hundreds of options, depending on how far you want to compartmentalize things. Deciding application or web application is already 2 options both using different things. Business layer can cover dozens of ideas.
    Data access layer - is the data in a file in a database internal to the application itself ?
    Are you talking about things like spring hibernate jdbc etc etc ?
    (Basically there are a multitude of "technologies" that can be used for each of your questions. If you are looking for something to study that's one thing but if you are simply looking for a list look a jobs that list 30 requirements for a junior position, they tend to use the buzz word approach and many of those can be used in your questions.

  • Using JPA Entity-Objects defined in other EJB-Development Component

    Hello Community,
    I'm working on a Java-Application on NW CE 7.1, using JEE5 Beans in the Business-Logic-Layer and WebDynpro/Java in the UI-Layer.
    I designed a Bean for working with data, stored in a database-table of the system-database.
    For that addtionally i created a class, representing the Entity-Object, in the same Development-Component of Type EJB 3.0.
    It looks like this:
    @NamedQueries ({
         @NamedQuery (name="findAllSdCust", query="SELECT c from SdCust c ORDER BY c.kdnr"),
         @NamedQuery (name="findSdCustByKdnr", query="SELECT c from SdCust c WHERE c.kdnr = :kdnr"),
         @NamedQuery (name="findSdCustByIlnnr", query="SELECT c from SdCust c WHERE c.ilnnr = :ilnnr")
    @Entity
    @Table(name="ZKALL_SD_CUST")
    public class SdCust implements Serializable {
         @Id
         @TableGenerator (name="idGenerator", table="ZKALL_ID_GEN", pkColumnName="GEN_KEY", valueColumnName="GEN_VALUE", initialValue=100)
         @GeneratedValue (strategy=GenerationType.TABLE, generator="idGenerator")
         private long id;
         private String name;
         private String lname;
         private String kdnr;
         private String ilnnr;
         private long connid;
         private long cnt;
         @Version
         private long version;
          Constructor, Getter and Setter methods follow here
    The corresponding bean looks like this
    @Stateless(name="SdCustBean")
    public class SdCustBean implements SdCustLocal {
         @PersistenceContext (unitName="xyz")
         private EntityManager em;
         public SdCust getSdCustByKdnr (String kdnr)
              SdCust result = new SdCust();
              // List<Manufacturer> resultList = new ArrayList<Manufacturer>();
              Query  myQuery = em.createNamedQuery("findSdCustByKdnr");
              myQuery.setParameter("kdnr", kdnr);
              result = (SdCust) myQuery.getSingleResult();
              return result;
         public void setEM (EntityManager iem)
              em = iem;
           // other methods .....
    After that i created a new Development-Component of Enterprise Application-Type and added above DC to this EAR-DC. I also supplied the nessecary descriptor-files/Enries in EJB-DC and EAR-DC.
    When now using this bean from WebDynpro with the Web-Dypro EJB-Model-Import everything works fine.
    The bean returns the desired object(s).
    But now i created a new DC of type EBJ 3.0
    This DC contains a Message Driven Bean. That MDB is a Job-Bean which i want to schedule. That  Bean uses JRA to connect to an SAP-Abap-System to read some Data and should use JPA to insert/upate/delete the read data in the Database. This should work as a simple replication for my application.
    I assigned that EJB-DC containing the MDB to a new EAR-DC together with job-definition-xml and the neccessary entries in deployment-descriptors.
    After deploying i see the corresponding job-defition in the NW scheduler using the administrator-views.
    I'm also able to schedule the job and it executes fine. Connecting to SAP-Abap System also works fine using JRA.
    But JPA does not work!!!!!
    I created an dependency from my EAR-DC containing the Job EJB-DC and to the EJB-DC containing the Entity-Class.
    I tried three diferent things to get i running, but all of them failed.
    1.)
    The part  looks like:
    public class MasterDataReplicateJobBean extends MDBJobImplementation implements MessageListener
      @EJB SdCustBean mybean;
       public void onJob(JobContext ctx) throws Exception {
            SdCust sdCust = mybean.getSdCustByKdnr (mykdnr);
    Compiles fine. But this fails because the Data is stored in the system-database. The exception says, that i have to use a datasource which supports 2-Phase commit. I know, that i could possibly solve this problem by annotation the Method getSdCustByKdnr with the Annotation for the Transaction-Manager to use REQUIRES_NEW Transaction. But i dont want to generally annotate my methods this way.
    2.)
    This part looks like this
    public class MasterDataReplicateJobBean extends MDBJobImplementation implements MessageListener
    @PersistenceContext (unitName="xyz")
    private EntityManager em;
       public void onJob(JobContext ctx) throws Exception {
         SdCust cust = new SdCust();
         Query  myQuery = em.createQuery("SELECT c from SdCust c WHERE c.kdnr = :kdnr");
         myQuery.setParameter("kdnr", dbkdnr);
         cust = (SdCust) myQuery.getSingleResult();
    This also results in a runtime-exception because the entity-Manager cant resolve SdCust from the Query as an Object. The Exception is:
    java.lang.IllegalArgumentException: line 1: Abstract Schema Type 'SdCust' doesn't exist
    SELECT c from SdCust c WHERE c.kdnr = :kdnr
    3.) and last try so far:
    public class MasterDataReplicateJobBean extends MDBJobImplementation implements MessageListener
    @PersistenceContext (unitName="xyz")
    private EntityManager em;
       public void onJob(JobContext ctx) throws Exception {
         SdCustBean custBean = new SdCustBean();
         custBean.setEM(em);
         SdCust cust = custBean.getSdCustByKdnr(kdnr);
    In this example i use the Bean from the beginning not as a bean itself but as a normal class. that class has an addtional Method setEM to set the Entity-Manager (which is injected when using the class as a bean)
    In that way i got the exception, that the named Query "findSdCustByKdnr" cannot be found by the entity-manager.
    It seems to me, that i can access the class, but that all annotations belonging to JPA for that class are not recognized.
    Does anybody can give me a hint to solve this problem? Did i forgot something important?
    best regards
    matthias hayk
    Edited by: Matthias Hayk on Feb 5, 2009 9:38 AM

    I was already on wright trace.
    My class "SdCust" was not recognized by the Entity-Manager as an Entity-Class.
    This relies on the storage of the entity-class and where the Entity-Manager looks for entity-classes.
    By default it seems to look for all classes in the same jar file. thats the reason why everything works fine when the using bean and the entity-class are in the same project.
    In my last case, the using bean is in another  development-component and so also in anohter jar file. in this case the entity-manager must be told where to find entity-classes.
    this is done in the persistence.xml file.
    i added the line
    <jar-file>xxx.yyy.com~mdata_beans.jar</jar-file>
    underneath the <persistence-unit>-tag.
    This works.
    regards
    Matthias Hayk

  • Oracle Mobile Server 11G with BerkeleyDB/SQLite

    Hi all,
    Actually I have got following situation:
    There are 2 Java apps that are running on Oracle Lite. Due to our Win 7 migration und outrunning support of Support for Oracle Lite we decided to migrate to Oracle Mobile Server 11 G and switch to Berkeley DB. So far so good.
    During migration my administrator reported warnings from migration utility that the apps are not compatible and aren't migrated. Within these applications databaseaccess is done via JDBC and SQL. There is no time and money to rewrite dataaccess layer, so I need SQL Access to Berkeley DB.
    For my first tests I created via Mobile Server API a new Publication that contains simply one publication Item that is in One Way Synchronization (Server to Client) . I wanted to take a look into the submitted Database File. For that I found dbsql.exe. I called this app via command line with: "dbsql.exe MyDb.db". DBSql started but returned an error that SQL Statement is incomplete?!. Any idea? For that new publictation i also wrote a testapp that should spool out the contents of publication Item in a later step.
    Ok now i took a new look into internet for getting information about SQL Support. There I found that Berkeley DB now is able to speak SQLite. So it seems that new database is able to speak SQL via SQLite. Is that correct?
    I switched now in MobileServer Console my testapp to SQLite Win32; US and installed the SQLite client on my computer. My next try was to connect this database to dbsql.exe. The call of dbsql.exe "MyDb.db" returned that error that databse is eather corrupted or encrypted.
    I was really unable to find a guide how to use that SQL API for Berkely DB. Which .jars should I import in my Java app? How is connection been made?
    Is here anyone that can help me a little bit out?
    Many many thanks in advance!
    Martin

    Hi, I see that this thread is old a little bit.  Do you still need help on it?  I have been able to create a publication with Mobile Server 11G with Berkeley DB as the client database.  I have also found the jar to use to access the client database in java.  Please let me know in you still need it and i'll post it here.

  • Whitepaper/Info Budgeting/Planning/Writeback via Oracle OLAP DML

    Hi,
    does anyone know of any whitepaper, manual section, general information regarding writeback, planning, budgeting using Oracle OLAPs DML API? We would like to upgrade our proprietary DataAccess-Layer, which interfaces to Oracle OLAP via the DML-API, to allow writeback.
    As said the documentation for this topic seems to be scarce to none.
    Just to give an example: it is not possible to write back values to the base measures UNITS_CUBE_SALES/COST/UNITS of the UNITS_CUBE in global AW, since all of them are FORMULA objects. The underlying variable to which you can assign values is in 10g UNITS_CUBE_SALES_STORED, whereas in 11g you would limit the ALL_MEASURES_DIM object to the SALES measure and assign a value to a variable named UNITS_CUBE_STORED. Basically this is information I was fishing out of this forum, but didn't find documented in the Oracle manuals.
    Therefor I am wondering, if writeback via the Oracle OLAP DML API is something, which is officially not supported? Or maybe I just didn't look in the right places to find documentation.
    BTW: I am looking at this topic from an ISV point of view.
    Best regards
    Ralf
    Edited by: Ralf Steinstraesser on Aug 18, 2009 5:15 AM

    hello,
    i can only speak about 10 G
    There are 2 modes to attach an aw for writing data.
    http://download.oracle.com/docs/cd/B19306_01/olap.102/b14346/dml_x_arcsin011.htm#i1016126
    1)In rw mode
    Only one user can have an analytic workspace open in read/write at a time
    2)in multi mode
    A workspace that is attached in multiwriter mode can be accessed simultaneously by several sessions
    you find documentation for multi write
    http://download.oracle.com/docs/cd/B19306_01/olap.102/b14346/dml_appcats003.htm#CHDJFJHD
    hope this help you
    jean marc

  • Web Dynpro and CAF (BOs, Application Services, returning Complex Types)

    Hi All,
    I am trying to develop an application using Web Dynpro and CAF for days now and did not get it running.. I need some help here.
    What I am trying to do / have done is the following:
    - Design a Business Object (BO) in CAF
    - Implement an Application Service that has a method called getAllBOs that calls the findAll method of the BO
    - call this method using AWS model or EJB model in Web Dnypro, show the result in a table.
    My getAllBOs returns a set of BOs (Data Type is the Complex Type of my BO in CAF). I was able to design the Application Service so that it returns a collection of BOs (using a Wrapper Comple Type), but I was never able to call the generated Web Service successfully in Web Dynpro. The WebService worked fine when testing it in wsnavigator...
    However, i never got it running.. is there anybody out there who is able to explain what to do to import a AWS model or an EJB model in Werb Dynpro and particularily how to implement the stuff so that it returns a set of BOs successfully...
    Thanks in advance.. Useful help is highly appreciated
    Please note: THIS IS ABOUT Netweaver CE 7.1 - do not post stuff about 7.0!

    Hi,
    You have to return a single object from caf layer to webdynpro layer.
    Since you are returning a list of BOs, create a wrapper in caf which contains the list of your BOs.
    Your application service should return this wrapper.
    Creating Wrapper:
    1. Create a complex data type.
    2. Include your BO as one of the properties in it. and set the cardinality to 0..n.
    In Application service invoke your findAll() of BO and use the returned list to populate the wrapper's BO list.
    Return this wrapper.
    Hope it helps.
    Regards,
    Fazal

  • SQL generated with column__1 alias

    hi..
    i running a report in webi.
    SELECT
      PUB.unidonem.yil AS Column__1,
      SUM(PUB.unibutcealim.adet),
      Sum(PUB.unibutcealim.tutar)
    GROUP BY
      Column__1
    but i dont want column__1...and i dont know why şs generated??
    any suggestions?
    thanks.
    ( i know the custum sql and its ok.. but not enough for me)

    Hi,
    Ok, so now i understand you are creating a new Measure in the universe, and testing it in webi,
    Here's some background info on your error: http://databases.aspfaq.com/database/what-does-ambiguous-column-name-mean.html
    This typically happens when the Select statement has the same name for more than 1 column. So Alias Names need to be setup to ensure unique column names.
    There are so many factors that could be at play here..  Your investigation is a a good condidate for a Support Message. Please log an OSS via SMP.
    1. Given that this is a Progress DB (generic odbc), you may need some SQL Parameters, or .sbo / .prm file modifications in the DataAccess layer, or some ANSI indetifiers need to be set ..  (Relevant guide is here: http://help.sap.com/businessobject/product_guides/boexir31SP3/en/xi31_sp3_data_acs_en.pdf )
    2. You might also be interested in Note 1265192 - Web Intelligence Objects Causing Split Queries (missing context)
    3. You might also want to check that there aren't Row Level restrictions ontop of your user groups, which may affect SQL generation.
    Apologies I cannot do more at this stage.
    Regards,
    H

  • BaseSQLException: Connection is invalid

    We are noticing a database connection problem in our production environment.
    We have tried to tune the datasource configuration and nothing seems to help.
    Below is the exception trace pointing to SAP Web AS 6.40 throwing invalid
    connection exceptions. The application breaks consistently running different queries
    with the below exception.
    Can some one please help me understand the exception. Any suggestions to fix this problem?
    Thanks
    Server: SAP Web AS 6.40
    JDK: 1.4.2
    Database: Oracle 9i
    Dataaccess Layer: SpringFramework - http://www.springframework.org
    O/S: Linux
    [code]
    2006-02-22 11:17:14,840 INFO [com.app.dataaccess.dao.ProdDAO] - <[findByID] entering>
    2006-02-22 11:17:14,851 INFO [com.app.dataaccess.dao.ProdDAO] - <[XXXX] Exception > executing PreparedStatementCallback: encountered SQLException [Connection is invalid.]; nested exception is com.sap.engine.services.dbpool.exceptions.BaseSQLException: Connection is invalid.>
    Caused by: org.springframework.jdbc.UncategorizedSQLException: executing PreparedStatementCallback: encountered SQLException [Connection is invalid.]; nested exception is com.sap.engine.services.dbpool.exceptions.BaseSQLException: Connection is invalid.
    com.sap.engine.services.dbpool.exceptions.BaseSQLException: Connection is invalid.
         at com.sap.engine.services.dbpool.cci.ConnectionHandle.checkIfInvalid(ConnectionHandle.java:501)
         at com.sap.engine.services.dbpool.cci.ConnectionHandle.checkIfValid(ConnectionHandle.java:487)
         at com.sap.engine.services.dbpool.cci.ConnectionHandle.prepareStatement(ConnectionHandle.java:89)
         at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.createPreparedStatement(PreparedStatementCreatorFactory.java:216)
         at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:444)
         at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:491)
         at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:522)
         at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:543)
         at org.springframework.jdbc.object.SqlQuery.execute(SqlQuery.java:114)
         at org.springframework.jdbc.object.SqlQuery.execute(SqlQuery.java:124)
         at com.app.dataaccess.dao.ProdDAO.findByID(Unknown Source)
         at sun.reflect.GeneratedMethodAccessor351.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:62)
         at java.lang.reflect.Method.invoke(Method.java:391)
         at sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:62)
         at java.lang.reflect.Method.invoke(Method.java:391)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(AccessController.java:180)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
    [/code]
    Datasource config:
    oracle.jdbc.pool.OracleDataSourceFactory
    oracle.jdbc.pool.OracleConnectionPoolDataSource

    Hi Ray,
    from  where u got this Exceptions , is it from the Visual Admin(during data source creation time using Oracle 9i) or from the application where ur particular code for executing the SQL statement   ?.
    or
    getting this exception while starting the server itself ?.
    r u using Oracle 9i in ur server (selected during installation)?.
    if it is from Application,
    could u successfully connect to the server while cheching from the Visual Administrator?.
    let me know.
                         Regards
                         Kishor Gopinathan

  • Reusability of CAF is Possible.

    hi
    Reusability of CAF is Possible. 
    If it is possible send me what is the advantages and disadvantages.
    Thanks

    Hi Shiva,
    For reusability in composites you have to look at the framework/anatomy of composites.
    a)<b>Process Layer-GP</b>
    <b>b)UI Layer-VC,Webdynpro,Adobe</b>
    <b>c)Business Logic/Service Layer-CAF Core</b>
    So the changes in your requirement could be in a,b or c.
    Lets take a fictional composite process aprroval of <b>leave from manager</b>.
    GP process contains 1 block and 3 actions namely employee apply for leave form,
    manager approval/reject form,display form to employee.
    For UI layer we use Adobe with one template form and hide or make invisible certain fields depending on who sees the form employee or manager.
    Service Layer-Here you call the ESA service which does the backend bit.
    New requirement is <b>HR approval for leave</b> and not manager (Hope this never happens!)
    So what do we do now...we have to adapt our composite to the new requirements.
    1)Reuse the block for Manager along with action and callable object
    2)Modify the xdp files in Adobe and update callable objects
    3)Change the endpoiot configuration of your ESA service to call a new service HR approval.
    4)Update mapping at all layers.
    What we just did is we saved a lot of development effort by doing the appliction from scratch.
    Hope this example was helpful.
    Regards,.
    As mentioned by Piyush,in GP you can reuse the blocks,actions and callable objects.
    In UI for eg you have adobe foms to be used in multiple stages of the process,the features of Adobe lets you create one xdp template and reuse it across the process by hiding/adding/removing fields

  • How to implement role control in my WebDynpro application?

    Hi,
        I am new to WebDynpro development. And now I create a simple application PMS which uses the WebDynpro Client for client page, Mysql and iBatis for database layer.
        Now, I want to add role to my application to control the user accessing iViews.
       But I do not know if I could make it by configuring the backend server and some coding in the frontend. My colleague told me that I could only configure different applications for each role, so I must do this by inserting authorization code in my application.
        Any help will be welcomed.

    Hi,
    Create a role in  portal and assign your WD iView to that role. Now all the users that are assigned with the above created role in portal will be able to access the WD iView.
    Is this your requirement or something else.
    Regards,
    Murtuza

  • Error while creating DC in webdynpro studio

    Hi,
    I am using Webdynpro studio Version: 2.0.11. When i try to create a DC i get a error.
    Please find the details:
    Plugin name: Web Dynpro Model Editor Services
    plugin ID: com.sap.ide.webdynpro.service.modeleditor
    Class : com.sap.ide.webdynpro.modeleditor.wizards.model.creation.ModelDialog
    exception:
    org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
    JCO.nativeInit(): Could not initialize dynamic link library librfc. Found version "640.0.46" but required at least version "640.0.59".)
    Any body have any clue what has to be done??
    Regards,
    Sudhir

    Hello Sudhir,
    The problems is that you have a old plugin than the required one. If you remember from old times
    this problem can be solved either by updating the correct plugin version in the plugin's directory C:\Program Files\SAP\JDT\eclipse\plugins
    or by installing the NWDS again.
    The second one can be an easier option
    Regards,
    Shubham

  • NoClassDefFoundError:com/sap/tc/webdynpro/modelimpl/dynamicrfc/WDDynamicRFC

    Hi,
    I get a really odd exception, my scenario is as follows.
    WDJ DC "models" contains all my RFC models (1 api public part "api_pp")
    WDJ DC "delegates" contains a pure-java (no WDJ components) abstraction layer (1 api_pp, 1 ***_pp) depends on models (api_pp)
    J2EE server side library "lib/delegates" depends on delegates (***_pp)
    WDJ DC "client" uses delegates (api_pp). WDJ runtime reference towards lib/delegates (defLib).
    When I run the app in client, I get
    java.lang.NoClassDefFoundError: com/sap/tc/webdynpro/modelimpl/dynamicrfc/WDDynamicRFCExecuteException
        at it.sap.fsh.formazione.<Client DC name here>(GestValComp.java:387)
        at it.sap.fsh.formazione.<Client DC name here>(GestValComp.java:220)
    most likely, lib/delegates does not resolve this class.
    I have tried to declare lib/delegates dependency from tc/wd/webdynpro (default) both runtime and buildtime (also separately).
    Something weird happens: buildtime dependency does not resolve issue, runtime dep does not resolve issue AND makes the DC disappear from Visual Admin -> server -> services -> Classloader Viewer -> Libraries, where it is usually correctly listed.
    I am studying also JA340... but without luck
    Can anyone please help?
    Thanks in advance,
    Vincenzo

    Hi Vincenzo,
    I hope you have already created JCo destinations on the server for the RFCs imported in the 'models' Web Dynpro DC project.
    If there is some change in backend RFC, then you will need to restart the server. You will have to re-import model in design time (in NWDS),
    then do a DC Build & Deploy all the dependent DCs in the particular order and lastly DC Build, Deploy New Archive & Run your application.
    Kind Regards,
    Nitin
    Edited by: Nitin Jain on Jan 6, 2009 9:09 AM

  • Build gui for existing oracle database tables with webdynpro java?

    hi
    i want to build a GUI to maintain existing oracle tables
    so far we used oracleFORMS to do so
    is there a good approach for webdynpro java? or do you recommend other sap tools?
    can we generate the gui with a wizard based on the fields in the table?
    do we have to generate sql statements or type in manually?
    regards
    joerg

    Hi Joerg,
    generally that is possible, but you'll have to implement the data access by yourself, by means of EJB or another Java persistance framework such as JDO, SQLMaps, Hibernate, whatever...
    Web Dynpro allows to build a GUI based upon a model - in this case this could be some POJOs (DTOs) representing your database tables, which are communicated to the GUI by your data access layer. Consider a model as a simple Java bean representing database data.
    This approach would require to build a data access layer which incorporates manually generated sql statements, so you'll have to have expert database and java knowledge.
    There might be other approaches, this is just to demonstrate one working possibility.
    regards,
    Christian

  • How to display HTML files using ABAP Webdynpro?

    Hi,
    I have a html index file and a bunch of other files accessed by the index file  in a specific directory on the SAP server. I'd like to display the index file via ABAP webdynpro and allow the users to click on what they need to see. How can I achieve this using utilizing the ABAP webdynpro technology ?
    Thanks!

    Hi Thomas,
    Thanks for taking the time to answer my question.
    I have the main html file and all other files needed by the main file in one directory on the application layer of SAP. I'd like to provide the user with a link, by clicking on which they should be able to get to the main html file using the browser. This is just a standalone application.
    I can try the approach using BSPs, however, I'm new to that area. Could you point me in the right direction to get started?

Maybe you are looking for

  • Create a new curve in Graph module using vbs

    Hello. I am trying to get control over the curves in the Graph module of Diadem 8.1 using vbs. I can change the propoerties of the curves that have been already created, but it is not always the most appropiate. How can I create a new curve in the Gr

  • PDF opens in all versions of Acrobat except 7

    I am working on a project where we create PDF documents with FOP. The generated PDFs open in Version 6, 8 and 9 but NOT 7! We get an error "There was a problem reading this document(114)" The document is partially rendered and disappears when you scr

  • How to store pl/sql statement in varchar and call EXEC on it?

    So this statement works: SELECT column_name BULK COLLECT INTO table_column_list FROM all_tab_columns WHERE table_name = conv_tablename AND OWNER IN (SELECT USER FROM DUAL); However I want to add conditions like " AND column_name <> 'abc' " at the end

  • Broadband fusion usage by device

    We have two computers and three iphones that share our Fusion router. Is there any way to measure how much usage each device is responsible for?

  • How to write in java c:out value="${bindings.First.enabledString}"/ ?

    I have the jstl <c:out value="${bindings.First.enabledString}"/>. I want to translate the regular expression "${bindings.First.enabledString}" in java code. How can I do it? I've found the class that implement "bindings": oracle.jbo.uicli.binding.JUF