Usage of SAPBEX setVariables method?

Dear all,
I have a question regarding the usage of the SAPBEXsetVariables method which is part of the SAPBEX VBA-API.
I want to invoke a BEx Workbook from a VBA-Macro. The query, embedded in this workbook, is
using variables. (Some of the variables are further being processed by user exit, once a value for these variables
has been set.)
When opening the Workbook from my VBA-Macro, I don't want the variable screen to pop up. The variables should be set automatically during runtime, e.g. read from a spreadsheet. No user interaction should be necessary (reason: I need to batch process some 100 variables, that means, my workbook is being invoked a 100 times).
The method SAPBEXSetFilterValue does not work in this scenario, because of the above mentioned variable processing by user exit.
I thought, the SAPBEXsetVariables(varValues As Range) method might be the solution. Unfortunately, I couldn't find out, how to handle this method.
I understand, that the method is reading the variables and their respective values from an Excel Range object.
But I have no idea how variables and values need to be arranged within the range object.
Any help on this topic? Am I on the right track at all?
Thanks in advance.
Kind Regards,
Yogen Weinreich

Hi Pete,
> I don't know if you are still following this thread,
> but I came back to this problem a few days ago and I
> now have the solution to the SAPBEXsetVariables
> method.
Yes, I am still following this thread as well as other threads on SAPBEX VBA in this forum. That's how I came across the thread named <i>suppress variable-entry-window (SAP-Exit)</i> which is dealing with the same problem. The answer you are giving there regarding those two hidden repo sheets is rather impressing and was helpful to me in solving our problem.
I our solution, we are actually not using the setVariables() method at all. Instead, we are directly writing the
variable values in the respective cells of column GE/187 on the hidden "SABBEXqueries" sheet. This works fine for us.
I'm facing a different problem though: We have been developing and running our solution from a local PC. The
problem is, that we need to upload the BEx-Workbook  containing the VBA-Code to the SAP server. But there
seems to be a naming conflict with the SAPBEX library, which needs to be referenced by the VBA modules we developed and a module also named SAPBEX, which is containing the SAPBEXonRefresh() event/procedure.
Whenever we want to insert the SAPBEX library (in the menu bar of the VBA editor select Extras - References) a message window pops up, saying that there is a naming conflict between this library and an existing project or module. If I delete the SAPBEX module (the one containing the above mentioned event) I am able to insert the SAPBEX library. But when I save this very workbook to the SAP server, close it and try to open it again, I get an error message saying something about a "Runtimerror '5':
Invalid procedure call or invalid argument". I guess, it's because of the SAPBEX module I deleted.
Any suggestions on this one?
> I like it better than the alternative solution that I
> was suggesting last month.
> So, when you're ready to have a go at it again, I can
> give you the details.
Sure, I'd definitely be interested. Is it the one you gave to Armin Weh in this thread?
BTW, since you were asking, we are using Release 3.5.
Regards,
Yogen
P.S. Pete, as you can see, there is still interest in this subject and your help is really being appreciated.
I haven't really figured out, how the reward point systems works in this forum, but you have definitely earned yours.

Similar Messages

  • XmlBean usage and the clone() method.

    I'm trying to use the XmlBean class as the superclass for all our business objects and we have an issue with the usage of the clone method.
    Basically our business objects all throw the CloneNotSupportedException (as per Object.clone() signature) while XmlBean.clone() does not throw it. Introducing XmlBean into the hierarchy will cause quite a bit of effort to change clone() signatures for a lot of classes. So, we were wondering if there is any alternative to subclassing XmlBean while at the same time using the efficient caching that it gives us. I guess I'm looking for a "composition" approach rathe than an "inheritance" approach that might work.
    Has anyone faced this issue and is there any other workaround?
    Thanks,
    --Das                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    The reason that I asked is that the exception is "old baggage" from a design flaw in the original JDK 1.0 .. it is a checked exception that can never happen on an object that implements Cloneable, so if you don't throw it, and you implement Cloneable, then it won't be thrown on clone().
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters

  • Usage of SAPBEX.XLA!SAPBEXSetFilterValue with hierarchies

    I am trying to set a filter value for my query automatically with vba using the Run("SAPBEX.XLA!SAPBEXSetFilterValue) function. The Filter Value i want to select should be selected as a node from a certain characteristic hierarchy therefore i am runnign the following command:
    run("SAPBEX.xla!SABBEXSetFilterValue", myValue, myHierarchy, "B3")
    Unfortunately this doesnt work. The result is that no filter value is set at all.
    Could anyone help me out with this?

    Hi Suresh,
    Sorry to keep correcting myself.  Now I have been able to recreate the problem.  My first post was correct ... at least in part.  My second post is also correct (I think), as far as I can tell there is no function named "repoNewQuery".
    I did recall seeing this error before.  And it did occur for me because my SAP GUI was not correctly loaded.  So, you might still want to check your installation as described in my first posting, about 3 hours ago.
    If my theory is correct, the title of the BW toolbar you are seeing is "xxxSAPBEXxxx" instead of the usual title of "Business Explorer" (at least the English version; it might have a different title in other languages).
    Here is my theory ... when the BEx Analyzer (sapbex.xla) is loaded, it loads a toolbar named "xxxSAPBEXxxx".  Some sort of Auto_Open macro also runs, which displays the splash screen and fixes the toolbar.  Part of fixing the toolbar is changing its name and re-mapping the OnAction macro for the buttons on the toolbar.
    If something prevents this Auto_Open macro from running (in my case it was incorrect versions of files, in your case because you have disabled Auto_Open macros somehow?), then the toolbar is not renamed and the buttons are not mapped correctly.
    I have no idea why changing a macro setting in Word would affect an Auto_Open macro in Excel.  But, I will be very interested in reading what you find out.
    - Pete

  • Why global var can be initialized with a static method and not by other static global var declared after its usage

    Take this:
    class test
    static int i=j;
    static int j=10;
    this will give illegal forward reference ....
    but this will compile successfully ..
    class test
    static int i=test1();
    static test1()
    return 20;
    plz assume we have main method in both cases ..
    java would be loading all static members first and would be assigning default values .. and then will be running all the initializers from to bottom ..
    Why second case is a compile success and not first .. as in second also test1 method is declared after its usage ..
    Plz help.
    Thanks
    Abhishek Roshan

    Why second case is a compile success and not first .. as in second also test1 method is declared after its usage ..
    Because the implementors of Java intentionally chose to do it that way.
    There are TWO stages to the process: preparation (which occurs first) and initialization.
    See the Java Language Spec section 12.4.1 'When Initialization Occurs
    The intent is that a class or interface type has a set of initializers that put it in a consistent state, and that this state is the first state that is observed by other classes. The static initializers and class variable initializers are executed in textual order, and may not refer to class variables declared in the class whose declarations appear textually after the use, even though these class variables are in scope (§8.3.2.3). This restriction is designed to detect, at compile time, most circular or otherwise malformed initializations.
    Note the clause beginning 'may not refer to class variables'. And the authors give the reason for that restriction in the last sentence: detect circular initializations.
    Then if you check that referenced section 8.3.2.3 you will find this
    http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.3.2.3
    8.3.2.3. Restrictions on the use of Fields during Initialization
    The declaration of a member needs to appear textually before it is used only if the member is an instance (respectively static) field of a class or interface C and all of the following conditions hold:
      The usage occurs in an instance (respectively static) variable initializer of C or in an instance (respectively static) initializer of C.
      The usage is not on the left hand side of an assignment.
      The usage is via a simple name.
      C is the innermost class or interface enclosing the usage.
    When a method is used (your example 2) no circular initialization can occur because methods are not 'initialized'.

  • Use of an overriden method in the constructor

    Hi.
    I have a base class A whith the methode f() and
    a class B which inherits from A and overrides de
    method f().
    I use f() in the constructor of A.
    My question is: in the A constructor, how to avoid the usage of the overriden method. I need
    to call A.f() not B.f().
    Following is a piece of code desmonstrating the problem:
    class A {
    String s;
    public A(String s) {
    System.out.println(">>>> Begin constructor A ... ");
    f(s); // How to call call A:f() instead of the overriden B.f()
    System.out.println(">>>> End constructor A .");
    void f(String s) {
    System.out.println("Entering A:f() ... ");
    this.s = s;
    public class B extends A {
    public B(String s) { super(s); }
    void f(String s) {
    System.out.println("Entering B:f() ... ");
    super.f(s);
    public static void main(String[] args) {
    B b = new B("Hello world !\n");
    b.f("Bonjour le monde !\n");
    The result I want is :
    Begin constructor A ...Entering A:f() ...
    End constructor A .Entering B:f() ...
    Entering A:f() ...
    but I can only have:
    Begin constructor A ...Entering B:f() ...
    Entering A:f() ...
    End constructor A .Entering B:f() ...
    Entering A:f() ...
    Thanks in advance, Christophe.

    You cannot do that. A good work around is to implement a private version of the method, then call the private version in the public method.
    Here is how I would implement this with your classes (I changed f() to foo())
    class A {
        String s;
        public A(String s) {
            System.out.println(">>>> Begin constructor A ... ");
            fooImpl(s); // Call the private implementation method
            System.out.println(">>>> End constructor A .");
        void foo(String s) {
            fooImpl(s);
        private void fooImpl(String s) {
            System.out.println("Entering A:f() ... ");
            this.s = s;
    public class B extends A {
        public B(String s) { super(s); }
        void foo(String s) {
            System.out.println("Entering B:f() ... ");
            super.foo(s);
        public static void main(String[] args) {
            B b = new B("Hello world !\n");
            b.foo("Bonjour le monde !\n");
    }

  • CCMS Alert SAP Buffer  buffer storage usage exceeds threshold

    Hi,
    We are seeing the CCMS alert for our PRD system as noted below.  This is not yet impacting major performance issues yet and we
    would like to take prior actions before performance becomes bad. The buffers looks fine in ST02.  Please advise on what actions to take?
    System Name RTP Segment Name "SAP_CCMS_AppServerName_SID_XX" conextxt
    name "SAP_CCMS_AppServerName_SID_XX" object "Screen' attribute name
    'SpaceUsed' Message is '99 % > 98 % (15 Min). SAP Buffer: buffer storage
    usage exceeds threshold'

    The method responsible for this alert is  CCMS_BUFFER_COLLECT that run the report RSDSBUFF.
    RZ20
    SAP CCMS Monitor Templates
    Buffers
    Program
    SpaceUsed
    The analysis method is running ST02 transaction. So, I believe that this MTE is checking the abap buffers!
    Clébio

  • Bind Component Usage

    Hi Experts,
    Root Componet  :ICCMP_BT_COM
    Child Componet : ICCMP_BTITEM
    Child of (ICCMP_BTITEM) componet : ICCMP_BT_PCONFG
    My Requirement is when i click the "ICCMP_BTITEM" view list value then it has to call "ICCMP_BT_PCONFG". Actually "ICCMP_BTITEM" is connectdd to ICCMP_BT_COM using COmp Usage.
    My Requirement is to add Product Config field in Item List. i have done this chage. After when i click the field value then it has to call another Componet.
    My Issue is item list already a separate componet and here i need to call another component (Product Config Component) using component usage. Now i have created binding for the "Product Config" component in item list "WD_USAGE_Init" method..
    BUt in run time only root Controller Method is triggering. Kindly Suggest where to bind these components.
    Kidly Suggest how to do this..
    Thank you
    Cha

    Hi Senthil,
    Thank you for your information on both place.
    "You can set and get the collection while you navigate via button clicks / navigations.
    Did you identify the BOL relation between the context nodes of ICCMP_BTITEM & Child componet ICCMP_BT_PCONFG.
    You can defenitely pass these collection via your O/P & get the same in the calling components I/P."
    I am new to this, can you please send the code for this.
    Actual Reuirment
    To mimic the standard order item  "Product configuration" field  functionallity into credit memo item.
    Component Details
    Standard order Component : ICCMP_BT_SLO/Slo1cart (when cliick "Product configuration" field value then has to call the product config view )
    Compliant Componet : ICCMP_BT_COM (Here item list view is (Item) which component usage view)
    Work DOne upto now
    I have added field in "ICCMP_BTITEM" and wrote the code in get , get_p & get_m methods . Now able to see the field & get the value in UI.
    As welll added Pconfig window in "ICCMP_BTITEM" component usage & created event handle method as well created. in run time event handle method is triggered. But not aware how to call the pconfig window and binding.
    Can please explain where else need to make changes & have to add code. Can you please share the code.
    Thank you,
    Cha

  • WDA Component Usage - used component's point of view

    Hi folks!
    Component Usage is a real nice feature of WDA. The using component knows exactly, when which other components are used.
    But what about the used component's point of view:
    How can a used component find out if it is currently running natively or as a used component and who is the using component?
    Alternatively: How can the using component hand over initialization information (parameter) to the used component the used component has access to in component controller method DOINIT?
    Background: In my scenario the used component has to "turn right" when it is used by component A and it has to "turn left" when it is used by component B and it has to go straight forward when it is running in "native" mode..
    Thanx in advance for any hint!
    Kind Regards,
    Volker

    hI Volker  
        You can implement the component usage by implementing interface method or interface node.
    1. Interface method :-
       Here the using component can access methods of used component.
    So in your used component you have three method for 1. TURN RIGHT 2. TURN LEFT 3. STRAIGHT
    so from comp A you call  TURN RIGHT
    From component B you can call TURN LEFT.
    Make Straight default which can run in  "native" mode..
    That is if you want to implement from using component's view.
    2.You can take a node in your used component as interface node which must be populated by values from other component.
    From your using component you can pass the required value .
    Now in your used componentcontroller DOINIT method call that interface node and in the make some condition according to the value it get from using component.
    But I don't think in this it can run in "native" mode.
    However i dont have that much idea about whether the in used component we can keep any log like where it has been used and how.
    Thanks & Regards,
    Monishankar C

  • Azure Billing Usage Extract File Query

    Hi,
    Please help us on my queries.
    Is there any way to uniquely identify the VM in Azure Usage files across all the subscriptions (downloaded from
    ea.windowsazure.com)
    Also in the usage files, is there any option to get usage details of all the resources(compute, storage. anything is used by VM) for one particular VM. Basically is it possible to group all the resources based on VMName/vmid ?

    Hi Prabhu,
    Currently, we can't direct get particular unique id cost included the storage. Alternative approach, If you want to get particular resource group cost, you could calculate them cost by their usage. For example , you could calculate the running
    time of VM and the usage of storage. And then you can generated the billing report to your customer. Also, you could vote this Billing API feature (http://feedback.azure.com/forums/170030-billing/suggestions/1143971-billing-usage-api).
    Another method is that you can create subscription for each customer, every subscription could show the billing information details .
    Regards,
    Will
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Problem with animated .gif

    I have a problem with animated gifs. So if I set a animated gif as background and a button is over it as in the example below, then everytime the animation goes on the button disappears until I go over it with the mouse. So what can I do to solve this?
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    public class FrameBackImage {
              public static void main(String args []){
                   final JFrame frame = new JFrame("Frame");
                   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   frame.setSize(400, 400);
                   frame.setResizable(false);
                   frame.setLayout(null);
                   java.net.URL imageURL = ImageApp.class.getResource("animatedw.gif");
                   ImageIcon imageIcon = new ImageIcon(imageURL);
                 final JLabel label = new JLabel(imageIcon);
                 label.setBounds(0,0 , 400, 400);
                 frame.getLayeredPane().add(label);
                 JButton button = new JButton ("Exit");
                 button.setBounds(200, 129, 60, 60);
                 button.setBackground(Color.black);
                 button.setForeground(Color.white);
                 frame.add(button);
                 button.addActionListener(
                 new ActionListener(){
                        public void actionPerformed(ActionEvent arg0) {
                             System.exit(0);
                 frame.validate();
                  frame.setVisible(true);
    }

    In the future, Swing related questions should be posted in the Swing forum.
    Your usage of the getLayeredPane() method is something I've never seen before, so I don't know if thats the problem or not.
    How to display a "background image" is asked all the time in the Swing forum. So to familiarize yourself with the forum you can try searching the Swing forum. Using the keywords I highlighted would be a good place to start.

  • How to prevent error message for material description in MDG material detail screen, when user click on check action

    Dear Experts,
    I have a requirement for making material description as non mandetory in change request view of mdg material screen.
    I have done that using field usage in get data method of feeder classes, but still message is displaying.
    This message 'Material description is mandatory is displaying with check action only, but not with save or submit after i anhance field property as not mandetory.
    How to prevent error message for material description in MDG material detail screen, when user click on check action.
    Thanks
    Sukumar

    Hello Sukumar
    In IMG activity "Configure Properties of Change Request Step", you can completely deactivate the reuse area checks (but will then loose all other checks of the backend business logic as well).
    You can also set the error severity of the checks from Error to Warning (per CR type, not per check).
    Or you provide a default value for the material description, e.g. by implementing the BAdI USMD_RULE_SERVICE.
    Regards, Ingo Bruß

  • Opening a view in f4 popup

    Hi Experts,
    My requiremnt is to get a view as a popup in a f4 help.
    Product search is a different view IN  ICCMP_PRODUCT/PROSEARCH.I want this window as a popup in my f4 help on product in camapiagn in CPGOE_ABLOCKS/OVELProducts.
    I have created a OP_Productsearch,now it is showing me a popup on that f4,but my problem is in that winodw (ICCMP_PRODUCT) when we search a products and select and click on Back Button, Its not showing any action.
    Again when i am traying to click on close it comes out of Camapaign .
    my code in OP is as follows:I have added ICCMP_PRODUCT as component usage in runtime repository.
    method op_productsearch.
    Added by wizard: Outbound plug 'PRODUCTSEARCH'
      data: lv_title  type string.
      lv_title = cl_bsp_runtime=>get_otr_text( alias = 'CRM_IC_APPL_UI_MARKETING/SEARCHFORPRODUCTS' ).
      if gv_popup is not bound.
        gv_popup = comp_controller->window_manager->create_popup( iv_interface_view_name = 'ProductWindow'
                                                                  iv_usage_name = 'CUproductsearchPOPup'
                                                                  iv_title = lv_title ).
      endif.
    OPEN THE POPUP
      gv_popup->set_window_height( 500 ).
      gv_popup->set_window_width( 600 ).
      gv_popup->set_on_close_event( iv_event_name = 'PRODSEARCH_POPUPCLOSED'  iv_view = me ).
      gv_popup->set_display_mode( if_bsp_wd_popup=>c_display_mode_surrounded ).
      gv_popup->open( iv_inbound_plug = 'TORESLIST' ).
    endmethod.                    "OP_PRODUCTSEARCH
    code i have written in EH_ONPRODSEARCH_POPUPCLOSED is as follows:
    method eh_onprodsearch_popupclosed.
      data:   lr_context_node    type ref to cl_bsp_wd_context_node,
              lr_current         type ref to if_bol_bo_property_access,
              lr_product_id      type string,
              lv_outbound_plug   type seocmpname,
              lv_value           type string,
              lr_cnode           type ref to cl_cpgoe_ab_ovelproducts_cn01.  "cl_cpgoe_ab_cucocampaign_impl
    get query result context node
      lr_context_node = gv_popup->get_context_node( iv_cnode_name = 'PRODRESULT' ).
      check lr_context_node is bound.
      lr_current = lr_context_node->collection_wrapper->get_current( ).
      check lr_current is bound.
    Check outbound plug
      lv_outbound_plug = gv_popup->get_fired_outbound_plug( ).
      check lv_outbound_plug = 'CLOSE_POPUP'.
    Retrieve Product ID
      lr_product_id = lr_current->get_property_as_string( 'PRODUCT_ID' ).
      check lr_product_id is not initial.
      lr_current = me->typed_context->products->collection_wrapper->get_current( ).
    set product id
      if lr_current is bound.
        lr_current->set_property( iv_attr_name = 'PRODUCT_ID' iv_value = lr_product_id ).
      endif.
    Clean up result
      lr_context_node->collection_wrapper->clear( ).
      try.
        catch cx_sy_ref_is_initial cx_sy_move_cast_error.
          return.
      endtry.
    endmethod.                    "EH_ONPRODSEARCH_POPUPCLOSED
    in this  lr_context_node in initial so it comes out of the method in first time itself.
    Do i need to  redefine EH_ONDONE and there i can write a code for that back button.
    I have seen many standard components for product search.
    I have gone through many threads but not able to figure out the solution.
    Can you all please help me in this??
    Thanks in advance.
    Best Regards,
    Sunita.

    Hi Masood ,
    Yes, i have already written that code.
    But when i click on back button  it is going inside IF but no history is maintained so it does not return any value in lv_no_back
    lv_history_access = me->view_manager->get_history_manager_display( ).
      lv_history_access->get_history( importing no_back = lv_no_back ).
      if lv_no_back = abap_false.
    so it comes out without any action.
    the code i have written for close popup is as folows:
    method eh_onprodsearch_popupclosed.
      data:   lr_context_node    type ref to cl_bsp_wd_context_node,
              lr_current         type ref to if_bol_bo_property_access,
              lr_product_id      type string,
              lv_outbound_plug   type seocmpname,
              lv_value           type string,
              lr_cnode           type ref to cl_cpgoe_ab_ovelproducts_cn01.  "cl_cpgoe_ab_cucocampaign_impl
    * Check outbound plug
      lv_outbound_plug = gv_popup->get_fired_outbound_plug( ).
      check lv_outbound_plug = 'CLOSE_POPUP'.
    * get query result context node
      lr_context_node = gv_popup->get_context_node( iv_cnode_name = 'PRODSELECTED' ).
      check lr_context_node is bound.
      lr_current = lr_context_node->collection_wrapper->get_current( ).
      check lr_current is bound.
    * Retrieve Product ID
      lr_product_id = lr_current->get_property_as_string( 'PRODUCT_ID' ).
      check lr_product_id is not initial.
      lr_current = me->typed_context->products->collection_wrapper->get_current( ).
    * set product id
      if lr_current is bound.
        lr_current->set_property( iv_attr_name = 'PRODUCT_ID' iv_value = lr_product_id ).
      endif.
    * Clean up result
      lr_context_node->collection_wrapper->clear( ).
      try.
        catch cx_sy_ref_is_initial cx_sy_move_cast_error.
          return.
      endtry.
    endmethod.                    "EH_ONPRODSEARCH_POPUPCLOSED
    Please help me in this.
    Thanks  a lot for your help.

  • Help required in F4IF_INT_TABLE_VALUE_REQUEST

    hi all,
    I am using F4IF_INT_TABLE_VALUE_REQUEST function for F4 list , below is the code im using,
      DATA : zmatnr TYPE zauvvselscr-matnr.
      DATA: w_choice TYPE sy-tabix.
      DATA: BEGIN OF i_values OCCURS 0,
                werks           TYPE zauvvselscr-werks,
                matnr           TYPE zauvvselscr-matnr,
                maktx           TYPE zauvvselscr-maktx,
                j_3asean        TYPE zauvvselscr-j_3asean,
                /afs/collection TYPE zauvvselscr-/afs/collection,
                mvgr5           TYPE zauvvselscr-mvgr5,
                stock           TYPE zauvvselscr-clabs,
            END OF i_values.
      DATA: screen_values TYPE TABLE OF dynpread ,
            screen_value   LIKE  LINE OF screen_values.
      DATA: lv_srch_str TYPE c LENGTH 20.
      DATA: it_ret  LIKE ddshretval OCCURS 0 WITH HEADER LINE.
      DATA: BEGIN OF fieldtab_rt OCCURS 20.
              INCLUDE STRUCTURE dfies. "field for ddif_fieldinfo_get
      DATA: END OF fieldtab_rt.
      DATA: dyn_tab TYPE TABLE OF dselc,
      S_DYN TYPE DSELC.
      s_dyn-fldname = 'MATNR'.
      s_dyn-dyfldname = 'P_MATNR'.
      APPEND s_dyn TO dyn_tab.
      s_dyn-fldname = 'WERKS'.
      s_dyn-dyfldname = 'P_WERKS'.
      APPEND s_dyn TO dyn_tab.
      fieldtab_rt-tabname = zauvvselscr.
      fieldtab_rt-fieldname = 'MATNR'.
      fieldtab_rt-position = '0001'.
      APPEND fieldtab_rt.
      fieldtab_rt-tabname = zauvvselscr.
      fieldtab_rt-fieldname = 'WERKS'.
      fieldtab_rt-position = '0002'.
      APPEND fieldtab_rt.
      screen_value-fieldname = 'ZMATNR' .             " Field to be read
      APPEND screen_value TO screen_values. "* Fill the table
      REFRESH it_ret.
      REFRESH fieldtab_rt.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          dyname             = sy-cprog
          dynumb             = sy-dynnr
          translate_to_upper = 'X'
        TABLES
          dynpfields         = screen_values.
      READ TABLE screen_values INDEX 1 INTO screen_value.
      REPLACE ALL OCCURRENCES OF '*' IN screen_value-fieldvalue WITH space.
      CONCATENATE  screen_value-fieldvalue '%'  INTO lv_srch_str.
      REFRESH i_values.
      CLEAR i_values.
      SELECT DISTINCT matnr werks maktx j_3asean /afs/collection mvgr5  SUM( clabs ) AS stock
      INTO CORRESPONDING FIELDS OF i_values FROM zauvvselscr WHERE matnr LIKE lv_srch_str
      GROUP BY matnr werks maktx j_3asean /afs/collection mvgr5.
        APPEND i_values.
      ENDSELECT.
      DELETE ADJACENT DUPLICATES FROM i_values.
      SORT i_values BY matnr werks.
    *&&--passing the above selected records to the selection
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield        = 'MATNR'
          value_org       = 'S'
        TABLES
          value_tab       = i_values[]
          field_tab       = fieldtab_rt
          return_tab      = it_ret
          dynpfld_mapping = dyn_tab
        EXCEPTIONS
          parameter_error = 1
          no_values_found = 2
          OTHERS          = 3.
      IF sy-subrc EQ 0.
        LOOP AT it_ret.
            screen_value-fieldvalue = it_ret-fieldval.
            MOVE it_ret-fieldval TO zmatnr.
       ENDLOOP.
    ENDIF.
    My requirement is , In my selection screen i have field ZMATNR , with the above coding i can get the selected MATNR into that, but in addition to the selected matnr i need to get the corresponding WERKS also, which needs to be passed to another variable for further usage, I tried various methods of using "dynpfld_mapping " field tab etc, but nowhere im getting the WERKS value, i dont know whether im doing it correctly. so kindly suggest me to achieve the requirement.
    thanks and regs,
    Raja

    Hi,
    its possible check the below code.
    parameters: p_matnr type mara-matnr,
                p_werks type marc-werks.
    data: i_mara type table of mara with header line,
          i_marc type table of marc with header line,
          i_dselc type table of dselc with header line,
          i_dfies type table of dfies with header line,
          v_werks type marc-werks.
    at selection-screen on value-request for  p_matnr.
      select * from marc into table i_marc up to 10 rows where matnr is not null.
      i_dfies-tabname = 'MARA'.
      i_dfies-fieldname = 'MATNR'.
      append i_dfies.
      clear i_dfies.
      i_dfies-tabname = 'MARC'.
      i_dfies-fieldname = 'WERKS'.
      append i_dfies.
      clear i_dfies.
      i_dselc-fldname = 'WERKS'.
      i_dselc-fldinh = v_werks.
      i_dselc-dyfldname = 'P_WERKS'.
      append i_dselc.
      clear i_dselc.
      call function 'F4IF_INT_TABLE_VALUE_REQUEST'
        exporting
      DDIC_STRUCTURE         = ' '
          retfield               = 'MATNR'
       PVALKEY                = ' '
          dynpprog               = sy-repid
          dynpnr                 = sy-dynnr
          dynprofield            = 'P_MATNR'
      STEPL                  = 0
      WINDOW_TITLE           =
      VALUE                  = ' '
          value_org              = 'S'
      MULTIPLE_CHOICE        = ' '
      DISPLAY                = ' '
      CALLBACK_PROGRAM       = ' '
      CALLBACK_FORM          = ' '
      MARK_TAB               =
    IMPORTING
      USER_RESET             =
        tables
          value_tab              = i_marc[]
          field_tab              = i_dfies[]
      RETURN_TAB             =
          dynpfld_mapping        = i_dselc[]
    EXCEPTIONS
      PARAMETER_ERROR        = 1
      NO_VALUES_FOUND        = 2
      OTHERS                 = 3
      if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    Regards,
    Sathish Reddy.

  • O/P ALV in edit mode

    Hi All,
    Can any on tell me how to get the coloumns of the O/P ALV table in eit mode. I have an alv table ready its working fine.
    All I know is I need to use some codes like
    call method l_value->if_salv_wd_table_settings~SET_READ_ONLY
      EXPORTING
        VALUE  = ABAP_FALSE
    along with method SET_CELL_EDITOR. But I am not able to implement it. Can anyone give me the details.  The only thing ready is an alv table which takes i/p from select parameter and gies the data in the display.
    I get a lot of syntax error and am not able to understand clearly .
    Thanks in advance.
    Rgds,
    Anu.

    I'm afraid you might have to clarify your question a little bit.  What exactly are you needing help with? Are you just wanting to know how to interact with the ALV Table model.  If so, you can do that via the component usage and the component interface.  Here is a small example. The thing to keep mind is that the code must be adjust for what you named your alv component usage.  For example in this code I named my component usage alv. Therefore the method names are wd_this->wd_cpuse_alv and  wd_this->wd_cpifc_alv.  If I had instead named the component usage XYX, the generated method names would change to wd_this->wd_cpuse_xyz and wd_this->wd_cpifc_xyz.
    data: l_ref_cmp_usage type ref to if_wd_component_usage.
      l_ref_cmp_usage =   wd_this->wd_cpuse_alv( ).
      if l_ref_cmp_usage->has_active_component( ) is initial.
        l_ref_cmp_usage->create_component( ).
      endif.
      data l_salv_wd_table type ref to iwci_salv_wd_table.
      l_salv_wd_table = wd_this->wd_cpifc_alv( ).
      data l_table type ref to cl_salv_wd_config_table.
      l_table = l_salv_wd_table->get_model( ).
      l_table->if_salv_wd_table_settings~set_scrollable_col_count( 8 ).
      data l_column type ref to cl_salv_wd_column.
      l_column = l_table->if_salv_wd_column_settings~get_column( 'CLIENT' ).
      l_column->set_visible( cl_wd_uielement=>e_visible-none ).
      data textview type ref to cl_salv_wd_uie_text_view.
      l_column = l_table->if_salv_wd_column_settings~get_column( 'ADD_PARTICIPANTS' ).
      create object textview.
      textview->set_text_fieldname( 'ADD_PARTICIPANTS' ).
      textview->set_wrapping( abap_true ).
      l_column->set_cell_editor( textview ).
    l_column = l_table->if_salv_wd_column_settings~get_column( 'STATUS' ).
      data ddlb type ref to cl_salv_wd_uie_dropdown_by_key.
      create object ddlb
        exporting
          selected_key_fieldname = 'STATUS'.
      ddlb->set_read_only( abap_true ).
      l_column->set_cell_editor( ddlb ).
      l_column = l_table->if_salv_wd_column_settings~get_column( 'CHANGED_BY' ).
      l_header = l_column->get_header( ).
      l_header->set_text( `Changed By` ).
      l_column = l_table->if_salv_wd_column_settings~get_column( 'LIFE_CYCLE_STAT' ).
      l_column->set_visible( cl_wd_uielement=>e_visible-none ).

  • SCORM (flash Player Content) not working on Windows Server 2012 R2 which has IE11 integrated installed on it.

    Hi Everyone,
    I have website which contains SCORM package, installed on Windows Server 2012 R2 which has IE11 installed on it.
    Flash Player is also embedded with IE.
    IE Version:  11.0.9600.17278.
    Updated Version: 11.0.12 (KB2977629)
    When I launch SCORM (flash Player Content) from my application, it is not working. It just displays a blank page however the Title of IE is set to the text from the SCORM content.
    However if I access the same URL from any other machine which has previous version of Windows OS (i.e. previous to Windows 8 OS), it is working as expected on IE9, IE10 and IE11.
    While trying to find out the cause, I came across some forum which says we have to install the “Desktop Experience” on the server to enable the inbuilt flash player. After doing that also, My SCORM contents are not getting displayed.
    To find out more details, I have uploaded the SCORM Package on SCORM Cloud to check if it is working there. Here again the same problem, it doesn’t work and displays
    error message saying that “Member is not found” and when I tried to find out the location of the error then it is coming at
    Windows.document.myFlash.setVariable(…) method on the Windows Server 2012 R2 with IE11.  
    When I performed “Addwatch”, it is saying that Windows.document.myFlash doesn’t have setVariable(…) method.
    However if access the same cloud URL from other machine (Having OS previous to Windows 8 OS), it is working as expected.
    I have attached the screenshot of the error.
    Any help would be appreciated.
    Thanks

    Hello,
    I'd ask the SCORM package provider or in Microsoft's  ASP.Net forums:
    http://forums.asp.net/
    As Microsoft's ASP.Net forums are on a different platform, we cannot move the question for you.
    Karl
    When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer.
    My Blog: Unlock PowerShell
    My Book:
    Windows PowerShell 2.0 Bible
    My E-mail: -join ('6F6C646B61726C406F75746C6F6F6B2E636F6D'-split'(?<=\G.{2})'|%{if($_){[char][int]"0x$_"}})

Maybe you are looking for