Using SQVI To Generate Program in DEV

I have read a lot about the merits of using SQVI for simple queries and then generating the code and assigning to a transaction code so that others can run the query/report. I have found posts in this forum that suggest using SE93 to create a transaction code and assign the SQVI generated program is the only way that an SQVI query can be shared. I certainly hope they were not assuming that users have SE93 in a production environment??
My question is, if I create this query and generate the program in our DEV environment and then assign it to a transaction code, can this be transported from DEV to TST to PRD intact? Will this work?
One other question, when the program is generated does it also create the required authorization checks? I am using USR* tables for this report, nothing considered sensitive, would any additional authorizations be required to allow just about any user to run the transaction?
Disclosure, I am a power user and not an ABAP specialist.
I appreciate a speedy reply if that is possible.
Thanks
Mark

Hi Mark,
             I have faced same requirement. I am not sure about transporting to TST and PROD. I done by this way.
After generating SQVI program in DEV , I assigned that program  to a transaction and tested in DEV. Later i have regenarated SQVI in Production. then I assigned the generated Program to same transaction in DEV. And transported the Tcode assignment of program to Production..
About authorization , if its not sensitive report, BASIS can restrict at transaction level.
Regards,
Ravi.

Similar Messages

  • Using SQVI to generate report of open and released delivery schedule lines

    All,
    I'm using SQVI  to generate an excel spreadsheet for some buyers to show open released schedule lines because they are a 1 line item per scheduling agreement company.
    I used the logical database MEPOLDB instead of a table joint and pulled fields from EKKO(vendor, SA #,&purchasing group), EKPO(Material Number), EKEH(schedule line type), and EKET(delivery date, scheduled qty,previous qty).
    Does this sound like I'll get the results I want on paper as long as I use the right selection criteria, because the report I'm getting isn't quite what I expect? I am unable to identify which lines are authorized to ship vs. trade-off zone, planning, etc. in the report thus far.

    Hi Mark,
                 I have faced same requirement. I am not sure about transporting to TST and PROD. I done by this way.
    After generating SQVI program in DEV , I assigned that program  to a transaction and tested in DEV. Later i have regenarated SQVI in Production. then I assigned the generated Program to same transaction in DEV. And transported the Tcode assignment of program to Production..
    About authorization , if its not sensitive report, BASIS can restrict at transaction level.
    Regards,
    Ravi.

  • Delete Generated programs in transformations in SAP BI

    Hi Experts,
    I am facing an issue while deleting an old include program which was no more used in the transformation.
    While deleting the include program its still showing that its used in the generated program.
    But the transformation was deleted long back.
    Now could some one help me in deleting the generated program and the include.
    Thanks in advance.

    Hi,
    You need to deactivate the Function group and Function Module and delete the include program.
    Regards,
    Suman

  • Error when generating program when creating CVC using infoprovider

    We are receiving the message "Error when generating program" when
    creating CVC using infoprovider.
    This may have something to do with the fact that we added an attribute
    to the infoObject 9ALOCNO. We are getting an information message if we
    run a consistency check in the POS.
    We had this same issue in our development system. Here, I deactivated
    and then reactivated the CVCs and this resolved the problem. However,
    this is not a good solution since this is also a problem in our
    production system and we do not want to deactivate the POS.
    is there another option to fix this problem?
    Thank you,
    Rumi

    Hi Rumi,
    i would try these:
    1. Make sure the cube is active and every thing ok there
    2. Run programs /SAPAPO/TS_PSTRU_CONS_CHECK on POS and /SAPAPO/TS_LCM_CONS_CHECK on planning area respectively.
    3. Check the CVC creation log in transaction /n/sapapo/mc62 for more details.

  • Transport Query generated program using SQ01

    Dear All,
    Please let me know how to transport a query generated program using SQ01. I have created a program from SQ01 query creation and assign a tcode to this program. When the program was generated there was no request create so how to make a request to transport this generated program to PRD.
    Thanks in advance.

    Hi,
    for query transport (export/import or download/upload (which I prefer because it can be done between different SAP systems where no transport mechanism exists)) go to SQ02 and tick the button that looks like a car.
    The t-code assignment (and maybe the the T-code is added in an area menu using SE43) needs to be transported seperately (if you use downlaod/upload as this does not create a transport request.
    best regards, Christian

  • Creating dll, lib, fp's to be used in other CVI programs

    Disclaimer: I am a self-taught CVI (and C) programmer in which I learned from examples, NI forums, and google  
    Main question: What is the proper way to create a dll, lib, and fp to be used in other CVI programs?  What I am doing is creating a "wrapper class" called PowerSupplies (and other wrapper classes) that takes arguments from the user and call the correct functions based on the power supply model type.
    Inside my Power Supplies project, I have included each power supply's function panel.  In the C file, I have added my functions and include file.  for example, here's one
    int _VI_FUNC Supply_InitSupply (int devs, char *resourceName, int IDQuery, int resetDevice, int *instrumentID) {
    switch (devs) {
    case AG663XXA:
    return ag663xxa_init(resourceName,IDQuery,resetDevice,instrumentID);
    case HPE364XA:
    return hpe364xa_init (resourceName, IDQuery, resetDevice, instrumentID); //Has Voltage and Current
    return -1;
    and then of course at the bottom, there resides the DllMain and DllEntryPoint functions.  What the heck are these, and am I suppose to rename these?  I ask because I created another wrapper classes with DMM's and I get the Multiply Defined Symbol Error with these two functions when using together in a separate program.
    Additionally, I have created a header file, which can be included in other CVI programs to know what functions there are.  I noticed I could "Generate Prototypes" after the fact and wasn't sure if this was the correct way or not.  My header file is below:
    #ifndef __PowerSupplies_H__
    #define __PowerSupplies_H__
    #ifdef __cplusplus
    extern "C" {
    #endif
    //==============================================================================
    // Include files
    #include "cvidef.h"
    #include "ivi.h"
    //==============================================================================
    // Constants
    #define POWER_SUPPLY_ENUM_FACTOR 200
    typedef enum
    AG663XXA = 200,
    HPE364XA
    } power_supply_type;
    static IviStringValueTable power_supply_table =
    {AG663XXA, "AG-663##X"},
    {HPE364XA, "HP-E364#A"}
    //==============================================================================
    // Types
    /************** Static Function Declarations **************/
    /************** Global Variable Declarations **************/
    /************** Global Function Declarations **************/
    int _VI_FUNC Supply_InitSupply(int devs,char *resourceName, int IDQuery, int resetDevice,int *instrumentID);
    /*commented out long list of functions for this forum's sake*/
    int _VI_FUNC Supply_Close(int devs, int instrumentID);
    int __stdcall DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);
    int __stdcall DllEntryPoint(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);
    #ifdef __cplusplus
    #endif
    #endif /* ndef __PowerSupplies_H__ */
    I then have built it as a static library and dynamic link library.  I then generated a Function Panel from the header file with Prefix Supply_ and Qualifier as _VI_FUNC.
    All worked nice and dandy, copied files to appropriate places in the IVI directory.
    In my other CVI program in which uses these "wrapper classes", I have included the function panel's that I created.
    Well with the error i mentioned above about Multiple Defined Symbol, I have come here to figure out what went wrong.
    What are the DllMain and entry point functions?
    Is my c and h files created correctly with proper prefixs?  I tried extern once, and got errors I believe.
    Does the function panel use the .lib files? Am I going about this correctly or is there an easier/more efficient way?
    Any and all advice is greatly appreciated!!!
    Thanks!

    There's info in the CVI help on how to make DLL,s in CVI.
    There's quite a bit more to it than you might imagine at first.
    I've pasted a DllMain that I wrote.
    Some key issues:
    You can put a type library into your DLL, that way if you add the DLL as a reference in Visual Studio, VS will know the prototype without your having to bring in a header file or import library of any kind.
    CVI created DLL's are not "active" DLL's and should not be registered with regsvr32, this will just make a mess.
    You can tell CVI what you're exporting in a couple of different ways, I always use "symbols marked for exports"  and use the macros DLLEXPORT DLLSTDCALL, but NI says using a header file is preferable, I forget why.
    The DLL search path is a wonderful thing - it's easy to wind up using a different copy of the DLL than you intended due to the way windows searches for the DLL.  Different versions of windows have slightly different rules.  Some allow redirection to help you manage the search path.
    CVI will not automatically switch between debug and release versions of the import library - you have to call out the correct version in your project and link it to any executable using it. 
    You can do "dynamic" loading / linking of a CVI DLL without binding to an import library using GetProcAddress function, but it's easier to use the import library.
    A DllMain isn't necessary but is good practice.
    Good luck.
    /*== PRAGMAS =====================================================================================================*/
    #if defined (_CVI_) && (_CVI_ >= 850)
      #if defined _CVI_DEBUG_
        #pragma C99_extensions_on  
      #endif
    #endif
    /*== INCLUDE FILES ===============================================================================================*/
    #include <windows.h>
    #include <userint.h>
    #include <ansi_c.h>                                                                                     
    #include <cvirte.h>
    #include <stdio.h>
    #include <utility.h>
    #include <analysis.h>
    #include <toolbox.h>
    #include <formatio.h>      
    /*== MACROS ======================================================================================================*/
    #define MAX_STRING_SIZE 256   
    #define MAX_MESSAGE_SIZE 256
    #undef  MAX_LOG_MESSAGE_SIZE
    #define MAX_LOG_MESSAGE_SIZE 256                                                
    #undef  WriteFile   // To deconflict formatio (CVI) version of this function
    #undef  ReadFile    // To deconflict formatio (CVI) version of this function             
    /*== TYPEDEFS ====================================================================================================*/
    // Data type providing reference structure for thread local storage (TLS).
    typedef struct ThreadData {
      CHAR ErrorString[MAX_STRING_SIZE];
    } ThreadData, * LPTHREADDATA;
    /*== MODULE SCOPE VARIABLES ======================================================================================*/   
    static FILE * logFileStream;                      
    static HANDLE hModule = INVALID_HANDLE_VALUE;
    /*== GLOBAL (HEAP) VARIABLES =====================================================================================*/
    // TLS index
    DWORD g_dwTlsIndex;
    /*== PROTOTYPES ==================================================================================================*/    
    /*== CODE ========================================================================================================*/  
    * Function: DllMain
    * Description:
    *    DLL Main entry point.  Provides for DLL initialization.  
    * Limitations:
    * Parameters:  System defined.
    * Return Value:
    BOOL WINAPI DllMain (HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved) {
      LPTHREADDATA lpThreadData;      
      switch (fdwReason) {
        case DLL_PROCESS_ATTACH:
          // Allocate a TLS index.
          if ((g_dwTlsIndex = TlsAlloc ()) == 0xFFFFFFFF) return FALSE;
          hModule = hInstDLL; 
          // No break - fall through and initialize for main thread
        case DLL_THREAD_ATTACH:
          lpThreadData = (LPTHREADDATA) calloc (1, sizeof (ThreadData));
          if (lpThreadData != NULL) TlsSetValue (g_dwTlsIndex, lpThreadData);
          lpThreadData = TlsGetValue (g_dwTlsIndex);
          lpThreadData->ErrorString[0] = '\0';     
          break;
        case DLL_THREAD_DETACH:
          // Release the allocated memory for this thread.
          lpThreadData = TlsGetValue (g_dwTlsIndex);
          if (lpThreadData != NULL) free (lpThreadData);
          break;
        case DLL_PROCESS_DETACH:
          // Free the allocated memory for this thread (main thread).
          lpThreadData = TlsGetValue (g_dwTlsIndex);
          if (lpThreadData != NULL) free (lpThreadData);
          // Release the TLS index.
          TlsFree (g_dwTlsIndex);
          break;
      return TRUE;
    } // end, DllMain
    INT DLLSTDCALL DllEntryPoint (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
      // Included for compatibility with Borland
      return DllMain (hinstDLL, fdwReason, lpvReserved);
    } // end, DllEntryPoint
    implement dll functions like this:
    int DLLEXPORT DLLSTDCALL myFunc (int iParam) {
      return 1;

  • Error when generating program /SAPAPO/TSM141

    Hello APO Experts!!
    I have one infocube for sales history, which has one key figure that contains the sales history values.
    First, I was using this key figure in one planning area. This Key Figure Semantics for Read and Write Operations was 002 = Semantics for InfoCube key figures.
    Now, I had to include the same key figure in another planning area and with the same configuration Semantics = 002.
    The problem is, in my DEV system, the modification was perfect. Then when I did in the QA system, I´ve got the error  "Error when generating program /SAPAPO/TSM141" when trying to access the data in the planning books that are created in the first planning area.
    For the second planning area, nothing happens, everything is working correctly.
    Do you have any idea of what this could be?
    Regards
    Anglea

    Hi
    Sounds like a Planning Area extraction problem. First of all check that all your required BW InfoObjects are created for the Planning Areas, then check that the Semantics you mentioned are the same for all Aggregates in the Planning Area.
    Also try running program /SAPAPO/TS_PSTRU_GEN to regenerate the planning area extractor.
    Delete and recreate the data source.
    Hope that helps
    Regards
    Ian

  • RUNTIME ERROR IN GENERATED PROGRAM. Overflow converting ''

    Hi,
    While executing the below code i am getting the error
    " RUNTIME ERROR IN GENERATED PROGRAM. Overflow converting ' ' am new to ABAP , can anyone kindly help me where i have went wrong ? .
    IF ( V_DO_CDS_NAME_MAIN <> '' ).
        ABAP.
            DATA: ref_it_tab TYPE REF TO data,
                  ref_wa TYPE REF TO data.
            FIELD-SYMBOLS: <fs_itab> TYPE ANY TABLE.
            FIELD-SYMBOLS: <fs_wa> TYPE ANY.
            FIELD-SYMBOLS: <fs_field> TYPE ANY.
            CREATE DATA ref_it_tab TYPE STANDARD TABLE OF (V_DO_CDS_NAME_MAIN) WITH NON-UNIQUE DEFAULT KEY.
            ASSIGN ref_it_tab->* TO <fs_itab>.
            SELECT * FROM (V_DO_CDS_NAME_MAIN) INTO TABLE <fs_itab> where C1 = V_WORK_ITEM_ID_MAIN.
            CREATE DATA ref_wa LIKE LINE OF <fs_itab>.
            ASSIGN ref_wa->* TO <fs_wa>.
            loop at <fs_itab> assigning <fs_wa>.
                assign component 'CLIENT' of structure <fs_wa> to <fs_field>.
                V_CLIENT = <fs_field>.
                assign component 'C0' of structure <fs_wa> to <fs_field>.
                V_C0 = <fs_field>.
                assign component 'C1' of structure <fs_wa> to <fs_field>.
                V_C1 = <fs_field>.
                assign component 'C2' of structure <fs_wa> to <fs_field>.
                V_C2 = <fs_field>.
                assign component 'C3' of structure <fs_wa> to <fs_field>.
                V_C3 = <fs_field>.
                assign component 'C4' of structure <fs_wa> to <fs_field>.
                V_C4 = <fs_field>.
                assign component 'C5' of structure <fs_wa> to <fs_field>.
                V_C5 = <fs_field>.
                assign component 'C6' of structure <fs_wa> to <fs_field>.
                V_C6 = <fs_field>.
                assign component 'C7' of structure <fs_wa> to <fs_field>.
                V_C7 = <fs_field>.
                assign component 'C8' of structure <fs_wa> to <fs_field>.
                V_C8 = <fs_field>.
                assign component 'MESSAGE_ID' of structure <fs_wa> to <fs_field>.
                V_MESSAGE_ID = <fs_field>.
                assign component 'TIMESTAMP' of structure <fs_wa> to <fs_field>.
                V_TIMESTAMP = <fs_field>.
                assign component 'EXTRACTKEY' of structure <fs_wa> to <fs_field>.
                V_EXTRACTKEY = <fs_field>.
                assign component 'STATEID' of structure <fs_wa> to <fs_field>.
                V_STATEID = <fs_field>.
                assign component 'DEVICE_ID' of structure <fs_wa> to <fs_field>.
                V_DEVICE_ID = <fs_field>.
            ENDLOOP.
        ENDABAP.
    ENDIF.

    Hi Mubeen,
    While Copying the cotes have come closer otherwise its working fine , i was able to find the error .
    There are ten predefined ABAP data types. There are 100 possible type combinations between these elementary data types. ABAP supports automatic type conversion and length adjustment for all of them except type D (date) and type T (time) fields which cannot be converted into each other.
    I commented the TimeStamp part where i had given the ABAP Type as D and it started working .
    But now i want to display the content of  "TimeStamp"  field but i am not able to do so .
    This is the format in which it has to be displayed 2009.011.915.3353.
    Which ABAPTYPE i need to use ?.
    i am able to display in this format 20090119153353
    regards
    Harsha

  • I want to use the Function Generator VI to send command signals through the NI 7344 motion controller. This will be a closed loop servo valve system. I want to be able to change from say a square wave to a sine wave on the fly. Idea's?

    I am going to run tests that require an actuator to move using various types of arbitrary waveforms such as sine or square. The NI 7344 is hooked to the UMI that is going through a driver for a servo valve. The loop is analog and it is closed. I have played with some of the examples but can't get it to work. I have used the function generator VI to generate a signal but I think I am using the wrong input VI to the motion control board. When I use what I have it moves the servo and then stops. It doesn't continually generate the signal.
    I would love to use the controls on the function generator vi to control frequency and amplitude ect. Any help or pointer would be helpful. Thank you in advance.

    Hello,
    I'm not clear on exactly how you want to use the generated data but I'm assuming they will be used as your target points.
    There's a built-in example for motion called 'One-Axis Contour Move.vi'. This example demonstrates how to provide your target points as 1-D array. All you need to do is to replace the input array with the output of the function generator. In order to have it run continuously, use a while loop. You can further program your application so that it'll change the waveform on the fly by monitoring the user interface but this might be little little tricky as you will need to reset the move and load the new generated points while keeping track of your current position.
    I hope this helps. Let me know if you have further questions regarding this
    application.
    Best regards,
    Yusuf C.
    Applications Engineering
    National Instruments

  • Using asdoc to generate documentation:  google analytics?

    I'm using the asdoc.exe program that came with Flex Builder 3 to generate documentation for FlashMOG. I want to put in my google analytics javascript before the closing body tag of each file.  Is there some way to get asdoc to do this?

    The asdoc tool allows you to supply your own templates; you could probably include that in there: http://help.adobe.com/en_US/flex/using/WSd0ded3821e0d52fe1e63e3d11c2f44bc36-7ffa.html

  • Syntax Error in generated program.

    Hi Experts -
    I saw a similar thread regarding the issue I'm having but I thought I'd open another thread.
    0CMMT_ITEM_FMCI_PU_HIER Syntax Error for Generated Program
    I'm doing an extraction for 0CRM_ORGUNIT_HR01_HIER in RSA3 of CRM.
    I get an error message:
    Message RJ028 : Error 6 in function module RSS_PROGRAM_GENERATE
    There is a syntax error in the code.
    How do you solve this issue?
    We applied OSS note 822323 but still get the same error. The code still has the syntax error.
    Any one saw this or have any solutions? Please let me know. Thanks a lot in advance!

    Hi,
    Use the program RSA1HCAT in SE38 to check your hierarchy.
    Transaction RSA3 was not developed for checking hierarchy DataSources.
    Rather, it is only for transaction and attribute/text datasources.  If
    you want to check the extraction of hierarchy datasources in the R/3
    system, you should use the report RSA1HCAT.  In this report, enter the
    name of the hierarchy datasource in the "DataSource with HierarchyType"
    field.
    For this problem look at the note: 632920.
    Regards,
    Srikanth.

  • How to insert abap code in LSMW generated program?

    hi,
    i m working on LSMW for loading data in SAP
    i would like to insert abap code into the generated program....
    it's because i have 1 BKPF segment (header data), 2 BSEG segments, but i cannot define rules by customizing for the second BSEG segment(LSMW doesn't permitt).
    i already tried to insert code directly into the program, but obviously it disapears at each time i generate the program.
    i saw that apparently a code insertion has already be made into this program and the subject of this insertion is to define rules for the second BSEG (exactly what i want to do....) and this modification doesn't disapear at new prog generation.....
    Any idea ?

    Hi
    Why dont you use the FORM provided by LSMW
    To use this please do the following
    1.Goto option <b>Maintain Field Mapping and Conversion Rules</b>
    2.Goto menu <b>EXTRAS->LAYOUT->Form Routines</b>
      Here you will now get many options like
       Global Data
       Begin of Transaction
    Begin of Processing
    Begin of Record
      like wise the End of these also.
    Please put a breakpoint and check where you want to insert your code.
    Note:
    This is only for the Conversion Program and does not affect the main program used to update the Standard Tables
    Hi , I was reading your earlier post .. It seems that you have worked on EMIGALL. Consider a similar situation, it is like writing the code in the events till CALL01...
    Thanks
    DOminic
    Message was edited by: Dominic  Pappaly

  • Problem in transporting generated program of SAP Query

    <h5> Hi all,
    I created a SAP query in development server and generated the program for the same, I transported the infoset and the user group etc. to the next server but couldnot transfer the program, since the program is not a Z Program, so coudlnot save it and capture it in request so that the same can be transported.
    What could be the possible solution for the same????
    Regards, </h5>

    Yep, this gets a bit tricky. Remember that SAP Query is designed as an end-user tool. To this end, the creation of queries could be done in a productive environment. The maintenance of infosets could be restricted to Development systems only. I know that some sites do not allow this.
    Through the use of authorisations, you could appoint an administrator to generate the queries in PRD for the users.
    The name of the ABAP is a combination of the query name, infoset and the client number (I think - going from memory). You could possibly change the package name of the generated program and then attach it to a transport, but it becomes very messy and I wouldn't recommend it.

  • How to deal with generated programs in eCATT SAPGUI recording?

    Hi experts and professionals,
    I am trying to automate testing of our solutions by eCATTs and so far i have not been able to find solution for following problem.
    Whole test scenario is very simple:
    Check InfoProvider data (query, lookup, listcube,...)
    Create DAP on InfoProvider
    Archive InfoProvider
    Check InfoProvider data (query, lookup, listcube,...)  again
    Compare results from step 1. and 4. (must match)
    Reload archived data
    Check InfoProvider data (query, lookup, listcube,...)  again
    Compare results from step 1. and 7. (must match)
    As you can see, one of the required test steps is to check InfoProvider's data in transaction LISTCUBE.
    But transaction LISTCUBE generates its program "name" every time it is executed and
    I am struggling to find a way how to deal with these generated programs in eCATT SAPGUI recording.
    Key is that solution must be generic and work for all SAP BW releases from 7.0 upwards
    (having in mind that LISTCUBE can read NLS data from SAP BW 7.3 release).
    Error description from eCATT log:
    Screen Check Error: Expected Transaction: LISTCUBE, Actual Transaction: LISTCUBE.
    Expected Program: GP0KOZE7EFIUBN10MZUFWX90W80, Actual Program: GPBP24INA6VV77SL0XKU5NA642O.
    Expected Screen Number: 1000, Actual Screen Number: 1000.
    There Is Probably an Error in SAPGUI recording.
    ExceptionClass:CX_ECATT_APL_CAPTURE  ExceptionId:SCREEN_CHECK_ERROR
    RaisingClass:CL_APL_ECATT_LINE_INTERPRETER  Include:CL_APL_ECATT_LINE_INTERPRETER=CM00J  Line:443
    Is there any way how to avoid program check in eCATT script?
    Anything that would help me to find solution will be greatly appreciated.
    Best Regards,
    Igor

    Dear Igor,
    Your issue is caused by the "screen check" which eCATT processes here.
    In General this screen check is a very usefull activity, since is ensures that only those screens are processed by automation, which initially where recorded. This should ensure as much as possible to invoke only intended activities.
    Remember, that the driver of the screen flow is still the automated transaction program ( but not the test tool). So application logic decides which screen is send next.
    Using screen check the test tool tries to ensure that menu items and buttons and other activities are only automated when the tool "believes" to work on the intended screen.
    For generic test scripts and often in context of generated programs the screen check might hurt a bit.
    To overcome this, one might try to make the check dynamic (as Sheetal suggests correctly).
    If here the name of program cannot be determined for any reason, one can use another method and do following:
    - Change the value of ProcessedScreen-Active to 'R'
    This will disable/skip the screen-check for this ProcessedScreen.
    Sure the solution includes a certain risk, since not checking the correct screen to appear might lead to automation of actions with not desired impact.
    Maybe this can improve your solution.
    Kind Regards
    Jens

  • Elvis: Is It possible to use the Function Generator and the Oscilloscope simultaneously?

    Hi,
     We are using the NI Elvis to output a function or a sine wave at a certain frequency and using the oscilloscope on the same board/elvis to read a modified signal. Is this possible? Can we use both the Function Generator and the oscilloscope at the same time? Please help. The oscilloscope would be reading signal from an accelerometer. Thank you in advance. We have no VI as we do not know which to use and if they are possible.

    Hi,
    There is no problem using the Function Generator and Oscilloscope
    at the same time with NI ELVIS. Using the NI ELVIS soft front panels (Start
    >> Programs >> National Instruments >> NI ELVIS 3.0 >>
    NI ELVIS – see picture attached –‘NI ELVIS soft front panels.JPG’), you can choose
    to open more than one instrument at a time. We do this by opening one
    instrument, allowing it to begin, and then opening another. We can also program
    in LabVIEW using more than one instrument at a time by placing down multiple
    Express VI’s taken from the NI ELVIS pallet on the block diagram (see picture
    attached – ‘ELVIS Express VI's (LabVIEW).JPG’). One note when doing this,
    please see KB 41ODPHX1 
    for an example of how to program in parallel. If you do not wire the ‘stop’
    terminal of the express VI’s, you will get the error described.
    David L.
    Systems Engineering
    National Instruments
    Attachments:
    ELVIS Express VI's (LabVIEW).JPG ‏74 KB
    NI ELVIS soft front panels.JPG ‏56 KB

Maybe you are looking for