Updating a field on one screen based on values in another screen

We have defined a new screen (ccalled Customer Data) for the Business Partner transaton BP.
On this screen is a new field that has been defined and appended to BUT000. The field is a kind of customer GUID that allocates a unique ID string to a customer (we call it a matchcode, not to be confused with the SAP standard meaning).
The value in the field is calculated by a function module, which needs uses some of the address data on the standard address tab of the BP transaction. If that data on the address screen changes, then the following needs to happen:
1) The matchcode field on the Customer Data screen needs to be updated.
2) When saved, the new matchcode is updated to the database (not a problem if the matchcode is recalcuated on the Customer Data screen).
Here are the questions:
1) How can I access the updated data on the address screen in the Customer Data screen? I was under the impression that the funtion modules which respond to events on each page are in their own function groups, so I cannot see the changed data from any function module bound to the Customer Data screen events. Is that true?
2) How could I access the changed data on the address screen to re-calculate the matchcode field?
BR,
Tony.

Closed; I spent a lot of time analysing this.Answer I think is no.
1) No guarantee of the order in which the screens are processed (DSAVE event for addresses is after DSAVE for custom screen, so scratch that).
2) Data exists in separate memory areas for separate screens and needs to be passed by EXPORT/IMPORT. 1) prevents this.

Similar Messages

  • Update vs Merge - Updating one table based on values in another

    Hello
    I have two tables lets say TAB_A and TAB_B. I altered table B to include a new column from table A
    I wrote a merge statement as follows to merge the data
    MERGE INTO TAB_A
    USING TAB_B
    ON (TAB_A.SECURITYPERSONKEY=TAB_B.SECURITYPERSONKEY)
    WHEN MATCHED THEN
      UPDATE SET TAB_A.PPYACCOUNT=TAB_B.PPYACCOUNT;
    I know INSERT is for inserting new records
    UPDATE to my knowledge is to modify currently existing records (loosely)
    MERGE is one I rarely used, until this particular scenario.
    The code works perfectly fine, but I was wondering how could I write an update statement? Or in this scenario should I even be using an update statement?

    The MERGE is good and performs well, although it malfunctions (sometimes updating data wrongly) if the destination is a view with INSTEAD OF triggers.
    The UPDATE with similar performance to the MERGE depends on SECURITYPERSONKEY being a unique or primary key on TAB_B. It is:
    update (select TAB_A.PPYACCOUNT a_PPYACCOUNT, TAB_B.PPYACCOUNT b_PPYACCOUNT
            from TAB_A JOIN TAB_B on TAB_A.SECURITYPERSONKEY=TAB_B.SECURITYPERSONKEY)
    SET A_PPYACCOUNT=B_PPYACCOUNT;
    This can set multiple columns. It also currently doesn't work on a view with INSTEAD OF triggers.
    Frank's update also works with multiple columns (eg also updating col2 and col2), with this syntax:
    UPDATE  tab_a
    SET     (ppyaccount, col2, col3) = (
                             SELECT  ppyaccount, col2, col3
                             FROM   tab_b
                             WHERE  securitypersonkey  = tab_a.securitypersonkey
    WHERE   EXISTS       (
                             SELECT  ppyaccount
                             FROM    tab_b
                             WHERE   securitypersonkey  = tab_a.securitypersonkey

  • How to restrict values in one prompt based on value from another prompt

    Hi
           I have a requirement as follows. I have two fields (objects)
    program code
    contract number
    one program code can have several contract numbers.
    I need to provide prompts on Program code and contract number. when user selects one program from the prompt on program code then contract field should only show contract numbers belonging the program user selected.
    Please let me know how to bring this functionality in Webi report.
    Thanks in advance.

    Hi
    if ur requirement is in query level its impossible.(i mean whn u click on programcode then u have to display in contract at query level)
    if you want to display at report level then  
    The two objects Program and contract have a mapping then place a program object in query filter and use operator equal to and select prompt and run the query then it will ask you to select program .whn on choosing it you will  get filtered contract numbers for that program in report level  . There no need to use prompt for contract numbers object .
    Hope this helps u
    Thanks
    sunil
    Edited by: K.sunil on Nov 7, 2011 9:30 AM

  • Problem updating a control on one panel based on a value change in another control on a different panel

    Hi,
    I am trying to update the value of a control on one panel when the value of another control on a different panel is changed.  The two panels are saved in two different .uir files, so there are two associated .h files generated by CVI.  The problem is that, inside the callback function for the control that is being modified (Ctrl_Id_A on Panel_A), when I call SetCtrlVal(Panel_B, Ctrl_Id_B, Value); 'Panel_B' and 'Ctrl_Id_B' (which have the same numeric values as Panel_A = 1 and Ctrl_Id_A = 2 in their respective .h files) are being interpreted as Panel_A and Ctrl_Id_A.  I never understood how CVI makes this distinction, eg. knowing which of PANEL_A = 1 and PANEL_B = 1 is being referred to, but didn't worry about it since I never needed cross-communication between panels until now.  Any help on how to implement this would be greatly appreciated.  Thanks!
    Solved!
    Go to Solution.

    This is a basic issue on which you can find tons of forum posts
    The online help for the function recitates:
    int SetCtrlVal (int panelHandle, int controlID, ...);
    Parameters
    Input
    Name
    Type
    Description
    panelHandle
    int
    Specifier for a particular panel that is currently in memory. You obtain this
    handle from LoadPanel, NewPanel, or DuplicatePanel.
    controlID
    int
    The defined constant, located in the .uir header file, that you assigned to the control in the User Interface Editor, or the ID returned by NewCtrl or DuplicateCtrl.
    value
    New value of the control. The data type of value must match the data type of the control.
    That is, you must not use the panel constant name in the first parameter of SetCtrlVal, use the panel handle instead. The system guarantees that all panel handles are unique throughout the whole application whichever is the number of panels used in every moment.
    int SetCtrlVal (int panelHandle, int controlID, ...);
    Purpose
    Sets the value of a control to a value you specify.
    When you call SetCtrlVal on a list box or a ring control, SetCtrlVal
    sets the current list item to the first item that has the value you
    specify. To set the current list item through a zero-based index, use SetCtrlIndex.
    When you call SetCtrlVal on a text box, SetCtrlVal appends value to the contents of the text box and scrolls the text box to display value. Use ResetTextBox to replace the contents of the text box with value.
    Note   This function updates the displayed value immediately. Use SetCtrlAttribute with ATTR_CTRL_VAL to set the control value without immediately updating the displayed value. For this reason, SetCtrlAttribute with ATTR_CTRL_VAL is generally faster than SetCtrlVal. However, if the control in which you are setting the value is the active control in the panel, SetCtrlAttribute with ATTR_CTRL_VAL displays the value immediately.
    Note   This function is not valid for graph and strip chart controls.
    Parameters
    Input
    Name
    Type
    Description
    panelHandle
    int
    Specifier for a particular panel that is currently in memory. You obtain this
    handle from LoadPanel, NewPanel, or DuplicatePanel.
    controlID
    int
    The defined constant, located in the .uir header file, that you assigned to the control in the User Interface Editor, or the ID returned by NewCtrl or DuplicateCtrl.
    value
    New value of the control. The data type of value must match the data type of the control.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • FM / BAPI to update STEUC field in marc Table basing on material and plant

    Hi,
    I need to to update STEUC field in marc Table basing on material and plant. please suggest FM / BAPI.
    Thanks.
    raviraj.

    Hi
    Try this BAPI function module:
    " BAPI_MATERIAL_MAINTAINDATA_RT "
    Data: LS_HEADDATA TYPE BAPIE1MATHEAD,
             LS_RETURN TYPE BAPIRETURN1,
              LT_PLANT TYPE TABLE OF BAPIE1MARCRT,          LS_PLANT TYPE BAPIE1MARCRT,
              LS_PLANTX TYPE BAPIE1MARCRTX,          LT_PLANTX TYPE TABLE OF BAPIE1MARCRTX.
            CALL FUNCTION 'BAPI_MATERIAL_MAINTAINDATA_RT'
                   EXPORTING
                       HEADDATA   = LS_HEADDATA
                   IMPORTING
                       RETURN     = LS_RETURN
                   TABLES
                       PLANTDATA  = LT_PLANT
                       PLANTDATAX = LT_PLANTX.
    Check the PLANTDATA in the above fm in which pass your ''STEUC'' to BAPIE1MARCRT-CTRL_CODE......
    Hope this works.....

  • How to create a new row for a VO based on values from another VO?

    Hi, experts.
    in jdev 11.1.2.3,
    How to create a new row for VO1 based on values from another VO2 in the same page?
    and in my use case it's preferable to do this from the UI rather than from business logic layer(EO).
    Also I have read Frank Nimphius' following blog,but in his example the source VO and the destination VO are the same.
    How-to declaratively create new table rows based on existing row content (20-NOV-2008)
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/13-create-with-params-169140.pdf
    I have tried:
    1.VO1(id,amount,remark1) and VO2(id,amount,remark2) are based on different EO,but render in same page,
    2.Drag and drop a Createwithparams button for VO1(id,amount,remark),
    3.add: Create insertinside Createwithparams->Nameddata(amount),
    4.set NDName:amount, NDValue:#{bindings.VO2.children.Amount}, NDtype:oracle.jbo.domain.Number.
    On running,when press button Createwithparams, cannot create a new row for VO1, and get error msg:
    <Utils> <buildFacesMessage> ADF: Adding the following JSF error message: For input string: "Amount"
    java.lang.NumberFormatException: For input string: "Amount"
         at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    Can anyone give some suggestions?
    Thanks in advance.
    bao
    Edited by: user6715237 on 2013-4-19 下午9:29

    Hi,CM,
    I'm really very appreciated for your quick reply! You know, today is Saturday, it's not a day for everyone at work.
    My principal requirement is as follows:
    1.select/check some rows from VO2, and for each selection create a new row with some attributes from VO2 as default values for VO1's corresponding attributes, and during this process the user may be cancel/uncheck or redo some of the selections.
    --so it's better to implement it in UI rather than in EO.
    2.it's better to implement this function with declarative way as in Frank Nimphius' blog.
    --little Jave/JS coding, the better. I only have experience in ORACLE FORMS, little experience in JAVA/JS.
    In order to get full information for the requirements of my use case, can take a check at:
    How to set default value for a VO query bind variable in a jspx page?
    (the end half of the thread: I have a more realworld requirement similar to the above requirement is:
    Manage bank transactions for clients. and give invoices to clients according to their transaction records. One invoice can contain one or many transactions records. and one transaction records can be split into many invoices.
    Regards
    bao
    Edited by: user6715237 on 2013-4-19 下午11:18
    JAVE->JAVA

  • Is it possible to reference one cell from the value of another?

    Is it possible to reference one cell from the value of another e.g.
    value of b1 = value of c(value of a1)
    So if a1 = 3 then b1 = c3, if a1 = 5 then b1 = c5.

    Excellent!
    Thanks Wayne. Just saved me many hours and a headache.
    Works like a dream.
    Thank you for your succinct (and accurate) answer.
    Mark

  • Display all the fields in one screen shot

    Hi all,
    I am having 20 fields in the grid.
    but few fields are displaying in the grid and the scroll bar is existing to display other fields
    where as i need all the fields in on screen shot.
    let me know it .

    Hi ,
      One option would be to reduce the width of the fields in the catalog or manually after the data is displayed.
    Regards:
    Arun

  • How to display f4 help for a field based on value of another field

    Hello All,
    I have 4 fields : Sales Org : VBAK-VKORG, Distrib Channel : RV50A-VTWEG, Div : RV50A-SPART, Sold-to-party : KUAGV-KUNNR.
    The second field depends on the first one, the third on the second one and the fourth on the first field.
    However, when each of the second third and fourth fields' f4 help is displayed, the values are independent of the previous fields. How do I set the f4 help to display values based on the respective fields?
    Regards,
    Mithun

    Please be sure that you are searching the forums before posting. This exact same question was asked just yesterday:
    F4 help to input field
    In particular study the section and the linked help document for ddic search helps export/importing parameters and the requirements for DDic Structure/table usage for the parameter mapping.

  • Changing Date in one cell based on text in another cell

    Is there a formula to change the date in a cell in one column to the date in another column on the same row based on the text in a third cell on the same row? For example, I want the date in G3 to change to the date in J3 when the text in H3 says Completed.

    Hi,
    My understanding is that if the value of H3 is "Completed", the G3 is changed the value of J3, is it correct? If yes, we can use If formula (=IF(H2="completed",J2)), please see the image below:
    If no, please share us a sample, we'd like to re-try it.
    Regards,
    George Zhao
    TechNet Community Support
    It's recommended to download and install
    Configuration Analyzer Tool (OffCAT), which is developed by Microsoft Support teams. Once the tool is installed, you can run it at any time to scan for hundreds of known issues in Office
    programs.

  • Pop-up menu in one column determines the value in another.  How?

    I'm setting up a company report, and one column has a pop-up menu.  I want the cell in another column to automatically enter a certain value depending on which option is selected in that pop-up menu.  How is that done?

    m,
    You can use any of the functions that look for a match in one column and pull data from another. As a class, they're called Lookup functions. I wouldn't plan on having your design survive an export to Excel, so you should consider who will be using your work and what platform they will have available.
    Jerry

  • Start routine to update some fields of a ODS based on the another ODS

    Hi I know i have to do abap coding at the start routine to update a ODS based on another ODS. I have tried doing the code for quite some time now and i have not been successful. I think I havenu2019t followed the definition required for this routine.
    I have 2 ODS, ODS1 has 3 key fields and ODS2 has 1 key field
    I have to map the ODS based on a 1:3 relation.
    I am writing this start routine for the update rules from ODS2 to ODS1.
    The logic is if the key field of ODS2 is equal to either Key field 1 or Key field 2 or Key field 3 of ODS1 then that record from ODS2 has to be updated to the corresponding matching record of ODS1, else no update. The 3 key fields of ODS1 have different character length and character types and the key field of ODS2 has a different character length and type when compared to the any of the key fields of ODS2 can match any of those.
    Like key field 1 of ODS1 has length 10. Key field 2 of ODS1 has length 10 and key field 3 of ODS1 has length 20 and all these fields are not alpha converted, but the key field of ODS2 has length 60 and it is alpha converted.
    Can anyone please help me in this code.
    My Code is as below.
    ITAB1-T_BOL = DATA_PACKAGE-/BIC/ZLBOL.
    ***********NISTEVO SELECT******************************
      SELECT /BIC/ZLBOL FROM /BIC/AWLONST0100 INTO ITAB1-T_BOL
                  WHERE /BIC/ZLBOL = ITAB1-T_BOL .
    **************R/3 SELECT*******************************
        SELECT /BIC/ZLRDELNU /BIC/ZLRSHIPNU /BIC/ZLREXTID
                  FROM /BIC/AWLOR3O0400
                  INTO CORRESPONDING FIELDS OF ITAB1
                  WHERE
                  /BIC/ZLRDELNU = ITAB1-T_BOL OR
                   /BIC/ZLRSHIPNU = ITAB1-T_BOL OR
                   /BIC/ZLREXTID = ITAB1-T_BOL .
          SORT ITAB1 BY T_DELNU T_SHIPNU T_EXTID .
          LOOP AT DATA_PACKAGE.
            READ TABLE ITAB1 WITH KEY T_DELNU = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            READ TABLE ITAB1 WITH KEY T_SHIPNU = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            READ TABLE ITAB1 WITH KEY T_EXTID = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            DELETE DATA_PACKAGE .
          ENDLOOP.
        ENDSELECT.
      ENDSELECT.
    Points will be awarded.
    Edited by: satish rajaram on Nov 6, 2008 4:51 PM
    Edited by: satish rajaram on Nov 7, 2008 11:40 AM
    Edited by: satish rajaram on Nov 7, 2008 11:43 AM

    The logic is if the key field of ODS2 is equal to either Key field 1 or Key field 2 or Key field 3 of ODS1 then that record from ODS2 has to be updated to the corresponding matching record of ODS1, else no update. The 3 key fields of ODS1 have different character length and character types and the key field of ODS2 has a different character length and type when compared to the any of the key fields of ODS2 can match any of those.
    Can you try below logic :
    Below is not code it needs to be manipulated as per requirement.
    ODS2 ---> ODS1
    SELECT <key fields of ODS1>
    FROM /BIC/A<ODS1>00
    INTO ITAB
    FOR ALL ENTRIES IN DATA_PACKAGE
    WHERE
    keyfield1 = data_package-key1
    or
    keyfield2 = data_package-key2
    or
    keyfield3 = data_package-key3
    **Now itab has all entries which neednot be deleted from data_package.****
    if sy-subrc=0.
    ***Check Itab and delete only those records not present in itab from data_package****
    endif.
    Hope this helps.

  • Copying fields from one screen to another

    Hi All,
    I want to move data from one field of a program to another field of a different program.  I mean, I have a date field (this field i will fill with the current date or any other date value) in my program.  This field is a parameter on my screen.  Now in my program I am calling a transaction, which opens up a new program with new screen.  I want to pass my date value to this new screen.  Is it possible to do that? Pls explain with an example.  Greatly appreciate that!
    Thanks in advanced!

    http://www.erpgenie.com/abap/bdc.htm
    http://www.sapdevelopment.co.uk/bdc/bdc_ctcode.htm
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    http://abap-gallery.blogspot.com/2007/08/bdc-batch-data-communication-tutorial.html
    http://www.savefile.com/files/155321
    http://www.savefile.com/files/155324
    http://www.savefile.com/files/155326
    Regards,
    Abhishek

  • How to update one lov based on value selected from another lov.

    Hi ,
    I have a form in which I created the 2 LOVs for my event_date field and event_name field each which is stored in one table.
    t I want to update the event_date LOV everytime event_name is selected.
    How can I achieve this.
    Thanks.
    Neeti.

    Hi,
    You can do this using dynamic LOVs. Here are the steps for populating a employee LOV on selecting a department.
    1) Create a dynamic lov say emloyee_lov with a bind variable like this
    select empno,ename from scott.emp
    where deptno = :dept
    2) Create a form on scott.emp.
    3) In the empno field which should be a LOV type of field, associate it with
    the above employee LOV.
    4) Then set the binding(s) for the bind variable(s) defined in the lov by
    selecting the deptno column.
    This would help.
    Thanks,
    Sharmila

  • Update text fields with xml data based on DDL selection of an ID number

    Hi guys,
    this one should be straight forward, but I cant seem to find a straight forward answer.  In a nutshell:
    XML file contains ID, Name, Location (so far 3 records in sample xml file)
    Form contains a Dynamic Drop down list to allow selection of ID and text fields to display the associated name and location of that ID.  The binding of the Drop down works fine, however I need the other fields to update to the associated name and location when different ID's are selected.  I assume I'll need some sort of exit event on the drop down list to update the other fields with the Name and location of the ID selected, but I dont know enough to have a stab at it.
    please, please, please help, Im starting to pull my hair out.
    James.

    Hi James,
    This would depend on the structure of your XML but assuming you have something like;
    <Data>
                <Item>
                            <Id>1</Id>
                            <Name>Name1</Name>
                            <Location>Location1</Location>
                </Item>
                <Item>
                            <Id>2</Id>
                            <Name>Name2</Name>
                            <Location>Location2</Location>
                </Item>
                <Item>
                            <Id>3</Id>
                            <Name>Name3</Name>
                            <Location>Location3</Location>
                </Item>
    </Data>
    Then in the change event of your dropdown (your could use the exit event but then value might not have changed so would be performing unnecessary processing) add the following code.
    var itemGroup = $data.Data.resolveNode("Item.(Id.value === '"+xfa.event.change+"')");
    Name.rawValue = itemGroup.Name.value;
    Location.rawValue = itemGroup.Location.value;
    The xfa.event.change will be the value selected, the resolveNode will return the Item with the matching Id, and then it is just a matter of assigning it to your form fields.
    Hope this gets you started.
    Regards
    Bruce

Maybe you are looking for

  • Import Statement Error

    Does anyone know what is wrong with these import statement? import Reduction; import Mapper; import ApplyObj; import ApplyObjUnary; import java.lang.String; public class Driver{ public static Driver me = new Driver(); public static void main(String[]

  • Formatting a Hard Drive

    I'm trying to format a 160 GB hard drive. How long does that usually take? Any clues on why Disk Utilities has been grayed out for two hours now on my 4.5GB G5 and the status bar at the bottom has been showing about 5% "partitioning" for that long? W

  • PageMaker 6.5 set default PostScript printer for PDF export

    My boss uses PageMaker 6.5 and it appears when she uses the Export to PDF option it is selecting a PostScript printer at random and asking it to "print to file" to create the PostScript file that it later gives to Distiller to create the PDF.  The pr

  • How do I move back from main screen view to desk top on my IMac

    On my IMac I am on main screen,no icons visible,how do I get back to launch pad screen

  • Photos not display in IT0002

    Hello sir, i have done all the steps for uploading employee passport photos but when i check in IT0002, it does not display, i can't see any place where i can see employee photos, plz tell me how to check employee photos thanks urvashi