Moving data from a subVI to mainVI - example code provided, help needed!

Hi all, I've written a set of VIs that are a part of a larger program, but I've come to a bit of a stumbling point and would appreciate some assistance.  The VI's are attached.  The mainVI calls subVI with a simple conditional.  When the subVI runs, it is used to generate an array that will be passed back to mainVI for use elsewhere in the program.
There are several things that I would like to have happen:
I want the 'load params' button in subVI to pass the array back to mainVI without having to close the subVI. 
Is it possible to still use shift registers and do this somehow??
I want the subVI to be able to remain open in the background if the user chooses, or to be able to be shut if the user chooses.
I can't figure out how to do this.
I'm open to suggestions, even if they include radically altering the way that the program is written.
thanks,
-z
Message Edited by zskillz on 10-25-2006 11:12 AM
Attachments:
mainVI.vi ‏10 KB
subVI.vi ‏17 KB

Hi Dennis,
Dennis Knutson wrote:
the attachment still didn't make it but there are a couple of ways you can do it without closing the subVI and using the wire. You can write to a global vairable in the subVI and read it in the main. You can create a control reference of an indicator of the main VI, wire this to the subVI and write to the reference's value property. You can start the subVI with an invoke node (run method) and then in the main, read the subVI's indicators with a Get Control Value (Variant) method. See this very recent post on the same subject for examples of the first two techniques.
1) I don't want to use globals.
2) If I use control references, then there's really no need to use the shift registers as I have them set up... correct?  Basically I'll just be writing to an indicator that's in the mainVI. I can then use that information however I please.  The problem I have with this is that I was really trying to avoid using references.  I think that they're quite difficult to follow when your trying to diagnose a problem or if you need to write very clean code that will be easy for someone else to read.
3) the 'get control value' sounds interesting, but I want subVI to control when the data is passed to mainVI, so I don't think this is the proper approach.  Am I incorrect?
also -- I've gone through the other threads on this topic many times before I posted this.  Some of them are helpful, some of them are less so.  Anyway, I couldn't not find an answer to the question about being able to maintiain the use of shift registers for this type of approach??
thanks
-z

Similar Messages

  • Which CKM is used for moving data from Oracle to delimited file ?

    Hi All
    Please let me know Which CKM is used for moving data from Oracle to delimited file ?
    Also is there need of defining each columns before hand in target datastore. Cant ODI take it from the oracle table itself ?

    Addy,
    A CKM is a Check KM which is used to validate data and log errors. It is not going to assist you in data movement. You will need an LKM SQL to File append as answered in another thread.
    Assuming that you have a one to one mapping, to make things simpler you can duplicate the Oracle based model and create a file based model. This will take all the column definitions from the Oracle based model.
    Alternatively, you can also use an ODI tool odiSQLUnload to dump the data to a file
    HTH

  • How do I get live data from a subvi while it is running ?

    Hi.
    I'm finishing up my little application, and one of the things I cant figure out to get to work is getting live data from a subvi and displaying it on my main vi's front panel.
    In my subvi I am sending about 10 commands to the serial port, each time updating a local variable that writes value to a progress indicator. I would like to get that indicator displayed on my main vi so I can see the progress of my subvi.
    Currently I have just linked the progress indicator on the sub to a terminal, and connected that to my main vi, but, that only updates when the sub finishes its mission. Is there a way to update the main while the sub is active ?
    Any ideas appreciated !
    /Brian

    In your VI Prg_all_sub, you are actually only writing out the progress bar once to the contol reference.  Once the code to the top has executed, it will never execute again although you continue to write values to the local variable PP throughout the program.
    The quickest fix would be to put that code at the top in a loop with a small time delay function.  That way it continues to execute every time a new value gets written to the local variable.  You would have to use a local variable stop button to stop hat loop wonce your string of VISA reads and writes executes.  Also make sure to reset that stop boolean to false once the loop ends so that the loop will execute properly the next time this sub VI is called.
    Other recommendations for cleaning up the programming is to use arrays or bundle values into clusters that you pass into and out of subVI's.  Prg_all_sub and MPS setup loader have numerous wires going into and out of the sub-VI's.  Bundling these together would simplify the wiring quite a bit.
    Note also that in a lot of places you send in a wire to an indicator and branch it off to a local variable of the same indicator.  That is redundant.  Sending the wire to the local variable does the same thing as sending the wire to the indicator.  Try to use wires instead of local variables as much as possible.  For instance, near the top you send the output of the VISA resource name control back into a local variable of itself, (not necessary) then use a local variable numerous times in the case structure below.  Just wire the name into the case structure border, and maintain the value through all of the loops using a shift register.  This will eliminate dozens of copies of the VISA resource name variable.
    In several places you concatenate a carriage return character to a string constant.  Just put a "\r" at the end of the string constant when it is shown in \ display.  Then you can eliminate the concatenation.
    I hope this helps you get your progress bar working and help simplify the code for you.
    Message Edited by Ravens Fan on 08-13-2007 09:34 AM

  • Stream data from a subvi to the main vi - path refnum

    hello everyone
    sorry my english
    http://forums.ni.com/t5/LabVIEW/stream-data-from-a-subvi-to-the-main-vi/m-p/2205150/highlight/true#M...
    - refnum boolean worked
    - refnum graph worked
    - refnum numeric worked
    how to create a  path refnum? stream data from a subvi to the main vi
    where do I start?
    thank
    Solved!
    Go to Solution.

    Bom Dia Saille,
    Eu acredito que o que você tenha hoje seja isso aqui (Desenho bem simplificado):
    Hoje o que você tem é o Aplicativo do Medidor + USB Driver controlando o seu medidor. Basicamente, sua aplciação está dividida em três camadas:
    Aplicação - Onde estão as funcionalidades principais do programa (interface com o usuário, apresentação de dados, geração de arquivos, etc.)
    VISA - Uma arquitetura de Software para controle de instrumentos. Basicamente, ele se comunica com o Driver USB para poder enviar e receber pacotes de dados através do barramento USB.
    Device Driver - Intruções de SW de baixo nível para controlar um periférico através de um barramento.
    No desenho, eu aponto duas camadas onde você pode tentar atuar para automatizar suas medições:
    Aplicação - Você pode usar o VI Server para controlar o Aplicativo do Medidor (Se este aplicativo tiver sido desenvolvido em LabVIEW, o que eu suponho ser verdade). No entanto é necessário saber se o desenvolvedor do produto permitiu isso (Veja Using VI Server to Pass Data Between a VI and a LabVIEW Executable). Outra alternativa é conversar com o fabricante para ver se ele desenvolveu alguma API (Application Programming Interface) para que você consiga controlar o instrumento diretamente.
    VISA - O LabVIEW Fornece uma API chamada NI-VISA para poder enviar e receber informações através de diversos barramentos (Veja Serial Instrument Control Tutorial)
    É possível acessar o Driver diretamente também, mas eu não recomendo. O resultado não compensa o esfroço!
    Espero ter esclarecido suas dúvidas e espero que você tenha sucesso na sua aplicação!!
    Atenciosamente.
    Felipe Flores
    Engenharia de Aplicações
    National Instruments Brasil

  • Moving Data from Normal table to History tables

    Hi All,
    I'm in the process of moving data from normal tables to
    History tables.
    It can be some sort of a procedure which should be a cron job running at night.
    My aim is to move data say 1.5 yrs or 2yrs old data to History tables.
    What aspects i need to check when moving data. And how can i write a procedure for this requirement.
    The schema is same in both the normal table and history table.
    It has to be a procedure based on particular field RCRE_DT.
    If the rcre_dt is above 2 yrs the data needs to be moved to HIS_<table>.
    I have to insert record in to HIS_table and simultaneously delete record from the normal table.
    This is in Production system and the tables are quite big.
    Pls do find enclosed the attached sample schema for Normal table and HIS_<table>.
    If i want to automate this script as a Cron job for similarly other History tables
    how am i to do it in a single procedure assuming the procedure for moving the data is the same procedure.
    Thanks for ur help in advance.
    SQL> DESC PXM_FLT;
    Name Null? Type
    RCRE_USER_ID NOT NULL VARCHAR2(15)
    RCRE_DT NOT NULL DATE
    LCHG_USER_ID VARCHAR2(15)
    LCHG_DT DATE
    AIRLINE_CD NOT NULL VARCHAR2(5)
    REF_ID NOT NULL VARCHAR2(12)
    BATCH_DT NOT NULL DATE
    CPY_NO NOT NULL NUMBER(2)
    ACCRUAL_STATUS NOT NULL VARCHAR2(1)
    FLT_DT NOT NULL DATE
    OPERATING_CARRIER_CD NOT NULL VARCHAR2(3)
    OPERATING_FLT_NO NOT NULL NUMBER(4)
    MKTING_CARRIER_CD VARCHAR2(3)
    MKTING_FLT_NO NUMBER(4)
    BOARD_PT NOT NULL VARCHAR2(5)
    OFF_PT NOT NULL VARCHAR2(5)
    AIR_CD_SHARE_IND VARCHAR2(1)
    UPLOAD_ERR_CD VARCHAR2(5)
    MID_PT1 VARCHAR2(5)
    MID_PT2 VARCHAR2(5)
    MID_PT3 VARCHAR2(5)
    MID_PT4 VARCHAR2(5)
    MID_PT5 VARCHAR2(5)
    PAX_TYPE VARCHAR2(3)
    PAY_PRINCIPLE VARCHAR2(1)
    SQL> DESC HIS_PXM_FLT;
    Name Null? Type
    RCRE_USER_ID NOT NULL VARCHAR2(15)
    RCRE_DT NOT NULL DATE
    LCHG_USER_ID VARCHAR2(15)
    LCHG_DT DATE
    AIRLINE_CD NOT NULL VARCHAR2(5)
    REF_ID NOT NULL VARCHAR2(12)
    BATCH_DT NOT NULL DATE
    CPY_NO NOT NULL NUMBER(2)
    ACCRUAL_STATUS NOT NULL VARCHAR2(1)
    FLT_DT NOT NULL DATE
    OPERATING_CARRIER_CD NOT NULL VARCHAR2(3)
    OPERATING_FLT_NO NOT NULL NUMBER(4)
    MKTING_CARRIER_CD VARCHAR2(3)
    MKTING_FLT_NO NUMBER(4)
    BOARD_PT NOT NULL VARCHAR2(5)
    OFF_PT NOT NULL VARCHAR2(5)
    AIR_CD_SHARE_IND VARCHAR2(1)
    UPLOAD_ERR_CD VARCHAR2(5)
    MID_PT1 VARCHAR2(5)
    MID_PT2 VARCHAR2(5)
    MID_PT3 VARCHAR2(5)
    MID_PT4 VARCHAR2(5)
    MID_PT5 VARCHAR2(5)
    PAX_TYPE VARCHAR2(3)
    PAY_PRINCIPLE VARCHAR2(1)

    Hi All,
    Thanks for ur valuable suggestion.But can u explain me bit more on this as i'm still confused about switching between partitoned tables and temporary table.Suppose if i have a table called PXM_FLT and an correspoding similar table named HIS_PXM_FLT.How can i do the partitioning shd i do the partitioning on the normal table or HIS_PXM_FLT.i do have a date field for me to partition based on range.Can u pls explain why shd i again create a temp.table.What's the purpose.Now the application is designed in such a way that old records have to be moved to HIS_PXM_FLT.can u pls highlight more on this.Your suggestions are greatly appreciated.As i'm relatively new to this partitioning technique i'm bit confused on how it works.But i came to understand Partitioning is a better operation than the normal insert or delte as it is more data intensive as millions of record need to be moved.Thanks for feedback and ur precious time.

  • Moving data from an array to a JTable

    Hi,
    I am facing some problems with handling array data to JTable.
    My objective is moving data from a 10X5 data array to a JTable.
    I am using the following code:
    String columnNames = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5" };
    for(int j=0; j<10; j++)
    data[ j ] = array1[ j ] + array2[ j ] + array3[ j ] + array4[ j ] + array5[ j ];
    JTable table = new JTable( data, coulmnNames);
    Can you please help me with the error in tha above code.My array1 is a String array and the other four arrays are of Integer data type.
    Thanks!!!

    hi,
    The actual error message is:
    [root@localhost java]# javac GUI.java
    GUI.java:144: incompatible types
    found : int
    required: java.lang.Object
    data [j] [1] = array1[j];
    ^
    GUI.java:145: incompatible types
    found : int
    required: java.lang.Object
    data [j] [2] = array2[j];
    ^
    GUI.java:146: incompatible types
    found : int
    required: java.lang.Object
    data [j] [3] = array3[j];
    ^
    GUI.java:147: incompatible types
    found : int
    required: java.lang.Object
    data [j] [4] = array4[j];
    ^
    4 errors
    My code segment with line no goes as follows:
    private static JTable createTable() {         
           String[] columnNames = { "Col 1", "Col 2", "Col 3", "Col 4"' "Col 5" };
             Object data [ ] [ ] = new Object [10] [5];
       for( int j=0; j<10; j++)
              data [j] [0] = array1[j]; ...................Line:144
              data [j] [1] = array2[j]; ..................Line 145
              data [j] [2] = array3[j]; ....................Line 146
              data [j] [3] = array4[j]; .................Line 147
              data [j] [4] = array5[j];
      final JTable table = new JTable(data, columnNames);
      return table;
    [code/]
    Array 1 is declared as String array and Array 2,3,4,5 are declared as Integer arrays.The error is coming from the Integer arrays only.
    Java version running on my machine is: 1.4.2
    Please help!!!
    Thanks!!!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Moving data from flat file

    Hi,
    I am moving data from flat file to oracle table. while populating the oracle table if I get any errors in flat file those errors should populate in ODI error table.
    Is this is possible? if yes. Could you please let me know the set up in ODI.

    CKM is the dedicated for checking the constraints while doing transformation. The constraints includes, PK,FK, conditions etc.,
    There are two types/ways of checking the constraints.
    Flow Control: Triggered CKM after data is loaded in to I$.
    Static Control : Triggered CKM after data is loaded in to target table.
    If you opt for any one the above ODI will create E$ and SNP_CHECK_TAB (summary table for logging the errors) and load the error records.
    ODI will also provide you an option of loading the corrected error records by RECYCLE ERROR feature. In this phase/run ODI will load ONLY the error records in to target table (assuming its been corrected/cleaned).
    **how to set up flow control could you please provide steps**
    **Appreciate your help**

  • Error occurred moving data from the transformation RECON_SEQ_GEN: to the transformation FILTRANS.

    Hi,
    Today one my task in the DAC Etl failed and when I opened the DAC log file of it. I saw the error description as below
    Error while contacting Informatica server for getting workflow status for PLP_SRC_WH_AP_Invoice_Reconciliation
    Error Code = 36331:Unknown reason for error code 36331
    Since there is no much information in DAC log file about the failure, I opened the PLP_SRC_WH_AP_Invoice_Reconciliation session log file.
    The error description in the session log file says.
    There is an error in the port [NEXTVAL]: The default value for the port is set to: ERROR(<<Expression Error>> [ERROR]: transformation error
    ... nl:ERROR(u:'transformation error')).
    2014-01-14 08:00:45 : ERROR : (582188 | TRANSF_1_1_1) : (IS | Oracle_BI_DW_Server) : node01_ : TT_11023 : An error occurred converting data in the port [NEXTVAL]. The row was dropped.
    2014-01-14 08:00:45 : ERROR : (582188 | TRANSF_1_1_1) : (IS | Oracle_BI_DW_Server) : node01_ : TT_11021 : An error occurred moving data from the transformation RECON_SEQ_GEN: to the transformation FILTRANS.
    2014-01-14 08:00:45 : ERROR : (582188 | TRANSF_1_1_1) : (IS | Oracle_BI_DW_Server) : node01 : CMN_1086 : RECON_SEQ_GEN: Number of errors exceeded threshold [1].
    2014-01-14 08:00:45 : INFO : (582188 | TRANSF_1_1_1) : (IS | Oracle_BI_DW_Server) : node01_ : CMN_1053 : : Rowdata: ( RowType=-4(error but dropped due to abort) Src Rowid=1186281 Targ Rowid=1186281
      NEXTVAL (ROW_WID:Int:): "(NULL)"
    I am not sure of this error and I have never seen before. Can any one share some ideas on how to tackle this error and make the task execute successfully.
    Many Thanks.

    Hi,
    fist check weather any special characteristics if not
    check in data source under this we have fields tab check the format of a particular field format internal/external/check u choose internal format, if any check routine once
    use Semantic Groups in the DTP.
    Try  it
    Thanku
    lokeeshM
    Edited by: lmedaSAP_BI on Oct 20, 2010 6:44 AM

  • Access data from a SubVi to the MainVi while the SubVi is still Running

    I want to pass some Boolean/String from a subvi to the main vi while the subvi is still running. 
    I understand that it could be done using queue/ notifier. I do not want to use global variables. I looked at different examples but failed to figure out how to do it.
    I was trying to make an example by looking at an example from Labview about notifier. 
    Can anyone please help me with this code and guide me to the correct way.
    Thanks.
    Attachments:
    mainVi.vi ‏9 KB
    SubVi.vi ‏11 KB

    Hi babu726,
    I have included a revised MainVi.vi and SubVi.vi for you. I had to modify the SubVi to get it to be called by the MainVi. I also included a disabled diagram structure with the code just copied and pasted in, since your code does not seem modular. Hopefully this helps!
    Regards,
    Michelle G
    Applications Engineering
    National Instruments
    Attachments:
    SubVi.vi ‏11 KB
    mainVi.vi ‏16 KB

  • Is it possible to pass data from a subVI before that subVI has finished executing?

    Basically this is my problem:
    1.  I have a subVI which contains a loop that reads data from a device for a specified amount of time.
    2.  I would like to graph this data in real time on the front panel of the main VI.
    So is there a way to pass data from inside the loop of my subVI to the graph of my main VI before the subVI has finished executing, and if so how do I do this?
    Thank you.

    How about using a global variable or a Queue?

  • Moving data from internal table to Dynamic internal table

    Hello All,
      I am facing a problem i moving the data from a internal table data to Dyn. internal table.
    My code is as follows
    *******Declartion**************************************
    DATA: IT_FIELDCAT TYPE LVC_T_FCAT,
          IS_FIELDCAT LIKE LINE OF IT_FIELDCAT.
    DATA: IT_OUTTAB TYPE STANDARD TABLE OF ZVTEST.
    DATA: WA_OUTTAB TYPE  ZVTEST.
    DATA: LV_LINE LIKE SY-TABIX,
           COUNT TYPE I.
    FIELD-SYMBOLS: <NEW_TABLE> TYPE REF TO DATA.
    FIELD-SYMBOLS: <L_TABLE> TYPE ANY TABLE,
                   <L_LINE> TYPE ANY.
    FIELD-SYMBOLS: <L_FIELD> TYPE ANY.
    FIELD-SYMBOLS: <FS_DATA> TYPE REF TO DATA,
                   <FS_1> TYPE ANY TABLE,
                   <FS_2>,
                   <FS_3>.
    DATA: NEW_LINE TYPE REF TO DATA.
    DATA: LT_DATA TYPE REF TO DATA.
      ASSIGN LT_DATA TO <FS_DATA>.
    Create a new Table
      CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
      EXPORTING
            IT_FIELDCATALOG = IT_FIELDCAT
      IMPORTING
            EP_TABLE = <FS_DATA>
      EXCEPTIONS
          GENERATE_SUBPOOL_DIR_FULL = 1
          OTHERS                    = 2.
      IF SY-SUBRC = 0.
        ASSIGN <FS_DATA>->* TO <FS_1>.
        CREATE DATA NEW_LINE LIKE LINE OF <FS_1>.
    A field-symbol to access that work area
        ASSIGN NEW_LINE->*  TO <FS_2>.
      LOOP AT IT_OUTTAB INTO WA_OUTTAB.
        MOVE-CORRESPONDING WA_OUTTAB TO <FS_1>.
      ENDLoop.
    But when I am using MOVE-CORRESPONDING WA_OUTTAB TO <FS_1>.
    I am getting the error like
    "<FS_1>" is not a structure or internal table with header line.          
    Please check the code and tell where I am making the mistake.
    Regards,
    Vasanth

    Hello Rich ,
    My is code is as below..
    Declaration:
    DATA: IT_FIELDCAT TYPE LVC_T_FCAT,
          IS_FIELDCAT LIKE LINE OF IT_FIELDCAT.
    DATA: BEGIN OF IT_OUTTAB OCCURS 0,
            PSPID     LIKE PROJ-PSPID, "Projektdefinition
            POSID     LIKE PRPS-POSID, "PSP-Element
            POST1     LIKE PRPS-POST1, "Kurzbeschreibung
            STTXT_INT LIKE CNJ_STAT-STTXT_INT, "Systemstatus
            STTXT_EXT LIKE CNJ_STAT-STTXT_EXT, "Anwenderstatus
          END OF IT_OUTTAB.
    DATA: WA_OUTTAB LIKE IT_OUTTAB.
    DATA: LV_LINES LIKE SY-TABIX,
           COUNT TYPE I.
    FIELD-SYMBOLS:  type any.
    DATA: NEW_LINE TYPE REF TO DATA.
    DATA: LT_DATA TYPE REF TO DATA.
      G_R_DISP_VARIANT-REPORT = SY-REPID.
      G_R_DISP_VARIANT-VARIANT = PA_VAR.
      CALL FUNCTION 'REUSE_ALV_VARIANT_SELECT'
           EXPORTING
                I_DIALOG            = 'N'
                I_USER_SPECIFIC     = 'A'
                I_DEFAULT           = 'X'
                IT_DEFAULT_FIELDCAT = G_T_FIELDCAT
                I_LAYOUT            = G_R_LAYOUT
           IMPORTING
                ET_FIELDCAT         = G_T_FIELDCAT
               et_sort             = l_tab_sort
               et_filter           = l_tab_filter
               ES_LAYOUT           = G_R_LAYOUT
           CHANGING
                CS_VARIANT          = G_R_DISP_VARIANT
           EXCEPTIONS
                ERROR_MESSAGE       = 4
                OTHERS              = 4.
      LOOP AT G_T_FIELDCAT INTO G_R_FIELDCAT WHERE NO_OUT IS INITIAL
                                               AND TECH IS INITIAL.
        MOVE-CORRESPONDING G_R_FIELDCAT TO IS_FIELDCAT.
        IS_FIELDCAT-FIELDNAME = G_R_FIELDCAT-FIELDNAME.
        IS_FIELDCAT-INTTYPE   = G_R_FIELDCAT-INTTYPE.
        IS_FIELDCAT-OUTPUTLEN = G_R_FIELDCAT-OUTPUTLEN.
        IS_FIELDCAT-REF_FIELD = G_R_FIELDCAT-FIELDNAME.
        IS_FIELDCAT-REF_TABLE = G_R_FIELDCAT-REF_TABNAME.
        APPEND IS_FIELDCAT TO IT_FIELDCAT.
      ENDLOOP.
      DATA: WA_LISTE LIKE P_T_LISTE.
      CLEAR:IT_OUTTAB.
      REFRESH: IT_OUTTAB.
      LOOP AT P_T_LISTE INTO WA_LISTE.
        WA_OUTTAB-PSPID = WA_LISTE-PSPID .
        WA_OUTTAB-POSID = WA_LISTE-POSID.
        WA_OUTTAB-POST1 = WA_LISTE-POST1.
        WA_OUTTAB-STTXT_INT = WA_LISTE-STTXT_INT.
        WA_OUTTAB-STTXT_EXT = WA_LISTE-STTXT_EXT.
        APPEND WA_OUTTAB TO IT_OUTTAB.
      ENDLOOP.
    **dynamic table creation for data
      ASSIGN LT_DATA TO .
    Create a new Table
      CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
      EXPORTING
            IT_FIELDCATALOG = IT_FIELDCAT
      IMPORTING
            EP_TABLE = .
    A field-symbol to access that work area
        ASSIGN NEW_LINE->*  TO  = WA_OUTTAB-PSPID.
         ASSIGN COMPONENT 'POSID' OF STRUCTURE WA_OUTTAB TO <FS_3>.
          ASSIGN COMPONENT 'POSID' OF STRUCTURE  = WA_OUTTAB-POSID.
         ASSIGN COMPONENT 'POST1' OF STRUCTURE WA_OUTTAB TO <FS_3>.
          ASSIGN COMPONENT 'POST1' OF STRUCTURE .
         <FS_5> = <FS_3>.
           = WA_OUTTAB-POST1.
         ASSIGN COMPONENT 'STTXT_INT' OF STRUCTURE WA_OUTTAB TO <FS_3>.
          ASSIGN COMPONENT 'STTXT_INT' OF STRUCTURE  TO P_FILE.
        ENDLOOP.
      ELSE.
        MESSAGE E041(S9) WITH P_FILE.
      ENDIF.
      CLOSE DATASET P_FILE.
    Here my problem is ´´, I am not able to use move corresponding statement.
    So I am not getting the exact values to the fields of the dynamic table...
    Please check it and give me a solution,
    Regards,
    Vasanth

  • Extract data from a subvi in a subpanel

    Hi,
    I'm modifying a huge existing vi-program (300+ subvi). Among other things I want to change the main vi and the user interface. My main goal is to have a menu bar (listbox) to the left and sub-panel to the right where subvis are opened whenever the user change selection in the menu bar. This, I can do with invoke nodes.
    The challenge for me (and for you - if you accept) is to save the changes done by the user so they reappear when the user re-select that particular point in the menu.
    Secondly, I would like/need to extract the settings from the subvis (when the user makes another selection in the menu) to the main vi so I can use the settings in other subvis.
    Thirdly, I would like the subvi, open in the subpanel, to be in run mode, for the interface to be interactive.
    I have mange to make a draft-vi, but I fear that it will require too much computer power and memory when it has to be able to call 30 different subvis. I also feel that the data/setting extraction is a bit clumsy and could become quite messy when expanded. My solution to make the called subvi interactive is fairly simple, but I hope another solution could appear in the discussion.
    FYI, the program has to be made executable at some point.
    I really hope someone can bring my some inputs or comments to my draft-vi.
    eskrut
    Solved!
    Go to Solution.
    Attachments:
    FrontPanel.vi ‏22 KB
    Task.vi ‏6 KB
    Application.vi ‏6 KB

    You have a very good idea. I have used it many times myself. But let's think things through a bit more:
    You want to be able to pass data between plugin modules - which is a Good and Useful Thing.
    When you get this running it would be another Good and Useful Thing to be able to reuse the architecture. Wheel reinventing is a Bad Thing.
    If the user interface knows what the data look likes that is being passed between plugin VIs, it will limit your ability to fulfill Point #2.
    So let's take things one small step further and say that the data passed between the plugins is private data that the plugins hide from the user interface (henceforth to be know as the reusable application framework).
    In this scenario the reusable application framework has only one job: Opening plugins, starting them running and putting them in the subpanel. (ok so that's three things - nobody expects the Spanish Inquisition).
    So how do you pass data? Functional globals, databases, events, notifiers, depending upon the details of what the plugins do, there are a bunch of alternatives.
    Mike...
    PS: The event for handling the selection should have all the code in it for managing the plugin. You can fire the event programatically during initialization to get things started. Likewise the list of options for selection can be populated programatically when the application starts.
    PPS: Now that the reusable application framework has so little to do, give some thought to some other things it might have time to do - like providing a standardized error reporting mechanism; implementing a standardized menu structure that the plugins can hook into if they need to; or providing some common on-screen buttons that the plugins can use.
    PPPS: Databases are a Very Good Thing.
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • What are required Oracle products for moving data from IBM IMS/DB(mainframe) to Oracle environment?

    I am z/OS system programmer, our company is using IMS as its main OLTP database. We are investigating moving data off the mainframe for data warehousing and online fraud detection. One option is using IBM InfoSphere CDC and DB2, another option is using IMS connect and writing our own program, I am wondering what is the oracle solution for this kind of issue?
    I am not oracle technician but I googled and find out Oracle has some product like Oracle Legacy Adapters, OracleAS CDC Adapter and Oracle Connect on z/OS, however I didn't find them in Oracle site(https://edelivery.oracle.com/), I don't know whether these products are deprecated or not?!
    I would very much appreciate any help or guidance you are able to give me

    Thank you for responding.
    I've considered dumping the data into a flat file and using SQL*Loader to import as you suggest but this would require some scripting on a per-table basis. Again: all I want to do is to copy the contents of a table from one database to another. I do not think I should have to resort to creating my own dump and load scripts in order to do that. However I agree with you that this type of solution may be my final solution.
    I've tried the db link solution. It was just a slow as the 'imp' solution for some reason. Don't know why. The tables are rather large (3 tables of a few Gb each) and therefore require intermediate commits when loaded. Otherwise the rollback segment will run out of space. So the 'db link solution' is really a PL/SQL script with a commit for each x records.
    I think Oracle is making it a bit difficult for me to copy the contents of a table from one database to another and to do it efficiently. Perhaps I'm missing something here?

  • Switching/Moving Data from Powerbook to MacBook

    Hey All,
    I just received a new MacBook, and I need to go about moving my information from one to the other. I have a LaCie external with most of my applications and documents on it, but I'm wondering about moving things like my mail accounts (with its "on my mac" mailboxes), address book contacts, etc.
    Also, if I have programs like MS Word, which I had to supply a code in order to install on my Powerbook, will I need to supply a new code to put it on the MacBook, even if I'm transferring it through my external hardrive from the G4?
    Thanks,
    Drayton

    A Basic Guide for Migrating to Intel-Macs
    If you are migrating a PowerPC system (G3, G4, or G5) to an Intel-Mac be careful what you migrate. Keep in mind that some items that may get transferred will not work on Intel machines and may end up causing your computer's operating system to malfunction.
    Rosetta supports "software that runs on the PowerPC G3 or G4 processor that are built for Mac OS X". This excludes the items that are not universal binaries or simply will not work in Rosetta:
    Classic Environment, and subsequently any Mac OS 9 or earlier applications
    Screensavers written for the PowerPC
    System Preference add-ons
    All Unsanity Haxies
    Browser and other plug-ins
    Contextual Menu Items
    Applications which specifically require the PowerPC G5
    Kernel extensions
    Java applications with JNI (PowerPC) libraries
    See also What Can Be Translated by Rosetta.
    In addition to the above you could also have problems with migrated cache files and/or cache files containing code that is incompatible.
    If you migrate a user folder that contains any of these items, you may find that your Intel-Mac is malfunctioning. It would be wise to take care when migrating your systems from a PowerPC platform to an Intel-Mac platform to assure that you do not migrate these incompatible items.
    If you have problems with applications not working, then completely uninstall said application and reinstall it from scratch. Take great care with Java applications and Java-based Peer-to-Peer applications. Many Java apps will not work on Intel-Macs as they are currently compiled. As of this time Limewire, Cabos, and Acquisition are available as universal binaries. Do not install browser plug-ins such as Flash or Shockwave from downloaded installers unless they are universal binaries. The version of OS X installed on your Intel-Mac comes with special compatible versions of Flash and Shockwave plug-ins for use with your browser.
    The same problem will exist for any hardware drivers such as mouse software unless the drivers have been compiled as universal binaries. For third-party mice the current choices are USB Overdrive or SteerMouse. Contact the developer or manufacturer of your third-party mouse software to find out when a universal binary version will be available.
    Also be careful with some backup utilities and third-party disk repair utilities. Disk Warrior (does not work), TechTool Pro (pre-4.5.1 versions do not work), SuperDuper (newest release works), and Drive Genius (untested) may not work properly on Intel-Macs. The same caution may apply to the many "maintenance" utilities that have not yet been converted to universal binaries.
    Before migrating or installing software on your Intel-Mac check MacFixit's Rosetta Compatibility Index.
    Additional links that will be helpful to new Intel-Mac users:
    Intel In Macs
    Apple Guide to Universal Applications
    MacInTouch List of Compatible Universal Binaries
    MacInTouch List of Rosetta Compatible Applications
    MacUpdate List of Intel-Compatible Software
    Transferring data with Setup Assistant - Migration Assistant FAQ
    Because Migration Assistant isn't the ideal way to migrate from PowerPC to Intel Macs, using Target Disk Mode or copying the critical contents to CD and DVD or an external hard drive will work better when moving from PowerPC to Intel Macs.
    Basically the instructions you should follow are:
    1. Backup your data first. This is vitally important in case you make a mistake or there's some other problem.
    2. Connect a Firewire cable between your old Mac and your new Intel Mac.
    3. Startup your old Mac in Target Disk Mode.
    4. Startup your new Mac for the first time, go through the setup and registration screens, but do NOT migrate data over. Get to your desktop on the new Mac without migrating any new data over.
    4. Copy the following items from your old Mac to the new Mac:
    In your /Home/ folder: Documents, Movies, Music, Pictures, and Sites folders.
    In your /Home/Library/ folder:
    /Home/Library/Application Support/AddressBook (copy the whole folder)
    /Home/Library/Application Support/iCal (copy the whole folder)
    Also in /Home/Library/Application Support (copy whatever else you need including folders for any third-party applications)
    /Home/Library/Keychains (copy the whole folder)
    /Home/Library/Mail (copy the whole folder)
    /Home/Library/Preferences/com.apple.mail.plist (* This is a very important file which contains all email account settings and general mail preferences.)
    /Home/Library/Preferences/ copy any preferences needed for third-party applications
    /Home /Library/iTunes (copy the whole folder)
    /Home /Library/Safari (copy the whole folder)
    If you want cookies:
    /Home/Library/Cookies/Cookies.plist
    /Home/Library/Application Support/WebFoundation/HTTPCookies.plist
    For Entourage users:
    Entourage is in /Home/Documents/Microsoft User Data
    Also in /Home/Library/Preferences/Microsoft
    Credit goes to another forum user for this information.
    If you need to transfer data for other applications please ask the vendor or ask in the Discussions where specific applications store their data.
    5. Once you have transferred what you need restart the new Mac and test to make sure the contents are there for each of the applications.
    Written by Kappy with additional contributions from a brody.

  • Moving DATA from Internal Table to Ranges

    Hi All,
    I have an Internal table and a range variable both  contain one field. Internal table is having only one table. I am populating the table data from a select query. Now I want to transfer the data to a range field. The internal table is having thousands of records so I want to do this <b>without LOOP</b>. Can anybody suggest the efficient way to achieve this?
    Any help would be appreciated.
    Thanks so much.
    Jignesh.

    ... the sump with too big range tables is a pure oracle sickness. AFAIK the size limit for the select statement has been extended from 16k to 32k, so this danger is smaller than it used to be.
    Anyway you can use the FOR ALL ENTRIES IN clause and the ABAP-SQL-interface will handle the package size very efficienly. There was a time I believed that FOR ALL ENTRIES IN should not be used because it would slow down the data selection. I have learned that this is not true at all because of the package technique.
    And now for everyone who wants to built ranges of any size (no limit for internal tables):
    Call this like (just as an example for initializing select-options:
    PERFORM append_range USING:
      'IEQ' sy-datum(4) '' CHANGING s_gjahr[],
      'IBT' 1 'ZZZZZZZZZZ' CHANGING s_prctr[],
      'IBT' 1 16           CHANGING s_monat[].
    Note that SIGN and OPTION are combined into one parameter saving time and gaining overview (?).
    I created the FORM once and used it so many times...
    Actually you don't need so many "CHECK sy-subrc = 0" if you know how to use the form.
    *&      Form  append_range
          append selection range
    FORM append_range  USING    p_signopt     TYPE c
                                p_low         TYPE any
                                p_high        TYPE any
                       CHANGING pt_range      TYPE table.
      FIELD-SYMBOLS:
        <range>                               TYPE ANY,
        <sign>                                TYPE ANY,
        <option>                              TYPE ANY,
        <low>                                 TYPE ANY,
        <high>                                TYPE ANY.
      DATA:
        l_ref                                 TYPE REF TO data.
      CREATE DATA l_ref                       LIKE LINE OF pt_range.
      ASSIGN l_ref->* TO <range>.
      CHECK sy-subrc                          = 0.
      ASSIGN COMPONENT 'SIGN' OF STRUCTURE <range> TO <sign>.
      CHECK sy-subrc                          = 0.
      ASSIGN COMPONENT 'OPTION' OF STRUCTURE <range> TO <option>.
      CHECK sy-subrc                          = 0.
      ASSIGN COMPONENT 'LOW' OF STRUCTURE <range> TO <low>.
      CHECK sy-subrc                          = 0.
      ASSIGN COMPONENT 'HIGH' OF STRUCTURE <range> TO <high>.
      CHECK sy-subrc                          = 0.
      <sign>                                  = p_signopt(1).
      <option>                                = p_signopt+1(2).
      <low>                                   = p_low.
      <high>                                  = p_high.
      APPEND <range> TO pt_range.
    ENDFORM.                    " append_range
    Enjoy your ranges,
    Clemens

Maybe you are looking for