Determining Edit/Display Mode from Within Freestyle Component

I am new to FPM.  We are running ESS.
I have enhanced a new Web Dynpro Component onto an Edit page of an OVP (as a Freestyle Component).
I want the new WDC to behave differently based on the mode I am in.
How, from within the new WDC, can I tell if I have entered the Edit page in Edit (pencil) or Display mode?
Thanks...
...Mike

Hello Mike,
Firstly, welcome to the wonderful world of FPM
Well, usually with FPM, you have an Edit (or Read-only) button in the top, underneath the title (Identification Region, IDR). This, being standard, has some standard FPM events behind it.
In your freestyle WD component, you implemented IF_FPM_BUILDING_BLOCK interface, and with it you have some additional methods in your COMPONENT CONTROLLER, such as FLUSH, PROCESS_EVENT, and so on...
In your PROCESS_EVENT method, you can basically catch all FPM events at application level. Usually you have a big CASE, something like:
case io_event->mv_event_id.
     when ...
     when 'FPM_EDIT'. "you can find some constants behind CL_FPM_EVENT=>GC... Right now I'm not sure how it's called exactly. But it's advised to use this constants!
          You can write your code here in order to change the behavior, basically, you can do whatever.
          also, it's the same with 'FPM_READ_ONLY'
     when others.
          return.
endcase.
I strongly recommend you download the latest version of FPM Cookbook, or the one that is suited with your SAP NW version.
FPM Developer's Handbook SAP NetWeaver 7.03/7.31 SP4
Hope I made things a little more clear!
Tudor

Similar Messages

  • How to go to display mode from VA05? Thanks.

    I have a question on VA05. There is order list and it go to change mode when you  double click on certain entry. But most of time we just want to view the order. How to direct it to display mode from here? Thanks.

    Hi ,
    I think thats the std functionality and it cannot be changed. You will have to build a custom report to do the same and enable forward navigation to display transaction va03.
    Cheers
    VJ

  • SAP Cloud SDK : Make Display mode when open Embed Component in Account TI screen

    Hi Experts,
    I have created the custom business object and assign some fields into it.
    I have also assign some custom action into this custom business object. After that i have created the Embed component and and configured into Account_TI screen and its display data.
    Now when I open Any Account and go to that newly embed component in silverlight 2 options comes ( Save and Cancel ) to remove this options or to make display mode by default I have followed the below steps:
    1) Open Embed Component into UI designer.
    2) Go to Properties Window.
    3) In the top from the dropdown list select embed component.
    4) In the Property go to Configuration --> WorkProtectRelevant equal to false.
    5) After save and activate and check but still getting ( Save and Cancel ) option in embed component
    Is there any other solution or any other settings require to remove this ( Save and Cancel ) option.
    Regards,
    Mithun

    Hi Brad and Sumeet,
    Thanks for you reply on this post.
    In my requirement we do not want to save record anymore.
    Also my scenario : We have consuming the on-premise web service into c4c we have created the custom business object ( Not Screen) and based on this custom business object we have created the embed component and  design the screen to embed with Account_TI.
    We have Read the Account ID from Account _TI screen and assign to embed component element Alternative key AccountID.
    We have created of configured the embed component Inport to Read and Assign the Account ID as below:
    My Custom business object :
    businessobject ECC_recordBO {
      [AlternativeKey] [Label("Customer Number")] element AccountID : BusinessPartnerInternalID;
      element CtLimit : LANGUAGEINDEPENDENT_LONG_Text;
      element AvailCLimit : LANGUAGEINDEPENDENT_LONG_Text;
      element AccCurrency : CurrencyCode;
      action ViewAcc;
    My embed component InPort event :
    ReadEvent
    In ReadBOEvent I have add below actions:
    BO Operation
    Condition
    And under the condition I have use the below actions :
    To create BOOperation
    Second DataOperation as below :
    Assign AccountID from Account_TI to AccountID of embed component.
    Also once the user come into the Account_TI screen and go to embed component first its in display mode and when he click on any action under embed component its in edit mode but we do not want to save data anymore.
    Regards,
    Mithun

  • How to set "display mode" from external keyboard

    I have an EliteBook 8570p in a docking station, with an external monitor and keyboard attached.
    I typically have my display mode as "duplicate", with the same thing  showing on both my laptop screen and external monitor.  I use the external monitor as the main screen. This might be uncommon, but I prefer it this way.  I've been working this way for quite a while.
    I very recently started using MS PowerPoint 2013.  Today I discovered an annoying bug with this combination.  I was in "slideshow mode" for a pptx I was working on, and I pressed ESC to get back to editing the doc.  What happened was that the external monitor just showed my background wallpaper, and the laptop screen showed the normal display, along with my background wallpaper.  I then had to slide over to my laptop keyboard and press Fn-F4 and set it to "Duplicate", and that restored my external monitor display.
    I'm definitely going to pursue this weird behavior with PowerPoint, but I'm going to assume out of the box that this will be difficult to change.  What I'd like to get from this forum is simply a quicker way to restore the "Duplicate" display mode.  Is there a keyboard shortcut I can use from my external keyboard to change the display mode?  There's no "Fn" key.

    Although I'd still like to get an answer to this, my original problem has been solved, as I was able to disable the feature in PowerPoint 2013 that mucked with my display mode (turn off "Use Presenter View").

  • Time buckets edit/display mode

    Hi
    We have requirement as first two time buckets of the planning book would be in editable mode to the user and from the 3rd bucket onwards the time buckets should be in display mode.
    How can we make the portion of the future time buckets as editable ?
    Thanks & Regards
    KPN Murthy.
    Edited by: p narasimha murthy konidena on Mar 24, 2011 1:59 PM

    KPN
    Look at the SAP help here:
    http://help.sap.com/saphelp_scm70/helpdata/EN/4b/755bee3bf75a18e10000000a421937/frameset.htm
    Look at SAP standard Macros in Macro book 9AEXAMPLES.
    Rishi Menon

  • Changing states from within a component

    Let's say that I have a TileList that is rendering data in a
    VBox. Eventually the TileList fills up and starts scrolling. I want
    to change states when clicking on item in the TileList.
    I don't want to place the click-attribute in the TileList,
    because it will change states when I am scrolling the list without
    actually selecting anything.
    I want to say click="currentState='state2'" inside the VBox,
    but that does not work because state2 is at the root level, and I
    don't know how to get to the root-level (in lack of a better word)
    from withing the component.
    This is not the proper syntax, so misunderstand me the right
    way here... Is there an equivallence to
    click="currentState='_root.state2'" in mxml?
    Thanks for any suggestions or best practices. I want the easy
    way out.
    This is the general structure...
    <mx:Application>
    <mx:states>
    <mx:State id="state1"/>
    <mx:State id="state2"/>
    <mx:State id="state3"/>
    </mx:states>
    <mx:TileList dataprovider="{...}">
    <mx:itemRenderer>
    <mx:component>
    <mx:VBox id="ClickThisBoxToChangeStates">
    <mx:Image/>
    <mx:Label/>
    </mx:Vbox>
    </mx:component>
    </mx:itemRenderer>
    </mx:TileList>
    </mx:Application>

    Your assumption is right.
    It doesn't work because there is no state2-state defined
    within the mx:component.
    In the documentation about changing states it says that I can
    go from application level and change states within a component;
    like this: click="currentState='mycomponent.anotherstate'" but not
    how I can change a state at application level from within a state.
    When I try, it says (at runtime) that the state is not defined.
    So I don't know why <mx:VBox
    click="currentState='state2'"/> doesn't work.
    I apprechiate your expertese a lot.

  • What is the best process for creating, opening, editing, etc PDFs from within Visual Studio 2008?

    I am the project manager on a web-based application that will need to:
    Create, open, edit, save, etc PDFs from within a Visual Studio 2008 web application (Visual Basic).
    Populate PDFs from SQL server 2010 database.
    Allow users to use PDF editing tools from within the website.
    BTW, the application is being written in Visual Basic.
    Will the SDK allow us to do this? What licenses do we need to purchase?
    Are there 3rd party plugins that make doing these things much faster and simpler?
    Any input is GREATLY appreciated!!!
    Sincerely,
    Mike

    I don't think Acrobat, or the Acrobat SDK can help you. Acrobat cannot be run on a server.

  • How to get the edit channel link from within the channel?

    Following problem:
    I want to include a link to edit the settings of a channel in the channel contents. The link should be the same as the edit button on the frame of the channel container. Searching through the provider jsps I found that the edit link is created in single.jsp. The code I need seems to boil down to
    <dt:obtainContainer container="$JSPProvider">
      <dtsingle:singleContainerProvider>
      <dtpc:getStringProperty key="editContainerName" id="editContainerName" scope="request"/>
      <dt:getName id="SingleContainer" scope="request"/>
      <jx:declare id="editContainerName" type="java.lang.String"/>
      <jx:declare id="SingleContainer" type="java.lang.String"/>
        <dtsingle:obtainSelectedChannel>
    <A HREF="<dtpc:getDesktopURL/>?action=edit
    &provider=<%=editContainerName%>
    &targetprovider=<dt:getName/>
    &containerName=<%=SingleContainer%>"
    TARGET="_self"> EDIT! </A>
        </dtsingle:obtainSelectedChannel>
      </dtsingle:singleContainerProvider>
    </dt:obtainContainer>However I am unable to get that working in the channel, as I always receive a ProviderException on the line with
    <dt:obtainContainer container="$JSPProvider">
    What am I doing wrong, or is does the obtainContainer simply not work from within a channel?
    If anyone can help me out to get the edit link it would be greatly appreciated. Any hints and/or sample code would help alot.
    thanks!
    Message was edited by:
    obstler42

    Hi Detlev ,
    Thank you very very much . We could figure out how to get the URL and Driver information from there .I have rewarded the points also.
    Thanks
    Ravi
    Message was edited by: Ravi Krishnan

  • Cross-component: Call method of using component from within used component?

    Hi,
    I began diving into cross-component programming.
    Meanwhile after having digged into some scenarios some questions came up to my mind that I am not able to answer myself. I would appreciate your help here!
    Say we have to components.  Comp A uses Comp B (hence, B is a component usage in A)
    1) How to make them communicate not on a data level (via context binding) but on a process level, thus...
    a) can I call A's method from within B? How is the approach on a general level? - as B can be used from totally different components (like A, A1, A2 ...)
    b) perhaps the only way to do this is by firing events? If so, how can I react in A when an event in B (marked as interface event) gets fired? As it seems they do not get registered within A directly...
    I guess the question seems to be a bit tricky. Nevertheless, I think there will be plenty of you out there who used to asked them the same questions before and came up with an approach. Would be nice to hear from you.
    Best wishes,
    Marc @sap1

    Hi,
    thanks for your reply!
    Indeed, I think the nature of WDA would be just to somehow map the context from the used component to the other back and forth.
    Nevertheless, what if I would like to invoke a method of the using component from inside the used component.
    One sample for this requirement could be e.g.:
    Component B offers a tree item and a send/verify button.
    Component A uses B and has some restraints regarding what the selection should look like.
    The user taps the button in B (at runtime in the view container of A), the context gets updated in A and B and in Component A the verifyWithOwnConstraints() method gets called (through B).
    Thanks again,
    Marc

  • I can't call up a URL from within a component?

    Hi all. Hope you can help.
    I have a flash site that contains a component. The component
    is for a scroll bar that shows image slices of my work. The image
    slices are buttons that when clicked should call up a seperate web
    (URL) window to display the work. However when clicked the button
    doesn't work. The button im using is on (release) {getURL
    ("work.htm")} this is fom the browser/network submenu in the global
    functions menu. I think that I should be looking in the components
    menu but have no idea what function or code to use.
    Any advice would be massively helpful.
    Cheers
    Rob

    The images are added within the component as buttons. I don't
    know how to check wether the button is accessable or not? IF you
    could advise on this that would be really good. I don't think its
    tracing anything.
    Basically just want it to open a javascript URL window.
    Cheers in advance
    Rob

  • Creating form element from within a component

    Hi all,
    I am trying to create a form element within a component
    function which is then called from a .cfm page which has the cfform
    tags. I keep getting a context validation error for the form
    element tag. Here is some sample code:
    <cfcomponent name="yourComponent">
    <cffunction name="createTag" returntype="string"
    access="public">
    <cfsavecontent variable="returnContent">
    <cfselect name="thisSelect">
    <option value="0">Value 1</option>
    </cfselect>
    </cfsaveconten>
    <cfreturn returnContent>
    </cffunction>
    </cfcomponent>
    And in the .cfm page:
    <cfform>
    <cfinvoke component="yourComponent" method="createTag"
    returnVariable="returnContent"/>
    <cfoutput>#returnContent#</cfoutput>
    </cfform>
    The error occurs in the function and it says the cfselect
    must be within a cfform. I tried the function without the save
    content and just set the output="yes" but the same error occurs.
    Any help appreciated in how to get around this. Just putting
    the code in the .cfm is not an option for this.
    Any help appreciated.
    Jim

    quote:
    Originally posted by:
    jim1234
    Thanks for the reply. Yes, that works. So it looks like it
    has to do with the function call.
    After some further investigation, I found out that a regular
    <select> works, it's just the <cfselect> that does not.
    ColdFusion wants it directly within the <cfform> tag.
    Something does not make sense. If the cfsavecontent worked in
    the cfm file, there is no reason for it not to work in a cfc.
    If you want to persue this, the next troubleshooting step is
    to copy the function to your cfm file and see if it works. I
    suspect that you are trying something simple as a proof of concept.

  • How can I include a javaScript files from within jsf component

    Is there any way using which I can include javascript files from my jsf component. Because otherwise I have to write all the javascript commands using writer.write which is very tedious rather than this I just want to include the javascript file which contains all the functions required. Also I want that this file should be included only once irrespective of the number of components included.
    Thanx in advance

    This doesn't depend on JSF. You need to include a script tag, like:
    <script src="/path/script.js"
    language="JavaScript" type="text/javascript"></script>
    If you want to include this only once, make a file included into every page, into which you can put other resources to be included along with this script.
    HTH,
    rs.

  • JTabbedPane switching from within added component

    Hey guys,
    Anyone know how/if its possible to change between JTabbedPanes
    by using a button within a component added to one of the Panes?
    Class A has a JtabbedPane in it
    and Class B extends JPanel and is added to the TabbedPane
    as a Component
    Is there anyway to have a buttonclick in class b to switch to
    another tab in the parent class?

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class AddingATab
        public static void main(String[] args)
            BasicGUI gui = new BasicGUI();
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(gui.getUIChanger(), "North");
            f.getContentPane().add(gui.getMainUI());
            f.setSize(400,400);
            f.setVisible(true);
    class BasicGUI
        JTabbedPane tabbedPane;
        public BasicGUI()
            tabbedPane = new JTabbedPane();
        public JTabbedPane getMainUI()
            JPanel
                redPanel = new JPanel(),
                bluePanel = new JPanel();
            redPanel.setBackground(Color.red);
            bluePanel.setBackground(Color.blue);
            tabbedPane.addTab("red", redPanel);
            tabbedPane.addTab("blue", bluePanel);
            return tabbedPane;
        public JPanel getUIChanger()
            JButton add = new JButton("add tab");
            add.addActionListener(new ActionListener()
                public void actionPerformed(ActionEvent e)
                    String nextTab = "tab " + String.valueOf(tabbedPane.getTabCount()+1);
                    tabbedPane.addTab(nextTab, new AddOnPanel(tabbedPane));
            JPanel panel = new JPanel();
            panel.add(add);
            return panel;
    class AddOnPanel extends JPanel
        JTabbedPane tabbedPane;
        public AddOnPanel(JTabbedPane tp)
            tabbedPane = tp;
            addNavButtons();
        private void addNavButtons()
            int numberTabs = tabbedPane.getTabCount();
            JButton[] buttons = new JButton[numberTabs];
            ActionListener l = new ActionListener()
                public void actionPerformed(ActionEvent e)
                    JButton button = (JButton)e.getSource();
                    int index = tabbedPane.indexOfTab(button.getActionCommand());
                    tabbedPane.setSelectedIndex(index);
            for(int i = 0; i < buttons.length; i++)
                String ac = tabbedPane.getTitleAt(i);
                buttons[i] = new JButton(ac);
                buttons.setActionCommand(ac);
    buttons[i].addActionListener(l);
    add(buttons[i]);

  • Java:comp/env namespace is only available from within J2EE component

    HI
    I am writing a standalone application program to access the bean using jdk1.3.1 and it's giving me the namespace error.
    I deployed the bean and included the .jar file in CLASSPATH. In the program, I specify the correct namespace to lookup since it's already registered through deployment
    When I run the application, I get the exception error with namespace only available withing j2ee component.
    Does anyone know what's the problem?

    Hi,
    When you deploy your bean ( im assuming you are using deploytool ) have you added your client application as a component in deploytool ?
    If you haven't done this then the client app code won't be able to lookup the java:comp/env name space. The reason is, that to access this namespace ( at least with j2sdkee1.3 ) you need a "client container". This client container is generated by the deploytool automatically if you add the client application into deploytool. Sun's sample application "Dukes Bank App" is a good place to see an example of this

  • How to switch to Target Display Mode under BootCamp?

    Hi there,
    I am running Windows 7 x64 under bootcamp and want to be able to switch to target display mode.
    I can achieve this when running OS/X by hitting Command-F2.
    Is there a way to switch to target display mode from within Windows 7 under bootcamp?
    I would like to do this so that I can easily switch to target display mode whilst using Windows without having to restart my machine.
    Any help would be appreciated.
    Cheers,
    Bardman

    Windows does not have a Target Display mode.

Maybe you are looking for