Variable updating when another variable changes. How to keep it static?

I'm missing something very basic here I think. What's happening is that I'm looping through a list. I also need to update that list, but since I don't want to update the list I'm looping through, I created a temporary list to hold the new values. Then after I'm done looping, I'll update my original list with my temporary list.
I started out by defining/setting the variables:
<defvar name='matchedAccessLevels'>
     <ref>
          <concat>
               <s>user.accounts[FACILITIES].properties.locationMap[</s>
               <ref>theLoc</ref>
               <s>].accessLevels</s>                                                            
          </concat>                                                       
     </ref>                                                       
</defvar>
<defvar name='tempAccessLevels'>
     <ref>matchedAccessLevels</ref>                    
</defvar>Then I loop through. Below are the results from the log with block trace. It looks like whenever I update tempAccessLevels, it's updating matchedAccessLevels. The whole point of using tempAccessLevels was so that matchedAccessLevels remained static. What am I missing? What do I need to do differently to keep matchedAccessLevels from changing? I've tried many different combinations of code and still matchedAccessLevels is changing whenever I update tempAccessLevels.
<cond>
     <eq>
       <ref>theLoc</ref> --> Milwaukee
       <s>Milwaukee</s> --> Milwaukee
     </eq> --> 1
     <block trace='true'>
       <set name='matchedAccessLevels'>
          <ref>
            <concat>
               <s>user.accounts[FACILITIES].properties.locationMap[</s> --> user.accounts[FACILITIES].properties.locationMap[
               <ref>theLoc</ref> --> Milwaukee
               <s>].accessLevels</s> --> ].accessLevels
            </concat> --> user.accounts[FACILITIES].properties.locationMap[Milwaukee].accessLevels
          </ref> --> [Mail Room, Provider Audit File - Door 3142, Cost Reports - Door 3127]
       </set> --> null
       <set name='tempAccessLevels'>
          <ref>matchedAccessLevels</ref> --> [Mail Room, Provider Audit File - Door 3142, Cost Reports - Door 3127]
       </set> --> null
       <dolist name='theAccessLevel'>
          <ref>matchedAccessLevels</ref> --> [Mail Room, Provider Audit File - Door 3142, Cost Reports - Door 3127]
          <cond>
            <eq>
               <ref>theAccessLevel</ref> --> Mail Room
               <s>Mail Room</s> --> Mail Room
            </eq> --> 1
            <block trace='true'>
               <remove name='tempAccessLevels'>
                 <s>Mail Room</s> --> Mail Room
               </remove> --> null
               <ref>tempAccessLevels</ref> --> [Provider Audit File - Door 3142, Cost Reports - Door 3127]
               <ref>matchedAccessLevels</ref> --> [Provider Audit File - Door 3142, Cost Reports - Door 3127]
               <append name='tempAccessLevels'>
                 <s>Center Hall to NGS Far N Dr</s> --> Center Hall to NGS Far N Dr
               </append> --> null
               <ref>tempAccessLevels</ref> --> [Provider Audit File - Door 3142, Cost Reports - Door 3127, Center Hall to NGS Far N Dr]
               <ref>matchedAccessLevels</ref> --> [Provider Audit File - Door 3142, Cost Reports - Door 3127, Center Hall to NGS Far N Dr]
               <defvar name='isAccessLevelUpdated'>
               </defvar> --> null
            </block> --> null
          </cond> --> null

Ok, xpress objects are really Java objects and, as in Java, are handled by reference.
When you are setting tempAccessLevels, you are setting it to refer to the same list object as matchedAccessLevels.
A convenient way to actually copy a list is with the append function. eg:
<defvar name='tempAccessLevels'>
<append>
     <ref>matchedAccessLevels</ref>     
</append>               
</defvar>

Similar Messages

  • How is the resolution variable or when would we change the resolution of an image and why?

    How is the resolution variable or when would we change the resolution of an image
    and why?

    It all depends on the output:
    * for viewing on screen 90 -120 ppi
    * for printing on a laser printer 180  -300 ppi
    * for printing on a desktop printer 240 - 300 ppi
    Some people claim 360 ppi is optimum but I don't see any difference compaired to 300 ppi at least not with the naked eye...

  • How to derive a variable value from another variable of a different IO?

    Hi Gurus,
    I am aware that using BEx variables and Customer Exit you are able to derive a variable value from another variable of the same infoobject (for example, Fiscal Year/Period (0FISCPER) and Calendar Day (0CALDAY)).
    However, is is possible, using the same approach to derive a variable value from another variable that is in a different InfoObject? (for example, Input Fiscal Year/Period (0FISCPER) but derive Output of Required Start Date (0REQSTDAT))?
    There are 2 BEx variables involved,
    1) A user entry variable that is restricted in 0FISCPER
    2) A customer exit variable that is restricted in ZREQSTDAT
    In CMOD under EXIT_SAPLRRS0_001, Include ZXRSRU01, the code (I assume, correct me if I'm wrong) should perform 3 functions in I_STEP = 2,
    1) After the pop up, capture user entry of Fiscal Year/Period
    2) Identify or convert Fiscal Year/Period to Calendar Day range (unsure on how to code this portion)
    3) Use the Calendar Day to lookup on matching Required Start Date and display all Required Start Date that matches. (unsure on how to code on this portion)
    Hope to hear your thoughts soon.
    Regards,
    Eric

    Hi Shanthi,
    I've made the necessary adjustments. The only difference in my code is,
    Instead of,
    If I_VNAM = 'ZREQSTDAT'
    I use,
    CASE I_VNAM.
    Instead of,
    PARAMETERS: ZFISCPER TYPE /BI0/OIFISCPER.
    ZYEAR = ZFISCPER(4).
    ZMM = ZFISCPER+4(3).
    I use ,
    This is the Customer Exit Variable in ZREQSTDAT
    WHEN 'ZRSD_CX'.
    The loop I use for the User Entry Variable in 0FISCPER-ZFYP_IN
      LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
          WHERE VNAM = 'ZFYP_IN'.
        IF SY-SUBRC = 0.
            CLEAR L_S_RANGE.
    ZYEAR = LOC_VAR_RANGE(4).
    ZMM = LOC_VAR_RANGE+4(3).
    The codes were checked with no errors.
    However, when I input the Fiscal Year/Periods and hit 'Execute'. The report went blank, not sure what is the cause. I've tried it several times. No error message appeared.
    Regards,
    Eric

  • Restriction of f4 help of a bex variable based on another variable input

    Hi,
    Could you please let me know if there is any possibility to restriction of f4 help of a bex variable based on another variable input.
    eg: when i select particular company code in one variable, i need to restrict the f4 help for another variables eg: pur. group based on selected company code.
    Regards
    Kasi

    Hi,
    Try using replacement path option in bex with replace variable with variable selction.
    Thanks.

  • Can we set a variable by assigning another variable to it

    Hi,
    Can we set a variable by assigning another variable to it. If not how can we implement this.
    Thanks
    Madhavi

    Hi Sutirtha,
    My requirement is
    step1 set VARIABLE1
    step2 set VARIABLE2 = #VARIABLE1
    step3 using VARIABLE2 in Interface to filter data
    Now the value of VARIABLE2 contains #VARIABLE1. its not fetching the value of #VARIABLE1 because of this it is giving an error in the interface like "Invalid character".
    Please check the step2, is that syntax correct?
    --thanxs
    Madhavi

  • HT1766 I cannot complete my iphone configuration after sofware update, when i connect to itunes i keep gettin  a try again later message

    I cannot complete my iphone configuration after sofware update, when i connect to itunes i keep gettin  a try again later message

    That's usually a sign that your phone was hacked/jailbroken, and iTunes has detected such, errored out, preventing your phone from activating. Since Apple does not support hacking/jailbreaking, that's what happens, by design.
    We can't help you here, as Apple owns this forum. You'll have to go elsewhere.

  • Shared Variable does not update when typedef is changed

    I have a shared variable of type custom control (typedef made up of a cluster). When I chang the typedef, e.g. the name or type of one of the fields in the cluster, and then save it, the shared variable does not update to reflect this change. That is, if I place the shared variable on my block diagram and do a "UNBUNDLE BY NAME" on the output, I see the old fields. I have to go back to the properties of the shared variable, change its data type, apply it, then go back and change it back to my custom control.
    Anyone else seen this behaviour? Anyone know how to get the shared variable to update without going through this procedure?
    Bill
    “A child of five could understand this. Send someone to fetch a child of five.”
    ― Groucho Marx

    I guess I should have included this information:
    LabVIEW 8.2.1 using Project Explorer.
    “A child of five could understand this. Send someone to fetch a child of five.”
    ― Groucho Marx

  • How to use the value of a variable to set another variable

    Hello Experts,
    Is it possible to access the value of variable set by the user and set the default value of another variable using the user entered value for the first variable? Example:
    Date variable
    Week variable
    Month variable
    User enters one of those and the other two are automatically prefilled with the correct values?
    Thanks
    Rado

    Hi Rado,
    Gothrough following code
    Which reads year from user input and converts it to factory calendar week , following which you should able to convert user inputs to required parameters.
    DATA:  v_year1 TYPE i,
            v_int   TYPE i,
            v_week1 TYPE kweek,
            v_qurt  TYPE i,
            v_perd  TYPE /bi0/oifiscper,
            v_iweek TYPE i,
            v_periv TYPE periv VALUE 'Z4'.
    DATA : v_vweeks  TYPE /bi0/oicalweek,
            v_vperd   TYPE /bi0/oifiscper,
            v_vperiv  TYPE /bi0/oifiscvarnt VALUE 'Z4'.
    DATA : vit_weeks LIKE /bi0/scalweek OCCURS 0 WITH HEADER LINE.
    DATA : v_perd1   TYPE umc_y_fiscper,
            v_weeks   TYPE umc_ys_dimvals,
            v_pweeks  TYPE i.
    CASE i_vnam.
       WHEN 'WPIYWEEK'.                "Variable name of char. in Bex
    *Check for Step 2 (After user gives inputs on selection screen)
         CHECK i_step = c_after.                                "Step:2
         CLEAR :  v_year1,
                  v_week1,
                  v_iweek.
    *Read the value of variable which used has entered on sel. screen
         READ TABLE i_t_var_range INTO wa_var_range
                                     WITH KEY vnam = 'WPIFYEAR'.
         v_year1 = wa_var_range-low.
         CALL FUNCTION 'TIME_GET_LAST_WEEK'
           EXPORTING
             if_year     = v_year1
           IMPORTING
             ef_week     = v_week1
           EXCEPTIONS
             fatal_error = 1
             OTHERS      = 2.
         IF sy-subrc <> 0.
    *           MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
         ENDIF.
    *Get the no. of week from YYYYWW format
         v_iweek = v_week1+4(2).
         l_s_range-low  = v_iweek.
         l_s_range-sign = c_include.
         l_s_range-opt  = c_equal.
         APPEND l_s_range TO e_t_range.  "This is the output structure in which u have to add the result
    Endcase.
    Hope that helps.
    Regards
    Mr Kapadia
    Assigning points is the way to say thanks in SDN.

  • Filling up a variable value from another variable

    Hi,
    I have two date fields, one calmonth characteristic ZCALMON (as char) and other calmonth charactaeristic 0CALMON as time dimension (standard bw).
    But at query level, I would like to user enter only one variable value 0PCALMON for 0CALMON (say only for date characteristic as time dimension). This date variable value should get copied to other date characteristic ZCALMON (as char).
    I can do this by using the customer exit varibale (without writing any abap code) and using the copy variable from other variable options. But I am not able to use the offset on ZCALMON.
    How can i Use offset using customer exit variable on ZCALMON.
    cheers
    raj

    Hi,
    you can use customer exit variable which will read the value of the 0calmonth variable and pass it to the zcalmonth.
    While populating the value, do the calculation or the off-set and send the value to zvcalmonth (Variable).
    WHEN 'ZVCALMON'.
       IF i_step = '2'.
      Loop at i_t_var_range into i_s_var_range where vnam = '0PCALMON' .
        zdat = i_s_var_range-low.
      endloop.
          CALL FUNCTION 'GO_BACK_MONTHS' *Sample Function
            EXPORTING
              currdate   = zdat
              backmonths = '012'
            IMPORTING
              newdate    = from_period.
          CALL FUNCTION 'GO_BACK_MONTHS' *Sample Function
            EXPORTING
              currdate   = zdat
              backmonths = '000'
            IMPORTING
              newdate    = to_period.
          CLEAR l_s_range.
          lyear  = from_period+0(4).
          lmon   = from_period+4(2).
          lday   = from_period+6(2).
          CONCATENATE lyear lmon lday INTO l_s_range-low.
    Hope you got it
    Regards
    Happy Tony

  • Sales Order Updation when the delivery changed

    Hello Experts,
                           I am working an object where I need to update the sales order when the delivery changed.
                             Actually when the remote system rejected the delivery an IDOC will come to R/3
    Sooner the delivery changed in R/3 I need to update few fields in sales order.
              When I am trying to code in the exit in the FM attached to the IDOC it is first updating the sales order and calling ws_update_delivery  next.
    Even if I am trying in mv45afz1 also same thing is happening.
              Can anyone let me know how to solve this problem.

    Hi,
    you can see the work center capacity situation for manufacturing an item in the salesorder. But it needs Assemble to Order strategy. Anyway u can see the material details in the sales order.
    Kiran.

  • Assigning variable value to another variable

    I want to assign value from one variable with type DATETIME to another variable which has type STRING.
    E.G: I need to convert this variable P_CreatedDate of type DATETIME to STRING variable CreatedDate.
    Can someone help me in C# script. Im using SSIS script task.
    Thanks in advance.
    ZK

    I have a requirement where I need to convert following datetime variable value into the string vaiable format.
    Here is the example: 
    7/23/2014 11:24 PM
    I need above datetime to be converted into following string format
    2014-01-01 03:15:01.470
    yyyyMMdd HHmmssFFF
    Thanks in advance.
    ZK

  • Having my Mail account update when I make changes on Gmail

    I use mostly my Gmail account by signing in the Gmail web page. I have set up so my Gmail account is synced with my Mail account on my Mac. But when I delete messages when I am on the Gmail page, it doesn't delete the same emails in the same account that is set up with Mail.
    So when I do use Mail, I have a ton of unread emails that I have already read and deleted from Gmail.
    How do I sync them so my Mail account will update when I delete emails from the Gmail web page?

    your gmail is probably set up as POP in Mail. you need to set it up as IMAP if you want constant syncing with the server. delete the gmail account in Mail and set it up again. when you setting it up uncheck the box to set it up automatically. otherwise it will create it as POP again. see this link for instructions on how to set it up as IMAP
    http://mail.google.com/support/bin/answer.py?hl=en&answer=81379

  • How to get value od one variable baesd on another variable

    Hi Gurus,
         Is this thing possible?My problem is  i have one variable on "0calmonth2" based on this variable i want to populated the values in another object (0calquarter).i.e.
    If i select " Jan or Feb or Mar" it should populate 1  in 0calquarter similarly, for other month

    Hello Deepak
    Try a function module like this:
    FUNCTION Z_YOUR_FM.
    ""Interfase local
    *"  IMPORTING
    *"     VALUE(I_AREA) TYPE  UPC_Y_AREA
    *"     VALUE(I_VARIABLE) TYPE  UPC_Y_VARIABLE
    *"     VALUE(I_CHANM) TYPE  UPC_Y_CHANM OPTIONAL
    *"     VALUE(ITO_CHANM) TYPE  UPC_YTO_CHA
    *"  EXPORTING
    *"     REFERENCE(ETO_CHARSEL) TYPE  UPC_YTO_CHARSEL
    *"  EXCEPTIONS
    *"      FAILED
    clear export table
      CLEAR eto_charsel.
      data: i TYPE i value 1,
            ls_charsel TYPE upc_ys_charsel,
            l_periv type periv value 'K1',
            l_calmonth2 type UMC_Y_ICHAVAL,
            l_buffer_call TYPE boole-boole VALUE ' ',
            l_subrc LIKE sy-subrc,
            ls_return LIKE bapiret2,
            l_type LIKE upc_var-vartype,
            lto_varsel_all TYPE upc_yto_charsel,
            lto_varsel TYPE upc_yto_charsel,
            lto_chanm TYPE upc_yto_cha,
            wa_varsel like line of lto_varsel,
            l_quarter(1),
            l_quarterc(5).
    Read value of CALMONTH2 variable
      CALL FUNCTION 'Z_VARIABLE_GET_DETAIL'
        EXPORTING
          i_area         = <YOUR PLANNING AREA>
          i_variable     = <YOUR CALMONTH2 VARIABLE>
          i_buffer       = l_buffer_call
        IMPORTING
          e_subrc        = l_subrc
          es_return      = ls_return
          e_type         = l_type
          eto_varsel_all = lto_varsel_all
          eto_varsel     = lto_varsel
          eto_chanm      = lto_chanm.
      IF l_subrc eq 0.
        loop at lto_varsel into wa_varsel.
          move wa_varsel-low to l_calmonth2.
        endloop.
      ENDIF.
    calculate quarter
      CASE l_calmonth2.
        WHEN '01' OR '02' OR '03'.
          l_quarter = '1'.
        WHEN '04' OR '05' OR '06'.
          l_quarter = '2'.
        WHEN '07' OR '08' OR '09'.
          l_quarter = '3'.
        WHEN '10' OR '11' OR '12'.
          l_quarter = '4'.
      ENDCASE.
    passing QUARTER to variable value
      CLEAR ls_charsel.
      ls_charsel-CHANM = I_CHANM.
      ls_charsel-SEQNO = i.
      ls_charsel-sign  = 'I'.
      ls_charsel-opt   = 'EQ'.
      ls_charsel-low   = l_quarter.
      INSERT ls_charsel INTO TABLE eto_charsel.
      add 1 to i.
    ENDFUNCTION.
    Hope this helps...
    regards,
    Ibrahim.

  • How to show Min and Max values when another value "changes to a new value"

    Hi
    If I have this data (generated with this query: SELECT 1 A, 1 B UNION ALL SELECT 2, 1 UNION ALL SELECT 3, 2 UNION ALL SELECT 4, 2 UNION ALL SELECT 5, 1)
    A B
    1 1
    2 1
    3 2
    4 2
    5 1
    How can I generate this data (created with this query SELECT 1 Amin, 2 Amax, 1 B UNION ALL SELECT 3, 4, 2 UNION ALL SELECT 5, 5, 1)
    Amin Amax B
    1 2 1
    3 4 2
    5 5 1
    Thanks.

    Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. Temporal data should
    use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect. 
    This is minimal polite behavior on SQL forums. You also do not know the ANSI/ISO syntax for insertion and you did the old Sybase insertion kludge wrong, that we need keys, etc.
    CREATE TABLE Foobar
    (foo_seq INTEGER NOT NULL PRIMARY KEY,
     glop_score INTEGER NOT NULL);
    INSERT INTO Foobar
    VALUE
    (1,1),
    (2,1),
    (3,2),
    (4,2),
    (5,1);
    >> How can I generate this data (created with this query SELECT 1 Amin, 2 Amax, 1 B UNION ALL SELECT 3, 4, 2 UNION ALL SELECT 5, 5, 1) <<
    This makes no sense; you have the wrong syntax and mixed data types. My guess is: 
    SELECT MIN(foo_seg), MAX(foo_seq), MAX(glop_score)
      FROM Foobar
     GROUP BY glop_score
    HAVING MIN(glop_score) = MAX(glop_score); 
    Amin Amax B
    1 2 1
    3 4 2
    5 5 1
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Variable value from another variable

    Hi all,
    I created a query where one variable fill nother variable with following abap code:
    when 'ZODACE'.
        tables: /BIC/AZSD_O0100,
                /BIC/AZSD_O0200.
        ranges: r_createdon for /BIC/AZSD_O0100-CREATEDON.
    break-point.
        if i_step = 2.
          loop at i_t_var_range into loc_var_range
                  where vnam = 'ZDATADOC'.
            clear r_createdon.
            r_createdon-low    = loc_var_range-low.
            r_createdon-high   = loc_var_range-high.
            r_createdon-sign   = 'I'.
            r_createdon-option = 'BT'.
            append r_createdon.
            exit.
          endloop.
          select DOC_NUMBER into
                 /BIC/AZSD_O0100-DOC_NUMBER
                 from /BIC/AZSD_O0100
                  where /BIC/ZAUDAT in r_createdon.
            select single * from /BIC/AZSD_O0200
          select * from /BIC/AZSD_O0200
                   where refer_doc = /BIC/AZSD_O0100-DOC_NUMBER.
              clear l_s_range.
              l_s_range-low = /BIC/AZSD_O0200-refer_doc.
              l_s_range-sign = 'I'.
              l_s_range-opt  = 'EQ'.
              append l_s_range to e_t_range.
          endselect.
          endselect.
        endif.
    The variable are:
    ZODACE based on IO 0REFER_DOC with customer exit
    ZDATADOC based on IO ZDATU with manual entry
    After wich end-user digit a data in ZDATADOC popup I take ODOC_NUMBER in order item ODS ZSD_O01 where ZDATADOC=CREATEDON.
    With 0DOC_NUMBER I go to delivery item ODS ZSD_O02 and I take the corresponding 0REFER_DOC and then I fill variable ZODACE.
    0REFER_DOC is in row of the query.
    When I start the query I receive the following error message:
    Error for variable in the customer exit ZODACE
    and in debug i find this message:
    System error in the program CL_RSR_REQUEST and Form GET_SETXX_WA
    How can I do please?
    Thanks in advance
    Gianmarco

    0DOC_NUMBER   type-CHAR lenght-10
    0REFER_DOC      type-CHAR lenght-10
    ZAUDAT               type-DATS lenght-8
    0CREATEDON      type-DATS lenght-8
    Can you help me please?
    Thanks a lot

Maybe you are looking for