Static methods in Session EJB

Dear Friends,
This is kind of urgent.I have a very simple question and I need everyone of ur's opinion on something.I was currently wokring on a web based project.The architect of the project designed to use Session and Entity beans.
He asked me to put "Static" methods in the Session EJB to produce generated HTML pages.for example
public ststic String getPage(myBean);
I'd like to hear ur comments on this.
Thanks
Jewel

In general, mixing HTML and business logic is not very good practice. EJBs were created in part to separate presentation and business logic (among various other reasons), and this type of design goes against that goal.
What's wrong with using JSPs and controller/proxy JavaBeans to interface with the EJBs and create your presentation HTML?

Similar Messages

  • Static methods in Session Beans problem

    Can a Stateful Session Bean have a static method?
    public static String foo();
    I tried to add a static method to a Stateful Session bean but had two problems:
    When I tried to add the static modifier to the Remote interface:
    static String foo();
    I got the following error message:
    Error(12,17): modifier static not allowed here
    When I tried to compile code calling this function :
    MyClass.foo();
    I got this message:
    Error(795,42): non-static method getNewSuffix(java.lang.String) cannot be referenced from a static context
    Even though a static method was compiled in this class. I assume it can't find the static modifier in the Remote interface which wasn't allowed. Are static methods allowed in EJB's at all?

    dear friend,
    1) Interfaces may not contain static functions!
    2) EJBs doesnt support static methods !
    Maybe you should go and learn more about Java and EJB's ?

  • Mulitple databases handling in Session EJB

    Can u get connections to two different database in one method of Session EJB.
    I want to update two different databases probably one in Oracle and other in SQL server.
    Any suggestions ??
    Thanks.

    Writing two entity beans might not work.
    here is the reason why.
    If you start a transaction in your session bean and try to call 2 entity beans in the same transaction, then your entity beans cannot make a connection to different datasources.
    Once a connection is opened to a datasource inside a transaction, you cannot open another connection to a different DataSource.
    If you try to have different transactions in the two entity beans that you write then there is no way to maintain consistancy between the two DBs as update to one can fail while other succeeds.
    The only way you can achieve what you are looking for is by using 2PC. (2 phased commit)
    Beware, not all app servers support 2PC. (I know wls 6.1 does) not all drivers support 2PC, and not all resource managers support 2PC. So you'll have to read the documentation of your app server, driver, and databases before you can proceed.
    regards,
    Abhishek.

  • How to create ErrorLog file from Session EJB

    Hi my friends,
    I have the need to write the Exception Errors from Session EJBs into log file. The problem is my project is the multi-user application and many EJBs' user transactions need to log the errors to only one log file, if I use EJB named ErrorLogWriter as the main component for log file writer and the other EJBs just reference to this EJB to log the errors, each request will create one instance of ErrorLogWriter therefore we can't access to only one log file. Somebody told me that it should be OK if we use servlet as the log file writer because only one servlet instance is initialized for multi-requests, and the other EJBs just call this servlet. Do you have any ideas or suggestion for this matter? If using servlet is the right solution, can I call servlet method from Session EJBs? and how?
    Thanks in advance for any help
    Quoc Nguyen

    Look for log4j -
    http://jakarta.apache.org/ ( then side menu )

  • Use of Synchronised with Static methods in EJBs

    We have a number of classes whose static methods are called by multiple EJBs. Could you tell me whether I might need to Synchronise these static methods or will this be unnecessary because they are being called by an EJB for a specific user.
    Thanks
    Dave

    Whether or not a method (static or non-static) is thread-safe depends on whether or not the method accesses instance and/or class variables or only method-local variables...
    dave horner wrote:
    We have a number of classes whose static methods are called by multiple EJBs. Could you tell me whether I might need to Synchronise these static methods or will this be unnecessary because they are being called by an EJB for a specific user.
    Thanks
    Dave

  • Not seeing persistEntity or mergeEntity method when creating a session EJB

    Hi all,
    I am using JDev 11g to develop an ADF application. I have finished creating an entity EJB from database tables. Then I want to create a session EJB. In JDev, I do not see persistEntity or mergeEntity method in "<Core Facade Methods>"; rather, I am seeing another method
    public Object queryByRange(String jpqlStmt,int firstResult,int maxResults)
    listed there.
    Could you please let me know why? I am expecting to have persistEntity and mergeEntity methods included in the final created session EJB.
    Thank you.

    Hi,
    Thank you for your reply. But I am still not sure how to use the persist and merge methods from EntityManager. Either I want in the session EJB creation wizard to have persistEntity and mergeEntity to appear under "Core Facade methods", or I want to add these methods in the generated bean java file. I tried the latter by adding these two methods in the bean file, but I got an exception at runtime.
    Please privide some more information. Thank you very much.

  • In terms of scalabilty, will static method in normal java class better than

    You only have one copy of the static method in memory, but you have a few copy of the stateless session bean, plus the overhead of those session bean.So isn't static method of normal java class more scalable than stateless session bean.

    Then you have to take care of transaction management, connection pooling, etc other ejb services all by your self.
    In fact stateless session beans acts more like a static class. They do not get destroyed when remove() method is called on client stub. Similarly they are not always gets created whenever someone calls create() method on home interface!! (Again it's specific to appserver implementation)
    Thx.

  • Can I have a static method?

    I want to know whether we can have static method and static block in Ejb.
    also I want to know the use of these and when these will be invoked by the container

    Technically speaking you can have static methods or static blocks the java compiler or teh ejb deployer will not complain
    However its always a good practice to avoid having static blocks, static methods in EJB
    if you have the urge to initialise or have a startup code in your application when EJB is loaded , you can implement the code in ejbCreate()
    - I dont see any other reason where you might need static block
    if there is any other reason please explain what cirumstances drives you to have static {} static mthd()
    if it is statess session Bean avoid having even non-static member variables
    Reasons for not having non-static member variable in Stateless Session EJB is
    1. stateless EJBs are pooled so the instances are pooled after use.. so there is a chance you might get the same instance with previous assigned values
    Hope the info helps!

  • Too many static methods?

    Hello,
    I am using Oracle 9iAS 9.0.3. My app uses stateless session beans for data access.
    Does anyone have opinions about using static methods in ejb's, specifically there impact on performance under high load? Can a bottleneck be caused by a call to a static method by multiple beans?

    According to EJB Specification you cant declare your business methods static or final.
    --Venky                                                                                                                                                                                                   

  • Deploy multiple instances of the same stateless session EJB

    I have a stateless session bean.
    The methods on the bean operate against DB tables.
    Q: Can I deploy multiple instances of the same stateless session bean, but specify a different JNDI/datasource name in the deployment descriptor?
    The method calls are all enclosed within a single invocation, just that I need to hit different databases (all with the same schema), and Id like to be able to lookup the EJB via a different JNDI name, and have the exact same functionality, just against different deployed datasources.
    Does the spec allow/support this?
    If not, any suggestions as to how to achieve this sort of functionality?
    Im using JBoss 3.2.1 on Solaris, so Im not sure whether or not this is a JBoss "issue" or a limitation of the EJB Spec (or me being just plain wrong and trying to do something the "wrong way")
    Nick

    I have a stateless session bean.
    The methods on the bean operate against DB tables.
    Q: Can I deploy multiple instances of the same
    stateless session bean, but specify a different
    JNDI/datasource name in the deployment descriptor?
    The method calls are all enclosed within a single
    invocation, just that I need to hit different
    databases (all with the same schema), and Id like to
    be able to lookup the EJB via a different JNDI name,
    and have the exact same functionality, just against
    different deployed datasources.
    Does the spec allow/support this?
    If not, any suggestions as to how to achieve this sort
    of functionality?
    Im using JBoss 3.2.1 on Solaris, so Im not sure
    whether or not this is a JBoss "issue" or a limitation
    of the EJB Spec (or me being just plain wrong and
    trying to do something the "wrong way")
    NickI haven't done it but judging from the deployment descriptors yes.
    For example if I have two bounded datasources java:/Database1 and java:/Database2
    Lets say I have a session bean called MySession, then in your ejb-jar.xml you would have (notice that the desc, display, and ejb-name are the only differences)
    <session>
    <description>MySessionAlpha</description>
    <display-name>MySessionAlpha</display-name>
    <ejb-name>MySessionAlpha</ejb-name>
    <home>com.mycorp.MySessionRemoteHome</home>
    <remote>com.mycorp.MySessionRemote</remote>
    <local-home>com.mycorp.MySessionLocalHome</local-home>
    <local>com.mycorp.MySessionLocal</local>
    <ejb-class>com.mycorp.MySessionFacadeBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <session>
    <description>MySessionBeta</description>
    <display-name>MySessionBeta</display-name>
    <ejb-name>MySessionBeta</ejb-name>
    <home>com.mycorp.MySessionRemoteHome</home>
    <remote>com.mycorp.MySessionRemote</remote>
    <local-home>com.mycorp.MySessionLocalHome</local-home>
    <local>com.mycorp.MySessionLocal</local>
    <ejb-class>com.mycorp.MySessionFacadeBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    But now in the jboss.xml, we will have the following elements. What you may notice is that are bound to different remote and local jndi names. But the resource bindings are very different. The res-ref-name stays the same, but the jndi-name are different. I think this will work for you.
    <session>
    <ejb-name>MySessionAlpha</ejb-name> <jndi-name>ejb/com/mycorp/MySessionAlphaRemoteHome</jndi-name> <local-jndi-name>ejb/com/mycorp/MySessionAlphaLocalHome</local-jndi-name>
    <resource-ref>
    <res-ref-name>jdbc/datasource</res-ref-name>
    <jndi-name>java:/Database1</jndi-name>
    </resource-ref>
    </session>
    <session>
    <ejb-name>MySessionBeta</ejb-name> <jndi-name>ejb/com/mycorp/MySessionBetaRemoteHome</jndi-name> <local-jndi-name>ejb/com/mycorp/MySessionBetaLocalHome</local-jndi-name>
    <resource-ref>
    <res-ref-name>jdbc/datasource</res-ref-name>
    <jndi-name>java:/Database2</jndi-name>
    </resource-ref>
    </session>

  • Issue when a standalone client invoke a method on an EJB

    I do a simple ejb (like SayHello sample) and i create a standalone client that call one method of this EJB.
    When i run the client i have the following error from the eclipse IDE (Error is thrown at lookup):
    Exception in thread "main" java.lang.AssertionError: java.lang.ClassNotFoundException: test.IHelloWorld
         at weblogic.ejb.container.internal.RemoteBusinessIntfGenerator.generateRemoteInterface(RemoteBusinessIntfGenerator.java:57)
         at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.readObject(RemoteBusinessIntfProxy.java:205)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
         at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:197)
         at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:564)
         at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:193)
         at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62)
         at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:240)
         at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
         at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
         at weblogic.jndi.internal.ServerNamingNode_1030_WLStub.lookup(Unknown Source)
         at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:392)
         at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:380)
         at javax.naming.InitialContext.lookup(InitialContext.java:392)
         at client.MainHello.main(MainHello.java:21)
    Caused by: java.lang.ClassNotFoundException: test.IHelloWorld
         at weblogic.ejb.container.deployer.RemoteBizIntfClassLoader.getClassBytes(RemoteBizIntfClassLoader.java:151)
         at weblogic.ejb.container.deployer.RemoteBizIntfClassLoader.loadClass(RemoteBizIntfClassLoader.java:96)
         at weblogic.ejb.container.internal.RemoteBusinessIntfGenerator.generateRemoteInterface(RemoteBusinessIntfGenerator.java:54)
         ... 26 more
    The eclipse IDE is runwith the option -vm D:\bea\jdk160_05\bin\java
    In eclipse, i configure to use the same jdk.
    When i execute the client outside eclipse, all is ok....
    Do you have an idée ?
    This is the ejb code :
    package test;
    public interface IHelloWorld {
    public static final String JNDI_NAME = "HelloWorld";
    public String sayHello( String name);
    package test;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    import javax.ejb.TransactionAttribute;
    import javax.ejb.TransactionAttributeType;
    import javax.ejb.TransactionManagement;
    import javax.ejb.TransactionManagementType;
    @TransactionManagement(TransactionManagementType.CONTAINER)
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    @Stateless( name="HelloWorld", mappedName= IHelloWorld.JNDI_NAME)
    @Remote( IHelloWorld.class)
    public class HelloWorld implements IHelloWorld
    public String sayHello (String name) {
    final String msg = "Hello " + name + ". The world is wonderfull...";
    System.out.println ( msg);
    return msg;
    This is the client code :
    package client;
    import java.util.Hashtable;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import test.IHelloWorld;
    public class MainHello {
    public static void main (String[] args) throws Exception
    Hashtable<String, String> properties = new Hashtable<String, String> ();
    properties.put (Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    properties.put (Context.PROVIDER_URL, "t3://localhost:7001");
    InitialContext ctx = new InitialContext( properties);
    IHelloWorld hello = (IHelloWorld)ctx.lookup ( "HelloWorld#test.IHelloWorld");
    String result = hello.sayHello ( "franck");
    System.out.println ( result);
    ctx.close ();
    As you can see it is very simple but doesn't work inside eclipse IDE...
    Edited by: user11281761 on 30 juin 2009 07:13

    Oracle software purchases come with a CSI number that allows customers to have people contact support for products they own. If you or the organization you are working with has not purchased the product or have other support arrangements with Oracle (some partners have this), then you probably will not be able to obtain the patch from Oracle.
    You might be able to try a newer release of the product with an OTN evaluation license, WebLogic Server is currently on version 10.3.3, so you are at least 3 releases behind at this point if you are using 10.3.0.

  • Transaction rollback in stateless session EJB 3.0

    Hello everyone !
    I have a stateless session EJB as per 3.0 spec.
    /*Remote Interface*/
    package com.nseit.ncfm2.data.ejb;
    import java.sql.SQLException;
    import java.util.Collection;
    import javax.ejb.Remote;
    import javax.ejb.TransactionAttribute;
    import javax.ejb.TransactionAttributeType;
    import javax.naming.NamingException;
    import com.nseit.ncfm2.security.Audit;
    @Remote
    public interface ProductionDataChangesRequestsRemote {
         @TransactionAttribute(TransactionAttributeType.REQUIRED)
         public boolean shiftCandidateDetails(String sourceNcfmId,
                   String destinationNcfmId, Collection<String> specialCasesList, String shiftingRemarks, String user, Audit updtAudit) throws NamingException, SQLException;
    /*Bean Class*/
    package com.nseit.ncfm2.data.ejb;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    import javax.ejb.TransactionAttribute;
    import javax.ejb.TransactionAttributeType;
    import javax.ejb.TransactionManagement;
    import javax.ejb.TransactionManagementType;
    import javax.naming.NamingException;
    import com.nseit.ncfm2.security.Audit;
    import com.nseit.ncfm2.util.server.lookup.LookUpServerResources;
    import java.sql.*;
    import java.util.*;
    * Session Bean implementation class ProductionDataChangesRequestsBean
    @Stateless(name = "ProductionDataChangesRequestsBean", mappedName = "ProductionDataChangesRequestsEJB")
    @Remote(ProductionDataChangesRequestsRemote.class)
    @TransactionManagement(TransactionManagementType.CONTAINER)
    public class ProductionDataChangesRequestsBean implements
              ProductionDataChangesRequestsRemote {
         * Default constructor.
         public ProductionDataChangesRequestsBean() {
              // TODO Auto-generated constructor stub
         @Override
         @TransactionAttribute(TransactionAttributeType.REQUIRED)
         public boolean shiftCandidateDetails(String sourceNcfmId,
                   String destinationNcfmId, Collection<String> specialCasesList,
                   String shiftingRemarks, String user, Audit updtAudit)
                   throws NamingException, SQLException {
              // TODO Auto-generated method stub
              Connection conn = null;
              PreparedStatement pstmt = null;
              int updtCnt = 0;
              boolean areDetailsShifted = false;
              try {
                   /* Start: update table-1 */
                   updtCnt = pstmt.executeUpdate();
                   /* End: update table-1 */
                   /* Start: update table-2 */
                   updtCnt = pstmt.executeUpdate();
                   /* End: update table-2 */
                   areDetailsShifted = true;
              } /*catch (SQLException e) {
                   // TODO Auto-generated catch block
                   System.out
                             .println("SQLException in ProductionDataChangesRequestsBean.shiftCandidateDetails(...) "
                                       + e.getMessage());
                   // e.printStackTrace();
                   context.setRollbackOnly();
              } */finally {
                   LookUpServerResources.closeStatement(pstmt);
                   LookUpServerResources.closeConnection(conn);
              return areDetailsShifted;
    Currently,if the 1st table update succeeds and the 2nd table update gives an exception,a rollback is not taking place i.e records in 1st table are updated.
    I want the transaction to be rolled back in case an SQLException occurs(or for that matter,any runtime exception occurs).
    I tried two approaches :
    i: Use of context.setRollbackOnly() in catch block for SQLException
    ii:Throwing the SQLException
    In both the cases, the transaction didn't roll back.
    How can I achieve this :
    i: Without the usage of @ApplicationException annotation(as I do not have any application exceptions)
    ii: Without catching the SQLException and then calling context.setRollbackOnly()
    Or what is the standard way?
    Thanks !

    Where is your connection object coming from?

  • Static methods in Transfer Objects

    Hi all,
    I have a doubt about Transfer Object:
    Is it possible to have a static method (or field)
    inside a Transfer Object returned from
    a Session Bean to a Client ?
    Many thanks in advance,
    Moreno

    Static fields, yeah, they'd cause some interesting problems, so are not a good idea in TOs. You can do it, but YMMV (Your Mileage May Vary).
    Static method? I'd get rid of it and put it in a utility class or somewhere else. Static methods are pretty meaningless when applied to TOs. The idea is to encapsulate data and some behavior - not provide procedural functionality.

  • Can't get ClassLoader from static method.

    I'm trying to get the ClassLoader within a static method getInstance().
    public class PropertyManager {
    public static PropertyManager getInstance(String fileName) {
    //The following line returns null
    ClassLoader cl = (new Object()).getClass().getClassLoader();
    URL url = cl.getResource(fileName);
    etc...
    However if getInstance gets called from e.g. a statless session bean, a null
    is returned instead of a valid ClassLoader.
    The same code executed from a standalone java program (e.g. from
    main(String[] args)) returns a valid ClassLoader
    Why does getClassLoader behave differently in WebLogic than in a standalone
    java program?
    Thanks for you help.
    Bernie

    Sorry for the confusion. I wrote a couple of more test programs and was able
    to confirm that WL behaves exacltly the same as java does. For some reason
    my intial tests were messed up...
    getClassLoader() executed from a static method always returns null (in WL as
    well as in a java standalone program).
    In this case ClassLoader.getSystemClassLoader() will return a valid class
    loader.
    Thanks for your help.
    Bernie
    "Rob Woollen" <[email protected]> wrote in message
    news:[email protected]..
    Bernhard Lenz wrote:
    I tried that as well, but getClassLoader() still returns null when
    executed
    in WL.
    I'm still not clear how getClassLoader() gets affected by running withinWL.
    >>
    >
    Very odd. Where is this class located? in the server's classpath, in ajar or
    war file? Does getClass().getClassLoader work from a non-static method inthis
    class?
    -- Rob
    "Rob Woollen" <[email protected]> wrote in message
    news:[email protected]..
    You want PropertyManager.class.getClassLoader()
    -- Rob
    Bernhard Lenz wrote:
    I'm trying to get the ClassLoader within a static method
    getInstance().
    >>>>
    public class PropertyManager {
    public static PropertyManager getInstance(String fileName) {
    //The following line returns null
    ClassLoader cl = (new Object()).getClass().getClassLoader();
    URL url = cl.getResource(fileName);
    etc...
    However if getInstance gets called from e.g. a statless sessionbean, a
    null
    is returned instead of a valid ClassLoader.
    The same code executed from a standalone java program (e.g. from
    main(String[] args)) returns a valid ClassLoader
    Why does getClassLoader behave differently in WebLogic than in astandalone
    java program?
    Thanks for you help.
    Bernie

  • How to call session EJB from EP service in EP 7.0?

    Hi,
    I am trying to invoke stateless session EJB from my portal service. Both the service and EJB are deployed on the same server which is EP 7.0.
    I found [this|http://help.sap.com/saphelp_nw70/helpdata/EN/42/9ddcc9bb211d72e10000000a1553f6/frameset.htm] in SAP help and tried to implement it (added PrivateSharingReference to portalapp.xml and implemented the code), but everytime I try to lookup the session bean and cast it using P4ObjectBroker.narrow() method, I get java.lang.ClassCastException. The object found in JNDI and my portal service have different classloaders, so I suppose this is the problem, but I don't know how to handle it...
    Can anyone please help me?
    Regards,
    Tomas

    Hi Satya ,
              please go though following blog for used DC concept.
    Componentization of Webdynpro Application in CE7.1
    In netweaver 7.1 interface controler is abstract and component controller is implementing interface controller so the context data and methods have to be implemented by component controller

Maybe you are looking for

  • Suppressing "No Entry" calendar entry when printing in the list view

    How can I go about suppressing the "No Entry" item for a date when printing the whole month in the calendar view? I would prefer to only see printed dates that have an actual entry in them.

  • Failed to deploy SOAOrderBooking on SOADEMO 10.1.3.1

    I am newbie to oracle SOA suite. I have followed the instruction in SOA Suite Developer Guide to deploy SOAOrderBooking application and encountered the following problems when I am "Deploying decision services for SOAOrderBooking on localhost, port 8

  • IPhoto says;

    "You can't open the application iPhoto because it may be damaged or incomplete" and the icon is ghosted with a white bar across? I have around 600 pics. and can see them if I want to attach a pic to a mail or something. Any ideas

  • Finding PO's Released and UN - Released PO's

    Hi Friends If any possible For released PO's and Un-Released PO's  Material Wise. Materail - ABC I created PO's same material -ABC PO - 1 with Vnedor -1 ,Po released PO - 2 with Vnedor  - 2  PO not released. In ME28 i know only PO number wise, In ME2

  • Can we migrate reports?

    Can we migrate reports from one environment to the other? If so, how? Thanks