Component controller being used instead of cust controllers

Hi masters
I have to maintain an application developed by another consultant. He put all the business logic, all the methods etc inside de component controller instead of create cust controllers, is it a problem ?

which best practice says that?
following is from JA310 training material.
>Before implementing a custom controller, consider carefully whether its presence will simplify or
>complicate the overall architecture of your application. Custom controllers should only be added in
>situations that will optimize or simplify the architecture of your application.

Similar Messages

  • Mapped Path being used instead of UNC Path

    We have recently upgraded our Adobe products from CS3 to CC.  In CS3, images that were added to InDesign had the UNC path in the "Links".  With CC, we are finding that the Mapped Path is in the "Links".  This different behaviour is causing some issues.
    Here is the process that we are using to add images to an InDesign file:
    1.  Open Bridge
    2.  Browse to a folder (X:\ which is mapped to \\Server\Hi-Res\)
    3.  Drag and drop an image from Bridge to InDesign
    In CS3, a path of "X:\MyFolder\MyImage.tif" would get converted to \\Server\Hi-Res\MyFolder\MyImage.tif
    In CC, the path remains as "X:\MyFolder\MyImage.tif" which is causing us some issues.
    Is there a way, in InDesign CC, to tell the application to use UNC paths when a Link is created - similar to what we were experiencing with CS3?
    Thanks,
    Jody

    Hi Lee,
    In CS3, UNC paths were used in File Path for images but this behavior was changed in CS4 (most probably) and UNC paths are no more supported.
    Regards,
    Pooja

  • To fetch data from a standard component through Component Controller

    Hi,
    I have a requirement in which i have to access and display a standard view of a standard component in a Custom Component.
    I am able to display or configure that view on Custom Component by using Component Usage and Component Interface. But unable to populate the data in that view. Although i have exposed a context node in the standard component and created the same context node in my custom component in the Component Controller and using its method WD_USAGE_INITIALIZE to bind them.Please, provide some pointers on it.
    Cheers,
    Sharad

    Hi Sharad,
               The data will show up only if you put them there. May be the standard component itself gets the data from some where else. Usually, these data are provided by the component controller. For example, the component controller contains the header entity and the used component has access to the header entity via binding and shows all item entries fetched via relations(usually this is done in on_new_focus method). If the binding is there, but no data ia available, it will stay empty.
             Check a standard main component which uses the standard component that you are using and look at how they are establishing the connections.( component/custom controller bindings, on_new_focus methods,,)
    Regards,
    Arun Prakash

  • View raises Component Controller Event

    Hello,
    I defined an even onUpdate in the component controller. A custom controller subscribed to this event. For that I have a method handleOnUpdate in the custom controller. Now I want to raise this event in a view after pressing a submit button of this view.
    How can I raise the event?
    So data flow would be:
    1. Button pressed in view
    2. Raise event in component controller
    3. Handle raised event in custom controller
    Regards
    Rene

    Hi Rene,
    Your scenario is like:
    <b>View: OnSubmit -> Component Controller: OnUpdate -> Custom Controller:</b> <b>handleOnUpdate.</b>
    For this, in the code for <u>OnSubmit</u> in your view, you need to add code as
    wdThis.wdGet<ComponentControllerName>().onUpdate();
    and in the <u>OnUpdate</u> method in Component Controller:
    wdThis.wdGet<CustomContControllerName>().handleOnUpdate();
    Also, you need to <b>add the Component Controller to your View</b>, using Properties Tab
    <b>and Custom Controller in Component Controller</b>, using its properties tab.
    Hope it helps.
    Regards,
    Alka.

  • Difference between custom controller and component controller

    Hi All,
    I am a beginner in CRM SAP .
    Please can anyone tell me whats the difference between custom controller and component controller with some scenario.
    I am totally baffled.
    Thanks in advance.
    Regards
    Shilpi

    Hi Shilpi,
    The main difference between custom and component controller is the role which they play during data transfer.
    a) Custom controller is used for data transfer across two views within a component. For that you need to bind view context nodes to custom controller either through wizard or manually by adding the code in CTXT class create_contextnode method:
    initial setting for depandant model node
        coll_wrapper =
          BTADMINH->get_collection_wrapper( ).
        TRY.
            entity ?= coll_wrapper->get_current( ).
          CATCH cx_sy_move_cast_error.
        ENDTRY.
        IF entity IS BOUND.
          BTOpportH->on_new_focus(
                       focus_bo = entity ).
        ENDIF.
    b)Component controller is used for data transfer across two views in two different components. For this, we need to define the component usage first and then bind the context nodes in the method-WD_USAGE_INITIALIZE of the Component Controller impl class.
        WHEN 'ComponentUsageName'.
          iv_usage->bind_context_node(
                      iv_controller_type  = cl_bsp_wd_controller=>co_type_custom
                      iv_target_node_name = 'ContextNodeName'  "#EC NOTEXT
                      iv_node_2_bind      = 'ContextNodeName' ).  "#EC NOTEXT
    Hope this clears some of your doubts!
    Thanks and Regards,
    Rohit
    P.S-This is valid for CRM 2007.Raghu is also right because Interaction Center is made up of different different components combined together.You have put your question in wrong forum.

  • Inactive RAM not being used/freed

    As I type this, my other computer has 590mb of inactive RAM, with 2mb of page outs and 11mb of page ins. Shouldn't the almost 600mb of inactive ram I have start being used instead of page swapping so much?

    About OS X Memory Management and Usage
    Reading system memory usage in Activity Monitor
    Memory Management in Mac OS X
    Performance Guidelines- Memory Management in Mac OS X
    A detailed look at memory usage in OS X
    Understanding top output in the Terminal
    The amount of available RAM for applications is the sum of Free RAM and Inactive RAM. This will change as applications are opened and closed or change from active to inactive status. The Swap figure represents an estimate of the total amount of swap space required for VM if used, but does not necessarily indicate the actual size of the existing swap file. If you are really in need of more RAM that would be indicated by how frequently the system uses VM. If you open the Terminal and run the top command at the prompt you will find information reported on Pageins () and Pageouts (). Pageouts () is the important figure. If the value in the parentheses is 0 (zero) then OS X is not making instantaneous use of VM which means you have adequate physical RAM for the system with the applications you have loaded. If the figure in parentheses is running positive and your hard drive is constantly being used (thrashing) then you need more physical RAM.
    Adding RAM only makes it possible to run more programs concurrently.  It doesn't speed up the computer nor make games run faster.  What it can do is prevent the system from having to use disk-based VM when it runs out of RAM because you are trying to run too many applications concurrently or using applications that are extremely RAM dependent.  It will improve the performance of applications that run mostly in RAM or when loading programs.

  • Error: The logical component X is still being used

    Hi,
    In Transaction SMSY, i want to delete a Logical Component. So, pre-condition is to check whether it is mapped to any Projects/Solutions. By right-clicking - Where used list , i have seen that it is mapped to a Project. So, in transaction SOLAR_PROJECT_ADMIN under tab System Landscape, i tried to delete the Logical Component but receiving the error message - The logical component X is still being used.
    Please help.
    Many Thanks,
    Mohan.

    Hello Mohan,
    You can also solve this by using the "Replace Logical Component" button in the system landscape within SOLAR_PROJECT_ADMIN.
    Thus you can replace all the occurances of the Z_ logical component by e.g. an existing standard SAP logical component.
    Afterwards you will be able to delete your Z_ logical component in SMSY (or in LMDB from 7.1 SP9 on).
    Best regards,
    Peter

  • What is the use of Component Controller in WD4A

    Hey Folks,
                   I have been reading tutorials and notes on WD4A.I understood basic architecture of WD4A but still i cant understand details of different Controllers like components controller,custom controllers,interface controllers etc.In which methods of controller i should code??.

    Hi Nirad,
    Controllers are heart of WebDynpro Components, since programming logic and data are defined in these entities.
    For example: ComponentController is accessible from all the views and windows in the WebDynpro Component. Hence we can declare the Attributes, context and the methods in the component controller which can be accessible in all the other controllers present in the WebDynpro Component.
    You can also find more information about controllers in the thread:
    Re: Controllers
    Best regards,
    Suresh
    Message was edited by:
            Suresh Honnappanavar

  • Using popup in Component controller

    Experts,
    I would like to use the create_popup_to_confirm method in component controller so i could reuse them in other views. The problem i have is the "subscription to the button event". I am assuming the subscription should be done at the view level but how do i link it to the "button_kind" which is at the controller level ?
    Thanks
    ASujo

    For the susbscribe to button event  action should be aexisting in one view. and that you need to assign.
    you can assign it in comp controller also.
    but actions you have to create in the view.
    and for reusing the function for creating pop up, create some parameter in it
    like 1. for view controller
          2. for action names.
    then assign the buttons to the events using these paramters.
    thanks
    sarbjeet singh

  • Custom vs component controller

    i was trying to use component controller instead of custom controller in the Get Flight List application. but it is not working. can any one tell why?
    when do we use custom controller and when component controller?

    Hai vineet,
    For Normal and simple applications you can use Component controller , If you are using complex application that contains more models and more views , you can share the data by using custom controllers,
    can you breifly explain what's your problem is?
    to get the reponses immediately post this thread on Webdynpro for java forum
    regards,
    Naga

  • Component Controller

    Hi All,
    Why a web dyn pro component can have only one component controller?
    thanks & regards,
    Manoj.

    Hi Manoj..
    <b><u>Component Controllers</u></b>
    The component controller is the master controller for a Web Dynpro Component. As soon as you declare the existence of a Web Dynpro Component, the component controller is automatically created. You cannot have a Web Dynpro Component without a component controller.
    This controller can be thought of as being hierarchically superior to all other controllers in the component. Consequently, the lifespan of the component is always equal to the lifespan of the component controller.
    For each component of yours there will be a component controller, were in you can define context variables and methods, events etc.. This usefull while using models.
    Simple example where we can see this is, when you create global context variable in this controller and map this variable to the view controller context variable of different view, which enables you to pass the value of the variable from one view to another.
    <b><u>Custom Controllers</u></b>
    They also have the same the function but as the name suggest there function can be customised. That is <b>we can have more than one custom controller for a component</b>. This is usefull when we need to create seperate execute methods for inputs from model import( Both webservice and rfc call).So you can seperate each other.
    <u><b>Creating Custom Controller</b></u>
    1.In the Web Dynpro Explorer, place the cursor on the node Custom Controllers (a subnode of the Web Dynpro component) and choose Create Custom Controller in the context menu.
    2.In the wizard, enter a name for the custom controller and close the wizard by choosing Finish.
    Hop this will help you..
    Regards,
    GS
    Message was edited by:
            Sathishkumar GS

  • Error occurs during reseed - the EDB file is being used by another process

    Greetings,
    We were notified today that one of our databases in an Exchange 2013 cluster is currently in a failed state. We have three servers - two at the primary site and one in the DR site. The database has a mounted and healthy copy on its preferred server, but
    the secondary copy is now failed with a pretty high CopyQueueLength.
    I've done plenty of reseeds with Exchange 2010, and I understand that Exchange 2013 will do an automatic reseed in the event of a failure. However the auto-reseed is generating the following message:
    Automatic Reseed Manager failed to execute repair workflow 'FailedSuspendedCopyAutoReseed' for database 'DB05'. Error: The Automatic Reseed Manager encountered an error: The automatic repair operation for database copy 'DB05\mb02' will not be run because
    one of the prerequisite checks failed. Error: There are no Exchange volumes mounted under root path 'C:\ExchangeVolumes', which are required for the Automatic Reseed component.
    WorkflowLaunchReason: The seeding operation failed. Error: An error occurred while performing the seed operation. Error: The process cannot access the file 'M:\DB05\DB05.EDB' because it is being used by another process.
    During the course of my investigation, I tried to rename the .edb file to .old and was told that the file is in use by Microsoft.exchange.store.worker.exe. There doesn't seem to be a way to kill this process, as every time I've tried I've been told that
    access is denied. I'm not even sure it's wise to kill the process anyway (I'm only trying to kill the one with the PID that matches the database).
    Attempting to manually reseed the database generates a similar error to the one above. I've failed all the databases over to the other server and restarted the Information Store service as well as the Host Controller service, but so far I can't seem to get
    this file unlocked. One article I found did mention making sure that Exchange Servers is listed and given Read access to the folder. I did manually set this but I still see no change. I also verified that Symantec Endpoint Protection is set to exclude .edb
    files, and the automatic Exchange exclusions are preventing it from scanning the Exchange install locations.
    I'm curious if anyone has any suggestions that I might have missed so far. This is confusing the daylights out of me and I'd like to be able to get this reseeded. I suspect that even a full server restart won't clear this up, so any help would be great.
    We're just starting to transition users over from Exchange 2007 to 2013, and I'd prefer to have a method of avoiding this in the future before we're in full production.

    Thanks for your response, Ed! I really appreciate you taking the time to do so.
    The ultimate fix for this was a reboot of the server and I was finally able to kick off a reseed. For the sake of thoroughness, here's the last two things we tried before rebooting.
    I did try stopping the Symantec Endpoint Protection service on the server, but the job still failed in the same way. I'd also been given the recommendation to try stopping the Information Store service and try a reseed like that. Still no love. I've been
    using ProcessExplorer, too, to try and isolate the lock, but didn't have much luck there, beyond what I already knew regarding the store.worker.exe locking the file.
    I don't much care for the notion that I needed to reboot the server to remove that lock, I was really hoping for something less intrusive. But at least we've got it working and can move on with our day!
    Again, thanks for your response, Ed!

  • Access to an attribute of a value node of a component controller

    Hello experts,
    I'm new to the area of SAP CRM Web Client UI development. My problem is probably very simple and you will surely smile about it.
    I have created my own component with the value node FILE (that consists of five atributes) in the component controller. Unfortunately I have not figured out yet how I can access the value of an attribute.
    The first thing I do not know is where I can find the controller-ID.
    In addition, I get an syntax error Field "TYPED_CONTEXT->FILE->COLLECTION_WRAPPER->GET_FIRST(" unknown in the line with "lo_entity = me->comp_controller->typed_context->file->collection_wrapper->get_first( ).".
    Currently no functionality is included in my code, because firstly I want to understand the basics.
    method OP_FILEUPLOAD.
      data lo_entity       type ref to if_bol_bo_property_access.
      data lv_file_name    type string.
      data lr_file_content type ref to data.
      field-symbols <lv_file_name> type string.
      IF ( comp_controller is INITIAL ).
        get_controller( 'xxxx' ).
      ENDIF.
      lo_entity = me->comp_controller->typed_context->file->collection_wrapper->get_first( ).
      while lo_entity is bound.
        lv_file_name = lo_entity->get_property_as_string( 'FILE_NAME' ).
        lr_file_content = lo_entity->get_property( 'FILE_CONTENT_STRING' ).
        assign lr_file_content->* to <lv_file_content>.
        lo_entity = me->typed_context->file->collection_wrapper->get_next( ).
      endwhile.
    endmethod.
    I hope that I will manage my "problem" with your help!
    Sebastian
    Edited by: Sebastian Lenz on Jun 27, 2011 2:35 PM

    Hi Sebastian,
    The issue is in the following line of your code:
    lo_entity = me->comp_controller->typed_context->file->collection_wrapper->get_first( ).
    The 'typed_context' belongs to your own component controller class and not the standard framework superclass. So, you need to replace this single line of code with something as follows (assuming that your component controller class is ZCL_CUSTOM_BSPWDCOMPONENT_IMPL):
    DATA lr_coco TYPE REF TO ZCL_CUSTOM_BSPWDCOMPONENT_IMPL.
    lr_coco ?= me->comp_controller.
    lo_entity = lr_coco->typed_context->file->collection_wrapper->get_first( ).
    The me->comp_controller reference will refer to the standard framework superclass of all component controllers and this does not have any typed_context attribute with it. The real component controller that gets created when you create a BSP component will have this attribute. That is why you need to first cast it to your own reference type before trying to access its typed_context.
    And if your value node will have only single values, then you can as well do the following to access the attribute ATTRIB1 of context node node1:
    DATA lv_value TYPE string.
    lv_value = lr_coco->typed_context->node1->get_attrib1( attribute path = '' ).
    Basically all attributes can be accessed by above code by using the right getter method.
    Regards,
    Shiromani

  • Is it possible to serialize a web dynpro component controller?

    Hi,
    Is it possible to serialize a web dynpro component controller and deserialize it for use?
    I have one web dynpro application WDA1 for web dynpro component WDC1. And  another web dynpro application WDA2 for WDC2 will be opened in a new window triggered by a button action in WDC1.
    Iu2019d like to pass the object reference of WDC1 component controller to WDC2.
    I first tried to use a static member of a class object but found out that even the static member is initialized and set in WDC1, itu2019s still initial when I access it in WDC2.
    Then I searched the forum and found one article Passing Object ref to Webdynpro Application while calling from BSP screen .
    The recommended way is to serialize the object reference and store in a DB table, later on read it out and deserialize it for use.
    I tried serialization using the following code, but when itu2019s deserialized, the result is initial.
    Can anyone share some ideas on this?
    Serialize
      data: ostream type string,
               xslt_err type ref to cx_xslt_exception.
    ***** serialize model class
      try.
          call transformation id
          source model = wd_comp_controller
          result xml ostream.
        catch cx_xslt_exception into xslt_err.
      endtry.
    Deserialize
        data: istream type string,
              xslt_err type ref to cx_xslt_exception.
        istream = ls_db_sel-obj.
        data lr_wdc type REF TO ZIWCI_BY_WDC_SERIALIZE.
        try.
            call transformation id
            source xml istream
            result model = lr_wdc.
          catch cx_xslt_exception into xslt_err.
        endtry.

    When you say new window, I assume you mean new browser window. This is a separate user session then.  This is why the singleton pattern doesn't work.  Have you considered using a new dialog window instead of a new browser window.  It will be modal, but will share the same user session as the parent window.
    >Why do you choose this approach over cross-component usage ? component usage is the way webdynpro components are >to be reused.
    >You can also consider using Singleton OO pattern class to share data between these two components.
    Neither of these approaches will work if you are using separate browser windows. Such an approach results in two separate user sessions (perhaps even running on different application servers depending upon how you have load balancing setup) and therefore can't share data using either of these approaches.
    In general the idea of serialization and then writing the string ito a server cookie or other database table is sound.  I don't think you should try and serialize the component controller, however.  Serialization only saves and restores public attributes - not protected or private ones.  So in general a class has to be designed for serialization.  The component controller is much too complex and wasn't designed for such an operation. 
    I would suggest instead extracting the data you want to share out of component controller or context and serializing it into a custom class and passing that to the other component.

  • Component controller is consuming lots of memory

    Hi All,
    I have an WebDynpro application and a component controller (MyCompController) too where I have written most of the business specific code. The basis team informed that the component controller (MyCompController) is consuming lots of memory.
    Could anybody suggest me how to takle this problem. I dont have any other details and I am new to handle this kind of activity.
    Thanks & Regards,
    Patana

    Hi Patana
    Your controller can consume lots of memory because of lots of unnecessary data is loaded in advance and do not used actually. Try to analyze the following points:
    1. Unnecessary data is loaded into the context nodes in advance. Do not load all the data into the context in wdInit() method (do not fill in all the models too). This is not the right way. Instead try to use supply-functions for each context node with data. Supply-function will be called by Webdynpro automatically only when the data is actually required to be shown on UI.
    2. Unnecessary embedded Webdynpro components are created and loaded in memory in advance. Do not create embedded Webdynpro components manually in wdInit() method. Instead try to setup component usages with Create Mode option = OnDemand. Then Webdynpro will create the components automatically when this is really required.
    BR, Sergei

Maybe you are looking for

  • How do I access iCloud Calendar & Contact data from a pre-Lion iMac?

    How do I access iCloud Calendar data from my pre-Lion iMac? Hardware Overview:   Model Name:          iMac   Model Identifier:          iMac4,1   Processor Name:          Intel Core Duo System 10.7 is not available for this iMac.  Since MobileMe has

  • STOs, PIRs and batch management problem

    Hi All, I've an issue. I honestly dont know where I can get a answer for this. Here is my scenario All materials are batch managed. Each and every customer can get only certain batches and not all batches meet the requirement of a customer. Lets say

  • Adobe Muse Trial Crashes Every Time I Save Changes to a Purchased Template (Brooklyn)

    Hi, I am evaluating Muse. I have purchased an online Muse template file to adjust in order to build my own site. If Muse can do this then I will go ahead and purchase it. However, whenever I save any changes to the Muse file then Muse crashes immedia

  • Playing out an HD sequence to SD tape

    Hello, can someone help? I have an HD sequence ( 1920 x 1080, 1080i)which I am trying to play out to an SD tape (don't have an HD deck at mo). The playout seems to freeze on one shot but the audio is fine. It also seems to be letterboxed. Can someone

  • What does SNR have to do with anythi

    Hi Everyone, I'm just looking for a soundcard to record vocals into my computer, and I'm not sure if the SNR rate has anything to do with it. If I just get a basic 24-bit soundcard, will the SNR rate have any effect on the vocals I record? I don't ca