Replacing 20 fixstatements by Global Variable - Problem 255 bytes length

Hello,
we have an issue in businessrules with setting the fix statement on 1 dimension:
we currently use Fix (@RELATIVE("CBU_ALL",0) ) - on level 0 are approx. 3000 members - on medium level are 20 CBUs Seat and 20 CBUs Door
we have approx. 20-30 similar businessrules - which either calculate on seat or door CBUs
the requirement is to either calculate with a rule the 20 CBUs for Seats or the 20 CBUs for Doors
as we currently do not fix properly on either Seat or Door CBUs, we calculate approx. 1500 empty members (empty, if fix in another dimension done correctly) - tests showed, that this doubles the time which would be needed.
I know we could easily set 20 fixes in each business rule:
@RELATIVE("CBU_BMW_Seat",0)
....20 more....
@RELATIVE("CBU_Ford_Seat",0)
(the fix above would then exclude the 1500 members, which are below:
@RELATIVE("CBU_BMW_Doors",0)
....20 more....
@RELATIVE("CBU_Ford_Doors",0)
unfortunately, the number of CBUs/Customers is frequently renamed or some are added, so I can not afford to built these 20 fixstatements into 20 different businessrules and maintain them all the time.
I thought of using UDAs or Attribute Values -
but it seems not to be possible in a fixstatment to combine a relative or Children fixstatement with UDAs, which are set on the upper member ?
I assume it works, if I classify all 3000 level 0 members with UDA or attribute SEATS or DOORS - but that's inefficient
@RELATIVE("CBU_BMW_Seat",0) AND @UDA(CBU,"SEATS")
@CHILDREN("CBU_BMW_Seat") AND @UDA(CBU,"SEATS")
@Descendants("CBU_BMW_Seat") AND @UDA(CBU,"SEATS")
@UDA(CBU,"SEATS")
generally, it seems not to be allowed to combine Children or descendant fixes with any other relations or conditions ?
@CHILDREN(@Match(CBU," Seat") ) (attempt to search for all children of all CBUs with Seat in its name)
So the idea is to define 2 global variables:
1 for Seats and 1 for Doors:
[SEAT] includes then then: @children("CBU_BMW_Seat") ... 20 more @children("CBU_Ford_Seat")
advantage would be, we can maintain the list of CBUs in 1 place
my problem is: length of global variable is limited to 255 bytes - I need 800 to 900 digits to define the 20 CBUs
having 8 global variables instead of 40 CBUs referenced in Fixstatements is not really an advantage
even if I would rename the CBUs to just S1,S2,S3,S4 D1,D2,D3 (S for Seat, D for Door) (and use aliases in Planning and Reporting with full name to have the right meaning for the users), it does not fit into 1 variable: @children("S1"), @Children("S2"), ..... is simply too long (still 400 digits)
also other attempts to make the statement shorter, failed:
@children(@list("CBU_BMW_Seat","CBU_Ford_Seat",.....)) is not allowed
is there any other idea of using global variables, makros, sequences ?
is there a workaround to extend global variable limit ? we have release 9.3.1 - is this solved in future releases ?
are there any other commands, which I can combine in clever way in fixstatements with
@relative
@children
@descendants
with things like @match @list ?
(Generation and Level are no approrate criteria for Separating Seat and Doors, as the hierarchy is the same)
please understand, that as we use this application for 5 years with a lot of historic data and it's a planning application with a lot of webforms and financial reports, and all the CBU members are stored members with calculated totals and access rights and setup data on upper members,
I can not simply re-group the whole cbu structure and separate Seats and Doors just for calculation performance
CBU dimension details is like this:
Generation:
1 CBU_ALL
2 CBU_BMW
3 CBU_BMW_Seat
4 Product A
4 Product B
..... hundreds more
3 CBU_BMW_Door
4 Product C
4 Product D
.... hundreds more
2 CBU_Ford
3 CBU_Ford_Seat
4 Product E
4 Product F
.... hundreds more
3 CBU_Ford_Doors
4 Product G
4 Product H
.... hundreds more
20 more CBUs with below 20 CBUs Seat and 20 CBUs Door

How hard would it be to insert 2 children under CBU_All? Name them CBU_Seats and CBU_Doors, then group all the Seats and Doors under them.
Then your calc could be @Relative(CBU_Doors, 0).
I know it's not always easy or feasible to effect change to a hierarchy, but I just had the thought.
Robert

Similar Messages

  • Find and replace a single global variable

    Hello,
    I have a GUI which needs to be replicated 10 times. the variables in the global file also needs to be replicated ten times. ex: if GUI1 is using global variables GUI1_TestMode, GUI1_Result etc,  GUI2 should use GUI2_TestMode, GUI2_Result and GUI3 should use GUI31_TestMode, GUI3_Result etc.  So, once I have saved GUI1 as GUI2, I need a way to select all GUI1_TestMode in GUI2 and replace it with with GUI2_TestMode.
    I tried find and replace in the edit menu, but it finds all the global variables together. 
    there are about 40 such global variables associated with each GUI and I dont think it will be sane to sit down, rename all of them in the global file, click on each variable and change them.  I really hope I dont have to do that.
    I am using Labview 8.6
    Thanks.

    Hi pcs,
    instead of using 40 globals per GUI with upto 10 different GUIs you really should redesign your program.
    I would suggest a FGV/AE handling those global data for all of those GUIs…
    The quick & dirty way would be to use LabVIEW's VI linking scheme:
    - Create your global VI with all needed variables. Create your "GUI" and connect it with that global VI.
    - Now you copy your GUI to create a new one, this will still be linked to your "global VI".
    - Then copy the global VI to create a new instance with a different name ("global2.vi") and ZIP (and remove) the original one.
    - When you now open the global2.vi it will search for your orginal "global.vi". Then you simply direct it to use "global2.vi" instead…
    - Repeat those steps for all other GUI-VIs…
    As said before: QUICK & DIRTY!
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Global variable problem

    hi all
    if i use this SELECT 'C' || mycodes.NEXTVAL INTO :ins2.code FROM DUAL; on pre-insert trigger so the global variable is not working for this field :ins2.code..
    but if i use on key-commit then working but i want to use on pre-insert
    here is my key-commit trigger codes
    begin
    SELECT 'C' || mycodes.NEXTVAL INTO :ins2.code FROM DUAL;
    if
    :ins2.name is not null
    then
    :global.name := :ins2.name;
    :global.code := :ins2.code;
    commit_form;
    end if;
    end;
    plz help me out thanks in advance
    sarah
    Edited by: SarahSarahSarah on Sep 7, 2009 6:41 AM

    Hi Sarah!
    The pre-insert trigger fires just when you call the commit_form build-in.
    So :ins2.code and :ins2.name are still null when you try to assign the values to the globals.
    Put the code inside the pre-insert trigger direct after the sequence-select.
    if
      :ins2.name is not null
    then
      :global.name := :ins2.name;
      :global.code := :ins2.code;
    end if;
    end;and the key-commit trigger:
    if
      :ins2.name is not null
    then
    commit_form;
    end if;
    end;or assign the values to the globals after the call to the commit_form build-in:
    if
      :ins2.name is not null
    then
      commit_form;
      :global.name := :ins2.name;
      :global.code := :ins2.code;
    end if;
    end;Regards
    Edited by: Magoo on 07.09.2009 13:47

  • Problem with byte[].length

    dear sir
    I am working with javacard 2.2.2, windows, jdk 1.5 and JCWDE
    I would like to know the byte length of an array ("aCrypter" in this fallowing code)
    1     public byte[] cryter(byte[] Crypter){
    2
    3          ecipher.init(key, Cipher.MODE_ENCRYPT);
    4          ecipher.doFinal(Crypter, (short)0, (short)aCrypter.length, donneeCrypter , (short)0);
    5          
    6          return donneeCrypter;
    7     }
    JCVM return an error on line 4 (it works with "(short)1"
    there is a solution to know the array length?
    regards
    Alexis
    Edited by: Alexis "le francais" on 21 mars 2011 07:33

    thanks for your help.
    In fact I would like to crypt and after decrypt with this fallowing code:
           private byte[] Crypto = {(byte)0xA0, (byte)0x00,
                 (byte)0x00, (byte)0x00, (byte)0x62, (byte)0x03, (byte)0x01, (byte)0x0C,
                 (byte)0x0f, (byte)0x01, (byte)0x01};
    public void process(APDU apdu) throws ISOException {
              // TODO Auto-generated method stub
              byte[] buffer = apdu.getBuffer();
              if (this.selectingApplet()) return;
              if (buffer[ISO7816.OFFSET_CLA] != CLA_MONAPPLET) {
                   ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);
              switch (buffer[ISO7816.OFFSET_INS]) {
                   case INS_INTERROGER_COMPTEUR:
                        tab = new byte[1000];
                        tab[0]= compteur;               
                        tableau = cryter(tab);
                        tableau2= decrypter(tableau);                    
                        apdu.setOutgoing();
                        apdu.setOutgoingLength((short) 7);
                        apdu.sendBytesLong(tableau2,(short) 0, tableau2.lenght);
                        break;          
         public void initialisation(){
            key = (DESKey)KeyBuilder.buildKey(KeyBuilder.TYPE_DES_TRANSIENT_DESELECT,KeyBuilder.LENGTH_DES, false);
            key.setKey(Crypto, (short)0);
            ecipher = Cipher.getInstance(Cipher.ALG_DES_CBC_ISO9797_M2,false);
         public byte[] decrypter(byte[] aDecrypter){
              ecipher.init(key, Cipher.MODE_DECRYPT);
              donneeDecrypte = new byte[10000];
              ecipher.doFinal(aDecrypter, (short)0, (short)aDecrypter.length, donneeDecrypte, (short)0);
              return donneeDecrypte;
         public byte[] cryter(byte[] Crypter){
              ecipher.init(key, Cipher.MODE_ENCRYPT);
              donneeCrypter = new byte[10000];
              ecipher.doFinal(Crypter, (short)0, (short)Crypter.length, donneeCrypter, (short)0);
              return donneeCrypter;
         }Now "crypter" method is executed, but when the debugger is at this fallowing line there is a problem :
    tableau2= decrypter(tableau);maybe the size of the array?
    >
    return ecipher.doFinal(aCrypter);
    >
    I work with Javacard 2.2.2, this method does not exist in the API only :
    abstract short doFinal270(byte[] inBuff, short inOffset, short inLength,byte[] outBuff, short outOffset)Edited by: le francais on 22 mars 2011 03:07

  • SAX Parser Global Variable problem

    Can someone tell me what i am doing wrong.
    i have a javabean called querybean that i store cdata from an xml file. i also have a map that i want to store this querybean in.
    when i debug this, i can see the map being populated in my end element event call, but when i return the map, there is nothing in it.
    I'm not really sure why this is. is the calling of the parser events run on a differnt thread or something.
    here is my code
    public class XmlParsing extends DefaultHandler implements LexicalHandler{
         String reportId = null;
         boolean cdataSection = false;
         StringBuffer cdataString = new StringBuffer();
         Map queryMap = new HashMap();
         QueryBean queryBean = new QueryBean();
         public static final String LEXICAL_SAX_PROPERTY =
         "http://xml.org/sax/properties/lexical-handler";
         public Map XmlPassThrough(File file)
              DefaultHandler handler = new XmlParsing();
              SAXParserFactory factory = SAXParserFactory.newInstance();
              try
              SAXParser saxParser = factory.newSAXParser();
              saxParser.setProperty("http://xml.org/sax/properties/lexical-handler",handler);
              saxParser.parse(file,handler);
              catch(Exception e)
                   e.printStackTrace();
              return this.queryMap;
         //////////Setters and Getters////////////////////////////
         public String getReportId() {
              return reportId;
         public void setReportId(String reportId) {
              this.reportId = reportId;
         public boolean isCdataSection() {
              return cdataSection;
         public void setCdataSection(boolean cdataSection) {
              this.cdataSection = cdataSection;
         public StringBuffer getCdataString() {
              return cdataString;
         public void setCdataString(StringBuffer cdataString) {
              this.cdataString = cdataString;
         public Map getQueryMap() {
              return queryMap;
         public void setQueryMap(Map queryMap) {
              this.queryMap = queryMap;
         /* Handler Methods*/
         public void startDocument() throws SAXException{
              System.out.println("Start of Document");
         public void endDocument() throws SAXException{
              System.out.println("End of Document");
         public void startElement(String namespaceURI,
                                       String lName,
                                       String qName,
                                       Attributes attrs)
         throws SAXException
              String eName = lName;
              if("".equals(eName)) eName = qName;
              if(qName.equals("sql"))
                             queryBean.setReportID(attrs.getValue("report_id"));
                             queryBean.setReportType(attrs.getValue("report_type"));
                             if(attrs.getValue("report_start_date").equals("true"))
                             queryBean.setReport_start_date(true);
                             else
                                  queryBean.setReport_start_date(false);
         public void endElement(String namespaceURI,
    String sName, // simple name
    String qName // qualified name
    throws SAXException
              if(qName.equals("select"))
                   queryBean.setSelect(this.getCdataString());
              else if(qName.equals("from"))
                   queryBean.setFrom(this.getCdataString());
              else if(qName.equals("where"))
                   queryBean.setWhere(this.getCdataString());
              else if(qName.equals("group"))
                   queryBean.setGroup(this.getCdataString());
              else if(qName.equals("order"))
                   queryBean.setOrder(this.getCdataString());
              else if(qName.equals("sql"))
                   this.queryMap.put(queryBean.getReportID(),queryBean);
                   this.setQueryMap(queryMap);
              this.cdataString.setLength(0);
         public void characters(char buf[], int offset, int len)
    throws SAXException
              if(this.isCdataSection())
                   String str = new String(buf,offset,len);
                   this.cdataString.append(str);
         /* LexicalHandler Methods*/
         public void endCDATA() throws SAXException {
              // TODO Auto-generated method stub
              System.out.println(this.cdataString.toString());
              System.out.println("end of CDATASECTION");
              this.setCdataSection(false);
         public void endDTD() throws SAXException {
              // TODO Auto-generated method stub
         public void startCDATA() throws SAXException {
              // TODO Auto-generated method stub
              System.out.println("Start of CDATASECTION");
              this.setCdataSection(true);
         public void comment(char[] ch, int start, int length) throws SAXException {
              // TODO Auto-generated method stub
         public void endEntity(String name) throws SAXException {
              // TODO Auto-generated method stub
         public void startEntity(String name) throws SAXException {
              // TODO Auto-generated method stub
         public void startDTD(String name, String publicId, String systemId) throws SAXException {
              // TODO Auto-generated method stub
         }

    Well, despite all your copious use of "this" you actually have two instances of your class. You create one, then in its XmlPassThrough method you create a second one to be the handler for the first one. The second one is where you accumulate all your data, and then you return the empty data from the first one.
    So remove this line:DefaultHandler handler = new XmlParsing();and replace all references to the "handler" variable by "this". That way your XmlParsing object acts as its own handler and accumulates data in its own fields.

  • Problems in syncronyzing two threads into Test Stand using a Global Variable (TestStand 4.1.1)

    I have one thread that is doing TCPIP Aquisition into a Global variable defined in Teststand. And I have another thread that it supose to read it. All are in the same sequence and execution. The problem is that the aquisition thread got a lot of bytes, while the processing thread is reading always only a few. Do you know what the problem could be?
    I will attach also some pictures just to be maybe more clear...
    Attachments:
    Implementation_pictures.zip ‏368 KB

    I wasn't looking at your Sequence, I was looking at Receive_HDL_Block.JPG. What is that VI doing (the one with number 3 on the icon and Size_in_bytes as an input) ?
    Where in teststand are you doing any checking?
    I don't really understand your sequence.
    You have a sequence (running in a new thread) (why), following by another called Receiver Handler (also running in a new thread) then two more sequences which seem to do some with transmitting something (also running as new threads). You are only waiting on one of these threads (the Receiver Handler). There does seem to be any loops in TestStand, you dont seem to be bothered about the other threads that you have running. What happens when this test sequence finally does stop, what is stopping the Threads that you have running.
    Your pictures dont really seem to fit in with your Test Sequence, such as where does Test_005.vi fit into everything
    The whole thing is a bit of a nightmare.
    Maybe your best bet would be to scrap the lot and start again. Only this time have a better understanding of what you what to achieve, what would be best to put into Teststand and what to put into labview. Whether you really need all those new threads running.
    Sorry to be so blunt.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Find and replace global variables

    Hi there,
    I've ran into a mess with my global variables. While I was trying to rename one of the globals, all instances in hundreds of subvis turned corrupt. The icon of the global variable turned black and the wires starting at the variable became broken. The amazing thing is that the black icons seem still to be linked to the correct global variable. If I leave the mouse cursor on the icon, the correct file path appears in the context help window. If I double click on the corrupt icon, the correct vi is opened. I tried "Save as" and "Rename" with various options. LabVIEW seems to browse through all affected vis but the icons remain broken. My last hope was to run the "Find and replace" tool (Ctrl + F), but it doesn't work for global variables for some unknown reason, unfortunately. Compare
    http://forums.ni.com/ni/board/message?board.id=170&message.id=438450&query.id=2151294
    Is anybody out there who has a useful hint?
    Peter

    stoeckel wrote:
    Hi there,
    thank you all for your contributions. We were able to solve the problem in the meanwhile. Why did nobody point us to the fact that the icons of global variables turn black if the name of the control on the panel of the variable does not match the selected name inside the icon?
    The LabVIEW compiler would have told you that right away. If you click the broken run arrow on the situation you will get the message:
    An item with the specified name could not be found. Select a different item from the list.
    Seems pretty straightforward to me. But then, perhaps it's because I've been using LabVIEW for some time.
    If somebody just quietly mentions the existence of "global variables" he or she will usually be soused with flout and bashed by the proven active veterans. But why's that? Global variables can provide an easy way to communicate a "stop" information throughout all running vis. As long as there is just one writer and many readers, there is no danger that it comes to "race conditions".  
    If global variables are really so nasty as is often said, why does National Instruments still provide them within LabVIEW??
    I don't want to get into yet another global variable debate here. The only comment regarding global variables made in this thread was a tongue-in-cheek comment I made. I was not dissing global variable. In fact, I use them quite often. Global variables, like every other programming construct ever invented have their use. The main reason you will see the so called "proven active veterans" go crazy over global variables is that they constantly see them being abused, causing race conditions, and then have to listen to newbies complain that their program doesn't work and LabVIEW sucks, when it's really their programming skills that's the real problem. But that's just my opinion.

  • Problem with .DLL and global variables

    Hi,
    I need some helps to figure out my problem.
    I wrote a .dll file to open and run a GUI. When I run it at the first time, it is ok. When I call it again, there is an error "Pointer to free memory passed to library. It will be ok if I completely exit the program that calls the .dll before re-call it. I think there is some problems with global variables when I call another thread. How can I free global variables between threads. Is there any solution for this problem?
    Thanks

    Vinh Pham:
    Are you doing anything intentionally that frees your globals?
    CVI ships with an example program that demonstrates calling a DLL to create a user interface: guidll.cws.
    I made two simple modifications to guidll.cws.
    1. In guidll.c, I made hpanel global by moving its declaration from RunDLLUI() to right below the #include statements.
    2. In useguidll.c, I duplicated the lines calling RunDLLUI () and MessagePopup() to call the DLL gui twice.
    I built the project and ran it.  I had no problems with free'ed globals.
    Take a look at the guidll example.
    Can you either post your code or a modification to guidll that demonstrates the problem you're having?

  • Problem with view object for global variables

    Hi,
    I'm using jdeveloper 11.1.2.3.0
    We are using view object with transient attributes for global variables.
    we defined the view as explained here:
    http://docs.oracle.com/cd/E14571_01/web.1111/b31974/bcstatemgmt.htm#ADFFD19610
    also we defined one of the attributes as primary key.
    When we start to test our application with disable connection pooling we got some problems.
    sometimes the row in the global view object is deleted.
    (for example after using executeEmptyRowSet on other view object).
    it looks strange, we couldn't fוnd why does it happen.
    Any idea?

    As Timo said, it is very hard to help without source.
    Are you sure that you do the next step:
    After the call to super.prepareSession(), add code to create a new row in the transient view object and insert it into the view object.

  • Problems with global variable!!

    Hi!
    I am using some cluster (global variable), and certain fields in the cluster don't be updated.I can't understand where is the problem, because some fields are updated correctly and others no!!
    Any idea?
    Thanks in advanced!!
    Graci

    A functional global acts as a global variable in that it allows LV applications to access the data from different parts of the vi or from different vis for as long a LV is running. The vi is set to not be reentrant so that race conditions are avoided. Since functional globals are subvis that you write you also have the ability to store many global variables which are dependent upon only one input by performing the calculations within the functional global vi. You can certainly achieve this by using semaphores, but with functional globals this synchronization is built in.
    In the functional global vi you have a while loop which is set to stop after 1 iteration. This while loop has a shift register which holds the global data. There is a cas
    e structure to determine whether to read or write the functional global variable. In the write case the data from the input is written to the shift register on the right side. In the read case the data from the left shift register is written to the output and also passed on through to the right shift register. A good example can be found at the following link.
    http://sine.ni.com/apps/we/niepd_web_display.DISPLAY_EPD4?p_guid=B45EACE3DB4956A4E034080020E74861&p_node=174821&p_submitted=N&p_rank=&p_answer=&p_source=External

  • Variable problems local and global score

    Hi i'm having problem of writing a value to a global variable
    in a function and using this variable affterwards. My problems is
    the following i have a firstProduct variable that is initialized as
    global at the begining of my code and the i have an XML on load
    function where i should take the first child and write it to his
    variable and use it afterwards for passing it as a variable to PHP
    but this is irrelevant, however when im trying to trace im getting
    undefined any suggestions ?? here is the code

    when i trace the variable inside the function on load it
    writes it but when i try to access it outside it is undefined im
    really frustrated, how the heck i assing values to variables in
    actionscript where i can access them from any frame that i want. do
    u have any suggesstions?

  • Global Variable in Oracle Forms 6i

    Hi,
    How & where to define global variable in Oracle form 6i and also let me know how to access it.
    Thanks in advance
    Regards,
    Sanket

    hi
    Global variable are forms specifice variable.
    it can store character value upto 255 for all usages.
    We can initialize it when we declare otherwise give error if we did not assign it any value.
    Oracle 10g it can take upto 4000 bytes
    GLOBAL.ur_globalvar := TO_CHAR(15);
    or
    :GLOBAL.ur_globalvar:= '15';
    or
    Remmber numeric values are implicitly converted by oracle 2 character
    :GLOBAL.ur_globalvar:= 15;
    -- which can then subsequently be accessed using...
    :GLOBAL.ur_globalvar;
    -- To destroy a global variable and release its memory, use the ERASE built-in procedure:
    Erase('GLOBAL.my_var'); Regards,
    Abdetu...

  • Call function in LabView from a DLL, then access global variable from DLL

    I have created a DLL in LabWindows with a function and a structure.  I want to call the function from within LabView and then access the global structure.  I am able to call the function from the DLL with a "Call Library Function Node" and can access the return value, but I cannot figure out how to access the global structure.  The structure is declared in the DLL header file with __declspec(dllimport) struct parameters.
    Is there any way of accessing this structure without using the Network Variable Library?
    Solved!
    Go to Solution.

    dblok wrote:
    When you say "access to" or "the address of" the global variable, do you mean to pass the variable as an argument to the function call in the DLL?  If so, then I was not really sure how to pass a cluster from LabView by using the "Call Library Function Node".
    Yes, that's exactly right.  I would include a pair of helper functions in the DLL to read and write the global variable.  Alternatively you might write separate helper functions for each field inside the global structure, depending on the number of fields and whether you want to do any validation on the values.
    You can pass a cluster by reference to a function that expects a struct by setting the parameter to Adapt to Type, so long as the cluster does not contain any variable-length elements (strings or arrays).  The cluster needs to match the struct exactly, and sometimes that involves adding extra padding bytes to make the alignment work.  Variable-length elements in LabVIEW need to be converted to clusters containing the same number of elements as the struct definition (for example, if your struct contains char name[12], you would create a cluster of 8 U8 values, and you could use String to Array of Bytes followed by Array to Cluster to convert a LabVIEW string into that format).  If the struct contains pointers it gets more complicated, and it may be easier to write functions in the DLL to access those specific elements individually.
    If you can't get this working or need help, post your code and an explanation of the error or problem you're seeing.
    EDIT: it is also possible to include a single function in the DLL that returns the address of the global variable, which LabVIEW can then use to access and modify the data, but that's more complicated and likely to lead to crashes if you don't get the memory addressing exactly right.

  • Global variable, memory

    Hi,
    I am using global variables in order to share values captured by one VI (as kind of data source) with other VIs, but after several days of continuous running I recieve Error 2:Memory is full.\
    Please advise how can i empty global variables or use other way of sharing data between VIs continuously without interruptions.
    Thanks

    Innka wrote:
    I am reading and sharing values from indicators which are communicating using .NET protocol, and the values are received as two signed 6 digit numbers (DBL) and  I am sampling the data every second. The idea was replacing the value each second and not creating the array of values.
    So you don't have an array?  The the global variable is not your problem.  The .NET interface could be something to look at.  Are you opening a .NET interface inside of a loop without closing it?
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Re: Global Variables (what! More?!?)

    [email protected] writes:
    One problem with using service objects for global variables is
    the flat namespace they expose.I thought that was the definition of a global variable.
    I could find no sanctioned way to provide a NameSpace that was
    global only for a Server Partition. By "global only to a server partition" do you mean "visible only
    to a server partition, but not to any others or to the clients?"
    If so, how 'bout putting them in a user-visible service object?
    Remember, "user-visible" is Forte's mis-terminology for
    "partition-visible." No law that I'm aware of says you can't put
    a user-visible service object in a server partition.
    <Snip! rest of letter, which in brief described a "roll-your-own"
    partition global area built into a subclass of TextNullable and (here's
    the really neat part!) replacing task.part.AppTitle with this object.>
    I have nothing to say about your workaround, except that it's a
    REALLY ugly hack (yes, I've been around for a while, too), and I
    wish I had thought of it! One can imagine ALL SORTS of creative
    things to do with this concept.
    Tom Wyant

    David Krieger/CORP/PART/CSC
    04/14/97 05:27 PM
    do you mean "visible only
    to a server partition, but not to any others or to the clients?"
    Yes, that is a better way to say it.
    If so, how 'bout putting them in a user-visible service object?
    Remember, "user-visible" is Forte's mis-terminology for
    "partition-visible." No law that I'm aware of says you can't put
    a user-visible service object in a server partition.
    Unfortunately all Forte Service Objects share a single name space. I
    thought from the documentation that User Visible Service Objects would work
    for me. However, when I tried User Visible Service Objects, they didn't
    quite do the trick because what I wanted was identically named service
    objects that resolve to a different local instance for each partition. So
    no matter where my code was running, it could call ProcessLocalStore.Foo()
    and it would get the ProcessLocalStore for that partition. Note that I am
    not talking about replicated partitions. Even though they are called
    "user-visible service objects, there can only be one instance of the named
    service object in any given Forte environment.

Maybe you are looking for

  • Why won't my iphone connect to itunes?

    Any time me or any normal human being tries to connect the iphone to itunes the device doesn't show up on itunes. It is connected to the computer and both softwares are up to date. WHY is it not working? I don't understand why itunes has to be so dif

  • Preview in Yosemite has lost option to print multiple images on a single page?

    I used to be able to select all thumbnails from sidebar in Preview, then print them on a single page - the options went from 2 up to 16 images per page I think.  This seems no longer an option.  Am I missing something?

  • Hard code a value in a characteristic of an Infoset

    Dear BI Experts, I need a view (virtual - no data loaded) to show only certain fields out of a Cube. I am trying to create an Infoset bringing in only the cube as a data source (no 2nd data source in the Infoset). In this Infoset I want to hard code

  • WAP121 connceted to network printer (fails)

    Bought multiple WAP121s which are physically connected via CAT5 to the Ethernet NIC of a printer. Printer is in a warehouse with no Ethernet cabling -- but there is a wifi signal provided by  a Cisco wireless router -- which is why we got the WAPs --

  • Referencing error while linking

    I am migrating our codes compiled in CC 4.2 to 6.2 and moving from Solaris 6 to 9 I am compiling with the following options /apps/dev/sun5/lang6.2/SUNWspro/bin/CC -DCLASSIC_IOSTREAMS -library=rwtools7,iostream -staticlib=rwtools7,iostream -g -pto -DI