Alternative for when validate

hi,
can anyone says an alternative for when validate
item because go_block is illegal there.need to execute same thing as in key next when the user
click with the mouse

Sumit, this is a forms question and a very vague one too. The user asks for transactional and navigational triggers in one line :-)
user627932 : You can post the query in Forms forum or provide more details here.
Tapash

Similar Messages

  • FRM-40735 when validate-item_trigger raised unhandled exception ORA 06502

    Hi, after i migrated my form to 10g when I enter a new record into the form and want to save I get the following message:
    Frm-40735 when validate-item_trigger raised unhandled exception ORA 06502
    what could be the reason? It worked before in 6i but not in 10g please help I don't know what could be the problem?

    library is in form. I don't know how to use debugger... below is the code for WHEN-VALIDATE-ITEM trigger:
    Thanks in advance for helping...
    DECLARE
    tmpcnt number;
    tmpcnt_u number;
    tmpcnt_b number;
    v_login_id documents.login_id%type;
    v_copy documents.copy%type;
    alr_id alert;
         alr_button number;
         al_btn number;      
    BEGIN
         IF (:dts_transactions.barcode IS NULL or :dts_transactions.barcode = ' ')
         and (:dts_transactions.login_id IS NOT NULL or :dts_transactions.copy_nbr IS NOT NULL or :dts_transactions.recipient_person_name IS NOT NULL) THEN
                             alr_button := SHOW_ALERT('DELETE_ALERT');
              IF alr_button = ALERT_BUTTON1 THEN
                        --go_item('dts_transactions.clear_line');
              --execute_trigger('WHEN-BUTTON-PRESSED');
              --:dts_transactions.login_id := null;
                                            --:dts_transactions.copy_nbr := null;
                                            --:dts_transactions.recipient_person_name := null;
                                            --set_item_property(':dts_transaction.barcode', item_is_valid, PROPERTY_TRUE);
                                  --set_item_property(':dts_transaction.recipient_person_name', item_is_valid, PROPERTY_TRUE);
                                  --set_item_property(':dts_transaction.route_to_dcc', item_is_valid, PROPERTY_TRUE);
                                  fire_timer('delete_line');
              ELSIF alr_button = ALERT_BUTTON2 THEN
                        RAISE FORM_TRIGGER_FAILURE;
    ELSIF alr_button = ALERT_BUTTON3 THEN
                   RAISE FORM_TRIGGER_FAILURE;
              END IF;          
                   return;
    END IF;
         IF     :dts_transactions.barcode IS not NULL and :dts_transactions.barcode <> ' ' THEN
         SELECT count(DOCUMENT_BAR_CODE)
    INTO tmpcnt
    FROM documents
    WHERE document_bar_code = :dts_transactions.barcode;
    IF tmpcnt = 0 THEN
              SELECT count(UNIQUE_ID)
              INTO tmpcnt_u
              FROM dts_transactions
              WHERE unique_id = :dts_transactions.barcode;
              IF tmpcnt_u > 0 THEN      
                        :dts_transactions.chk_barcode_range := 'Y';
                        set_item_property('dts_transactions.chk_barcode_range', item_is_valid , property_true);
              ELSIF tmpcnt_u = 0 THEN
              alr_id := find_alert('edit_clear');
              set_alert_property(alr_id, alert_message_text,'Validation Trigger - Please enter valid barcode.
    You must Edit or Clear value before leaving field.');
              alr_button := Show_Alert( alr_id );
              IF alr_button = ALERT_BUTTON2 THEN
              :dts_transactions.barcode := Null;
              raise form_trigger_failure;
              ELSE
              raise form_trigger_failure;
              END IF;
         END IF;
    ELSE /*Check duplicated barcodes*/
         SELECT count(bims_bar_code_id)
         INTO tmpcnt_b
              FROM documents
              WHERE bims_bar_code_id = :dts_transactions.barcode
              AND document_bar_code <> :dts_transactions.barcode;
              IF tmpcnt_b > 0 THEN
                   show_msg('Duplicate barcodes found in database. You must select one of the barcode from the LOV that will pop up after this message to continue or talk to DTS support to resolve this issue.', 'STOP');
                        IF SHOW_LOV('lov_bims_barcode_from') THEN
              null;
    ELSE
    raise form_trigger_failure;
    END IF;
              END IF;
    END IF;
    :parameter.p_unsaved_records := 'Y';
    :dts_transactions.record_saved := 'N';
    AUTO_FILL_ASSIGNED_INFO(:dts_transactions.barcode);
    Fire_timer('next_row');
    -- Fill in LOGIN_ID and COPY fields.
    BEGIN
    SELECT login_id, copy
    INTO :dts_transactions.login_id, :dts_transactions.copy_nbr
         FROM documents
         WHERE document_bar_code = :dts_transactions.barcode
         AND rownum = 1;
         EXCEPTION
                   WHEN no_data_found THEN
                             :dts_transactions.login_id := NULL;
                             :dts_transactions.copy_nbr := NULL;
                   WHEN OTHERS THEN
                   NULL;
              ---     message(sqlerrm);
    ---raise form_trigger_failure;
                   --- Raise;
         END;

  • Alternatives for library management?

    Clearly, Apple has decided that from now on iTunes is a music player only, designed it for use primarily on small screens, and taken steps to remove most of it's functionality to manage large libraries.  Many of the removed features were those which helped maintain (duplicate finder) and organize (multiple windows, lack of detailed view of fields except in song view), and navigate (any time you change a list or view, you go to the top of the page rather than returning to where you were).  What's left is a program that is bright and pretty on a small screen and makes it easy to buy and play new music.  Clearly, they are positioning the product as a good-looking alternative for when they introduce a streaming service. 
    While the program has never been ideal for managing large libraries it has been "good enough" to preclude the development of many alternatives for the relatively small percentage of users with more than 10,000 songs or those with extremely varied or classical music tastes, especially since it was closely linked to the store and could easily sync with Apple products.
    Although my immediate reaction was, like so many others, to revert to 10.7, the Apple ecosystem is such that eventually there will be no option but to give in to a later version.  Already, many of the Mac apps will not work on my OS X 10.6.8 , 2G of RAM mini, and to move to OS X 10.8 will, according to all accounts, require a new machine with more memory. 
    So far, my search for something to use as a "back end" data manager for iTunes seems to have turned up WinAmp for Mac, Songbird, and Doubletwist. Can anyone provide insight on any or all of these programs, specifically on issues such as field customization, sorting and playlist creation, and whether or not they can intergrate well enough with iTunes that I can still use it to sync my iPod and download podcasts and iTunes U materials while doing my maintenance and organizing on the alternate program? Or are there other programs out there that I may have missed?
    After having spent far too much of the last week restoring as much functionality as I can to iTunes 11, I'm hoping to finally get back to the rest of my life and look forward to useful responses to help put an end to this unwelcome distraction forced on me by Apple.

    Thanks for the response.
    The reason I'm concerned about rolling back the version is that I have reached the limits of my 1T external drive and need more capacity.  My original thought was to just get a new mini with a bigger external drive.  I've begun having "hiccups" with the existing media drive (it's read a lot of CD's over the years).  Now, neither the mini nor the Mac come with drives, and even the diehard Apple people who buy their usb external drive through Apple give it only a 3 star rating.  So, whatever way I go, changes and $$ are at hand.  My understanding is, if I get a new machine with Mountain Lion (or Constipated Goat, or whatever the latest aninal is -- OS X 10.8) iTUnes 11 is integrated and basically can't be removed.  Also, I've synced my iPod classic (which they seem to be ready to drop any day -- no updated models in a couple of product cycles) with iTunes 11 and from what I've been reading, even though there are methods for rolling back the program, it is much harder to get the devices to roll back, and that seems to be the point where people are losing access to their material.
    The reason itunes was acceptable before and is not now is that Apple has essentially decided for us that we don't need any of the, for lack of a better phrase, database managemtn functions, that those of us with large libraries have come to depend on.  My wife already says I spend way too much time with my 65,000 song and lecture library, and the new iTunes adds three to four additional steps to almost everything I want to do.
    To browse the store, I have to leave the playlist I'm playing.  If I spot a song or an album that looks interesting, to check if I've already got some or all of it, I need to leave the store, get to the songs list under the main library, do my search, go back to the store and then, if I make a pruchase, go back to the music library and then click back to the playlist I've been listening to (unless I finished with what I started listening and want to change where I am, in which case, I have to go through the process of changing windows that many more times.  And, of course, everytime I do change a window, I have to scroll back to where I was.
    When loading in a new CD, aside from all the back and forth in screens, at the end (now that I've reinstated the sidebar and figured out how to show downloads) it defaults to album view which, if you've got songs and spoken audio material from 2500 sources, is to all intents and purposes, useless.  So you go to yet another window (songs, which is the only window which allows you to search on more than one field) to see if you've ended up with any duplicates, which you have to do by searching because they've removed that feature as well.
    Get the idea?  Not only are uselful and functional features removed, but even many of those that remain have to be discovered by trial and error.  I come from the era of top 40 radio -- the same few songs over and over, and next week the new batch of songs is out and the old ones discarded, gone to who-cares where.  That, essentially, is what they've done to iTunes by removing all the features that made managing your media easier in favor of only those features that make buying and playing the newest thing as easy as possible.
    BTW, I would have no problem moving to Android if I can find the software I need.  I've been using PC's since the DOS command line days, and basically did not move into Apple's sphere until I got my 160 Gig iPod.  If I can find another device as small and with as big a drive, and a system to manage my music with, fine by me.  Apple clearly no longer wants me or all the music I've bought from them any longer.

  • Need code for this Small validation on when-validate-item

    Hi All,
    I have a text item(date datatype) in forms 4.5 I need to do a small validation want to write on when-validate-item. When I enter a date in that text item (Ex 10-JUN-2005) it has to check
    1) It Cannot be "blank"
    2) It cannot be "Not older than today"
    can you please put me code for this small validation. I am new to Forms.
    Thanks in Advance,
    Reddy

    I always put code in the when-validate-RECORD trigger to ensure fields are entered, rather than setting the property. That way, the user can enter other fields within the record, and then gets a message that the field is required only when leaving the record.
    ...of course, if the date item is the only field in the block, then the when-validate triggers will not run unless the user at least types a space in the date. In that case, you need to check in the key-commit trigger.

  • When validate item for a particular item number

    hi all
    i am using forms 6i
    In a master detail form
    the block XXNP_JL_OO1 has 2 fields like
    Manual--checkbox item
    Field--text item (populated from Lov RECORD group names Field)
    the query for the record group of FIELD is
    select flex_value from fnd_flex_values where flex_value_set_id=1009757
    flex value
    abdaly
    wafra
    fintas
    now if we do the query select flex_value, hierarchy_level from fnd_flex_values where flex_value_set_id=1009757
    flex_value hierarchy_level
    abdaly 315
    wafra 200
    fintas 100
    In the detail part
    there is a tabbed canvas one field is ACT_QTY
    ITEM NUMBER                   ACTQTY
    client requirement is whenever the item number is 1010103002 only and the manual checkbox item is ticked the act_qty should return values corresponding to the data in Field
    manual and field belongs to datablock XXNP_JL_001
    ITEM_NUMBER AND ACT_QTY belongs to data block xxnp_jl_est_002
    kindly guide how to proceed with this
    should i do a when validate item trigger in act_qty as follow
    BEGIN
        IF :XXNP_JL_001.Manual IS NOT NULL  and XXNP_JL_EST_002.ITEM_NUMBER='1010103002' THEN
            SELECT hierarchy_level
            INTO :XXNP_JL_EST_002.ACT_QTY
            FROM fnd_flex_values
            WHERE flex_value_set_id = 1009757
            AND FLEX_VALUE=:XXNP_JL_001.FIELD ;
        ELSE
             :XXNP_JL_EST_002.ACT_QTY:=NULL;
        END IF;
    ENDthanking in advance
    Edited by: makdutakdu on May 8, 2012 11:15 AM
    Edited by: makdutakdu on May 8, 2012 11:16 AM
    Edited by: makdutakdu on May 8, 2012 11:23 AM
    Edited by: makdutakdu on May 9, 2012 9:00 AM

    hi
    this is the code i wrote
    when job is manual(check box ticked) and item number=''1010103002' the act_qty as per client requirement as follows
    BEGIN
        IF :XXNP_JL_001.Manual IS NOT NULL  and XXNP_JL_EST_002.ITEM_NUMBER='1010103002' THEN
            SELECT hierarchy_level
            INTO :XXNP_JL_EST_002.ACT_QTY
            FROM fnd_flex_values
            WHERE flex_value_set_id = 1009757
            AND FLEX_VALUE=:XXNP_JL_001.FIELD ;
        ELSE
             :XXNP_JL_EST_002.ACT_QTY:=NULL;
        END IF;
    END;the original code as to how act_qty is populated now
    ORIGINAL CODE OF WHEN VALIDATE ITEM FOR ACT_QTY
    Declare
         V_count   number(10) ; 
    Begin
    SELECT    count(1) into V_count   FROM MTL_SYSTEM_ITEMS
    WHERE   SEGMENT1       = :XXNP_JL_EST_002.item_number
    AND     ATTRIBUTE3     =  'Yes'  ;
    If  V_count >=1    then
    :XXNP_JL_EST_002.CALC_CEMENT_SK   :=      :XXNP_JL_EST_002.act_QTY   ;  
    :XXNP_JL_EST_002.CALC_AMOUNT      :=          :XXNP_JL_EST_002.act_QTY * 94         ;  
    Else
    :XXNP_JL_EST_002.CALC_AMOUNT   :=             :XXNP_JL_EST_002.act_QTY  ;
    end if ;
    end ;      
    -----------------------------------------------------------i want to include the above original code of act_qty in my code in the else clause
    this is wht i tried
    Declare
         V_count   number(10) ; 
    Begin
    IF :XXNP_JL_001.Manual IS NOT NULL  and :XXNP_JL_EST_002.ITEM_NUMBER='1010103002' THEN
            SELECT hierarchy_level
            INTO :XXNP_JL_EST_002.ACT_QTY
            FROM fnd_flex_values
            WHERE flex_value_set_id = 1009757
            AND FLEX_VALUE=:XXNP_JL_001.FIELD ;
            ELSE
            ----------original code of act_qty included below in the else clause-----------------------------
    SELECT    count(1) into V_count   FROM MTL_SYSTEM_ITEMS
    WHERE   SEGMENT1       = :XXNP_JL_EST_002.item_number
    AND     ATTRIBUTE3     =  'Yes'  ;
    If  V_count >=1    then
    :XXNP_JL_EST_002.CALC_CEMENT_SK   :=      :XXNP_JL_EST_002.act_QTY   ;  
    :XXNP_JL_EST_002.CALC_AMOUNT      :=          :XXNP_JL_EST_002.act_QTY * 94         ;  
    Else
    :XXNP_JL_EST_002.CALC_AMOUNT   :=             :XXNP_JL_EST_002.act_QTY  ;
    end if ;
    END IF;
    end ;
    END;i am getting error fnd_flex_values should be declared
    kindly guide me
    thanking in advance

  • Workarounds for clear_form in when-validate-item  trigger

    Hi,
    I'm using forms6i
    I want to call clear_form in when-validate-item trigger.
    Since they are restricted procedures, i cant do that.
    So what are the workarounds available?
    There are items which are in control block and also records of a datablock available in the form,
    I want to clear everything(control block items and datablock items)
    Thanks

    Divya wrote:
    Hi,
    I'm using forms6i
    I want to call clear_form in when-validate-item trigger.
    Since they are restricted procedures, i cant do that.
    So what are the workarounds available?
    There are items which are in control block and also records of a datablock available in the form,
    I want to clear everything(control block items and datablock items)
    ThanksYou want the clear the form when you fire when-validate-item trigger
    inside the when-validate-item trigger after you commit
    COMMIT_FORM;
    if form_success then
    GO_ITEM(-------);
    clear_form(no_validate,full_rollback); EXECUTE_TRIGGER('WHEN-NEW-FORM-INSTANCE');

  • Equivalent command in OAF for when when validate record in forms

    Hi,
    what is the equivalent command in OAF to when when validate record in forms
    kumar

    Hi Kumar,
    validateRow() of your XXVORowImpl is equivalent of When-Validate-Record of forms.
    This method calls validateEntity() of your XXEOImpl
    This method is generally invoked on form submits (POST Requests)
    Regards,
    Ravi

  • How to use first_record or Next_record in WHEN-VALIDATE-ITEM.

    Hi All,
    I have a multi-record block where, in one of the fields I need to add this PL/SQL so that for there is no gaps in sequence for S_type and cer_dl fields.below is the sample of how the record should appear.
    s_type cer_dl seq xyz
    ASD Y 1 N
    ASD Y 2 Y
    ASD Y 3 N
    The program is working perfectly when I use it Key-Next-item but I have to add this pl/sql in WHEN-VALIDATE-ITEM for validating the seq field but as the below program have FIRST_RECORD and NEXT_RECORD this will fail in WHEN-VALIDATE-ITEM.
    My Query is that IS there any other way of replacing FIRST_RECORD and NEXT_RECORD
    in the below program and put this in WHEN-VALIDATE-iTEM of seq field.
    I know its pain to understand the below pl/sql and then answer my query.
    PROCEDURE val_seq IS
    --Validation to check that there is no gaps in sequence for S_TYPE and cer_dl fields
         l_value_to_check varchar2(100);
         l_seq_found number;
         l_curr_sequence number;
         l_new_value varchar2(100);
         l_found boolean:=FALSE;
         l_new_set boolean := FALSE; --s_type and cer_dl are different from previous set.
    begin
         if trim(:b1.s_type) is not null
              or trim(:b1.cer_dl) is not null
         then
         -- Program continues here only if all the items are not null
         -- Get information from record that needs to be validated
         l_value_to_check := trim(:b1.s_type) || ':'|| trim(:b1.cer_dl) ;
         l_curr_sequence := :sequence;
         if :SYSTEM.CURSOR_RECORD = '1' then
              if :sequence <> 1 then ----- to check sequence is entered as 1 in the first record
              message('Error:Sequence should start with 1');
         raise form_trigger_failure;
         end if;     
              go_item('b1.XYZ');
         else
              FIRST_RECORD;
              while :SYSTEM.LAST_RECORD <> 'TRUE'
              loop
              l_found := FALSE;
              l_new_value := trim(:b1.S_type) || ':'|| trim(:cer_dl) ;
    if l_new_value = l_value_to_check then -- If the S_type and cer_dl is same then get sequence
                   l_new_set:= FALSE;
              l_seq_found := :seq;
                        if l_seq_found >= l_curr_sequence then
                             --If sequence is duplicated for S_type and cer_dl 
                   go_item('b1.seq');
                        l_new_set := FALSE;
                        elsif l_seq_found < l_curr_sequence - 1 then
                             --If sequence entered is not in order for S_type and cer_dl  .
                        go_item('b1.sequence');
                        l_found := FALSE;
                        elsif l_seq_found = l_curr_sequence - 1 then
                        -- if sequence is entered in order for S_type and cer_dl
                        l_found:= TRUE;
                        go_item('b1.xyz); --go to next item
                        end if;
              else
                   l_new_set := TRUE;
              end if;
              NEXT_RECORD;
              end loop;
         if l_new_set then
         go_item('b1.xyz'); -- go to next item
         else
         if not l_found then
              warn_alert('Error:Sequence should be in order.');
              go_item('b1.seq');
              raise form_trigger_failure;
         end if;
         end if;
         go_item('b1.xyz'); ---go to next item
    end if;
    end if;
    end;

    Hi Gurus,
    When I say enter-query and put 'IAS' in the s_type field and then do a execute query it brings all the records of 'IAS'.
    Now as I want to update the records, and when I navigate across field(s_type,cer_dl,Seq,xyz) using tab and move the cursor down on second record(IAS N 2 N), what happens is when I navigate to sequence field the cursor jumps to LAST RECORD( IAS Y 3 N ) of LAST field XYZ. I am putting the sample record
    s_type cer_dl seq xyz
    IAS N 1 N
    IAS N 2 N
    IAS N 3 N
    IAS N 4 N
    IAS Y 1 N
    IAS Y 2 N
    IAS Y 3 N
    The cursor moves to last record --IAS -Y -3-N when I tab across the second record.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • WHEN-VALIDATE-ITEM results at a block/form

    Hello friends at www.oracle.com ,
    as we know, WHEN-VALIDATE-ITEM is a trigger used for item validation. But if I use WHEN-VALIDATE-ITEM at a block, or even at a form (since Oracle Forms editor allows me to add a WHEN-VALIDATE-ITEM trigger at a block/form), what's the effect of it? How will WHEN-VALIDATE-ITEM behave in such situation?
    Thanks, and best regards,
    Franklin Gongalves Jr.

    From forms documentation (ever considered to read it?):
    A trigger must be attached to a specific object in the form, either an item, a block, or the form itself. The object to which a trigger is attached defines the scope of the trigger, and so helps Form Builder decide which trigger to fire when the corresponding event occurs. Not all triggers are relevant to all objects. For example a When-Button-Pressed trigger would not be attached to a display item.
    That means, a when-validate-item-trigger at block level fires for ALL items of the block,
    except those ones who have an own when-validate-item-trigger at item level that has the
    property "Execution hierarchy" set to "override".

  • What is the alternative for DisplayMemberPath="Value" for Windows Store applications?

    I think there is a bug with Windows Store Applications when it comes to using DisplayMemberPath="Value".
    Here is my code
    <ComboBox Height="40" VerticalAlignment="Stretch" SelectedValuePath="Key" DisplayMemberPath="Value" x:Name="comboBox1" FontSize="25"/>
    var source = new Dictionary<string, double>();
    source.Add("Item1", 0.4);
    source.Add("Item2", 0.3);
    source.Add("Item3", 0.1);
    source.Add("Item4", 0.1);
    var formateDSource = new Dictionary<string, string>();
    foreach (var item in source)
    formateDSource.Add(string.Format("[{0}, {1}]", item.Key, item.Value), item.Key);
    comboBox1.ItemsSource = source;
    If you use this code in WPF in works perfectly. However if you use this code in a Windows Store Application then the Combo Box is empty and an error is thrown. So is there an alternative way to do this in Windows Store Applications and have I unearthed a
    bug? Because I have researched the Web for days and found no solution to this.*please do not comment unless you have tried my code as a Windows Store App not a WPF in Visual Studios. Can Someone post an example based on my code that works in Windows Store
    Apps please because this is terrible.
    Thanks

    It looks like you got an answer on SO:
    http://stackoverflow.com/questions/29817124/what-is-the-alternative-for-displaymemberpath-value-for-windows-store-applicat
    This does look like a bug.
    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.
    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined
    objects and unknown namespaces.

  • In Oracle Forms, to run all the When-Validate-Item of all the items at once

    In Oracle Forms, is there any built-in / procedure / function which is used to run all the When-Validate-Item triggers of all the Items at once ?
    I will put it in detail :
    When a form is run and while entering the data..
    when we enter some data and try to move out of that item then the When-Validate-Item trigger of that item is fired and the code in that trigger is executed..
    Similarly there may be many items and many When-Validate-Item triggers correspondigly in a form..
    My requirement is to run all the When-Validate-Item triggers of a form at once when we click a button which is created for that purpose only..
    So is there any built-in / procedure / function (to run all the When-Validate-Item triggers of all the items), which can be called in the When-Button-Pressed trigger of that particular button..
    If any one having any solution/suggestion, please let me know..
    Thanks..
    Edited by: user2938447 on Nov 8, 2010 9:03 PM
    Edited by: user2938447 on Nov 8, 2010 9:12 PM
    Edited by: user2938447 on Nov 8, 2010 10:19 PM

    Hi Sandy,
    Thanks for your suggestion..
    The validations should be done at Item level (When-Validate-Item as usually) and seperately again when a button is pressed.
    So to put all the code in another block-level When-Validate-Item trigger or in any When-Button-Pressed trigger will be duplication of the code.
    Actually I have around 30 Fmbs to be modified and each Fmb is having around 20 Items and almost all Items are having When-Validate-Item trigger.
    So,I wanted to know whether there is any Built-in / Procedure in Oracle Forms which runs all the When-Validate-Item triggers once it is called.
    Thanks..

  • ORA-01403: no data found ---- FRM-40735: WHEN-VALIDATE-ITEM trigger raised

    Scenario: I have one Master Detail form. after entering values in master Form, Navigate to Detail form, there I have to enter more that 5000 lines, it's very tough for user to enter huge amount of data.
    Workaround: Give one button on Master form and written a cursor to populate all the 5000(relavent) number of record on detail block.
    Issue: while populating detail data block after around 3000 record detail form start showing Error as
    ORA-01403: no data found
    FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-06502.
    Need suggestion
    Code Written on find button as below
    BEGIN
              --XX customized
              if (:ADJ_IP_CTRL.DUE_DT_FROM is null OR :ADJ_IP_CTRL.DUE_DT_TO is null) then
              fnd_message.set_string('Due Date from and Due Date To Must be entered.');
              fnd_message.Show;
              raise form_trigger_failure;
              end if;
         BEGIN     
              go_block('ADJ_INV_PAY');
    clear_block(no_validate);
         for inv_rec in (
                             SELECT v.invoice_num,
              v.invoice_id,
              v.invoice_type,
              v.pay_alone,
              v.exclusive_payment_flag,
              v.payment_num,
              v.amount_remaining,
              --TO_CHAR (v.amount_remaining,fnd_currency.get_format_mask(v.currency_code, 42)) char_amount_remaining,
              TO_CHAR (v.amount_remaining,'FM999G999G999G999G999G999G999G999G990D00') char_amount_remaining,
              ap_payment_schedules_pkg.get_discount_available (
              v.invoice_id,
              v.payment_num,
              :pay_sum_folder.check_date,
              :pay_sum_folder.currency_code)
              discount_available,
              /*TO_CHAR (ap_payment_schedules_pkg.get_discount_available (
              v.invoice_id,
              v.payment_num,
              :pay_sum_folder.check_date,
              :pay_sum_folder.currency_code),
              fnd_currency.get_format_mask (v.currency_code, 42))*/
              TO_CHAR (ap_payment_schedules_pkg.get_discount_available (
              v.invoice_id,
              v.payment_num,
              :pay_sum_folder.check_date,
              :pay_sum_folder.currency_code),'FM999G999G999G999G999G999G999G999G990D00')
              char_discount_available,
              ap_payment_schedules_pkg.get_discount_date (
              v.invoice_id,
              v.payment_num,
              :pay_sum_folder.check_date)
              disc_date,
              v.always_take_disc_flag,
              v.discount_amount_available,
              v.discount_date,
              v.second_discount_date,
              v.second_disc_amt_available,
              v.third_discount_date,
              v.third_disc_amt_available,
              v.gross_amount,
              v.description,
              v.accts_pay_code_combi_id,
              v.due_date,
              v.REMIT_TO_SUPPLIER_NAME,
              v.REMIT_TO_SUPPLIER_ID,
              v.REMIT_TO_SUPPLIER_SITE,
              v.REMIT_TO_SUPPLIER_SITE_ID,
              v.RELATIONSHIP_ID,
              v.external_bank_account_id,
              ieba.bank_account_num external_bank_account_num,
              ieba.bank_account_name external_bank_account_name
              FROM ap_invoices_ready_to_pay_v v, iby_ext_bank_accounts ieba
              WHERE v.party_id = :pay_sum_folder.party_id /* and v.invoice_num like :adj_inv_pay.invoice_num||'%' */
              AND ( (:pay_sum_folder.payment_type_flag =
              'M')
              OR (:pay_sum_folder.payment_type_flag =
              'R'
              AND v.invoice_type IN
              ('CREDIT',
              'STANDARD',
              'DEBIT',
              'EXPENSE REPORT',
              'MIXED',
              'AWT'))
              OR /*Bug5948003, Bug6069211*/
              (:pay_sum_folder.payment_type_flag =
              'Q'
              /*AND (v.vendor_site_id =
              :pay_sum_folder.vendor_site_id
              OR v.invoice_type =
              'PAYMENT REQUEST')*/
              AND ( (:SYSTEM.LAST_RECORD =
              'TRUE'
              AND :SYSTEM.cursor_record =
              '1')
              OR (NVL (
              v.exclusive_payment_flag,
              'N') =
              'N'
              AND NVL (
              :parameter.pay_alone,
              'N') =
              'N'))))
              AND v.currency_code = :pay_sum_folder.currency_code
              AND v.payment_method_code = :pay_sum_folder.payment_method_code
              AND NVL (v.payment_function, 'PAYABLES_DISB') =
              NVL (:pay_sum_folder.payment_function, 'PAYABLES_DISB')
              AND v.set_of_books_id = :pay_sum_folder.set_of_books_id
              AND NVL (v.future_dated_payment_ccid, -1) =
              DECODE (:parameter.manual_fdp_site_acct_src_flag,
              'Y', NVL (:parameter.site_fdp_account_ccid, -1),
              NVL (v.future_dated_payment_ccid, -1))
              AND v.external_bank_account_id = ieba.ext_bank_account_id(+)
              AND v.due_date BETWEEN :ADJ_IP_CTRL.DUE_DT_FROM and :ADJ_IP_CTRL.DUE_DT_TO
                                  ORDER BY v.due_date, UPPER (invoice_num)          
                        --added 08apr2012 (end)
              removed 08apr2012 ORDER BY UPPER (invoice_num)
              ) loop
                   :ADJ_INV_PAY.INVOICE_NUM := inv_rec.INVOICE_NUM;
    :ADJ_INV_PAY.INVOICE_ID := inv_rec.INVOICE_ID;
    :ADJ_INV_PAY.INVOICE_TYPE := inv_rec.INVOICE_TYPE;
    :ADJ_INV_PAY.EXCLUSIVE_PAYMENT_FLAG := inv_rec.EXCLUSIVE_PAYMENT_FLAG;
    :ADJ_INV_PAY.PAYMENT_NUM := inv_rec.PAYMENT_NUM;
    :ADJ_INV_PAY.AMOUNT_REMAINING := inv_rec.AMOUNT_REMAINING;
    :ADJ_INV_PAY.DISCOUNT_AVAILABLE:= inv_rec.DISCOUNT_AVAILABLE;
    :ADJ_INV_PAY.DISC_DATE := inv_rec.DISC_DATE;
    :ADJ_INV_PAY.ALWAYS_TAKE_DISC_FLAG := inv_rec.ALWAYS_TAKE_DISC_FLAG;
    :ADJ_INV_PAY.DISCOUNT_AMOUNT_AVAILABLE := inv_rec.DISCOUNT_AMOUNT_AVAILABLE;
    :ADJ_INV_PAY.SECOND_DISCOUNT_DATE := inv_rec.SECOND_DISCOUNT_DATE;
    :ADJ_INV_PAY.SECOND_DISC_AMT_AVAILABLE:= inv_rec.SECOND_DISC_AMT_AVAILABLE;
    :ADJ_INV_PAY.THIRD_DISCOUNT_DATE:= inv_rec.THIRD_DISCOUNT_DATE;
    :ADJ_INV_PAY.THIRD_DISC_AMT_AVAILABLE := inv_rec.THIRD_DISC_AMT_AVAILABLE;
    :ADJ_INV_PAY.GROSS_AMOUNT := inv_rec.GROSS_AMOUNT;
    :ADJ_INV_PAY.ACCTS_PAY_CODE_COMBINATION_ID := inv_rec.ACCTS_PAY_CODE_COMBI_ID;
    :ADJ_INV_PAY.DUE_DATE := inv_rec.DUE_DATE;
    :ADJ_INV_PAY.REMIT_TO_SUPPLIER_NAME := inv_rec.REMIT_TO_SUPPLIER_NAME;
    :ADJ_INV_PAY.REMIT_TO_SUPPLIER_ID := inv_rec.REMIT_TO_SUPPLIER_ID;
    :ADJ_INV_PAY.REMIT_TO_SUPPLIER_SITE := inv_rec.REMIT_TO_SUPPLIER_SITE;
    :ADJ_INV_PAY.REMIT_TO_SUPP_SITE_ID := inv_rec.REMIT_TO_SUPPLIER_SITE_ID;
    :ADJ_INV_PAY.APS_EXTERNAL_BANK_ACCOUNT_ID := inv_rec.EXTERNAL_BANK_ACCOUNT_ID;               
    --               go_item ('ADJ_INV_PAY.INVOICE_NUM');
    --               EXECUTE_TRIGGER('WHEN-VALIDATE-ITEM');
              validate(record_scope);
              if form_success then
              next_record;
              end if;
              end loop;
              first_record;
         exception
                   when others then
                   raise form_trigger_failure;
              END;
    synchronize;
    END;
    Thanks
    -Krishn

    Hello Krishn,
    Welcome to the Oracle Forums. Please take a few minutes to review the following:
    <ul>
    <li>Oracle Forums FAQ
    <li>Before posting on this forum please read
    <li>10 Commandments for the OTN Forums Member
    <li>How to ask questions the smart way
    </ul>
    Following these simple guidelines will ensure you have a positive experience in any forum; not just this one!
    user12266683 wrote:
    Scenario: I have one Master Detail form. after entering values in master Form, Navigate to Detail form, there I have to enter more that 5000 lines, it's very tough for user to enter huge amount of data.
    Workaround: Give one button on Master form and written a cursor to populate all the 5000(relavent) number of record on detail block.
    Issue: while populating detail data block after around 3000 record detail form start showing Error as
    ORA-01403: no data found
    FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-06502.
    Need suggestion
    ORA-01403: no data found clearly indicate that you have SQL Select statement in WHEN-VALIDATE-ITEM trigger and does not handled EXCEPTION
    add exception in your select statement.
    Hope it's clear..
    Hamid
    If someone's response is helpful or correct, please mark it accordingly.*

  • When-validate-record trigger only if  a non database item is changed

    Hi,
    I am trying a code in the when-vaidate-record trigger in the BLOCK level.
    The trigger should fire only if a checkbox item value is ticked(Value ='Y) for the present record(i.e, if already existing other records have a value ticked (='Y), it doesnt matter and trigger shouldnt fire)
    Please help me achieve this :
    The code I have tried in when-vaidate-trigger, which does not work as what I want :
    DECLARE
    X NUMBER;
    BEGIN
    if
      nvl ( :DEFLOC.to_be_defaulted, 'N' ) = 'Y' and :DEFLOC.COMMENTS is NULL
      and :SYSTEM.RECORD_STATUS ='CHANGED'
         then
        set_alert_property(
             'err_alert',
             alert_message_text,
             'You must enter a comment when defaulting localities.');
              x := show_alert('err_alert');
              RAISE FORM_TRIGGER_FAILURE;
              end if;
    END;The above code does not fire at all..
    If I remove the part,
    and :SYSTEM.RECORD_STATUS ='CHANGED'
    it fires for "all records"(not just the currently changed records) where nvl ( :DEFLOC.to_be_defaulted, 'N' ) = 'Y' and :DEFLOC.COMMENTS is NULL
    Please help !!
    Note: :DEFLOC.to_be_defaulted is a non database item ; :DEFLOC.COMMENTS is a database item

    Hi kriti,
    There is one more way,
    In the when-checkbox-changed trigger,
    if :your_chk_box = 'Y' then
    set_Record_property(:system.cursor_Record, 'your_blk',status,changed_Status);
    else
    set_Record_property(:system.cursor_Record, 'your_blk',status,Query_Status);
    end if;
    Then it is easy for you to find out the changed records using get_Record_property((:system.cursor_Record, 'your_blk',status)
    Hey let me ask you one Question, is that check_box item is database item ???
    If so,
    it is easier..the fol. code will work for that
    if   nvl ( :DEFLOC.to_be_defaulted, 'N' ) = 'Y' and :DEFLOC.COMMENTS is NULL
      and nvl(get_item_property('DEFLOC.to_be_defaulted',database_value),'N') = 'N'      then
                      set_alert_property(
             'err_alert',
             alert_message_text,
             'You must enter a comment when defaulting localities.');
              x := show_alert('err_alert');
              RAISE FORM_TRIGGER_FAILURE;
              end if;otherwise
    If your are creating that temp. item, it should be in the same block as non-db item.
    I will explain this... You are setting the status of to_be_defaulted check box of some queried record to Y based on some conditions, right?
    These records anyways are not updateable. Now your requirement is to find out the newly checked check boxes.
    So in the post query or the place where you set to_be_defaulted as 'Y, we will default the new item with value Y, so that in the when validate trigger, you
    know which record needs to attacked, It is those records with nvl( new item ,'N') = 'N' and to_be_defaulted = 'Y'...
    Regards
    Dora...

  • WHEN VALIDATE ITEM PROPERTY

    I want to capture the value entered in the enter query mode in a parameter. I'm using the when validate item for the sake, but the trigger is not firing, even though I have the fire in enter query mode property set to Yes.
    Any fix for this or workaround..

    Do this in the pre-query trigger of the block, e.g.
    begin
      :control_block.save_item := :query_block.query_item;
    end;     

  • Bpc for excel - validate submissions

    Hello,
    I went ahead and created some validation rules for several accounts. When i click on "Validate Submission" under the eSubmit menu, i get the following message:
    Submission did not pass validation. You may need to resubmit data.
    A Validation Report could not be run because there is no Validation Report Template.
    Where can i make this validation report template such that it appears if the submission does not pass?
    I've looked in the admin guide and online help..but all it says is that the administrator can make validation reports.
    Any ideas would be greatly appreciated.
    Happy Holidays!
    Thank you,
    Nikunj

    Hi Nikunj,
    The validation report is defined in application parameter, LOCKREPORT. You may put right name to this parameter. For example, validate.xlt.
    And you need to put this validation report to eExcel\Input Schedules\Wizard folder of application of WebFolders. For example in case of Finance application, C:\BPC\Data\WebFolders\ApSet\Finance\eExcel\Input Schedules\Wizard\validation.xlt
    And you need to download client templates again. So, you should trigger download templates in eTools menu.
    However, you may confused between validations in BPC. "Validate Submission" is triggering input validation against validation account. It is not related to account validation rules in business rule. It is using LOCKACCOUNT application parameter to validate balance in your input.
    Regards,
    Seongbae

Maybe you are looking for