Records validation at the block level

Block A
multi record block
Product code Unit No
E3056             W039708002607
E3056             W039708002721
E3056             W039708002754
Block B multi record block
Product Code Unit No
E3056               W029708002607
E3056               W039708002971  -----------different than upper block data
E3056               W039708002754
Has to validate with the data in upper block A and say wrong data when compared. CHoose right data that is in
block A How can I do it on item level of Block B?
Thanks in advance.
Anu

So, you cannot simply loop over block B for it will clear block C on record-navigation (as C is the detail block).
You have two options:
1. Do the check against the database table block B is based on, something like:
CURSOR cr IS
  SELECT COUNT(*)
    FROM THETABLE
  WHERE product_batch_id=:BLOCK_C.product_batch_id
    AND unit=:BLOCK_C.unit;
  nCount NUMBER;
BEGIN
  IF :BLOCK_C.UNIT!=:BLOCK_B.UNIT THEN
    --maybe another unit matches
    OPEN cr;
    FETCH cr INTo nCount;
    CLOSE cr;
    IF nCount=0 THEN
      -- Error
    END IF;
  END IF;
END;2. Fill a pl/sql-table with all the unit from block B, then loop over that pl/sql-table to validate (lot of work)

Similar Messages

  • Stacked Canvas and No. of records display on the block?

    Any coding to re-size the "Stacked" canvas and no.of records displays on the block?
    Please advice,
    Amy

    u can set the view port and Width and height of the Stack canvas at runtime but not No of Records display....
    set_view_property .....VIEW_SIZE or Width / Height
    for canvas size use SET_CANVAS_PROPERTY
    Baig
    [My Oracle Blog|http://baigsorcl.blogspot.com/]

  • Do validations in the page level

    Hi ,
    I want to do validate the EMAIL field in my page as unique, for that i want to do validate in the entity level or what i want do?
    i tried validations in the entity level but it is not working, how to do this .
    Thanks In Advance,
    SAN

    Sundaravaradhan,
    One more thing please make sure that you close all your threads which are resolved with the resolution.
    fnd top and java top in R12
    Error page while running sample page in OAF
    and many more
    Thanks
    --Anil
    http://oracleanil.blogspot.com

  • Data validation at the UI level

    Hi
    I have a requirement like i need to validate the input data at the UI level.
    If the data is valid ,only then it should be allowed to be saved.
    If someone knows how to do the same.
    I have seen a method DO_VALIDATE_INPUT method in View controller (IMPL) class.No clue on how it is being used.
    Regards
    Leon

    Hi Leon,
    Are you talking about the Webclient as UI or something else??
    There are 2 options:
    1) You use the Get and Set methods of your context node attributes (The ...CN01 etc classes) (to be found under your IMPL class --> attributes TYPED_CONTEXT(...CTXT class) and in there you should have some ...CN01, CN02, etc. classes. Here are all the GET and SET methods. (you could also go via the views' attributes, this is the shortest way).
    Within the Get (put the value in the model) and Set (get the value from the model)methods you could do some checks and show an error.
    2) Use the Do_handle_data method of your IMPL class. Once data is entered in the screen, this method is always called when another action is performed (pressing a button). Here you can easily check the content of fields.
    3) Use the Do_handle_event method of your IMPL class. This method is called when there is an event that is being triggered (save button is pressed). You can redefine this method and before really saving the data you can perform your checks.
    Hope this helps.
    Kind regards,
    Micha

  • Validation at the network level

    Hi Experts,
             I am doing the validation for the network at the header level for the resposible cost center field.
    I am giving Prerequiest as
    Req.cost center = 'X'
    Check as
    i am not entering anything in the check condition
    Message
    I am entering the message & message type is error.
    initiation of this validation is i want to check that any value is entered in the Req.cost center field. (Making this field as a manditory).
    But after doing that it is not checking in my cj20n transaction.
    can anybody suggest me wht is the problem.
    Thanks & regards
    Raman T S

    Hi,
    In validations 'X' doesn't mean alphanumeric, it means alphabet X only. That's why system is not giving you any message.
    You need to put validation check as Resp. Cost Center <> ' '
    which means it shouldn't be blank.
    Regards,
    Harsh.

  • Prod No validation at the field level attribute

    Hi,
    I have a qualifying table, whose field refers to one of the product number in main table. It means, I can have a product number linked to another product number defined in the main table. Hence, I have defined the text field in the qualifying table to capture this related product number.
    Now, how do I validate, if the product number entered is valid within Data Manager. Basically, it needs to validate if the product number specified is present in the main table.
    Please let me know, if any suggestions to define such validations on a free-form text field.
    Thanks,
    Surendra

    Hi Surendra,
    Make the prdt no as a unique field.If when ur gng to add any new record with the prdt no already in the main table then it will pop -up a message that record already present.
    I think this may solve the issue (acc to my understanding)
    If problem persists kindly explain the scenario in simple manner.
    Hope this amy help u.
    Rgds
    Ankit

  • Problem in navigating out of the block

    Hi,
    There is a form created with the help of data block wizard. The form contains 4 data blocks. The entry is to be done in a way that the first threee fields are from the first data bolck and the 4th field is from the next data block. The problem I am facing is that when i try to navigate from the first block to the 2nd block the WHEN-VALIDATE-ITEM trigger of the 4th item of the first block is getting fired, thus preventing me to move to the next block and there are no validation trigger on the block level.
    please let me know what the problem can be.
    Help is required urgently

    Hi,
    that's standard behaviour. Item Validation will fire when you change blocks. If validation is successful it shuld not stop you, also you could try using ITEM_IS_VALID which if fiddley way to do it.
    If it is possible for you to create a view that combines the columns the two blocks then it would make your data entry easier.
    one other option is to fiddle with the validation scope
    Easo

  • Single and  Multiple Records On Same Data Block?

    Hi all,
    Im using forms 6i with db 9i.
    Im having a nested table which contains a column of datatype TYPE(table of varchar2(100)).
    Now i want to create a data block based on the nested table.
    So, I want only one column should be multirecord in the block.
    When i set the block level NO OF RECORDS PROPERTY to multiple, then all the items in the block getting changed as
    multi records.
    Is that possible to have multirecord for a particular field OR how to fix this issue?
    Regards
    Sankar MN
    Edited by: SankarMCA on Oct 17, 2010 9:55 PM

    Hi Baiq,
    Thanks for your responses. I moved the multirecord item into a separate block(control block) and it worked.
    But still im having a doubt regarding this.
    How can we map a db column which has datatype of TYPE(Collection) to a particular item in forms?
    Because when i try to create a new datablock based on that table im not able to move that collection column from
    the available columns to database items in the datablock wizard. It seems like disabled and tree node structure and
    im not able to select the same.
    Next thing, Even though we assigned those column manually, How the commit_form save that multirecord column
    with multiple values?
    So kindly let me know how to solve this case if possible.
    Regards
    Sankar MN
    Edited by: SankarMCA on Oct 18, 2010 7:14 AM

  • Retrive Multiple Records Into A database Block

    hi, all
    i would like to know if there is any document or references wich illustrait the way of retriving Multi records from a procedure built on database side into a database block using form 6i ??
    My Problem is : i create a procedure in the database which retrive a multiple records and the variable from procedure (out) are the same value from Form side (in). but it always fetch the whole records at the same record position in the block as the cursor raised on . i found a way explian how to mintain a set or record using a record type and create a table of that record type , but still don't' know how deal calling the procedure from the form side .
    Any advice of this issue will be greatfull and if sample of code provided will be better
    Thanks in Advance
    Regards
    Omar

    You can try something like this:
    PROCEDURE POPULATE_BLOCK IS
    cursor c1 is
    SELECT <your column names>
    FROM <your table name>
    where <your where condition>
    BEGIN
    open c1;
    go_block('<your block name');
    first_record;
    loop
    fetch c1 into
    :<your block name>.<your column name 1>,
    :<your block name>.<your column name 2>,
    etc,etc
    exit when c1%NOTFOUND;
    next_record;
    end loop;
    close c1;
    first_record;
    END;
    so your code might actually look something like this:
    PROCEDURE POPULATE_BLOCK IS
    cursor c1 is
    SELECT distinct
         a.pog_dept
         ,a.pog_number
         ,a.pog_level
         ,a.pog_id
    ,a.start_date
         ,a.transmit_date
    ,a.deactivate_date
         ,b.pog_description
    FROM pog_stores_msi a, pog_master_msi b
    where a.pog_dept = :b_main.bi_dept
    and a.pog_number = :b_main.bi_pog_number
    and a.pog_level = :b_main.bi_pog_level
    AND A.POG_ID = :B_MAIN.I_POG_ID
    and a.pog_dept = b.pog_dept
    and a.pog_number = b.pog_number
    and a.pog_id = b.pog_id;
    BEGIN
    open c1;
    go_block('b_main');
    first_record;
    loop
    fetch c1 into
    :b_main.bi_dept
    ,:b_main.bi_pog_number
    ,:b_main.bi_pog_level
    ,:b_main.i_pog_id
    ,:b_main.i_start_date
    ,:b_main.i_transmit_date
    ,:b_main.i_deactivate_date
    ,:b_main.i_pog_desc;
    exit when c1%NOTFOUND;
    next_record;
    end loop;
    close c1;
    END;
    Hope this helps,
    NumbNutz

  • Oracle10gR2 indexing changes the block ?

    DB: Oracle 10g R2 x864
    OS: SUSE Linux x864
    DR Product/Tool: Novell Platespin(http://www.novell.com/products/forge/)
    We are using a block based replication tool(Platespin) to maintain a DR of our customer's Database Server(oracle 10g R2 atop SUSE Linux) using Platespin.
    Block based Incremental replication is configured to run on hourly basis over a 30 Mbps dedicated fiber link.
    Maximum changes of data per day(during business hours) wont exceed 300 MB on Production Database Server. During business hours Platespin replicates at least 1 GB at every replication cycle(8 to 10 GB during business hours), while during off hours it replicates 300 to 500 MB per hour(at every replication cycle). We are facing this strange issue with this box only(SUSE 10 + Oracle 10g R2), we have protected MS Exchange 2007 Server based workloads without this strange issue, i.e in case of Exchange only incremental data (delta) replicates from Production server to DR site on Platespin.
    We opened a support ticket with Novell Platespin about why Volume of Incremental replication is too high, Novell/Platespin support says us that Oracle re-indexes its database for better performance, so it is possible that re-indexing causes the blocks level changes on the storage, and since Platespin works on Block level, thats why it replicates so much(even though data is not changed that much)
    here is actual words of Novell Platespin support:
    I think whenever Oracle database Indexing happens, it changes almost most of the Blocks of database and Platespin replicate all those Blocks.
    As you know, Platespin checks the Date/Time attribute of every blocks before replication and if Date/Time attribute changes from last
    replication, it considers as changed block and replicate those blocks on Platespin Appliance. So, my suggestion is just look into the Oracle
    server behaviour before/after Data indexing process and do needful or do some workaround to overcome this issue.
    is there anything we can do at oracle level ? is it really a database(indexing) issue ? any one can please comments/suggest on this ?
    Regards,

    user571635 wrote:
    1 - we are doing Block based replication of entire /oracle file system, /oracle is a single file system contains every thing(binaries, database, archiving and logging is under /oracle )
    2 - Archiving is enabled
    3 - actually this machine is not just a Oracle 10g R2 DB server but SAP ERP is also installed and we use to check the change of data via SAP
    4 - Maximum data changes per day never exceeds 300 MB
    5 - Normally change of data(delta) per day is about 100 to 175 MB.
    6 - Indexing is configured on SAP level(we have no idea how SAP manages indexing with Oracle)
    8 - no special updates or jobs are configured
    So am I right to understand that if data change is 300 MB then Archiving creates another 300 MB ? means in any case the amount of change
    per day would be like 300*2=600MB, so the block based replication tool shouldn't replicate more then 600 MB per day, while in our case the block based replication tool
    replicates 1 GB hourly during Business Hours, and 200-300 MB hourly during off hours.No. You need to read the concepts manual (available at http://tahiti.oracle.com among other places), and probably should read Tom Kyte's books too. As the others mentioned, you should look and see how much redo is being written. The best way for your system depends on configuration, sometimes it can be as simple as looking at the sizes and times of the files in the archive log (which are actually archived redo logs) directory.
    How much redo is written depends on what is going on. How much undo is written also depends on what is going on. The log writer and database writer processes are doing the actual writing, so the data being replicated can vary from what SAP thinks is being generated. For example, if you are changing a value in a column, the redo only needs to have a change vector for the block that contains that column. But if you are copying blocks, either the copying tool has to be aware of Oracle blocks (I don't know how likely that is for your tool), or you risk having fractured blocks. User managed backup has that problem, so Oracle lets you put tablespaces in hot backup mode, which has a consequence of writing the [url http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:271815712711]entire block to redo the first time it is changed in that mode. That's why I was wondering how your block based tool deals with that. Oracle data files also have a header with system change number information in it, and blocks have similar things, and they all have to be coordinated, so that's why I question whether you are indeed doing block based transfers - Gigabytes implies either files or way lots block changes.
    >
    and also if Indexing is enabled, it wont change the Blocks on Storage so drastically ?Well, not knowing what is going on, we can't say. Does your storage tell you how much writing is going on? Does Oracle see lots of waits on the lgwr and/or dbwr processes? (There are command line ways to see waits, and if you are licensed for performance monitoring there are pretty graphs in dbconsole/enterprise manager).
    >
    Edited by: user571635 on Jun 21, 2011 8:29 AM

  • Block level changes on linux when a datafile is reduced by resize

    Hi All,
    Does anyone know what happens at the block level on Linux when an oracle datafile has its size reduced. For instance, if I have a 6gb datafile with has had the extents written to but the current HWM is 2gb and i then reduce this datafile size from 6gb to 2gb. On the file system the file is resized to 2gb but what actually happens to the blocks on the OS? The reason I am asking is because I am running Linux on vmware and the vmware file is replicated at the block level. How much additional data would be replicated if I reduced the datafile with a resize. Would it replicate the 4gb difference, or is only the end of the datafile changing and if so are only a few blocks changing. Oracle seems to reduce the file size quickly so I am assuming it is not changing many blocks. Any ideas?
    cheers,
    Matt
    Edited by: user10993370 on Jul 30, 2011 5:59 AM

    Hi Matt,
    Are your datafiles on ASM? Raw? Filesystem?
    I have not tested it, but I suspect that Oracle simply re-writes the extent map, whether that's in ASM, on the raw device, or on the filesystem.
    -Mark

  • Block Level Recovery in MAXDB

    Dear Friends,
    I am a Oracle DBA .These days i learning  recovery in maxdb as per Project's requirement.
    I have found various scenario's for recovery in maxdb like  but didn't found the Block Level Recovery scenario like in Oracle.
    Can you  please help me out with various scenario's of  Block Level Recovery in Maxdb .
    Regards,
    Sahil Garg

    > I have found various scenario's for recovery in maxdb like  but didn't found the Block Level Recovery scenario like in Oracle.
    > Can you  please help me out with various scenario's of  Block Level Recovery in Maxdb .
    There isn't something like that with MaxDB.
    Markus

  • Scrollbar on block level

    Hello,
    I'm trying to migrate a application from forms 4.5 to forms6i. If I want to run a form which has a scrollbar on the block level the runtime crashes down.
    I could compile and generate the form without any errormessages.
    It works if I set the scrollbar property on no. Does anybody know a solution for this problem?
    Thanks,
    Dirk

    You can use a materialized view to ensure database integrity. Check for constraint violations in the MV when you commit the form.
    need some help

  • Block level tracing to a file

    Hi all,
    I would like to output the block level trace in a form to to a file(by default its console)...WHERE DO I SPECIFY THE PATH TO THE FILE? I have checked waveset.properties and SystemConfiguration files but found that we can only specify the trace of an entire workflow..
    "Block trace to a file" is what i want..
    Yash

    From the FAQ on Sharespace
    SUBJECT:
    How to dynamically enable trace for a single workflow.
    QUESTION:
    If you've ever enabled workflow trace in the Waveset.properties file, you know that
    it can generate a lot of output. Is it possible to just enable tracing for a single
    workflow?
    ANSWER:
    There are three ways to turn on workflow trace:
    - Waveset.properties file
    - in the WFProcess definition
    - with a workflow variable
    To enable trace unconditionally for a particular process, you will need to edit the
    XML of the TaskDefinition object.
    Locate the <WFProcess> element and add this attribute:
    trace='console'
    to trace to the console or:
    trace='workflowTrace.txt'
    to trace to a file. You can have more control over when tracing happens by using a workflow variable. The engine will look for a top-level workflow variable named "trace" whose value may be set as shown above.
    For example:
    <Variable name='trace'>
    <cond>
    <eq>
    <ref>accountId</ref>
    <s>adminA</s>
    </eq>
    <s>workflowTrace.txt</s>
    </cond>
    </Variable>
    This turns trace on only if the workflow is operating on a user named "adminA".
    You could also set this in a form field if you want to control trace interactively.

  • Windows could not start block level backup engine service

    Hello,
                  Im
     trying to perform system state backup for one of the server its unable to run. Last week we have performed the system state backup without any issue.
    Operating System:2008
    OS Version: R2 Small Business Server 2011 x64 Edition Build 7600
    RAM-32 GB
    Following event ID is reported in the logs;
    Log Name:      Application
    Source:        Microsoft-Windows-Backup
    Date:          7/2/2013 2:25:35 PM
    Event ID:      754
    Task Category: None
    Level:         Information
    Keywords:     
    User:          SYSTEM
    Computer:      ABC
    The Block Level Backup Engine service has stopped.
    When we try to restart the Block Level Backup Engine service we get error as “Windows could not start the Block Level Backup Engine Service on Local Computer.
    Error 0x800700b7: Cannot create a file when that file already exists.”
    I have already restarted Virtual disk and Volume shadow copy service, but no luck.
    Any help in resolving this issue will be much appreciated.
    Thank you.
    Keshava

    All,
    Here is the solution which worked for me ;
    Services.msc >properties page of Block Level Backup Service Engine
    Changed to Log On tab
    Instead of Log On as Local System Account changed to Log On as
    [email protected] (select the account with admin creds), entered the password of admin and closed the properties page.
    Now restart the Block Level Backup Service Engine and re-run the job, backup completes without any issue.
    Thank you
    Keshava

Maybe you are looking for