Local Variables Versus Global Variables

DATA A TYPE I VALUE 100.
PERFORM PRINT_DATA.
FORM PRINT_DATA.
           DATA A(10) TYPE C 'HELLO'.
           WRITE / A. "Wanted to Print 100 (Global)
           WRITE / A.  "Wanted to Print 'HELLO'(Local)
ENDFORM.
Note : Both the times, the Local Variable 'A' is Printed .
?Is there any way to   Differentiate the Local and Global Variables When the Names Are Same.*
*It Might be Possible in Object Oriented But I am Looking for the Same in FORMs.

Hello Gagan,
You want to print the Global as well as the local values of the variable named "A". Here are a couple of approaches:
1.The 'Subroutines' are part of the modularization techniques. There are certain keywords like "using" & "Changing" so that you can work by passing Values.
2. There is a keyword named "LOCAL". Declare data object with the keyword "LOCAL" and then try the 'write" statement. I suppose this should work for you.
Let me know if any one of the above works or if you need more help.
Best Regards,
Chaitanya

Similar Messages

  • What is the difference between Instance variable and Global variable?

    Hi folks,
    Could you please explain me, "what is the difference between Instance variable and Global variable?"
    Are they really same or not?
    --Subbu                                                                                                                                                                                                                                                                                                               

    Hi flounder,
    I too know that there is no such a term GLOBAL in java.
    generally people use to say a variable which is accessible throught out the class or file has global access
    and that will be called as a global variable...
    my point is very much similar to what Looce said.
    In simple that is not a technical term, but just a causual term.
    In technically my question is, "What is the difference between a instance variable and public variable?".
    Hi looce,
    Thanks for the reply. even thats what my understanding too....in order to confirm that i raised this question..
    Your reply has given a clear answer...... thanks again.
    --Subbu                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to assign local variable to global variable dynamically in adobe livecycle designer 7.1

    Hi All,
    i want to assign my textfield value to global variable dynamically.so that where ever i want , i will access my global variable.so it is possible in adobe livecycle designer 7.1. kindly suggest me method.Thanks in advance.
    Thanks & Regards
    Ganesh

    Please remove all adobe livecycle designer versions from your local pc.
    restart your pc to be sure, that all temp data is deleted.
    download the newest ald version from service.sap.com and install it.
    have fun with developing adobe forms with sap transaction sfp.

  • What's the difference between global variables and instance variables?

    hi im just a biginner,
    but what is the difference between these two?
    both i declare them above the constructor right.
    and both can access by any method in the class but my teacher said
    global variables are not permitted in java....
    but i don't know what that means....and i got started to confuse these two types,,
    im confusing.......
    and why my teacher said declaring global variables is not permitted,,,,,,
    why.....

    instance variables are kindof like Global variables. I'm not surprised you are confused.
    The difference is not in how they are declared, but rather in how they are used.
    There are two different "styles" of programming
    - procedural programming.
    - object oriented programming.
    Global variables are a term from Procedural programming.
    In this style of programming, you have only one class, and one "main" procedure. You only create one instance of the class, and then "run" it.
    There is one thread of control, which goes through various methods/procedures to accomplish your task.
    In this style of programming instance variables ARE "global" variables. They are accessible to all methods. There is only one instance of the class, and thus only one instance of the variables.
    Global variables are "bad" BECAUSE you can change them in any method you like. Even from places that shouldn't have to. Also if you use the same name as a global variable and a local variable, you can cause great trouble. This can lead to very subtle bugs, as the procedures interact in ways you don't expect.
    The preferred method in procedural programming is to pass the values as parameters to the methods, and only refer to the parameters, and local variables. This means that you can track exactly what your method is doing, and what it affects. It makes it simpler to understand. If you use global variables in your methods, it becomes harder to understand.
    So when are instance variables not global variables?
    When you are actually using the class as an Object, rather than just a program to run. If you are creating multiple instances of an object, all with different values for their instance variables, then they are not global variables. For instance you declare a Person object with an attribute "firstname". Your "main" program then creates many instances of the Person object, each with their own "firstname"
    I guess at the end of all this, it comes down to definitions.
    Certainly you can write procedural code in java. You can treat your instance variables, for all intents and purposes like global variables.
    I can only think to show a sort of example
    public class Test1
       User[] users;
       public void printUsers(){
         // loop through and print all the users
         // uses a global variable
          for(int i=0; i<users.length; i++){
            users.printUser();
    public void printUsers(User[] users){
    // preferred method - pass it the info it needs to do the job
    for(int i=0; i<users.length; i++){
    users[i].printUser();
    public Test1(){
    User u1 = new User("Tom", 20);
    User u2 = new User("Dick", 42);
    User u3 = new User("Harry", 69);
    users = new User[3];
    users[0] = u1;
    users[1] = u2;
    users[2] = u3;
    printUsers();
    printUsers(users);
    public static void main(String[] args)
    new Test1();
    class User{
    String firstName;
    int age;
    public User(String name, int age){
    this.firstName = name;
    this.age = age;
    public void printUser(){
    // here they are used as instance variables and not global variables
    System.out.println(firstName + " Age: " + age);
    Shit thats a lot of typing, and I'm not even sure I've explained it any good.
    Hope you can make some sense out of this drivel.
    Cheers,
    evnafets

  • Is there a way to use Global variable in HANA

    Hi Developers,
    Is there anything like a Global variable in SAP HANA which can be used to pass data from one procedure to another (Visible to all the procedures in a session)?
    Thanks
    S.Srivatsan

    Hi Sundar,
    In best of my understanding, there is no context variable or global variable available under SQL SCRIPT scope . You may need to maintain the variable as a parameter in the procedure interface and pass it to the procedures where ever you need it to be available . Or,(DB table is in memory, so its just memory unit) you can create a DB table to store the variable(s) and access it anywhere .
    Sreehari

  • Build stand-alon​e applicatio​n with Global variable

    Question:
       how to build a VI access a global variable into a standalone EXE file?
    there are multiple VIs access to one Global variable, one of the VIs need to run in background to update the Global variable, whick i built into EXE file.
    the rest VI will be called in from Teststand to retrieve the Global variable.
    the global variable is updated if i run the background VI in labview, but after i build it into EXE file, it seems the global is not updated even the EXE running OK.

    Hi,
    Do you actually need to have an executable.
    If you can call your global variable updater VI as a VI form, then your other VI's will still beable to see the Global variable.
    You can launch you global variable updater VI in a new thread or execution so that it runs in the background and returns back to TestStand sequence so you can continue on with the rest of your tests.
    Remember to close your global updater VI before you complete your test sequence run.
    Regards
    Ray Farmer

  • Control references vs. global variables

    I guess my question centers on the appropriate application of control references.
    I am writing a complex program that has a state machine at the top level, and, for one frame of the state machine, a while loop containing a couple subVIs, each of which contains many subVIs. The lower-level subVIs are affected by buttons on the top-level VI. Information from the lower-level VIs must be shown on the top-level front panel within the loop. My question is: what is the best way to do this?
    (I have a previous version of the program that I wrote that keeps just about everything on the top level so that I can update the front panel, but this is not at all modular.
    In addition, I considered breaking things up into more than on
    e front panel, but this doesn't seem to be a good option for this section of this program.)
    Last week I read about control references, and decided that this could be the way to deal with this issue. I have not worked with them before, so I want to know: Are control references an appropriate solution for this issue? Is it good programming practice to use them, especially to update data on charts and graphs? How do they compare programming-wise and efficiency-wise to global variables?
    Global variables are another solution, I think, but I would have way too many variables to update. I think the advantage with global variables is that one could just insert a global variable in a subVI and not have to wire it up through the different subVI levels, which one would have to do (I think) with control references.
    Can you offer any advice?
    Thanks!

    Paul,
    The actual implementation of the solution is up to you. This is indeed a complex question.
    I would offer the following advice:
    On globals:
    Try to avoid them. I try to restrict the use of globals to unidirectional. If you have ever dealt with a race condition, you will know why. Mistakes are often made with globals, and they are quite apt to become the biggest source of bugs in a program, especially in one as large and/or complex as your appears to be. If you must use globals, try using a shift register, or LabVIEW 2 style global instead. Basically, you use an unitialized shift register with two (or more) cases: Read and Write. This prevents race conditions, but only if the VI is non reentrant. However, implementation is still difficult.
    Control References:
    I also have read and heard about control references. I have had much use for them, for controlling the appearance of controls and indicators (and decoratiopns too, I guess...). However, I would caution you on using them to pass data around. This violates dataflow in a big way, as you are passing around pointers, instead of data. I believe this is difficult to implement, and even more difficult to keep straight. I personally recommend using them only for attributes of FP components, not for passing data.
    So, what do I believe is the most elegant solution? I think a data server is your best bet. This is close to a LabVIEW 2 style global, but a little more active. Simply write all of your data into a subVI in any manner, a queue, a FIFO, LIFO, etc. Then, retrieve the data as desired. Buffering, queuing, etc are all handled by the data storage and retrieval subVI. It becomes sort of a small active database. The two sides (storage and retrieval) are independent of each other, and the code is all handled in the function. A basic version is a LIFO, Last In First Out, wherein the data is overwritten constantly. The data is then read by the reading VI, the front panel VI in your case, at any time, and the data is always the latest. You can add complexity as you need, such as making it a FIFO. This is done by simply writing the data to an array, then reading back the oldest value (by reversing the array and reading index 0.)
    I believe this is an elegant solution to your problem. It does maintain dataflow, except that time is taken out of the equation, depending on how you look at it. It simplifies your program because you only need to do three things. Write the data handler, then drop in the function into the VI that writes, and the one that reads. It is also flexible in handling the data.
    Good luck, and let us all know how you do.

  • [C] avoiding global variables

    i have some variables in a C program i am writing which I need to be able to use through different functions. is there any way to do this without making global variables? global variables are gross and I'd like to avoid them if I can. for instance, i have a float named "balance" which I need to ba able to use in several different functions.

    halhen wrote:
    alexandrite wrote:
    halhen wrote:OT (assuming "balance" represents money): Floating point variables are imprecise and shouldn't be used to store data where accuracy is important. Using floats to represent money is IMO way more gross than global variables since the former only works under certain circumstances.
    If you're representing data that only has to be accurate to three or four decimal places (like dollar figures in most business accounting), a float is more than accurate enough to be used for the purpose, until you're into huge, huge numbers, and most businesses will either be too small to enter that domain, or will be divided into smaller subsections that are also to small to enter that domain.
    Of course, if OT means Off-Topic, I guess neither of us should be talking about this here anyway.
    We probably shouldn't, but it's just too much fun.
    I've converted a 2 MLOC system with microtransactions from floating to fixed points decimals for money. All was well for several years when running with USD. When deployed in EUR, however, customers started loosing cents - obviously not acceptable. Reason? The 25 US cent denomination worked fine but the 20 EUR-cent coin, represented as 0.2, didn't.
    So it actually IS a problem, even with reasonable numbers and few decimals.
    Huh.  I stand corrected, it would seem.

  • After updating to lv 2010, global variables do not write

    I have just updated from LV 2009 SP2 to LV 2010 and found that some of my global variables are written to, but cannot be read from.   Other global variables cannot be written to.
    How do I fix this? 
    metzler CLAD

    Hello, is that shared variable or global variable ?
    In my opinion Global variable function are same in 2009 or 2010 so theoretically updating shouldn't effect so it is unly the version issue in executing among the VI .. please make your complete project in updated version if still you get error plz reply with error codes .. 
    One more thing you can try is to reconnect all variables ..
    In case it is shared variable  This error can occur if you attempt to read from a write-only variable or write to a read-only variable, or if you do not have permission to access the variable. I am sure this shouldn't be your problem but still have a check on this also ..
    In next reply please write if you are geting any error code ..
    BR, HS

  • Can the output of a Generate Occurrence be passed in Local/Global Variable?

    Can the output of a Generate Occurrence function, which is a refnum, be passed in Local/Global Variable so that it does not need to be wired to all parties directly?
    Can more than one party be waiting on the same Occurrence and will all waiting function be released together?

    dbaechtel wrote:
    Answer was not given:
    Can the output of a Generate Occurrence function, which is a refnum, be passed in Local/Global Variable so that it does not need to be wired to all parties directly? Is this possible?
    I am not worried about whether it is bad form or not, as yet. That is for me to decide on a case by case basis.
    Yikes! That is not a very good way to learn.
    Anyways, to avoid any more bold emphasis on words, I will answer your question. Locals can only be linked to controls/indicators not individual wires. If you want to get the effect of a local/global variable with a wire value, search the forum for action engines or functional globals. Those will work for passing a wire value between threads.
    That said, what are you trying to use occurences for? There may be (and probably is) a more accepted way to implement what you are trying to do instead of using local variables
    CLA, LabVIEW Versions 2010-2013

  • Local and global variables in ABAP Debugger

    hi guys.
    we have the following support package:
    SAP_BASIS     640     0025     SAPKB64025     SAP Basiskomponente
    I would like to use in the debugger the local and global variables tab strip, but I can not find it. Is it possible. that our support package is too low for this functionality?
    Thanks a lot.
    rudit
    Edited by: Rudolf Tremmel on Aug 17, 2010 8:35 AM

    Starting with SAP NetWeaver 6.40, SAP released a new version of the Debugger.
    The Debugger available in Release 6.40 was not considered complete (and was
    not the default debugger as a result)
    The Variable Fast Display tool currently has four tabs . The first
    two are provided empty, and you can either type or double click a name in the
    source code to add it to the list. The third tab (Locals) shows all local variables
    for the current program modularization unit, and the fourth (Globals) shows all
    global variables in the current program.

  • Create local or global variables ?!

    hey guys,
    I want to use variables instead of wires , which one you suggest , local or global variables? and why ? 
    thnxxx alot

    blue silver wrote:
    I want to use variables instead of wires , which one you suggest , local or global variables? and why ? 
    In LabVIEW, the wire is the variable.
    Local and global variables have their limited use in certain UI tasks, but lead to inefficient, error prone, and hard to maintain code.
    Local variables create extra data copies in memory, which can be expensive
    They break dataflow and thus lead to race conditions.
    To "fix" the race conditions, you need to clutter your code with sequences.
    ... it's an evil cycle!.
    Why do you think you need local and global variables?
    If you "want" to use them, you are probably misguided. Typically, you should only use them if you "need" to! There are legitimate uses for them.
    LabVIEW Champion . Do more with less code and in less time .

  • Labview 8.0 PDA local & global variable cause a crash

    I've attached a pic of the portion of the VI that causes the PDA
    application to crash. What is happening is that I write the initial
    resistance0 to a (global or local) of a chip by using a case
    structure  that sets the value when the while loop first executes,
    afterwards, every other iteration, it sets the resitance to a (local or
    global variable) called resistance then it plots it.. unfortunately,
    accessing the variable
    this way causes it to crash .. Any help would be greatly appreciated.
    Message Edited by GHernandez on 02-09-2006 06:25 PM
    Attachments:
    Problems.jpg ‏162 KB

    I've re-written this application , where i have not included global
    variables for resistance, or resistance0 or the counter. The VI
    executes for maybe a  min or 2 then crashes giving me the
    following error:
    App failed. Error code 560331006. Bad input argument to function.
    unfortunately, this error code does not tell me anything.
    Message Edited by GHernandez on 02-10-2006 04:51 PM
    Message Edited by GHernandez on 02-10-2006 04:52 PM
    Attachments:
    problema.jpg ‏158 KB

  • How do I pass local final variable value to global variable.

    Hi,
    In my code, I need to pass the local final string varibale value to the global variable for further usage. I know final is constant and inside the braces it can't be modified or assigned to other. Help needed in this regard or how do I re-modify the code according to my requirement i.e assigning the final string variable value to the outside of that block.I need the value of final String variable to be available in the process method outside of the specified block.
    class HostConnection{
    public module process(){
         HostKeyVerification hkv = new HostKeyVerification() {
              public boolean verifyHost(String hostname,SshPublicKey key) {
    final String keyfingerprint = key.getFingerprint();               return true;
    Thanks
    Sri                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    SriRaj wrote:
    It seems to be by-default all varibales in the inner calss method are Final.This is not true. Try this:
    class SomeClass {
      public void method() {
        Runnable runnable = new Runnable() {
           public void run() {
              int i = 0;  // new inner-class variable
              i = i + 1;
              System.out.println(i);  //prints "1"
    }But you obviously can't do this:
    class SomeClass {
      public void method() {
        Runnable runnable = new Runnable() {
           public void run() {
              int i = 0;  // new inner-class variable
              i = i + 1;
              System.out.println(i);  //prints "1"
        System.out.println(i); //compiler error: "i" is undefined
    }Because you are declaring i in an inner class. If you want to access the value of i outside that inner class, you'd have to do this:
    class SomeClass {
      private int i;
      public void method() {
        Runnable runnable = new Runnable() {
           public void run() {
              int i = 0;  // new inner-class variable
              i = i + 1;
              System.out.println(i);  //prints "1"
              SomeClass.this.i = i;
        System.out.println(i); //no compiler error
    }If this doesn't answer your question, please try to post an actual question, along with your real code, and any compiler errors you are getting, word for word.

  • Global variable in XSLT

    Hi,
    I have a requirement in XSLT mapping where i sum up all the data related to amount field and then want to display total that i have added in the another node
    eg.
    <Detail>
    <xsl:variable name="<b>etotal</b>" select="sum(ns0:pay/ns0:checkList/ns0:check/ns0:deductionList/ns0:adjustment/ns0:amount/ns0:amount)"/>
    </Detail>
    <Trailer>
    <TotalDeductionAmount><xsl:value-of select="<b>$etotal</b>"/>
    </TotalDeductionAmount>
    </Trailer>
    how to do ?
    since the above example the scope of the variable is local and cannot be accessed globally. how to declare a global variable and then assign value to the variable
    or is there any other method to do this in XSLT
    Thanks in advance
    With Regards
    Pradeep N

    Hi,
    Please see below sample code is solving your problem. Global variable can not solve the problem, you need to use templates and call then appropriately.
    -Kavita
    Sample Input
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <Test>23</Test>
    <Test>34</Test>
    <Test>90</Test>
    </root>
    Sample Output
    <?xml version="1.0" encoding="UTF-8"?>
    <Mt_test>
         <Header>"create the header data according to req"</Header>
         <Details>
              <DetailsCol>23</DetailsCol>
         </Details>
         <Details>
              <DetailsCol>34</DetailsCol>
         </Details>
         <Details>
              <DetailsCol>90</DetailsCol>
         </Details>
         <Trailer>
              <TotalSum>147</TotalSum>
         </Trailer>
    </Mt_test>
    XLST:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/">
    <xsl:element name="Mt_test">
    <xsl:element name="Header">"create the header data according to req"</xsl:element>
              <xsl:variable name="checkNext" select="//Test[1]"/>
    <xsl:call-template name="GenerateTest">
    <xsl:with-param name="currNode" select="//Test[1]"></xsl:with-param>
    <xsl:with-param name="Sum" select="0"></xsl:with-param>
    </xsl:call-template>
    </xsl:element>
    </xsl:template>
    <xsl:template name="GenerateTest">
    <xsl:param name="currNode"></xsl:param>
    <xsl:param name="Sum"></xsl:param>
    <xsl:element name="Details">
    <xsl:element name="DetailsCol"><xsl:value-of select="$currNode"></xsl:value-of></xsl:element>
    </xsl:element>
    <xsl:variable name="Sum1" select="$Sum + $currNode"></xsl:variable>
    <xsl:variable name="checkNext" select="$currNode/following-sibling::*[1]"/>
    <xsl:choose>
         <xsl:when test="$checkNext">
    <xsl:call-template name="GenerateTest">
    <xsl:with-param name="currNode" select="$checkNext"></xsl:with-param>
    <xsl:with-param name="Sum" select="$Sum1"></xsl:with-param>
    </xsl:call-template>     
         </xsl:when>
         <xsl:otherwise>
         <xsl:call-template name="GenerateTrailer">
    <xsl:with-param name="currNode" select="chkeckNext"></xsl:with-param>
    <xsl:with-param name="Sum" select="$Sum1 "></xsl:with-param>
    </xsl:call-template>
         </xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    <xsl:template name="GenerateTrailer">
    <xsl:param name="currNode"></xsl:param>
    <xsl:param name="Sum"></xsl:param>
    <xsl:element name="Trailer">
    <xsl:element name="TotalSum"><xsl:value-of select="$Sum"></xsl:value-of></xsl:element>
    </xsl:element>
    </xsl:template>
    </xsl:stylesheet>

Maybe you are looking for

  • Personal & Work contacts

    Is there a way to separate personal and work contacts?? I would love to only see work contacts when I'm in my workspace and only see personal contacts when in the personal space..

  • Simplify the select query to get single record

    Please let me know what is wrong with my query. Max(p_received_date) is returning null columns too. But i need to have only null record per period, if there is date and null record for the same billing then return the date record. please check novemb

  • IN Business Partner Tcode

    Hi All, In Tcode BP, in the Setting Button(near to Relationship button),in that how to set  create,change,display,delete authorization in " Authorization: Relationship category" . Because in in this  in my screen all Create,Change,Display, Delete are

  • Join the two JInternalFrame into one

    hi everybody, What can I do to join two JInternalFrame into one, like I have 2 floating panel then I join it into 1 by using JTappedPane. That you can drag to spit it out or join together ! thanks, Quin

  • Install CS6 on both stationary and laptop

    I have purchased CS6 and have it installed on my stationary PC. I was told I can also install this on my laptop (Mac). But when I put the CD in I have no option to install it. How to do this?