Struts RequestProcessor or Action derivated class?

Hello there,
I just started to develop a project 10 days ago, and although I have read a struts-related book and some articles I want to make sure about some best practices while using this framework.
I have read that it is recommended to extend RequestProcessor in cases when a "user must be logged" in in order to access a protected resource, say for instance, do a post in a forum. But what about if some resources are protected and other resources are not(a user profile could be a protected page), but site news could be public for any visitor.
Is it better to extend RequestProcessor or develop an ActionBase class, then extend this one to provide AccessRestrictionClass, and any page that requires a user to be logged could extend the lastone, and any public page could extend BaseAction?
or is there another way?
Any comments will be apreciated.
Regards,
OO

Double post:
http://forum.java.sun.com/thread.jspa?threadID=631345&messageID=3643015#3643015

Similar Messages

  • Struts RequestProcessor or Action subclass?

    Hello there,
    I just started to develop a project 10 days ago, and although I have read a struts-related book and some articles I want to make sure about some best practices while using this framework.
    I have read that it is recommended to extend RequestProcessor in cases when a "user must be logged" in in order to access a protected resource, say for instance, do a post in a forum. But what about if some resources are protected and other resources are not(a user profile could be a protected page), but site news could be public for any visitor.
    Is it better to extend RequestProcessor or develop an ActionBase class, then extend this one to provide AccessRestrictionClass, and any page that requires a user to be logged could extend the lastone, and any public page could extend BaseAction?
    or is there another way?
    Any comments will be apreciated.
    Regards,
    OO

    The method in requestProcessor to override would be:
    protected boolean processRoles(HttpServletRequest request,
                                       HttpServletResponse response,
                                       ActionMapping mapping)http://struts.apache.org/api/org/apache/struts/action/RequestProcessor.html#processRoles(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.struts.action.ActionMapping)
    This method is intended to check permissions for the user. You can override it with your own version of the check if you so wish.
    You can mark up your action mappings in struts-config.xml to specify that certain actionMappings are only available to certain roles. This is the default behaviour, and wouldn't need any overriding to use
    The whole thing depends on how you are implementing the login/security.
    Are you using the servlet container login/security schema (users/roles) or a custom one?
    Cheers,
    evnafets

  • UnavailableException for Struts RequestProcessor

    I posted a thread several months back with an issue deploying a 10.1.2 adf application to a 9.0.4.0.1 server and never had it resolved.
    When I look in the log file, I see a message that the Struts RequestProcessor is unavailable. The message looks like this:
    Jul 27, 2005 6:50:43 PM org.apache.struts.action.ActionServlet
    SEVERE: javax.servlet.UnavailableException: Cannot initialize RequestProcessor org.apache.struts.action.ActionServlet
    ClassNotFoundException
    I'm assuming this is happening on startup of the application when it reads the web.xml file and is attempting to load the actionservlet. The struts.jar file is in the WEB-INF/lib path.
    We tried moving it around, then examined an application.log file and it says it cannot be found in <long path here>web-inf/classes/org/apache/struts/action/ActionServlet.class, nor in <long path here>/WEB-INF/lib/, in a classpath defined in orion-web.xml nor in a global application path.
    We tried putting it in the oc4j folder for this app in the applib folder, and tried adding an entry in the orion-web.xml file <classpath path="path to jars"/>
    but that did not seem to work either.
    The application runs as slow as molasses in January, maybe slower on 9.0.4.0.1, but runs fine in 10.1.2. WE thought this might have something to do with it, but I have no idea how to resolve it at this point. We cannot move to 10.1.2 as 10 other apps run on this server and we're not planning any migration at this point.
    Please, please share your thoughts, talents, advice on this!!

    I found the error here from home in another thread:
    Servlet error: Error instantiating servlet 'action' (servlet class not found, make sure it exists at C:\oc4j\j2ee\home\applications\myappname/WEB-INF/classes/org/apache/struts/action/ActionServlet.class, in a jar in C:\oc4j\j2ee\home\applications\myappname/WEB-INF/lib/, in an orion-web.xml specified classpath or global server classpath)

  • Warning :: Derived class hides the base class virtual function

    We are porting from CC5.3 to CC5.8 compiler with Sun Studio one compiler. After plenty of hurdles we are in the final stage of removing the warning messages... Amoung the plenty the following one is very common and in different files. Why am I getting this error in 5.8 and not in 5.3 compiler....
    Warning: derived_Object::markRead Hides the virtual function base_Object::markRead(ut_SourceCodeLocation&) const in a virtual base
    From this it is easily understandable that the base class mark read was hidden by derived class markRead... when we drive and override the derived class function.... It is all over the place....
    Thank you,
    Saravanan Kannan
    //public: using xx_Object :: markRead;
    virtual void markRead() const;

    The Sun C++ FAQ discusses the warning message:
    http://developers.sun.com/prodtech/cc/documentation/ss11/mr/READMEs/c++_faq.html#Coding1
    Notice that warnings are not necessarily errors. But I applaud your desire to fix the code so that it generates no warnings. I wish more of our customers could be persuaded to do the same. :-)
    C++ 5.3 issues this warning, by the way. Example:
    struct B { virtual int foo(int); };
    struct D : B { virtual int foo(double); }; // line 2
    D d;
    line 2: Warning: D::foo hides the virtual function B::foo(int).
    If for your particular code you do not see a warning with C++ 5.3, it would be due to a bug in C++ 5.3 that was later fixed.

  • My derived class suddenly doesn't recognize the parent class

    I had my assignment coded, debugged, working and ready to go. So I bring my flash drive upstairs to play around with it on my other computer. When I compile the base class it compiles fine, but now when I try to compile the derived class, and the test class with the main method, I'm coming up with errors.
    They have something to do with the base class not being recognized, because I can't instantiate any objects of the class now, and i get an error when attempting to compile the derived class to the effect of "cannot find symbol; symbol: class BaseClass". i get this error throughout the derived class, from the initial declaration of the class (public class DerivedClass extends BaseClass), to any references made toward methods of the parent class.
    My base class compiles with no problem, but it's like nothing else is able to "use" it. I'm not sure if it has something to do with the PC im using now, and I can't confirm this at the moment because the PC I used to write the code is down (waiting on an upgrade).
    ehhh.....help.
    Message was edited by:
    asphaltninja
    null

    It's not the fault of the computer hardware.
    It's not the fault of the operating system.
    It's not the fault of the JDK.
    So don't go rebooting or reinstalling anything. The problem is that you didn't set up things on the new computer in the same way they were set up on the old computer.
    In particular the compiling problem is that the compiled version of BaseClass isn't in the classpath when you try to compile DerivedClass. I can't tell why from your description.

  • Problems using different tables for base class and derived class

    I have a class named SuperProject and another class Project derived from
    it. If I let SchemaTool generate the tables without specifying a "table"
    extension, I get a single TABLE with all the columns from both classes and
    everything works fine. But if I specify a "table" for the derived class,
    SchemaTool generates the derived class with just one column (corresponds
    to the attribute in derived class). Also it causes problems in using the
    Project class in collection attributes.
    JDO file:
    <jdo>
    <package name="jdo">
    <class name="Project" identity-type="application"
    persistence-capable-superclass="SuperProject">
    <extension vendor-name="kodo" key="table" value="PROJECT"/>
    </class>
    <class name="SuperProject" identity-type="application"
    objectid-class="ProjectId">
    <field name="id" primary-key="true"/>
    </class>
    </package>
    </jdo>
    java classes:
    public class Project extends SuperProject
    String projectSpecific
    public class SuperProject
    BigDecimal id;
    String name;
    tables generated by SchemaTool:
    TABLE SUPERPROJECTSX (IDX, JDOCLASSX, JDOLOCKX, NAMEX);
    TABLE PROJECT(PROJECTSPECIFICX)
    Thanks,
    Justine Thomas

    Justine,
    This will be resolved in 2.3.4, to be released later this evening.
    -Patrick
    In article <aofo2q$mih$[email protected]>, Justine Thomas wrote:
    I have a class named SuperProject and another class Project derived from
    it. If I let SchemaTool generate the tables without specifying a "table"
    extension, I get a single TABLE with all the columns from both classes and
    everything works fine. But if I specify a "table" for the derived class,
    SchemaTool generates the derived class with just one column (corresponds
    to the attribute in derived class). Also it causes problems in using the
    Project class in collection attributes.
    JDO file:
    <jdo>
    <package name="jdo">
    <class name="Project" identity-type="application"
    persistence-capable-superclass="SuperProject">
    <extension vendor-name="kodo" key="table" value="PROJECT"/>
    </class>
    <class name="SuperProject" identity-type="application"
    objectid-class="ProjectId">
    <field name="id" primary-key="true"/>
    </class>
    </package>
    </jdo>
    java classes:
    public class Project extends SuperProject
    String projectSpecific
    public class SuperProject
    BigDecimal id;
    String name;
    tables generated by SchemaTool:
    TABLE SUPERPROJECTSX (IDX, JDOCLASSX, JDOLOCKX, NAMEX);
    TABLE PROJECT(PROJECTSPECIFICX)
    Thanks,
    Justine Thomas
    Patrick Linskey [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • How to load function from derived class from dll

    Dear all,
    how to access extra function from derived class.
    for Example
    //==========================MyIShape.h
    class CMyIShape
    public:
    CMyIShape(){};
    virtual ~CMyIShape(){};
    virtual void Fn_DrawMe(){};
    // =========== this is ShapRectangle.dll
    //==========================ShapRectangle .h
    #include "MyIShape.h"
    class DLL_API ShapRectangle :public CMyIShape
    public:
    ShapRectangle(){};
    virtual ~ShapRectangle(){};
    virtual void Fn_DrawMe(){/*something here */};
    virtual void Fn_ChangeMe(){/*something here */};
    __declspec (dllexport) CMyIShape* CreateShape()
    // call the constructor of the actual implementation
    CMyIShape * m_Obj = new ShapRectangle();
    // return the created function
    return m_Obj;
    // =========== this is ShapCircle .dll
    //==========================ShapCircle .h
    #include "MyIShape.h"
    class DLL_API ShapCircle :public CMyIShape
    public:
    ShapCircle(){};
    virtual ~ShapCircle(){};
    virtual void Fn_DrawMe(){/*something here */};
    virtual void Fn_GetRadious(){/*something here */};
    __declspec (dllexport) CMyIShape* CreateShape()
    // call the constructor of the actual implementation
    CMyIShape * m_Obj = new ShapCircle();
    // return the created function
    return m_Obj;
    in exe there is no include header of of ShapCircle and ShapRectangle 
    and from the exe i use LoadLibrary and GetProcAddress .
    typedef CMyIShape* (*CREATE_OBJECT) ();
    CMyIShape*xCls ;
    //===================== from ShapeCircle.Dll
    pReg=  (CREATE_OBJECT)GetProcAddress (hInst ,"CreateShape");
    xCls = pReg();
    now xCls give all access of base class. but how to get pointer of funciton Fn_GetRadious() or how to get access.
    thanks in advance.

    could you please tell me in detail. why so. or any reference for it. i love to read.
    i don't know this is bad way.. but how? i would like to know.
    I indicated in the second sentence. Classes can be implemented differently by different compilers. For example, the alignment of member variables may differ. Also there is the pitfall that a class may be allocated within the DLL but deallocated in the client
    code. But the allocation/deallocation algorithms may differ across different compilers, and certainly between DEBUG and RELEASE mode. This means that you must ensure that if the DLL is compiled in Visual Studio 2010 / Debug mode, that the client code is also
    compiled in Visual Studio 2010 / Debug mode. Otherwise your program will be subject to mysterious crashes.
    is there any other way to archive same goal?
    Of course. DLL functionality should be exposed as a set of functions that accept and return POD data types. "POD" means "plain-ole-data" such as long, wchar_t*, bool, etc. Don't pass pointers to classes. 
    Obviously classes can be implemented within the DLL but they should be kept completely contained within the DLL. You might, for example, expose a function to allocate a class internally to the DLL and another function that can be called by the client code
    to free the class. And of course you can define other functions that can be used by the client code to indirectly call the class's methods.
    and why i need to give header file of ShapCircle and shapRectangle class, even i am not using in exe too. i though it is enough to give only MyIShape.h so with this any one can make new object.
    Indeed you don't have to, if you only want to call the public properties and methods that are defined within MyIShape.h.

  • How to call derived class to base class

    Hello everybody,
    I create a GUi application in java swing. Now i want to navigate between the screen but the timing between the screen is very slow bcoz i imported the class from package to another package. Now i want to extends one package to another package to reduce the navigation time but it saying error bcoz i cant able to call my derived class to base class. if anyone know the answer for this please answer this immediately.
    If any other method is there to optimise the navigation time please tell me
    by
    (kamal)

    Sorry, I've got major difficulties understanding your query:
    I create a GUi application in java
    ication in java swing. ok
    Now i want to navigate between
    the screenwhat? switch screens? display a different dialog?
    but the timing between the screen is very
    slowtiming? do you mean the time it takes to display a different dialog?
    bcoz i imported the class from package to
    another package.how did you come to the conclusion that that is the reason for the slowness? Did you do any profiling or is this just guess-work?

  • Set fields of derived class in base class constructor via reflection?

    Does the Java Language Specification explicitly allow setting of fields of a derived class from within the base class' constructor via reflection? The following test case runs green, but I would really like to know if this Java code is compatible among different VM implementations.
    Many thanks for your feedback!
    Norman
    public class DerivedClassReflectionWorksInBaseClassConstructorTest extends TestCase {
    abstract static class A {
        A() {
            try {
                getClass().getDeclaredField("x").setInt(this, 42);
            } catch (Exception e) {
                throw new RuntimeException(e);
    static class B extends A {
        int x;
        B() {
        B(int x) {
            this.x = x;
    public void testThatItWorks() {
        assertEquals(42, new B().x);
        assertEquals(99, new B(99).x);
    }

    why not just put a method in the superclass that the subclasses can call to initialize the subclass member variable?In derived classes (which are plug-ins), clients can use a field annotation which provides some parameter metadata such as validators and the default value. The framework must set the default value of fields, before the class' initializer or constructors are called. If the framework would do this after derived class' initializer or constructors are called, they would be overwritten:
    Framework:
    public abstract class Operator {
        public abstract void initialize();
    }Plug-In:
    public class SomeOperator extends Operator {
        @Parameter(defaultValue="42", interval="[0,100)")
        double threshold;
        @Parameter(defaultValue="C", valueSet="A,B,C")
        String mode;
        public void setThreshold(double threshold) {this.threshold = threshold;}
        public void setMode(String mode) {this.mode = mode;}
        // called by the framework after default values have been set
        public void initialize() {
    }On the other hand, the default values and other metadata are also used to create GUIs and XML I/O for the derived operator class, without having it instantiated. So we cannot use the initial instance field values for that, because we don't have an instance.

  • Implements interface method at the derived class

    Hi all.
    I have a class (Derived) that extends another class (Base).
    In the base class (Base) there is a method f() with its implementation.
    In the interface (C) there is also f() method exactlly like in the base class (Base).
    The derived class (Derived) is implements the interface (C).
    My question is:
    Do i have to implement the method f() in the derived class (Derived) ?

    My guess is that you probably have to, even if it's just to call the parent's method.
    This all sounds pretty sketchy. Why don't you just make the BASE class implement your interface?

  • Custom Inherited/Derived Class & the Data Warehouse

    Hi there,
    I'd like to reference an older post by Travis in regards to getting a Custom Class into the Dataware House:
    DW Reporting on Custom Class
    Scenario:
    I've created an Inherited/Derived Class, with its own Form (not an
    Extension).
    This Class Inherits from the Base Incident Class.
    Inherited Class has two (2) new properties (a String and a List Property).
    Class and Form is all working well within the SCSM Console.
    By default, this class is inheriting all the Relationships (like AssignedTo, AffectedUser, CreatedBy, HasConfigItem) from the Base Incident Class without me having to do anything in the mp apart from including the <Reference> & <TypeProjection>
    components.
    To get this class I am aware that it has
    to be defined - as in a new dimension has to be created for this Derived Class.
    Questions:
    1. Is it recommended to have these dimension/s in a separate sealed mp, or include it with the derived Class mp (sealed) - is there a best practice?
    2. Online resources (technet and other) state a dimension has to be created for the new Class <Dimensions>, but do I also need to include <Outriggers> as well as <Facts>
    for this Class?

    In JDeveloper 10.1.2, I configure in adfjclient_binding.xml:
    <controlDefinition name="JTable Ext"
    className="com.lib.swing.JTableExt"
    classPath=""
    shortLabel="JTableExt"
    longLabel="com.lib.swing.JTableExt"
    tooltipText="com.lib.swing.JTableExt"
    bindingType="DCTable"
    icon="/oracle/ideimpl/resource/images/palette/JTable.gif">
    <useTemplate>
    <![CDATA[${FieldName}.setBinding(panelBinding,"${BindingName}","${IteratorBinding.getId()}")]]>
    </useTemplate>
    <imports>
    <![CDATA[javax.swing.JTable;javax.swing.table.TableModel;com.lib.swing.JTableExt]]>
    </imports>
    </controlDefinition>
    and In my projects, I only drag and drop JTableExt into my form, it auto generate code:
    jTableExt1.setBinding(panelBinding, "SubProfileTypeView2", "SubProfileTypeView1Iterator");
    because setBinding function of JTableExt in my library, it contains setmodel function and some other function.
    Now, In JDeveloper 10.1.3, I drag and drop JTableExt into my form and I have to code one line:
    jTableExt1.setBinding(panelBinding, "SubProfileTypeView2", "SubProfileTypeView1Iterator");
    Which way is there, I haven't to code?
    Jacque

  • Base class vs derived class

    We have entity classes that we use to access our database. We have subclasses derived from these entity classes that apply business rules. For instance, the base class AddressEntity has a
    setAddress2(string) that AddressEntity.select() uses to set a class variable with data retrieved from the database. The derived class Address also has a setAddress2(string) method that puts restrictions on the length of the data. I want the AddressEntity.select() method to use the base class method AddressEntity.setAddress2(). I've tried using this.setAddress2() in AddressEntity.select() but the derived class method is still used. Any suggestions?
    Thanks,
    Joe

    If you need to call some methods on the base class sometimes and some methods on the derived class other times, but using the same object, then yes dubwai is right you should revisit your Object hierarchy.
    One simple way to do what you are asking is to have your method(s) look like this:
    void setAddress2(String sAddress) { setAddress2(sAddress, true); }
    void setAddress2(String sAddress, boolean bRestrictLength) {
      // real method
    }then you could just look at the variable bRestrictLength to see if you need to restrict the length, and have it default to true. In this way you can use overloading to solve your problem.

  • Base class/Derived class

    Hi all,
    I have
    class Base {
    int a;
    class Derived{
    int b;
    now if i do
    Base X = new Base();
    Derived D = new Derived();
    It Doesn't allow me to do D=X
    But it does allow me to do X=D.
    whats the reason behind it. And what actually happens when i do X=D , does the copy constructor gets called ?
    Thanx

    Manthana wrote:
    Hi, u said
    the value of X becomes the reference to the instance of Derived that you created when you called "new Derived()".
    So now i can access attributes of derived class from the reference X right X.b
    But i cant do X.b
    Why?Please spell out words like "you". It makes things easier to read. :)
    With Derived extending Base, you could say:
    X = D;
    X.a = 5;Because the compiler and runtime see X as a reference to a Base object, you can only access variables/methods defined in Base. Since X is declared as being a reference to Base, you always know that 'a' is defined. 'b' wouldn't be defined for X if you said:
    X = new Base();
    X.b = 52;So, in order to access the b, you'd have to access it with something declared as a reference to Derived, such as 'D':
    D.b = 10;You could say:
    X = D; // Line 1
    Derived d2 = (Derived)X;
    d2.b = 10;But, then you'll get a ClassCastException if X is only referring to a Base object [e.g., if Line 1 was "X = new Base();"], not to a Derived object.

  • Can i call non -abstract method in abstract class into a derived class?

    Hi all,
    Is it possible in java to call a non-abstract method in a abstact class from a class derived from it or this is not possible in java.
    The following example will explain this Ques. in detail.
    abstract class A
    void amethod()
    System.out.println(" I am in Base Class");
    public class B extends A
    void amethod()
    System.out.println(" I am in Derived Class");
    public static void main (String args[])
    // How i code this part to call a method amathod() which will print "I am in Base Class
    }

    Ok, if you want to call a non-static method from a
    static method, then you have to provide an object. In
    this case it does not matter whether the method is in
    an abstract base class or whatever. You simply cannot
    (in any object oriented language, including C++ and
    JAVA) call a nonstatic method without providing an
    object, on which you will call the method.
    To my solution with reflection: It also only works,
    if you have an object. And: if you use
    getDeclaredMethod, then invoke should not call B's
    method, but A's. if you would use getMethod, then the
    Method object returned would reflect to B's method.
    The process of resolving overloaded methods is
    performed during the getMethod call, not during the
    invoke (at least AFAIK, please tell me, if I'm wrong).You are wrong....
    class A {
        public void dummy() {
             System.out.println("Dymmy in A");
    class B extends A {
         public void dummy() {
              System.out.println("Dymmy in B");
         public static void main(String[] args) throws Exception {
              A tmp = new B();
              Class clazz = A.class;
              Method method = clazz.getDeclaredMethod("dummy", null);
              method.invoke(tmp, null);
    }Prints:
    Dymmy in B
    /Kaj

  • When is a def assigned to his constant value in a derived class ?

    Hi ,
    I encountered some strange thing in my app when using a def in a derived class from abstract base class. (dived by zero exception)
    I point it out here using a small code snippet which reflects the problem in my app:
    public abstract class Base{
        public var varBase;
    public class BaseDerived extends Base{
        def const = 1;
        var temp : Double;
        public override var varBase on replace{
            temp = varBase / const;
            println("{const}");
    function run(){
           var test = BaseDerived {varBase:10};
           println ("{test.temp}");
    result is:
    0
    InfinityI assumed that all "defs" will already be assigned before any single use in the code when creating an object. If I put the "def" in the base class all works fine. But apparently this is not case when implementing an abstract class and use a def in that class.
    What am I missing here ?
    thanks
    Guy

    I changed the code to:
    public mixin class Base {
        public var varBase;
        init { println("Base Init"); }
        postinit { println("Base PostInit"); }
    public class BaseDerived extends Base {
        def constant = 1;
        var temp: Double;
        init { println("BaseDerived Init"); }
        postinit { println("BaseDerived PostInit"); }
        public function showVar(msg: String) {
            println("# BaseDerived ({msg})");
            println("VarBase: {varBase}");
            println("Constant: {constant}");
            println("Temp: {temp}");
        public override var varBase on replace {
            showVar("Before computation");
            temp = varBase / constant;
            showVar("After computation");
    function run() {
        var test = BaseDerived { varBase: 10 };
        test.showVar("Created test");
    }The output of abstract class:
    # BaseDerived (Before computation)
    VarBase: 10.0
    Constant: 0 --> BAD
    Temp: 0.0
    # BaseDerived (After computation)
    VarBase: 10.0
    Constant: 0
    Temp: Infinity
    Base Init
    BaseDerived Init
    Base PostInit
    BaseDerived PostInit
    # BaseDerived (Created test)
    VarBase: 10.0
    Constant: 1
    Temp: Infinity --> NOK and replace not newly triggeredWhile the mixin base class indeed solves it:
    # BaseDerived (Before computation)
    VarBase: 10.0
    Constant: 1 --> constant here already been assigned
    Temp: 0.0
    # BaseDerived (After computation)
    VarBase: 10.0
    Constant: 1
    Temp: 10.0
    Base Init
    BaseDerived Init
    Base PostInit
    BaseDerived PostInit
    # BaseDerived (Created test)
    VarBase: 10.0
    Constant: 1
    Temp: 10.0 --> OKThanks for the quick goodies !
    I just need to read something on what "mixin" differs from abstract.
    cheers
    Guy

Maybe you are looking for

  • What is a good product to connect laptop to the tv

    I'm looking for a wireless way to connect my laptop to my tv anyone know of a good product

  • XL Reporter: Report Composer

    I am trying to create a custom report using XL Reporter's Report Composer. I was looking for the Witholding Tax Code and Rate from the list of pre-defined measures, but I can't seem to find them. Is there any way to include these fields in my report

  • URL for Central Adapter Engine

    Hi, It seems like our XI Server is unable to locate the Central adapter engine for doing an outbound RFC call. I am trying to call an RFC using the RFC adapter, and getting the following error:   <SAP:Code area="INTERNAL">AE_DETAILS_GET_ERROR</SAP:Co

  • Arivelog mode configuration proble in RAC database

    Hi, I'm trying to configure RAC database in archivelog mode but when try to do so get the following error, during the database startup in mount state LRM-00109: could not open parameter file '/u01/app/oracle/product/11.1.0/db_1/dbs/initorcl.ora' This

  • Zero in Group Currency-FI/SPL

    Hi, There are few invoices in which there is value in document currency and zero in group currency in fi.All exchage rates are maintained well. Now when we find same invoice in a special purpose ledger the value is both in local currency and group cu