To Call Another Form and Save Related MAster Data from a Transaction Form

Hi
Our project requires that forms for creating masters be called whenever the value (Key Value) being referenced in other forms are not found. For doing this I had used the When-Validate-Item Trigger and checked for the key value in the master tables and if not present, I use the Call_Form method to call the master form and create the key value and then come back to the Form in which I was working to continue processing the rest of the data.
It works well if the CAlling forms is in INSERT MODE but Not in UPDATE MODE ( returns a message A Calling Form has unapplied Changes, Cannot Save data (Error: FRM-40403)).
This same feature I tried to work it out around with a Key-Next-Item Trigger, it works fine for both the cases but as long as the user tabs out of the field from keyboard controls like the Enter Key or the Tab Key. But in case he wishes to click on the next field or some other button with a mouse OR he uses a keyboard shortcut to do some other operation viz. F10 for saving data, the trigger is not fired and that returns a ORACLE error (in case a database Integration issue arises) OR saves an invalid data.
I would like to know what kind of triggers could we write to exactly call a master form to save a new key value irrespective of whether the calling form is working in INSERT mode or QUERY Mode.
One way to do it is to use EXIT_FORM(DO_COMMIT, NO_ROLLBACK). But if the Primary/Calling form is closed without a Commit, then the related Master DAta is also Not Saved.
Please Let me know if we can save the master data whatever be the state of the CAlling Form permanently.
Thanks and Regards

You are going to need to POST in the Called Form rather than committing (and make sure that you do not rollback when you exit).
The Post will insert the master record into the DB but it will not be committed until you issue the commit in the Calling Form.

Similar Messages

  • Creating Master Data from a transactional text source

    hi experts, my internal bw expert is still out and I need help again.
    We have a table in bw whose values we are going to push into a DSO so that we can create some reporting on it.  However, some of the characteristics on this table exist only as text (for example, end_user).  In order to make the reporting meaningful I need to
    1) Put the unique values into an infoobject.
    2) Create a routine that when I load the transactional values from the table to perform an abap lookup on the master data to find the right "key" value.
    Can anyone point me to a guide that can help me out with these tasks?

    I will first note that best practices are to not put descriptions into DSO's.   That said, this is how you can do it.
    Things to change... you'll want to go against the Text table instead of the attribute table which can be found on the Master Data tab of the InfoObject.  Obviously change the name of the fields and variables....
    GLOBAL Section of Start Routine / Transformation
        TYPES : BEGIN OF typ_compcode,
                      comp_code TYPE /bi0/pcomp_code-comp_code,
                      country   TYPE /bi0/pcomp_code-country,
               END OF typ_compcode.
        DATA :
               lt_compcode  TYPE HASHED TABLE OF typ_compcode WITH UNIQUE KEY comp_code,
               lwa_compcode TYPE typ_compcode.
    START ROUTINE
          SELECT  COMP_CODE
              COUNTRY
          FROM /BI0/PCOMP_CODE INTO TABLE lt_compcode
         FOR ALL ENTRIES IN SOURCE_PACKAGE
          WHERE COMP_CODE      = SOURCE_PACKAGE-COMP_CODE
    AND language = 'EN' if language dependant and  date if time dependant.
    Transformation Rule
    READ TABLE LT_COMPCODE INTO LWA_COMPCODE
                  WITH TABLE KEY COMP_CODE = SOURCE_FIELD-COMP_CODE.
    RESULT = LWA_COMPCODE-country.

  • Delete the Business Entity and the Building master data

    Dear all ,
    Please I need to know the way to delete the Business Entity and the Building master data from the system.

    Hi Khairy,
    You can allow the deletion of the object(s) at the below mentioned path.
    RECACUST -> Tools -> Deletion of Real Estate Objects Without Archiving.
    You can go to the relevant master data transaction and get an option to delete in the initial screen, an example is shown below.
    Note that there are prerequisites for every type of object deletion.
    Regds,
    Hardik Sharma

  • ALE for G/L and Cost Center Master Data

    Dear Expert,
    I am a fresher in ALE  and want to distribute G/L and Cost Center Master Data from our production system to Development and Q/A system. Can you give some guidances? and how to configure ALE for this purpose?
    Regards,
    MAL

    hi,
    steps to configure ALE :
    1.first u hav to create 2 logical systems for ur 2 clients in BD54.
    2.then assign thm in SCC4 for both clients.
    3.thn crete rfc destination in SM59.create in client from which u want to send only.
    4.create port in WE21 for sender.
    5.create partner profiles in We20 for both clients,outbound for sender and inbound for reciever.
    6.now create distribution model in BD64.
    generate partner profiles and distribute.
    now ur ale configration to send data frm 1 clnt to other is ready.
    u hav diff methods like master data,change pointers,idoc extensions,idoc reductions,...... to send data .
    hope this helps.
    reward points if helpful.

  • Calling another form

    hi guys
    can anyone please tell what what the best way is to call another form, pass a parameter to it e.g patient id and execute query on the form based the id passed. basically display all related data as you open that form
    thanks

    Check the on line help for CALL_FORM....its got an example.
    REgards
    Grant ROnald
    Forms Product Management

  • How to call another form ,if option is entered in a text item object ???

    hi ,
    I am created an application ,where in i press a button which call another form having a menu .
    I select any one of the option from the menu ....i enter a number in the text item object of this form ....depending upon what option i have typed .....i would like to call another form ...
    My questions are
    1) Which trigger of this text item should be enabled,and what code to i write in this trigger ?
    2) Since this form is not having any database insert,delete ,update or query (select)
    it should directly go to the new form,whose option i provide in the text item .
    Sunny

    hey bro, i am assuming that ur text item contains the form name, any relevant trigger can be used for user action, like key-enter, post-change or key-next-item.
    to run a form u can use functions call_form or open_form with proper paramters.
    if u want to forward the entered text in the item, use global variable for the session.
    it doesnt matter if the form contains database items or blocks, all u have to do is run the form.
    e.g,
    declare
    VAR VARCHAR2-------;
    begin
    /* u can use the variable to concatinate or modify too, also can use global variable
    var:=:urblock.uritem;
    /* use ur own relevant parameters */
    open_form(VAR,ACTIVATE,NO_SESSION);
    exception
    when---------
    end;

  • Calling another form when current form is in query mode

    I have a form that is in query mode. When I select a menu option that calls another form through new_form, I get the error 'FRM-41009: Function key not allowed. Press Ctrl+F1 for list of valid keys.'
    I would like trap this error, cancel the query and invoke the new form. I have tried to do this by code similar to this:
    if :system.mode = 'enter-query' then
    exit_form ;
    end if ;
    new_form('someform') ;
    (since exit_form in query mode is supposed to cancel the query).
    But in this case, the trigger ends with the execution of the 'exit_form' statement.
    Any help would be greatly appreciated.
    Thanks and regards,
    Rajesh Jayaprakash
    [email protected]

    I think the following will work:
    When you call the EXIT_FORM builtin, Forms cancels out of Query Mode but also stops the current PL/SQ execution - which is annoying.
    I believe, though, that the WHEN-WINDOW-ACTIVATED trigger will fire on your Form. Therefore, you can:
    1) Set a Global Variable or PL/SQL packaged variable just before you call the EXIT_FORM builtin then
    2) Test the value of the Global Variable in the WHEN-WINDOW-ACTIVATED trigger and perform the CALL_FORM there.
    3) Even better, put the CALL_FORM and associated parameters into a Program Unit on the Form - then you can call it from either the original trigger or the WWA trigger as necessary.
    If this does not work, you could resort to:
    1) Set a Global Variable just before you call the EXIT_FORM builtin
    2) Initiate a TIMER
    3) Call the EXIT_FORM builtin
    4) In a WHEN-TIMER-EXPIRED trigger, check the value of the Global variable. If it's set, Call the Form you want to call
    5) Again, put the actual CALL_FORM in a Program Unit so it can easily be called with the correct parameters from wherever you need to call it.
    It's annoying that you need to go to these lengths to perform what seems to be such an easy task!
    If anyone knows any better ways of achieving this, please add another reply!

  • A form calls another form

    In VB 2 call a form (say it's Form2), we just type Form2.show
    How can I do the similiar thing in Java? I wish 2 make a splash screen n display 4 about 3 seconds n later it unload itself n calls another form.

    In VB 2 call a form (say it's Form2), we just type
    Form2.show
    How can I do the similiar thing in Java? I wish 2 make
    a splash screen n display 4 about 3 seconds n later it
    unload itself n calls another form.Create a class that extends JWindow, do your splash things in this class and when you want to call another form or frame:- frameclass.setVisible(true), and use dispose() method on JWindow class to make it disappear.

  • Calling another form in query only mode

    Dear all,
    Please clarify me which parameters to use while calling another form in query only mode in
    fnd_function.execute.
    Regards,
    Kiran

    Hi,
    According to standard doc:
    When you define a form function in the Form Functions window or call an existing form function using FND_FUNCTION.EXECUTE or
    APP_NAVIGATE.EXECUTE, you can add the string:
    QUERY_ONLY=YES
    to the string in the Parameters field or in the arguments string (using the other_params argument). This argument causes the form to be
    called in query–only mode. The FND_FUNCTION.EXECUTE procedure (which is also used by the Oracle Application Object Library
    Navigator) sets the QUERY_ONLY flag that sets all database blocks to non–insertable, non–updatable, and non–deletable.
    Hope it helps.

  • Form exits when calling another form

    I have a form that passes parameters to another form. When creating new records and then calling the other form, it works fine. However, when coming from a post query and then passes parameters to a new form, the form exits upon calling of the other form. What causes this? Thanks for your help. I am using Forms Developer 6.0
    Edited by: user6656248 on Apr 14, 2009 8:30 PM

    My form is intermittent, when creating new records, sometimes the other form is called and parameters are passed but sometimes nothing happens and there are no errors. But from post query, calling another form and passing parameters exits the calling form and the called form does not show up. This form calls another form and passes some parameters without problems but when I tried to call another one, those scenarios happen. I am confused because the codes on both my When-Button-Pressed trigger are 100% similar. I dont know why this happens on this one and NEVER on the other. I hope you understand my query. Thanks a lot for responding. Please help.
    Here is my code:
    DECLARE
    form_id      FormModule;
    pl_id      paramlist;
    pl_name      varchar2(1000);
    it_id      Item;
    BEGIN
    pl_name := 'temp';
    pl_id      := get_parameter_list(pl_name);
         IF NOT ID_NULL(pl_id) THEN
         destroy_parameter_list(pl_id);
         END IF;
    pl_id := create_parameter_list(pl_name);
    add_parameter(pl_id,'L_OUT_DATE',TEXT_PARAMETER,TO_CHAR(:DAILY_OUTS.OUT_DATE,'DD-MON-RRRR HH24:MI:SS'));
    add_parameter(pl_id,'L_DATE_IN',TEXT_PARAMETER,TO_CHAR(:DAILY_OUTS.DATE_IN,'DD-MON-RRRR HH24:MI:SS'));
         add_parameter(pl_id,'L_SUBSTATION_CODE',TEXT_PARAMETER,:DAILY_OUTS.SUBSTATION_CODE);
         add_parameter(pl_id,'L_BREAKER_CODE',TEXT_PARAMETER,:DAILY_OUTS.BREAKER_CODE);
         add_parameter(pl_id,'L_CIRCUIT_CODE',TEXT_PARAMETER,:DAILY_OUTS.CIRCUIT_CODE);
         add_parameter(pl_id,'L_REMARKS',TEXT_PARAMETER,:DAILY_OUTS.REMARKS);
         add_parameter(pl_id,'L_FREQUENCY',TEXT_PARAMETER,:DAILY_OUTS.FREQUENCY);
         add_parameter(pl_id,'L_OUTAGE_CODE',TEXT_PARAMETER,:DAILY_OUTS.OUTAGE_CODE);
         add_parameter(pl_id,'L_OUTAGE_SUBCODE',TEXT_PARAMETER,:DAILY_OUTS.OUTAGE_SUBCODE);
         add_parameter(pl_id,'L_WEEK_NO',TEXT_PARAMETER,:DAILY_OUTS.WEEK_NO);
         add_parameter(pl_id,'L_RADIO_GRP',TEXT_PARAMETER,:DAILY_OUTS.NEW_OUTAGE_GRP);
         add_parameter(pl_id,'L_RELAYS_ACT',TEXT_PARAMETER,:DAILY_OUTS.RELAYS_ACT);
         add_parameter(pl_id,'L_TRIP_CAUSED_BY',TEXT_PARAMETER,:DAILY_OUTS.TRIP_CAUSED_BY);
         add_parameterr(pl_id,'L_SCODE_TRIP_CAUSED_BY',TEXT_PARAMETER,:DAILY_OUTS.SC_CAUSED_BY);
         add_parameter(pl_id,'L_ACTION_TAKEN',TEXT_PARAMETER,:DAILY_OUTS.MEASURE);
    :GLOBAL.BC := 1;
    IF :daily_outs.out_date > sysdate +1 then
         MESSAGE('DATE/TIME-OUT IS GREATER THAN SYSTEM DATE. PLEASE CHECK AND ENTER NEW
    DATE/TIME-OUT VALUE.', acknowledge);
         MESSAGE('DATE/TIME-OUT IS GREATER THAN SYSTEM DATE. PLEASE CHECK AND ENTER NEW
    DATE/TIME-OUT VALUE.', acknowledge);
         RAISE Form_Trigger_Failure;
    END IF;
    IF :daily_outs.date_in IS NOT NULL AND :daily_outs.out_date IS NOT NULL THEN
         IF (:daily_outs.date_in - :daily_outs.out_date) <= 0 then
    MESSAGE('DATE/TIME-IN IS LESS THAN OR EQUAL TO DATE/TIME-OUT. PLEASE ENTER NEW
    DATE/TIME-IN VALUE.', acknowledge);
    RAISE Form_Trigger_Failure;
    END IF;
    END IF;
    OPEN_FORM('FRMSPM_DAILY_BRKRS_PARAM', ACTIVATE, NO_SESSION, SHARE_LIBRARY_DATA, pl_id);
    END;

  • Form6i can't call another form on network mapping drive ?

    when on web,form6i can't call another form on network mapping drive on ias8 web server,but form 6.0 vs oas 4.0.7(or 4.0.8 )can,why?
    OS : windows nt 4.0 sp5

    Malay,
    In your application servers' oracle_home\forms90 there is a file named "formsweb.cfg" configure that file with all parameters and application path also.
    workingDirectory=C:\frms
    Regards
    Mayank sharma

  • Calling another form from current form

    Hello everyone,
    After entering information into a form, I want to call another form then I want to return to the previous form without loosing the information I entered into it....
    Whats the pl/sql code to do this...how do i do it?
    Thank u...
    Edited by: user10746194 on Jan 16, 2010 9:30 AM

    You should put this code at the place where you want to appear the called form. that is the child/first form.
    if you want to call the form on button click, place the code in when-button-pressed trigger of the respective button in the first form.
    Edited by: Dora on Jan 17, 2010 10:54 AM

  • Extend material master data from one plant to another plant

    hi,
    how can i extend material master data from one plant to another plant.
    is there any sap standard transaction for this ie. bdc/t-code.
    thanks in advance.......
    rahul

    Hi
    If you want to extend the material form one plant to another then below are the possible options.
    1) MM01 - Use the material in the reference and fill in copy from and to then press enter to complete the extention.This is recommended only if you want to extend very less records.
    2) Use LSMW and record MM01 thru BDC recording available in LSMW and make the template in excel and convert it to .txt tab delimited format to upload more records.LSMW is the perfect tool and is used extensively in all the projects.
    3) Get the help from ABAPer to create upload program and include the BDC recording.
    There is no standard T code available in SAP becoz data mainatenance in the material master will be based on the industry.
    Hope it will help.
    Thanks/Karthik

  • Transfer master data from a project from one client to another client

    Hi all,
    I have a training client and a production client.  The project master data has been created (Tcode CJ01) in training client with multiple levels and WBS.  Is there a way to transfer the master data from the training client to another client so there will be no need to create the same project in another client?
    Thanks.

    Refer note for 37899 batch input option.
    Though this pertains to older versions with few changes to code it might be suitble to the version you are working on.
    Regards
    Sreenivas

  • Deleted and adjusted the Master data table, sid table and text table

    Deleted and adjusted the master data table, sid table and text table of an zinfoobject after removing and adding attributes to that zinfoobject and was trying to activate it and system was giving me messages that cannot activate infoobject something like this.
    So, i deleted and adjusted the master data table, sid table and text table. Since then getting messages right after executing the query because in that query that infoobject is getting used.
    So the messages i am getting is:
    SID 9 for characteristic Zinfoobject could not be converted CL_RSDM_READ_MASTER_DATA->_SIDVAL_DIRECT_READ2
    System error in program SAPLRRK0 and form MEGA_SORT_M_02-02- (see long text)
    Please help me in fixing this whole thing.
    Thanks
    SAPBW

    SAP BW,
    After adjusting your Master Data IOBJ and deleting and reloading the data - run a change run to adjust the references to the SIDs and then see if your query runs - run program RSDDS_AGGREGATES_MAINTAIN from se38 and select your IOBJ in the next screen..
    Arun
    Assign points if useful
    P.S I did notice that in your earlier post for the same topic - you have had 12 answers / suggestions Please maintain only one thread as previously suggested..
    My 0.02
    Message was edited by:
            Arun Varadarajan

Maybe you are looking for

  • Using my TC as a bridge (or something like that)?

    Hi. I have a first generation 500 GB Time Capsule (which I love). In the past, I have used it either to create a wireless network, join a wireless network, or connect via ethernet with wireless disabled. I wanted to try something else today, and I ha

  • Cannot open hotmail with pdf

    Cannot open hotmail with pdf even when I hold the pdf and try to open it with adobe

  • Using printer as wireless and USB cable hook-up:

    I have a HP 4502 e all- in-one printer and I want to use it with my old computer with a USB connection and my laptop with a wireless connection. Can I do this without having to disconnect my USB cable to my old computer?

  • Lookup error

    I am working on a ssis package in sql server 2008. While I am trying to modify the query in lookup advanced tab, I am getting the following error: Error 1 Validation error. DFT X  - Load TEMP records into X table: Lookup [210300]: An input column wit

  • ***URGENT*** Time Based Work Flow ERROR/PROBLEM

    Knowing that the PRE() function doesn't work smoothly with the wait function. We went ahead and added it in the conditions statement and disabled the reeval check box, but the problem is it appears that it is still checking the condition. Anyone have