Making all named member functions of an actionscript class avlbl to ExternalInterface automatically

Making all named member functions of an actionscript class available to ExternalInterface automatically :
I am trying to custom-tweak the as3 compiler to generate instructions to register all functions in the ClassDefinitionNode to ExternalInterface.
I guess the operation will have to be performed somwhere between the analyze sequences of the compiler, but am not quite able locate where.
I have this codelet (executed for all constructors, for every non-constructor)
                ArgumentListNode argListNode = new ArgumentListNode(
                        new LiteralStringNode(
                                NodeMagic.getClassName(clNode)+ "." + functionCommonNode.identifier.name), 0);
                //argListNode.items.add(new LiteralNullNode());
                argListNode.items.add(new IdentifierNode(functionCommonNode.identifier.name, 0));
                MemberExpressionNode mnode = new MemberExpressionNode(new IdentifierNode("ExternalInterface", 0),
                        new InvokeNode("addCallback",
                                argListNode),0);
                mnode.ref = new ReferenceValue(cx, null, "ExternalInterface", ObjectValue.intrinsicNamespace); //NOT TOO SURE ABOUT THIS ONE
                constructor.body.items.add(mnode
Any assistance would be appreciated!
Thanks!

Making all named member functions of an actionscript class available to ExternalInterface automatically :
I am trying to custom-tweak the as3 compiler to generate instructions to register all functions in the ClassDefinitionNode to ExternalInterface.
I guess the operation will have to be performed somwhere between the analyze sequences of the compiler, but am not quite able locate where.
I have this codelet (executed for all constructors, for every non-constructor)
                ArgumentListNode argListNode = new ArgumentListNode(
                        new LiteralStringNode(
                                NodeMagic.getClassName(clNode)+ "." + functionCommonNode.identifier.name), 0);
                //argListNode.items.add(new LiteralNullNode());
                argListNode.items.add(new IdentifierNode(functionCommonNode.identifier.name, 0));
                MemberExpressionNode mnode = new MemberExpressionNode(new IdentifierNode("ExternalInterface", 0),
                        new InvokeNode("addCallback",
                                argListNode),0);
                mnode.ref = new ReferenceValue(cx, null, "ExternalInterface", ObjectValue.intrinsicNamespace); //NOT TOO SURE ABOUT THIS ONE
                constructor.body.items.add(mnode
Any assistance would be appreciated!
Thanks!

Similar Messages

  • A non abstract child class must implement all pure virtual function of  parent abstract class in c++

    Hi,
    In Indesign SDK there is a class  IActionComponent having two pure virtual functions:
    virtual void
    UpdateActionStates(IActiveContext* ac, IActionStateList *listToUpdateGSysPoint mousePoint = kInvalidMousePoint, IPMUnknown* widget = nil) = 0;
    virtual void
    DoAction(IActiveContext* ac, ActionID actionID, GSysPoint mousePoint = kInvalidMousePoint, IPMUnknown* widget = nil)= 0;
    But, the child class
    class WIDGET_DECL CActionComponent : public IActionComponent
    implements only UpdateActionStates function and not DoAction function.
    There is no compilation error and the code is running fine..HOW
    Can some one please explain me?

    Oops!!! there is a small correction in my C++ program. The JunkMethod is being called from the constructor...like the following code.
    #include <iostream.h>
    #include <stdlib.h>
    class Base
        public:
            Base()
                cout<<"In Base Class constructor..."<<endl;
                JunkMethod();
            void JunkMethod()
                TestAbsFunc();
            virtual void TestAbsFunc()= 0;
    class TestAbstract:public Base
        public:
            TestAbstract()
                cout<<"In Extend Class constructor..."<<endl;
            void TestAbsFunc()
                cout<<"In TestAbsFunc...."<<endl;
    int main()
          TestAbstract test;
          return 0;
    }You can see the change in the constructor of the Base class. JunkMethod is being called, just to bluff the compiler to call the virtual method (so that it won't crib saying that abstract method cannot be called from the constructor). When Java is supporting this functionality without giving any errors, C++ gives errors when you call an abstract method from the constructor or fails to execute when I do some work around like this. Isn't it a drawback of abstract funcationality supported by C++ (I'm not sure if it's a drawback or not)
    Regards,
    Kalyan.

  • Remoting in Actionscript Class

    I am working on a large project with .NET remoting and I am
    having a problem with the Netconnection debugger. I have moved all
    my remoting calls into an Actionscript class file so that I can
    keep my timeline simple and clean. Everything is working fine. My
    only issue is that I am getting no messages in the NetConnection
    Debugger anymore. I have the Netdebug.initialize statement in my
    class constructor.
    Is there something else I need to do to get messages to
    bubble out of my class to the Netconnection Debugger?

    Ok, I solved the problem. Apparently you have to have the
    NetDebug Remoting Classes Object on the main timeline or your
    remoting calls won't post messages to the Netconnection debugger.
    So even though I am importing the libraries in my class and initing
    the NetDebug object, without the actual compiled clip on the stage
    somewhere I can't get messages.

  • Reference to Class Member Functions

    Hello all.
    I have a question about references to LV class member functions. I have a small example to demonstrate my problem.
    My test class Base implements a reentrant public dynamic dispatch member function, doSomething.vi. 
    Another test class, Child, inherits Base and overrides the implementation of doSomething.vi.
    Now say I have an array of Base objects (which could include any objects from classes that inherit Base). I want to run the doSomething methods for all the objects in the array in parallel.
    In C++, I'd define a pointer to the virtual member function doSomething, and use it with each object in the array and the correct version of doSomething would be called.
    In Labview, the only way I've found to do it is like this:
    This is less than ideal, because it relies on every child class implementing doSomething, and relies on specific names for the inputs to the method. 
    Is there a better way to do this?
    Thank you,
    Zola

    I still suspect you are over-working this code and not leting LVOOP do tis thing.
    As I understand it you want to creae an active object but detemine its class at run time. The recent Architect summit touched on messaging for what they are calling a "worker Pool" pattern or what-not. YOu may want to search on the summit stuff. lacking that I'll share some images of where I did something similar ( I think). Note this is an older app and new stuff like the "Start Asyncronous call..." has been introduced making this even easier.
    I want to create a new Active Object (thread running in the background) so I invoke a method to do so
    It invokes the following that create some queues for talking to it and getting info back.
    Time does not permit me doing a complete write-up but I have assembled the above images into a LVOOP Albumn found here.
    When you click on one of those images you will get a large view as shown in this example.
    Just below that image you will find a link to the original thread where I posted the image and talked about it.
    I believe the best I can do for you at the moment is to urge you to browse my albumn and chase the links.
    That agllery was assembled in an attmept to help you and other before you asked. I hope it is helpful.
    Ben 
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Input solicited: List function support as member functions in CFML

    G'day:
    I'm concerned about how Adobe have implemented the list-oriented member functions in ColdFusion 11. And I was hopeing to capture some community input as to what other people think, before raising it with Adobe:
    Survey: lists in CFML, and the naming of list member functions
    It'd be cool if you could take the time to complete the survey.
    Thanks.
    Adam

    ruerric wrote:
    I created a custom class called Rooms with all the appropriate setters and getters.Arguably, getters and setters are seldom appropriate.
    I iterated through a csv file and input all of the data into my custom object class and then put that object into a list by using list.add().
    Now I want to access the class methods through the use of the list.. how can I do so?
    How I declared my list:
    List list = new ArrayList<Rooms>(); // List implemented as growable array
    Rooms xxx = (Rooms).list.get(20);
    Says illegal start of type error.. What are you actually trying to accomplish here? Is list a static field of Rooms?
    Also, I want to sort the list by the room capacity. My Rooms class has a .setCap and .getCap function but how can I sort the list using that?
    From what I know about list.. it has a sort method but not exactly the way I want to sort a custom made class object..List doesn't have a sort method. There's a method in java.util.Collections to sort a list. I think it's "sort". You can pass it a java.util.Comparator that you write, to sort by whatever criteria you like.
    Question: will the capacity of a room ever change? In real life, if you build a hotel, and a room has a capacity of 3 persons, does the room ever change capacity? If the capacity never changes, then it's debatable whether you really need a setCap() method. It would be better to set the capacity once, in the constructor, and leave it.

  • Using a member function

    Hi all,
    I have a class which is named 'layout1'. This class has a member function called buildLayout(). I can call use the buildLayout() because it is put to static. So normally I can use the function like this:
    layout1.buildLayout()
    But now I want to dynamically select different layouts. After I have selected a layout I will get a string like this "layout1". Is it possible to do something like:
    getClass("layout1").buildLayout() ?????
    I hope someone can help me..
    thx

    I take it you mean you want static members of different classes of a layout type?
    Yes, you can do that by using what's called the "reflection" mechanism.
    Class layoutClass = Class.forName(layoutName); // load class
    Method method = layoutClass.getMethod("buildLayout", new Class[]{});
    method.invoke(null,null);Serveral exceptions need to be handled.

  • Not able to get distict values even after defining  MAP MEMBER FUNCTION

    Hi,
    I am trying to get distinct values from a query to a table type. Please see the code below
    CREATE OR REPLACE TYPE T_COPY_EVNT_DTL
    IS
      OBJECT
        eventId               VARCHAR2(100),
        eventDescription      VARCHAR2(100),
        promoMonthDescription VARCHAR2(100),
        promoStartDate        VARCHAR2(100),
        promoEndDate          VARCHAR2(100),
        PROMOCOSTSTARTDATE    VARCHAR2(100) ,
        MAP MEMBER FUNCTION sort_key
        RETURN VARCHAR2 );
    CREATE OR REPLACE TYPE BODY T_COPY_EVNT_DTL
    AS
      MAP MEMBER FUNCTION sort_key
      RETURN VARCHAR2
    IS
    BEGIN
      RETURN eventId ;
    END;
    END;
    CREATE OR REPLACE TYPE T_EVENT_TABLE
    IS
      TABLE OF T_COPY_EVNT_DTL;
              with event_data as (
    select '1' event,'event1' event_desc,'monthdesc1' promo_month_desc ,'01/01/2001' promo_start_date     ,'01/01/2002' promo_end_date,'01/02/2001' promo_cost_start_date from dual union all     
    select '1' event,'event1' event_desc ,'monthdesc1'promo_month_desc ,'01/01/2001' promo_start_date     ,'01/01/2002' promo_end_date,'01/02/2001' promo_cost_start_date from dual union all
    select '3' event,'desc3' event_desc ,'monthdesc3' promo_month_desc,'01/01/2001' promo_start_date     ,'01/01/2002' promo_end_date,'01/02/2001' promo_cost_start_date from dual union all
    select '2' event ,'desc2' event_desc ,'monthdesc2' promo_month_desc ,'01/01/2001' promo_start_date     ,'01/01/2002' promo_end_date ,'01/02/2001' promo_cost_start_date from dual )
    SELECT  cast(collect(distinct t_copy_evnt_dtl(event,
                                                                                                                        event_desc,
                                                                                                                        promo_month_desc,
                                                                                                                        promo_start_date,
                                                                                                                       promo_end_date,
                                                                                                                  promo_cost_start_date) ORDER BY
                                                                event_desc,
                                                                promo_month_desc,
                                                                promo_start_date,                                                   
                                                                promo_end_date,                                           
                                                                promo_cost_start_date) as t_event_table)  from event_data;
    result :
    T_EVENT_TABLE('T_COPY_EVNT_DTL('2','desc2','monthdesc2','01/01/2001','01/01/2002','01/02/2001')',
              'T_COPY_EVNT_DTL('3','desc3','monthdesc3','01/01/2001','01/01/2002','01/02/2001')',
              'T_COPY_EVNT_DTL('1','event1','monthdesc1','01/01/2001','01/01/2002','01/02/2001')',
              'T_COPY_EVNT_DTL('1','event1','monthdesc1','01/01/2001','01/01/2002','01/02/2001')')Please help me to find out the reason why it is not working...

    Remove the comma from T_COPY_EVNT_DTL TYPE.
    ORA-22800 indicates invalid user-defined type.
        PROMOCOSTSTARTDATE    VARCHAR2(100) ,
        MAP MEMBER FUNCTION sort_keyAnd it will be fine.
    SQL> CREATE OR REPLACE TYPE  T_COPY_EVNT_DTL
      2  IS
      3    OBJECT
      4    (
      5      eventId               VARCHAR2(100),
      6      eventDescription      VARCHAR2(100),
      7      promoMonthDescription VARCHAR2(100),
      8      promoStartDate        VARCHAR2(100),
      9      promoEndDate          VARCHAR2(100),
    10      PROMOCOSTSTARTDATE    VARCHAR2(100),
    11      --,
    12      MAP MEMBER FUNCTION sort_key
    13      RETURN VARCHAR2 );
    14  /
    Type created
    SQL>
    SQL> CREATE OR REPLACE TYPE BODY T_COPY_EVNT_DTL
      2  AS
      3    MAP MEMBER FUNCTION sort_key
      4    RETURN VARCHAR2
      5  IS
      6  BEGIN
      7    RETURN eventId ;
      8  END;
      9  END;
    10  /
    Type body created
    SQL>
    SQL> CREATE OR REPLACE TYPE T_EVENT_TABLE
      2  IS
      3    TABLE OF T_COPY_EVNT_DTL;
      4  /
    Type created
    SQL>
    SQL>     with event_data as (
      2  select '1' event,'event1' event_desc,'monthdesc1' promo_month_desc ,'01/01/2001' promo_start_date  ,'01/01/2002' promo_end_date,'01/02/2001' promo_cost_start_date from dual union all
      3  select '1' event,'event1' event_desc ,'monthdesc1'promo_month_desc ,'01/01/2001' promo_start_date  ,'01/01/2002' promo_end_date,'01/02/2001' promo_cost_start_date from dual union all
      4  select '3' event,'desc3' event_desc ,'monthdesc3' promo_month_desc,'01/01/2001' promo_start_date  ,'01/01/2002' promo_end_date,'01/02/2001' promo_cost_start_date from dual union all
      5  select '2' event ,'desc2' event_desc ,'monthdesc2' promo_month_desc ,'01/01/2001' promo_start_date  ,'01/01/2002' promo_end_date ,'01/02/2001' promo_cost_start_date from dual )
      6  SELECT  cast(collect(distinct t_copy_evnt_dtl(event,
      7                                                 event_desc,
      8                                                 promo_month_desc,
      9                                                 promo_start_date,
    10                                                promo_end_date,
    11                                              promo_cost_start_date) ORDER BY
    12                          event_desc,
    13                          promo_month_desc,
    14                          promo_start_date,
    15                          promo_end_date,
    16                          promo_cost_start_date) as t_event_table)  from event_data;
    CAST(COLLECT(DISTINCTT_COPY_EV
    <Object>

  • Stop and Play All Child MovieClips in Flash with Actionscript 3.0

    I am stuck with the ActionScript here. I have a very complex animated flash movie for eLearning. These contain around 10 to 15 frames. In each frame I am having multiple movie clip symbols. The animation has been created using a blend of scripting and also normal flash animation.
    Now I want to create pause and play functionality for the entire movie. I was able to create the pause function but when i try to play the movie it behaves very strange.
    I was able to develop the pause functionality by refering to the below mentioned links:
    http://www.unfocus.com/2009/12/07/stop-all-child-movieclips-in-flash-with-actionscript-3-0 /
    http://www.curiousfind.com/blog/174
    Any help in this regard is highly appreciated as i am approaching a deadline.
    I am pasting the code below:
    import flash.display.MovieClip;
    import flash.display.DisplayObjectContainer;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import fl.transitions.*;
    import fl.transitions.Tween;
    import fl.transitions.easing.*;
    import fl.transitions.TweenEvent;
    import flash.events.Event;
    import flash.events.MouseEvent;
    stop();
    // function to stop all movieclips
    function stopAll(content:DisplayObjectContainer):void
        if (content is MovieClip)
            (content as MovieClip).stop();
        if (content.numChildren)
            var child:DisplayObjectContainer;
            for (var i:int, n:int = content.numChildren; i < n; ++i)
                if (content.getChildAt(i) is DisplayObjectContainer)
                    child = content.getChildAt(i) as DisplayObjectContainer;
                    if (child.numChildren)
                        stopAll(child);
                    else if (child is MovieClip)
                        (child as MovieClip).stop();
    // function to play all movieclips
    function playAll(content:DisplayObjectContainer):void
        if (content is MovieClip)
            var movieClip:MovieClip = content as MovieClip;
            if (movieClip.currentFrame < movieClip.totalFrames) // if the main timeline has reached the end, don't play it
       movieClip.gotoAndPlay(currentFrame);
        if (content.numChildren)
            var child:DisplayObjectContainer;
            var n:int = content.numChildren;
            for (var i:int = 0; i < n; i++)
                if (content.getChildAt(i) is DisplayObjectContainer)
                    child = content.getChildAt(i) as DisplayObjectContainer;
                    if (child.numChildren)
                        playAll(child);
                    else if (child is MovieClip)
                        var childMovieClip:MovieClip = child as MovieClip;
                        if (childMovieClip.currentFrame < childMovieClip.totalFrames)
          //childMovieClip.play();
          childMovieClip.play();
    function resetMovieClip(movieClip:MovieClip):MovieClip
        var sourceClass:Class = movieClip.constructor;
        var resetMovieClip:MovieClip = new sourceClass();
        return resetMovieClip;
    pauseBtn.addEventListener(MouseEvent.CLICK, onClickStop_1);
    function onClickStop_1(evt:MouseEvent):void
    MovieClip(root).stopAll(this);
    myTimer.stop();
    playBtn.addEventListener(MouseEvent.CLICK, onClickPlay_1);
    function onClickPlay_1(evt:MouseEvent):void
    MovieClip(root).playAll(this);
    myTimer.start();
    Other code which helps in animating the movie and other functionalities are as pasted below:
    stage.addEventListener(Event.RESIZE, mascot);
    function mascot():void {
    // Defining variables
    var mc1:MovieClip = this.mascotAni;
    var sw:Number = stage.stageWidth;
    var sh:Number = stage.stageHeight;
    // resizing movieclip
    mc1.width = sw/3;
    mc1.height = sh/3;
    // positioning mc
    mc1.x = (stage.stageWidth/2)-(mc1.width/2);
    mc1.y = (stage.stageHeight/2)-(mc1.height/2);
    // keeps the mc1 proportional
    mc1.scaleX <= mc1.scaleY ? (mc1.scaleX = mc1.scaleY) : (mc1.scaleY = mc1.scaleX);
    stage.removeEventListener(Event.RESIZE, mascot);
    mascot();
    this.mascotAni.y = 100;
    function mascotReset():void
    // Defining variables
    var mc1:MovieClip = this.mascotAni;
    stage.removeEventListener(Event.RESIZE, mascot);
    mc1.width = 113.45;
    mc1.height = 153.85;
    mc1.x = (stage.stageWidth/2)-(mc1.width/2);
    mc1.y = (stage.stageHeight/2)-(mc1.height/2);
    // keeps the mc1 proportional
    mc1.scaleX <= mc1.scaleY ? (mc1.scaleX = mc1.scaleY) : (mc1.scaleY = mc1.scaleX);
    var interval:int;
    var myTimer:Timer;
    // function to pause timeline
    function pauseClips(secs:int, myClip:MovieClip):void
    interval = secs;
    myTimer = new Timer(interval*1000,0);
    myTimer.addEventListener(TimerEvent.TIMER, goNextFrm);
    myTimer.start();
    function goNextFrm(evt:TimerEvent):void
      myTimer.reset();
      myClip.nextFrame();
      myTimer.removeEventListener(TimerEvent.TIMER, goNextFrm);
    // function to pause timeline on a particular label
    function pauseClipsLabel(secs:int, myClip:MovieClip, myLabel:String):void
    interval = secs;
    myTimer = new Timer(interval*1000,0);
    myTimer.addEventListener(TimerEvent.TIMER, goNextFrm);
    myTimer.start();
    function goNextFrm(evt:TimerEvent):void
      myClip.gotoAndStop(myLabel);
      myTimer.removeEventListener(TimerEvent.TIMER, goNextFrm);
    MovieClip(root).pauseClips(4.5, this);
    // function to fade clips
    function fadeClips(target_mc:MovieClip, next_mc:MovieClip, from:Number, to:Number):void
    var fadeTW:Tween = new Tween(target_mc, "alpha", Strong.easeInOut, from, to, 0.5, true);
    fadeTW.addEventListener(TweenEvent.MOTION_FINISH, fadeFinish);
    function fadeFinish(evt:TweenEvent):void
      next_mc.nextFrame();
      fadeTW.removeEventListener(TweenEvent.MOTION_FINISH, fadeFinish);
    // function to fade clips with speed
    function fadeClipsSpeed(target_mc:MovieClip, next_mc:MovieClip, from:Number, to:Number, speed:int):void
    var fadeTW:Tween = new Tween(target_mc, "alpha", Strong.easeInOut, from, to, speed, true);
    fadeTW.addEventListener(TweenEvent.MOTION_FINISH, fadeFinish);
    function fadeFinish(evt:TweenEvent):void
      next_mc.nextFrame();
      fadeTW.removeEventListener(TweenEvent.MOTION_FINISH, fadeFinish);
    // function to show screen transitions
    function screenFx(target_mc:MovieClip, next_mc:MovieClip):void
    //var tweenTW:Tween = new Tween(target_mc,"alpha",Strong.easeInOut,0,1,1.2,true);
    var tranFx:TransitionManager = new TransitionManager(target_mc);
    tranFx.startTransition({type:Iris, direction:Transition.OUT, duration:1.2, easing:Strong.easeOut, startPoint:5, shape:Iris.CIRCLE});
    tranFx.addEventListener("allTransitionsOutDone",doneTrans);
    function doneTrans(evt:Event):void
      next_mc.nextFrame();
      tranFx.removeEventListener("allTransitionsOutDone",doneTrans);
    // function to show screen transitions inverse
    function screenFxInv(target_mc:MovieClip, next_mc:MovieClip):void
    var tweenTW:Tween = new Tween(target_mc,"alpha",Strong.easeInOut,0,1,1.2,true);
    var tranFx:TransitionManager = new TransitionManager(target_mc);
    tranFx.startTransition({type:Iris, direction:Transition.IN, duration:2, easing:Strong.easeOut, startPoint:5, shape:Iris.SQUARE});
    tranFx.addEventListener("allTransitionsInDone",doneTrans);
    function doneTrans(evt:Event):void
      next_mc.nextFrame();
      tranFx.removeEventListener("allTransitionsInDone",doneTrans);
    // function to zoom in
    function zoomFx(target_mc:MovieClip):void
    //var tweenTW:Tween = new Tween(target_mc,"alpha",Strong.easeInOut,0,1,1.2,true);
    var tranFx:TransitionManager = new TransitionManager(target_mc);
    tranFx.startTransition({type:Zoom, direction:Transition.IN, duration:3, easing:Strong.easeOut});
    //tranFx.addEventListener("allTransitionsInDone",doneTrans);
    /*function doneTrans(evt:Event):void
      next_mc.nextFrame();
    // Blinds Fx
    function wipeFx(target_mc:MovieClip):void
    var tranFx:TransitionManager = new TransitionManager(target_mc);
    tranFx.startTransition({type:Wipe, direction:Transition.IN, duration:3, easing:Strong.easeOut, startPoint:9});
    // Blinds Fx Center
    function fadePixelFx(target_mc:MovieClip):void
    var tranFx:TransitionManager = new TransitionManager(target_mc);
    tranFx.startTransition({type:Fade, direction:Transition.IN, duration:1, easing:Strong.easeOut});
    tranFx.startTransition({type:PixelDissolve, direction:Transition.IN, duration:1, easing:Strong.easeOut, xSections:100, ySections:100});

    This movie is an animated movie from the start to end. I mean to say that though it stops at certain keyframes in the timeline it stops for only a certain time and then moves on to the next animation sequence.
    Its not an application where the user can interact.
    On clicking the play button i want the movie to play normally as it was playing before. If the user has not clicked on the pause button it would anyhow play from start to finish.
    Is there anyway where i could send in the fla file?

  • Error getting the server-side naming service functionality

    Hi all,
    we are currently setting up the CTS+ activity based transport scenario. Everything seems to be working fine, however, we have to import each transport twice...
    Before I go into detail in the error we get I will first describe our landscape. All the configuration we did was done in debate with SAP.
    We use the SAP Solution manager (ehp1 SP 4) as the CTS+ server as recommended by SAP and have an NWDI system of which we only use the components DTR and CBS (since CMS is not used anymore in the activity based transport). We have defined three logical ports/RFCs. CTSCONFIG points to the NWDI system. CTSDEPLOY is running on the java stack of the solution manager and is only used for portal content (=epa) transports. CTSDEPLOY_DI is pointing to the NWDI system and is used for all NWDI (=dip) changes. The NWDI is running ehp1 SP3.
    In STMS I defined all the non-abap systems (and configured them to use CTSDEPLOY_DI) and created the following transport route:
    upload system (IMP) -> DEV -> ACC -> QAS -> PRD
    I first attached the used dependencies in a transport request (SAP_BUILDT, EP_BUILDT, etc) these imported just fine. Then I did the SCA files which contain our custom code. I extracted these from the assemble step on our current NWDI system which will be removed as soon as we switch to the new CTS+ environment.
    When we import the transport into the runtime systems then we see the DTR and CBS be filled sucesfully for this specific system. However, the transport request itself always fails with errorcode 12 and the error is:
    Error during export service registration: Error getting the server-side naming service functionality during getInitialContext opera
    tion. com.sap.engine.services.jndi.persistent.exceptions.NamingException: Error getting the server-side naming service functionality during getInitialContext operation.
    Error in execution of Web services CTSDEPLOY_DI , exception is cx_cts_file_import_failed
    File import canceled
    When we then reimport the same transport it will go the second time fine. This is no problem during the setup but will not be workable when we go live ofcourse. Is there anyone who had this issue before as well and have a solution for it?
    Kind Regards,
    Nico van der Linden...

    Hello Nico,
    I would need the java trace files to get more info on this issue, but you can start troubleshooting this error with these notes:
    #1172252: CTS+, 'attach file': Troubleshooting Guide;
    #1003674: Enhancement for non-ABAP systems in CTS;
    #1155884: CTS+, configuration 'close coupling': Troubleshooting guide;
    Pay special attention to parameter  NON_ABAP_WBO_CLIENT, whether it's correctly set on your CTS+ system(s).
    Note #1003674 is a must for any CTS+ systems to work properly, as well as having an updated version of the transport programs (tp and R3trans).
    Lastly, note #1155884 goes through some JCoException exceptions that commonly take place during CTS+ transports. But again, you need to check the underlying trace files to find the root cause of your issue.
    I hope this information helps.
    Best regards,
    Tomas Black

  • Member function and member procedure inside an object type in Oracle.

    Hi All,
    Please do have a look at these codes and help me understand. I have no idea about this member function and member procedure. How do they work? Please explain me about this.
    Regards,
    BS2012
    create type foo_type as object (
      foo number,
      member procedure proc(p in number),
      member function  func(p in number) return number
    create type body foo_type as
      member procedure proc(p in number) is begin
        foo := p*2;
      end proc;
      member function func(p in number) return number is begin
        return foo/p;
      end func;
    end;
    /

    Methods are just like functions or procedures in a package, except they're not in a package, their part of an object type.
    The object has attributes (which are the variables declared in it).
    To use such an object you would do things like this...
    SQL> set serverout on
    SQL>
    SQL> declare
      2    v_foo foo_type;
      3    v_val number;
      4  begin
      5    v_foo := foo_type(20); -- instantiate the object and initialize the object attributes
      6    v_foo.proc(20); -- call the object method (proc)
      7    v_val := v_foo.func(4); -- call the object method (func)
      8    dbms_output.put_line(v_val);
      9  end;
    10  /
    10
    PL/SQL procedure successfully completed.The Type definition you've declared creates the object class, but not actually an object itself.
    To actually have an object you need to declare a variable of that object class type, and then instantiate it. When you instantiate the object you need to initialize all the attributes (generally you can pass null if required for each of them to initialize them).
    Once you have your object instantiated, you can call the methods within that object as demonstrated above, a bit like calling functions and procedures in a package, except they are methods within the object type itself, and therefore called directly by referencing them from the variable.
    The documentation goes into a lot more detail of objects if you look it up.

  • Hyperion Planning search member function error

    Hi,
    We have a Oracle EPM 11.1.1.3 64 bit implementation on windows 2003 R2 servers. Users are authenticated externally through shared services. For only one user the planning search member function doesn't work correctly.
    When the user clicks on the search member function in a data form, he gets redirected to the login page.
    Please note that this just happens for only one user irrespective of the machine from where he logs on. For all other 500 or so users the search function works fine.
    Thanks in advance!!!

    Can this user drill into this dimension using SmartView/Classic add-in?
    IOW, is this a weird security issue that only manifests itself in POV dropdowns, or does the security work when trying to retrieve when in rows.
    If you create another username with the same security, does it behave the same way?
    Just wondering how weird, weird is.
    Regards,
    Cameron Lackpour

  • Server-side naming service functionality

    Dear all,
    I have this problem on my JCA connection:
    ###Exception #1#com.sap.engine.services.jndi.persistent.exceptions.NamingException: Error getting the server-side naming service functionality during getInitialContext operation.
    at com.sap.engine.services.jndi.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:238)
    at ...etc etc....
    The problem is on this part of code:
    public void doProcessBeforeOutput() throws PageException {
    TestJCABean myBean = new TestJCABean();
    myBean.setStr(remoteStr);
    ((IPortalComponentRequest)getRequest()).getServletRequest().setAttribute("myBean", myBean);
    this.setForward("TestJCA.jsp");
    I really don't understand, any suggestion regarding this?
    I will apprecciate a lot.
    Vipa

    Hi Ravi,
    here my code, thanks for your help.
    -----TESTJca.java
    public class TestJCA extends PageProcessorComponent {
      public DynPage getPage(){
        return new TestJCADynPage();
      public static class TestJCADynPage extends JSPDynPage{
         private final static String LOGGER = "NameJCA";
         private final static ILogger log = PortalRuntime.getLogger(LOGGER);
         private String remoteStr = "";
        public void doInitialization(){
             //Accedo il portal component profile per ottente il valore del system alias configurato per l'iview
             //MNT è stato configurato da portal e sul file xml
              log.info(this, "[doInitialization()]comincio");
             IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
              IPortalComponentContext compContext = request.getComponentContext();
              IPortalComponentProfile userProfile = compContext.getProfile();
            //Ritorna MNT che ho aggiunto in portalapp.xml
              String sys = userProfile.getProperty("System"); 
              log.info(this, "[doInitialization()]valore del system alias: "sys"");
              //Utilizza la funzione per la connessione al sys di backend e reperimento dell'info necessarie
              remoteStr = getRemoteString(request, sys);
              log.info(this, "[doInitialization()]remoteStr: "remoteStr"");
        public void doProcessAfterInput() throws PageException {
        public void doProcessBeforeOutput() throws PageException {
          TestJCABean myBean = new TestJCABean();
          myBean.setStr(remoteStr);
          ((IPortalComponentRequest)getRequest()).getServletRequest().setAttribute("myBean", myBean);
          // fill your bean with data here...
           //log.info(this, "[doInitialization()]Setto il nome della jsp");
          this.setJspName("TestJCA.jsp");
          //this.setForward("TestJCA.jsp");
           //IResource jsp = request.getResource(IResource.JSP, "pagelet/bannerOriginalle.jsp");
           //response.include(request, jsp);
    @param pgContext
    @param response
    @param compBean
    @param cubeName
    @param templateID
              private String getRemoteString(IPortalComponentRequest request, String sapSystem) {
                   IConnection connection = null;
                   try {
                        // get the Connector Gateway Service
                        Object connectorservice = PortalRuntime.getRuntimeResources().getService(IConnectorService.KEY);
                        IConnectorGatewayService cgService = (IConnectorGatewayService) connectorservice;
                        if (cgService == null) {
                             log.info(this, "[getRemoteString()]Error in get Connector Gateway Service
    try {
    IUser user = request.getUser();
    ConnectionProperties cp = new ConnectionProperties(user.getLocale(), user);
    connection = cgService.getConnection(sapSystem, (ConnectionProperties) request);
    } catch (Exception e) {
    log.severe(this, "[getRemoteString()]Connection to SAP system failed. Exception:" +e.getLocalizedMessage());
    if (connection == null) {
    log.info(this, "[getRemoteString()]Connection is null
    } else {
    log.info(this, "[getRemoteString()]Connection succesful");
    } catch (Exception e) {
    log.severe(this, "[getRemoteString()]Exception occured. Exception:" +e.getLocalizedMessage());
    log.info(this, "[getRemoteString()]Iview: runFunction");
    try {
    // Get the Interaction interface for executing the command
    IInteraction ix = connection.createInteractionEx();
    // Get interaction spec and set the name of the command to run
    IInteractionSpec ixspec = ix.getInteractionSpec();
    //String functionName = "Z_ESTRAIDATA";
    String functionName = "RPL_CUSTOMER_NAME_GET";
    // Put Function Name into interaction Properties.
    ixspec.setPropertyValue("Name", functionName);
    // return structure - dovrebbe essere il nome del parametro di export della funzione
    //cambiarlo di conseguenza
    //String function_out = "ERRORE";
    String function_out = "PE_NAME1";
    String function_in_value = "1000010001";
    RecordFactory rf = ix.getRecordFactory();
    MappedRecord input = rf.createMappedRecord("input");
    // put function input parameters
    // input.put("ZSC_CUBE", cubeName);
    // input.put("ZSC_PERVAL", selection);
    // input.put("ZSC_UTENTE", user.getLogonUid());
    input.put("PI_KUNNR", function_in_value);
    //ottengo l'oggetto che mi rappresenta l'output della funzione
    //lancio la RFM
    MappedRecord output = (MappedRecord) ix.execute(ixspec, input);
    Object rs = null;
    try {
    Object result = output.get(function_out);
    if (result == null) {
    rs = new String(" ");
    } else if (result instanceof IRecordSet) {
    rs = (IRecordSet) result;
    log.info(this, "[getRemoteString()]rs ritornato: " + rs.toString());
    return rs.toString();
    // Do need all type here ?
    else {
    rs = result.toString();
    log.info(this, "[getRemoteString()]rs ritornato: " + rs.toString());
    return rs.toString();
    } catch (Exception ex) {
    log.severe(ex, "[getRemoteString()]Error getting function result. Exception:" +ex.getLocalizedMessage());
    log.info(this, "[getRemoteString()]Codice errore ritornato: " + rs.toString());
    } catch (Exception e) {
    log.severe(e, "[getRemoteString()]Error getting function interaction. Exception:" +e.getLocalizedMessage());
    return null;
    -----TESTJcaBean.java
    package ... ... ... ...
    import java.io.Serializable;
    public class TestJCABean implements Serializable {
         private String str;
    @return
         public String getStr() {
              return str;
    @param string
         public void setStr(String string) {
              str = string;

  • Reusing functions in ActionScript Classes

    I have an MXML Component which I am using as a Base Class for
    other components that share similar functionality. The Extended
    Classes use some of the same functions. Those functions perform no
    logic in the Base Class, but are called by Event Listeners in the
    Base Class. Right now, I have those functions setup as protected
    functions, and I am overriding them in the Extended Classes, but
    I'm thinking this isn't the best way to do this. Should I use an
    Interface???
    Any suggestions would be greatly appreciated...
    Thank you.

    "Ansury" <[email protected]> wrote in
    message
    news:gacbks$1b0$[email protected]..
    > Yes, I was referring to having your inheriting classes
    implement the
    > interface
    > (still a pain in the rear), but like I said you have to
    remember to add
    > the
    > interface to each class anyway... It's probably not
    worth worrying about
    > it at
    > this stage of AS's life.
    >
    > Regarding abstract classes in current AS, that's
    interesting. But I
    > usually
    > avoid fancy hacks that are likely to confuse new people
    looking at or
    > maintaining my code. Maybe it's not the coolest strategy
    but many people
    > do
    > appreciate it when you omit that fancy fancy automagic
    tricky code and go
    > with
    > something much easier to understand or maintain from the
    outsider's
    > perspective.
    >
    > Also I'm not sure what that method gets you over simply
    throwing an
    > exception
    > in a function that must be implemented by an extending
    class. I guess
    > this:
    > "We can make a real abstract class that implements none,
    some, or all of
    > an
    > interface?s methods". (Although really you can still do
    that with the
    > common
    > exception throwing method.) I suppose this is useful if
    you're making
    > lots of
    > complex hierarchies and leveraging polymorphism alot and
    so on, but that
    > type
    > of design tends to get trickier than it's worth in
    practice.
    >
    > And if this gave you a compile time error that might be
    cooler, but it
    > looks
    > like it's still just generating a run-time error.
    Anyway, enough rambling
    > on.
    >
    > Cool trick, but I'll wait until Adobe decides to support
    abstract natively
    > and
    > it becomes common knowledge - maybe with Flex 4 and
    Flash 10?
    Probably too soon after As3 and ECMA parted ways

  • This code executes normally in VS2014, despite the fact that an inline member function is not defined in every TU in which it is odr-used.

    Consider this code:
    header.h:
    #include <iostream>
    class A{
    int i;
    public:
    A() : i(101) {}
    void print();
    void g(A&);
    cpp1:
    #include "header.h"
    inline void A::print() { std::cout << i << '\n'; }
    int main()
    A a;
    a.print();
    g(a);
    cpp2:
    #include "header.h"
    void g(A& a) { a.print(); }
    Note that the member function A::print is defined outside its class with the specifier inline. The code executes normally in VS2014, despite the fact that the member function is odr-used in cpp2, but it is not defined in this file.
    I found the following quotes from the C++11 Standard:
    9.3/3:
    An inline member function (whether static or non-static) may also be defined outside of its class definition provided either its declaration in the class definition or its definition outside of the class definition declares the function as inline.
    3.2/3:
    An inline function shall be defined in every translation unit in which it is odr-used.
    7.1.2/4:
    An inline function shall be defined in every translation unit in which it is odr-used and shall have exactly the same definition in every case.
    The two last quotes above don't speak exactly about a member function but I believe they should be applied in this case too, as the inline specifier is a hint for the compiler to expand the function inline at the point of call. If we assume the compiler
    does this inline expansion, how does it know the definition of the member function, while compiling the cpp2 file?  

    On 12/31/2014 12:13 PM, Belloc wrote:
    C++ is supported on many different systems, with tools provided by many different vendors. Microsoft's linker happens to be pretty smart about merging identical blocks of code. Other toolchains may use linkers that weren't designed with this in mind,
    and that would choke on multiple definitions of the same symbol. The C++ standard is written so that it's actually implementable, on as many platforms as possible.
    Frankly I don't understand your statement above. What would be the difficulty for any compiler*that is already compliant with 3.2/3 and 7.1.2/4*, to adapt its code, so that each call to an inline function in a TU, which doesn't carry the function
    definition, is simply not inlined?
    That's the easy part. The "there's identical function definition in every .obj file, and the linker is expected to merge them all together" is the hard part. Normally, if you define a regular (non-inline) function in more than one source
    file, you get a linker error. Microsoft's linker has a special way to mark "defined more than once, just pick any copy" block of code (see __declspec(selectany) ). Other linkers may not.
    Igor Tandetnik

  • Alter type to add a member function

    Hello,
    I have Oracle 9i r2 and I really nedd to add a member function into an Object that is associated to other.
    My Object spec is this:
    TYPE CM_CTRL_CM AS OBJECT
    lo_Ent_CM CM_Ent_CM,
    member function IniEntCM(self in out CM_Ctrl_CM) return integer
    I do this to add a member function:
    alter type CM_Ctrl_CM add member function FijDatCM(ao_DatCM in CM_DatCM) return integer cascade ;
    And as the result I get the nex the Object Spec:
    TYPE CM_CTRL_CM AS OBJECT
    lo_Ent_CM CM_Ent_CM,
    member function IniEntCM(self in out CM_Ctrl_CM) return integer
    alter type CM_Ctrl_CM add member function FjDatCM(ao_DatCM in CM_DatCM) return integer cascade
    As you can see, all the alter type statement is added at the end of my Object Spec wich cause a compilation error and the object get invalid.
    I need to know how to add a member function. It's very important for the my project successfull.
    Thanks.
    Luis Silva

    And as the result I get the nex the Object Spec:
    TYPE CM_CTRL_CM AS OBJECT
    lo_Ent_CM CM_Ent_CM,
    member function IniEntCM(self in out CM_Ctrl_CM) return integer
    alter type CM_Ctrl_CM add member function FjDatCM(ao_DatCM in CM_DatCM) >> return integer cascade
    /**************************************************************************************/Fnord. What is this supposed to mean?
    Let me introduce you to a very technical skill known only to the illuminati: cut'n'paste. Using this skill you will be able to transmit information across great differences.
    To use cut'n'paste:
    (1) Open a reply to this message.
    (2) Run your code in SQL*Plus.
    (3) Highlight the code and the feedback and use the editor command to cut the code.
    (4) Return to the forum and use the editor command to paste the result.
    (5) Post
    See what you've posted obviously is not from SQL*Plus. Maybe it's some other IDE. But we're stupid. If you show us output from SQL*Plus we can diagnose the problem otherwise we're flying blind.
    Oh, and please include the code for CM_Ent_CM, as we can't run your SQL without it.
    Cheers, APC

Maybe you are looking for

  • Error in query due to exc aggregation with non-cumulative KF

    Hi All, when i am trying to execute a query I am getting the following errors. SAPLRRI2 and form RTIME_FUELLEN_06-01- Program error in class SAPMSSY1 method: UNCAUGHT _ESCEPTION. I have calculated KF of non-cumulative KF. If I delete the calculated t

  • Ipod nano compatibility with ipod accessories

    Is the ipod nano compatible with other ipod accessories? Will it work with my Bose speaker system built for the ipod? Will the car charger and battery backups that I have purchased for my ipods work with the nano? thanks

  • Getting error when installing OBIEE 11.1.1.6 "Operating system does not support IPV4".

    HI, I am trying to install OBIEE 11.1.1.6 on Windows 7 . Have created repository successfully ,using the RCU 11.1.1.6 and now tring to install OBI. I am getting the below error "Operating system does not support IPV4". Can anyone please suggest why i

  • Resize and crop images to a specific width and height

    Hi, I want to convert images to thumbnails with a 'standard' format - I need all images to have the same width and height. So I need to resize and then crop the images. Is this possibe with JAI? Are there other libraries which can do this better? I'v

  • A Regular Expressions problem

    Hi :) I have define a Pattern: [{alnum}{L}]+ to find a word, but i still want this pattern to avoid some words that i don't want, such as "hello", "how"...etc. How do I define a new Pattern to fit this request. thx:)