Need to create a block based on procedure

We can create a block based on procedure...but whats the need to do so...please can anybody explain.

There are several recent posts on the topic with a lot of good help & documentation.
The Metalink note: 66887.1
Re: Form on a procedure
If you can't access Metalink, search here on that note. Someone posted the full text a couple days ago.
This is also very good reference:
Block based on procedure
Essentially, you have a procedure, returning a table-of-records type variable, called by the block "Query Data Source..." properties.
Name = procedure name
Arguments = procedure parameters (IN parameter(s) Value is :block.item)
Source Columns = the record type columns for your table-of-records
Datatypes & sizes must match all around.
Start very simple & get it to work first, then expand.
You must follow the documentation very carefully. If it doesn't work at first, go through everything to verify. Also, read the Tip & Issues at the end of the Metalink note.
Have fun. It works awsome once you get the hang of it.

Similar Messages

  • Need to create a block based on view

    We can create a block based on procedure...but whats the need to do so...please can anybody explain.

    create the block with the data block wizard. Use your View as Data-Source.
    After that set all items to QUERY-ONLY, when they are not updateable. E.g. if you create a view from EMP to DEPT. Then it is not allowed to update DNAME. DNAME is set to QUERY-ONLY.

  • Need to Create AD LDAP based Address Book

    We need to Create AD LDAP based Address Book. Following is the scenario.
    Our Existing Network
    SMTP Domain Name1  is xyz.net hosted on O365 Exchange online with E3, E1 and KIOSK Plan for different users.
    SMTP Domain Name2 is abc.com hosted on onpremise Linux box
    Windows 2008R2 based AD Domain named abc.com
    Linux POP users get central/global address list by using AD Domain for
    abc.com LDAP address list
    Solution required for
    Exchange KIOSK user with POP connectivity need to have access to some Central/Global Address list for
    xyz.net
    We wish to
    Setup a seperate domain joined or workgroup server and use the Windows AD LDAP/ADAM service to build a Address List for
    xyz.net domain
    we DO NOT wish to replicate AD LDAP Instance from our existing Domain Controller.
    configure Exchange Kiosk pop users to use LDAP addres list by connecting it to the AD LDAP server.
    We are looking for
    steps to setup a ADLDAP/ADAM service on Win2008R2 or 2012 with a fresh AD LDAP Instance.
    The step to create a Application Directory Partition
    Populate the Application Directory Partition with users, groups, contact for the xyz.net domain either manually as well as by importing
    allow users to be able to access this application directory partition on AD LDAP server and
    allow the users to configure their pop email client [outlook 2010] to use the LDAP address book on the AD Ldap server

    Hi,
    Here i found some articles for you refering:
    How Active Directory Application Mode Works
    http://technet.microsoft.com/en-us/library/cc755705(WS.10).aspx
    AD LDS Getting Started Step-by-Step Guide
    http://technet.microsoft.com/en-us/library/cc770639(WS.10).aspx
    Active Directory Lightweight Directory Services
    http://technet.microsoft.com/en-us/library/cc731868%28WS.10%29.aspx
    Active Directory Lightweight Directory Services Operations Guide
    http://technet.microsoft.com/en-us/library/cc816635(WS.10).aspx
    Thanks.

  • Record Who information for a block based on procedure

    Hi All,
    I have a block whose query data source type property is set to procedure and query data source name is a procedure. When I hit Ctrl F11 on this block it shows me all the records. When I see the record who information , I see all the record who information except the Table Name. I understand that the table name is not coming as the query data source name is a procedure for this block. Is there a way to dynamically set this query data source name to a table or a view while still retaining the procedure based functionality. I tried set_block_property for this property but form won't allow.
    Thanks

    There are several recent posts on the topic with a lot of good help & documentation.
    The Metalink note: 66887.1
    Re: Form on a procedure
    If you can't access Metalink, search here on that note. Someone posted the full text a couple days ago.
    This is also very good reference:
    Block based on procedure
    Essentially, you have a procedure, returning a table-of-records type variable, called by the block "Query Data Source..." properties.
    Name = procedure name
    Arguments = procedure parameters (IN parameter(s) Value is :block.item)
    Source Columns = the record type columns for your table-of-records
    Datatypes & sizes must match all around.
    Start very simple & get it to work first, then expand.
    You must follow the documentation very carefully. If it doesn't work at first, go through everything to verify. Also, read the Tip & Issues at the end of the Metalink note.
    Have fun. It works awsome once you get the hang of it.

  • Recommended best practice to fetch detail block based on procedure

    HI
    I am creating a detail block (Dept)based on procedure which will be populated from the value from master block 'Emp'.
    For example,
    Detail block 'Dept' will be populated by calling procedure populate_detail(:emp.empno in number,dept.deptno out number) .
    But what are the triggers I need to call to populate detail block and at which level?
    I was thinking to call a WHEN-MOUSE-DOUBLECLICK on master block 'Emp' level to populate the detail block 'Dept' by calling the procedure and passing emp.empno as the parameter whenever the user moves from one master record to another.
    Please advise.
    Thanks in advance.

    Download the forms 6i examples CD from the OTN website

  • Help with Data Block Based on Procedure--getting compilation error

    I am trying to create a datablock based on a procedure , but im getting errors in compilation:
    Errors are :
    1) identifier 'HSM_WSH_DEL_UTIL.DEL_TBL' must be declared
    2)PL/SQL ERROR 320 at line 7, column 27
    the declaration of the type of this expression is incomplete or malformed
    ANy Help would be appreciated !
    Heres my pkg spec and body for the data block:
    CREATE OR REPLACE PACKAGE hsm_wsh_del_util IS
    TYPE del_record is record
    (delivery_id number);
    TYPE del_tbl is table of del_record INDEX BY BINARY_INTEGER;
    procedure do_query(p_del IN OUT del_tbl);
    END hsm_wsh_del_util ;
    CREATE OR REPLACE PACKAGE BODY hsm_wsh_del_util IS
    procedure do_query(p_del IN OUT del_tbl)
    IS
    idx number :=1;
    CURSOR DELIVERY IS
    SELECT DELIVERY_ID
    FROM abc_deliveries;
    begin
    FOR CUR IN DELIVERY LOOP
    p_del(idx).delivery_id :=cur.delivery_id;
    idx:= idx+1;
    END LOOP;
    end do_query;
    END hsm_wsh_del_util;
    Edited by: 981170 on Mar 13, 2013 1:08 PM

    Hi,
    Yes I did use the wizard,
    I agve it the package.proc name for query.
    it pulled up the field delivery ID,
    Hit finish, because I do not need update/delete/inserts.
    the query data source columns and arguments was defaulted correctly.
    THe QUERY-PROCEDURE was built by default.
    It is giving me an error though: wrong number or types of arguments in call to POPULATE_BLOCK..
    DECLARE
    bk_data HSM_WSH_DEL_UTIL.DEL_TBL;
    BEGIN
    hsm_wsh_del_util.do_query(bk_data);
    PLSQL_TABLE.POPULATE_BLOCK(bk_data, 'NEW_DELIVERIES');
    END;

  • How to create dependent LOV based on procedure?

    Hi,
    There are two dependent list of values which i need to create. There is an existing package which returns the list.
    Can you suggest which approach should i use to create these list. Should i execute the procedure in the IMPL class and then bind the list to the transient VO or should i create a table which stores the result of the package and then use query based VO.
    After selecting the list values and clicking on GO it should generate a table too based on that list values selected.
    Which approach is correct? If any other approach then please mention.
    And can you explain how do we bind the list to the transient VO for the first approach if thats the correct approach.
    Thanks in advance

    Hi,
    I would build programmatic view objects for both of them (I usually also prefer having the View Objects based on a custom entity object). The tricky part is that you need to override the default View Criteria behavior (as you have to detect the view criteria, its condition and then map it to the stored procedure call)
    Here are some links that will help:
    http://docs.oracle.com/cd/E21043_01/web.1111/b31974/bcadvvo.htm#sm0341
    http://jobinesh.blogspot.in/2011/06/building-programmatically-managed_25.html
    http://jobinesh.blogspot.in/2011/06/building-programmatically-managed.html
    http://docs.oracle.com/html/B25947_01/bcadveo004.htm#sm0328
    Frank

  • Block based on procedure - trapping errors

    Hi,
    I have created a form with a block based on a procedure but when there is an error in the procedure it is not being trapped. I have raise_application_error in the execption but the form does not pick this up
    Can anyone help me on this. I am using Forms 5
    thanks, Monica

    It would be very difficutlt to send all the necessary pieces but there is a very good discussion of it in the "Advanced Forms and Reports" book from Oracle Press(Chapter 4).

  • Data block based on procedure

    While working on a form with a data block based on a procedure, I keep getting error
    FRM-40364 The data type of item '%' does not match the corresponding column in the stored procedure.
    I have compared the items many times and found no mismatch. When the items are resorted (in both the data block and the procedure) and everything is recompiled, the
    "not matching" item referenced sometimes changes, though the types have not been changed. Has anyone solved a similar situation?

    Hi,
    Yes I did use the wizard,
    I agve it the package.proc name for query.
    it pulled up the field delivery ID,
    Hit finish, because I do not need update/delete/inserts.
    the query data source columns and arguments was defaulted correctly.
    THe QUERY-PROCEDURE was built by default.
    It is giving me an error though: wrong number or types of arguments in call to POPULATE_BLOCK..
    DECLARE
    bk_data HSM_WSH_DEL_UTIL.DEL_TBL;
    BEGIN
    hsm_wsh_del_util.do_query(bk_data);
    PLSQL_TABLE.POPULATE_BLOCK(bk_data, 'NEW_DELIVERIES');
    END;

  • Need to create a transformation based on Update Rules Logic

    Hi,
    I have an existing complex Update Rule. I need to manually create a Transformation based on this Update Rule logic. The Start Routine of the Update Rule comprises of:
    1) All data declarations in the Global Area
    2) The local coding area consists of various select statements from various r/3 tables used later for mapping. It also calculates and stores values in the Data Package final internal table for few infoobjects that are not present in the Source object but and are used to populated data in the target.
    3) then we have the various one to one individual Infoobject mappings/constants and many individual infoobject routines that pick result from the comm_structure
    I am not very clear as to where each of the above coding logic should be put in the transformation coding area...... I can see four main coding areas in the transformation....global area, 2nd Global Area, Method Start_Routine and Method Inverse_Start_Routine........... I think the global data declarations(point 1 above) should be put in the Global declaration area of the start routine. The local area of the update rule logic (point 2 above) that contains select statements should be put in 2nd Global part or should it be put in Method Start_routine????? Point 3 above for individual filed mappings will be done through Rule groups. Also can anyone let me know what is the methos inverse_start_routine used for?????
    Thanks.

    Hi,
    Point 1 you mentioned should be put under2nd Global declaration part of start routine.
    Point 2 should be put under Method Start_routine.
    Point 3 as you only mentioned can be done by individual field rule mappings.
    Method inverse_start_routine
          This subroutine needs to be implemented only for direct access
          (for better performance) and for the Report/Report Interface
          (drill through)
    Not very clear though about Inverse routine. But definetly not being used for the case you mentioned.
    Hope it helps.

  • Need to create two nodes based on one condition in message mapping.

    Hi Experts,
                    In my mapping I have two different nodes. If my condition is true then only one node should be created otherwise both the nodes should be created.
    requirement is I need to print. one header before first item record and after every 200 item records.
    i.e I need to create header node if (item recordno) is 1 or (item recordno % 200) is 1. I have tried using this condition. But Iam getting all the header records( 3 headers for 600 items) in sequece and then all  item records (600).
    i want 1 header then 200 items , then again header followed by 200 items. so on.
    Can any body help.
    Thanks&Regards,
    REYAZ HUSSAIN

    Hi REYAZ HUSSAIN,
    as graphical mapping is "target field mapping" this is not possible. The parser for graphical mapping traverses the taget message from the first element to the last!
    You need another kind (ABAP, XSLT, JAVA) of mapping.
    Regards Mario

  • Block based on procedure

    I have a created a pacakage
    Pacakage specification
    TYPE ERROR_REC IS RECORD
    ( ID tbl.ID%TYPE,
    ORGL_STAMP tbl.ORGL_STAMP%TYPE,
    ORGL_USER tbl.ORGL_USER%TYPE,
    DEL_FLG tbl.DEL_FLG%TYPE,
    START_DT tbl.START_DT%TYPE,
    END_DT tbl.END_DT %TYPE);
    -- cursor variable to be used in do_query_cur procedure
    TYPE ERROR_ref IS REF CURSOR RETURN ERROR_rec;
    BODY
    PROCEDURE do_query_cur(ERROR_set IN OUT ERROR_ref,
    pid IN tbl.id%TYPE) IS
    BEGIN
    OPEN ERROR_set FOR
    SELECT ID,
                        ORGL_STAMP,
                        ORGL_USER,
                        DEL_FLG,                     
                        START_DT,
                        END_DT,
    FROM TBL
    WHERE id = p_id;
    END;
    END Ap_Comm_Error_Pkg1;
    I have based a block on the Ap_Comm_Error_Pkg1.do_query_cur. When I try to execute it from forms it
    returns 'error 40305 query caused no dtat to retrive. What could be the problem please help.
    Thx
    KK

    You pass pid argument, then you use p_id in your query.
    Francois

  • Querying Block Based on Procedure

    I built the form based off the following thread:
    Form based on stored procedure
    However, the block created by the procedure does not appear to be queryable with any given criteria. Query Enter, enter criteria, Query Execute didn't work it still returns the all the data. I also tried putting in a default where clause, but that didn't work. Is there a way to query the result set returned?
    Thanks,
    Roschera

    Okay, now I've tried adding data source arguments to pass in a parameter to the cursor being used to generate the data. I've set the default value to null and double checked to make sure the same data types are being used, however, I'm still receiving an ORA-6502 error. Any help would be appreciated.
    Thanks,
    Roschera

  • Error: FRM-40657, Block based on Procedure

    Hi,
    I have a detail block, its Qry Data Source is Procedure, and the DML is to a table,
    The data is loading from two table say A and B, but the DML is to table B only.
    The pblm is when editing the data from A(if the data loaded from the Table A satisfy certain condition then I have to store that data into Table B along with other data selected from table B, i am getting the error FRM - 40657.
    Thanks in advance

    Hi,
    You are running into the error because you are trying to change or delete a record when you have already 'locked' it by viewing it in your form.
    If you do need to do it this way, you will have to clear data from table B and then do the updates/inserts and then requery the data.
    Hope I've understood what you mean!
    L :-)

  • Need to Create Search Help Based on Condtions from one table to another tab

    Hi All,
    I have a table like ZGROUP Which contains the data below
    Filed name Filed Name Filed Name
    ZGROUP ZTYPE ZTEXT
    Entries
    ABC P TEXT FOR
    C P SDFNSDFKLN
    DDDD PSG TEPRTPERERTWERT
    DEF P TEST
    FFFFF PSG
    SEF PS SDFSDFLASLDFNASDLFN
    XYZ PS TESTING
    Whree P is Product , PS- Point of Sales, PSG-Sales Group
    Now i am going to crate another ZPROUDCT TABLE
    FIELDNAME FIELDDESCRITPON
    PRODUCT PROD_DESC
    Entry
    abc pRELATED ENTRY
    My Questions
    1) ZGROUPS table has 3 kinds of data P, PSG, PS type records,
    1) In Table ZPROUDCT , I want to create search help only P records for Table Zproduct of the field Product FROM zGROUPS table
    2) In Table Zsales , I want to create search help only PS records from ZGROUPS table
    3) In Table ZPSG, I want to create search help only PSG records from table ZGROUPS
    is it possible to create search help from One Master Table(ZGROUPS) table to other tables based on conditions.
    Please help me.
    very urgent
    Regards,
    Raju

    if  <condition>
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR <field>
    SELECT <field>
             FROM <table>
             INTO TABLE i_tab
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'                  "function module to provide f4 help to sold-to-party
        EXPORTING
          retfield        = "XXXX"
          dynpprog        = sy-repid
          dynpnr          = sy-dynnr
          dynprofield     = '<field name>'
          value_org       = 'S'
        TABLES
          value_tab       = i_tab
    endif.
    lkike this u can check the condition and selec the data from table and assign it into one internal table and then call the FM it will give the f4 help to particular field
    reward if helpful
    regards,
    Khan.

Maybe you are looking for