Regarding ooabap statements

METHOD onactionshow .
DATA:
Node Info
rootnode_info TYPE REF TO if_wd_context_node_info,
Context Nodes
dyn_node TYPE REF TO if_wd_context_node,
tabname_node TYPE REF TO if_wd_context_node,
String (for table name)
tablename TYPE string.
get node info of context root node
rootnode_info = wd_context->get_node_info( ).
Get the name of the table to be created
tabname_node = wd_context->get_child_node( name = 'INPUT' ).
tabname_node->get_attribute( EXPORTING name = 'TABLENAME'
IMPORTING value = tablename ).
TRANSLATE tablename TO UPPER CASE.
create sub node named TEST1 of structure (tablename)
<b>cl_wd_dynamic_tool=>create_nodeinfo_from_struct( 
parent_info = rootnode_info
node_name = tablename
structure_name = tablename
is_multiple = abap_true ).</b>
<b>DATA: stru_tab TYPE REF TO data.
FIELD-SYMBOLS:
<tab> TYPE table.</b>
create internal table
<b>CREATE DATA stru_tab TYPE TABLE OF (tablename).</b>
<b>ASSIGN stru_tab->* TO <tab>.</b>
Get table content
<b>SELECT * FROM (tablename) INTO CORRESPONDING FIELDS OF TABLE <tab>.</b>
get instance of new node
dyn_node = wd_context->get_child_node( name = tablename ).
Bind internal table to context node.
dyn_node->bind_table( <tab> ).
Please explain me the above statements which are in bold.
if u feel anything more to explain please tell me.
I am facing a lot of problem in undrestsnding those.
points will be rewarded immediately
with Regards,
lokesh@EDS

hi ,
if u r chosing a single database table ,u will create a node name and its attribute in component controller or in view controller.example mara as node name and its attribute as matnr ersda and ernam.then right clicking on the UI element click create binding and select ur mode of display by selecting text view or dropdownbyindex.but in dynamic case, at runtime user will give any table name and any filter condition of selecting its field .so it is impossible  to create 88000 table  as node and select all fields. so now give   child node name as 'tablename'  with type string .
in component controller it has one parent node by default.if we create a new node it comes as child of patent node 'context'.
class cl_wd_dynamic_tool contain 4 methods in that method create_nodeinfo_from_struct  has all importing parameter
1. give the reference parent node name which is stored in a varible rootnode_info.
(rootnode_info = wd_context->get_node_info( ). if u go to attribute column, u can found 3 interfaces with respective data refernces like wd_this,wd_context. if u dblclick if_wd_context_node u can find all info regarding the name of context, and any other newly created parameters.)
2.give structure name or table name which is is given at runtime.
3. for accepting many fields or with only one field.
in abap oops dynamic condition is attained by 2 ways 1. data reference and 2.field symbols.
data reference  alias name is "address of".
field symbol   alias name is "value at".(place holder)
DATA: stru_tab TYPE REF TO data.
this means u r creating a variable stru_tab which is having a properties of data.
assume "data" is a type or class , .here only u declare only variable ,it has no content till  the statement create data.(memory space will allocate only after the  execution of create data.)
FIELD-SYMBOLS:
<tab> TYPE table.
u can declare a field symbol with generic type "any " keyword or "table" keyword.
dynamic means u should mention within parenthesis (table name).
conventiontional way of declaring internal table is
data: <internal table name > type table of <table name>.
here u dont know the type table u r going to pass.
but definetly ,it contain data, so declare stru_tab as data .
DATA: stru_tab TYPE REF TO data.
in this step only variable name name is create not space.
CREATE DATA stru_tab TYPE TABLE OF (tablename).
in this step space is create for variable but only internal table name is declared.but no space
ASSIGN stru_tab->* TO <tab>.
internal table is of table format .so u declared field symbol as table.
stru_tab is address of data
<tab> is value at table.
then select query
thanx
zenthil

Similar Messages

  • Regarding case statement and decode function

    Hi Experts,
    I have question.....regarding case statement and decode statement....
    Can you please explain me that which one will be efficient,to place in insert statement...
    insert statement(
    (case when ........then
                         case when ....then
                         else
                         end)
      else
    end)
    or
    insert statement(
    case when.....then
    decode(....)
    else
    end)
    Can you people explain me which one is more efficient method?
    Thanks in advance.......

    The are major differences to talk about in case of CASE vs DECODE, but performance wise both are pretty much the same.
    Have a look at Tom's thread
    Ask Tom &amp;quot;better performance - case or decode&amp;quot;
    I would suggest to use CASE whenever possible. Don't worry about the performance part.

  • Regarding SUBMIT statement - to process a program in background

    Hi All,
    I have issue of submitting a program in background and also i need to process the no of records come from program by splitting them by 1000(n).
    First of all i have program whose code is like following:
    <b>REPORT  z_update_material_master.</b>
    TYPES: BEGIN OF t_marc,
              matnr LIKE marc-matnr,   "Material Number
              werks LIKE marc-werks,   "Plant
              beskz LIKE marc-beskz,   "Procurement Type
              sobsl LIKE marc-sobsl,   "Special procurement type
              fhori LIKE marc-fhori,   "Scheduling Margin Key for Floats
              dzeit LIKE marc-dzeit,   "In-house production time
              plifz LIKE marc-plifz,   "Planned delivery time in days
              webaz LIKE marc-webaz,   "Goods rcpt processing time
              pwwrk LIKE t460a-wrk02,  "Production plant in planned order
              erhor LIKE t436a-erhor,  "Opening periodr
              zlt   TYPE p DECIMALS 3, "Total replenishment lead time
              ztlt  TYPE p DECIMALS 3, "Total replenishment lead time
              wzeit TYPE p DECIMALS 3, "Total replenishment lead time
              upd(1) TYPE c,            "UPDATE INDICATER
              ind    TYPE c,
         END OF t_marc.
    DATA: i_marc  TYPE SORTED TABLE OF t_marc INITIAL SIZE 0
                   WITH HEADER LINE
                   WITH NON-UNIQUE KEY matnr werks,
          i_marc_rpt LIKE i_marc OCCURS 0 WITH HEADER LINE.
    DATA: l_plantdata  LIKE bapi_marc,
          l_headdata   LIKE bapimathead,
          l_plantdatax LIKE bapi_marcx,
          l_tabix      LIKE sy-tabix.
    CONSTANTS: c_s TYPE c VALUE 'S',
               c_x TYPE c VALUE 'X'.
    DATA i_temp_bapi_return LIKE bapi_matreturn2
                            OCCURS 0 WITH HEADER LINE.
    DATA BEGIN OF i_temp_zppe0091_01 OCCURS 0.
            INCLUDE STRUCTURE zppe0091_01.
    DATA: END OF i_temp_zppe0091_01.
    DATA: l_tab_nam LIKE rstable-tabname VALUE 'ZPPE0091_01'.
    SELECT * FROM zppe0091_01
             INTO CORRESPONDING FIELDS OF TABLE i_temp_zppe0091_01.
    IF sy-subrc EQ 0.
      LOOP AT i_temp_zppe0091_01 WHERE upd = c_x.
        l_tabix = sy-tabix.
        l_headdata-material     = i_temp_zppe0091_01-matnr.
        l_plantdata-plant       = i_temp_zppe0091_01-werks.
        l_plantdata-replentime  = i_temp_zppe0091_01-wzeit.
        l_plantdatax-replentime = c_x.
        CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
          EXPORTING
            headdata       = l_headdata
            plantdata      = l_plantdata
            plantdatax     = l_plantdatax
          TABLES
            returnmessages = i_temp_bapi_return.
        IF NOT i_temp_bapi_return[] IS INITIAL.
          READ TABLE i_temp_bapi_return WITH KEY type = c_s.
          IF sy-subrc EQ 0.
            i_marc_rpt-matnr = i_temp_zppe0091_01-matnr.
            i_marc_rpt-werks = i_temp_zppe0091_01-werks.
            APPEND i_marc_rpt. CLEAR i_marc_rpt.
          ELSE.
            i_temp_zppe0091_01-upd = space.
            MODIFY i_temp_zppe0091_01 INDEX l_tabix TRANSPORTING upd.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDIF.
    Now i want to call this program from another program that is already exists by using <b>SUBMIT</b>
    statement in background and i need to process this program by dividing records by <b>1000</b> into seperate session.
    how can i do it. Can any body tell me the solution with syntax.
    I might get lot of records from above program so i want to split them into diffrent sessions based on number of records(1000).
    can any body give me the solution.
    Thanks in advance.
    Thanks & Regards,
    Rayeez.

    Try implementing the following code. Use the code accordingly...
      MOVE 100 TO c_recs_b4_split.
      IF num_src_trans > c_recs_b4_split.
        target_break = num_src_trans / p_thread.
      ELSE.
        target_break = num_src_trans + 1.
      ENDIF.
      wa_subbch  = 1.
      last_index = 1.
    No batch split required if total recrods less than 100
      IF num_src_trans < c_recs_b4_split.
        CLEAR  : range_btch.
        REFRESH: range_btch.
        IF wa_subbch = p_thread.
          target_break = num_src_trans.
        ENDIF.
        MOVE 'S_SRCTRN' TO range_wa-selname.
        MOVE 'S'        TO range_wa-kind   .
        MOVE 'I'        TO range_wa-sign   .
        MOVE 'EQ'       TO range_wa-option .
        LOOP AT itab_src_trans INTO st_src_trans.
          MOVE st_src_trans-src_tran_id TO range_wa-low.
          APPEND range_wa TO range_btch.
        ENDLOOP.
    Step 3 Submit the batch.
        v_job_no = v_job_no + 1.
        PERFORM submit_tp_jobs.
      ELSE.
        DO.
    Step 1 Collect data for the target count
          CLEAR  : range_btch.
          REFRESH: range_btch.
         IF wa_subbch = p_thread.
           target_break = num_src_trans.
         ENDIF.
          MOVE 'S_SRCTRN' TO range_wa-selname.
          MOVE 'S'        TO range_wa-kind   .
          MOVE 'I'        TO range_wa-sign   .
          MOVE 'EQ'       TO range_wa-option .
          IF wa_subbch = p_thread.
            target_break = num_src_trans - v_cnt .
          ENDIF.
          LOOP AT itab_src_trans INTO st_src_trans FROM last_index.
            last_index = sy-tabix.
            batch_total = batch_total + 1.
            IF batch_total <= target_break.
              MOVE st_src_trans-src_tran_id TO range_wa-low.
              APPEND range_wa TO range_btch.
            ELSE.
              EXIT.
            ENDIF.
            v_cnt = v_cnt + 1.
          ENDLOOP.
          CLEAR batch_total.
    Step 2 Submit the batch.
          v_job_no = v_job_no + 1.
          PERFORM submit_tp_jobs.
          ADD 1 TO wa_subbch.
          IF wa_subbch > p_thread.
            EXIT.
          ENDIF.
        ENDDO.
      ENDIF.
    FORM submit_tp_jobs .
      DATA : l_jobcount LIKE tbtcjob-jobcount,
             l_jobrelease LIKE btch0000-char1,
             w_job_flag VALUE 'X',
             w_process_mode,
             w_user_print_params  LIKE pri_params.
      l_jobname = p_batch.
      CONCATENATE 'TP_'  l_jobname '_' v_job_no INTO l_jobname.
      CONDENSE l_jobname NO-GAPS.
      w_process_mode = ' '.
      IF NOT range_btch[] IS INITIAL.
        PERFORM create_post_ctrl.
        CALL FUNCTION 'JOB_OPEN'
          EXPORTING
            jobname  = l_jobname
          IMPORTING
            jobcount = l_jobcount.
        SUBMIT zfi_pc_tran_proc
          AND RETURN
               WITH p_batch  = p_batch
               WITH p_jobid  = p_jobid
               WITH p_mode   = w_process_mode
               WITH p_subbch = wa_subbch
               WITH p_jobq   = p_jobid
               WITH p_cntlmt = p_cntlmt
               WITH p_tpiop  = p_iop
               WITH SELECTION-TABLE range_btch
               USER sy-uname
               VIA JOB l_jobname NUMBER l_jobcount
               TO SAP-SPOOL
               SPOOL PARAMETERS w_user_print_params
               WITHOUT SPOOL DYNPRO.
        CALL FUNCTION 'JOB_CLOSE'
          EXPORTING
            jobcount             = l_jobcount
            jobname              = l_jobname
            strtimmed            = 'X'
          IMPORTING
            job_was_released     = l_jobrelease
          EXCEPTIONS
            cant_start_immediate = 1
            invalid_startdate    = 2
            jobname_missing      = 3
            job_close_failed     = 4
            job_nosteps          = 5
            job_notex            = 6
            lock_failed          = 7
            invalid_target       = 8
            OTHERS               = 9.
      ENDIF.
    ENDFORM.                    " submit_tp_jobs
    Pl. add the points....

  • Regarding types statement in ECC 6.0...plz reply..urgent

    Hi,
    I am copying a program which is in<b> 4.7 to ECC 6.0,</b>i am facing error regarding <b>structures with types<b>...
    The following code in<b> 4.7</b>
    <b>DATA:BEGIN OF W_BMM00.
            INCLUDE STRUCTURE BMM00.
    DATA:END OF W_BMM00.
    DATA:BEGIN OF W_BMMH1.
            INCLUDE STRUCTURE BMMH1.
    DATA:END OF W_BMMH1.
    DATA:BEGIN OF W_BMMH7.
            INCLUDE STRUCTURE BMMH7.
    DATA:END OF W_BMMH7.
    DATA : BEGIN OF TAB_TLINE OCCURS 0.
            INCLUDE STRUCTURE TLINE.
    DATA : END OF TAB_TLINE.</b>
    i have written the same in <b>ECC6.0</b> as below
    <b>TYPES:BEGIN OF tw_bmm00.
            INCLUDE STRUCTURE bmm00.
    TYPES:END OF tw_bmm00 ,
          tt_bmm00 TYPE STANDARD TABLE OF tw_bmm00.
    TYPES:BEGIN OF tw_bmmh1.
            INCLUDE STRUCTURE bmmh1.
    TYPES:END OF tw_bmmh1 ,
              tt_bmmh1 TYPE STANDARD TABLE OF tw_bmmh1.
    TYPES:BEGIN OF tw_bmmh7.
            INCLUDE STRUCTURE bmmh7.
    TYPES:END OF tw_bmmh7 ,
          tt_bmmh7  TYPE STANDARD TABLE OF tw_bmmh7.
    TYPES:BEGIN OF tw_TAB_TLINE.
            INCLUDE STRUCTURE TLINE.
    TYPES:END OF tw_TAB_TLINE,
          tt_tab_tline TYPE STANDARD TABLE OF tw_tab_tline.
    lw_bmm00 TYPE tw_bmm00,
          lt_bmm00 TYPE tt_bmm00,
          lw_bmmh1 TYPE tw_bmmh1,
          lt_bmmh1 TYPE tt_bmmh1,
          lw_bmmh7 TYPE tw_bmmh7,
          lt_bmmh7 TYPE tt_bmmh7,
          lw_tab_thead TYPE tw_tab_thead,
          lt_tab_thead TYPE tt_tab_thead,</b>....
    when i check SLIN errors i am getting the following errors<b>...plz resolve</b>..
    <b>The current ABAP command is obsolete
    <b>Within classes and interfaces, you can only use "TYPE" to refer to ABAP Dictionary
    types (not "LIKE" or "STRUCTURE").</b></b>
    <b></b>

    include strture not allowed.
    rules.
    ABAP Development under Unicode
    Prior to Unicode the length of a character was exactly one byte, allowing implicit typecasts or memory-layout oriented programming. With Unicode this situation has changed: One character is no longer one byte, so that additional specifications have to be added to define the unit of measure for implicit or explicit references to (the length of) characters.
    Character-like data in ABAP are always represented with the UTF-16 - standard (also used in Java or other development tools like Microsoft's Visual Basic); but this format is not related to the encoding of the underlying database.
    A Unicode-enabled ABAP program (UP) is a program in which all Unicode checks are effective. Such a program returns the same results in a non-Unicode system (NUS) as in a Unicode system (US). In order to perform the relevant syntax checks, you must activate the Unicode flag in the screens of the program and class attributes.
    In a US, you can only execute programs for which the Unicode flag is set. In future, the Unicode flag must be set for all SAP programs to enable them to run on a US. If the Unicode flag is set for a program, the syntax is checked and the program executed according to the rules described in this document, regardless of whether the system is a US or a NUS. From now on, the Unicode flag must be set for all new programs and classes that are created.
    If the Unicode flag is not set, a program can only be executed in an NUS. The syntactical and semantic changes described below do not apply to such programs. However, you can use all language extensions that have been introduced in the process of the conversion to Unicode.
    As a result of the modifications and restrictions associated with the Unicode flag, programs are executed in both Unicode and non-Unicode systems with the same semantics to a large degree. In rare cases, however, differences may occur. Programs that are designed to run on both systems therefore need to be tested on both platforms.
    Other Changes
    1. Bit Statements
    2. Adding Field Sequences
    3. Loops with VARY and VARYING
    4. Creating Subroutines
    5. Saving Programs
    6. Assigning Types for GET/SET PARAMETER
    7. Unreachable Statements
    8. Function Modules with Incorrect Parameter Names
    1. Bit Statements
    Previously, the system checked for the bit statements SET BIT i OF f [TO g] and GET BIT i OF f [INTO g]whether the field f is character-type; X fields, X strings, and flat structures are usually regarded as character-type. For Unicode programs this is no longer useful, because the types X and XSTRING no longer count as character-type and the bit by bit access to character-type fields or structures is no longer platform-independent. Therefore, with these operations in Unicode programs, the field f must be type X or XSTRING.
    For the bit mask operations f O x, f Z x, and f M x you could previously use all number-type and hence all character-type types for the left operand f. In Unicode programs, the f operand must now be type X or XSTRING.
    2. Adding Field Sequences
    When adding field sequences, restrictions apply to the following statements in Unicode:
    ADD n1 THEN n2 UNTIL nz [ ACCORDING TO sel ] GIVING m ...
    ADD n1 THEN n2 UNTIL nz TO m [ RANGE str ].
    1. The operands n1, n2, and nz must be type-compatible with one another.
    2. The distance between nz and n1 must be an integral multiple of the distance between n2 and n1.
    3. A syntax or runtime error occurs if the fields n1, n2, and nz are not in a structure. This structure must be recognizable statically or its valid area must be marked explicitly using the RANGE addition.
    4. At runtime, the system ensures that the RANGE area is not left.
    ADD n1 FROM i1 GIVING m [ RANGE str ].
    1. Field n1 must be within the structure. The structure must be explicitly defined using the RANGE addition if it is not recognizable statically.
    2. For this variant, the system also checks at runtime whether n1 and the addressed values are within the structure.
    3. Loops
    Loops with the VARY or VARYING addition are also problematic in Unicode, since a type-a access to memory contents cannot be ensured and memory can be overwritten inadvertently.
    DO ... VARYING f FROM f1 NEXT f2.
    For this statement, the fields f, f1, and f2 must be type-compatible with each other. To prevent memory contents being overwritten, a RANGE for valid accesses is introduced implicitly or explicitly for the following statements:
    DO ... TIMES VARYING f FROM f1 NEXT f2 [ RANGE f3 ].
    WHILE ... VARY f FROM f1 NEXT f2 [ RANGE f3 ].
    A syntax or runtime error is caused if f1 or f2 are not included in f3. If the RANGE addition is missing, it is defined implicitly from FROM f1 NEXT f2 as follows:
    1. If both f1 and f2 are statically recognizable components of the same structure, the valid RANGE area is defined from the smallest structure that comprises f1 and f2.
    2. A syntax error is triggered if it is recognizable statically that f1 and f2 are not part of the same structure.
    3. A valid area must be defined explicitly using the RANGE addition if the connection between f1 and f2 is not recognizable statically.
    If you specify a deep structure as the RANGE addition, the system checks for every loop pass that there are no field references, object references, tables, or strings in the area read.
    4. Creating Subroutines
    When automatically generating subroutines using the statement GENERATE SUBROUTINE POOL itab NAME name, the generated program inherits the content of the Unicode flag of the generating program.
    5. Saving Programs
    When automatically generating programs using the statement INSERT REPORT prog FROM itab, default values are set for the TRDIR entry as before. Amongst other things, this statement has the new addition UNICODE ENABLING uc, with which the Unicode flag of the inserted report receives the value of uc. If this addition is missing, the following applies:
    1. A Unicode program creates a Unicode program.
    2. A non-Unicode program in turn creates a non-Unicode program.
    3. A non-Unicode program becomes a Unicode program if it is overwritten by a Unicode program.
    4. A Unicode program remains a Unicode program if it is overwritten by a non-Unicode program.
    6. Assigning Types for GET/SET PARAMETER
    For the statements GET PARAMETER ID pid FIELD f and GET PARAMETER ID pid FIELD f, f must be character-type. You can use the EXPORT and IMPORT statements for storing non-character-type fields and structures.
    7. Unreachable Statements
    In Unicode programs, unreachable statements cause a syntax error. In non-Unicode programs, there was previously only a syntax warning.
    8. Function Modules with Incorrect Parameter Names
    In Unicode programs, calling a function module, whose parameter names are specified statically as a literal or constant, causes an exception that can be handled if an incorrect parameter name was specified. This only applies to function modules that are not called via Remote Function Call. In non-Unicode programs, an incorrect name was previously ignored.
    http://service.sap.com/instguides
    --> SAP Business Suite Applications
    --> SAP ERP
    --> mySAP ERP 2005
    --> Upgrade
    --> Upgrade Documentation - mySAP ERP 2005 SR2
    There choose your database and operating system.
    If you're looking for functional details check
    http://service.sap.com/releasenotes

  • Regarding LOOP Statement in ABAP

    Hi,
    I have small question regarding <b>LOOP ..... ENDLOOP</b> statement against <b>SY-SUBRC</b> Check.
    I have a loop as below:
    <b> LOOP AT i_vbap WHERE vbeln = i_vbak-vbeln.
        Some Code
        ENDLOOP.
        IF sy-subrc <> 0.
          APPEND i_sdata.
          CLEAR i_sdata.
        ENDIF.</b>
    Is the above <b>Code/Syntax</b> is correct one.
    Can we use <b>SY-SUBRC</b> Check against <b>LOOP ...  ENDLOOP</b> statement.
    Is this the right way of writing the code as per standards.
    Can anybody give sujjestions regarding the same.
    Thanks in advance.
    Thanks & Regards,
    Prasad.

    Hi Prasad,
    Yes, you could use sy-subrc after the endloop. For example:
    loop at itab1 where kunnr = itab2-kunnr.
    some conditions...
    endloop.
    if sy-subrc = 0.
    write: 'Success!'.
    else.
    leave program.
    endif.
    if you press F1 while highlighting the LOOP statement here are the meaning of sy-subrc in loop...endloop.
    SY-SUBRC = 0:
    At least one loop pass was processed.
    SY-SUBRC = 4:
    The loop was not processed because the table contains no entries or no entries satisfied the conditions.
    Regards!

  • Regarding Bounds Statement in ABAP HR

    Hi Guys!!!!
    I have been trying to work on provide, end provide in an HR program and then when I went into f1 of the statement I found an simple provide,end provide which I am pasting here:
    PROVIDE FIELDS col3 FROM itab1 INTO wa1
                                   VALID flag1
                                   BOUNDS col1 AND col2
            FIELDS col3 FROM itab2 INTO wa2
                                   VALID flag2
                                   BOUNDS col1 AND col2
            BETWEEN 2 AND 14.
    Now, I am really not able to understand the meaning of BOUNDS here, What does it actually do?? Could someone please explain. I searched in SCN and could not find any apt reply actually.
    Regards,
    Vishwa.

    hi,
    PROVIDE FIELDS {*|{comp1 comp2 ...}}
                   FROM itab1 INTO wa1 VALID flag1
                   BOUNDS intliml1 AND intlimu1
                   [WHERE log_exp1]
            FIELDS {*|{comp1 comp2 ...}}
                   FROM itab2 INTO wa2 VALID flag2
                   BOUNDS intliml2 AND intlimu2
                   [WHERE log_exp2]
            BETWEEN extliml AND extlimu
            [INCLUDING GAPS].
    ENDPROVIDE.
    To be able to process internal tables using PROVIDE, all tables itab1 itab2 ... must be fully typed index tables and contain two special columns that have the same data type (d, i, n, or t) for all relevant tables. For every table you must specify the names intliml1 intliml2 ... and intlimu1 intlimu2 ... of these columns using the addition BOUNDS.
    The columns intliml1 intliml2 ... and intlimu1 intlimu2 ... in every row of the relevant internal tables must contain values that can be interpreted as limits of closed intervals. Within a table, the intervals specified in these columns must not overlap and must be sorted in ascending order. The intervals therefore make up a unique key for every row.
    Regards,
    Arjun.

  • Regarding select statement

    Hi Expert,
    Is this select statement is ok ?
    actually i have doubt in where clause when it mix both AND and OR without braces
    SELECT SINGLE * FROM vbfa WHERE
                 vbeln = s_bkpf-awkey AND
                   vbtyp_v = 'C'   OR
                   vbtyp_v = 'E'   OR
                   vbtyp_v = 'M'  OR
                   vbtyp_v = 'J'   OR
                   vbtyp_v = 'R' .
    thanks and regards
    abaper.

    SELECT SINGLE * FROM vbfa WHERE
    vbeln = s_bkpf-awkey AND ( vbtyp_v = 'C' OR
    vbtyp_v = 'E' OR
    vbtyp_v = 'M' OR
    vbtyp_v = 'J' OR
    vbtyp_v = 'R' ).
    OR YOU CAN USE
    SELECT SINGLE * FROM vbfa WHERE
    vbeln = s_bkpf-awkey AND
    vbtyp_v IN ('C', 'E', 'M', 'J', 'R') .
    CHECK THE SPACE NO SPACE BETWEEN  ('C' AFTER , ONE SPACE AND NO SPACE BETWEEN 'R'). GIVE THE SPACE CORRECTLY ...
    REGARDS
    SHIBA DUTTA

  • Comment regarding new statement of direction

    Hi all,
    I've just read the new statement of direction regarding Oracle Workflow (http://www.oracle.com/technology/products/ias/workflow/workflow_sod.html). Especially regarding the standalone version it is a great pitty that Oracle will kick such a good and stable product into the garbage can.
    I'm not convinced that BPEL can replace Oracle Workflow. Also I'm missing a real migration path. It's not only Workflow that needs to be re-implemented. For example our custom application would have be to re-implemented as well because Workflow is one of the central components.
    So if I read "In addition, Oracle are now recommending that customers who have Oracle Workflow workflows in development or production that they plan to continue to enhance in the future should begin re-implementing those in BPEL." or "While there will be some development costs associated with the migration of existing processes from Oracle Workflow to Oracle BPEL Process Manager..." this brings me to some critical thaughts about the future of our custom application.
    What are your thaughts and comments?
    Best regards
    Matthias

    They also removed the entry about charting (Charting - Provide for chart rendering without using Flash (to enable display on mobile devices).)... Guess this will be in the next release (4.2) or next MAJOR release (5.0??)..
    Thank you,
    Tony Miller
    Webster, TX
    On the road of life...There are 'windshields', and there are 'bugs'
    (splat!)
    "Squeegees Wanted"
    If this question is answered, please mark the thread as closed and assign points where earned..

  • Regarding SUBMIT Statement

    Hi,
    I am calling a batch job (B) (in back groung) using SUBMIT statement, from a report program (Say A). But I have to Pass some internal tables and few variable to the Batch job (B).
    Can someone tell me how I can pass the Internal tables and variables ? Is it possible to pass through SUBMIT statement only? Is there some other than the use of Import-Export statement?
    Thanks and regards,
    Pankaj Bist.

    Hi pankaj,
      SUBMIT <PROGRAM NAE>   =   ds_name            " Creating batch input session
                      WITH  fl_check  =   fl_check
                      WITH  os_xon    =   os_xon
                      WITH  xnonunic  =   xnonunic
                      WITH  callmode  =   callmode
                      WITH  max_comm  =   max_comm
                      WITH  pa_xprot  =   pa_xprot
                      WITH  anz_mode  =   anz_mode
                      WITH  update    =   update
                      WITH  xpop      =   xpop
                      WITH  xlog      =   xlog
                      WITH  xinf      =   xinf  AND RETURN.
    u can pass the variables like this.
    the variables which i have pass to the program all are the selection screen aprameteers of the program .
    I hope this will work for you.
    Thanks,

  • Regarding select statement on structure

    hi,
    can we write select on structure?.........i hav  to get condition record from konv(which is a structure) based on ekpo-ebeln.
    for this i hav written code like this
    IF NOT it_ekpo IS INITIAL.
        SELECT knumv
               kposn
               kschl
               kbetr
               waers
               KWERT
          FROM konv
          INTO TABLE it_konv
           FOR ALL ENTRIES IN it_ekpo
          WHERE knumv = it_ekpo-ebeln
            and kposn = it_ekpo-ebelp
            AND ( kschl EQ 'ZPF3' OR kschl EQ 'ZVAT'
                OR kschl EQ 'ZCSR' OR kschl EQ 'ZFR3' ).
        IF sy-subrc EQ 0.
          SORT it_konv BY knumv kposn.
        ENDIF.
      ENDIF.

    Hi
    You cannot write the Select statement on Structures but yo have a table for that structure where you will get the same data.
    You can use komv & konp table instead of structure .
    IF NOT IT_EKPO IS INITIAL.
      SELECT KNUMV
             KPOSN
             KSCHL
             KBETR
             WAERS
             KWERT
             FROM KONV
             INTO TABLE IT_KONP
             FOR ALL ENTRIES IN IT_EKPO
             WHERE KNUMV = IT_EKPO-EBELN
             AND ( KSCHL EQ 'ZPF3' OR KSCHL EQ 'ZVAT'
             OR KSCHL EQ 'ZCSR' OR KSCHL EQ 'ZFR3' ).
    ENDIF.
    Thanks & regards,,
    Dileep .C

  • Regarding collect statement - Production report

    Dear Experts,
    I've the following requirement
    A ) I'm creating a ALV report from Z table where i want the summary of the qty across different processing type like CT , ST , WS  & FG .
    B ) For each processing types i want the total qty to be displayed in different columns.
    C ) When i'm trying to execute , no data is displaying..
    Piece of coding is as below..  Request help to clear the below issue..
    REPORT  ZPP_PRD_REPORT.
    TABLES : ZPP_ACTUAL_PRD.
    TYPES : BEGIN OF TY_ACTUAL_PRD,
             KDAUF TYPE KDAUF,
             KDPOS TYPE KDPOS,
             WERKS TYPE WERKS_D,
             PROCTYP TYPE ZDE_PP_PROCTYP,
             AUFNR TYPE AUFNR,
             MEINS TYPE MEINS,
       END OF TY_ACTUAL_PRD.
       TYPES : BEGIN OF TY_FINAL,
             KDAUF TYPE KDAUF,
             KDPOS TYPE KDPOS,
             WERKS TYPE WERKS_D,
             PROCTYP TYPE ZDE_PP_PROCTYP,
             AUFNR TYPE AUFNR,
             MEINS TYPE MEINS,
         END OF TY_FINAL.
       DATA : GT_ACTUAL_PRD TYPE TABLE OF TY_ACTUAL_PRD,
              GS_ACTUAL_PRD TYPE TY_ACTUAL_PRD,
              GT_ACTUAL_PRD_COLLECT TYPE TABLE OF TY_ACTUAL_PRD.
       DATA : GT_FINAL TYPE TABLE OF TY_FINAL,
              GS_FINAL TYPE TY_FINAL.
        DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
               GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
          DATA : GT_EVENTS TYPE SLIS_T_EVENT.
           DATA : GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
           DATA : GS_REPID LIKE SY-REPID.
      SELECT-OPTIONS : S_KDAUF FOR ZPP_ACTUAL_PRD-KDAUF,
                        S_KDPOS FOR ZPP_ACTUAL_PRD-KDPOS.
      START-OF-SELECTION.
                     PERFORM GET_DATA.
                     PERFORM POPULATE_DATA1.
    *&      Form  GET_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM GET_DATA .
       SELECT
              KDAUF
              KDPOS
              WERKS
              PROCTYP
              AUFNR
              MEINS
    FROM ZPP_ACTUAL_PRD INTO TABLE GT_ACTUAL_PRD WHERE KDAUF IN S_KDAUF AND
                                                  KDPOS IN S_KDPOS.
    ENDFORM.                    " GET_DATA
    *&      Form  POPULATE_DATA1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM POPULATE_DATA1 .
       LOOP AT GT_ACTUAL_PRD INTO GS_ACTUAL_PRD.
         GS_FINAL-KDAUF = GS_ACTUAL_PRD-KDAUF.
         GS_FINAL-KDPOS = GS_ACTUAL_PRD-KDPOS.
         GS_FINAL-WERKS = GS_ACTUAL_PRD-WERKS.
         GS_FINAL-PROCTYP = GS_ACTUAL_PRD-PROCTYP.
         GS_FINAL-AUFNR = GS_ACTUAL_PRD-AUFNR.
         GS_FINAL-MEINS = GS_ACTUAL_PRD-MEINS.
       COLLECT GS_ACTUAL_PRD INTO GT_ACTUAL_PRD_COLLECT.
    ENDLOOP.
    ENDFORM.                    " POPULATE_DATA1
    *&      Form  BUILD_FIELDCATALOG
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM BUILD_FIELDCATALOG .
       GS_FIELDCAT-FIELDNAME = 'KDAUF'.
       GS_FIELDCAT-SELTEXT_M = 'SALESORDER'.
       GS_FIELDCAT-OUTPUTLEN = 10.
       GS_FIELDCAT-DO_SUM = 'X'.
       GS_FIELDCAT-NO_ZERO = 'X'.
       APPEND GS_FIELDCAT TO GT_FIELDCAT.
       CLEAR GS_FIELDCAT.
       GS_FIELDCAT-FIELDNAME = 'KDPOS'.
       GS_FIELDCAT-SELTEXT_M = 'SALESITEM'.
       GS_FIELDCAT-OUTPUTLEN = 10.
       GS_FIELDCAT-DO_SUM = 'X'.
       GS_FIELDCAT-NO_ZERO = 'X'.
       APPEND GS_FIELDCAT TO GT_FIELDCAT.
       CLEAR GS_FIELDCAT.
       GS_FIELDCAT-FIELDNAME = 'WERKS'.
       GS_FIELDCAT-SELTEXT_M = 'PLANT'.
       GS_FIELDCAT-OUTPUTLEN = 10.
       GS_FIELDCAT-DO_SUM = 'X'.
       GS_FIELDCAT-NO_ZERO = 'X'.
       APPEND GS_FIELDCAT TO GT_FIELDCAT.
       CLEAR GS_FIELDCAT.
       GS_FIELDCAT-FIELDNAME = 'PROCTYP'.
       GS_FIELDCAT-SELTEXT_M = 'TYPE'.
       GS_FIELDCAT-OUTPUTLEN = 10.
       GS_FIELDCAT-DO_SUM = 'X'.
       GS_FIELDCAT-NO_ZERO = 'X'.
       APPEND GS_FIELDCAT TO GT_FIELDCAT.
       CLEAR GS_FIELDCAT.
    GS_FIELDCAT-FIELDNAME = 'AUFNR'.
       GS_FIELDCAT-SELTEXT_M = 'ORDER'.
       GS_FIELDCAT-OUTPUTLEN = 10.
       GS_FIELDCAT-DO_SUM = 'X'.
       GS_FIELDCAT-NO_ZERO = 'X'.
       APPEND GS_FIELDCAT TO GT_FIELDCAT.
       CLEAR GS_FIELDCAT.
       GS_FIELDCAT-FIELDNAME = 'MENGE'.
       GS_FIELDCAT-SELTEXT_M = 'QTY'.
       GS_FIELDCAT-OUTPUTLEN = 10.
       GS_FIELDCAT-DO_SUM = 'X'.
       GS_FIELDCAT-NO_ZERO = 'X'.
       APPEND GS_FIELDCAT TO GT_FIELDCAT.
       CLEAR GS_FIELDCAT.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  ALV_DISPLAY
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM ALV_DISPLAY .
       GS_REPID = SY-REPID.
       IF GS_REPID IS NOT INITIAL.
         CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
             I_CALLBACK_PROGRAM = GS_REPID
             IT_FIELDCAT        = GT_FIELDCAT[]
             IT_EVENTS          = GT_EVENTS[]
             I_SAVE             = 'A'
             I_DEFAULT          = 'X'
           TABLES
             T_OUTTAB           = GT_ACTUAL_PRD_COLLECT
           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.
       ENDIF.
    ENDFORM.                    " ALV_DISPLAY
    Z Data base table looks as below..
    Best rgds/thnks,
    Srikanth.

    Hi  Sankara ,
        Collect statement is used to add all the numeric components to the corresponding values of all the existing rows in an internal table , with the same key . The data type can be I , P , F .
        Please ensure that there is a comman value  in all the rows .
       check this out and let me know if any issues
    Regards,
    Kavitha

  • Query regarding Concatenate statement functionality from ECC 6.0 to 46B ver

    Hi,
    I got new requirement ie I have to copy reports from ECC6.0 to 46B version. While copying I faced number of issues and I am not clear for below one.
    concatenate i_result1-result p_delim into i_result1-result respecting blanks. ( this is in ECC6.0)
    now my requirement is I have to use the same functionality in 46B version without respecting blanks the statement is working but I need the functinality of respecting blanks also.
    Thanks in advance.
    -Kumar.

    Try like this in 46B:
    concatenate i_result1-result p_delim into i_result1-result SEPARATED BY SPACE.
    Regards,
    Naimesh Patel

  • Just a FYI regarding Case statements in ORacle 8i in pl/sql

    Well..I saw numerous posts in this forum regarding not being able to do case statement within pl/sql. Well..you can do
    that using dynamic SQL. IT works like a champ.

    Hi,
    Try first to (re)compile ll invalid objects. then
    you can run:
    select owner,type,count(*) from all_errors
    group by owner,typeif you still have uncompiled objects, then report the different errors:
    select * from all_errors...

  • Regarding select Statement in Partition

    Hi Friend,
    I have one doubt about Partition.
    CREATE TABLE list_part (
    deptno NUMBER(10),
    deptname VARCHAR2(20),
    quarterly_sales NUMBER(10,2),
    state VARCHAR2(2))
    PARTITION BY LIST (state) (
    PARTITION q1_northwest VALUES ('OR', 'WA') TABLESPACE part1,
    PARTITION q1_southwest VALUES ('AZ', 'CA', 'NM') TABLESPACE part2,
    PARTITION q1_northeast VALUES ('NY', 'VT', 'NJ') TABLESPACE part1,
    PARTITION q1_southeast VALUES ('FL', 'GA') TABLESPACE part2,
    PARTITION q1_northcent VALUES ('MN', 'WI') TABLESPACE part1,
    PARTITION q1_southcent VALUES ('OK', 'TX') TABLESPACE part2);
    I would create one table like in above example
    My doubt is how can i Select the data in particular tablespace For Example i'm selecting tablespace part1
    Give some example.
    Regards,
    Suresh Kumar

    You can only select from tables (or views).
    Tables are the logical representation of your data.
    Tablespaces are the physical storage of your data.
    When you select you don't care where the bits and bytes are coming from.
    You can of course match your select with a certain table partition.

  • Regarding summing statement in scripts

    Hi,
    please give one small example code for SUMMING statement in SAP Scripts.
    Thanks,
    Srinivas

    Hi,
    /:SUMMING &NETPR& INTO V_TOTAL
    loop
      write form for main window
    endloop.
    For every time(loop pass) the value will be added to v_total ,this will be defined in script.
    Regards,
    Ferry Lianto

Maybe you are looking for

  • Error in RWB

    Hi while i am monitoring in RWB under message monitoring Status System Error Error Category XI_J2EE_ADAPTER_FILE Error Code PROCESSING_ERROR It is in adapter engine   In auditlog i am getting error like this Delivery of the message to the application

  • Wifi not working because case is kryptonite...

    I recently bought 3 iPhone 4s for my family, but one iPhone 4s could not locate the Wi-Fi in our home while the other 2 had no issues with it, I contacted sprint, and went to there corporate store, after complete resets and numerous deactivations and

  • Exporting/deploying app preferences from computer to computer...

    I need to install 24 CS4 design premium in my workflow. I want to fully adjust preferences in all CS4 applications in one PC and import them to all other CS4 computers. I dont think only color setting, I mean edit/preferences menu. Only for adjusting

  • One purchase on iPad + iPod? With two accounts but same credit card?

    My daughter (10) recently decided that after years of saving her allowance money, she would buy an iPod Touch. I just ordered my first iPad. Now, this iPad is meant as a family iPad. She has her own iTunes account, but it is based on my credit card a

  • RFID - SAP AII

    Hi all, Need some infomation on SAP AII and also how to relate RFID with SAP AII and also SAP Data base, How the data will be filtered in SAP AII? If anyone knows regarding this let me know Thanks, -Teena.