Help for optimization of procedure

Hi,
I am having following procedure it is accessing LY_RWPT_SUCCESS table having 2501818 records. i want to insert data into LY_RWPT_cap_SUCCESS with following logic but its taking lot of time .
How we can optimize this query to give better result. pls help.
CREATE OR REPLACE PROCEDURE "LY_PRODUCT_CAPPING_old"(P_MONTH VARCHAR2) IS
--v_sum_rewards number
V_SUM_REWARDS integer;
V_FLAG VARCHAR2(1);
V_AMOUNT integer;
V_REWARD NUMBER;
V_REMARKS VARCHAR2(1000);
cursor c1 is
select *
from LY_RWPT_SUCCESS
where as_of_month = P_MONTH
-- and source_account_number ='000101006399'
order by source_account_number asc,
product_code asc,
transaction_id asc,
transaction_date asc;
begin
DELETE FROM LY_RWPT_CAP_SUCCESS WHERE AS_OF_MONTH = P_MONTH;
for i in c1 loop
V_REWARD := I.REWARDS;
/*select nvl(sum(rewards),0) INTO V_SUM_REWARDS from ly_rwpt_cap_success_temp
where as_of_month = P_MONTH
and product_code = I.PRODUCT_CODE
AND SOURCE_ACCOUNT_NUMBER = I.SOURCE_ACCOUNT_NUMBER
and partial_flag in( 'F','P');*/
if V_REWARD != 0 THEN
select nvl(sum(rewards), 0)
INTO V_SUM_REWARDS
from ly_rwpt_cap_success
where as_of_month = P_MONTH
and product_code = I.PRODUCT_CODE
AND SOURCE_ACCOUNT_NUMBER = I.SOURCE_ACCOUNT_NUMBER
and partial_flag in ('F', 'P');
IF (V_SUM_REWARDS >= I.PRODUCT_CAPPING) THEN
V_REMARKS := i.remarks || ' but receiving ' || ' ' || 0 ||
' points as reached to product capping';
-- V_REMARKS := i.PRODUCT_NAME ||'transaction successfully earned'||' ' ||0 ;
V_FLAG := 'N';
INSERT INTO LY_RWPT_CAP_SUCCESS
VALUES
(I.source_account_number,
I.cust_id,
I.customer_status_code,
I.product_code,
I.value,
I.transaction_date,
I.processing_date,
I.balance,
I.eligible_tag,
0,
I.transaction_id,
I.payee_name,
V_REMARKS,
V_FLAG,
I.as_of_month,
I.product_name,
I.product_capping,
I.CUSTOMER_SEGMENT,
I.RD_ACCOUNT_NBR,
I.MEMBER_CUST_ID);
COMMIT;
ELSIF (V_SUM_REWARDS = 0 AND V_REWARD <= I.PRODUCT_CAPPING) THEN
V_REMARKS := I.REMARKS;
--V_REMARKS := i.PRODUCT_NAME ||'transaction successfully earned'||' ' || V_REWARD ;
V_FLAG := 'F';
INSERT INTO LY_RWPT_CAP_SUCCESS
VALUES
(I.source_account_number,
I.cust_id,
I.customer_status_code,
I.product_code,
I.value,
I.transaction_date,
I.processing_date,
I.balance,
I.eligible_tag,
V_REWARD,
I.transaction_id,
I.payee_name,
V_REMARKS,
V_FLAG,
I.as_of_month,
I.product_name,
I.product_capping,
I.CUSTOMER_SEGMENT,
I.RD_ACCOUNT_NBR,
I.MEMBER_CUST_ID
COMMIT;
ELSIF (i.product_capping < (V_SUM_REWARDS + V_REWARD)) then
V_AMOUNT := ABS(I.PRODUCT_CAPPING - V_SUM_REWARDS);
V_REMARKS := i.remarks || ' but earned ' || ' ' || V_AMOUNT ||
' partial points' || ' as exceeding product capping';
-- V_REMARKS := i.PRODUCT_NAME ||'transaction successfully earned'||' ' || V_AMOUNT ;
V_FLAG := 'P';
INSERT INTO LY_RWPT_CAP_SUCCESS
VALUES
(I.source_account_number,
I.cust_id,
I.customer_status_code,
I.product_code,
I.value,
I.transaction_date,
I.processing_date,
I.balance,
I.eligible_tag,
V_AMOUNT,
I.transaction_id,
I.payee_name,
V_REMARKS,
V_FLAG,
I.as_of_month,
I.product_name,
I.product_capping,
I.CUSTOMER_SEGMENT,
I.RD_ACCOUNT_NBR,
I.MEMBER_CUST_ID);
COMMIT;
ELSIF
(i.product_capping >= (V_SUM_REWARDS + V_REWARD)) then
V_REMARKS := I.REMARKS;
-- V_REMARKS := i.PRODUCT_NAME ||'transaction successfully earned'||' ' || V_REWARD ;
V_FLAG := 'F';
INSERT INTO LY_RWPT_CAP_SUCCESS
VALUES
(I.source_account_number,
I.cust_id,
I.customer_status_code,
I.product_code,
I.value,
I.transaction_date,
I.processing_date,
I.balance,
I.eligible_tag,
V_REWARD,
I.transaction_id,
I.payee_name,
V_REMARKS,
V_FLAG,
I.as_of_month,
I.product_name,
I.product_capping,
I.CUSTOMER_SEGMENT,
I.RD_ACCOUNT_NBR,
I.MEMBER_CUST_ID);
END IF;
COMMIT;
ELSE
V_REMARKS := i.remarks;
-- V_REMARKS := i.PRODUCT_NAME ||'transaction successfully earned'||' '||0 ;
V_FLAG := 'R';
INSERT INTO LY_RWPT_CAP_SUCCESS
VALUES
(I.source_account_number,
I.cust_id,
I.customer_status_code,
I.product_code,
I.value,
I.transaction_date,
I.processing_date,
I.balance,
I.eligible_tag,
0,
I.transaction_id,
I.payee_name,
V_REMARKS,
V_FLAG,
I.as_of_month,
I.product_name,
I.product_capping,
I.CUSTOMER_SEGMENT,
I.RD_ACCOUNT_NBR,
I.MEMBER_CUST_ID);
END IF;
COMMIT;
END LOOP;
END;

Try this
create or replace procedure ly_product_capping_old
   p_month varchar2
is
begin
   insert
     into ly_rwpt_cap_success
   select i.source_account_number,
          i.cust_id,
          i.customer_status_code,
          i.product_code,
          i.value,
          i.transaction_date,
          i.processing_date,
          i.balance,
          i.eligible_tag,
          case when i.reward != 0 then
                  case when nvl(j.rewards, 0) >  i.product_capping then 0
                    when nvl(j.rewards, 0) =  0 and i.rewards <= i.product_capping then i.rewards
                 when i.product_capping <  nvl(j.rewards, 0) + i.rewards then abs(i.product_capping -  nvl(j.rewards, 0))
                 when i.product_capping >= nvl(j.rewards, 0) + i.rewards then i.rewards
               end
               else 0
          end v_reward,
          i.transaction_id,
          i.payee_name,
          case when i.reward != 0 then
                  case when nvl(j.rewards, 0) >  i.product_capping then i.remarks || ' but receiving ' || ' ' || 0 || ' points as reached to product capping'
                    when nvl(j.rewards, 0) =  0 and i.rewards <= i.product_capping then i.remarks
                 when i.product_capping <  nvl(j.rewards, 0) + i.rewards then i.remarks || ' but earned  ' || ' ' || abs(i.product_capping -  nvl(j.rewards, 0)) || ' partial  points' || ' as exceeding product capping';
                 when i.product_capping >= nvl(j.rewards, 0) + i.rewards then i.remarks
               end
            else i.remarks
          end  v_remarks,
          case when i.reward != 0 then
                  case when nvl(j.rewards, 0) >  i.product_capping then 'N'
                    when nvl(j.rewards, 0) =  0 and i.rewards <= i.product_capping then 'F'
                 when i.product_capping <  nvl(j.rewards, 0) + i.rewards then 'P'
                 when i.product_capping >= nvl(j.rewards, 0) + i.rewards then 'F'
               end
            else 'R'
          end v_flag,
          i.as_of_month,
          i.product_name,
          i.product_capping,
          i.customer_segment,
          i.rd_account_nbr,
          i.member_cust_id
     from ly_rwpt_success i
     left
     join (
             select product_code, source_account_number, sum(rewards) rewards
               from ly_rwpt_cap_success
              where as_of_month  = p_month
                and partial_flag in ('F', 'P')
              group
                 by product_code, source_account_number
          ) j
       on i. product_code = j.product_code
      and i.source_account_number = j.source_account_number
    where as_of_month = p_month;
   commit;
end;There could be some semantic errors, if found please correct. And also please specify the column list in the insert statement.
And oh forgot to mention the code is untested :)

Similar Messages

  • Help for optimizing a procedure

    Hi,
    I have a store procedure which take a very long time to be executed
    I have three table :
    dm3_comme_back_tmp
    dm3_societe
    dm3_contact
    dm3_comme_back_tmp is the result of a lerge excel files (about 100.000 rows)
    Actually i want to set a flag to "0" ("visible" field) if an "societe_id" or a "cid" exist in dm3_societe or dm3_contact but not in dm3_comme_back_tmp
    So i open a cursor on both dm3_societe or dm3_contact and for each row if there is not a corespondance in dm3_comme_back_tmp i set the visible flag to "0".
    her is the procedure :
    create or replace PROCEDURE update_visibilite
    AS
    BEGIN
    --Met le champ visible à 0 si la sosiété ou le contact n'est plus dans la base commebavk
    DECLARE
    v_count number;
    BEGIN
    --maj societe
    FOR cl in (
    select s.societe_id ID
    from dm3_societe s
    where s.societe_id > 0
    LOOP
    select count(*)
    into v_count
    from dm3_comme_back_tmp
    where societe_id = cl.ID;
    if v_count = 0 then
         update dm3_societe
         set visible = 0
         where societe_id = cl.ID;
    end if;
    END LOOP;
    --maj_contact
    FOR cl in (
    select c.id_contact_cb CID
    from dm3_contact c
    where c.id_contact_cb is not null
    LOOP
    select count(*)
    into v_count
    from dm3_comme_back_tmp
    where cid = cl.CID;
    if v_count = 0 then
         update dm3_contact
         set visible = 0
         where id_contact_cb = cl.CID;
    end if;
    END LOOP;
    END;I want two know if there is a way to optimize this procedure.
    Thx

    This should reduce the number of instructions for sure. And it avoids to unneeded writes on the tables.
    /*not correct*/
    update dm3_societe
    set visible=0
    where (visible is null or visible <> 0)
         and (
              societe_id NOT IN (select societe_id from dm3_comme_back_tmp)
              or id_contact_cb NOT IN (select cid from dm3_comme_back_tmp)
         );Bye Alessandro

  • A little help for creating a procedure

    Hi,
    I'm new to oracle so i would really appreciate your help. Here is the scenario: i have several table in a database, in one table, let's call it table_a i have some values like: assignment, employee_id, account and so on. In another table, table_b i also have some data the is found in table_a like: employee_id, assignmnet, employee_name... and so on. I must create a procedure to check in table_a by value assignment(pk) and find what assignments are not in table_b and then insert these values in table_b, table_c.... . How do i create the comparison part?

    Hi,
    If It would have to insert only in table_b, then you can go for MERGE, that will be fine instead of procedure.
    Other options would be
    INSERT ALL
    INTO table_b VALUES (<required columns>)
    INTO table_c VALUES (<required columns>)
    SELECT <the columns>
    FROM table_a
    where assignmnet_id not in (select assignmnet From table_b);
    - Pavan Kumar N

  • F4 - Help for field in ALV Grid Output

    Hi,
    I generated a report which gives output in ALV Grid output.
    In the output, 1 of the field is editable.Here, for this field I need to have my own F4-Help.
    I think the procedure to be followed is:--
    Create a Search Help in SE11.
    Link the Search Help to the editable field.
    Please let me know if its the correct procedure.
    I f yes, how can I link user defined Search Help to the editable field?
    Thanks,
    Shivaa........

    Hi siva,
    you can also do that way.
    while filling the fieldcatalog use the parameter F4AVAILABL
    for more info check
    F4 help in ALV Grid...
    f4 help for a field in alv grid
    hope it helps you
    Thanks!
    Edited by: Prasanth on Mar 6, 2009 3:59 PM

  • How to get the F4 help for a field in the selection screen

    Hi all,
    I am working on a report program. In the selection screen, I have the field 'Brand Node ID'(ZNODEID). The requirement is to have the F4 help for this field. This field is available in a 'Z' table ZNODETAB. There is no Value table maintained for the corresponding data element. So, without disturbing the table data element/domain, I should get the F4 help in the selection screen of the report. In the F4 help, data should be fetched from the table ZNODETAB and the field is ZNODEID. Is there any way to do this.
    By searching the function modules, I could find that, we can use the FM F4IF_INT_TABLE_VALUE_REQUEST. But, I am not Sure. Can someone tell me the parameters to be passed to this function module to get the F4 help and the procedure to follow. S_NODEID is the select option used in the program. Please help me in this regard. Thanks in advance.
    Thanks & Regards,
    Paddu.

    look at this code and try
    select-options : S_NODEID for ZNODETAB-ZNODEID.
    at selection-screen on value-request for s_nodeid-low
    perform f4_nodeid using 'S_NODEID-LOW'.
    at selection-screen on value-request for s_nodeid-low
    perform f4_nodeid using 'S_NODEID-HIGH'.
    end-of-selection.
    FORM f4_nodeid  USING    p_field.
      declare it_node.
    select znodeid from ZNODETAB into table it_node.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield        = 'ZNODEID'
          dynpprog        = sy-repid
          dynpnr          = sy-dynnr
          dynprofield     = p_field
          value           = space
          value_org       = 'S'
          display         = 'F'
        TABLES
          value_tab       = it_node
        EXCEPTIONS
          parameter_error = 1
          no_values_found = 2
          OTHERS          = 3.
    endform

  • Need Help With a Stored Procedure

    Help With a Stored Procedure
    Hi everyone.
    I am quite new relative to creating stored procedures, so I anticipate that whatever help I could get here would be very much helpful.
    Anyway, here is my case:
    I have a table where I need to update some fields with values coming from other tables. The other tables, let us just name as tblRef1, tblRef2 and tblRef3. For clarity, let us name tblToUpdate as my table to update. tblToUpdate has the following fields.
    PlanID
    EmployeeIndicator
    UpdatedBy
    CreatedBy
    tblRef1, tblRef2 and tblRef3 has the following fields:
    UserName
    EmpIndicator
    UserID
    In my stored procedure, I need to perform the following:
    1. Check each row in the tblToUpdate table. Get the CreatedBy value and compare the same to the UserName and UserID field of tblRef1. If no value exists in tblRef1, I then proceed to check if the value exists in the same fields in tblRef2 and tblRef3.
    2. If the value is found, then I would update the EmployeeIndicator field in tblToUpdate with the value found on either tblRef1, tblRef2 or tblRef3.
    I am having some trouble writing the stored procedure to accomplish this. So far, I have written is the following:
    CREATE OR REPLACE PROCEDURE Proc_Upd IS v_rec NUMBER;
    v_plan_no tblToUpdate.PLANID%TYPE;
    v_ref_ind tblToUpdate.EMPLOYEEINDICATOR%TYPE;
    v_update_user tblToUpdate.UPDATEDBY%TYPE;
    v_created_by tblToUpdate.CREATEDBY%TYPE;
    v_correct_ref_ind tblToUpdate.EMPLOYEEIDICATOR%TYPE;
    CURSOR cur_plan IS SELECT PlanID, EmployeeIndicator, UPPER(UpdatedBy), UPPER(CreatedBy) FROM tblToUpdate;
    BEGIN
    Open cur_plan;
         LOOP
         FETCH cur_plan INTO v_plan_no, v_ref_ind, v_update_user, v_created_by;
              EXIT WHEN cur_plan%NOTFOUND;
              BEGIN
              -- Check if v_created_by has value.
                   IF v_created_by IS NOT NULL THEN
                   -- Get the EmpIndicator from the tblRef1, tblRef2 or tblRef3 based on CreatedBy
                   SELECT UPPER(EmpIndicator)
                        INTO v_correct_ref_ind
                        FROM tblRef1
                        WHERE UPPER(USERNAME) = v_created_by
                        OR UPPER(USERID) = v_created_by;
                        IF v_correct_ref_ind IS NOT NULL THEN
                        -- Update the Reference Indicator Field in the table TRP_BUSPLAN_HDR_T.
                             UPDATE TRP_BUSPLAN_HDR_T SET ref_ind = v_correct_ref_ind WHERE plan_no = v_plan_no;
                        ELSIF
                        -- Check the Other tables here????
                        END IF;
                   ELSIF v_created_by IS NULL THEN
                   -- Get the EmpIndicator based on the UpdatedBy
                        SELECT UPPER(EmpIndicator)
                        INTO v_correct_ref_ind
                        FROM tblRef1
                        WHERE UPPER(USERNAME) = v_update_user
                        OR UPPER(USERID) = v_created_by;
                        IF v_correct_ref_ind IS NOT NULL THEN
                        -- Update the Reference Indicator Field in the table TRP_BUSPLAN_HDR_T.
                             UPDATE TRP_BUSPLAN_HDR_T SET ref_ind = v_correct_ref_ind WHERE plan_no = v_plan_no;
                        ELSIF
                        -- Check the Other tables here????
                        END IF;
                   END IF;
              END;
         END LOOP;
         CLOSE cur_plan;
         COMMIT;
    END
    Please take note that the values in the column tblToUpdate.UpdatedBy or tblToUpdate.CreatedBy could match either the UserName or the UserID of the table tblRef1, tblRef2, or tblRef3.
    Kindly provide more insight. When I try to execute the procedure above, I get a DATA NOT FOUND ERROR.
    Thanks.

    Ah, ok; I got the updates the wrong way round then.
    BluShadow's single update sounds like what you need then.
    I also suggest you read this AskTom link to help you see why you should choose to write DML statements before choosing to write cursor + loops.
    In general, when you're being asked to update / insert / delete rows into a table or several tables, your first reaction should be: "Can I do this in SQL?" If you can, then putting it into a stored procedure is usually just a case of putting the sql statement inside the procedure header/footers - can't really get much more simple than that! *{;-)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • F4 help for the batch field in VL02N transaction

    We have upgraded our system from 4.6 to ecc 6.0 .In 4.6 the f4 help for the batch had " Batch selection via plant/Material/Storage location/Batch " which is not there in ECC 6.0.
    Please tell us the procedure to add in the existing  search help H_MCHA in ECC 6.0
    Thanks
    Aruna

    Hi Aruna.
      Create ur own search help using se11 tcode for required fields.
      Thanks & Regards,
    Kiran.
    Plz give rewards if and only if it is helpfull.

  • How to provide F4 help for a field in table control

    Hi Friends,
    I have requirement like below.
    1.Create one custom transaction code with header and item information.
    2.In item level, we will be designed table control to enter/display the data.
    3.Table control’s first field will be material number and next DOT number (Material may have many DOT numbers) and so on.
    4.First user will enter material number in the table control’s first row’s first field and go to DOT number field.
    5.DOT number has drop down option. If user selects drop down box of DOT number, he gets all the DOT numbers available in database. User selects one DOT number and double clicks on it then it will be populated in DOT number field box.
    But for point number 5,  business wants like when ever user enters material number in table control first field then select DOT number’s drop down then they want to see the particular material’s DOT numbers only in the drop down list for selection. Not all DOT numbers available in data base. Same thing should happen for all item lines in table control.
    Please see below example. 
    Assume data base table has 10 DOT numbers. But material number has only 2 DOT numbers. When ever user enters material number in item level table control and selects DOT number’s drop down then it should show only 2 DOT numbers which are related to particular material number. Not all 10 DOT numbers.
    Could you please suggest me, how can we achieve this?

    Hello,
    Check this :-
    For POV
    Input Help in Dialog Modules
    You can call dialog modules in the POV event using the event keyword PROCESS ON VALUE-REQUEST.
    PROCESS ON VALUE-REQUEST.
    FIELD <f> MODULE <mod>.
    After the PROCESS ON VALUE-REQUEST statement, you can only use the MODULE statement together with the FIELD statement. When the user chooses F4 for a field <f>, the system calls the module <mod> belonging to the FIELD <f> statement. If there is more than one FIELD statement for the same field <f>, only the first is executed. The module <mod> is defined in the ABAP program like a normal PAI module. However, the contents of the screen field <f> are not available, since it is not transported by the FIELD statement during the PROCESS ON HELP-REQUEST event. You can now program your own value lists in the module. However, this procedure is only recommended if it really is not possible to use a search help. Defining search helps is much easier than PROCESS ON VALUE-REQUEST, since the system takes over some of the standard operations, such as getting field contents from the screen. It also ensures that the F4 help has a uniform look and feel throughout the system. Furthermore, it means that you do not have to reassign input help to fields on each screen.
    Despite the introduction of search helps (and search help exits), there are still cases in which you need to use parts of the standard F4 functions directly. In this case, there are some standard function modules that you can use in the POV event. They support search helps, as well as all other kinds of input help, and are responsible for data transport between the screen and the input help. These all have the prefix F4IF_. The most important are:
    F4IF_FIELD_VALUE_REQUEST
    Calls the input help of the ABAP Dictionary dynamically. You can pass the component names of a structure or database table of the ABAP Dictionary to the function module in the import parameters TABNAME and FIELDNAME. The function module starts the ABAP Dictionary input help for this component. All of the relevant screen fields are read. If you specify the import parameters DYNPPROG, DYNPNR, and DYNPROFIELD, the user’s selection is returned to the corresponding field on the screen. If you specify the table parameter RETURN_TAB, the selection is returned into the table instead.
    F4IF_INT_TABLE_VALUE_REQUEST
    This function module displays a value list that you created in an ABAP program. The value list is passed to the function module as the table parameter VALUE_TAB. If you specify the import parameters DYNPPROG, DYNPNR, and DYNPROFIELD, the user’s selection is returned to the corresponding field on the screen. If you specify the table parameter RETURN_TAB, the selection is returned into the table instead.
    There are also two function modules - DYNP_VALUES_READ and DYNP_VALUES_UPDATE - that can read the values of screen fields and return values to them during the POV event. For further information, refer to the relevant function module documentation.
    Input help in dialog modules
    REPORT DEMO_DYNPRO_F4_HELP_MODULE.
    TYPES: BEGIN OF VALUES,
    CARRID TYPE SPFLI-CARRID,
    CONNID TYPE SPFLI-CONNID,
    END OF VALUES.
    DATA: CARRIER(3) TYPE C,
    CONNECTION(4) TYPE C.
    DATA: PROGNAME LIKE SY-REPID,
    DYNNUM LIKE SY-DYNNR,
    DYNPRO_VALUES TYPE TABLE OF DYNPREAD,
    FIELD_VALUE LIKE LINE OF DYNPRO_VALUES,
    VALUES_TAB TYPE TABLE OF VALUES.
    CALL SCREEN 100.
    MODULE INIT OUTPUT.
    PROGNAME = SY-REPID.
    DYNNUM = SY-DYNNR.
    CLEAR: FIELD_VALUE, DYNPRO_VALUES.
    FIELD_VALUE-FIELDNAME = 'CARRIER'.
    APPEND FIELD_VALUE TO DYNPRO_VALUES.
    ENDMODULE.
    MODULE CANCEL INPUT.
    LEAVE PROGRAM.
    ENDMODULE.
    MODULE VALUE_CARRIER INPUT.
    CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
    EXPORTING
    TABNAME = 'DEMOF4HELP'
    FIELDNAME = 'CARRIER1'
    DYNPPROG = PROGNAME
    DYNPNR = DYNNUM
    DYNPROFIELD = 'CARRIER'.
    ENDMODULE.
    MODULE VALUE_CONNECTION INPUT.
    CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
    DYNAME = PROGNAME
    DYNUMB = DYNNUM
    TRANSLATE_TO_UPPER = 'X'
    TABLES
    DYNPFIELDS = DYNPRO_VALUES.
    READ TABLE DYNPRO_VALUES INDEX 1 INTO FIELD_VALUE.
    SELECT CARRID CONNID
    FROM SPFLI
    INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB
    WHERE CARRID = FIELD_VALUE-FIELDVALUE.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    RETFIELD = 'CONNID'
    DYNPPROG = PROGNAME
    DYNPNR = DYNNUM
    DYNPROFIELD = 'CONNECTION'
    VALUE_ORG = 'S'
    TABLES
    VALUE_TAB = VALUES_TAB.
    ENDMODULE.
    The next screen (statically defined) for screen 100 is itself. It has the following layout:
    The input fields have been adopted from the program fields CARRIER and CONNECTION. The pushbutton has the function code CANCEL with function type E.
    The screen flow logic is as follows:
    PROCESS BEFORE OUTPUT.
    MODULE INIT.
    PROCESS AFTER INPUT.
    MODULE CANCEL AT EXIT-COMMAND.
    PROCESS ON VALUE-REQUEST.
    FIELD CARRIER MODULE VALUE_CARRIER.
    FIELD CONNECTION MODULE VALUE_CONNECTION.
    When the user chooses input help for the individual fields, the following is displayed:
    For the Airline field, the POV module VALUE_CARRIER is called. The function module F4IF_FIELD_VALUE_REQUEST displays the input help for the component CARRIER1 of the structure DEMOF4HELP from the ABAP Dictionary, namely the search help DEMOF4DE. The user’s selection is returned to the screen field CARRIER.
    For the Flight number field, the POV module VALUE_CONNECTION is called. The function module DYNP_VALUE_READ transports the value of the screen field CARRIER into the program. The program then reads the corresponding values from the database table SPFLI into the internal table VALUES_TAB using a SELECT statement, and passes the internal table to F4IF_INT_TABLE_VALUE_REQUEST. This displays the internal table as input help, and places the user’s selection into the screen field CONNECTION.
    For POH------------
    Field Help
    There are three ways of displaying field help for screen elements:
    Data Element Documentation
    If you place a field on the screen in the Screen Painter by copying a ABAP Dictionary field, the corresponding data element documentation from the ABAP Dictionary is automatically displayed when the user chooses field help (as long as the help has not been overridden in the screen flow logic).
    For further information about creating data element documentation, refer to data elements.
    Data Element Supplement Documentation
    If the data element documentation is insufficient, you can expand it by writing a data element supplement
    Data element supplement documentation contains the heading Definition, as well as the following others:
    Use
    Procedure
    Examples
    Dependencies
    To create data element supplement documentation for a screen, choose Goto ® Documentation ® DE supplement doc. from the element list of the screen. A dialog box appears in which the system proposes a number as the identified for the data element supplement. You can then enter help texts for the above headings using the SAPscript editor.
    Data element supplement documentation created in this way is program- and screen-specific. Any data element supplement documentation created in the ABAP Dictionary with the same number is overridden by the screen-specific documentation. You can link existing data element supplement documentation created in the ABAP Dictionary with a screen field by using the table THLPF. To do this, crate a new row in THLPF containing the following data: Program name, screen name, field name, and number of the data element supplement documentation.
    To display data element supplement documentation, you must code the following screen flow logic in the POH event:
    PROCESS ON HELP-REQUEST.
    FIELD <f> [MODULE <mod>] WITH <num>.
    After PROCESS ON HELP-REQUEST, you can only use FIELD statements. If there is no PROCESS ON HELP-REQUEST keyword in the flow logic of the screen, the data element documentation for the current field, or no help at all is displayed when the user chooses F1. Otherwise, the next FIELD statement containing the current field <f> is executed.
    If there is screen-specific data element supplement documentation for the field <f>, you can display it by specifying its number <num>. The number <num> can be a literal or a variable. The variable must be declared and filled in the corresponding ABAP program.
    You can fill the variables, for example, by calling the module <mod> before the help is displayed. However, the FIELD statement does not transport the contents of the screen field <f> to the ABAP program in the PROCESS ON HELP-REQUEST event.
    For further information about data element supplement documentation, refer to Data Element Supplements.
    Calling Help Texts from Dialog Modules
    If data element supplement documentation is insufficient for your requirements, or you want to display help for program fields that you have not copied from the ABAP Dictionary, you can call dialog modules in the POH event:
    PROCESS ON HELP-REQUEST.
    FIELD <f> MODULE <mod>.
    After the PROCESS ON HELP-REQUEST statement, you can only use the MODULE statement together with the FIELD statement. When the user chooses F1 for a field <f>, the system calls the module <mod> belonging to the FIELD <f> statement. If there is more than one FIELD statement for the same field <f>, only the first is executed. However, the contents of the screen field <f> are not available in the module <mod>, since it is not transported by the FIELD statement during the PROCESS ON HELP-REQUEST event. The field help should not be dependent on the user input.
    The module <mod> is defined in the ABAP program like a normal PAI module. The processing logic of the module must ensure that adequate help is displayed for the field in question. Instead of calling an extra screen with text fields, you should use one of the following function modules to display a suitable SAPscript document:
    HELP_OBJECT_SHOW_FOR_FIELD
    This function module displays the data element documentation for components of any structure or database table from the ABAP Dictionary. You pass the name of the component and structure or table to the import parameters FIELD and TABLE.
    HELP_OBJECT_SHOW
    Use this function module to display any SAPscript document. You must pass the document class (for example, TX for general texts, DE for data element documentation) and the name of the document to the import parameters DOKCLASS and DOKNAME. For technical reasons, you must also pass an empty internal table with the line type TLINE to the tables parameter of the function module.
    For further information about how to create SAPscript documents, refer to the Documentation of System Objects documentation.
    Field help on screens.
    REPORT DEMO_DYNPRO_F1_HELP.
    DATA: TEXT(30),
    VAR(4),
    INT TYPE I,
    LINKS TYPE TABLE OF TLINE,
    FIELD3, FIELD4.
    TABLES DEMOF1HELP.
    TEXT = TEXT-001.
    CALL SCREEN 100.
    MODULE CANCEL INPUT.
    LEAVE PROGRAM.
    ENDMODULE.
    MODULE F1_HELP_FIELD2 INPUT.
    INT = INT + 1.
    CASE INT.
    WHEN 1.
    VAR = '0100'.
    WHEN 2.
    VAR = '0200'.
    INT = 0.
    ENDCASE.
    ENDMODULE.
    MODULE F1_HELP_FIELD3 INPUT.
    CALL FUNCTION 'HELP_OBJECT_SHOW_FOR_FIELD'
    EXPORTING
    DOKLANGU = SY-LANGU
    DOKTITLE = TEXT-002
    CALLED_FOR_TAB = 'DEMOF1HELP'
    CALLED_FOR_FIELD = 'FIELD1'.
    ENDMODULE.
    MODULE F1_HELP_FIELD4 INPUT.
    CALL FUNCTION 'HELP_OBJECT_SHOW'
    EXPORTING
    DOKCLASS = 'TX'
    DOKLANGU = SY-LANGU
    DOKNAME = 'DEMO_FOR_F1_HELP'
    DOKTITLE = TEXT-003
    TABLES
    LINKS = LINKS.
    ENDMODULE.
    The next screen (statically defined) for screen 100 is 100. It has the following layout:
    The screen fields DEMOf1HELP-FIELD1 and DEMOF1HELP-FIELD2 from the ABAP Dictionary and the program fields FIELD3 and FIELD4 are assigned to the input fields. The pushbutton has the function code CANCEL with function type E.
    The screen flow logic is as follows:
    PROCESS BEFORE OUTPUT.
    PROCESS AFTER INPUT.
    MODULE CANCEL AT EXIT-COMMAND.
    PROCESS ON HELP-REQUEST.
    FIELD DEMOF1HELP-FIELD2 MODULE F1_HELP_FIELD2 WITH VAR.
    FIELD FIELD3 MODULE F1_HELP_FIELD3.
    FIELD FIELD4 MODULE F1_HELP_FIELD4.
    The components FIELD1 and FIELD2 of structure DEMOF1HELP both refer to the data element DEMOF1TYPE. This data element is documented, and also has two supplements with numbers 0100 and 0200.
    The following field help is displayed:
    When the user chooses F1 on the input field for DEMOF1HELP-FIELD1, the data element documentation for DEMOF1TYPE is displayed, since the field does not occur in the PROCESS ON HELP-REQUEST event.
    If the user chooses F1 repeatedly for the input field DEMOF1HELP-FIELD2, the data element documentation is displayed, along with the supplement documentation for either 0100 or 0200 alternately. The variable VAR is filled in the dialog module F1_HELP_FIELD2.
    When the user chooses F1 on the input field for FIELD3, the data element documentation for DEMOF1TYPE is displayed, since this is called in the dialog module F1_HELP_FIELD3 by the function module HELP_OBJECT_SHOW_FOR_FIELD.
    When the user chooses F1 on the input field for FIELD4, the SAPscript documentation DEMO_FOR_F1_HELP is displayed, since this is called in the dialog module F1_HELP_FIELD4 by the function module HELP_OBJECT.
    Regards,
    Deepu.K

  • Need help for Format HD

    Hi I need Help for Formating HD so Wat Key need hold on start up for format HD I apprciated you Help

    Jesus:
    Formatting, Partitioning Erasing a Hard Disk Drive
    Warning! This procedure will destroy all data on your Hard Disk Drive. Be sure you have an up-to-date, tested backup of at least your Users folder and any third party applications you do not want to re-install before attempting this procedure.
    • With computer shut down insert install disk in optical drive.
    • Hit Power button and immediately after chime hold down the "C" key.
    • Select language
    • Go to the Utilities menu (Tiger) Installer menu (Panther & earlier) and launch Disk Utility.
    • Select your HDD (manufacturer ID) in left side bar.
    • Select Partition tab in main panel. (You are about to create a single partition volume.)
    • _Where available_ +Click on Options button+
    +• Select Apple Partition Map (PPC Macs) or GUID Partition Table (Intel Macs)+
    +• Click OK+
    • Select number of partitions in pull-down menu above Volume diagram.
    (Note 1: One partition is normally preferable for an internal HDD.)
    • Type in name in Name field (usually Macintosh HD)
    • Select Volume Format as Mac OS Extended (Journaled)
    • Click Partition button at bottom of panel.
    • Select Erase tab
    • Select the sub-volume (indented) under Manufacturer ID (usually Macintosh HD).
    • Check to be sure your Volume Name and Volume Format are correct.
    • Click Erase button
    • Quit Disk Utility.
    cornelius

  • I want to add Narration to my movies. I've watched the Elements Guided Help for Narration. But when I click the RECORD Tab, I get an error message. "Your current audio hardware selection does not have any inout channels." My question, therefore: Do I need

    I want to add Narration to my movies. I've watched the Elements Guided Help for Narration, and closely followed their procedure. But when I click the RECORD tab, I get an error message. "Your current audio hardware selection dos not have any input channels." My question, therefore: Do I need to buy an external microphone? I have an HP Pavilion Laptop, running WIndows 8.1. I thought I had a built-in microphone. But ,maybe not. Please help. Also, WHAT KIND of microphone - exactly - should I buy? Thanks for your help.
    Mike Moore
    Corvallis, Oregon

    mikem
    Go to Edit Menu/Preferences/Audio Hardware and ASIO tab and click on it.
    Under the Input tab, make sure that you have your microphone selected.
    Please let us know the outcome.
    Thank you.
    ATR

  • Schedule manager for month-end procedure

    Hi,
    I have to prepare Business Process Procedure(BPP) & Configuration Guide For "schedule manager for month-end procedure" .Plz help me by giving some inputs to prepare the documents.Its urgent....
    ***points will be assigned.
    Thanks
    Sap Guru
    [email protected]

    Have a look at the 3rd party tool called RunBook  http://www.runbook.nl/

  • Need help for importing oracle 10G dump into 9i database

    hi, Someone help me to import oracle 10G dump into 9i database. I'm studying oracle . Im using oracle 10G developer suite(downloaded from oracle) and oracle 9i database. I saw some threads tat we can't import the higher version dumps into lower version database. But i'm badly need help for importing the dump...
    or
    someone please tell me the site to download oracle 9i Developer suite as i can't find it in oracle site...

    I didnt testet it to import a dump out of a 10g instance into a 9i instance if this export has been done using a 10g environment.
    But it is possible to perform an export with a 9i environment against a 10g instance.
    I am just testing this with a 9.2.0.8 environment against a 10.2.0.4.0 instance and is working so far.
    The system raises an EXP-00008 / ORA-37002 error after exporting the data segments (exporting post-schema procedural objects and actions).
    I am not sure if it is possible to perform an import to a 9i instance with this dump but maybe worth to give it a try.
    It should potentially be possible to export at least 9i compatible objects/segments with this approach.
    However, I have my doubts if this stunt is supported by oracle ...
    Message was edited by:
    user434854

  • Parallel Process Option for Optimization in Background.

    Hi,
    I am testing the SNP Optimizer with various settings this week on  demo version from SAP for a client.  I am looking for information that anyone might have on the SNP Parallel Processing Option in the execution of the Optimizer in the background.   The information that I could find is very thin.   I would be interested in any documentation or experience that you have.
    Sincerely,
    Michael M. Stahl
    [email protected]

    Hello,
    While running the transaction /SAPAPO/SNPOP - Supply Network Optimization  in the background, In the variant of it you can enter Parallel Processing profile in the field Paral. Proc. Profile.
    This profile you will require to define in the Customization(SPRO) before use it in the variant.
    Path to maintain it is as below Use transaction SPRO
    Advanced Planning and Optimization --> Supply Chain Planning -->Supply Network Planning (SNP) --> Profiles --> Define Parallel Processing Profile
    Here you will require to define your profile... e.g. as below
    Paral. Proc. Profile SNP_OPT
    Description          SNP OPTIMIZER PP PROFILE
    Appl. (Parallel Pr.) : Optimization
    Parallel Processes   2
    Logical system :
    Server Group :
    Block Size:
    You will require to take Basis team's help to enter value for Server Group and Block size.
    I hope, above information is helpful for you.
    Regards,
    Anjali

  • Best practice for application help for a custom screen?

    Hi,
    The system is Netweaver 7.0 SP 15 with e-recruiting .
    We have some custom SAP GUI transactions and have written Word documents with screen prints and explanations. I would like to make the procedure document accessible from the custom transaction or at least provide custom help text that includes a link to the full documents.
    Can anyone help me out with options and best practices for providing customized application help for custom SAP GUI transactions?
    Thanks,
    Margaret

    Hello Margaret,
    sorry I though you might be still in a design or proof of concept phase where the decision for the technology is still adjustable.
    If the implementation is already done things change of course. The standard in-system documentation is surely not fitting your needs as including screenshots won't work well.
    I would solve the task the following way:
    I'd make a web or pdf document out of the word document and put it on a web ressource - as you run e-recruiting you have probably the possibility for that.
    I would then just put a button into the transaction an open a web container to show the document.
    I am not sure if this solution really qualifies as "best practise" but SAP does the same if you call the Help for application in the help menue. This is implemented in function module SAPGUIHC_OPEN_HELP_CENTER. I'd just copy it, throw out what I do not need and hard code the url to call.
    Perhaps someone could offer a better solution but I think this works a t least without exxagerated costs.
    Kind Regards
    Roman

  • Help for pricing

    guys i just want to ask if i configure wi-fi connection how much the price of that service. base on philippine money thank guys GL

    Hi
    You can create a new condition type in V/06 or copy from Std condition type .Assign that in your pricing procedure in V/08.
    Then calculate the difference price for 1 material and maintain that in VK11.
    So in sales order the price will get reflected as that of PO.
    Kindly Avoid posting the same questions.
    Need help for Pricing difference from customer's PO.
    Edited by: ta.adithya on May 25, 2011 10:20 AM

Maybe you are looking for

  • Issue with Workflow in a SharePoint-hosted App Application

    Hi, I have created a Sharepoint-hosted app which has a list workflow in it. After I deploy it to the sharepoint server,  I can not find any workflow under the associated list. However, I did have target list associated with workflow in workflow proje

  • GL Account in Travel Expense infocube

    Please can someone help me. What is the infocube I can use to link it with the one of Travel Expense in order to get the GL Account? I need to obtain the GL Accounts for expenses that are affected. Thanks!!

  • Troubleshoot and Setup FiOS TV Programming with VZ In-Home Agent

    VZ In-Home Agent is a tool that helps you setup and troubleshoot your FiOS TV programming. This tool is simple, easy-to-use and has information about various features of your FiOS TV programming along with quick fixes for most of the common problems.

  • Stop automatic use of bluetooth?

    I finally have the bluetooth hooked up so I can drive with it-thanks to the Verizon store people (and a 1 hr wait because they forgot me.  At least I had work to read). Now I can't answer my phone unless I use the bluetooth.  I'm not one who will be

  • Prevent use of blocked vendors in Funds Reservation Doc (FMX1)

    How can I make the system give a hard error for a blocked vendor for a funds reservation document? Currently the system will allow the use of a vendor that has been blocked when creating a funds reservation document. A hard error is received when att