ABAP Select statement performance (with nested NOT IN selects)

Hi Folks,
I'm working on the ST module and am working with the document flow table VBFA. The query takes a large amount of time, and is timing out in production. I am hoping that someone would be able to give me a few tips to make this run faster. In our test environment, this query take 12+ minutes to process.
    SELECT vbfa~vbeln
           vbfa~vbelv
           Sub~vbelv
           Material~matnr
           Material~zzactshpdt
           Material~werks
           Customer~name1
           Customer~sortl
      FROM vbfa JOIN vbrk AS Parent ON ( Parentvbeln = vbfavbeln )
             JOIN vbfa AS Sub ON ( Subvbeln = vbfavbeln )
             JOIN vbap AS Material ON ( Materialvbeln = Subvbelv )
             JOIN vbak AS Header ON ( Headervbeln = Subvbelv )
             JOIN vbpa AS Partner ON ( Partnervbeln = Subvbelv )
             JOIN kna1 AS Customer ON ( Customerkunnr = Partnerkunnr )
      INTO (WA_Transfers-vbeln,
            WA_Transfers-vbelv,
            WA_Transfers-order,
            WA_Transfers-MATNR,
            WA_Transfers-sdate,
            WA_Transfers-sfwerks,
            WA_Transfers-name1,
            WA_Transfers-stwerks)
      WHERE vbfa~vbtyp_n = 'M'       "Invoice
      AND vbfa~fktyp = 'L'           "Delivery Related Billing Doc
      AND vbfa~vbtyp_v = 'J'         "Delivery Doc
      AND vbfa~vbelv IN S_VBELV
      AND Sub~vbtyp_n = 'M'          "Invoice Document Type
      AND Sub~vbtyp_v = 'C'          "Order Document Type
      AND Partner~parvw = 'WE'       "Ship To Party(actual desc. is SH)
      AND Material~zzactshpdt IN S_SDATE
      AND ( Parentfkart = 'ZTRA' OR Parentfkart = 'ZTER' )
      AND vbfa~vbelv NOT IN
         ( SELECT subvbfa~vbelv
           FROM vbfa AS subvbfa
           WHERE subvbfavbelv = vbfavbelv
           AND   subvbfa~vbtyp_n = 'V' )           "Purchase Order
      AND vbfa~vbelv NOT IN
         ( SELECT DelList~vbeln
           FROM vbfa AS DelList
           WHERE DelListvbeln = vbfavbelv
           AND   DelList~vbtyp_v = 'C'             "Order Document Type
           AND   DelList~vbelv IN                  "Delivery Doc
              ( SELECT OrderList~vbelv
                FROM vbfa AS OrderList
                WHERE OrderList~vbtyp_n = 'H' )    "Return Ord
      APPEND WA_Transfers TO ITAB_Transfers.
    ENDSELECT.
Cheers,
Chris

I am sending u some of the performance isuues that are to be kept in mind while coding.
1.Donot use Select *...... instead use Select <required list>......
2.Donot fetch data from CLUSTER tables.
3.Donot use Nested Select statements as. U have used nested select which reduces performance to a greater extent.
  Instead  use  views/join .
Also keep in mind that not use join condition for more for more than three tables unless otherwise required.
So split select statements into three or four and use Select ......for all entries....
4.Extract  the data from the database  atonce consolidated upfront into table.
  i.e. use INTO TABLE <ITAB> clause instead of using
Select----
End Select.
5.Never use order by clause in Select ..... statement. instead use SORT<itab>.
6.When  ever u need to calculate max,min,avg,sum,count use AGGREGATE FUNCTIONS and GROUP BY clause insted of calculating by userself..
7.Donot use the same table once for Validation and another time for data extraction.select data  only once.
8.When the intention is for validation use Select single ....../Select.......up to one rows ......statements.
9.If possible always use array operations to update the database tables.
10.Order of the fields in the where clause select statement  must be in the same order in the index of table.
11.Never release the object unless throughly checked by st05/se30/slin.
12.Avoid using identical select statements.

Similar Messages

  • Performance with Nested Views

    Hello everyone, we are having a performance problem with oracle optimizing nested views. Some with outer joins. One of the guys just sent me the following statement and I'm wondering if anyone can tell me if it sounds correct. The query is about 300 lines long so I won't post it here, but hopefully someone can still help with sheding some light on the statement below.
    When Oracle executes a view it optimizes the query plan only for the columns of the view which are used and eliminates unnecessary joins, function calls, etc.. In this case the join is a LEFT OUTER i.e. optional and since the columns are not used I would hope Oracle would eliminate this from the plan but… it didn’t.
    Thanks for any help,
    Michael Cunningham

    Depending on the version of Oracle (this was introduced in 10.2), it is possible that Oracle can eliminate a join. The Oracle Optimizer group has a nice blog post that discusses the requirements for join elimination to happen. Basically, Oracle has to be sure that the additional columns aren't being used but also that the join does not change the number of rows that might be returned.
    Justin

  • Complex query - improve performance with nested arrays, bulk insert....?

    Hello, I have an extremely complicated query, that has a structure similar to:
    Overall Query
    ---SubQueryA
    -------SubQueryB
    ---SubQueryB
    ---SubQueryC
    -------SubQueryA
    The subqueries themselves are slow, and having to run them multiple times is much too slow! Ideally, I would be able to run each subquery once, and then use the results. I cannot use standard oracle tables, and i would need to keep the result of the subqueries in memory.
    I was thinking I write a pl/sql script that did the subqueries at the beginning and stored the results in memory. Then in the overall query, I could loop through my results in memory, and join the results of the various subqueries to one another.
    some questions:
    -what is the best data structure to use? I've been looking around and there are nested arrays, and there's the bulk insert functionality, but I'm not sure what is the best to you
    -the advantage of the method I'm suggesting is that I only have to do each subquery once. But, when I start joining the results of the subquery to one another, will I take a performance hit? will Oracle not be able to optimize the joins?
    thanks in advance!
    Coop

    I cannot use standard oracle tablesWhat does this mean? If you have subqueries, i assume you have tables to drive them? You're in an Oracle forum, so i assume the tables are Oracle tables.
    If so, you can look into the WITH clause, it can 'cache' the query results for you and reuse them multiple times, also helpful in making large queries with many subqueries more readable.

  • Dynamic AS State Creation with SetProperty not working...

    I am trying to create a website that dynamically creates multiple states for content, download links, and contact info.  The reason I am using AS3 to create these states is because, in addition to reformatting/moving the UI/navigation elements, the states will also have content dynamically loaded at run-time from XML files (therefore cannot be hard-coded with MXML tags)
    Before I focus on reading the XML files for adding children in each state, I want to get the basic UI buttons and elements to move into desired positions in the Canvas using SetProperty for x and y on three buttons (Services, Downloads, and Contact)
    On initialization of the Application, I call the following:
    import mx.states.*; import mx.controls.Button; // Define variables private var newState:State; private var setXPropServices:SetProperty; private var setYPropServices:SetProperty; private var setXPropDownloads:SetProperty; private var setYPropDownloads:SetProperty; private var setXPropContact:SetProperty; private var setYPropContact:SetProperty; private function createStates():void {                  // Create and add the view states to the states Array.                 states = new Array();                 states.push(serviceState());                 states.push(downloadState());                 states.push(contactState());                                 //Create Transitions for each state; this must be dynamically created to reflect all AddChild elements to fade-in                 // createTransitions();             } private function downloadState():State {                //Configure the bServices properties                 setXPropServices = new SetProperty();                 setXPropServices.name ="x";                 setXPropServices.value = bServices.width/4;                 setXPropServices.target = bServices;                 setYPropServices = new SetProperty();                 setYPropServices.name ="y";                 setYPropServices.value = cMain.height/4;                 setYPropServices.target = bServices;                                 //Configure the bDownloads properties                 setXPropDownloads = new SetProperty();                 setXPropDownloads.name ="x";                 setXPropDownloads.value = bDownloads.width/4;                 setXPropDownloads.target = bDownloads;                 setYPropDownloads = new SetProperty();                 setYPropDownloads.name ="y";                 setYPropDownloads.value = bDownloads.height/4;                 setYPropDownloads.target = bDownloads;                                 //Configure the bContact properties                 setXPropContact = new SetProperty();                 setXPropContact.name ="x";                 setXPropContact.value = bContact.width/4;                 setXPropContact.target = bContact;                 setYPropContact = new SetProperty();                 setYPropContact.name ="y";                 setYPropContact.value = cMain.height/2;                 setYPropContact.target = bContact;                 // Finally, push all the overrides and return the State to the caller                 newState = new State();                 newState.name = "downloads";                 newState.overrides.push(setXPropServices);                  newState.overrides.push(setYPropServices);                  newState.overrides.push(setXPropDownloads);                  newState.overrides.push(setYPropDownloads);                  newState.overrides.push(setXPropContact);                  newState.overrides.push(setYPropContact); } 
    This is just one of the example functions.  You may notice I am doing a bit if "dynamic" layout based on determining size of Main and various components.
    It compiles and runs okay, and I don't get an error when I click the the Downloads button (set to change state to "downloads" on click), so it is recognizing the states that were created... BUT all elements seem to go straight to 0 x and 0 y. (top left corner) instead of setting any of my specified values.
    I tried changing the values to strings using the String() method, which does nothing.  I even tried setting specific constant numbers as values for X and Y, and it has no effect...
    Any thoughts why it is, in fact, changing X and Y but is automatically moving them to 0, 0?

    sorry, having trouble with this interface for inserting code...
    import mx.states.*;
    import mx.controls.Button;
    // Define variables
    private var newState:State;
    private var setXPropServices:SetProperty;
    private var setYPropServices:SetProperty;
    private var setXPropDownloads:SetProperty;
    private var setYPropDownloads:SetProperty;
    private var setXPropContact:SetProperty;
    private var setYPropContact:SetProperty;
    private function createStates():void {
    // Create and add the view states to the states Array.
    states = new Array();
    states.push(serviceState());
    states.push(downloadState());               
    states.push(contactState());
    private function downloadState():State {
         //Configure the bServices properties
         setXPropServices = new SetProperty();
         setXPropServices.name ="x";               
         setXPropServices.value = bServices.width/4;               
         setXPropServices.target = bServices;
         setYPropServices = new SetProperty();
         setYPropServices.name ="y";
         setYPropServices.value = cMain.height/4;
         setYPropServices.target = bServices;               
         //Configure the bDownloads properties               
         setXPropDownloads = new SetProperty();               
         setXPropDownloads.name ="x";
         setXPropDownloads.value = bDownloads.width/4;
         setXPropDownloads.target = bDownloads;
         setYPropDownloads = new SetProperty();
         setYPropDownloads.name ="y";               
         setYPropDownloads.value = bDownloads.height/4;               
         setYPropDownloads.target = bDownloads;                               
         //Configure the bContact properties
         setXPropContact = new SetProperty();
         setXPropContact.name ="x";
         setXPropContact.value = bContact.width/4;
         setXPropContact.target = bContact;               
         setYPropContact = new SetProperty();               
         setYPropContact.name ="y";
         setYPropContact.value = cMain.height/2;
         setYPropContact.target = bContact;
         // Finally, push all the overrides and return the State to the caller
         newState = new State();               
         newState.name = "downloads";               
         newState.overrides.push(setXPropServices);           
         newState.overrides.push(setYPropServices);           
         newState.overrides.push(setXPropDownloads);           
         newState.overrides.push(setYPropDownloads);           
         newState.overrides.push(setXPropContact);           
         newState.overrides.push(setYPropContact);
    Hopefully this works better

  • Problem with multiple sub-panels through Enum case structure: "The VI is not in a state compatible with this operation"

    Hello,
    I am using LabVIEW 8.0 and I am attempting to create a sub-panel that displays the front panel of a sub-vi depending on the selection made by the user via the Enum dropdown menu.  I have wired the Enum to a case structure and applied identical coding to each individual case structure except for obviously changing the sub-vi source.  However, I receive an error "The VI is not in a state compatible with this operation."  I was able to successfully make a single sub-vi work within a sub-panel using a true/false case structure and the exact same coding.  However, now that I am using an Enum box wired to a case structure, I receive this error.  I have attached my block diagram as well.  Could anyone assist me as to where it is that I am going wrong?
    Thanks in advance!
    Solved!
    Go to Solution.
    Attachments:
    enum subpanels.JPG ‏22 KB

    torm wrote:
    I have attached my block diagram as well
    I only see a picture. Can you attach the VI instead? At what point do you close the reference?
    torm wrote:
    I have wired the Enum to a case structure and applied identical coding to each individual case structure except for obviously changing the sub-vi source.
    Well, if the code is identical except for the source, only the source should be inside the case, right? Why duplicate code?
    LabVIEW Champion . Do more with less code and in less time .

  • SELECT LIST WITH SUBMIT NOT POPULATING

    I have 3 fields; They are ID, Shortname(PRIMARY KEY), Longname. Longname is a select list with submit based on an lov (called system_longname description) that has a return value of ID. I need to select a value (longname) from that list that will populate automatically the ID and Shortname fields. This is the code I'm using for ID and Shortname, which are both text boxes. The view VSYSTEMS is where the lov is getting it's values.
    'SELECT ID FROM VSYSTEMS WHERE ID = :SYSTEM_LONGNAME DESCRIPTION';
    'SELECT SHORTNAME FROM VSYSTEMS WHERE ID = :SYSTEM_LONGNAME DESCRIPTION';
    Can anyone help me? I keep getting these error messages: invalid SQL statement or SQL command not properly ended.

    Matthew,
    Is this a follow-up to Automatic field population by selecting a LOV ?
    What is the purpose of 'DESCRIPTION' at the end of each query?
    Scott

  • Selected state issue with Menu Module V2

    OK so I am getting an issue with Menu Module V2. I have used this before with success but this time I have hit a wall. I possed this question to BC live chat and they bugged out real quick.
    The site in construction is http://www.urbanista.com.au
    What is happening is that in the top right tools nav with the headings Home, Services, People, Contact Us using Menu Module V2. The Heading Services has a drop down and this is where the issue resides. Roll over any of these nav devices and you will see they will highlight orange. Home is already auto activating its Selcted state. Click on Contact Us and it will do the same.  Roll over and click on Services and it appears to have worked. While in Services roll over the drop down again and you will see all links have activated the Selected state. This is the issue. If you view the code of the Services UL you will see only the Services state has been alocated the Slected state. See below:
    <li id="Services" class="selected">
    <a href="/services.htm">Services</a>
    <ul>
    <li id="tools-panningdev">
    <li id="tools-housing">
    <li id="tools-urban-renewal">
    <li id="tools-project-management">
    <li id="tools-feasibility-tools">
    <li id="tools-governance-systems">
    <li id="tools-communications">
    <li id="tools-projects">
    </ul>
    </li>
    The CSS that runs the nav is as follows:
    ul.dropdown {
        font-weight: normal;
        font-family: Arial, Helvetica, sans-serif;
        font-style: normal;
        text-decoration: none;
        ul.dropdown li {
        background-color: transparent;
        color: #999;
        padding-top: 5px;
        padding-right: 10px;
        padding-bottom: 5px;
        padding-left: 10px;
        font-size: 12px;
        ul.dropdown li.hover,
        ul.dropdown li:hover {
        background-color: transparent;
        color: #FFF;
        ul.dropdown a:link,
        ul.dropdown a:visited    {
        color: #FFF;
        text-decoration: none;
        ul.dropdown a:hover        { color: #ff871f; }
        ul.dropdown a:active    {
        color: #b33b00;
        /* -- level mark -- */
        ul.dropdown ul {
        width: 150px;
        margin-top: 1px;
        background-image: url(/images/nav-transparency.png);
        background-repeat: repeat;
        color: #FFF;
        ul.dropdown ul li {
        font-weight: normal;
    ul.dropdown li.selected a {
        color: #ff871f;
    The last entry 'ul.dropdown li.selected a {color: #ff871f;}' is required in order to allocate a Slected State. Without it not Selected state is active and the links al remian white.
    I have tried all manner of combinations and additonal tags with no success. Any suggestions greatly appreciated. I have not modified the default Javascript provided by BC in the system apart from allocating the required ulTagClass as specified. The Javascript in the supplied 'container.html' is as follows:
    <script type="text/javascript" >
        // ids need to be unique per page, use different ones if you are including multiple menus in the same page
        // id of the nav tag, used above
        var divTagId = "myMenu1";
        // desired id for 1st <ul> tag
        var ulTagId = "myMenu1List";
        // desired class for 1st <ul> tag
        var ulTagClass = "dropdown dropdown-vertical";
        if ((null !== ulTagId) && ("" !== ulTagId)) {
            document.getElementById(divTagId).getElementsByTagName("ul")[0].setAttribute("id",ulTagId );
        if ((null !== ulTagClass) && ("" !== ulTagClass)) {
            document.getElementById(divTagId).getElementsByTagName("ul")[0].className = ulTagClass;
        // this will set the selected state
        if ((null !== ulTagId) && ("" !== ulTagId)) {
            catSetSelectedCSSItem(ulTagId);
    </script>
    Lastly this is one of the recomended navs by BC at the following address: http://lwis.net/free-css-drop-down-menu/
    I have used these before with success but for the life of me this has stumped me big time.

    Hi Matthew,
    Having a super quick look at the code I'd say it's because of:
    ul.dropdown li.selected a {
        color: #ff871f;
    This affects all the child elements.
    To override this down the line you could do something like:
    ul.dropdown li.selected ul li a {
        color: #fff;
    This would override the parent link color when selected.
    You could probably then also add:
    ul.dropdown li.selected ul li.selected a {
        color: #ff871f;
    For the dropdown selected states.
    That's a quick look though so don't quote me too much

  • 'Missing select' error for update statement using WITH clause

    Hi,
    I am getting the below error for update statement using WITH clause
    SQL Error: ORA-00928: missing SELECT keyword
      UPDATE A
      set A.col1 = 'val1'
         where
      A.col2 IN (
      WITH D AS
      SELECT col2 FROM
      (SELECT col2, MIN(datecol) col3 FROM DS
      WHERE <conditions>
        GROUP BY PATIENT) D2
      WHERE
      <conditions on A.col4 and D2.col3>

    Hi,
    The format of a query using WITH is:
    WITH  d  AS
        SELECT  ...  -- sub_query
    SELECT  ...   -- main query
    You don't have a main query.  The keyword FROM has to come immediately after the right ')' that ends the last WITH clause sub-query.
    That explains the problem based on what you posted.  I can't tell if the real problem is in the conditions that you didn't post.
    I hope this answers your question.
    If not, post a complete test script that people can run to re-create the problem and test their ideas.  Include a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.
    In the case of a DML operation (such as UPDATE) the sample data should show what the tables are like before the DML, and the results will be the contents of the changed table(s) after the DML.
    Explain, using specific examples, how you get those results from that data.
    Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
    See the forum FAQ: https://forums.oracle.com/message/9362002

  • Having Trouble with nested Case Statements

    Hi Folks,
    I'm having trouble getting my head round nested case statements. For the life of me I cannot see what I'm missing here (unless my approach is all wrong).
    Any help much appreciated.
    Script:
    set serveroutput on format wrapped
    set feedback off
    set linesize 150
    DECLARE
    /* Set supported version here */
    ora_version VARCHAR2(4);
    unsupp_version EXCEPTION;
    /* Archive Log Info */
    db_log_mode VARCHAR2(12);
    BEGIN
    SELECT SUBSTR(VERSION, 1, 4)
    INTO ora_version
    FROM v$instance;
    SELECT log_mode
    INTO db_log_mode
    FROM v$database;
    CASE
    WHEN ora_version = '10.2' THEN
    DECLARE
    TYPE t_db IS RECORD(
    dflsh VARCHAR2(3),
    dcscn NUMBER);
    v_db t_db;
    BEGIN
    CASE
    WHEN db_log_mode = 'ARCHIVELOG' THEN
    EXECUTE IMMEDIATE 'SELECT INITCAP(flashback_on), current_scn FROM v$database'
    INTO v_db;
    DBMS_OUTPUT.PUT_LINE(' Flashback On : ' || v_db.dflsh);
    DBMS_OUTPUT.PUT_LINE(' Current SCN : ' || v_db.dcscn);
    DBMS_OUTPUT.PUT_LINE(' Log Mode : ' || db_log_mode);
    DBMS_OUTPUT.PUT_LINE(' Version : ' || ora_version);
    END;
    ELSE
    DBMS_OUTPUT.PUT_LINE(' Log Mode : ' || db_log_mode);
    DBMS_OUTPUT.PUT_LINE(' Version : ' || ora_version);
    END CASE;
    END;
    WHEN ora_version = '9.2' THEN
    DECLARE
    TYPE t_db IS RECORD(
    dcscn NUMBER);
    v_db t_db;
    BEGIN
    CASE
    WHEN db_log_mode = 'ARCHIVELOG' THEN
    EXECUTE IMMEDIATE 'SELECT current_scn FROM v$database'
    INTO v_db;
    DBMS_OUTPUT.PUT_LINE(' Current SCN : ' || v_db.dcscn);
    DBMS_OUTPUT.PUT_LINE(' Log Mode : ' || db_log_mode);
    DBMS_OUTPUT.PUT_LINE(' Version : ' || ora_version);
    END;
    ELSE
    DBMS_OUTPUT.PUT_LINE(' Log Mode : ' || db_log_mode);
    DBMS_OUTPUT.PUT_LINE(' Version : ' || ora_version);
    END CASE;
    END;
    ELSE
    RAISE unsupp_version;
    END CASE;
    EXCEPTION
    WHEN unsupp_version THEN
    DBMS_OUTPUT.PUT_LINE('');
    DBMS_OUTPUT.PUT_LINE(' Unsupported Version '||ora_version||' !');
    DBMS_OUTPUT.PUT_LINE('');
    END;
    set linesize 80
    set feedback on
    set serveroutput off
    Gives errors:
    END;
    ERROR at line 31:
    ORA-06550: line 31, column 7:
    PLS-00103: Encountered the symbol ";" when expecting one of the following:
    case
    ORA-06550: line 37, column 1:
    PLS-00103: Encountered the symbol "WHEN"
    ORA-06550: line 50, column 28:
    PLS-00103: Encountered the symbol ";" when expecting one of the following:
    case
    Edited by: milkyjoe on 28-Apr-2010 05:38

    Hi,
    Never write, much less post, unformatted code.
    Indent the code to show the extent of multi-line structures like BEGIN and CASE.
    For example:
    DECLARE
         /* Set supported version here */
         ora_version       VARCHAR2 (4);
         unsupp_version       EXCEPTION;
         /* Archive Log Info */
         db_log_mode      VARCHAR2 (12);
    BEGIN
         SELECT     SUBSTR(VERSION, 1, 4)
         INTO     ora_version
         FROM     v$instance;
         SELECT     log_mode
         INTO     db_log_mode
         FROM     v$database;
         CASE
             WHEN  ora_version = '10.2' THEN
              DECLARE
                  TYPE t_db IS RECORD(
                             dflsh     VARCHAR2(3),
                             dcscn      NUMBER);
                  v_db t_db;
              BEGIN
                  CASE
                      WHEN db_log_mode = 'ARCHIVELOG' THEN
                       EXECUTE IMMEDIATE 'SELECT INITCAP(flashback_on), current_scn FROM v$database'
                                           INTO v_db;
                       DBMS_OUTPUT.PUT_LINE(' Flashback On : ' || v_db.dflsh);
                       DBMS_OUTPUT.PUT_LINE(' Current SCN : ' || v_db.dcscn);
                       DBMS_OUTPUT.PUT_LINE(' Log Mode : ' || db_log_mode);
                       DBMS_OUTPUT.PUT_LINE(' Version : ' || ora_version);
                  END;
    ...The code above is what you posted, with some whitespace added.
    The error is much clearer; the last CASE statement concludes with END, but CASE blocks always have to conclude with END CASE .
    Why are you using a nested BEGIN block in the code above? Are you plannning to add an EXCEPTION handler later?
    When posting formatted text on this site, type these 6 characters:
    \(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Performance of state machine with enum vs string?

    I am laying out the groundwork for a very large state machine. It will have about 60 to 100 states. I kind of want to use an enum for selecting the states for convenience. But then if I use a string I can use Jim Carmody's case select tool so that wins out in convenience in one respect.
    One concern about using a string is performance. Since an enum is just an integer wouldn't the selections perform better? I need to squeeze out every ounce of performance and in fact this state machine will be set for subroutine priority. Another concern that I have about a typedef enum is that I have heard something about the possibility of them getting "out of sync" between VIs when you edit them. Is there some way to avoid that, such as making sure all VIs that use this typedef are in memory when editing it?
    =====================
    LabVIEW 2012

    Steve Chandler wrote:
    As for the number of states, I am pretty sure that it has to be one state machine. I'm afraid I cannot give a lot of details.
    I am having trouble figuring out the "has to" part.
    See this thread for designs I have posted previously.
    In this SM
    please look the section that is entered from "Change Request 8 " can take multiple paths but all ends at "Stop Monitoring? 15". I could have implemented that as a sub-SM and it would have reduced the number of state required for that part of the work from five to one.
    Any time I see "single entry, fan out, merge" I think sub-SM.
    This could also help with your shift register as well because (again seea bove) the bulk of the ose states deal with Logging so rather than use a SR, put what would have been in the SR (file path or ref) to be used there OR possibly an AE that can be used in each of those states.
    So I still don't understand why sub-SM aren't a possiblity.
    Trying to help,
    Ben 
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • My Ipod Touch is disabled and when I connect to Itunes to recover it, it states that itiTunes could not connect to the iPod touch "iPod touch" because it is locked with a passcode. You must enter your passcode on the iPod touch before it can recover.

    My Ipod Touch is disabled and when I connect to Itunes to recover it, it states that itiTunes could not connect to the iPod touch “iPod touch” because it is locked with a passcode. You must enter your passcode on the iPod touch before it can recover.

    Place the iOS device in Recovery Mode and then connect to your computer and restore via iTunes. The iPod will be erased.
    iOS: Forgot passcode or device disabled
    If recovery mode does not work try DFU mode.                        
    How to put iPod touch / iPhone into DFU mode « Karthik's scribblings        
    For how to restore:                                                             
    iTunes: Restoring iOS software
    To restore from backup see:
    iOS: Back up and restore your iOS device with iCloud or iTunes       
    If you restore from iCloud backup the apps will be automatically downloaded. If you restore from iTunes backup the apps and music have to be in the iTunes library since synced media like apps and music are not included in the backup of the iOS device that iTunes makes.
    You can redownload most iTunes purchases by:           
    Downloading past purchases from the App Store, iBookstore, and iTunes Store        
    If problem what happens or does not happen and when in the instructions? When you successfully get the iPod in recovery mode and connect to computer iTunes should say it found an iPod in recovery mode.

  • HT4623 My computer is not taking the new update from itunes. It states that i do not have the requirements to finish the Install and that it was Installed incorrectly. I have never had any issue with any previous update regarding iTunes. What is the issue

    My computer is not taking the new update from itunes. It states that i do not have the requirements to finish the Install and that it was Installed incorrectly. I have never had any issue with any previous update regarding iTunes. What is the issue?

    Hi there Double2D,
    You may find the troubleshooting steps in the article below helpful.
    iTunes 11.1.4 for Windows: Unable to install or open
    http://support.apple.com/kb/TS5376
    -Griff W. 

  • Custom taglib with nested tag not working

    Hi everybody,
    I have a question concerning a custom taglib. I want to create a tag with nested child tags. The parent tag is some kind of iterator, the child elements shall do something with each iterated object. The parent tag extends BodyTagSupport, i have overriden the methods doInitBody and doAfterBody. doInitBody initializes the iterator and puts the first object in the pageContext to be used by the child tag. doAfterBody gets the next iterator object and puts that in the pageContext, if possible. It returns with BodyTag.EVAL_BODY_AGAIN when another object is available, otherwise BodyTag.SKIP_BODY.
    The child tag extends SimpleTagSupport and does something with the given object, if it's there.
    In the tld-file I have configured both tags with name, class and body-content (tagdependent for the parent, empty for the child).
    The parent tag is being executed as I expected. But unfortunately the nested child tag does not get executed. If I define that one outside of its parent, it works fine (without object, of course).
    Can somebody tell me what I might have missed? Do I have to do something special with a nested tag inside a custom tag?
    Any help is greatly appreciated!
    Thanks a lot in advance!
    Greetings,
    Peter

    Hi again,
    unfortunately this didn't work.
    I prepared a simple example to show what isn't working. Perhaps it's easier then to show what my problem is:
    I have the following two tag classes:
    public class TestIterator extends BodyTagSupport {
        private Iterator testIteratorChild;
        @Override
        public void doInitBody() throws JspException {
            super.doInitBody();
            System.out.println("TestIterator: doInitBody");
            List list = Arrays.asList(new String[] { "one", "two", "three" });
            testIteratorChild = list.iterator();
        @Override
        public int doAfterBody() throws JspException {
            int result = BodyTag.SKIP_BODY;
            System.out.println("TestIterator: doAfterBody");
            if (testIteratorChild.hasNext()) {
                pageContext.setAttribute("child", testIteratorChild.next());
                result = BodyTag.EVAL_BODY_AGAIN;
            return result;
    public class TestIteratorChild extends SimpleTagSupport {
        @Override
        public void doTag() throws JspException, IOException {
            super.doTag();
            System.out.println(getJspContext().getAttribute("child"));
            System.out.println("TestIteratorChild: doTag");
    }The Iterator is the parent tag, the Child shall be shown in each iteration. My taglib.tld looks like the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <taglib
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1">
         <tlib-version>1.0</tlib-version>
         <short-name>cms-taglib</short-name>
         <uri>http://www.pgoetz.de/taglibs/cms</uri>
         <tag>
              <name>test-iterator</name>
              <tag-class>de.pgoetz.cms.taglib.TestIterator</tag-class>
              <body-content>tagdependent</body-content>
         </tag>
         <tag>
              <name>test-iterator-child</name>
              <tag-class>de.pgoetz.cms.taglib.TestIteratorChild</tag-class>
              <body-content>empty</body-content>
         </tag>
    </taglib>And the snippet of my jsp is as follows:
         <!-- TestIterator -->
         <cms:test-iterator>
              <cms:test-iterator-child />
         </cms:test-iterator>The result is that on my console I get the following output:
    09:28:01,656 INFO [STDOUT] TestIterator: doInitBody
    09:28:01,656 INFO [STDOUT] TestIterator: doAfterBody
    09:28:01,656 INFO [STDOUT] TestIterator: doAfterBody
    09:28:01,656 INFO [STDOUT] TestIterator: doAfterBody
    09:28:01,656 INFO [STDOUT] TestIterator: doAfterBody
    So the child is never executed.
    It would be a great help if anybody could tell me what's going wrong here.
    Thanks and greetings from germany!
    Peter
    Message was edited by:
    Peter_Goetz

  • ABAP Debugger-Is it possible to NOT execute a statement?

    Hello all,
    In ABAP debugger, is it possible to NOT execute a  statement? This will allow testing programs without having to change, generate and transporting the new version.
    Thank you for your help.
    AG

    hi,
          Debugger does not have this kind of functionality but if you want to do on that then put your code between an if else block and while debugging change the value of if else condition based on ur rwquirement as u know u can change value of varriable in debugger.
    Rewards if helpful.
    Regards
    Gagan

  • How to find for which select statement performance is more

    hi gurus
    can anyone suggest me
    if we have 2 select statements than
    how to find for which select statement performance is more
    thanks&regards
    kals.

    hi check this..
    1 .the select statement in which the primary and secondary keys are used will gives the good performance .
    2.if the select statement had select up to  i row is good than the select single..
    go to st05 and check the performance..
    regards,
    venkat

Maybe you are looking for

  • How to export binary images

    I am a neuroscientist developing a brain atlas and am using illustrator to produce the images needed. Basically I need to open up an .ai file that contains the brain image. I need to fill that with black, remove parts of it (haven't figured out how t

  • About Photoshop CS6 Extend update.

    I used Photoshop CS6 Extend for a while. I did update mamy times and it always shown Extension Manager 6.0.5 Update Installation failed. Error Code: U44M1P7 I need help and don't know what did I done wrong. Thank you. Ukrit Oonhateparuk

  • Desktop inner page lost

    Hi... I was modifying the default frame work.While doing that accidently i removed the desktop inner pagef from that. as i couldnt find out the desktop inner page again i added personlised portal page .But when i run the application and if i click on

  • I cannot get Elements 11 to launch from a new install.

    I have spent 1 1/2 hours trying to get elements 11 editor to start.

  • Exported images downsized

    With my last batch of photos i exported from Aperture to stock agencies, etc., they were exported at 1/2 size, i.e. in Aperture the image is 3888x2592, but exports at 1944x1296.  I have set my preferences at no limit, but does not help.  Previously,