Dynamic JSF GUI and associated backingbeans

I'm designing a web application using JSF. One of the main requirements is that our GUI needs to be pluggable. I have tried to understand how pluggability can be achieved in JSF but haven't found a clear solution.
I would like the application to be packaged as a war file. Adding customer specific pages/bean classes to the war file and repackaging of the war is not an option. The customer specific pages/classes must reside outside this war. At runtime, based on configured rules, I need to load the customer pages and render them. If the pages are JSP based JSF pages, then they will also have their associated backing beans.
Given that the backing beans must be preconfigured as managed beans in the faces-config.xml file and all JSP pages must be part of the packaged web application, I don't know how to go about doing this.
A solution (non-ideal) that I have thought of is to have the customers design their forms as HTML pages and have them put these forms in the document root directory on the app server. The customer code that manipulates the data on the form will be packaged in a jar file. The HTML form 'action' will be set to a URL that will take them to one of my servlets. The interaction will be such:
1. A user visits my JSF/JSP page. He clicks on a button. In the action event listener, I decide on the correct html form to forward the request to. I put the instance of the backingbean class in the HttpSession and forward the request to the HTML page.
2. The browser displays the HTML form. The user enters data on the form and submits it. The request arrives at my servlet.
3. My servlet instantiates the appropriate customer class (using the ClassLoader) and calls a method on it passing it all postdata; the method returns some String value. The servlet pulls out the backingbean class instance from the HttpSession and calls a setProperty(String value) on it. The servlet then gets a handle to the RequestDispatcher and forwards the request to my original JSF/JSP page.
4. The JSF page is rendered in the browser with then new value (property set by the servlet) displayed in the right view component.
The above approach is very messy and with many customer forms and backend classes this approach can get very ugly. I am looking for the correct solution that is recommended by JSF to achieve this kind of pluggability.
Any thoughts, advice or feedback will be very appreciated.
thanks,
tsc

I have researched my issue online for quite some time and have found nothing that jumps out except one post to this forum.
Adam.Winer replied to a similar post on this forum over a year ago where he suggests replacing the ViewHandler, NavigationHandler and VariableResolver to be able to plugin JSP pages at runtime (See below).
After doing some reading, I understand the function of the NavigationHandler and VariableResolver a bit better. do not understand how to replace the ViewHandler and what the new handler should do to render different JSP pages at runtime.
Has anyone tried this approach. If yes, examples would be nice.
I'm sure what I'm attempting has been done before many times. How have people gone about to achieve this kinda of pluggability in JSF.
Anyone?
From: http://forum.java.sun.com/thread.jspa?forumID=427&threadID=524937
Re: dynamic configuration for the application
adam.winer Registered: Dec 23, 2003 12:00 AM      May 24, 2004 9:30 PM
A lot of what you're seeing are genuine limitations, but happily, JSF is so pluggable that you can overcome them.
JSPs are problematic in exactly the way you describe - unless your app server has support for pulling JSPs out of a database, etc., you're SOL. JSF, however, lets you use something other than JSPs by replacing the ViewHandler. That's a fair bit of work, but it is doable.
For navigation logic, you'd replace the NavigationHandler. As long as you're willing to write the code that can pull navigation rules from an external source, life is good.
For managed beans, all you need to replace is the VariableResolver - again, if you can pull the rules from an external source, you have full control.
This is all far from easy - and it's a huge amount of work for one person - but I'd imagine these pieces will become available from various sources. A core goal of JSF 1.0 was making the framework as a whole pluggable so that others can innovate on top of the framework.
-- Adam Winer (EG member)

Similar Messages

  • Dynamic JSF GUI

    Hi
    I have a problem with creating dynamic GUIs. I have tried it the way it is described in Hans Bergstens book chapter 15, but it does not work. This may be because I am using WebSphere Application Developer 5.1.2 with a Tomcat 4.0.6.2 plugin. I do always get an "java.lang.IllegalStateException" when performing the second code line:
    ServletResponse response = (ServletResponse)context.getExternalContext().getResponse();
    OutputStream os = response.getOutputStream();" //Error is generated
    BUT there seems to be a slightly different way to generate dynamic user GUIs. This looks like this:
    //begin
    HtmlPanelGrid grid = new HtmlPanelGrid();
    HtmlOutputText title = new HtmlOutputText();
    title.setValue("This is my component!");grid.getChildren().add(title);
    //end
    I have just seen that code in this forum and I have no idea what I should make with it. How does it work to make a GUI this way? How and where is it rendered?
    Thanks

    What I need is a JSP that has a tag which should look like this:
    <pre>
    <f:view>
    <hx:scriptCollector id="scriptCollector1">
    <h:form styleClass="form" id="form1">
    <myTag: generateGUI />
    </h:form>
    </hx:scriptCollector>
    </f:view>
    </pre>
    Alternatively it would be possible to use something else than a tag.
    The Tag should then be able to generate the GUI.
    <pre>
    public class GUITag extends TagSupport
    public int doStartTag()
    HtmlCommandButton button = new HtmlCommandButton();
    button.setId("myButton1");
    button.setValue("button");
    MethodBinding mbButton = application.createMethodBinding("#{InputValueChanged.print}", null);
    button.setAction(mbButton);
    component.getAttributes().put("action", mbButton);
    //try
    button.encodeBegin(facesContext);
    button.encodeChildren(facesContext);
    button.encodeEnd(facesContext);
    //catch block
    </pre>
    So for example here a button should be generated in the GUI. This button should work. This means when pressing the button the print method of the InputValueChangedBean should be performed. And this does not work at the moment.
    The important thing is that the JSP must not contain any JSF code like:
    <pre>
    <h:outputText ....
    </h:outputText>
    </pre>
    This is because at the beginning of the JSP rendering process I have no idea which components are going to be displayed on it. What will be displayed on the JSP stands in an XML file. This XML file does not only contain the GUI information for one page, it does contain all the GUI information for the entire WebApplication. Depending on which button the user clicks on the dynamically generated GUI a different part of that XML file will be rendered (made to a GUI). So the user sees something different.
    I have also thought about using a custom presentation layer as described in chapter 15 of your book. But as far as I have understood that I have to create a ViewHandler. As a result of that the entire GUI of the WebApplication is then rendered using that ViewHandler. And this means I am not longer able to use normal JSPs (I would need to use the ViewHandler and normal JSPs together. So one part of the WebApplication should be rendered using the ViewHandler and the other part of the WebApplication should consist of normal JSPs).
    Is there any possibility having one part of the WebApplication rendered by the information of an XML file and a different part of the same WebApplication to be rendered the normal way by using JSPs with JSF tags?

  • PLease help! GUI and Data Structure

    Hey guys,
    It's for my school project.
    I have to write codes for GUI program for a order form.
    I'm pretty much done with layout and stuff, but I couldn't figure out how to give some regulation(?) on some of the field.
    For instantce, I have to regulate a user to type only two letter abbreviation on state(address) field and the Zip field has to be either 5 digit form or XXXXX-XXXX.
    I Also have to include code to filter the user input and display error message if they enter wrong information.
    Second, how to use actoinevent stuff?
    There are three product type: a,b, and c. If "a" be chosen, then the product name associating the "a" product has to be shown on the product name field(I used ComboBox), and the price for that product(for instance a-1) has to be shown on the price field.
    Third, It sounds stupid question, but how to display current date on the java program using API?
    Fourth, I have to load some of the order from external files(maybe text files) and display into the screen.
    Here is the code
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.ListSelectionEvent;
    class orderFormGUI extends JFrame {
         private JButton bSave, bExit, bLoad;
         private JLabel labelTitle;
         private JTextField fieldFName, fieldLName, fieldStreet, fieldCity,
                   fieldState, fieldZip;
         private JLabel labelFName, labelLName, labelStreet, labelCity, labelState,
                   labelZip;
         private String[] st = { "CA", "TX", "OR", "UT", "NM", "NY", "NY", "GA",
                   "IL", "TN", "MN", "WY" };
         private JComboBox comboPType, comboPName;
         private JLabel labelComboPType, labelComboPName;
         private String[] ct = { "Copmuter", "Printer", "Monitor" };
         private String[] cn = { "CMP1100", "CMP1500" };
         private String[] pn = { "PR500", "PR1000" };
         private String[] mn = { "D4000", "D8000" };
         private String[] x;
         private JTextField fieldTotalPrice, fieldProductPrice;
         private JLabel labelTotalPrice, labelProductPrice;
         private JTextField filedQty;
         private JLabel labelQty;
         private JTextField fieldOrderDate, fieldDeliveryDate;
         private JComboBox comboDeliveryOptions;
         private String[] dO = { "5 Days", "10 Days" };
         private JLabel labelOrderDate, labelDeliveryOptions, labelDeliveryDate;
         private ArrayList orderArray;
         private DefaultListModel lmodel;
         public void initComponents() {
              bSave.setActionCommand("Save");
              bLoad.setActionCommand("Load");
              bExit.setActionCommand("Exit");
              bSave.addActionListener(new ButtonListener());
              bLoad.addActionListener(new ButtonListener());
              bExit.addActionListener(new ButtonListener());
         public void ClearFields() {
              // Set all text fields to blank
              fieldFName.setText("");
              fieldLName.setText("");
              fieldStreet.setText("");
              fieldCity.setText("");
              fieldState.setText("");
              fieldZip.setText("");
         public orderFormGUI() {
              orderArray = new ArrayList();
              bSave = new JButton("Save");
              bLoad = new JButton("Load");
              bExit = new JButton("Exit");
              // set up labels and field size for GUI
              labelTitle = new JLabel("Order Form");
              fieldFName = new JTextField("", 30);
              labelFName = new JLabel("First Name: ");
              fieldLName = new JTextField("", 30);
              labelLName = new JLabel("Last Name: ");
              fieldStreet = new JTextField("", 12);
              labelStreet = new JLabel("Street: ");
              fieldCity = new JTextField("", 12);
              labelCity = new JLabel("City: ");
              fieldState = new JTextField("", 2);
              labelState = new JLabel("State: ");
              fieldZip = new JTextField("", 9);
              labelZip = new JLabel("Zip Code: ");
              comboPType = new JComboBox(ct);
              chooseProductName();
              labelComboPType = new JLabel("Product Type");
              comboPName = new JComboBox();
              labelComboPName = new JLabel("Product Name");
              fieldProductPrice = new JTextField("");
              labelProductPrice = new JLabel("Product Price: ");
              fieldTotalPrice = new JTextField("", 12);
              labelTotalPrice = new JLabel("Total Price: ");
              filedQty = new JTextField("", 12);
              labelQty = new JLabel("Quantity: ");
              fieldOrderDate = new JTextField("", 12);
              labelOrderDate = new JLabel("Order Date: ");
              comboDeliveryOptions = new JComboBox(dO);
              labelDeliveryOptions = new JLabel("Delivery Options: ");
              fieldDeliveryDate = new JTextField("", 12);
              labelDeliveryDate = new JLabel("Delivery Date: ");
              TextFieldHandler handler = new TextFieldHandler();
              fieldState.addActionListener(handler);
              // Construct GUI and set layout
              JPanel mine = new JPanel();
              mine.setLayout(null);
              mine.add(labelTitle);
              labelTitle.setBounds(150, 30, 100, 15);
              mine.add(fieldFName);
              fieldFName.setBounds(88, 80, 220, 21);
              mine.add(labelFName);
              labelFName.setBounds(16, 80, 134, 21);
              mine.add(fieldLName);
              fieldLName.setBounds(88, 110, 220, 21);
              mine.add(labelLName);
              labelLName.setBounds(16, 110, 134, 21);
              mine.add(fieldStreet);
              fieldStreet.setBounds(88, 150, 220, 21);
              mine.add(labelStreet);
              labelStreet.setBounds(16, 150, 134, 21);
              mine.add(fieldCity);
              fieldCity.setBounds(88, 180, 220, 21);
              mine.add(labelCity);
              labelCity.setBounds(16, 180, 134, 21);
              mine.add(fieldState);
              fieldState.setBounds(88, 210, 220, 21);
              mine.add(labelState);
              labelState.setBounds(16, 210, 134, 21);
              mine.add(fieldZip);
              fieldZip.setBounds(88, 240, 220, 21);
              mine.add(labelZip);
              labelZip.setBounds(16, 240, 134, 21);
              mine.add(comboPType);
              comboPType.setBounds(120, 280, 220, 21);
              mine.add(labelComboPType);
              labelComboPType.setBounds(16, 280, 134, 21);
              mine.add(comboPName);
              comboPName.setBounds(120,310, 220, 21);
              mine.add(labelComboPName);
              labelComboPName.setBounds(16, 310, 134, 21);
              mine.add(fieldProductPrice);
              fieldProductPrice.setBounds(120, 340, 220, 21);
              fieldProductPrice.setEditable(false);
              mine.add(labelProductPrice);
              labelProductPrice.setBounds(16, 340, 134, 21);
              mine.add(filedQty);
              filedQty.setBounds(120, 370, 220, 21);
              mine.add(labelQty);
              labelQty.setBounds(16, 370, 134, 21);
              mine.add(fieldOrderDate);
              fieldOrderDate.setBounds(120, 430, 220, 21);
              fieldOrderDate.setEditable(false);
              mine.add(labelOrderDate);
              labelOrderDate.setBounds(16, 430, 134, 21);
              mine.add(comboDeliveryOptions);
              comboDeliveryOptions.setBounds(120, 460, 220, 21);
              mine.add(labelDeliveryOptions);
              labelDeliveryOptions.setBounds(16, 460, 134, 21);
              mine.add(fieldDeliveryDate);
              fieldDeliveryDate.setBounds(120, 490, 220, 21);
              fieldDeliveryDate.setEditable(false);
              mine.add(labelDeliveryDate);
              labelDeliveryDate.setBounds(16, 490, 134, 21);
              mine.add(fieldTotalPrice);
              fieldTotalPrice.setBounds(120, 520, 220, 21);
              fieldTotalPrice.setEditable(false);
              mine.add(labelTotalPrice);
              labelTotalPrice.setBounds(16, 520, 134, 21);
              mine.add(bSave);
              bSave.setBounds(16, 550, 100, 21);
              mine.add(bLoad);
              bLoad.setBounds(130, 550, 100, 21);
              mine.add(bExit);
              bExit.setBounds(250, 550, 100, 21);
              this.setContentPane(mine);
              this.pack();
              this.setTitle("Order Form);
              Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
              setSize(380, 630);
         public void chooseProductName(){
              if ((ct).equals(ct[0])){
                   comboPName = new JComboBox(cn);
              }else if (ct.equals(ct[1])){
                   comboPName = new JComboBox(pn);
              }else if (ct.equals(ct[2])){
                   comboPName = new JComboBox(mn);
         public void comboPNameChanged(ItemEvent event){
              if (event.getStateChange() == ItemEvent.SELECTED);
         private void setTestData() {
              orderArray.add(makeOrder("1-100-1000"));
              orderArray.add(makeOrder("1-100-1001"));
              orderArray.add(makeOrder("1-100-1002"));
              for (Order temp : orderArray) {
                   if (temp.getOrder().equals("1-100-1000")) {
                        temp.setfName("a");
                        temp.setlName("s");
                        temp.setstreet("4802 Alaska Ave");
                        temp.setcity("Cypress");
                        temp.setzip("90630");
         private Order makeOrder(String order) {
              Order temp = new Order(order);
              return temp;
         private void loadDate(){
         String fn;
         JFileChooser fc = new JFileChooser();
         if(fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){
              fn = fc.getSelectedFile().getName();
         if( !new File("objdata.dat").exist() ) {
              setTestData();
              for (Order temp: orderArray());
                   lmodel.addElement(temp.getOrder());)
         class Order {
              String orderid, fName, lName, street, city, state, zip;
              public Order(String order) {
                   orderid = order;
              public String getOrder() {
                   return orderid;
              public String getfName() {
                   return fName;
              public void setfName(String fName) {
                   this.fName = fName;
              public String getlName() {
                   return lName;
              public void setlName(String lName) {
                   this.lName = lName;
              public String getstreet() {
                   return street;
              public void setstreet(String street) {
                   this.street = street;
              public String getcity() {
                   return city;
              public void setcity(String city) {
                   this.city = city;
              public String getzip() {
                   return zip;
              public void setzip(String zip) {
                   this.zip = zip;
         private class TextFieldHandler implements ActionListener {
              public void actionPerformed(ActionEvent event) {
                   String string = " ";
                   if (event.getSource() == fieldState)
                        string = String.format("%s " + "is not correct form.", event
                                  .getActionCommand());
                   JOptionPane.showMessageDialog(null, string);
                   // System.out.println("Please use two letter abbreviation.");
    public class Main {
         public static void main(String[] args) {
              JFrame window = new orderFormGUI();
              window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              window.setVisible(true);
    {code}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Cross-posted:
    http://forum.java.sun.com/thread.jspa?messageID=10019967

  • 2 Questions: JSF & PDF and Charts?

    Is it possible to create a dynamic PDF file and send this to the client?
    I've only found some information (FOP and iText) for servlets :-/
    And the other question: How can I create a chart in JSF? Is there already a free component? And is it possible to display that chart on the PDF?

    Can't help you with the PDF question. But I have a little bit of experience with chart rendering.
    The chart example under in samples/components/web/chart.jsp illustrates one way to do charts.
    You can also do it via JFreeChart
    http://www.jfree.org/jfreechart/index.html
    There's no JSF tags in JFreeChart but following the chart.jsp example tags it
    was realitively easy to change that example to work with JFreeChart running
    the Servlet model.
    See
    http://homepage.ntlworld.com/richard_c_atkinson/jfreechart/
    Mine version is to custom to give it to you as an example.
    - Kristina

  • Dynamic region bugs and bad documentation

    I cannot get the second taskflow to behave correctly in a dynamic region.
    Here's my scenario:
    In the pursuit of resusablilty, I have two taskflows that are coming from ADF Library Jars into a master application.
    Both taskflows have their own associated application modules, which appear as data controls in the master project.
    Following the instructions in the Fusion Developers guide, I create a dynamic region and dynamic links.
    After swapping to the second task flow, when I click on a different table, I get an error that a target is unreachable:
    Target Unreachable, 'RoleId' returned null
    For more information, please see the server's error log for an entry
    beginning with: Server Exception during PPR, #1{code}
    I posted the problem originally under this thread: [dynamic region errors
    and got a response that I didn't understand -- both taskflows have data-control-scope = shared.
    In contrast to the problem using a dynamic region, if I build a different page in the master application and use each taskflow as *separate* regions (via a tabbed panel), they work fine.
    So it doesn't seem there is anything wrong with the taskflows per se, but rather something in the dynamic region switching mechanism that is broken.
    I'd appreciate hearing from anyone who has had similar problems or anyone who knows of a solution.
    In exasperation, lili5058
    UPDATE
    Sorry for the earlier rant. I figured out the reason for the odd behavior and it has to do with the code generated by the wizard. This code isn't so much wrong as it is short-sighted. Here's the code generated for the managed bean by the wizards for creating a dynamic region and dynamic link that is put into *backingBeanScope*:
    {code:java}package view.beans;
    public class DynamicRegionBean {
    private String taskFlowId = "/WEB-INF/taskflow1.xml#first-taskflow";
    public DynamicRegionBean() {
    public TaskFlowId getDynamicTaskFlowId() {
    return TaskFlowId.parse(taskFlowId);
    public String firstTaskflowtaskflow() {
    taskFlowId = "/WEB-INF/taskflow1.xml#first-taskflow
    return null;
    public String secondTaskflowtaskflow() {
    taskFlowId = "/WEB-INF/taskflow2.xml#second-taskflow";
    return null;
    }{code}
    The user is taken to the second task flow by clicking the link that executes the secondTaskflowtaskflow() handler, however, any subsequent requests take the user back to the first taskflow, i.e., the one assigned to the private instance variable, since that's how the wizard wrote the code. This explains why the table on the second taskflow displayed "Fetching Data . . .". The table's content delivery was set to lazy, so when the browser issued the AJAX request to get the data for the table, the task flow switched back to the first one and thus making the data unavailable. Changing the the content delivery attribute value to immediate, brings up the data initially, but any subsequent work on that taskflow routed the user right back to the first taskflow.
    I ended up fixing the problem by adding the TaskFlowId (data type) to the pageFlowScope map, so it would be remembered across requests until the user deliberately requests a different taskflow.
    Edited by: lili5058 on Feb 7, 2009 12:56 PM
    Edited by: lili5058 on Feb 7, 2009 5:06 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Hi,
    chances are you are hitting a bug. But this is hard to say from here. If you want, we can further track the issue down. I suggest you exclude the use of ADF libraries and verify that the scenario works if the two taskflows work in the mentioned scenario of they are both defined in the project itself. If this works then it seems like a bug that should be filed. Can you verify this ?
    Frank

  • Excel format difference in GUI and NWBC

    Hi Experts,
    We have implemented Launchpad with different SAP T-codes. For IW38 tcode.
    1. If we execute in GUI and tried to save record in excel. Format is perfect with coloring of columns, without any empty rows or columns.
    2. But when we use the same T-code in NWBC, the excel being downloaded doesnt contain cloring and it shows 1 empty colomn and 1 empty row.
      End user needs same excel sheet as in GUI. Please help to solve this. Version is NWBC HTML 3.5.
    Regards,
    Dhanu.

    Hi Shrishti,
    I am sorry. I should have explained you the steps. Actually, after executing CJE2. You need to double click on report group 12KST1A for S_ALR_87013558 and 12KST1B for S_ALR_87013557.
    Now, for both the report groups. Just click on the Output type tab. I am sure that for S_ALR_87013558 report, middle one radio button must have been selected in your case. Just change it to Graphical Report Output OR it would be much better if you just make it available on selection screen by clicking on check button at the bottom.
    have a look at the screen shot.
    Just do the changes and revert back.
    Regards,
    Amit Rajoria

  • How to create dynamic View Object and Dynamic Table

    Dear ll
    I want to create a dynamic view object and display the output in a dynamic table on the page.
    I am using Jdeveloper 12c "Studio Edition Version 12.1.2.0.0"
    This what I did:
    1- I created a read only view object with this query "Select sysdate from dual"
    2- I added this View object to the application module
    3- I created a new method that change the query of this View object at runtime
        public void changeVoQuery(String dbViewName) {
            String sqlstm = "Select * From " + dbViewName;
            ViewObject dynamicVo = this.findViewObject("DynamicVo");
            if (dynamicVo != null) {
                dynamicVo.remove();
            dynamicVo = this.createViewObjectFromQueryStmt("DynamicVo", sqlstm);
            dynamicVo.executeQuery();
    4- I run the application module for testing the method and I passed "Scott.Emp" as a parameter and the result was Success
    5- Now I want to show the result of the view on the page, so I draged and dropped the method from the data control as a parameter form
    6- I dragged and dropped the view Object "DynamicVo" as a table and I choose "generate Column Dynamically at runtime". This is the page source
    <af:panelHeader text="#{viewcontrollerBundle.SELECT_DOCUMTN_TYPE}" id="ph1">
            <af:panelFormLayout id="pfl1">
                <af:inputText value="#{bindings.dbViewName.inputValue}" label="#{bindings.dbViewName.hints.label}"
                              required="#{bindings.dbViewName.hints.mandatory}"
                              columns="#{bindings.dbViewName.hints.displayWidth}"
                              maximumLength="#{bindings.dbViewName.hints.precision}"
                              shortDesc="#{bindings.dbViewName.hints.tooltip}" id="it1">
                    <f:validator binding="#{bindings.dbViewName.validator}"/>
                </af:inputText>
                <af:button actionListener="#{bindings.changeVoQuery.execute}" text="changeVoQuery"
                           disabled="#{!bindings.changeVoQuery.enabled}" id="b1"/>
            </af:panelFormLayout>
        </af:panelHeader>
        <af:table value="#{bindings.DynamicVo.collectionModel}" var="row" rows="#{bindings.DynamicVo.rangeSize}"
                  emptyText="#{bindings.DynamicVo.viewable ? 'No data to display.' : 'Access Denied.'}"
                  rowBandingInterval="0" selectedRowKeys="#{bindings.DynamicVo.collectionModel.selectedRow}"
                  selectionListener="#{bindings.DynamicVo.collectionModel.makeCurrent}" rowSelection="single"
                  fetchSize="#{bindings.DynamicVo.rangeSize}" filterModel="#{bindings.DynamicVoQuery.queryDescriptor}"
                  queryListener="#{bindings.DynamicVoQuery.processQuery}" filterVisible="true" varStatus="vs" id="t1"
                  partialTriggers="::b1">
            <af:iterator id="i1" value="#{bindings.DynamicVo.attributesModel.attributes}" var="column">
                <af:column headerText="#{column.label}" sortProperty="#{column.name}" sortable="true" filterable="true"
                           id="c1">
                    <af:dynamicComponent id="d1" attributeModel="#{column}"
                                         value="#{row.bindings[column.name].inputValue}"/>
                </af:column>
            </af:iterator>
        </af:table>
    when I run the page this error is occured
    <Nov 13, 2013 2:51:58 PM AST> <Error> <oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter> <BEA-000000> <ADF_FACES-60096:Server Exception during PPR, #1
    javax.el.ELException: java.lang.NullPointerException
    Caused By: java.lang.NullPointerException
    Can any body help me please
    thanks

    Have you seen Shay's video https://blogs.oracle.com/shay/entry/adf_faces_dynamic_tags_-_for_a
    All you have to do is to use the dynamic table to get your result.
    Timo

  • Since upgrade to IOS 10.9 and associated iTunes 11.1.3, I can no longer WiFi sync iPad (IOS 7.0.3) nor iPhone (IOS 6.1.3).  USB connection is required.  Formerly I could sync both devices without locating them physically (not necessarily charging).

    Since upgrade to OS 10.9 and associated iTunes 11.1.3, I can no longer WiFi sync iPad (IOS 7.0.3) nor iPhone (IOS 6.1.3).  USB connection is required.  Formerly I could sync both devices without locating them physically (not necessarily charging).  I have restarted both devices, turned off and on "Sync with this iPad/iPhone over WIFI" and restarted WiFi.  WiFi is operating (iPad has no SIM).  What next?

    I'm also affected by this bug in exactly the same way as you.
    Some users have had success by closing iTunes, enetering (on OS 10.9) settings --> network --> edit locations, then create a new location with the same wifi/network settings. Then restarting iTunes.
    Others have had some success by editing settings --> iCloud --> de-selecting keychain
    neither of these fixes have worked for me.
    It appears that the iPad can "see" iTunes running on my iMac because when I open settings --> general --> 'iTunes wifi sync', "sync now" is greyed out if iTunes is not running. When iTunes is started, "sync now" is enabled but just doesn't work. Nor does the iPad appear in iTunes.

  • Radio button and associated functionality is not working!

    Hi Pros,
    I am facing the following problem:
    1.I have an interactive PDF created in Acrobat 9 Pro.
    2.PDF have few radio buttons, each radio buttons ahave assigned valus(eg: 1,2,3 etc)
    3.I have a text box in which the value of selected radio button is displayed.
    4.PDF is working fine on my machine.
    5.Client is having Internet Explorer version 7.0.5 and Adobe reader:8.2.6
    6.The radio buttons and associated functionality is not working on client's machine.
    7.The text box shows '0' even if we a radio button with value 2 or 1 is selected.
    What will be the problem? How can I fix this issue?
    Please help.

    Thanks alot for helping me on this.
    Thanks to u also ~graffiti

  • Dynamic File Name and File size

    Hi All
    I need some help in calling Dynamic File Name and Dynamic File size of a file in my adapter Module.
    Could you please provided some help on the same?
    I have tried the same through UDF it is working. Could anyone provide me the steps for the same
    Regards
    Abhishek Mahajan

    Hi,
    You can use the already available adapter module "DynamicConfigurationBean". Have this adapter module at the top of the module list in CC.
    Have the parameter value as insert http://sap.com/xi/XI/System/File FileName and http://sap.com/xi/XI/System/File SourceFileSize (corresponding to the key names)
    For more info:
    http://help.sap.com/saphelp_nw04/helpdata/en/45/da2239feb22e98e10000000a155369/frameset.htm
    There is also a SAP note available for the same....dont remember the note number:(.....
    Regards,
    Abhishek.

  • After recent upgrade to Yosemite on Macbook air bluetooth audio cuts out and associated video stops with audio. Likewise with airplay and Apple TV. I have deleted all my saved wifi connections and restarted numerous times. I do not expect a resolutio

    After recent upgrade to Yosemite on Macbook air bluetooth audio cuts out and associated video stops with audio. Likewise with airplay and Apple TV. I have deleted all my saved wifi connections and restarted numerous times. I do not expect a resolution from the community, but hope to get the attention of Apple engineers. If you are having same problems or have a miracle cure I am all ears.

    May start my own thread, but I'm having similar issues.
    I've been using an old iMac (running 10.7.5) and Apple TV for years with no issues. Last week I bought a new Macbook Pro running Yosemite and have had audio issues multiple times. The weird thing is that sometimes it works flawlessly, other times (like now) I spend half an hour just trying to get a song to play.
    My issues are: When I got to "computers" in Apple TV to stream my music, my music is sometimes chopper or intermittent, and I seen to know when it's going to happen based on the status wheel just before it plays. When I choose a song, the status wheel will spin for an unusually long time, usually an indicator that the audio is either not going to work, or stutter.
    When it does finally pull up a song, the playhead sits at the beginning of the song for a good 3-5 seconds before actually playing. Then, when it starts playing, it's all downhill. It will play a few seconds, drop out, play a few more seconds, drop out, and then ultimately the playhead will keep moving across the song as if it's playing, but there's no audio.
    Again, this is a new phenomenon never experienced by me. I've tried everything I could think of, some of them all at once:
    • restart Apple TV
    • restart Macbook Pro
    • quite iTunes/open
    • turn off Home Sharing on iTunes then reconnect it
    • unplugging and cycling both my modem and router
    None of these have alleviated the problem.
    The odd thing is, like this morning, the audio started up perfectly and never gave me any issues. It wasn't until later in the day that it started. Perhaps after the macbook pro had been put to sleep? Not sure.
    Regardless, this is an annoying trait, one that's new to me and my system (as stated, worked flawlessly until my new purchase), and is 100% limited to either a) the macbook pro b) Yosemite or c) both of them.

  • Unable to print main window and associated secondary windows in next page

    Hi All,
    iam print line items values in first page by using main window (table) and associated  terms &condition in second window(template).
    But i want terms & condition to printed in other page.I tried to create COMMAND to manually trigger second page but it doest work.
    Kindly suggest.
    Attached is snap shot of current output(Shaded region are space of dat window).Also attached is overlapping of main and secondary windows.
    Since i need to increase the above template sizes i shifted main window and other 2 secondary window downwards so i wanted them to print in next page.

    Hi abhijeet,
    Add Programming lines before Command before loop statement,
    In that Count the itab using describe table.
    Add condition if count EQ Sy-tabix.
    pass to command line.
    Try this,
    Regards,
    Venkat.

  • Adobe Reader XI - dynamic PDF Form and the E-Mail Dialog

    Hi Community,
    I have a dynamic PDF Form and we use the E-Mail function to save the XML-Data to local harddrive. That works until Adobe Acrobat Reader 10.1.2. But with the Adobe Reader XI (11.0.4) the E-Mail Dialog has changed so I am One is forced to send the XML file with Outlook or the internal mailer and has no option to save the file locally.
    Does anyone know a workaround or something similar. The Live Cycle server with PDF extension is too expensive for our small project.
    E-Mail Dialog (10.1.2)
    If you choose Internet-E-Mail you get a Save-As File Dialog
    E-Mail Dialog (11.0.4)
    There is no way to save the XML-Data to local Harddrive.

    Hi Pat,
    Are you using Adobe Reader XI? And not Acrobat. It does not ask me to save the form if there are unsaved changes.
    I have used previous versions of reader for saving this form data and it did allow me to save it with ctrl+s. And those versions did prompt me to save the changes before closing.
    I guess I should not have updated the reader.

  • PopUp my GUI and bring it to front

        Hello,
    i have a GUI and want du bring a SubVI-GUI to the front, if special RS232 get in. Is it
    possible, that it popup also when I'm in Word or Excel at this moment?
    Any ideas?
    Thanks, Simon Wieser

    Hi Simon,
    look for the lvwutil32-library. It contains a lot of functions on window handling, also your needed "move window to top"!
    Using Google "lvwutil32 download" brings up this in the first place!
    Searching the NI website shows this!
    Message Edited by GerdW on 01-21-2008 10:00 AM
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Upload FCP Projects and Associated Media to a Production

    Hi,
    This sounds very silly but I`m really disappointed and can`t figured out how to do it.
    Is there a way to upload a *.fcp project and associate NOT ONLY the project but ALSO the Media that this project contains?
    In other words, if I upload a FCP project and choose a Production to be associated the production is created but ONLY the FCP Project Asset is inside this production, not the whole medias.
    A scan production (for the FCP file) also doesn`t work.
    What works is uploading all media and associating to a production or do a Scan production into a directory with medias. But my FCP and Medias are in distinct places and a thought that FCP project could help me cleaning the Media directories (by uploading the project and after all medias are catalogued archiving them, so the rest in directories are useless).
    The work around would be:
    1- to do a Scan Production in the Media files and after that uploading a FCP project associating with that Production, but as I`ve said I can`t just scan the entire Media as it`s very messy and with this way I could be guaranteed that my important assets are catalogued (and archived) and the left ones in the messy directories could be quick filtered to exclusion and cleaning without worries.
    2- to upload a FCP and associate to a production and after that manually move fcp associated assets to this production (this almost impossible because the limitation of 200 assets per page).
    Can some one propose a better way?
    Regards

    No, you are correct, but unfortunately these are Elements (inside the FCP project) and not real Assets. So for instance, if you fill in the annotations on the Asset it will not show on the Elements (inside FCP projects) and vice-versa. You can`t do a lot of other things as well with elements as you can with assets.
    So I would like to have a Production with all media created automatically when a FCP project is uploaded (or scanned).
    Regards

Maybe you are looking for

  • I bought my mom an iPod and downloaded songs onto it, but now...

    they don't show on HER computer (the downloaded or purchased ones). They don't show up on the music list, and the photos don't show up, and she can't sync it. Do I need to authorize her on my iTunes, or should she set everything back to factory setti

  • Webstart version-based download error

    Hi guys, Are there known bugs in Sun's JnlpDownServlet? After installing the JNLP developer pack and configuring the directories in how Sun suggested in http://java.sun.com/products/javawebstart/docs/downloadservletguide.html (but using exploded dire

  • Conditions and Custom SQL in Webi SDK

    I'm porting an application written using REBean in BusinessObjects 3.1 to use the new Webi RESTful SDK.  I'm currently working with BI 4.1 SP4. There are two things that I could do in easily REBean that I am having a hard time figuring out in the new

  • Storing Multiple Values in Workflow Attribute

    Hi, I got the requirement where i want to store multiple values into Workflow Attribute. Is there any way to accomplish this. Thanks J

  • Can't "archive and install" or reinstall Snow Leopard and other problems

    My laptop has been doing some funny things lately. I began noticing it mostly with video content. Especially when playing a DVD. The audio comes across as choppy. The video gets choppy. Now I have noticed that the mouse (track pad) seems jumpy. The a