Locate dynamicall​y called vi

I have a labview application (6.1) that contains one dynamically called vi. When I build the application, install it on another computer and run it, the first thing it does is asks me to locate that one dynamically called vi. So I do that, I locate the file and then everything works fine after that with the program. Everytime I launch the app I have to repeat this locate cycle. I've tried everything I can think of including not removing the backpanel in the app builder to get rid of this locate the file prompt. Does anyone have any suggestions?

Having a dynamically called VI in a different location during development and during deployment is a common problem.  I usually solve it as follows.  Place a statically called VI in the same directory as your dynamically called VI.  The sole purpose of the statically called VI is to return its directory.  Given the directory, you can then construct an absolute path to your dynamic VI.  I have attached an example of this statically called VI.  Just make sure it is always in the same directory/LLB that the dynamically called VI is in.
There are other ways to do this, some more elegant, but I find this one the simplest and easiest.
This account is no longer active. Contact ShadesOfGray for current posts and information.
Attachments:
sfpScpRCB Get VI Directory.vi ‏9 KB

Similar Messages

  • I was in a car collision and need proof of my location when I called 911. The Police Dept., refused to respond, since there were no injuries.   Now, I have a dispute with the other driver who is falsely stating accident happened at another intersection. I

    I was in a car collision and need proof of my location when I called 911. The Police Dept., refused to respond, since there were no injuries.
    Now, I have a dispute with the other driver who is falsely stating accident happened at another intersection. In addition of calling 911 twice, I also took pictures of damages. Unfortunately, I did not take pictures of the intersection signs.
    My AT&T carrier states that this info. can only be disclosed by a subpoena. My insurance carrier states that they will not subpoena this info., since it is a civil case only.
    The Police Department does not keep records of calls they do not attend to.
    How can I get this location  info. from my i phone device if at all possible?
    Thanks,
    Pecosa
    iPhone 4, iOS 6.0.1

    Johnathan Burger,
    I did take photos of the damages to car and license plates, but NOT the intersection signs.
    How do I get the GPS Data in the exit data of photos? Please advise.
    Thanks,
    Message was edited by: Pecosa
    Message was edited by: Pecosa

  • HT4859 I was in a car collision and need proof of my location when I called 911. How can I get this info. from my i phone device?

    I was in a car collision and need proof of my location when I called 911. The Police Dept., refused to respond, since there were no injuries.
    Now, I have a dispute with the other driver who is falsely stating accident happened at another intersection. In addition of calling 911 twice, I also took pictures of damages. Unfortunately, I did not take pictures of the intersection signs.
    My AT&T carrier states that this info. can only be disclosed by a subpoena. My insurance carrier states that they will not subpoena this info., since it is a civil case only.
    The Police Department does not keep records of calls they do not attend to.
    How can I get this location  info. from my i phone device if at all possible?
    Thanks,
    Pecosa

    Johnathan Burger,
    I did take photos of the damages to car and license plates, but NOT the intersection signs.
    How do I get the GPS Data in the exit data of photos? Please advise.
    Thanks,
    Message was edited by: Pecosa
    Message was edited by: Pecosa

  • HOW CAN I GET THE LOCATION OF MY CALLER

    HOW CAN I GET THE LOCATION OF MY CALLER pls its urgent

    HOW CAN I GET THE LOCATION OF MY CALLER pls its urgent

  • Project conflict with dynamicall​y called VIs

       I have a largish project in LV 2010 in XP and W7.  It's all in a project, as I build the main VI into an .exe.  There are numerous other top-level VI's that are called dynamically.  I use source code distributions to build them with their diagrams removed.  The .exe then calls them from a directory similar to "C:\DMT\My Project\Utilities".  (I never did find a good utility for discovering user directories across XP, W7, etc., so we ended up right in C: for config files and support files, stuff that often used to get put in with the .exe in XP and earlier OS's.)
       Besides the top-level VI's, I also have a set of VI's that can be called dynamically to do custom calculations.  The interface to each VI is simple and defined, so users with LV can create their own calculations, put their VI (and sub-vis) in "C:\DMT\My Project\Calculations", and my program can make a call to it.
       My problem is in how the project handles these VIs.  I need to include them in the project, since I need source code distribution builds to assemble a directory of the VI and all its dependencies.  So the actual source is in one place (under SVN), then I build them to another location, which I then deploy to "C:\DMT\My Project\Calculations".  The problem is, if I run the main program from within the project (rather than as an .exe), it links up to these calculations in "C:\DMT\My Project\Calculations" and then the project has conflicts.  The Calculation VI's in the project are now trying to point to "C:\DMT\My Project\Calculations" (which isn't in SVN) instead of to the true source code.  Every time I run the program from the project, I have to remember to go and manually fix the project.
       Sorry if that's a bit complex to describe.  But does anyone have suggestions on an alternate architecture that would eliminate this issue?
    Thanks,
       DaveT
    David Thomson Original Code Consulting
    www.originalcode.com
    National Instruments Alliance Program Member
    Certified LabVIEW Architect
    There are 10 kinds of people: those who understand binary, and those who don't.
    Solved!
    Go to Solution.

    Thanks!  I'll try that.  (Wondering why I didn't think of that...)
    David Thomson Original Code Consulting
    www.originalcode.com
    National Instruments Alliance Program Member
    Certified LabVIEW Architect
    There are 10 kinds of people: those who understand binary, and those who don't.

  • 2 save location's keep calling eachother

    I have two labview projects saved on my computer. One is our code which we have as our base code which we are not going to be editing. The other is the one which we are changing and using for the competition this year. When I try and load one (as of right now they are the same code due to some other computer errors) it is asking me to determine where to call the global variables from. When I try and switch between the codes the global varibles are called from the perviously used file, even though they are different locations. Is this normal when two codes are saved on the same device and if not is there any way to fix it?

    Are you using project files?  If not, you really should.  They help a lot keeping your different projects separate.
    Your problem is that your VIs from the different projects have the same.  It is very easy to get "cross linking" in this situation.  Setting up the project files will help a lot to alleviate this.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Callback when leaving location - made the call, reminder alert does not stop

    I received a call at work and hit the "remind me when I leave this location" feature. It reminded me when I left work, I made the call, but it still reminds me everyday that I leave work now for months. I need it to stop!!!!!!
    Thanks for any advice.

    Have you been into "Reminders" and deleted it ?

  • Path to Executable from Dynamicall​y called VIs

    QUESTION: How can I retrieve the path to an executable that is called from a VI that was created by dynamically loading a VI template?
    The application is a bit too complicated to post, so I will try to describe...
    I have a built executable. It dynamically calls VITs that are insides LLBs and executes them. Because they are dynamically called from a VIT, the VI loaded into memory this way is only a copy of the VIT on disk - there is no path information to the loaded VI. This all works fine.
    I would like to programmatically get a path to the calling executable from within one of these dynamically called VIs (or one of their subVIs). I have so far been unsuccessful.
    Call Chain only gives the names of the callers. I couldnt' find a way to get the path info to the EXE from just the name.
    The VI property "Caller's Paths" gives me an empty array of paths
    Constant paths are unacceptable - I need these modules to figure out the absolute path to data support folders of the calling executable. Not only will they be called by different executables at different times, any one of those executables may be in a different locatin depending on how/where it's deployed, i.e., all over the danged place!
    Any answer is appreciated, even if it's "no way, not going to happen"
    Thanks in advance!

    You need two application properties:
    Application.Directory Path and Application.Name
    Together they will form the total path of the calling executable
    Ton
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!

  • Avoiding data memory duplication in subVI calls

    Hi,
    I am on a Quest to better understand some of the subtle ways of the LabVIEW memory manager. Overall, I want to (as much as practically possible) eliminate calls to the memory manager while the code is running.
    (I mainly do RT code that is expected to run "forever", the more static and "quiet" the memory manager activity is, the faster and simpler it is to prove beyond reasonable doubt that your application does not have memory leaks, and that if will not run into memory fragmentation (out of memory) issues etc. What I like to see as much as possible, are near static "used memory" and "largest contiguous block available" stats over days and weeks of deployed RT code.)
    In my first example (attached, "IPE vs non-IPE.png"), I compared IPE buffer allocation (black dots) for doing some of the operations in an IPE structure vs. "the old way". I see fewer dots the old way, and removed the IPE structure.
    Next I went from initializing an array of size x to values y to using a constant array (0 values) with an "array add" to get an array with the same values as my first version of the code. ("constant array.png")
    The length of the constant array is set to my "worst case" of 25 elements (in example). Since "replace sub-array" does not change the size of the input array even when the sub-array is "too long", this saves me from constantly creating small, variable sized arrays at run-time. (not sure what the run-time cpu/memory hit is if you tried to replace the last 4 elements with a sub-array that is 25 elements long...??)
    Once I arrived at this point, I found myself wondering "how exactly the constant array is handled during run-time?". Is it allocated the first time that this sub-vi is called then remains in memory until the main/top VI terminates, or is it unloaded every time the SubVI finishes execution? (I -think- Mac's could unload, while windows and linux/unix it remains in memory until top level closes?)  When thinking (and hopefully answering),  consider that the the code is compiled to an RTEXE runningg on a cRIO-9014 (vxWorks OS).  
    In this case, I could make the constant array a control, and place the constant on the diagram of the caller, and pipe the constant all the way up to the top level VI, but this seems cumbersome and I'm not convinced that the compiler would properly reckognize that at the end of a long chain of sub-sub-sub VI's all those "controls" are actually always tied off to a single constant. Another way would perhaps be to initialize a FG with this constant array and always "read it" out from the FG. (using this cool trick on creating large arrays on a shift register with only one copy which avoids the dual copy (one for shift register, one from "initialize array" function)).
    This is just one example of many cases where I'm trying to avoid creating memory manager activity by making LabVIEW assign memory space once, then only operate on that data "in-place" as much as possible. In another discussion on "in-place element" structures (here), I got the distinct sense that in-place very rarely adds any advantage as the compiler can pick up on and do "in-place" automatically in pretty much any situation. I find the NI documentation on IPE's lacking in that it doesn't really show good examples of when it works and when it doesn't. In particular, this already great article would vastly benefit from updates showing good/bad use of IPE's.
    I've read the following NI links to try and self-help (all links should open in new window/tab):
    cool trick on creating large arrays on a shift register with only one copy
    somewhat dated but good article on memory optimization
    IPE caveats and recommendations
    How Can I Optimize the Memory Use in My LabVIEW VI?
    Determining When and Where LabVIEW Allocates a New Buffer
    I do have the memory profiler tool, but it shows min/max/average allocations, it doesn't really tell me (or I don't know how to read it properly) how many times blocks are allocated or re-allocated.
    Thanks, and I hope to build on this thread with other examples and at the end of the thread, hopefully everyone have found one or two neat things that they can use to memory optimize their own applications.  Next on my list are probably handling of large strings, lots of array math operations on various input arrays to create a result output array etc.
    -Q
    QFang
    CLD LabVIEW 7.1 to 2013
    Attachments:
    IPE vs non-IPE.png ‏4 KB
    constant array.png ‏3 KB

    I sense a hint of frustration on your part, I'm not trying to be dense or difficult, but do realize that this is more towards the "philosophical" side than "practical" side. Code clarity and practicalities are not necessarily the objectives here.
    Also, I have greatly appreciated all your time and input on this and the other thread!
    The answer to your first question is actually "yes, sort of". I had a RT application that developed a small memory leak (through a bug with the "get volume info.vi' from NI), but to isolate it and prove it out took a very long time because the constant large allocation/deallocations would mask out the leak. (Trace's didn't work out either since it was a very very slow leak and the traces would bomb out before showing anythinng conclusive.) The leak is a few bytes, but in addition to short term memory oscilations and  long term (days) cyclical "saw-tooth" ramps in memory usage, made this very hard to see. A more "static" memory landscape would possibly have made this simpler to narrow down and diagnose. or maybe not. 
    Also, you are missing my point entierely, this is not about "running out of memory" (and the size of 25 in my screen-shot may or may not be what that array (and others) end up being). This is about having things allocated in memory ONCE then not de-allocated or moved, and how/when this is possible to accomplish.  Also this is a quest (meaning something  I'm undertaking to improve and expand my knowledge, who said it has to be practical).
    You may find this document really interesting, its the sort of thing you could end up being forced to code to, albeit, I don't see how 100% compliance with this document would ever be possible in LabVIEW, thats not to say its worthless: JPL Institutional Coding Standard for the C Programming Language (while it is directed at C, they have a lot of valid general points in there.)
    Yes, you are right that the IPE would grow the output if the lenght of my replacement array is not the same, and since I can't share the full VI's its a bit of a stretch to expect people to infer from the small screen dummp that the I32 wires on the right guarantee the lengths will match up in the IPE example.
    Once, on recomendation of NI support, I actually did use the Request deallocation primitive during the hunt for what was going on in that RT app I was debugging last year. At that particular time, the symptom was constant fragmentation of memory, until the largest contiguous block would be less than a couple of kB and the app would terminate with 60+MB of free memory space.. (AKA memory leak, though we could not yet prove that from diagnostic memory consumption statistics due to the constant dynamic behavior of the program)  I later removed them. Also, they would run counter to my goal of "allocate once, re-use forever" that I'm chasing. and again, I'm chasing this more as a way to learn than because all my code MUST run this way. 
    I'm not sure I see what you mean by "copying data in and out of some temporary array". Previously (before the constant array) at every call to the containing sub-vi, I used to "initialize array" with x elements of value y (where x depends to a large degree on a configuration parameter, and y is determined by the input data array). Since I would call to "initialize" a new array each time the code was called, and the size of the array could change, I looked for a way that I could get rid of the dynamic size, and get rid of dynamically creating the array from scratch each time the sub-vi was called. What I came up with is perhaps not as clear as the old way I did it, but with some comments, I think its clear enough. In the new way, the array is created as a constant, so I would think that would cause less "movement" in memory as it at that point should be preventing the "source" array from (potentially) moving around in memory?  Considering the alternative of always re-creating a new array, how is this adding an "extra" copy that creating new ones would not create?
    How would you accomplish the task of creating an array of "n" elements, all of value "y" without creating "extra" copies? -auto-indexing using a for loop is certainly a good option, but again, is that sure to reuse the same memory location with each call? Would that not, in a nit-picking way, use more CPU cycles since you are building the array one element at the time instead of just using a primitive array add operation (which I have found to be wicked fast operations) and operate on a constant data structure?
    I cannot provide full VI's without further isolation, maybe down the road (once my weekends clear up a bit). Again, I appreciate your attention and your time!
    QFang
    CLD LabVIEW 7.1 to 2013

  • Get and Set Parameter ID in BDC Call transaction

    Hi all
    I have written this BDC program to run a transaction eg33  to install meter. After meter get installled System generates  Device location number. I need to use this device location number in calling another transaction il03.  but my data fetching using get and set parameter id is not giving accurate result. Kindly check my code and suggest where should I improve. Or whatelse can I do to fullfill this type of requirement other than GET and SET PARAMETER ID.
    REPORT  ZAC_EG33 NO STANDARD PAGE HEADING
                     LINE-SIZE 100.
    TABLES: EABL,
            BUT000,
            ZISUH0003.
    DATA :
          XYZ LIKE IFLO-TPLNR.
    DATA: IT_STATUS TYPE ZISUH0003.
    DATA: G_INDEX TYPE I,
          G_START_COL TYPE I VALUE '1',      "start column
          G_START_ROW TYPE I VALUE '14',      "start row
          G_END_COL   TYPE I VALUE '18',     "maximum column
          G_END_ROW   TYPE I VALUE '75',  "maximum row
          G_TEXT(20),                         "stores error messages
          G_PAGES        TYPE I,
          G_CURRENT_PAGE TYPE I,
          G_COUNT LIKE SY-DBCNT.
    data: l_file   type file_table,
          file1    type string,
          l_title  type string,
          LENGTH   TYPE I,
          FILES    type filetable,
          SUBRC    type i,
          STR_FILE type STRING,
          D_FILE   type RLGRAP-FILENAME,
          filename TYPE String,
          L_itab_date(10).
    FIELD-SYMBOLS : <FS>.
    DATA: IT_EXCEL LIKE STANDARD TABLE OF ALSMEX_TABLINE WITH HEADER LINE,
          IT_MESS TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE.
    TYPES: BEGIN OF TY_OPEN,
            HAUS LIKE REG30-HAUS,
            EADAT(10),
            GERAETNEU LIKE REG30-GERAETNEU,
            MESSDRCK LIKE REG30-MESSDRCK,
            ZWSTANDCE LIKE REG30-ZWSTANDCE,
            END OF TY_OPEN.
    DATA : T_ANLAGE LIKE EANLD-ANLAGE,
           VSTELLE LIKE EVBS-VSTELLE,
           S_ANLAGE LIKE EANLD-ANLAGE,
           temp_c(7).
    DATA: IT_OPEN TYPE STANDARD TABLE OF TY_OPEN WITH HEADER LINE.
    DATA: BDCDATA TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE.
    SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN SKIP 2.
    PARAMETERS: P_FILE like RLGRAP-FILENAME OBLIGATORY.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN END OF BLOCK 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE  .
      PERFORM GET_FILE_NAME.
      MOVE FILENAME TO P_FILE.
    START-OF-SELECTION.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        FILENAME                      = p_file
        I_BEGIN_COL                   = 1  "VF_START_COL
        I_BEGIN_ROW                   = 2  "VF_START_ROW
        I_END_COL                     = 5  "VF_END_COL
        I_END_ROW                     = 10000  "VF_END_ROW
      TABLES
        INTERN                        = IT_EXCEL
      EXCEPTIONS
        INCONSISTENT_PARAMETERS       = 1
        UPLOAD_OLE                    = 2
        OTHERS                        = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    IF IT_EXCEL[] IS INITIAL.
      G_TEXT = 'No Data Uploaded'.
    ELSE.
      SORT IT_EXCEL BY ROW COL.
      LOOP AT IT_EXCEL.
        MOVE : IT_EXCEL-COL TO G_INDEX.
        ASSIGN COMPONENT G_INDEX OF STRUCTURE IT_OPEN TO <FS>.
        MOVE IT_EXCEL-VALUE TO <FS>.
        AT END OF ROW.
          IF NOT IT_OPEN IS INITIAL.
          APPEND IT_OPEN." TO IT_LINE.
          CLEAR IT_OPEN.
          CLEAR IT_EXCEL.
          ENDIF.
        ENDAT.
      ENDLOOP.
    ENDIF.
    REFRESH IT_EXCEL.
    ULINE.
    FORMAT COLOR 3 ON.
    WRITE: /1 sy-vline ,
           2 'Material No.' ,
           25 sy-vline,
            2 'Logs' ,
            100 sy-vline.
    uline.
    FORMAT COLOR OFF.
    PERFORM BDC_OPEN_READING.
    MESSAGE S013(ZPS).
    *&      Form  GET_FILE_NAME
          text
    -->  p1        text
    <--  p2        text
    FORM GET_FILE_NAME .
    REFRESH FILES.
    call method cl_gui_frontend_services=>file_open_dialog
                exporting
                  window_title            = l_title
                changing
                  file_table              = files
                  rc                      = subrc
                exceptions
                  file_open_dialog_failed = 1
                  cntl_error              = 2
                  error_no_gui            = 3
                  others                  = 4.
              check sy-subrc = 0.
              loop at files into l_file.
                str_file = l_file.
                move str_file to filename.
                exit.
              endloop.
    ENDFORM.                    " GET_FILE_NAME
    *&      Form  BDC_OPEN_READING
          text
    -->  p1        text
    <--  p2        text
    FORM BDC_OPEN_READING .
    LOOP AT IT_OPEN.
    REFRESH BDCDATA.
    clear : temp_c.
    move it_open-MESSDRCK to temp_c.
    condense : temp_c.
    PERFORM MAP1.
    CALL TRANSACTION 'EG33' USING BDCDATA MODE 'A' MESSAGES INTO IT_MESS.
    +***changes by added on 28/02/08 +
    get parameter id 'IFL' FIELD XYZ.
    PERFORM MAP2.
    set parameter id 'IFL' FIELD XYZ.
    ++*
    CALL TRANSACTION 'IL03' USING BDCDATA MODE 'A' MESSAGES INTO IT_MESS.
    +****end change added on 28.02.08+DATA: G_INSNO LIKE IT_OPEN-HAUS.
    IF NOT IT_MESS[] IS INITIAL.
      G_INSNO = IT_OPEN-HAUS.
      PERFORM GET_MESSAGES  TABLES IT_MESS USING G_INSNO." IT_LINE.
    ENDIF.
    READ TABLE IT_MESS WITH KEY MSGTYP = 'E'.
    IF SY-SUBRC NE 0.
    READ TABLE IT_MESS WITH KEY MSGTYP = 'S'  MSGNR = '622'.
    IF SY-SUBRC EQ 0.
    SELECT SINGLE VSTELLE FROM EVBS INTO VSTELLE WHERE HAUS = IT_OPEN-HAUS.
    SELECT SINGLE ANLAGE FROM EANL INTO T_ANLAGE WHERE VSTELLE = VSTELLE.
    MOVE T_ANLAGE TO IT_STATUS-ANLAGE.
    MOVE 'X' TO IT_STATUS-RFC.
    *perform get_date_format using IT_OPEN-EADAT.
    MOVE IT_OPEN-EADAT TO IT_STATUS-ADATE.
    SELECT SINGLE ANLAGE FROM ZISUH0003 INTO  S_ANLAGE WHERE ANLAGE =
    T_ANLAGE.
      IF SY-SUBRC EQ 4.
        INSERT ZISUH0003 FROM IT_STATUS.
      ELSE.
        UPDATE ZISUH0003 FROM IT_STATUS.
      ENDIF.
      ENDIF.
      ENDIF.
      REFRESH IT_MESS.
      CLEAR   IT_MESS.
    ENDLOOP.
    ENDFORM.                    " BDC_OPEN_READING
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      IF FVAL <> SPACE.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
      ENDIF.
    ENDFORM.
    *&      Form  MAP1
          text
    -->  p1        text
    <--  p2        text
    FORM MAP1 .
    perform bdc_dynpro      using 'SAPLE30D' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'REG30-GERAETNEU'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'REG30-HAUS'
                                  IT_OPEN-HAUS.  "'100000000033'.
    perform bdc_field       using 'REG30-EADAT'
                                  IT_OPEN-EADAT.  "'18.02.2006'.
    perform bdc_field       using 'REG30-GERAETNEU'
                                  IT_OPEN-GERAETNEU.  "'66a'.
    perform bdc_dynpro      using 'SAPLE30D' '0220'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'REG30-TEMP_AREA(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SAVE'.
    perform bdc_field       using 'REG30-MESSDRCK'
                                   temp_c. "IT_OPEN-MESSDRCK'0.0125'.
    perform bdc_field       using 'REG30-GERWECHS'
                                  '05'.
    perform bdc_field       using 'REG30-ANZDAYSOFPERIOD(01)'
                                  '30'.
    perform bdc_field       using 'REG30-ZWSTANDCE(01)'
                                  IT_OPEN-ZWSTANDCE.  "'10'.
    perform bdc_field       using 'REG30-ZWSTANDCE(02)'
                                  '0'.
    perform bdc_field       using 'REG30-PERVERBR(01)'
                                  '0'.
    perform bdc_field       using 'REG30-PERVERBR(02)'
                                  '0'.
    perform bdc_field       using 'REG30-TEMP_AREA(01)'
                                  '0001'.
    perform bdc_field       using 'REG30-TEMP_AREA(02)'
                                  '0001'.
    perform bdc_field       using 'REG30-PR_AREA_AI(01)'
                                  '0001'.
    perform bdc_field       using 'REG30-PR_AREA_AI(02)'
                                  '0001'.
    ENDFORM.                    " MAP1
    ****CHANGEs added BY ALKA 28.02.08
    *&      Form  MAP2
          text
    -->  p1        text
    <--  p2        text
    FORM MAP2 .
    perform bdc_dynpro      using 'SAPMILO0' '1110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'IFLO-TPLNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'IFLO-TPLNR'
                                  XYZ..
    perform bdc_field       using 'RILO0-TPLKZ'
                                  'AO_GP'.
    perform bdc_dynpro      using 'SAPMILO0' '2100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'IFLO-PLTXT'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\04'.
    perform bdc_field       using 'IFLO-PLTXT'
                                  'DEVICE LOCATION'.
    perform bdc_dynpro      using 'SAPMILO0' '2100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'IFLO-PLTXT'
                                  'DEVICE LOCATION'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'ITOBATTR-EINZL'.
    perform bdc_field       using 'ITOBATTR-IEQUI'
                                  'X'.
    perform bdc_field       using 'ITOBATTR-EINZL'
                                  'X'.
    ENDFORM.                    " MAP2
    *****END CHANGE added on 28.02.08
    *&      Form  get_date_format
          text
         -->P_IT_ORDER_TABLE_C_DATE  text
    FORM get_date_format USING L_ITAB_DATE." LIKE SY-DATUM.
    data: d_temp(4),
          m_temp(2),
          y_temp(4).
    *move L_ITAB_DATE to L_ITAB_DATE.
    y_temp = L_ITAB_DATE(4).
    m_temp = L_ITAB_DATE+4(2).
    d_temp = L_ITAB_DATE+6(2).
    CONCATENATE d_temp '.' m_temp '.' y_temp into L_ITAB_DATE.
    ENDFORM.                    " get_date_format
    *&      Form  GET_MESSAGES
          text
         -->P_IT_MESS  text
         -->P_G_INSNO  text
    FORM GET_MESSAGES  TABLES IT_MESS STRUCTURE BDCMSGCOLL USING G_INSNO .TABLES T100.
    DATA: L_MSTRING(255).
    LOOP AT IT_MESS WHERE MSGTYP = 'E'   OR MSGTYP = 'S'.
          SELECT SINGLE * FROM T100 WHERE SPRSL = IT_MESS-MSGSPRA
                                    AND   ARBGB = IT_MESS-MSGID
                                    AND   MSGNR = IT_MESS-MSGNR.
          IF SY-SUBRC = 0.
            L_MSTRING = T100-TEXT.
            IF L_MSTRING CS '&1'.
              REPLACE '&1' WITH IT_MESS-MSGV1 INTO L_MSTRING.
              REPLACE '&2' WITH IT_MESS-MSGV2 INTO L_MSTRING.
              REPLACE '&3' WITH IT_MESS-MSGV3 INTO L_MSTRING.
              REPLACE '&4' WITH IT_MESS-MSGV4 INTO L_MSTRING.
            ELSE.
              REPLACE '&' WITH IT_MESS-MSGV1 INTO L_MSTRING.
              REPLACE '&' WITH IT_MESS-MSGV2 INTO L_MSTRING.
              REPLACE '&' WITH IT_MESS-MSGV3 INTO L_MSTRING.
              REPLACE '&' WITH IT_MESS-MSGV4 INTO L_MSTRING.
            ENDIF.
            CONDENSE L_MSTRING.
          ENDIF.
          CONDENSE G_INSNO.
          CONCATENATE 'For' ' ' G_INSNO ',' L_MSTRING INTO L_MSTRING SEPARATED BY SPACE.
    FORMAT COLOR 2 ON.
    *IF IT_MESS-MSGTYP = 'S' AND IT_MESS-MSGNR = '622'.
    *WRITE: 1 sy-vline,
            L_MSTRING    under 'Error Messages',
           100 sy-vline.
    *ULINE.
    *ELSEIF IT_MESS-MSGTYP = 'E'.
    WRITE: 1 sy-vline,
             L_MSTRING    under 'Logs',
            100 sy-vline.
    ULINE.
    *ENDIF.
    ENDLOOP.
    ENDFORM.                    " GET_MESSAGES

    i think there might be some time gap between CALL TRANSACTION and GET PARAMETER ID.....,that is to say,the new No. has not been generated and what you fetch is an old No..
    i think you should use the "CALL TRANSACTION" like the following one:
    CALL TRANSACTION 'EG33' USING BDCDATA MODE 'A'  UPDATE 'L'  MESSAGES INTO IT_MESS .
    then i think you can get the right value.
    P.S: the different update model(from SAP document)
           upd Effect
    "A"   Asynchronous update. Updates of called programs are executed in the same way as if in the             COMMIT WORK statement the AND WAIT addition was not specified.
    "S" Synchronous processing. Updates of the called programs are executed in the same way as if in the COMMIT WORK statement the AND WAIT addition had been specified.
    "L" Local update. Updates of the called program are executed in such a way as if the SET UPDATE TASK LOCAL statement had been executed in it.
    Other As for "A".

  • How do I find out where a call was placed from?

     A friend borrowed one of our cell phones, and it appears the battery is dead or it was turned off. The last call listed under usage was to voicemail. is there any way i can find out the general area they were in when that call was made?

    Beyond checking the call details online on the detailed bill in your My Verizon Account, there would be no other way to check the location of that call online.
    You would log in as the Account Owner  Role online, then hover your mouse arrow over the Account Tab, then choose the Bill option, then click on the view and print bill link  to see the last bill.  From there you could stroll down to that number, then view the call  details to see calls  placed on that day.  
    http://community.vzw.com/t5/forums/replypage.editorform.messageeditor.spellcheck?t:ac=board-id/Other1/message-id/1838&ticket=Ba9rWogdq-N7_212654

  • ITextRangeProvider.Move constantly called by screen reader when at end of line.

    I am currently implementing ITextRangeProvider and ITextRange interfaces to allow screen readers
    to gather information from a custom RichText control.
    I am currently having a problem with the JAWS screen reader. 
    When I navigate to the end or beginning of line using the right or left arrow keys JAWS will constantly call ITextRangeProvider.Move in an endless loop. This also blocks the ability to move the caret with the right and left arrow keys. 
    My application appears frozen. This does not happen with the built-in Narrator screen reader.
    When I navigate via the right and left arrow keys on a line of text (without reaching the beginning
    or end of line) the following trace output is generated (The result of right arrowing to the period character “.”:
    int ITextRangeProvider.CompareEndpoints
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.MoveEndpointByRange
    int ITextRangeProvider.CompareEndpoints
    int ITextRangeProvider.MoveEndpointByUnit(TextPatternRangeEndpoint endpoint, TextUnit
    unit=Character, int count=1)
    string ITextRangeProvider.GetText(int maxLength=1)
    string ITextRangeProvider.GetText selectedText.Length=1 selectedText="."
    This output repeats 12 times in a row before it stops. 
    Also, when I move the caret my caret location changed handler calls:
    This.radRichTextBoxAutomationPeer.RaiseAutomationEvent(AutomationEvents.TextPatternOnTextSelectionChanged);
    In my Visual Studio output window I see the following:
    RaiseSelectionChanged='ScreenReaderIntegration.TextProvider.RaiseSelectionChanged()' is
    a 'method', which is not valid in the given context
    The repeated trace output for each character and the "method not valid in given context"
    message are consistent for every character right or left arrow navigation except when I right arrow past the last character (in this case the “.”). 
    When I right arrow past the period the lockup and blocked cursor movement happens, the following trace output is generated 7 times:
    int ITextRangeProvider.CompareEndpoints
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.MoveEndpointByRange
    int ITextRangeProvider.CompareEndpoints
    int ITextRangeProvider.MoveEndpointByUnit(TextPatternRangeEndpoint endpoint, TextUnit
    unit=Character, int count=1)
    string ITextRangeProvider.GetText(int maxLength=1)
    string ITextRangeProvider.GetText selectedText.Length=2 selectedText="\r\n"
    Then the following trace output happens once:
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.ExpandToEnclosingUnit(TextUnit unit=Format)
    void ITextRangeProvider.MoveEndpointByRange
    int ITextRangeProvider.CompareEndpoints
    string ITextRangeProvider.GetText(int maxLength=-1)
    string ITextRangeProvider.GetText selectedText.Length=0 selectedText=""
    Then the following trace output happens in an endless loop while I can no longer move the caret:
    ITextRangeProvider.Move unit=Format count=1
    int ITextRangeProvider.MoveEndpointByUnit(TextPatternRangeEndpoint endpoint, TextUnit
    unit=Format, int count=1)
    int ITextRangeProvider.CompareEndpoints
    string ITextRangeProvider.GetText(int maxLength=-1)
    string ITextRangeProvider.GetText selectedText.Length=0 selectedText=""
    Is this a JAWS screen reader problem because Narrator does not show the same behavior?
    Or, is this a problem with my interface implementation and are there any suggestions as to how
    to proceed to solve this problem?

    I am currently implementing ITextRangeProvider and ITextRange interfaces to allow screen readers
    to gather information from a custom RichText control.
    I am currently having a problem with the JAWS screen reader. 
    When I navigate to the end or beginning of line using the right or left arrow keys JAWS will constantly call ITextRangeProvider.Move in an endless loop. This also blocks the ability to move the caret with the right and left arrow keys. 
    My application appears frozen. This does not happen with the built-in Narrator screen reader.
    When I navigate via the right and left arrow keys on a line of text (without reaching the beginning
    or end of line) the following trace output is generated (The result of right arrowing to the period character “.”:
    int ITextRangeProvider.CompareEndpoints
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.MoveEndpointByRange
    int ITextRangeProvider.CompareEndpoints
    int ITextRangeProvider.MoveEndpointByUnit(TextPatternRangeEndpoint endpoint, TextUnit
    unit=Character, int count=1)
    string ITextRangeProvider.GetText(int maxLength=1)
    string ITextRangeProvider.GetText selectedText.Length=1 selectedText="."
    This output repeats 12 times in a row before it stops. 
    Also, when I move the caret my caret location changed handler calls:
    This.radRichTextBoxAutomationPeer.RaiseAutomationEvent(AutomationEvents.TextPatternOnTextSelectionChanged);
    In my Visual Studio output window I see the following:
    RaiseSelectionChanged='ScreenReaderIntegration.TextProvider.RaiseSelectionChanged()' is
    a 'method', which is not valid in the given context
    The repeated trace output for each character and the "method not valid in given context"
    message are consistent for every character right or left arrow navigation except when I right arrow past the last character (in this case the “.”). 
    When I right arrow past the period the lockup and blocked cursor movement happens, the following trace output is generated 7 times:
    int ITextRangeProvider.CompareEndpoints
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.MoveEndpointByRange
    int ITextRangeProvider.CompareEndpoints
    int ITextRangeProvider.MoveEndpointByUnit(TextPatternRangeEndpoint endpoint, TextUnit
    unit=Character, int count=1)
    string ITextRangeProvider.GetText(int maxLength=1)
    string ITextRangeProvider.GetText selectedText.Length=2 selectedText="\r\n"
    Then the following trace output happens once:
    void ITextRangeProvider.MoveEndpointByRange
    void ITextRangeProvider.ExpandToEnclosingUnit(TextUnit unit=Format)
    void ITextRangeProvider.MoveEndpointByRange
    int ITextRangeProvider.CompareEndpoints
    string ITextRangeProvider.GetText(int maxLength=-1)
    string ITextRangeProvider.GetText selectedText.Length=0 selectedText=""
    Then the following trace output happens in an endless loop while I can no longer move the caret:
    ITextRangeProvider.Move unit=Format count=1
    int ITextRangeProvider.MoveEndpointByUnit(TextPatternRangeEndpoint endpoint, TextUnit
    unit=Format, int count=1)
    int ITextRangeProvider.CompareEndpoints
    string ITextRangeProvider.GetText(int maxLength=-1)
    string ITextRangeProvider.GetText selectedText.Length=0 selectedText=""
    Is this a JAWS screen reader problem because Narrator does not show the same behavior?
    Or, is this a problem with my interface implementation and are there any suggestions as to how
    to proceed to solve this problem?

  • Can we call Remote Endable Module  from another Remote Enabled Moduel

    Hii experts...
    I have a problem regarding Remote Enabled Module Function Module....
    Actually i want to call the standard BAPI 'BAPI_GL_GETGLACCBALANCE' into the BAPI which i hve created...
    is it possible???
    or can anyone tell me if it is not possible then what is the alternative for this..???

    'Remote enabled' means that you can also call the function remotely. The 'Remote enabled' characterstic implies some restrictions for the FMs interface, i.e. parameters can not be passed by reference because the remote system has no access to the memory of the called systems where the referenced data are located.
    Remote call means only a restriction for the remote call, not for any direct call.
    Regards,
    Clemens

  • Calling a DLL in soundrecord.vi

    In the example soundrecord.vi, is calling 5 functions using Call Library function, all of them within the same DLL. When is DLL loaded, everytime one of the functions is called (through Call Library Function) or just once when the soundrecord.VI is executed. Is this a reentrant (multithread) dll?
    Thanks

    I do not understand what you want to know, so I am going to shoot in the dark.
    The call library node loads the dll in memory when the VI is loaded. The functions within the dll are not called until the VI gets to that part of the code where the call library node is located.
    The call library nodes in the example are all set to run in the UI (they are orange). Yellow would have indicated that the call library node is reenterant.
    You might want to look at the source code for the dll. It is located in the ..\LabVIEW 7.0\examples\PDA\sound folder.

  • Telepresence Sx80 Second call became as Audio Calls Only

    Dear all,
    We have two Telepresnce SX80 (Ext:5001 and 5002) on Different location and Video call working proble but when i try to call One of them from my Cisco Jabber on smart phone the call showing on Panel ( answer call as Audio Only).
    is there any way to make third call as video?
    the applcaition using on this envirment as following :
    UCM-  10.5
    MCU 5310
    Two Telepresnce Sx80?

    The question was not about the device pool or MRG, it was how the call flow looks like.
    As you mention the call which generates the issue is from your smartphone, this would be the first thing, does video work when you dial directly in between the TelePresence system and Jabber on the phone?
    Depending on the smartphone video might not be supported, keep that in mind.
    If video does not work on the direct point to point call it will most likely not work in a
    multiparty scenario neither, ....
    If video works, continue to read, if not fix that part first :-)
    Next part would be when you initiate the multi party call how is that done and where does
    the call end up.
    You have different scenarios, rendezvous, ad-hock or scheduled.
    I assume you are talking about ad-hock meetings.
    In any case it would be important to hear how the call is established at the end.
    Scenarios I see:
    * multiparty call is locally hosted on the SX80, when no multisite license is present an additional call would be added as audio only
    * call gets escalated to an audio only MRG, but that would also stop the initial video
    * call gets escalated to the MCU but video is missing for the Jabber participant
    (additional troubleshooting is needed in between the MCU and Jabber).

Maybe you are looking for