User event unvoluntarily unbundles a cluster

Hi
I try to send a user event to another loop and come a around a curious feature(?).
If I create a user event with a data type "cluster (of bool in this case)" the receiving end unbundles the cluster.
I'd rather have the cluster as such to foward it internally  at the receiving end.
Is there a simple way ?
Of course you may envelope the cluster in another cluster, but that seems not really clean to me ?
using LV 2010
Thanks for any ideas
Gabi 
7.1 -- 2013
CLA

Thanks Matthew for the link to that ongoing discussion.
It is sometimes a bit tricky to select the proper keywords to get to right thread.
Well, I found out about the packing into another cluster before, but as said (l.c.) it is messy and unclean.
But thanks anyway. I'll definitely vote for that option.
Gabi 
7.1 -- 2013
CLA

Similar Messages

  • Handling User Events in sub panel vis and main vis with same Event reference Number.

    Hi All, Iam trying to work to handle events in both subpanel vi and main vi.
    I have a main program, and 2 sub vi. I will load the sub VI in 2 sub panels in main vi. Each sub pael vi has controls on it.
    I have created 2 User events for 2 sub panels vi. One user event consits of a Cluster with 2 Booleans (x & Y) and Other User Event consists of cluster of 2 unsigned 8 Numbers (a & b). These are created and registered in the main Vi and event register refnum is passed to the subpanel vi from the main panel vi.
    I have Event structure in main panel and sub panel vis.
    In one sub panel vi, When the value of one boolean(i.e. X) in the clusters changes, the Events structure in sub panel vi should perform some operation in sub panel vi only. When the value of other boolean (i.e. Y) changes it should perform some operation in main vi. I will try to Generate user event with the x value and Y value changed based on the control clicks in the sub panel vi.
    The OTher panel vi should behave in the smae way when the a & b value changes.
    The "Generate User Event" is working fine some times and sometimes there in no event triggered in the sub panel vi or main vi.
    Please let me know what is the problem Ramesh.

    There is a lot of talking, but not much understanding.  It'd be better if you posted some example VI's of what you are trying to do so that the words will make sense.
    One thing I can tell you is that you don't want to have two event structures handle the same event reference number.  You want to have two event registrations with each one going to its own event structure.

  • Is there any difference between these cluster images when creating a user event?

    I'm sure you experts will know instantly what I'm doing wrong.
    I am trying to create a user message for TestStand communication in the LabVIEW UI (based on the simple example OI that comes with TestStand)
    Perhaps it's just cosmetic but the trouble is I can't get the image of my cluster constant to look the same as the one in the example.
    I'm right clicking on the 'Create User Event' icon on the User Event Data Type connection and selecting Cluster - Cluster Constant, then adding a numeric constant to it.
    You can see the result here. The top one is the good one from the example, and the bottom one is my attempt - but I just can't get it.
    I'd appreciate your thoughts (I know the event number can't be the same - but I made it the same for the comparison). I have LabView 8.6.1.
    Thanks,
    Ronnie
    TestStand 4.2.1, LabVIEW 2009, LabWindows/CVI 2009
    Solved!
    Go to Solution.

    Use the color tool and right click on the lable of the numeric. I guess you will see that the Background Color of the one is black, of the other is white.
    But this is really just cosmetic's of the code.
    Felix
    www.aescusoft.de
    My latest community nugget on producer/consumer design
    My current blog: A journey through uml

  • How to create EVENTS for a View Cluster.

    Hi Tech Gurus,
    I have created a view cluster on 5 tables. I need to do a validation and this can be done by using events. But i am unable to create a EVENT for the View Cluster. Could anyone please tell me how to create events for a View Cluster.
    Thanks in advance for your esteemed replies.
    Regards,
    Raghavendra Goutham P.

    Hello Pasapula
    When you are in the View Cluster maintenance dialog (SE54) click on dialog "Events".
    Below the field for the view cluster you have an additional field <b>FORM routines main program</b>. There you have to add the main program containing the FORM routines called by the VC events.
    For example: I had defined a normal report containing an include with all the FORM routines. The report contains only the following lines of coding:
    report zus_0120_u1.
    * Common Data und access routines for user exits in VC maintenance
    include LSVCMCOD.
    include  zus_0120_f1. "FORM routines for VC events
    Now in the "Events" dialog of the view cluster maintenance you assign your FORM routines to the events.
    Regards
      Uwe

  • Event Handler/Cr​eate User Event bug

    This is a problem I've run into a few times on my system (Win2k) so I finally went back and reproduced it step by step since it wasn't too hard. It causes LabVIEW to crash and exit without saving.
    - Create an Event Handler
    - Place 'Register Events', wire output to dynamic event terminal
    - Place 'Create User Event', wire output to 'Register Events'/User Event
    - Place an Empty String Constant [""], wire to input of 'Create User Event'
    - Set empty string property -> Visible Items > Label = True
    - Rename label from "Empty String Constant" to other such as "Event"
    OR
    - Create a cluster constant with something in it
    OR
    - Place a boolean constant
    - Set boolean property -> Visible Items > Label = True
    - Name label something su
    ch as "Event"
    - 'Add Event Case...' to the Event Handler, select Dynamic / : User Event
    - Delete the constant wired to 'Create User Event'.
    - Place a constant of a different data type and wire it to the input of 'Create User Event'
    LabVIEW immediately disappears (all changes are lost) and this error is displayed:
    ================================
    LabVIEW.exe has generated errors and will be closed by
    Windows. You wlil need to restart the program.
    An error log is being created.
    ================================
    If there is a more appropriate place to post things of this nature that don’t really add to the discussion group, but need to be brought to the attention of NI, please post a URL or submittal method. Thanks...

    Thanks for the detailed request. We are aware of this exact issue, and the problem was actually fixed for LabVIEW 7.0 for Mac/Unix. Unfortunately, it did not get fixed for the initial release of LabVIEW 7.0 for Windows, but we have plans to include the fix in the first LabVIEW patch for 7.0.
    Also, the Discussion Forum is great for notifications of this kind. For future reference, you also have the options of emailing NI engineers directly, or calling us with suspected bug fixes, if you would like more direct communication.
    Thanks again, and have a great day!
    Liz Fausak
    Applications Engineer
    National Instruments
    www.ni.com/support

  • Responding to two user events with same name

    LV 2013, Win 7, & LVRT 2013, PharLap OS
    I have a situation where I create an ARRAY of User Events, one for each "domain" .  
    A "domain" is an area of DAQ: there is a SCXI domain, a CDAQ domain, an EtherCAT domain, several domains dealing with TCP instruments etc., about 25 domains all told. The name of the event is "New Channels This Domain".
    When a new configuration comes to the PXI from the host, I sort out the channels by their domain and generate a user event for whichever domains have channels that have changed: more channels, fewer channels, differences. If a domain has no channels that have changed, I do not generate an event for it.
    There is a handler for each domain: in that handler, I pick out the event for this domain from the array, and register to receive it.  I have an event structure that responds to the NEW CHANNELS THIS DOMAIN event.  Since it is an array, then no matter which domain I select, the name of the array is "New Channels This Domain".
    All this works fine.
    Now I have a situation where it makes sense to have one handler for TWO domains.
    I can pick out TWO elements of the array just fine, and register them both.   (See attached pic)  But now, in the EDIT EVENTS FOR THIS CASE list, I have TWO events called "New Channels This Domain".  I can select one for one case, and the other for the other case and it seems to work.
    --- Is there any heartache ahead with this scheme?  
    --- If I change the events in the clusters before, is it going to confuse LabVIEW?  
    --- Is there something I can do to change the name of the event after I pick it out of the array?  
    --- Is there something I SHOULD do at that point?
    Like I said, it seems to work, but I'm leery of it staying that way - I've had event structures disturbed before (LV2010) when changing cluster order.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

    CoastalMaineBird wrote:
    Thanks, Greg for that link.  I gave kudos to the idea of the COERCE TO TYPE function, and it seems like it would do the trick, but as of LV2014 it's still not on the palette.
    My question still remains: is it necessary?  Will the event structure remember that it's supposed to use the SECOND event named "X", through all edits and recompiles?  My guess is no, but I'll listen to alternative stories.
    I've been using the Coerce to type for this and enums in versions 2011 through 2014 since learning about it.  I've seen no issue using it in these cases.  I'm guessing it doesn't behave in an expected way for extreame uses which is why NI doesn't release it yet.
    As for would it always know to go to the second event if they are named the same?  My guess is yes.  They maybe named the same but they have different references.  I would think it would be just like having two controls with the same label.  You should never do this, but if you did, and made a local variables on one and wrote to it, it would always write to the correct control.  It would never write to the different control with the same name.  Now even if this is the case it could be confusing to a developer looking at the code, which is why I strongly suggest having unique names.  But if you don't I suspect every thing would work fine, just have a bold comment or something explaining what each case actually is handling.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • Updating data in User Event doesn't propogate to uses of the User Event type

    So I have a user event which is seeded with a cluster in which there are a few typedefs. Now, as you might expect, I have to pass the user event to different VIs so that they can trigger the events which are interpretted by a main vi. Pretty simple and all is happy. There's one rub though: one of my vis which is passed the user event is called by reference. The call by reference vi requires a certain vi pattern when you create the reference for the vi (namely, a strictly typed vi reference), which includes the user event type. Now, sometimes, I update the typedefs in the data type of the user event. This means that user event type changes. Now, what's maybe not too surprising, is that either the user event type doesn't update with the type def or that the type specifier vi constant doesn't update with the change in user event type. This means that every time I have to go back and create a type specifier based on the updated pattern for the vi which takes the user event as an input.
    Is there a way for labview to automatically do this? One way to fix it, I'm sure, is to change the user event input into the vi I call by reference to a variant. Then inside the vi I call, to type cast the variant with the output of a Create User Event vi that has been seeded with the appropriate cluster of typdefs. But that seems pretty silly (like, why not just make EVERYTHING a variant). Any ideas?
    - Chris

    Take a static VI reference (from the app control palette), drag your subVI into it, right click it and make it strict and wire it into the type input for the Open VI Reference primitive. Now it should always update.
    Two more advantages you get from this is that now the VI is in memory, so it will automatically be included in your build and that you can use the VI Name (or VI Path) property from the static reference to get the name for the Open VI Reference primitive and it will always work correctly.
    Try to take over the world!

  • User event for array of waveforms with attribute

    I have been transferring data in a Producer/Consumer architecture via User Events.  The data consisted of an array of waveforms. When I added an attribute to the waveforms the code breaks with two errors about Create User Event: User event data type is unnamed or has elements with no names or duplicate names, and Contains unwired or bad terminal.
    From reading the help on user events it is not clear that arrays are even allowed: "user event data type is a cluster of elements or an individual element whose data type and label define the data type and name of the user event."
    From experimentation it seems that arrays of numerics and arrays of wavefroms without attributes work. A single waveform with an attribute can also be used. But an array of the same waveform with attribute leads to a broken run arrow. It also appears that I can put the array of waveforms with attributes inside a cluster and then create the user event.
    Is this a bug, an undocumented corner case, or some "feature" that I do not understand?
    Searching for User Event for Array of Waveforms generates some interesting, but mostly irrelevant results.
    Lynn

    tst wrote:
    Another option would be typecasting, but it looks like you can't typecast a waveform. Variant to Data or Coerce to Type might also work, but I haven't tried.
    I have also done the Flatten To String and Unflatten From String to send data around.  It would be preferable to not need to do that though.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How to use postlv user event in labview

    Hi sir 
     I am sending data labwindow cvi dll call to labview,for that we need postlv user event.please any one knows to use postlv user evenet in labview.
    Below will  be the  structureand i need to update in labview .
    typedef struct
    unsigned
    uDSPIO,
    // uDAQMode,
    // bControllerActive,
    bShutDown,
    bPowerOn,
    bPowerHi,
    bPowerFault,
    bSGIdle,
    bSGHold,
    uBitsIn,
    uBitsOut,
    uCycleCount,
    uCycResidue,
    uBlockCount,
    uLogChannels,
    uCurrentMode,
    uAsigndPhysCh[LOG_CHANNELS];
    float
    fSetPoint,
    fDAQRate,
    fRange[LOG_CHANNELS],
    fReadout[LOG_CHANNELS],
    fMax[LOG_CHANNELS],
    fMin[LOG_CHANNELS];
    char
    sChID[LOG_CHANNELS][32],
    sChUnits[LOG_CHANNELS][16];
    CTRL_CHANNEL_STATUS;
    Attachments:
    GDSCallback.vi ‏12 KB

    AThe fixed size arrays in your structure are inlined byt the C compiler. This means they are not an array pointer (and definitely never a LabVIEW array handle) but rather LOG_CHANNELS amount of unsigned ints and floats directly embedded in the structure. In LabVIEW terms this is most easily represented as a cluster with LOG_CHANNELS elements inside the main cluster.
    So basically your uAsigndPhysCh needs to be a cluster with LOG_CHANNELS elements of unsigned ints and  fRange,  fReadout, fMax and fin are clusters with LOG_CHANNELS single precision float values, and then sChID is a cluster with 32 * LOG_CHANNELS chars and sChUnits one with 16 * LOG_CHANNELS chars.
    However I would personally rethink this strategy. This huge cluster monster is passed into PostLVUserEvent() each time and copied into the event data on every event, causing quite a bit of overhead that way. Is it really necessary to post all this data every time?
    Also you have commented out uDAQMode and bControllerActive in your C structure but included it in the LabVIEW cluster which will certainly throw off your data. Last but not least the b prefix would probably indicate that you are only using that element as a boolean value, so why not consider to use bit fields there? In LabVIEW you can easily seperate those bitfields by either translating the resulting uInt32 into a boolean array or even more efficiently use boolean logic to detect the bits.
    And in order to let LabVIEW react on a user event you have to create that user event with the correct datatype (your cluster monster) and then pass the user event refnum to your DLL. This DLL then calls PostLVUserEvent() with the user event refnum as first parameter and a pointer to a data structure that matches the LabVIEW user event datatype EXACTLY whenever it wants to post an event to LabVIEW. The user event is also registered in an event structure in LabVIEW which will then get triggered everytime your DLL posts an event by correctly calling PostLVUserEvent().
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • User Event

    The Help surrounding User Event seems circuitous to me.  I can find out how to name an event, register an event, send a event, and act when an event occurs.  What I can't figure out is: what is the actual event in the examples shown? In the Programmatically Fire Events.vi example, I see a cluster of two integers attached to the Create User Event.  What "event" is represented by this?  A change in one integer, both?  How is this a "User" event?  What I need is a simple TEXT explanation that builds up a User Event step by step with numbered steps, starting with an explanation of what kinds of events can be used as User Events and building from there through the creation and registration of events to their actual use.  This is a fundamental tool for modern instrumentation programming and I don't feel I'm getting the help I need.

    I'm looking at Programmatically Fire Events.vi
    I see that the Create User Event has some constants attached which apparently "type" the event.
    I see the Register User Event  which I suppose adds to a database of accessible events.
    Inside an event called "Slider", I see a Generate User Event.
    I am confused because the Event used in the Event Structure Case 0 is "Slider" Value Change.  I can understand an event in that context:  the slider moves, values change.
    But then inside that event, a refnum connects to the Generate User Event this serves as a "name" but it is only code-readable so at this point, I have no idea what the name of the event within the event is.  
    Connected to Generate User Event is a bundle of "something" called NewVal and a 0.  I suspect this means the User Event is "generated" when position has a new value (presumably the value resulting from the slider value change) and delay is 0.
    The event is "generated" but I STILL don't know what that means.
    In Event Structure Case 1, triggered by event Repeat switch Value change, a Generate Event with the same refnum "name" as before occurs when some calculated values are reached.
    After the loop finishes, the refnum goes out and generates a new User Event with the same "name"
    when position is -1 and delay is 0.  
    I am primarily interested in events as triggers for Cases in Event Structures.  I thought User Event meant some kind of user-defined event that I could use for such a trigger.  Instead, I see in this example that some other event triggers the Event Structure Case in which the User Event is "generated" and I have NO idea what happens that "event".
    So, either the term "event" is used in some wildly differently context or I need more help.  I have now seen the same refnum generate an "event" based on three different inputs.  How is that not too confusing for a Help example?
    How can I tell what help I need?  This is the most confusing example I have encountered in my long history as an engineer.
    Where does the generated event go?  How do I use THAT event?
    I just can't tell from what is provided and I can't find a tutorial or a book that describes it.

  • Remote User Events Library using VI Server

    I posted a reference library for creating User Events in LabVIEW that can be accessed over the network in the Community page. Check it out! It uses VI Server to enable sending the data across. It is based on the standard LabVIEW User Event functions, and is polymorphic to handle the following data types:
    String
    Object
    Variant
    Boolean
    Command (cluster containing String command and Variant data fields)
    I think this could be very useful. I use User Events all the time for their flexible many-to-many messaging format, and this provides a way to abstract that same syntax across the network.
    Community Link
    Example Server
    Example Client
    Jarrod S.
    National Instruments

    I dont have a use for these at the moment, i was asking if someone could possibly save these functions so i could use them in the future in LabView 2009.
    Regards
    Gary

  • Making an array of different user events refnums?

    Hello all,
    I have a question about dynamic user events. I have 6 different users events which I create, and would like to put into an array. (Such that I can use them in a For loop laters, taking off one event per loop and assigning it to a control of a vi) So far I haven't found a way of doing that since if I just wire the user events refnums to an array I get broken wires. (Similarly if I wire them to a build cluster structure.)
    I think that you'll understand what I am trying to do if you look at my labview code in the attached vi.
    In the vi I create some user events, and then wire them to the control of two vi's which will communicate to each other using these events. In the code you will see 6 Invoke Node structures where I use the "Ctrl Val.set" to pass the events to the two vi's. Obviously this is the wrong why of doing things. Since if instead of having 6 events I had 100, then I would need to put 100 Invoke Node structures on the block diagram (making it very large compared to the size of my computer screen!). 
    So what I would like to do, is put the user events refnums into a array, then put the one Invoke node structure into a For loop, and index the array to assign the events to the vi's programmatically. 
    Is there anyway of doing this? Or is there an alternative (/ better way) to what I have done?
    (Baisically I have 2 vi's that run in parallel and communicate to each other using user events. I need to pass the events to both vi's, how do I do it in the minimum of mouse clicks, and minimum of screen space.)
    Thank you!
    Paul.
    Solved!
    Go to Solution.
    Attachments:
    CameraTempControllerRunner.vi ‏49 KB

    I haven't created any new messages since the forum changed over, so I'm not sure.  But check on the menu under Options on the upper right.  I think there is a way to undo your choice and put it on another.
    Kudo's have replaced the stars.  Anything that was 4 or 5 stars is now equivalent to a Kudo.  But with the old system, anything less than 5 stars was essentially a negative opinion in the ratings.  So to simplify the multiple shades of gray (1 through 4 stars essentially being some degree of a negative) and to just eliminate the negative aspect altogether, the Kudo system was born.
    I don't know if the "Accepted Solution" designation does anything to help the person whose solution was accepted, but having that designation helps people searching the forum because they have the same problem find the answer quicker.
    Message Edited by Ravens Fan on 10-06-2008 10:15 AM

  • Named User Events? - NOT using labels

    Why do user events require the event name be pulled from the label of the item wired to the create user event VI? I am looking to use user events which the name of the event may be wired separately to the create user event and register for event VIs.
    If I have a data store with 1000 variant items in it. I want to create an "on change" event for each item in the data store. All of the items have the same data type.. a variant or some cluster of info.. and a different name. Other tasks can then watch for a specifc item to change by registering for an event with the same name and type. However, I certainly do not want to waste my time creating 1000 constants of the same type just to wire it to the create user event VI. (The actual names in this application may be built at runtime) I also do not want the tasks to have to watch for a common event that triggers whenever any item in the data store changes and then have to filter out what is relevant to the task. (this wastes resources)
    Why can't the user event and register for event functions just use the type of the data and let the name be passed in separately like queues do??
    Can NI provide me a simple patch to do this?

    "is using only one event ok for you? You can generate this event everytime you write data into your buffer. If your event is of the type string, the you can send whatever data you need with the event (name, value, ...)."
    This works, but I'm concerned about the performance hit / scalability of waking up every single task for no reason whenever anything changes just to realize it's of no interest and go back to sleep. Lets say there are 25 tasks. Each task is registered for one of 1000 items. Higher rate data may be changing which none of the tasks are interested in... Not very efficient to have one common event. 
    "rather than pounding on an event structure to change it's shape, how about using "named queues"?
     Instead of the event in a loop you check the queue in a loop and if there is something there handle it like it was the event. You can set it up to either do it witha zero timeout (polling) or the loop can sit at the "Dequeue" until something is pusshed to the queue."
    The current implementation is named queues. Yes this works, But what am I doing.... Using a queue to implement an event........ (why should I have to do this?) If you call a generate event and nobody is registered, nobody cares. You have to add logic to determine if you want to put an item on a queue in case nobody is listening so that you don't build up the queue..
    "The type def is created as a constant via right-click menu on the wire coming from Create User Event. Just the label changed."
    This is an interesting trick.. However, it still requires me to create a constant with x unique names. I guess I will have to do some testing to see if the events created in a loop are unique, but have the same name, or are truly the same event with unpredictabel results for creating many with the same name. (unless someone already knows the answer) ... If they are truly unique, but have the same name, I could use this for tasks that register for only a few items... Still rather cumbersome for tasks that need to register for many.

  • How to use "User Events" in different parts of an application

    Hi,
    "You programmatically can create and name your own events, called user events, to carry user-defined data. Like queues and notifiers, user events allow different parts of an application to communicate asynchronously. You can handle both user interface and programmatically generated user events in the same Event structure."
    What you read was part of labview 7.1 user manual ( Chapter 9 - pg.12 ). I've some problems with the underlined sentence. I hope someone can help me.
    When using Queues, the programmer may use a named queue everywhere in the application. there is no need to wire queue reference among VIs or using global variables to store queue reference. the name of the queue will be all that you need. I wonder if it is also possible with a event refnum that is the output of "Register for Event" node. As far as I've tested. the answer is Negative! I tried to copy-paste refnum in front panels and using the same name. but there is no connection between event refnums.
    LV User manual claims that user events can be used like queues, but it doesn't seem so.
    Does anybody have an idea?
    Best Regards.

    I didn't look at Damien Gray's presentation recently, but if I remember it correctly, it is on a much higher level than what I meant, because it refers to LARGE application. This is a very simple one.
    Using a functional global is not problematic CPU-wise, nor memory wise (unless you get into really big data structures, like hundreds of MBs), so you shouldn't be afraid to use it. I'm also not sure why you're afraid of the loop. The loop is only there to "hold" the USR. It only runs once. If you want, you can replace it with a for loop that runs once. I've recently learned that apparently, you can also get rid of the loop and use a local variable (look at the example called XY chart) instead of a USR. I don't think a local variable should have any more impact than a USR, but that needs to be tested. It can definitely be more convenient for some VIs where you don't have to wire the SR through the entire VI.
    Anyway, you will need to have an "obtain ref" VI which will hold a 1D array of names and a corresponding array of refs. Then, you search the array for the name, and if it finds the name, it extracts the correct reference. You will also need a way to input references and names into the array and possibly a way to empty the array. You may need to have 2 levels - the inner VI will be the LV2 VI and the parent will be the obtain ref\fill array\close VI. You will need some error handling as well - what happens if you search for a name and it can't be found and so on...
    Hope this helps.
    Try to take over the world!

  • How to Trigger SY-UCOMM User Event  in ALV

    Hi Folks,
    Currently I have a classic ALV report where I need to remove all the standard ALV buttons and replace it with one custom button.  Given that, there is a parameter in REUSE_ALV_GRID_DISPLAY that deals with the user command event.  But during the debug/execution of the custom button, the value of sy-ucomm(R_UCOMM in my example below), is always blank.
    Moreover, I did some relevant search here in SDN also before I paste my F1 here.  If you're going to take a look at my code below, it's exactly the same as what the other relevant topic in user event in ALV.
      PERFORM pf_status_kanban  USING rt_extab.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = w_repid
          i_callback_top_of_page   = 'F_TOPOF_PAGE'
          i_callback_pf_status_set = 'PF_STATUS_KANBAN'  "Exclude ALV standard buttons      
          i_callback_user_command  = 'F_USER_COMMAND'     "Subroutine for SY-UCOMM
    *      i_callback_top_of_page   = 'TOP_OF_PAGE'
          is_layout                = t_alv_layout
          it_fieldcat              = t_alv_fcat[]
          it_sort                  = t_alv_sort
          is_variant               = t_gs_variant
          it_events                = t_events            "Events for AT USER-COMMAND
    *      IT_EVENT_EXIT            = 'AT USER-COMMAND'
        TABLES
          t_outtab                 = t_output.
    FORM F_USER_COMMAND  USING    p_r_ucomm   LIKE sy-ucomm
                                  rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN 'DOWNLOAD'.
          PERFORM f_generate_col USING t_output.
        WHEN OTHERS.
      ENDCASE.
    ENDFORM.                    " F_USER_COMMAND
    FORM F_USER_COMMAND  USING    p_r_ucomm   LIKE sy-ucomm
                                  rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
    *    WHEN 'EXCEL'.
    *      PERFORM f_generate_col USING t_output.
        WHEN 'DOWNLOAD'.
          PERFORM f_generate_col USING t_output.
        WHEN OTHERS.
      ENDCASE.
    ENDFORM.                    " F_USER_COMMAND
    Thanks and regards,
    Jaime

    Hi Martin,
    Yes, I ensure that the function code in my custom button is exactly the same as the condition for the sy-ucomm.
    The call routine for the PF_STATUS_KANBAN is just a test since it seems like Iu2019m chasing a phantom issue here.
    Yes, w_repid is set correctly.
    DATA:
    w_repid LIKE sy-repid.                                              "Report ID.
    INITIALIZATION.
      w_repid = sy-repid.
    It seems like the documentation im reading
    Parameter R_UCOMM contains the function code triggered. is not happening as expected...
    Thanks.
    Jaime
    Edited by: Jaime Cabanban on May 7, 2009 10:16 AM

Maybe you are looking for

  • How do I chg my Icloud account on my Iphone when I delete it it asks for a password for my old account which I don't remember

    Can someone explain how I can change my Icloud id on my Iphone? When I hit delete it asks me for a password on my old account to turn off "find my phone" before it will delete. Since it is my old account I have forgotten what password I used and I'm

  • Getting error while export

    UDE-00008: operation generated ORACLE error 39078 ORA-39078: unable to dequeue message for agent KUPC$A_1_20080108044439 from queue "KUPC$S_1_20080108044438" ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: at "SYS.KUPC$QUE_INT", line 559 ORA-0

  • [SkyDrive] Files can't be uploaded because there's a problem with a file or folder.

    On Windows 8.1 RTM, the SkyDrive metro client shows a message that "Files can't be uploaded because there's a problem with a file or folder." and lists one particular file. When I installed the PC, I have switched then Access all files offline option

  • Random rebooting of my Mac

    I received notice of and update available for my Superdrive, and accepted to download and install. After downloading, the following problems came up: 1. The installer states (every time I boot up) that no hardware was found that needs such update. 2.

  • O.T. Digital Photography Newsletter

    In case you've never come across it, fotoespresso, a digital photography newsletter is worth a look. To quote from the site: fotoespresso reports news, trends, new techniques and tools for digital photography. Our focus is on digital photography work