Need PL/SQL code for this

Hi,
I need a PL/SQL code for this one...
Let me know if something is not clear...
1) The table CLOB_CLOBJECT_CDA has the columns described below...
Explaining only those fields which are important in this context
-- CDA_STEP_ID : Basically a Sequence
-- CLOBJECT_SOURCE1_ID : Every id has got a set of records
-- CLOBJECT_SOURCE2_ID : Every id has got a set of records
-- LVL : There are total 8 levels..
This is the main aim :
1) There are total 16 million rows..(limited to 10 rows here)
2) We need to go through level by level (LVL column) & insert the intersection records (CLOBJECT_SOURCE1_ID intersect CLOBJECT_SOURCE2_ID)
into another table...but this is how it goes..
Level (LVL column) 3's basically have CLOBJECT_SOURCE1_ID as level (LVL column) 2 CDA_STEP_ID's..
(consider the statement --** where CLOBJECT_SOURCE1_ID = 285 which is same as 1st insert statement step id)..
The above process goes for next levels until 8..(so have to use loops)
So for ex :
We go through the first insert statement and insert the insertion records only when both CLOBJECT_SOURCE1_ID & CLOBJECT_SOURCE2_ID has got records ..
If we don't find any records for both of them we should skip the corresponding step id when we go to the next levels...
Let's go through the 1st insert statement...
-- We have CDA_STEP_ID = 285 & two sources CLOBJECT_SOURCE1_ID as 19 & CLOBJECT_SOURCE2_ID as 74...
-- We see the table CLOBJECT_COUNTS & check whether we have counts for both 19 & 74 ..(In fact we insert counts into this table only if they have records)
-- If so, we insert the intersection records into CDA_MRN_RESULTS ( we do have counts for both of them..) with CDA_STEP_ID 285...
-- Then we insert the step id which is 285 along with the count into CLOBJECT_COUNTS..
Let's go through another insert statement...
-- Consider CDA_STEP_ID = 288 which has two sources CLOBJECT_SOURCE1_ID as 19 & CLOBJECT_SOURCE2_ID as 92...
-- We see the table CLOBJECT_COUNTS & check whether we have counts for both 19 & 92 ..(we have records for 19 but not for 92)
-- So we should not proceed with this..& also skip all those records (future records with increasing levels..basically level 3's) which have got 288 as CLOBJECT_SOURCE1_ID..
(As said earlier that the present CDA_STEP_ID will always be CLOBJECT_SOURCE1_ID in the next level)...
I wrote the following code which is after the statement...
Let me have the create & insert statements here..
create table CLOB_CLOBJECT_CDA
    CDA_STEP_ID           NUMBER,
    CDA_ID                NUMBER,
    CDA_SEQ_NUMBER        NUMBER,
    CLOBJECT_SOURCE1_TYPE VARCHAR2(3000),
    CLOBJECT_SOURCE1_ID   NUMBER,
    CLOBJECT_OPERATOR     VARCHAR2(3000),
    CLOBJECT_SOURCE2_TYPE VARCHAR2(3000),
    CLOBJECT_SOURCE2_ID   NUMBER,
    LVL                   NUMBER
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (285, 285, 1, 'CLOBJECT', 19, 'INTERSECT', 'CLOBJECT', 74, 2);
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (286, 286, 1, 'CLOBJECT', 19, 'INTERSECT', 'CLOBJECT', 75, 2);
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (287, 287, 1, 'CLOBJECT', 19, 'INTERSECT', 'CLOBJECT', 91, 2);
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (288, 288, 1, 'CLOBJECT', 19, 'INTERSECT', 'CLOBJECT', 92, 2);
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (4869, 4869, 1, 'CDA_STEP', 285, 'INTERSECT', 'CLOBJECT', 91, 3);  -- **
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (4870, 4870, 1, 'CDA_STEP', 285, 'INTERSECT', 'CLOBJECT', 92, 3);
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (4871, 4871, 1, 'CDA_STEP', 285, 'INTERSECT', 'CLOBJECT', 93, 3);
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (4880, 4880, 1, 'CDA_STEP', 286, 'INTERSECT', 'CLOBJECT', 91, 3);
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (4881, 4881, 1, 'CDA_STEP', 286, 'INTERSECT', 'CLOBJECT', 92, 3);
insert into clob_clobject_cda (CDA_STEP_ID, CDA_ID, CDA_SEQ_NUMBER, CLOBJECT_SOURCE1_TYPE, CLOBJECT_SOURCE1_ID, CLOBJECT_OPERATOR, CLOBJECT_SOURCE2_TYPE, CLOBJECT_SOURCE2_ID, LVL)
values (4882, 4882, 1, 'CDA_STEP', 286, 'INTERSECT', 'CLOBJECT', 93, 3);
create table CDA_MRN_RESULTS
   CDA_STEP_ID      NUMBER,
  MRN              NUMBER,
  INSERT_DATE_TIME DATE
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (19, 1, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (19,  2, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (19,  3, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (74,  1, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (74,  2, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (74,  4, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (75,  1, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (75,  2, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (75,  6, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (91,  2, to_date('19-10-2011', 'dd-mm-yyyy'));
insert into cda_mrn_results (CDA_STEP_ID, MRN, INSERT_DATE_TIME)
values (91,  3, to_date('19-10-2011', 'dd-mm-yyyy'));
create table CLOBJECT_COUNTS
  CDA_STEP_ID    NUMBER,
  CLOBJECT_COUNT NUMBER,
  DATE_TIME      DATE
Insert into CLOBJECT_COUNTS values (19,3, to_date('19-10-2011', 'dd-mm-yyyy'));
Insert into CLOBJECT_COUNTS values (74,3, to_date('19-10-2011', 'dd-mm-yyyy'));
Insert into CLOBJECT_COUNTS values (75,3, to_date('19-10-2011', 'dd-mm-yyyy'));
Insert into CLOBJECT_COUNTS values (91,2, to_date('19-10-2011', 'dd-mm-yyyy'));The output goes into two tables...
CDA_MRN_RESULTS : O/p of intersection records between source1 & source2 id
CLOBJECT_COUNTS : Step id with counts ...(useful for skipping next level step id's if either of source id has "0" counts)
Any help is appreciated..
Thanks..

I tried to code this..but looping takes a lot of time..I want to skip certain rows where source1_step_id & source_2_step_id are not in clobject_counts table as we proceed to the next levels..Not sure how to skip the rows..
declare
cursor c1 (p_level varchar2 ) is
  Select * from clob_clobject_cda
    where lvl = p_level    ;
   TYPE V_TT IS TABLE OF C1%ROWTYPE INDEX BY PLS_INTEGER;
    L_TT V_TT;
    v1 number;
    v2 number;
    v_step_id number;
    v_operator varchar2(100) := '';
begin
for i in 2..8 loop
  open c1(i);
  LOOP
       FETCH C1 BULK COLLECT INTO L_TT LIMIT 500;
        FOR indx IN 1 .. L_TT.COUNT
         LOOP
           v1 := L_TT(indx).clobject_source1_id;
           v2 := L_TT(indx).clobject_source2_id;
           v_step_id := L_TT(indx).cda_step_id;
           v_operator := L_TT(indx).clobject_operator;
  Execute Immediate ('Insert into cda_mrn_results Select --+ parallel (cm 128)
                                                  distinct ' || v_step_id || ', mrn, trunc(sysdate) dt from cda_mrn_results  cm
                    where cda_step_id = ' || v1 || '
                    and   cda_step_id in (Select cda_step_id from clobject_counts) ' ||
     v_operator ||
                '  Select --+ parallel (cm 128)
                                                  distinct ' || v_step_id || ', mrn, trunc(sysdate) dt from cda_mrn_results  cm
                    where cda_step_id = ' || v2 || '
                    and   cda_step_id in (Select cda_step_id from clobject_counts)  ' );
Insert --+ Append
       into clobject_counts Select cda_step_id, count(distinct mrn),
                   insert_date_time dt from cda_mrn_results  where cda_step_id =  v_step_id   group by cda_step_id,insert_date_time;
   COMMIT;                    
         END LOOP;
       EXIT WHEN L_TT.COUNT = 0;
     END LOOP;
  CLOSE C1;
End Loop;    
Commit;
End;

Similar Messages

  • Need pl/sql stmnts. for this simple logic

    Hi,
    I need PL/SQL program for this simple logic i am doing mistake somewhere unbale to trace
    out ..
    select * from GSR03_PO_DTL;
    PO_NUM
    L53177000 -- > no changes reqd (only one entry with new format)
    L00041677 --> to be updated to L41677000(only one entry with OLD format)
    L43677000 -- > no change reqd (exists one row with new format and old format like below)
    L00043677 -- > to be deleted this is old format (and new format like above already exists)
    EX:
    L00012345 --- old format
    L12345000 --- new format
    Hope question is clear. I written the following program.
    update is working fine but delete is not working.
    Please help.
    Thanks in Advance
    Devender
    declare
    Cursor c_test is
    (select po_num from GSR03_PO_DTL);
    BEGIN
    FOR r_test in c_Test
    LOOP
    dbms_output.put_line (r_test.po_num);
    IF ('L'||substr(r_test.po_num,5,5)) = ('L'||substr(r_test.po_num,2,5)) then
         dbms_output.put_line ('delete stmnt');
    END IF;     
    EXIT WHEN c_test%NOTFOUND;
    END LOOP;
    FOR r_test in c_Test
    LOOP
    IF r_test.po_num like 'L000%' then
    IF ('L'||substr(r_test.po_num,5,5)) is not NULL then
         update GSR03_PO_DTL set PO_NUM = 'L'||substr(po_num,5,5)||'000'
         where po_num like 'L000%' ;
         dbms_output.put_line ('update stmnt');
    END IF;     
    END IF;
    END LOOP;
    END;
    *********************

    No need for PL/SQL, man.
    SQL> SELECT po_no FROM po1
      2  /
    PO_NO
    L53177000
    L00041677
    L43677000
    L00043677
    SQL> UPDATE po1 y
      2  SET    y.po_no = 'L'||substr(y.po_no,5,5)||'000'
      3  WHERE  y.po_no LIKE 'L000%'
      4  AND    NOT EXISTS ( SELECT null FROM po1 x
      5                      WHERE x.po_no =  'L'||substr(y.po_no,5,5)||'000')
      6  /
    1 row updated.
    SQL> DELETE FROM po1 y
      2  WHERE  y.po_no LIKE 'L000%'
      3  AND    EXISTS ( SELECT null FROM po1 x
      4                  WHERE x.po_no =  'L'||substr(y.po_no,5,5)||'000')
      5  /
    1 row deleted.
    SQL> SELECT po_no FROM po1
      2  /
    PO_NO
    L53177000
    L41677000
    L43677000
    SQL> Cheers, APC

  • Need SQL code for this logic - -  From Serial and To serial no.

    In Forms 4.5 Screen I have two text boxes where i will be entering From Serial No
    and to serial no.
    I want the code which will check whether any number in between these from and to serial exists in a table or not ?
    For Example
    Select * from t; -- contains
    serial number
    321-456-789
    123-456-654
    321-569-986
    321-569-987
    When I enter from Serial no 321-456-789 and to serial no as 321-456-789.. I should get a message sayinig that 321-456-789 exists.
    When I enter from Serial no 321-569-986 and to serial no as 321-569-988.
    I should get a message sayinig that 321-456-986 exists.
    I should get a message sayinig that 321-456-987 exists.
    I should get a message sayinig that 321-456-988 not exists.
    is it possible with a SQL query or do we need to go for procedure or temp table ?
    If anybody ahving similar code please post it here.
    Thanks in Advance
    Devender

    Hi Devender,
    Try this :
    SQL> select * from t;
    SN
    321-456-789
    123-456-654
    321-569-986
    321-569-987
    SQL> var sn1 varchar2(11)
    SQL> exec :sn1 := '321-569-986'
    Procédure PL/SQL terminée avec succès.
    SQL> var sn2 varchar2(11)
    SQL> exec :sn2 := '321-569-988'
    Procédure PL/SQL terminée avec succès.
    SQL>1  select a.sn, decode(t.sn,null,'does not exists','already exists')
      2  from
      3  (select substr(replace(:sn1,'-','')+rownum-1,1,3)||'-'
      4        ||substr(replace(:sn1,'-','')+rownum-1,4,3)||'-'
      5        ||substr(replace(:sn1,'-','')+rownum-1,7,3) as sn
      6  from (select level
      7        from dual
      8        connect by level <= (replace(:sn2,'-','')-replace(:sn1,'-',''))+1
      9       )
    10  )a,
    11  t
    12* where a.sn=t.sn(+)
    SQL> /
    SN                            DECODE(T.SN,NUL
    321-569-986                   already exists
    321-569-987                   already exists
    321-569-988                   does not exists
    SQL> exec :sn1 := '321-456-789'
    Procédure PL/SQL terminée avec succès.
    SQL> exec :sn2 := '321-456-789'
    Procédure PL/SQL terminée avec succès.
    SQL> l
      1  select a.sn, decode(t.sn,null,'does not exists','already exists')
      2  from
      3  (select substr(replace(:sn1,'-','')+rownum-1,1,3)||'-'
      4        ||substr(replace(:sn1,'-','')+rownum-1,4,3)||'-'
      5        ||substr(replace(:sn1,'-','')+rownum-1,7,3) as sn
      6  from (select level
      7        from dual
      8        connect by level <= (replace(:sn2,'-','')-replace(:sn1,'-',''))+1
      9       )
    10  )a,
    11  t
    12* where a.sn=t.sn(+)
    SQL> /
    SN                            DECODE(T.SN,NUL
    321-456-789                   already exists
    SQL> Nicolas.

  • How to write the pl/sql code for this scenario

    Hi,
    Here is the data in a Table with below colums
    id firstname lastname code
    1 scott higgins 001
    2 Mike Ferrari 001
    3 Tom scottsdale 002
    4 Nick pasquale 003
    1 scott higgins 004
    I want to trap the following exceptions into an error table using pl/sql
    1. same person having multiple code
    example
    id first last Code
    1 scott higgins 001
    1 scott higgins 004
    2. Multiple persons having same code
    id first last Code
    1 scott higgins 001
    2 Mike Ferrari 001
    Could you please help me how to capture the exceptions above using pl/sql
    and what will be the structure of error table. it should capture eff date & end date

    or using analytic functions like this:
    select id, fname, lname, code from (
    with t as(
        select 1 id, 'scott' fname, 'higgins' lname, 001 code from dual
        union all
        select 2 id,'Mike ' fname, 'Ferrari' lname,  001  code from dual
        union all
        select 3 id,'Tom' fname, 'scottsdale' lname, 002  code from dual
        union all
        select 4 id,'Nick' fname, 'pasquale' lname, 003  code from dual
        union all
        select 5 id,'scott' fname, 'higgins' lname, 004  code from dual
        select t.*, count(*) over (partition by fname) row_count from t)
    where row_count > 1;
    select id, fname, lname, code from (
    with t as(
        select 1 id, 'scott' fname, 'higgins' lname, 001 code from dual
        union all
        select 2 id,'Mike ' fname, 'Ferrari' lname,  001  code from dual
        union all
        select 3 id,'Tom' fname, 'scottsdale' lname, 002  code from dual
        union all
        select 4 id,'Nick' fname, 'pasquale' lname, 003  code from dual
        union all
        select 5 id,'scott' fname, 'higgins' lname, 004  code from dual
        select t.*, count(*) over (partition by code) row_count from t)
    where row_count > 1;

  • Need registrati​on code for Deluxe Freecell; this software was previously registered but since hard reset, I now need to reregister

    null
    Post relates to: Tungsten E2

    Hi.. Welcome to the Palm forums.  If you need a registration code for this software you need to talk to the manufacturer, Bapsoft @ http://www.bapsoft.com/.  I assume you purchased it thru the Palm store but you have to realize they are simply the store front that has rights to sell the software for the manufacturer.  The manufacturer takes care of all support.
    Post relates to: Centro (Sprint)

  • Need code for this program in pl/sql

    Hi,
    was looking for a pl/sql code for the following case
    If there are two employees from the EMP table. i want all the names of the managers common to the two employees....
    to explain in detail : if employee1 and employee2 have the same manager mgr1....mgr1 should be displayed.
    else if employee 1 and employee2 have no immediate manager in common...meaning team leader of employee 1 and employee2 are different but the project managers for both the employee is same..in this case the project manager's name should be displayed......
    else in worst case when there are no managers common between these two employees.........the CEO who is at the highest level is common....then display CEO's name
    it's hierchiacal structure......
    thanks,
    Preethi

    Why PL/SQL? Why not look at if this can be done using SQL firstly? SQL is the preferred language for crunching Oracle data. Not PL/SQL.
    Think data sets.
    One method to do this in SQL would be to build a hierarchical list of managers for each employee. E.g.
    LEVEL MANAGER
    1     Jack
    2     John
    10     Dan the CEOOnce you have such a list for each employee, you can join these two lists on matching names. Then you simply need to find the matching join that has the lowest level.
    I'm sure there are other approaches. But unless you put together some test data, put together some SQLs and play around with this problem, you are not going to learn anything.
    And no, copying and pasting an answer that someone is inevitable to post in response is NOT learning anything new.
    So why not try and solve this problem yourself? Gain some new knowledge. That will only do your career well as your employer is after all expecting you to write the code to solve this problem - and not for members of this forum to supply the code for you.

  • Need exact code for this

    In the transformation between 0FIGL_O02(table1) and ZSPM_D01(table2), delete records in 0FIGL_O02(table1), if 0AC_DOC_NO AND 0FISCPER AND 0COMP_CODE do not exists in 0FIAP_O03(table 3).
    need code for this...i have to implement it in BW.pls give me necessary code.
    Moderator message: please do more research before asking, show what you have done when posting, use meaningful titles when posting, read the rules of engagement.
    Edited by: Thomas Zloch on Feb 24, 2012

    Hai Pavan
    Check the following Code
    tables : mara.
    data : begin of itab occurs 0,
           matnr like mara-matnr,
           mbrsh like mara-mbrsh,
           mtart like mara-mtart,
           meins like mara-meins,
           end of itab.
    select-options : S_matnr for mara-matnr.
    initialization.
    clear s_matnr.
    refresh : s_matnr.
    s_matnr-low    = '0001'.
    s_matnr-high   = '0010'.
    s_matnr-Sign   = 'I'.
    s_matnr-Option = 'BT'.
    append s_matnr.
    start-of-selection.
    select matnr
           mbrsh
           mtart
           meins
           from mara
           into table itab
           where matnr in s_matnr.
    if sy-subrc = 0.
       sort itab by matnr.
    endif.
    if not itab[] is initial.
      loop at itab.
          if itab-matnr NOT  BETWEEN s_matnr-high AND s_matnr-low.
         if sy-subrc = 0.
           write :/ 'OK'.
         else.
           write :/ 'Not OK'.
         endif.
       endif.
      endloop.
    endif.
    Thanks & regards
    Sreenivasulu P
    Message was edited by: Sreenivasulu Ponnadi

  • 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.

  • I NEED MY UNBLOCKING CODE FOR MY IPHONE 4S ,I HAVE BEEN INCONTACT WITH MY SERVICE PROVIDER AND THEY CONFIRMED THEY HAVE SENT AN EMAIL TO YOURSELF TO GET THE CODE AND NOW I NEED TO CONTACT YOU MYSELF IS THIS CORRECT AS VODAFONE DO NOT SEEM TO BE HELPING ME

    I NEED MY UNBLOCKING CODE FOR MY IPHONE 4S ,I HAVE BEEN INCONTACT WITH MY SERVICE PROVIDER AND THEY CONFIRMED THEY HAVE SENT AN EMAIL TO YOURSELF TO GET THE CODE AND NOW I NEED TO CONTACT YOU MYSELF IS THIS CORRECT AS VODAFONE DO NOT SEEM TO BE HELPING ME

    There is no such thing as an unlock code for an iPhone. It's done by restoring the phone using iTunes

  • Need code for this checkbox trigger...please

    Hi All,
    I have a checkbox in detail block where block is having No. of records displayed is 3(Three) so Checkbox and all other items are displaying thrice. I am inserting the records 1 by 1 using the following code
    Declare
    Begin
         Loop
              First_Record;
              Insert into Veri_Test values(:PNo,:c1);
              Exit When :System.Last_Record='TRUE';
              Next_Record;
         End Loop;
         COMMIT;
    End;
    Its inserting properly. no problem. But what I want is
    when i checked on 1st row of checkbox remaining two(2nd,3rd row) checkboxes should be disabled. If i uncheck 1st row checkbox then
    remaining two should be enabled. As same way
    If i click on 3rd row of checkbox remaining two(1,2) should be disabled. If i uncheck 3rd row checkbox then remaining two(1,2) should be enabled.
    Hope its clear. is it possible ? if yes can anyboxy give the code for this checkbox trigger ?
    Thanks in Advacne
    Devender

    Hello,
    Apply this in a When-Checkbox-Changed trigger:
    Declare
       -- Record being modified --
       LN$CurRec pls_integer := :system.cursor_record ;
       LN$Rec    pls_integer := 1 ;
    Begin
       If :BLOC.CB1 = 'O' Then
          -- Goto first record --
          First_record ;
          Loop
             If LN$Rec <> LN$CurRec Then
                -- record <> current record --
                :BLOC.CB1 := 'N' ;
             End if ; 
             If :system.last_record = 'TRUE' Then
                Exit ;
             End if ;
             -- Goto next record --
             Next_record ;
             LN$Rec := LN$Rec + 1 ;
          End loop ;
          -- Jump to current record --                
          Go_Record( LN$CurRec );
       End if ;
    End ;Francois

  • Needs sample ABAP code for field routine

    Dear Expert,
    There is a field "Pay Scale Group" in my DSO which stores the data in the format
    AA1/B1/CCC2/DD2/EEE1, A1/BB2/CC2/DDD3/EE2 etc. These data has to be transferred to
    InfoCube where "pay Scale Group" in the InfoCube will store the data like EEE1,EE2 etc.
    I need to write a field routine on the transformation between DSO and Cube.
    Can any one please help me with the sample ABAP code for this scenario.
    Some more examples for better understanding of the requirement:-
    Data in DSO(Source)            Data in Cube(Target)
    ===================            ===================
    AA1/B1/CCC2/DD2/EEE1            EEE1
    AAA1/BB2/CC1/DDD3/EE2           EE2
    A2/BBB2/CC2/DDD3/EEE5           EEE5
    AA2/BB1/C1/DDD3/EE3             EE3
    A3/B1/CC2/DDD1/EE4              EE4
    Many thanks in advance.
    Regards,
    Prakash
    Please do not dump your code requirements in SDN
    Edited by: Pravender on May 18, 2011 11:37 AM

    Hi,
    You can use the following code :
    Suppose the technical name of the field coming from DSO is ZPAY_SGRP.
    And also for example let me take one record, that is ZPAY_SGRP = AA1/B1/CCC2/DD2/EEE1 .
    My assumption is that there will always be 4 '/'.
    In the field routine write the below code
    data: V1(5) type c,
              V2(5) type c,
             V3(5) type c,
              V4(5) type c,
             V5(5) type c.
    data : VAR1 TYPE /BIC/OIZPAY_SGRP.
    split VAR 1  at '/' into V1 V2 V3 V4 V5.
    result = V5.
    V5 will be having the characters after the last '/' .That is V5 = EEE1.
    Hope the above reply was helpful.
    Kind Regards,
    Ashutosh Singh
    Edited by: Ashutosh Singh on May 17, 2011 3:53 PM
    Edited by: Ashutosh Singh on May 17, 2011 4:17 PM

  • A wallet needs to be configured for this instance of Application Express

    hi
    I m very new to APEX. I could create web service client with wsdl. But when service is on https i get message
    "a wallet needs to be configured for this instance of Application Express".
    I have created wallet using OWM (10.2.0.1.0) at location c:\del_sometime
    Using admin i configured APEX instance settings wallet as
    Wallet Path = file:c:\del_sometime
    And checked in database too
    SQL> ALTER SESSION SET CURRENT_SCHEMA = APEX_030200;
    Session altered.
    SQL> SELECT
    2 APEX_INSTANCE_ADMIN.GET_PARAMETER('WALLET_PATH')
    3 from dual;
    APEX_INSTANCE_ADMIN.GET_PARAMETER('WALLET_PATH')
    file:c:\del_sometime
    Any idea whats wrong? I am following steps from http://download.oracle.com/docs/cd/E14373_01/admin.32/e13371/adm_wrkspc.htm#BABFBJEA

    also whe I try following i keep getting error failure to open file. I am on XP and file is present with proper permissions.
    SQL> SELECT utl_http.request('https://support.oracle.com/',null,'file:c:\del_sometime\') from dual;
    SELECT utl_http.request('https://support.oracle.com/',null,'file:c:\del_sometime\') from dual
    ERROR at line 1:
    ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1577
    ORA-28759: failure to open file
    ORA-06512: at line 1

  • Needed example working  code for  FM"LAST_DAY_IN_PERIOD_GET"

    needed example working  code for  FM"LAST_DAY_IN_PERIOD_GET"

    Hi,
    Go through this code
    *& Report  Z_FICO_REP_SHIPMENTS
    REPORT  z_fico_rep_shipments MESSAGE-ID sd.
    TYPE-POOLS : slis.
    TABLES : vbak,
             kna1,
             likp,
             vbfa.
    *>> DEFINE global Types
    TYPES : BEGIN OF gt_vbak,
              vbeln TYPE vbeln,
              kunnr TYPE kunnr ,
              spart TYPE spart,
              audat TYPE audat,
            END OF gt_vbak,
            BEGIN OF gt_kna1,
              kunnr TYPE kunnr,
              name1 TYPE name1,
            END OF gt_kna1,
            BEGIN OF gt_likp,
              vbeln     TYPE vbeln,
              wadat_ist TYPE wadat_ist,
            END OF gt_likp,
            BEGIN OF gt_vbfa,
              vbelv     TYPE vbelv,
              erdat     TYPE erdat,
              rfwrt     TYPE rfwrt,
           END OF gt_vbfa,
            BEGIN OF gt_final,
              kunnr   TYPE kunnr,
              name1   TYPE name1,
              cumon   TYPE monat,
              trcum   TYPE rfwrt,
              trcuy   TYPE rfwrt,
              perce   TYPE rfwrt,
              fiscy   TYPE gjahr,
              ftrcum  TYPE rfwrt,
              ftrcuy  TYPE rfwrt,
              fperce  TYPE rfwrt,
            END OF gt_final.
    DATA : gwa_vbak   TYPE gt_vbak,
           gwa_kna1   TYPE gt_kna1,
           gwa_likp   TYPE gt_likp,
           gwa_vbfa   TYPE gt_vbfa,
           gwa_final  TYPE gt_final,
           gwa_sort   TYPE slis_sortinfo_alv,
           gwa_layout TYPE slis_layout_alv.    "ALV Layout
    DATA : gi_vbak    TYPE STANDARD TABLE OF gt_vbak,
           gi_kna1    TYPE STANDARD TABLE OF gt_kna1,
           gi_likp    TYPE STANDARD TABLE OF gt_likp,
           gi_vbfa    TYPE STANDARD TABLE OF gt_vbfa,
           gi_likp1   TYPE STANDARD TABLE OF gt_likp,
           gi_vbfa1   TYPE STANDARD TABLE OF gt_vbfa,
           gi_final   TYPE STANDARD TABLE OF gt_final WITH HEADER LINE,
           gi_final1  TYPE STANDARD TABLE OF gt_final WITH HEADER LINE.
    *>> DEFINE INTERNAL TABLE
    DATA : gi_fieldcat    TYPE slis_t_fieldcat_alv,   "ALV Fieldcatalog
           gi_events      TYPE slis_t_event,          "ALV EventS
           gi_sort        TYPE slis_t_sortinfo_alv ,
           gi_top_of_page TYPE slis_t_listheader.     "ALV LIST HEADER
    DATA : gv_month(2) TYPE n.
    *>> GLOBAL CONSTANTS
    CONSTANTS: gc_day(2) TYPE n VALUE 01,
               gc_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE',
               gc_x TYPE c VALUE 'X'.
    SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_monat      TYPE     monat OBLIGATORY,
                p_gjahr     TYPE     gjahr OBLIGATORY.
    SELECT-OPTIONS : s_bukrs      FOR      vbak-bukrs_vf OBLIGATORY,
                     s_vkorg     FOR      vbak-vkorg,
                     s_spart     FOR     vbak-spart     OBLIGATORY,
                     s_audat   FOR    vbak-audat NO-DISPLAY.
    SELECTION-SCREEN:END OF BLOCK b1.
    SELECTION-SCREEN:BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
    PARAMETERS: p_det RADIOBUTTON GROUP grp DEFAULT 'X' ,
              p_sum RADIOBUTTON GROUP grp.
    SELECTION-SCREEN:END OF BLOCK b2.
    START-OF-SELECTION.
    *>> Take Period And year and find starting and ending date
      PERFORM fiscal_date.
      PERFORM collect_data.
      PERFORM manipulation_collect_data.
    END-OF-SELECTION.
    *>> Sort
      PERFORM gi_sort_table.
    *>> MEARGE FIELD CATALOG USING INTERNAL TABLE
      PERFORM mearge_field_catalog.
    *>> SET EVENTS
      PERFORM set_event.
    *>> FOR ALV HEADER
      PERFORM n_top_of_page USING gi_top_of_page[].
    *>>For ALV Layout
      PERFORM build_layout.
    *>>For output display
      PERFORM alv_grid_display.
    *&      Form  fiscal_date
    FORM fiscal_date.
      TYPES : BEGIN OF lt_fisc,
                bukrs TYPE bukrs,
                periv TYPE periv,
                bumon TYPE bumon,
                butag TYPE butag,
              END OF lt_fisc,
              BEGIN OF lt_t009b,
                periv TYPE periv,
                bumon TYPE bumon,
                butag TYPE butag,
                poper TYPE poper,
               END OF lt_t009b.
      DATA : lwa_fisc  TYPE lt_fisc,
             lwa_t009b TYPE lt_t009b.
      DATA : li_fisc  TYPE STANDARD TABLE OF lt_fisc,
             li_t009b TYPE STANDARD TABLE OF lt_t009b.
      DATA : lv_date(2) TYPE c,
             lv_mont(2) TYPE c,
             lv_year(4) TYPE c.
      SELECT bukrs periv FROM t001
                         INTO TABLE li_fisc
                         WHERE bukrs IN s_bukrs.
      IF sy-subrc EQ 0.
        SELECT * FROM t009b
                 INTO CORRESPONDING FIELDS OF TABLE li_t009b
                 FOR ALL ENTRIES IN li_fisc
                 WHERE periv EQ li_fisc-periv .
        IF sy-subrc NE 0.
          CLEAR li_t009b.
        ENDIF.
      ELSE.
        CLEAR li_fisc.
      ENDIF.
      SORT li_t009b BY periv poper.
      LOOP AT li_fisc INTO lwa_fisc.
        READ TABLE li_t009b INTO lwa_t009b WITH KEY periv = lwa_fisc-periv
                                                    poper = '001'
                                           BINARY SEARCH.
        IF sy-subrc = 0.
          s_audat-option = 'EQ'.
          s_audat-sign   = 'I'.
          CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'
            EXPORTING
              i_gjahr = p_gjahr
              i_periv = lwa_t009b-periv
              i_poper = lwa_t009b-poper
            IMPORTING
              e_date  = s_audat-low.
        ENDIF.
        CLEAR lwa_t009b.
        READ TABLE li_t009b INTO lwa_t009b WITH KEY periv = lwa_fisc-periv
                                                    poper = '012'
                                           BINARY SEARCH.
        IF sy-subrc = 0.
          CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
            EXPORTING
              i_gjahr = p_gjahr
              i_periv = lwa_t009b-periv
              i_poper = lwa_t009b-poper
            IMPORTING
              e_date  = s_audat-high.
        ENDIF.
        CLEAR lwa_t009b.
        READ TABLE li_t009b INTO lwa_t009b WITH KEY periv = lwa_fisc-periv
                                                    poper = p_monat
                                            BINARY SEARCH.
        IF sy-subrc = 0.
          lv_date = s_audat-high+6(2).
          lv_mont = s_audat-high+4(2).
          lv_year = s_audat-high(4).
          lv_mont = lwa_t009b-bumon.
          lv_date = lwa_t009b-butag.
          CONCATENATE lv_year lv_mont lv_date INTO s_audat-high.
          APPEND s_audat.
          CLEAR: lwa_fisc,lwa_t009b,lv_date,lv_mont,lv_year.
        ENDIF.
      ENDLOOP.
      DELETE ADJACENT DUPLICATES FROM s_audat.
    ENDFORM.                    "fiscal_date
    *&      Form  collect_data
    FORM collect_data .
      SELECT vbeln kunnr spart audat
          FROM vbak
          INTO TABLE gi_vbak
          WHERE audat    GE s_audat-low  AND
                audat    LT s_audat-high AND
                vkorg    IN s_vkorg AND
                spart    IN s_spart AND
                bukrs_vf IN s_bukrs.
      IF sy-subrc EQ 0.
        SELECT kunnr name1
        FROM kna1
        INTO TABLE gi_kna1
        FOR ALL ENTRIES IN gi_vbak
        WHERE kunnr EQ gi_vbak-kunnr.
        IF sy-subrc NE 0.
          CLEAR gi_kna1.
        ENDIF.
        SELECT vbeln wadat_ist
        FROM likp
        INTO TABLE gi_likp
        WHERE wadat_ist  GE s_audat-low  AND
              wadat_ist  LT s_audat-high .
        IF sy-subrc EQ 0.
          SELECT vbelv erdat rfwrt
          FROM vbfa
          INTO TABLE gi_vbfa
          FOR ALL ENTRIES IN gi_likp
          WHERE vbeln   = gi_likp-vbeln AND
                 ( vbtyp_n = 'M' OR
                vbtyp_n = 'H' ) .
          IF sy-subrc NE 0.
            CLEAR gi_vbfa.
          ENDIF.
        ELSE.
          CLEAR gi_likp.
        ENDIF.
        PERFORM change_date.
        SELECT vbeln wadat_ist
        FROM likp
        INTO TABLE gi_likp1
        WHERE wadat_ist  GE s_audat-low  AND
              wadat_ist  LT s_audat-high .
        IF sy-subrc EQ 0.
          SELECT vbelv erdat rfwrt
          FROM vbfa
          INTO TABLE gi_vbfa1
          FOR ALL ENTRIES IN gi_likp1
          WHERE vbeln   = gi_likp1-vbeln AND
                 ( vbtyp_n = 'M' OR
                vbtyp_n = 'H' ) .
          IF sy-subrc NE 0.
            CLEAR gi_vbfa.
          ENDIF.
        ELSE.
          CLEAR gi_likp.
        ENDIF.
      ELSE.
        MESSAGE i261.
        LEAVE SCREEN.
      ENDIF.
    ENDFORM.                    "collect_data
    *&      Form  Manipulation_collect_data
    FORM manipulation_collect_data.
      SORT gi_vbak BY vbeln.
      SORT gi_kna1 BY kunnr.
      LOOP AT gi_vbak INTO gwa_vbak.
        MOVE-CORRESPONDING gwa_vbak TO gwa_final.
        READ TABLE gi_kna1 INTO gwa_kna1 WITH KEY kunnr = gwa_vbak-kunnr
                                       BINARY SEARCH.
        IF sy-subrc EQ 0.
          gwa_final-name1 = gwa_kna1-name1.
        ENDIF.
      ENDLOOP.
    *    v_month = gwa_vbak-audat+4(2).
    *    gwa_final-cumon = p_monat.
    *    gwa_final-fiscy = p_gjahr.
    *    IF v_month = p_monat.
    *      CLEAR wa_ckmlhd.
    *      READ TABLE i_ckmlhd INTO wa_ckmlhd WITH KEY matnr = wa_vbap-matnr
    *                                                  bwkey = wa_vbap-werks
    *                                                  BINARY SEARCH.
    *      IF sy-subrc EQ 0.
    *        CLEAR i_nckmlcr.
    *        READ TABLE i_nckmlcr INTO wa_nckmlcr
    *                             WITH KEY kalnr = wa_ckmlhd-kalnr
    *                             BINARY SEARCH.
    *        IF sy-subrc EQ 0.
    *          gwa_final-peinh = wa_nckmlcr-peinh.
    *          gwa_final-kzwi6 = wa_vbap-kzwi6 - wa_vbap-kzwi5.
    *          gwa_final-kzwi5 = wa_vbap-kzwi5.
    *          gwa_final-totre = gwa_final-kzwi6 + gwa_final-kzwi5.
    *          gwa_final-actco = ( wa_nckmlcr-pvprs / wa_nckmlcr-peinh ) *
    *                            wa_vbap-kwmeng.
    *          gwa_final-profit = gwa_final-totre - gwa_final-actco.
    *          gwa_final-prows  = ( gwa_final-profit - gwa_final-kzwi6 ) *
    *100.
    *        ENDIF.
    *      ENDIF.
    *    ELSE.
    *      CLEAR wa_ckmlhd.
    *      READ TABLE i_ckmlhd INTO wa_ckmlhd WITH KEY matnr = wa_vbap-matnr
    *                                                bwkey = wa_vbap-werks
    *                                                BINARY SEARCH.
    *      IF sy-subrc EQ 0.
    *        READ TABLE i_ckmlcr INTO wa_ckmlcr
    *                             WITH KEY kalnr = wa_ckmlhd-kalnr
    *                             BINARY SEARCH.
    *        IF sy-subrc NE 0.
    *          CLEAR wa_ckmlcr.
    *        ENDIF.
    *        CLEAR wa_nckmlcr.
    *        READ TABLE i_nckmlcr INTO wa_nckmlcr
    *                             WITH KEY kalnr = wa_ckmlhd-kalnr
    *                             BINARY SEARCH.
    *        IF sy-subrc EQ 0.
    *          gwa_final-fkzwi6  = wa_vbap-kzwi6 - wa_vbap-kzwi5.
    *          gwa_final-fkzwi5  = wa_vbap-kzwi5.
    *          gwa_final-ftotre  = gwa_final-fkzwi6 + gwa_final-fkzwi5.
    *          gwa_final-factco  = ( ( wa_nckmlcr-pvprs / wa_ckmlcr-peinh )
    *                               * wa_vbap-kwmeng ) / wa_nckmlcr-count.
    *          gwa_final-fprofit = gwa_final-ftotre - gwa_final-factco.
    *         gwa_final-fprows  = ( gwa_final-fprofit - gwa_final-kzwi6 ) *
    *100
    *        ENDIF.
    *      ENDIF.
    *    ENDIF.
    *    APPEND gwa_final TO gi_final.
    *    CLEAR : gwa_final,wa_nckmlcr,wa_ckmlcr,wa_ckmlhd,
    *            gwa_vbak,wa_vbap,gwa_kna1.
    *  ENDLOOP.
    *  gwa_final-matnr = space.gwa_final-vbeln = space.
    *  MODIFY gi_final FROM gwa_final TRANSPORTING vbeln matnr
    *                                WHERE matnr NE space.
    *  SORT gi_final BY kunnr vbeln matnr.
    *  IF p_sum = gc_x.
    *    LOOP AT gi_final INTO gwa_final.
    *      COLLECT gwa_final INTO gi_final1.
    *    ENDLOOP.
    *    CLEAR gwa_final.REFRESH gi_final.
    *    gi_final[] = gi_final1[].
    *  ENDIF.
    ENDFORM.                    "manipulation_collect_data
    *&      Form  change_date
    FORM change_date.
      DATA : lv_date(2) TYPE c,
             lv_mont(2) TYPE c,
             lv_year(4) TYPE n.
      lv_date = s_audat-low+6(2).
      lv_mont = s_audat-low+4(2).
      lv_year = s_audat-low(4).
      lv_year = lv_year - 1.
      CONCATENATE  lv_year lv_mont lv_date INTO s_audat-low.
      CLEAR : lv_date ,lv_mont,lv_year.
      lv_date = s_audat-high+6(2).
      lv_mont = s_audat-high+4(2).
      lv_year = s_audat-high(4).
      lv_year = lv_year - 1.
      CONCATENATE  lv_year lv_mont lv_date INTO s_audat-high.
      CLEAR : lv_date ,lv_mont,lv_year.
    ENDFORM.                    " change_date
    *&      Form  gi_sort_table
    FORM gi_sort_table.
      IF p_det = gc_x.
        gwa_sort-spos = '1'.
        gwa_sort-fieldname = 'KUNNR'.
        gwa_sort-tabname = 'gi_final'.
        gwa_sort-up = gc_x.
        gwa_sort-subtot  = gc_x.
        APPEND gwa_sort TO gi_sort.
        CLEAR gwa_sort.
        gwa_sort-spos = '2'.
        gwa_sort-fieldname = 'NAME1'.
        gwa_sort-tabname = 'gi_final'.
        gwa_sort-up = gc_x.
        APPEND gwa_sort TO gi_sort.
    *  ELSE.
    *    gwa_sort-spos = '1'.
    *    gwa_sort-fieldname = 'KUNNR'.
    *    gwa_sort-tabname = 'gi_final'.
    *    gwa_sort-up = gc_x.
    *    APPEND gwa_sort TO gi_sort.
    *    CLEAR gwa_sort.
    *    gwa_sort-spos = '2'.
    *    gwa_sort-fieldname = 'NAME1'.
    *    gwa_sort-tabname = 'gi_final'.
    *    gwa_sort-up = gc_x.
    *    gwa_sort-group = gc_x.
    *    gwa_sort-subtot  = gc_x.
    *    APPEND gwa_sort TO gi_sort.
      ENDIF.
    ENDFORM.                    "gi_sort_table
    *&      Form  mearge_field_catalog
    FORM mearge_field_catalog .
    *>> LOCAL WORK AREA FOR FIELDCATALOG
      DATA : lwa_fieldcata TYPE slis_fieldcat_alv.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'KUNNR'.
    *  lwa_fieldcata-col_pos      = 1.
      lwa_fieldcata-key          = 'X'.
      lwa_fieldcata-key_sel      = 'X'.
      lwa_fieldcata-ref_tabname  = 'KNA1'.
      lwa_fieldcata-seltext_l    = 'Customer No.'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'NAME1'.
    *  lwa_fieldcata-col_pos      = 2.
      lwa_fieldcata-ref_tabname  = 'KNA1'.
      lwa_fieldcata-seltext_l    = 'Customer Name'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      IF p_det = gc_x.
        CLEAR lwa_fieldcata.
        lwa_fieldcata-fieldname    = 'VBELN'.
    *    lwa_fieldcata-col_pos      = 3.
        lwa_fieldcata-ref_tabname  = 'VBAK'.
        lwa_fieldcata-seltext_l    = 'Sales Order Number'.
        APPEND lwa_fieldcata TO gi_fieldcat.
        CLEAR lwa_fieldcata.
        lwa_fieldcata-fieldname    = 'MATNR'.
    *    lwa_fieldcata-col_pos      = 4.
        lwa_fieldcata-ref_tabname  = 'VBAK'.
        lwa_fieldcata-seltext_l    = 'Material No.'.
        APPEND lwa_fieldcata TO gi_fieldcat.
      ENDIF.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'KWMENG'.
      lwa_fieldcata-col_pos      = 5.
      lwa_fieldcata-ref_tabname  = 'VBAP'.
      lwa_fieldcata-do_sum       = 'X'.
      lwa_fieldcata-seltext_l    = 'Order Quantity'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'PEINH'.
      lwa_fieldcata-col_pos      = 6.
      lwa_fieldcata-ref_tabname  = 'CKMLCR'.
      lwa_fieldcata-text_fieldname = 'PEINH'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'CUMON'.
      lwa_fieldcata-col_pos      = 7.
      lwa_fieldcata-ref_tabname  = 'VBKPF'.
      lwa_fieldcata-seltext_l    = 'Month'.
      lwa_fieldcata-no_sum       = gc_x.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'KZWI6'.
      lwa_fieldcata-col_pos      = 8.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Costed Sales'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'KZWI5'.
      lwa_fieldcata-col_pos      = 9.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Surcharges'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'TOTRE'.
      lwa_fieldcata-col_pos      = 10.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Total Revenues'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'ACTCO'.
      lwa_fieldcata-col_pos      = 11.
      lwa_fieldcata-ref_tabname  = 'VBAP'.
      lwa_fieldcata-seltext_l    = 'Actual Cost for Period'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'PROFIT'.
      lwa_fieldcata-col_pos      = 12.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Profit'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'PROWS'.
      lwa_fieldcata-col_pos      = 13.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Profit % w/surcharge'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'FISCY'.
      lwa_fieldcata-col_pos      = 14.
    *  lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Fiscal Year'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'FKZWI6'.
      lwa_fieldcata-col_pos      = 15.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Costed Sales'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'FKZWI5'.
      lwa_fieldcata-col_pos      = 16.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Surcharges'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'FTOTRE'.
      lwa_fieldcata-col_pos      = 17.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Total Revenues'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'FACTCO'.
      lwa_fieldcata-col_pos      = 18.
      lwa_fieldcata-ref_tabname  = 'VBAP'.
      lwa_fieldcata-seltext_l    = 'Actual Cost for Period'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'FPROFIT'.
      lwa_fieldcata-col_pos      = 19.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Profit'.
      APPEND lwa_fieldcata TO gi_fieldcat.
      CLEAR lwa_fieldcata.
      lwa_fieldcata-fieldname    = 'FPROWS'.
      lwa_fieldcata-col_pos      = 20.
      lwa_fieldcata-ref_tabname  = 'VBAK'.
      lwa_fieldcata-seltext_l    = 'Profit % w/surcharge'.
      APPEND lwa_fieldcata TO gi_fieldcat.
    ENDFORM.                    " mearge_field_catalog
    *&      Form  set_event
    FORM set_event .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 1
        IMPORTING
          et_events   = gi_events.
      SORT gi_events BY name.
    *-- To read Top of Page event
      PERFORM read_events USING slis_ev_top_of_page gc_top_of_page.
    ENDFORM.                    " set_event
    *&      Form  top_of_page
    FORM n_top_of_page USING lp_top_of_page TYPE slis_t_listheader.
      DATA: lwa_listhead TYPE slis_listheader,
            lv_ccode TYPE string,
            lv_sales TYPE string,
            lv_divis TYPE string.
      CONCATENATE 'From : ' s_bukrs-low  ' To: ' s_bukrs-high INTO lv_ccode.
      CONCATENATE 'From: ' s_vkorg-low       ' To: ' s_vkorg-high INTO lv_sales.
      CONCATENATE 'From: ' s_spart-low       ' To: ' s_spart-high INTO lv_divis.
      CLEAR lwa_listhead.
      lwa_listhead-typ  = 'H'.
      lwa_listhead-info = text-003.
      APPEND lwa_listhead TO lp_top_of_page.
      CLEAR lwa_listhead.
      lwa_listhead-typ  = 'S'.
      lwa_listhead-key  = 'Month'.
      lwa_listhead-info = p_monat.
      APPEND lwa_listhead TO lp_top_of_page.
      CLEAR lwa_listhead.
      lwa_listhead-typ  = 'S'.
      lwa_listhead-key  = 'Year'.
      lwa_listhead-info = p_gjahr.
      APPEND lwa_listhead TO lp_top_of_page.
      CLEAR lwa_listhead.
      lwa_listhead-typ  = 'S'.
      lwa_listhead-key  = 'Company Code'.
      lwa_listhead-info = lv_ccode.
      APPEND lwa_listhead TO lp_top_of_page.
      CLEAR lwa_listhead.
      lwa_listhead-typ  = 'S'.
      lwa_listhead-key  = 'Sales Org'.
      lwa_listhead-info = lv_sales.
      APPEND lwa_listhead TO lp_top_of_page.
      CLEAR lwa_listhead.
      lwa_listhead-typ  = 'S'.
      lwa_listhead-key  = 'Division'.
      lwa_listhead-info = lv_divis.
      APPEND lwa_listhead TO lp_top_of_page.
      IF p_det = gc_x.
        CLEAR lwa_listhead.
        lwa_listhead-typ  = 'A'.
        lwa_listhead-info = text-004.
        APPEND lwa_listhead TO lp_top_of_page.
      ELSE.
        CLEAR lwa_listhead.
        lwa_listhead-typ  = 'A'.
        lwa_listhead-info = text-005.
        APPEND lwa_listhead TO lp_top_of_page.
      ENDIF.
    ENDFORM.                    "top_of_page
    *&      Form  TOP_OF_PAGE
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          i_logo             = 'ENJOYSAP_LOGO'
          it_list_commentary = gi_top_of_page.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  build_layout
    FORM build_layout .
      gwa_layout-no_input          = gc_x.
      gwa_layout-colwidth_optimize = gc_x.
      gwa_layout-zebra             = gc_x.
    ENDFORM.                    "build_layout
    *&      Form  alv_grid_display
    FORM alv_grid_display .
    * Function module to display ALV report
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-repid
          is_layout          = gwa_layout
          it_fieldcat        = gi_fieldcat[]
          it_sort            = gi_sort
          i_save             = 'A'
          it_events          = gi_events[]
        TABLES
          t_outtab           = gi_final
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " alv_grid_display
    *&      Form  read_events
    FORM read_events  USING  pr_events    TYPE slis_alv_event-name
                             pr_eventname TYPE slis_formname.
      DATA: lwa_event TYPE slis_alv_event.
      CLEAR lwa_event.
      READ TABLE gi_events INTO lwa_event
                          WITH KEY name = pr_events BINARY SEARCH.
      IF sy-subrc = 0.
        MOVE pr_eventname TO lwa_event-form.
        MODIFY gi_events FROM lwa_event
                        TRANSPORTING form
                        WHERE name = pr_events.
      ENDIF.
    ENDFORM.                    " read_events
    Regards
    Sandipan

  • HT1222 What is a pass code,for this next up date.never been asked that before

    What's the pass code for this next update.never been asked that in the past

    The passcode you need to enter is the passcode you set on your device. It is the passcode that you enter when you turn on your iPad or awaken it from sleep after and Auto lock.
    If you do not know or remember your password and did not store it somewhere then you will have to restore your device.
    http://support.apple.com/kb/HT1212

  • APP-ALR-04106: Please correct the user-defined SQL statement for this alert

    Hi All,
    I have created an alert for engineering module in R12. It got tested and was working fine. when the user testing it, while trigger the alert getting the error, "APP-ALR-04106: Please correct the user-defined SQL statement for this alert".
    when verified the alert, it got verified and ran also. It parsed the query successfully and when run it fetched few records.
    Need help in resolving the issue.
    Thanks in advance.
    Regards,
    sri
    Edited by: user10939296 on Jan 18, 2010 1:16 AM

    Hi Sri;
    I have already gone through the Note: 948037.1. But this note is related to 11i. The solution provided in the Note is for 11i.
    I am facing this issue in R12. Is this patch applicable to R12?I belive its not. But u can check Solution part 4 for your instance, at least it can give you idea. The other note in metalink related bug and all for R11 too.
    I belive its better way to rise Sr while waiting other forum user response to that thread
    Regard
    Helios

Maybe you are looking for

  • Error while loading data to Infocube using DTP.

    Dear All I am facing problem while uploading data in Zinfocube. Up to PSA the data is loaded and not showing any error but when we try to upload the data from PSA to INFOCUBE through a DTP, It ens up showing error message (Error while updating to tar

  • My PC is no longer visible by my mac

    my PC is no longer visible by my mac on the home network i created sometime ago. I did change some power settings on my PC but I do not see how this would effect network connection. It shows that my PC is online, also my Mac is as well. How ever my M

  • How can I download  software from the App store a second time?

    Hi, I purchased OS 10.7 from the App store because I no longer had the original discs from my computer. I downloaded it on to one of my computers, but now I want to put it on a second computer but the App Store say "You've already downloaded this " a

  • Info on report painter

    hi all, We have a requirement of report painter in our project.Any help in thei regard is highly appreciated. Any docs giving the basics of report painter is highly appreciated. Regards, Rajashree

  • How to handle hierarchies in process chain

    Hi All, I am designing the process chain for a master GL account number . It has attribute hierarchy and text. I am successfully able to create the process chain for the attribute and text . But when i add the infopackage for the hierachy I am confus