String concatenate

i am trying to concatenate the string with a ; if it is not present.
But i am getting error...PLS-00363
Can somebody help me. Is there any other way of doing this.
Procedure Servstr(String1 IN varchar2 ......)
Begin
select nvl( nvl(length (String1),0) - nvl(length (replace (String1,';')),0),0) into v_cnt from dual;
If v_cnt<1 Then
String1:=String1||';';
End If;
End;
......

Hi,
If String1 is na IN parameter, then you can't change it.
Depending on what you want to do, you can make a local variable that starts out as a copy of String1, but can be changed. Declare it like this:
local_String1   VARCHAR2 (32767) := String1;
sunil_dba wrote:i am trying to concatenate the string with a ; if it is not present.
But i am getting error...PLS-00363
Can somebody help me. Is there any other way of doing this.
Procedure Servstr(String1 IN varchar2 ......)
Begin
select nvl( nvl(length (String1),0) - nvl(length (replace (String1,';')),0),0) into v_cnt from dual;In PL/SQL, you don't have to use the dual table very much.
The statement above can be done like this:
v_cnt := LENGTH ('X' || String1)
       - LENGTH (REPLACE ( 'X' || String1
             );Concatenating the 'X' guartantees that LENGTH will never return NULL.
Starting in Oracle 11, you can use REGEXP_COUNT to make it even simpler:
v_cnt := REGEXP_COUNT (String1, ';');However, if the only reason you are calculating v_cnt is to see if String1 contains a ';' or not, you can simply say
IF  String1  LIKE '%;%'  THEN
    ...

Similar Messages

  • Hex string and normal string concatenat​e issue

    Hello,
    what i have is a hex string and a normal string which i want to concatenate into one string.  the problem is that in the output concatenated string you need to select either "normal display" or  "hex display" in the properties.  the problem is if you select hex display then the normal string is converted into hex and if you select normal display then the hex value is not correct.  is there a way to display the hex value in normal display mode?
    attached is a vi showing the problem
    Attachments:
    hex to string.vi ‏7 KB

    lfoitek wrote: ...  i am creating a state machine and then translating it into string representation ... i just can't figure out how to do the conversions to display the correct output.
    If by "correct output", you mean you want something like 4bytes (0xBADDF00D) converted to 8bytes ("BADDF00D" in normal display), then there are several ways ...
    Message Edited by Donald on 08-31-2006 04:17 PM
    =====================================================
    Fading out. " ... J. Arthur Rank on gong."
    Attachments:
    HexHeadaches.jpg ‏24 KB

  • Converting multiline text string to single line

    How do I convert a multiline text string into a single line text string

    Hi Bart,
    what's a multiline text string?
    1) You have an array of string: simply use "string concatenate" to convert from array to scalar string.
    2) Your string contains CR and/or NL characters: use "Search/Replace..." for this string, replace all EndOfLine chars by space (or which char you may prefer)...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Array of Boolean to String

    Hello All,
    I have a small coding challenge that has been whipping me all day.   I have a 19 element boolean array that I would like to convert to a string without delimiters("0000000000000000000").    Within a for loop I use a "Select" followed by a "Number To Decimal String."   Once outside the loop then use the "Array To Spreadsheet String" function on the indexed output.    I tried using a blank delimiter input on the "Array To Spreadsheet String" function but that reverts back to tabs.   Bummer.   I'll keep plugging away trying different functions and constructs, but this feels harder than it really should be.    Any fresh prespectives would be greatly appreciated!
    Sincerely,
    Zach
    Solved!
    Go to Solution.
    Attachments:
    array_of_clusters_to_XLS (SubVI).vi ‏31 KB

    super-neuron wrote:
      I have a 19 element boolean array that I would like to convert to a string without delimiters("0000000000000000000").
    "Boolean to 0,1" - > "Number to decimal string" -> "concatenate array". No loop needed.
    EDIT: looks like smercurio beat me to it.
    Message Edited by altenbach on 08-05-2008 02:09 PM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    BooleanArrayToText.vi ‏8 KB
    BooleanArrayToText.png ‏9 KB

  • String with Trailing Space in a 4.7 / Basis 620 system

    Hi
    My customer is using SAP 4.7(Enterprise Management Version) / SAP BASIS Release 6.20 (Kernel 640).
    We have a requirement to print a product label using a 2D Datamatrix barcode following HIBC standards.  We are using a custom development object (Z function module) that builds the barcode string (variable length string) using a Mod43 calculated check digit as the last character of the string.  One of the valid check digits is a "space" character as the last character of this barcode string.
    Everything in our solution is working fine, except for the situation of the "space" check digit character at the end.  We are running into an ABAP syntax limitation when we are trying to concatenate the calculated check digit onto the barcode string.
    For example, we have a barcode value "+M53210250 " (within the quotes).  This string ends with a SPACE character at the end.  We are calculating the barcode value (some fixed elements + SAP material number, batch, etc.), then calculating the check digit, and concatenating the check digit onto the end of the initial barcode string value.
    I have tried this in a higher version system and am able to make it work by using the statement CONCATENATE RESPECTING BLANKS.  This syntax is not available with WebAS 620 however.
    Here are the attempts we have made:
    *Get HIBC 2D Barcode String
      CONCATENATE E_HIBC_2D_BC L_CHECK_DIGIT INTO E_HIBC_2D_BC.
    IF L_CHECK_DIGIT = SPACE.
    The following attempts does not work
    CONCATENATE with SPACE at end
    Concatenate HIBC SPACE and a dummy variable like 'TEST' into HIBC builds a space in between the dummy and HIBC
    and then when i split it the space is lost again.
    Insert SPACE in the beginning bulding a new variable with 0(1) space followed by HIBC and then SHIFT CIRCULAR BY 1 place
    It will work only if moved to a variable of length which is exactly HIBC + 1 char in length then by default the last char is SPACE.
    Use a replacement variable which is not a HIBC Check Digit like # & ! ? ^ or other for SPACE
    ECC 5.0 and HIGHER
    *CONCATENATE {dobj1 dobj2 ...}|{LINES OF itab}
               INTO result
               [IN {BYTE|CHARACTER} MODE]
               [SEPARATED BY sep]
               [RESPECTING BLANKS].
    *4.7 Version *
    *CONCATENATE f1 ... fn INTO g.
    *1. ... SEPARATED BY h
    *2. ... IN BYTE MODE
    *3. ... IN CHARACTER MODE
    Having the customer upgrade to ECC 5.0 is not feasible to solve this.
    If anyone has any alternative ideas on how to manage this variable length string and respect the trailing space, I would appreciate it.
    I have searched the forums but the only solutions that are close deal with outputting to a file during a download or FTP, or else mention the newer syntax of CONCATENTATE with the option RESPECTING BLANKS, but that is not available in this release.

    If you could predict how long the string is (assuming you might determine whether the last element length is shorter than the db length), you could try to insert your check digit based upon fieldname+your_calculated_length(1) = checkdigit.
    for example if batch is 3 cahr and you have '50' in the data, you could calculate as lv_len = strlen( the value ) .
    lv_len = lv_len + 1.
    move checkdigit to barcodefield+lv_len(1).
    Perhaps something like this would allow you to work around.  At any rate, if you can figure out if there's supposed to be one or ?? blanks on the end, specifying the position by +offset(columns) should do the trick, instead of the concatenate.

  • Concatenate main vi and sub vi data

    Is it possible to concatenate the output string of main vi and sub vi data? 

    Yes, both are string data types and i used the string concatenate function in our previous projects.
    I have not yet implemented the logic. My main objective is, in my main vi i have two sub vi's corresponding to two controls. If i click on control-1 sub vi-1 will popup and i will make some changes. And some changes in second sub vi also. Finally i have to concatenate the both sub vi's outputs and main vi output and send to FPGA board.
    Kindly provide the example vi for my requirements.
     

  • Disappearing Service Interfaces and Broken Concatenate Functions,  Oh My!

    Hello everyone,
    So in a customer's test system I have a solution with an XML service interface. That was working fine on Friday, e.g. you could select it as the interface used when uploading a new file, could schedule the run and it'd do what it was meant to. I come back to it today and it's disappeared from the list of possible service interfaces when uploading a file. So I delete the existing service interface, recreate it, all is well. Then just now I create a service interface for a different business object in a different solution, and suddenly neither are appearing in the list of possible service interfaces! What gives?
    And on an unrelated note, the string Concatenate() function seems to be broken, or at least it was yesterday. Initialising a string with a bit of text then typing, for example, "variableName.Concatenate("more text");" meant the string was empty, but typing "variableName = variableName + "more text";" worked fine. Good work, SAP, good work.
    EDIT: sticking both bits of work (2x custom BO, 2x scripts, 2x service interfaces) in the same solution makes both service interfaces appear in the file input screen. So my guess is that 1502 managed to bork how service interfaces deal with multiple solutions...

    Welcome to this forum. This is a BT domestic customer to customer help forum, any messages posted here do not go to BT.
    Its possible one of the forum members may be able to help you get your problem fixed.
    If you would like help, then please post a help request on the Broadband Speed and Connections board. Thanks
    There are some useful help pages here, for BT Broadband customers only, on my personal website.
    BT Broadband customers - help with broadband, WiFi, networking, e-mail and phones.

  • Formatting a String into Readable Text

    Folks,
    I have searched for an FM or code snippet that will help me do this but no luck so far so hopefully you can help.
    I am using the READ_TEXT FM to bring back in a table of 175 entries with a max of 132 length.
    I want to output this table onto a form which has a max length of 255 characters.
    An example is probably best.
    I receive:
    STANDARD CONDITIONS FOR THE PURCHASE OF GOODS AND/OR SERVICES
    1 Definitions
    u201CThe Companyu201D the company trading as XXXXX XXXXX XXX or any of its
    subsidiary companies described as the purchaser in the Contract;
    u201CContractu201D means any contract agreed by the parties for the supply of
    And want to output:
    STANDARD CONDITIONS FOR THE PURCHASE OF GOODS AND/OR SERVICES
    1 Definitions
    u201CThe Companyu201D the company trading as XXXXX XXXXX XXX or any of its subsidiary companies described as the purchaser in the Contract;
    u201CContractu201D means any contract agreed by the parties for the supply of
    I hope this makes sense? I want to use the maximum amount 255 characters possible to me without splitting words in half. Any advice greatly appreciated.

    Thanks Guys,
    Please find below sample code which hopefully somone may find useful, but please note, I had to implement note 1407684 for this to work even though we are on version 701. Many Thanks.
    CONSTANTS: lc_readid TYPE thead-tdid VALUE 'ST',
               lc_readobj TYPE thead-tdobject VALUE 'TEXT'.
    TYPES: BEGIN OF ty_formatted_text,
                      line(255),
           END OF ty_formatted_text.
    DATA: lv_readname TYPE thead-tdname,
          lv_langutxt TYPE sy-langu,
          lt_line TYPE TABLE OF tline,
          ls_line TYPE tline,
          lt_line_ahead TYPE TABLE OF tline,
          ls_line_ahead TYPE tline,
          lv_tabix TYPE sy-tabix,
          ls_termsandcond_text TYPE soli,
          lt_termsandcond_text TYPE soli_tab,
          lv_textline(1024),
          lt_formatted_text TYPE TABLE OF ty_formatted_text,
          ls_formatted_text TYPE ty_formatted_text.
    lv_langutxt = sy-langu.
    CONCATENATE 'ZPOTERMSCONDITIONS_' 'P002' INTO lv_readname.
    CLEAR: lt_line[], ls_line.
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        id                      = lc_readid
        language                = lv_langutxt
        name                    = lv_readname
        object                  = lc_readobj
      TABLES
        lines                   = lt_line
      EXCEPTIONS
        id                      = 1
        language                = 2
        name                    = 3
        not_found               = 4
        object                  = 5
        reference_check         = 6
        wrong_access_to_archive = 7
        OTHERS                  = 8.
    lt_line_ahead[] = lt_line[].
    LOOP AT lt_line INTO ls_line.
      "Read Next Line to Check if its a new paragraph
      lv_tabix = sy-tabix + 1.
      CLEAR ls_line_ahead.
      READ TABLE lt_line_ahead INTO ls_line_ahead INDEX lv_tabix.
      "New Paragraph or end of text
      IF ls_line_ahead-tdformat = '*' OR sy-subrc = 4.
        IF lv_textline IS INITIAL. "Current line is the start of a paragraph
          ls_termsandcond_text-line = ls_line-tdline.
          APPEND ls_termsandcond_text TO lt_termsandcond_text.
        ELSE. "Some text had been built up
          CONCATENATE lv_textline ls_line-tdline INTO lv_textline SEPARATED BY space.
          REFRESH lt_formatted_text. CLEAR ls_formatted_text.
          CALL FUNCTION 'RKD_WORD_WRAP'
            EXPORTING
              textline            = lv_textline
              outputlen           = 255
            TABLES
              out_lines           = lt_formatted_text
            EXCEPTIONS
              outputlen_too_large = 1
              OTHERS              = 2.
          CLEAR lv_textline.
          IF sy-subrc <> 0.
            "I don't want to trigger an error
          ELSE.
            "Loop on the formatted table and populate my output table
            LOOP AT lt_formatted_text INTO ls_formatted_text.
              CLEAR ls_termsandcond_text.
              ls_termsandcond_text-line = ls_formatted_text-line.
              APPEND ls_termsandcond_text TO lt_termsandcond_text.
            ENDLOOP.
          ENDIF.
        ENDIF.
      ELSE. "The next line is not a new paragraph so build text string
        CONCATENATE lv_textline ls_line-tdline INTO lv_textline SEPARATED BY space.
      ENDIF.
    ENDLOOP.

  • Replace special characters in String

    Dear Guru ,
    Does SAP provide the standard function that can replace the special characters in String ?
    For example :
    I have one template string : " & & & & & output(s) have not been processed yet ! " and five parameters : "P1" , "P2" , "P3" , "P4" , "P5" .
    And i would like to apply all parameters into the string to replace the "&" character . Is it possibile ?
    My idea is sourcing from the Message String that in tcode : SE91 .
    Thanks .
    Best Regards,
    Carlos Zhang

    Hi Carlos,
    I think instead of a standard FM you can write a one line command to do this job.
    E.g. 
    constant: str1 type string value 'output(s) have not been processed yet ! '.
    data: var1 type c,
             var2 type c,
             var3 type c,
             var4 type c,
             str    type string.
    concatenate var1 var2 var3 var4 str1 into str separated by space.
    So str will have the final value.
    Thanks,
    Mainak

  • How to show multiple dynamic tables on a single screen?

    right now im displaying alv for singlr attribute of dimension.
    eg for dimension PRODUCT attribute PROFITCENTER im displaying in alv when user executes it.
    but the requirement is that multiple attributes can be there so multiple tables is to be displayed on a single screen.
    User basically wants to see data of all attributes. if there are 10 attributes hee wants to see 10 tables as every attribute has a different table.
    what i have achieved is below in snapshots. only one attribute table PRODUCT im able to display. since i believe multiple headers cant be displyed in alv so even if i display multiple dynamically populated tables on a single screen then it will be fine.
    i have also ADDED my code below: ZMDREPORT
    this report is for SAP BPC.
    *& Report  ZMDREPORT
    REPORT  zmdreport.
    TABLES /1cpmb/bfrdp3rp.
    DATA: gw_datatbl TYPE tabname,
          gw_datatbl1 TYPE tabname,
          gw_descrptbl TYPE tabname,
          gw_attribute TYPE tabname.
    DATA:
    BEGIN OF gw_attr,
      appset_id      TYPE uja_dim_attr-appset_id,
      dimension      TYPE uja_dim_attr-dimension,
      tech_name      TYPE uja_dim_attr-tech_name,
      attribute_name TYPE uja_dim_attr-attribute_name,
      caption        TYPE uja_dim_attr-caption,
    END OF gw_attr,
    gt_attr          LIKE TABLE OF gw_attr.
    DATA: gt_slis_fcat1 TYPE slis_t_fieldcat_alv,
          gw_slis_fcat1 LIKE LINE OF gt_slis_fcat1.
    DATA : gt_except TYPE TABLE OF zbpcbt007,
           gw_except LIKE LINE OF gt_except,
              gt_except_t TYPE TABLE OF zbpcbt007,
              gt_attrib TYPE TABLE OF tabname,
              gw_attrib LIKE LINE OF gt_attrib.
    DATA: gr_r_ref   TYPE  REF TO data.
    DATA:BEGIN OF gw_mdr,
         appset_id     TYPE  uj_appset_id,
         dimension     TYPE uj_dim_name,
         reasoncd      TYPE zmdreason,
         refdimension  TYPE uj_dim_name,
         attrib        TYPE uj_attr_name,
         END OF gw_mdr,
         gt_mdr1 LIKE TABLE OF gw_mdr,
         gt_mdr2 LIKE TABLE OF gw_mdr,
         gt_mdtable1 TYPE zbpctt_attr,
         gt_mdtable2 TYPE zbpctt_attr,
         gw_mdtable2 LIKE LINE OF gt_mdtable2,
         gt_mdtable3 TYPE zbpctt_attr,
         gt_mdtable4 TYPE zbpctt_attr,
         gw_mdtable4 LIKE LINE OF gt_mdtable4,
          BEGIN OF gw_finalattr,
           dim(32)      TYPE c,
           END OF gw_finalattr,
           gt_finalattr LIKE TABLE OF gw_finalattr,
           gt_tab1 LIKE TABLE OF gw_finalattr,
           gw_tab1 LIKE LINE OF gt_tab1,
           gt_tab2 LIKE TABLE OF gw_finalattr,
           gw_tab2 LIKE LINE OF gt_tab2.
    FIELD-SYMBOLS: <gfs_tab1>  TYPE STANDARD TABLE.
    FIELD-SYMBOLS: <gfs_tab2>  TYPE STANDARD TABLE,
                   <gfs_tab3>  TYPE STANDARD TABLE,
                   <gfs_tab4>  TYPE STANDARD TABLE.
    FIELD-SYMBOLS:<gfs_attr> TYPE any,
                              <gfs_field3> TYPE any,
                              <gfs_field4> TYPE any.
    DATA: gw_sortcond TYPE string.
    FIELD-SYMBOLS: <gfs_t_final>  TYPE STANDARD TABLE.
    FIELD-SYMBOLS: <gfs_final>  TYPE any.
    FIELD-SYMBOLS: <gfs_data> TYPE any .
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_env TYPE uja_dimension-appset_id OBLIGATORY.
    PARAMETERS: p_dim TYPE uja_dimension-dimension OBLIGATORY.
    SELECT-OPTIONS: s_member FOR /1cpmb/bfrdp3rp-mbr_name .
    PARAMETERS: p_hir TYPE /1cpmb/bfrdp3rp-/cpmb/hir.
    PARAMETERS:p_attr TYPE uj_attr_name MODIF ID m1.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: p_radio1 RADIOBUTTON GROUP g1 USER-COMMAND abc DEFAULT 'X',
                p_radio2 RADIOBUTTON GROUP g1.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETERS: p_reason  TYPE zbpcbt007-reasoncd MODIF ID m1.
    SELECTION-SCREEN END OF BLOCK b3.
    *********************************************************************alv
    DATA  :gt_fcat    TYPE lvc_t_fcat.
    DATA: gw_ok_code TYPE sy-ucomm,
          gw_okcode  TYPE sy-ucomm.
    DATA: go_custom_container TYPE REF TO cl_gui_custom_container,
          gw_g_container  TYPE scrfname VALUE 'CC1',
          go_grid1        TYPE REF TO cl_gui_alv_grid.
    DATA:BEGIN OF gw_table,
          dimension TYPE uja_dimension-dimension,
         END OF gw_table,
         gt_tab LIKE TABLE OF gw_table ,
         BEGIN OF gw_member,
         mbr_name TYPE uj_dim_member,
           END OF gw_member ,
           gt_member LIKE TABLE OF gw_member,
           BEGIN OF gw_hir ,
           hir TYPE /1cpmb/bfrdp3rp-/cpmb/hir,
           END OF gw_hir,
           gt_hir LIKE TABLE OF gw_hir.
    DATA:gt_slis_fcat2 TYPE slis_t_fieldcat_alv,
              gw_slis_fcat2 LIKE LINE OF gt_slis_fcat2 .
    DATA:  lr_data    TYPE REF TO data.
    DATA  :gt_fcat1   TYPE lvc_t_fcat,
           gt_fcat2   TYPE lvc_t_fcat,
           gt_fcat3   TYPE lvc_t_fcat,
           gt_fcat2_t TYPE lvc_t_fcat,
           gw_fcat    LIKE LINE OF gt_fcat2,
           gw_fcat3    LIKE LINE OF gt_fcat3.
    DATA:  gt_fcat3_t LIKE gt_fcat3.
    DATA:  gw_desc TYPE uj_desc.
    DATA : gw_string  TYPE string,
           gw_str     TYPE string.
    DATA:  gw_len TYPE string,
          BEGIN OF gw_refdim,
            dimension TYPE uja_dimension-dimension,
          END OF gw_refdim,
          gt_refdim LIKE TABLE OF gw_refdim,
          gt_refdim_t LIKE TABLE OF gw_refdim,
          BEGIN OF gw_refdata,
            data_table TYPE tabname,
             desc_table TYPE tabname,
          END OF gw_refdata,
          gt_refdata LIKE TABLE OF gw_refdata,
          BEGIN OF gw_techattr,
            tech_name TYPE uja_dim_attr-tech_name,
            END OF gw_techattr,
            gt_techattr LIKE TABLE OF gw_techattr,
            gw_cond TYPE string.
    DATA:gw_hircond TYPE string.
    DATA: gt_dynpread TYPE TABLE OF dynpread,
          gw_dynpread LIKE LINE OF gt_dynpread,
          gw_dynpread2 LIKE LINE OF gt_dynpread,
          gw_dim TYPE string,
          gw_env TYPE string.
    FIELD-SYMBOLS: <gfs_w_tab1>      TYPE any,
                   <gfs_w_tab2>      TYPE any,
                   <gfs_w_tab3>      TYPE any,
                   <gfs_field>       TYPE any,
                   <gfs_field2>       TYPE any,
                   <gfs_field_final> TYPE any,
                   <gfs_s_fcat>      TYPE lvc_s_fcat,
                   <gfs_s_fcat2>     TYPE lvc_s_fcat,
                   <gfs_s_fcat3>     TYPE lvc_s_fcat
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dim.
      REFRESH gt_dynpread.
      gw_dynpread-fieldname = 'P_ENV'.
      APPEND gw_dynpread TO gt_dynpread.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          dyname                         = sy-repid
          dynumb                         = sy-dynnr
    *     TRANSLATE_TO_UPPER             = ' '
    *     REQUEST                        = ' '
    *     PERFORM_CONVERSION_EXITS       = ' '
    *     PERFORM_INPUT_CONVERSION       = ' '
    *     DETERMINE_LOOP_INDEX           = ' '
    *     START_SEARCH_IN_CURRENT_SCREEN = 'X'
    *     start_search_in_main_screen    = ' '
    *     START_SEARCH_IN_STACKED_SCREEN = ' '
    *     START_SEARCH_ON_SCR_STACKPOS   = ' '
    *     SEARCH_OWN_SUBSCREENS_FIRST    = ' '
    *     SEARCHPATH_OF_SUBSCREEN_AREAS  = ' '
        TABLES
          dynpfields                     = gt_dynpread
        EXCEPTIONS
          invalid_abapworkarea           = 1
          invalid_dynprofield            = 2
          invalid_dynproname             = 3
          invalid_dynpronummer           = 4
          invalid_request                = 5
          no_fielddescription            = 6
          invalid_parameter              = 7
          undefind_error                 = 8
          double_conversion              = 9
          stepl_not_found                = 10
          OTHERS                         = 11.
      IF sy-subrc EQ 0.
        READ TABLE gt_dynpread INTO gw_dynpread INDEX 1.
        IF sy-subrc EQ 0.
          TRY .
              REFRESH gt_tab.
              SELECT dimension
              FROM uja_dimension CLIENT SPECIFIED
              INTO TABLE gt_tab
              WHERE mandt EQ sy-mandt
              AND   appset_id EQ gw_dynpread-fieldvalue.
              IF sy-subrc EQ 0.
                SORT gt_tab BY dimension.
                DELETE ADJACENT DUPLICATES FROM gt_tab COMPARING dimension.
                IF gt_tab IS NOT INITIAL.
                  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' "#EC CI_SUBRC
                     EXPORTING
    *           DDIC_STRUCTURE         = ''
                    retfield               = 'DIMENSION'
    *           PVALKEY                = ' '
                    dynpprog               = sy-repid
                    dynpnr                 = sy-dynnr
                    dynprofield            = 'P_DIM'(004)
    *           STEPL                  = 0
    *           WINDOW_TITLE           =
    *           VALUE                  = ' '
                    value_org              = 'S'
    *           MULTIPLE_CHOICE        = ' '
    *           display                = ''
    *           CALLBACK_PROGRAM       = ' '
    *           CALLBACK_FORM          = ' '
    *           CALLBACK_METHOD        =
    *           MARK_TAB               =
    *           IMPORTING
    *           USER_RESET             =
                    TABLES
                    value_tab              = gt_tab
    *           FIELD_TAB              =
    *           RETURN_TAB             =
    *           DYNPFLD_MAPPING        =
                    EXCEPTIONS
                    parameter_error        = 1
                    no_values_found        = 2
                     OTHERS                 = 3
                  IF sy-subrc NE 0.
                  ENDIF.
                ENDIF.
              ENDIF.
            CATCH cx_root.
          ENDTRY.
        ENDIF.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_member-low.
      REFRESH gt_dynpread.
      gw_dynpread-fieldname = 'P_ENV'.
      APPEND gw_dynpread TO gt_dynpread.
      gw_dynpread-fieldname = 'P_DIM'.
      APPEND gw_dynpread TO gt_dynpread.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          dyname                         = sy-repid
          dynumb                         = sy-dynnr
    *     TRANSLATE_TO_UPPER             = ' '
    *     REQUEST                        = ' '
    *     PERFORM_CONVERSION_EXITS       = ' '
    *     PERFORM_INPUT_CONVERSION       = ' '
    *     DETERMINE_LOOP_INDEX           = ' '
    *     START_SEARCH_IN_CURRENT_SCREEN = 'X'
    *     start_search_in_main_screen    = ' '
    *     START_SEARCH_IN_STACKED_SCREEN = ' '
    *     START_SEARCH_ON_SCR_STACKPOS   = ' '
    *     SEARCH_OWN_SUBSCREENS_FIRST    = ' '
    *     SEARCHPATH_OF_SUBSCREEN_AREAS  = ' '
        TABLES
          dynpfields                     = gt_dynpread
        EXCEPTIONS
          invalid_abapworkarea           = 1
          invalid_dynprofield            = 2
          invalid_dynproname             = 3
          invalid_dynpronummer           = 4
          invalid_request                = 5
          no_fielddescription            = 6
          invalid_parameter              = 7
          undefind_error                 = 8
          double_conversion              = 9
          stepl_not_found                = 10
          OTHERS                         = 11.
      IF sy-subrc EQ 0.
        SORT gt_dynpread BY fieldname.
        DELETE ADJACENT DUPLICATES FROM gt_dynpread COMPARING fieldname.
        IF gt_dynpread IS NOT INITIAL.
          LOOP AT gt_dynpread INTO gw_dynpread.
            IF gw_dynpread-fieldname EQ 'P_ENV'.
              gw_env = gw_dynpread-fieldvalue.
            ELSEIF gw_dynpread-fieldname EQ 'P_DIM'.
              gw_dim = gw_dynpread-fieldvalue.
            ENDIF.
          ENDLOOP.
          IF sy-subrc EQ 0.
            CLEAR: gw_datatbl1, gt_member.
            SELECT SINGLE data_table
            INTO (gw_datatbl1)
            FROM uja_dimension CLIENT SPECIFIED
            WHERE mandt EQ sy-mandt
            AND   appset_id EQ gw_env
            AND   dimension EQ gw_dim.
            IF sy-subrc EQ 0.
              TRY .
                  REFRESH gt_member.
                  SELECT mbr_name
                  INTO TABLE gt_member
                  FROM (gw_datatbl1) CLIENT SPECIFIED
                  WHERE mandt EQ sy-mandt .
                  IF sy-subrc EQ 0.
                    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
                      EXPORTING
    *           DDIC_STRUCTURE         = ' '
              retfield               = 'MBR_NAME'
    *        PVALKEY                = ' '
              dynpprog               = sy-repid
              dynpnr                 = sy-dynnr
              dynprofield            = 'S_MEMBER'
    *        STEPL                  = 0
    *        WINDOW_TITLE           =
    *        VALUE                  = ' '
              value_org              = 'S'
    *        MULTIPLE_CHOICE        = ' '
    *        DISPLAY                = ' '
              callback_program       = sy-repid
              callback_form          = 'F4CALLBACK'
    *        CALLBACK_METHOD        =
    *        MARK_TAB               =
    *        IMPORTING
    *        USER_RESET             =
              TABLES
              value_tab              = gt_member
    *        FIELD_TAB              =
    *        RETURN_TAB             =
    *        DYNPFLD_MAPPING        =
              EXCEPTIONS
              parameter_error        = 1
                 no_values_found        = 2
                 OTHERS                 = 3
                    IF sy-subrc <> 0.
    * Implement suitable error handling here
                    ENDIF.
                  ENDIF.
                CATCH cx_root.
              ENDTRY.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_member-high.
      REFRESH gt_dynpread.
      gw_dynpread-fieldname = 'P_ENV'.
      APPEND gw_dynpread TO gt_dynpread.
      gw_dynpread-fieldname = 'P_DIM'.
      APPEND gw_dynpread TO gt_dynpread.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          dyname                         = sy-repid
          dynumb                         = sy-dynnr
    *     TRANSLATE_TO_UPPER             = ' '
    *     REQUEST                        = ' '
    *     PERFORM_CONVERSION_EXITS       = ' '
    *     PERFORM_INPUT_CONVERSION       = ' '
    *     DETERMINE_LOOP_INDEX           = ' '
    *     START_SEARCH_IN_CURRENT_SCREEN = 'X'
    *     start_search_in_main_screen    = ' '
    *     START_SEARCH_IN_STACKED_SCREEN = ' '
    *     START_SEARCH_ON_SCR_STACKPOS   = ' '
    *     SEARCH_OWN_SUBSCREENS_FIRST    = ' '
    *     SEARCHPATH_OF_SUBSCREEN_AREAS  = ' '
        TABLES
          dynpfields                     = gt_dynpread
        EXCEPTIONS
          invalid_abapworkarea           = 1
          invalid_dynprofield            = 2
          invalid_dynproname             = 3
          invalid_dynpronummer           = 4
          invalid_request                = 5
          no_fielddescription            = 6
          invalid_parameter              = 7
          undefind_error                 = 8
          double_conversion              = 9
          stepl_not_found                = 10
          OTHERS                         = 11.
      IF sy-subrc EQ 0.
        SORT gt_dynpread BY fieldname.
        DELETE ADJACENT DUPLICATES FROM gt_dynpread COMPARING fieldname.
        IF gt_dynpread IS NOT INITIAL.
          LOOP AT gt_dynpread INTO gw_dynpread.
            IF gw_dynpread-fieldname EQ 'P_ENV'.
              gw_env = gw_dynpread-fieldvalue.
            ELSEIF gw_dynpread-fieldname EQ 'P_DIM'.
              gw_dim = gw_dynpread-fieldvalue.
            ENDIF.
          ENDLOOP.
          IF sy-subrc EQ 0.
            CLEAR: gw_datatbl1.
            SELECT SINGLE data_table
            INTO (gw_datatbl1)
            FROM uja_dimension CLIENT SPECIFIED
            WHERE mandt EQ sy-mandt
            AND   appset_id EQ gw_env
            AND   dimension EQ gw_dim.
            IF sy-subrc EQ 0.
              TRY .
                  REFRESH gt_member.
                  SELECT mbr_name
                  INTO TABLE gt_member
                  FROM (gw_datatbl1) CLIENT SPECIFIED
                  WHERE mandt EQ sy-mandt.
                  IF sy-subrc EQ 0.
                    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
                      EXPORTING
    *          DDIC_STRUCTURE         = ' '
                retfield               = 'MBR_NAME'
    *          PVALKEY                = ' '
                dynpprog               = sy-repid
                dynpnr                 = sy-dynnr
                dynprofield            = 'S_MEMBER'
    *          STEPL                  = 0
    *          WINDOW_TITLE           =
    *          VALUE                  = ' '
                value_org              = 'S'
    *          MULTIPLE_CHOICE        = ' '
    *          DISPLAY                = ' '
                callback_program       = sy-repid
                callback_form          = 'F4CALLBACK'
    *          CALLBACK_METHOD        =
    *          MARK_TAB               =
    *          IMPORTING
    *          USER_RESET             =
                TABLES
                value_tab              = gt_member
    *          FIELD_TAB              =
    *          RETURN_TAB             =
    *          DYNPFLD_MAPPING        =
                EXCEPTIONS
                parameter_error        = 1
                no_values_found        = 2
                OTHERS                 = 3
                    IF sy-subrc <> 0.
    * Implement suitable error handling here
                    ENDIF.
                  ENDIF.
                CATCH cx_root.
              ENDTRY.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    *&      Form  F4CALLBACK
    *       text
    *      -->RECORD_TAB   text
    *      -->SHLP         text
    *      -->CALLCONTROL  text
    FORM f4callback TABLES record_tab STRUCTURE seahlpres
                    CHANGING shlp TYPE shlp_descr
                             callcontrol TYPE ddshf4ctrl.
      callcontrol-no_maxdisp = ''.
    ENDFORM.                    "F4CALLBACK
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_hir.
      REFRESH gt_dynpread.
      CLEAR gw_dynpread.
      gw_dynpread-fieldname = 'P_ENV'.
      APPEND gw_dynpread TO gt_dynpread.
      gw_dynpread-fieldname = 'P_DIM'.
      APPEND gw_dynpread TO gt_dynpread.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          dyname                         = sy-repid
          dynumb                         = sy-dynnr
    *     TRANSLATE_TO_UPPER             = ' '
    *     REQUEST                        = ' '
    *     PERFORM_CONVERSION_EXITS       = ' '
    *     PERFORM_INPUT_CONVERSION       = ' '
    *     DETERMINE_LOOP_INDEX           = ' '
    *     START_SEARCH_IN_CURRENT_SCREEN = 'X'
    *     start_search_in_main_screen    = ' '
    *     START_SEARCH_IN_STACKED_SCREEN = ' '
    *     START_SEARCH_ON_SCR_STACKPOS   = ' '
    *     SEARCH_OWN_SUBSCREENS_FIRST    = ' '
    *     SEARCHPATH_OF_SUBSCREEN_AREAS  = ' '
        TABLES
          dynpfields                     = gt_dynpread
        EXCEPTIONS
          invalid_abapworkarea           = 1
          invalid_dynprofield            = 2
          invalid_dynproname             = 3
          invalid_dynpronummer           = 4
          invalid_request                = 5
          no_fielddescription            = 6
          invalid_parameter              = 7
          undefind_error                 = 8
          double_conversion              = 9
          stepl_not_found                = 10
          OTHERS                         = 11.
      IF sy-subrc EQ 0.
        SORT gt_dynpread BY fieldname.
        DELETE ADJACENT DUPLICATES FROM gt_dynpread COMPARING fieldname.
        LOOP AT gt_dynpread INTO gw_dynpread.
          IF gw_dynpread-fieldname EQ 'P_ENV'.
            gw_env = gw_dynpread-fieldvalue.
          ELSEIF gw_dynpread-fieldname EQ 'P_DIM'.
            gw_dim = gw_dynpread-fieldvalue.
          ENDIF.
        ENDLOOP.
        IF sy-subrc EQ 0.
          CLEAR: gw_datatbl1.
          SELECT SINGLE data_table
          INTO (gw_datatbl1)
          FROM uja_dimension CLIENT SPECIFIED
          WHERE mandt EQ sy-mandt
          AND   appset_id EQ gw_env
          AND   dimension EQ gw_dim.
          IF sy-subrc EQ 0.
            REFRESH gt_member.
            TRY .
                SELECT /cpmb/hir
                INTO TABLE gt_hir
                FROM (gw_datatbl1) CLIENT SPECIFIED
                WHERE mandt EQ sy-mandt.
                IF sy-subrc EQ 0.
                  SORT gt_hir BY hir.
                  DELETE ADJACENT DUPLICATES FROM gt_hir COMPARING hir.
                  IF gt_hir IS NOT INITIAL.
                    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
                                   EXPORTING
    *                   DDIC_STRUCTURE         = ' '
                                     retfield               = '/CPMB/HIR'
    *                   PVALKEY                = ' '
                                    dynpprog               = sy-repid
                                    dynpnr                 = sy-dynnr
                                    dynprofield            = 'P_HIR'
    *                   STEPL                  = 0
    *                   WINDOW_TITLE           =
    *                   VALUE                  = ' '
                                    value_org              = 'S'
    *                   MULTIPLE_CHOICE        = ' '
    *                   DISPLAY                = ' '
    *                   CALLBACK_PROGRAM       = ' '
    *                   CALLBACK_FORM          = ' '
    *                   CALLBACK_METHOD        =
    *                   MARK_TAB               =
    *                 IMPORTING
    *                   USER_RESET             =
                                   TABLES
                                     value_tab              = gt_hir
    *                   FIELD_TAB              =
    *                   RETURN_TAB             =
    *                   DYNPFLD_MAPPING        =
                                  EXCEPTIONS
                                    parameter_error        = 1
                                    no_values_found        = 2
                                    OTHERS                 = 3
                    IF sy-subrc <> 0.
    * Implement suitable error handling here
                    ENDIF.
                  ENDIF.
                ENDIF.
              CATCH cx_root.
            ENDTRY.
          ENDIF.
        ENDIF.
      ENDIF.
    *       CLASS lcl_main DEFINITION
    CLASS lcl_main DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
                 create_alv1,
                 create_alv2,
                 create_alv3,
                 create_fieldcatalog,
                 create_dynamicalv,
                 merge_tables,
                 show_alv1
    ENDCLASS.                    "lcl_main DEFINITION
    *       CLASS lcl_main IMPLEMENTATION
    CLASS lcl_main IMPLEMENTATION.
      METHOD create_fieldcatalog.
        CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'                "#EC CI_SUBRC
                     EXPORTING
                       i_structure_name       = gw_datatbl
                     CHANGING
                       ct_fieldcat            = gt_fcat1
                     EXCEPTIONS
                       inconsistent_interface = 1
                       program_error          = 2
                       OTHERS                 = 3.
        IF sy-subrc <> 0.
    * Implement suitable error handling here
        ENDIF.
        CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'                "#EC CI_SUBRC
          EXPORTING
            i_structure_name       = gw_descrptbl
          CHANGING
            ct_fieldcat            = gt_fcat2
          EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.
        IF sy-subrc <> 0.
    * Implement suitable error handling here
        ENDIF.
      ENDMETHOD.                    "create_fieldcatalog
      METHOD create_dynamicalv.
    *    DATA: lr_data    TYPE REF TO data.
        CLEAR lr_data.
        CALL METHOD cl_alv_table_create=>create_dynamic_table
                                                              "#EC CI_SUBRC
                     EXPORTING
    *               i_style_table             =
                       it_fieldcatalog           = gt_fcat2
    *               i_length_in_byte          =
                     IMPORTING
                       ep_table                  = lr_data
    *               e_style_fname             =
                     EXCEPTIONS
                       generate_subpool_dir_full = 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.
      ENDMETHOD.                    "create_dynamicalv
      METHOD merge_tables.
        SORT gt_fcat2 BY col_pos.
        ASSIGN lr_data->* TO <gfs_t_final>.
        LOOP AT <gfs_tab1> ASSIGNING <gfs_w_tab1>.
          APPEND INITIAL LINE TO <gfs_t_final> ASSIGNING <gfs_final>.
          LOOP AT gt_fcat2 ASSIGNING <gfs_s_fcat>.           "#EC CI_NESTED
            ASSIGN COMPONENT <gfs_s_fcat>-fieldname OF STRUCTURE
            <gfs_w_tab1> TO <gfs_field>.
            IF sy-subrc EQ 0 AND <gfs_field> IS ASSIGNED.
              ASSIGN COMPONENT <gfs_s_fcat>-fieldname OF STRUCTURE
              <gfs_final> TO <gfs_field_final>.
              IF sy-subrc EQ 0 AND <gfs_field_final> IS ASSIGNED.
                <gfs_field_final> = <gfs_field>.
              ENDIF.
    *** Creating dynamic where clause for the key fields
              IF <gfs_s_fcat>-key = 'X'.
                READ TABLE gt_fcat2_t ASSIGNING <gfs_s_fcat2>
                WITH KEY
                key       = abap_true
                fieldname = <gfs_s_fcat>-fieldname.
                IF sy-subrc EQ 0.
                  IF gw_string IS INITIAL.
    *Putting value into quotes
                    CONCATENATE `'` <gfs_field> `'` INTO gw_str.
    *Concatenating first field into string
                    CONCATENATE <gfs_s_fcat>-fieldname '=' gw_str
                    INTO gw_string SEPARATED BY space.
                    CLEAR gw_str.
                  ELSE.
    *Concatenating rest all key fields
                    CONCATENATE `'` <gfs_field> `'` INTO gw_str.
                    CONCATENATE gw_string 'AND' <gfs_s_fcat>-fieldname
                    '=' gw_str INTO gw_string SEPARATED BY space.
                    CLEAR gw_str.
                  ENDIF.
                ENDIF.
    *** End of Creation
              ENDIF.
            ENDIF.
          ENDLOOP.
          IF NOT gw_string IS INITIAL.
    *Concatenating sy-langu (-> always present)
            CONCATENATE gw_string 'AND LANGU = SY-LANGU'
            INTO gw_string SEPARATED BY space.
          ENDIF.
    *** Filling Description field based on dynamically created where clause
          LOOP AT <gfs_tab2> ASSIGNING <gfs_w_tab2> WHERE (gw_string).
                                                             "#EC CI_NESTED
            ASSIGN COMPONENT 'TXTLG' OF STRUCTURE <gfs_w_tab2>
            TO <gfs_field>.
            IF sy-subrc EQ 0 AND <gfs_field> IS ASSIGNED.
              ASSIGN COMPONENT 'TXTLG' OF STRUCTURE <gfs_final>
              TO <gfs_field_final>.
              IF sy-subrc EQ 0 AND <gfs_field_final> IS ASSIGNED.
                <gfs_field_final> = <gfs_field>.
              ENDIF.
            ENDIF.
          ENDLOOP.
          CLEAR gw_string.
        ENDLOOP.
      ENDMETHOD.                    "merge_tables
      METHOD create_alv3.
        CREATE DATA gr_r_ref TYPE TABLE OF (gw_datatbl).
        ASSIGN gr_r_ref->* TO <gfs_tab1>.
        SELECT *
        INTO TABLE <gfs_tab1>
        FROM (gw_datatbl) CLIENT SPECIFIED
        WHERE mandt EQ sy-mandt
        AND   mbr_name IN s_member
        AND   /cpmb/calc EQ 'N'.
        IF sy-subrc EQ 0.
          IF p_hir IS NOT INITIAL.
            CLEAR gw_hircond.
            CONCATENATE '/CPMB/HIR' 'NE' 'P_HIR' INTO gw_hircond
            SEPARATED BY space.
            DELETE <gfs_tab1> WHERE (gw_hircond).
          ENDIF.
          CLEAR: gr_r_ref.
          CREATE DATA gr_r_ref TYPE TABLE OF (gw_descrptbl).
          ASSIGN gr_r_ref->* TO <gfs_tab2>.
          SELECT *
          FROM (gw_descrptbl) CLIENT SPECIFIED
          INTO TABLE <gfs_tab2>
          WHERE mandt EQ sy-mandt
          AND langu EQ sy-langu.
          IF sy-subrc EQ 0.
            READ TABLE gt_refdata INTO gw_refdata INDEX 1.
            IF sy-subrc EQ 0.
              CLEAR gr_r_ref.
              CREATE DATA gr_r_ref TYPE TABLE OF (gw_refdata-data_table).
              ASSIGN gr_r_ref->* TO <gfs_tab3>.
              SELECT *
              INTO TABLE <gfs_tab3>
              FROM (gw_refdata-data_table) CLIENT SPECIFIED
              WHERE mandt EQ sy-mandt
              AND /cpmb/calc EQ 'N'.
              IF sy-subrc EQ 0.
                CLEAR gr_r_ref.
                CREATE DATA gr_r_ref TYPE TABLE OF (gw_refdata-desc_table).
                ASSIGN gr_r_ref->* TO <gfs_tab4>.
                SELECT *
                INTO TABLE <gfs_tab4>
                FROM (gw_refdata-desc_table) CLIENT SPECIFIED
                WHERE mandt EQ sy-mandt
                AND   langu EQ sy-langu.
                lcl_main=>create_fieldcatalog( ).
                gt_fcat2_t[] = gt_fcat2[].
                DELETE gt_fcat2 WHERE fieldname NE 'TXTLG'.
                APPEND LINES OF gt_fcat1 TO gt_fcat2.
                gw_len = lines( gt_fcat2 ).
                gw_len = gw_len + 1.
                gw_fcat-fieldname = 'TXTLG1'.
                gw_fcat-reptext   = 'Attribute Description'.
                gw_fcat-col_pos   = gw_len.
                gw_fcat-outputlen = 60.
                APPEND gw_fcat TO gt_fcat2.
                SORT gt_fcat2 BY fieldname.
                READ TABLE gt_techattr INTO gw_techattr INDEX 1.
                LOOP AT gt_fcat2 INTO gw_fcat.
                  READ TABLE gt_attr INTO gw_attr
                  WITH KEY tech_name = gw_fcat-fieldname.
                  IF sy-subrc EQ 0.
                    gw_fcat-reptext = gw_attr-caption.
                  ENDIF.
                  IF gw_fcat-fieldname = 'TXTLG'.
                    gw_fcat-outputlen = 60.
                  ENDIF.
                  MODIFY gt_fcat2 FROM gw_fcat TRANSPORTING
                  outputlen reptext .
                  IF gw_fcat-fieldname NE 'MBR_NAME'
                  AND gw_fcat-fieldname NE 'TXTLG'
                    AND gw_fcat-fieldname NE 'TXTLG1'
                  AND gw_fcat-fieldname NE gw_techattr-tech_name."gw_attrib.
                    gw_fcat-no_out = 'X'.
                    MODIFY gt_fcat2 FROM gw_fcat TRANSPORTING no_out.
                  ENDIF.
                ENDLOOP.
                lcl_main=>create_dynamicalv( ).
                lcl_main=>merge_tables( ).
                CLEAR gw_cond.
                READ TABLE gt_techattr INTO gw_techattr INDEX 1.
    *        CONCATENATE 'MBR_NAME =' '<Gfs_field>' INTO Gw_cond
    *        SEPARATED BY space.
                TRANSLATE gw_techattr-tech_name TO UPPER CASE.
                CONCATENATE `'` gw_techattr-tech_name `'`
                '=' '<Gfs_field>' INTO gw_cond
                SEPARATED BY space.
                CHECK NOT <gfs_t_final> IS INITIAL.
                SORT <gfs_t_final> BY (gw_techattr-tech_name).
                LOOP AT <gfs_tab3> ASSIGNING <gfs_w_tab3>.
                  ASSIGN COMPONENT 'MBR_NAME' OF STRUCTURE <gfs_w_tab3>
                  TO <gfs_field>.
                  IF sy-subrc EQ 0 AND <gfs_field> IS ASSIGNED.
                    DELETE <gfs_t_final> WHERE (gw_cond).
                  ENDIF.
                  IF <gfs_t_final> IS INITIAL.
                    EXIT.
                  ENDIF.
                ENDLOOP.
    *adding attribute description
                DATA gw_cond1 TYPE string.
                DATA gw_cond2 TYPE string.
                CLEAR gw_cond1.
               CONCATENATE `'` gw_techattr-tech_name `'` 'eq' '<gfs_field>'
               INTO gw_cond1 SEPARATED BY space.
                CLEAR gw_cond2.
                CONCATENATE 'TXTLG1' 'eq' 'SPACE'
                INTO gw_cond2 SEPARATED BY space.
                CLEAR gw_cond.
                CONCATENATE 'TXTLG' 'NE' 'SPACE' INTO gw_cond SEPARATED BY
                space.
                gw_sortcond = 'TXTLG'.
                SORT <gfs_tab4> BY (gw_sortcond).
                LOOP AT <gfs_t_final> ASSIGNING <gfs_final> WHERE
                  (gw_cond2).
                  ASSIGN COMPONENT gw_techattr-tech_name OF STRUCTURE
                  <gfs_final> TO <gfs_field>.
                  IF sy-subrc EQ 0 AND <gfs_field> IS ASSIGNED.
                    ASSIGN COMPONENT 'TXTLG1' OF STRUCTURE
                    <gfs_final> TO <gfs_field4>.
                    IF sy-subrc EQ 0 AND <gfs_field4> IS ASSIGNED.
                      LOOP AT <gfs_tab4> ASSIGNING <gfs_attr>
                        WHERE (gw_cond).
                        ASSIGN COMPONENT 2 OF STRUCTURE <gfs_attr> TO
                        <gfs_field2>.
                        IF sy-subrc EQ 0 AND <gfs_field2> IS ASSIGNED.
                          ASSIGN COMPONENT 5 OF STRUCTURE <gfs_attr>
                          TO <gfs_field3>.
                          IF sy-subrc EQ 0 AND <gfs_field3> IS ASSIGNED.
                            IF <gfs_field> EQ <gfs_field2>.
                              <gfs_field4> = <gfs_field3>.
                              MODIFY <gfs_t_final> FROM <gfs_final>
                              TRANSPORTING ('TXTLG1') WHERE (gw_cond1).
                              EXIT.
                            ENDIF.
                          ENDIF.
                        ENDIF.
                      ENDLOOP.
                    ENDIF.
                  ENDIF.
                ENDLOOP.
    *            LOOP AT <gfs_tab4> ASSIGNING <gfs_attr> WHERE (gw_cond) .
    *              ASSIGN COMPONENT 2 OF STRUCTURE <gfs_attr> TO
    *              <gfs_field2>.
    *              IF sy-subrc EQ 0 AND <gfs_field2> IS ASSIGNED.
    *                ASSIGN COMPONENT 5 OF STRUCTURE <gfs_attr> TO
    *                              <gfs_field3>.
    *                IF sy-subrc EQ 0 AND <gfs_field3> IS ASSIGNED.
    *                  LOOP AT <gfs_t_final> ASSIGNING <gfs_final>
    *                    WHERE (gw_cond2).
    *                    ASSIGN COMPONENT gw_techattr-tech_name OF STRUCTURE
    *                    <gfs_final> TO <gfs_field>.
    *                    IF sy-subrc EQ 0 AND <gfs_field> IS ASSIGNED.
    *                     ASSIGN COMPONENT 'TXTLG1' OF STRUCTURE <gfs_final>
    *                     TO <gfs_field4>.
    *                      IF sy-subrc EQ 0 AND <gfs_field4> IS ASSIGNED.
    *                        IF <gfs_field> EQ <gfs_field2>.
    *                          <gfs_field4> = <gfs_field3>.
    *                          MODIFY <gfs_t_final> FROM <gfs_final>
    *                          TRANSPORTING ('TXTLG1') WHERE (gw_cond1).
    *                          EXIT.
    *                        ENDIF.
    *                      ENDIF.
    *                    ENDIF.
    *                  ENDLOOP.
    *                ENDIF.
    *              ENDIF.
    *            ENDLOOP.
                IF <gfs_t_final> IS NOT INITIAL.
                  CALL SCREEN 9000.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDMETHOD.                    "create_alv3
      METHOD create_alv2.
        READ TABLE gt_techattr INTO gw_techattr INDEX 1.
        CONCATENATE gw_techattr-tech_name 'EQ' 'space' INTO gw_cond
        SEPARATED
       BY
        space.
        CREATE DATA gr_r_ref TYPE TABLE OF (gw_datatbl).
        ASSIGN gr_r_ref->* TO <gfs_tab1>.
        SELECT *
        INTO TABLE <gfs_tab1>
        FROM (gw_datatbl) CLIENT SPECIFIED
        WHERE mandt EQ sy-mandt
        AND mbr_name IN s_member
        AND   /cpmb/calc EQ 'N'
        AND (gw_cond).
        IF sy-subrc EQ 0.
          IF p_hir IS NOT INITIAL.
            CLEAR gw_hircond.
            CONCATENATE '/CPMB/HIR' 'NE' 'P_HIR' INTO gw_hircond
                  SEPARATED BY space.
            DELETE <gfs_tab1> WHERE (gw_hircond).
          ENDIF.
          CLEAR: gr_r_ref.
          CREATE DATA gr_r_ref TYPE TABLE OF (gw_descrptbl).
          ASSIGN gr_r_ref->* TO <gfs_tab2>.
          SELECT *
           FROM (gw_descrptbl) CLIENT SPECIFIED
           INTO TABLE <gfs_tab2>
           WHERE mandt EQ sy-mandt
           AND langu EQ sy-langu.
          IF sy-subrc EQ 0.
            lcl_main=>create_fieldcatalog( ).
            gt_fcat2_t[] = gt_fcat2[].
            DELETE gt_fcat2 WHERE fieldname NE 'TXTLG'.
            APPEND LINES OF gt_fcat1 TO gt_fcat2.
            SORT gt_fcat2 BY fieldname.
            LOOP AT gt_fcat2 INTO gw_fcat.
              READ TABLE gt_attr INTO gw_attr WITH KEY
                  tech_name = gw_fcat-fieldname.
              IF sy-subrc EQ 0.
                gw_fcat-reptext = gw_attr-caption.
              ENDIF.
              IF gw_fcat-fieldname = 'TXTLG'.
                gw_fcat-outputlen = 60.
              ENDIF.
              MODIFY gt_fcat2 FROM gw_fcat TRANSPORTING outputlen reptext.
    *      READ TABLE gt_attrib INTO gw_attrib INDEX 1.
    *      IF sy-subrc EQ 0.
              IF gw_fcat-fieldname NE 'MBR_NAME'
              AND gw_fcat-fieldname NE 'TXTLG'
              AND gw_fcat-fieldname NE gw_techattr-tech_name."gw_attrib.
                gw_fcat-no_out = 'X'.
                MODIFY gt_fcat2 FROM gw_fcat TRANSPORTING no_out.
              ENDIF.
    *      ENDIF.
            ENDLOOP.
            lcl_main=>create_dynamicalv( ).
            lcl_main=>merge_tables( ).
            CHECK NOT <gfs_t_final> IS INITIAL.
            SORT <gfs_t_final> BY ('MBR_NAME').
            CALL SCREEN 9000.
          ENDIF.
        ENDIF.
      ENDMETHOD.                    "create_alv2
      METHOD create_alv1.
        CREATE DATA gr_r_ref TYPE TABLE OF (gw_datatbl).
        ASSIGN gr_r_ref->* TO <gfs_tab1>.
        SELECT *
        FROM (gw_datatbl) CLIENT SPECIFIED
        INTO TABLE <gfs_tab1>
        WHERE mandt EQ sy-mandt
        AND   mbr_name IN s_member.
        IF sy-subrc EQ 0.
          IF p_hir IS NOT INITIAL.
            CLEAR gw_hircond.
            CONCATENATE '/CPMB/HIR' 'NE' 'P_HIR'
             INTO gw_hircond SEPARATED BY
               space.
            DELETE <gfs_tab1> WHERE (gw_hircond).
          ENDIF.
          CLEAR: gr_r_ref.
          CREATE DATA gr_r_ref TYPE TABLE OF (gw_descrptbl).
          ASSIGN gr_r_ref->* TO <gfs_tab2>.
          SELECT *
           FROM (gw_descrptbl) CLIENT SPECIFIED
           INTO TABLE <gfs_tab2>
           WHERE mandt EQ sy-mandt
           AND langu EQ sy-langu.
          IF sy-subrc EQ 0.
            lcl_main=>create_fieldcatalog( ).
            SORT gt_fcat2 BY col_pos fieldname.
            gt_fcat2_t[] = gt_fcat2[].
            DELETE gt_fcat2 WHERE fieldname NE 'TXTLG'.
            APPEND LINES OF gt_fcat1 TO gt_fcat2.
            SORT gt_fcat2 BY fieldname.
            SORT gt_attr BY tech_name.
            LOOP AT gt_fcat2 INTO gw_fcat .
              IF gw_fcat-reptext IS INITIAL.
                READ TABLE gt_attr INTO gw_attr
               WITH KEY tech_name = gw_fcat-fieldname BINARY SEARCH.
                IF sy-subrc EQ 0.
                  gw_fcat-reptext = gw_attr-caption.
                ELSE.
                  gw_fcat-reptext = gw_fcat-fieldname.
                ENDIF.
              ENDIF.
              IF gw_fcat-fieldname EQ 'OBJVERS'.
                gw_fcat-no_out = 'X'.
              ELSEIF gw_fcat-fieldname EQ 'ROWFLAG'.
                gw_fcat-no_out = 'X'.
              ELSEIF gw_fcat-fieldname EQ 'MBR_NAME'.
                gw_fcat-no_out = 'X'.
              ELSEIF gw_fcat-fieldname EQ '/CPMB/CALC'.
                gw_fcat-no_out = 'X'.
              ELSEIF gw_fcat-fieldname EQ 'TXTLG'.
                gw_fcat-outputlen = 70.
              ELSEIF gw_fcat-fieldname EQ '/CPMB/HIR'.
                gw_fcat-outputlen = 20.
              ENDIF.
              MODIFY gt_fcat2 FROM gw_fcat
              TRANSPORTING reptext no_out outputlen.
            ENDLOOP.
            lcl_main=>create_dynamicalv( ).
            lcl_main=>merge_tables( ).
            CHECK NOT <gfs_t_final> IS INITIAL.
    *        SORT <gfs_t_final> BY ('TXTLG').
            CALL SCREEN 9000.
          ENDIF.
        ENDIF.
      ENDMETHOD.                    "show_alv1
      METHOD show_alv1.
        IF go_custom_container IS INITIAL.
          CREATE OBJECT go_custom_container
            EXPORTING
    *          parent                      =
              container_name              = gw_g_container
    *          style                       =
    *          lifetime                    = lifetime_default
    *          repid                       =
    *          dynnr                       =
    *          no_autodef_progid_dynnr     =
            EXCEPTIONS
              cntl_error                  = 1
              cntl_system_error           = 2
              create_error                = 3
              lifetime_error              = 4
              lifetime_dynpro_dynpro_link = 5
              OTHERS                      = 6
          IF sy-subrc <> 0.
    *       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          CREATE OBJECT go_grid1
           EXPORTING
    *          i_shellstyle      = 0
    *          i_lifetime        =
             i_parent          = go_custom_container
    *         i_appl_events     = 'X'
    *          i_parentdbg       =
    *          i_applogparent    =
    *          i_graphicsparent  =
    *          i_name            =
    *          i_fcat_complete   = SPACE
           EXCEPTIONS
             error_cntl_create = 1
             error_cntl_init   = 2
             error_cntl_link   = 3
             error_dp_create   = 4
             OTHERS            = 5
          IF sy-subrc <> 0.
    *       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          CALL METHOD go_grid1->set_table_for_first_display   "#EC CI_SUBRC
    *       EXPORTING
    *         i_buffer_active               =
    *         i_bypassing_buffer            =
    *         i_consistency_check           =
    *         i_structure_name              =
    *          is_variant                    =
    *          i_save                        = 'X'
    **         i_default                     = 'X'
    *          is_layout                     =
    **         is_print                      =
    **         it_special_groups             =
    *          it_toolbar_excluding          =
    *         it_hyperlink                  =
    *         it_alv_graphics               =
    *         it_except_qinfo               =
    *         ir_salv_adapter               =
           CHANGING
             it_outtab                     = <gfs_t_final>
             it_fieldcatalog               = gt_fcat2
    *         it_sort                       =
    *         it_filter                     =
           EXCEPTIONS
             invalid_parameter_combination = 1
             program_error                 = 2
             too_many_lines                = 3
             OTHERS                        = 4.
          IF sy-subrc <> 0.
    *     Implement suitable error handling here
          ENDIF.
        ENDIF.
      ENDMETHOD.                    "SHOW_alv1
    ENDCLASS.                    "lcl_main IMPLEMENTATION
    AT SELECTION-SCREEN OUTPUT.
      IF p_radio1 EQ 'X'.
        LOOP AT SCREEN.
          IF screen-group1 = 'M1'.
            screen-active = 0.
            MODIFY SCREEN.
          ENDIF.
    *      IF screen-group1 = 'M'.
    *        screen-active    = 0.
    *        MODIFY SCREEN.
    *      ENDIF.
        ENDLOOP.
      ENDIF.
    *  IF p_radio2 EQ 'X'.
    *    LOOP AT SCREEN.
    *      IF p_reason EQ 30.
    *        IF screen-group1 = 'M2'.
    *          screen-active    = 0.
    *          MODIFY SCREEN.
    *        ENDIF.
    *      ENDIF.
    *    ENDLOOP.
    *  ENDIF.
    START-OF-SELECTION.
      IF p_radio1 EQ 'X'.
        SELECT SINGLE data_table desc_table
        INTO (gw_datatbl , gw_descrptbl)
        FROM uja_dimension CLIENT SPECIFIED
        WHERE mandt EQ sy-mandt
        AND   appset_id EQ p_env
        AND   dimension EQ p_dim.
        IF sy-subrc EQ 0.
          SELECT appset_id dimension tech_name attribute_name caption
          INTO TABLE gt_attr
          FROM uja_dim_attr CLIENT SPECIFIED
          WHERE mandt EQ sy-mandt
          AND   appset_id EQ p_env
          AND   dimension EQ p_dim.
          IF sy-subrc EQ 0.
            lcl_main=>create_alv1( ).
          ENDIF.
        ENDIF.
      ELSE.
        IF p_reason NE 30.
          SELECT *
          INTO TABLE gt_except
          FROM zbpcbt007 CLIENT SPECIFIED
          WHERE mandt EQ sy-mandt
          AND   appset_id EQ p_env
          AND   dimension EQ p_dim
          AND   reasoncd  EQ p_reason.
          IF sy-subrc EQ 0.
            SELECT SINGLE data_table desc_table
                 INTO (gw_datatbl,gw_descrptbl)
                 FROM uja_dimension CLIENT SPECIFIED
                 WHERE mandt EQ sy-mandt
                 AND   appset_id EQ p_env
                 AND   dimension EQ p_dim.
            IF sy-subrc EQ 0.
              SELECT appset_id dimension tech_name attribute_name caption
              INTO TABLE gt_attr
              FROM uja_dim_attr CLIENT SPECIFIED
              WHERE mandt EQ sy-mandt
              AND   appset_id EQ p_env
              AND   dimension EQ p_dim.
              IF sy-subrc EQ 0.
                gt_except_t[] = gt_except[].
                SORT gt_except_t.
                DELETE ADJACENT DUPLICATES FROM gt_except_t.
                IF gt_except_t IS NOT INITIAL.
                  SELECT tech_name
                  INTO TABLE gt_techattr
                  FROM uja_dim_attr CLIENT SPECIFIED
                  FOR ALL ENTRIES IN gt_except_t
                  WHERE mandt EQ sy-mandt
                  AND   appset_id EQ p_env
                  AND   dimension EQ p_dim
                  AND   attribute_name EQ gt_except_t-attrib.
                  IF sy-subrc EQ 0.
                    lcl_main=>create_alv2( ).
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
        ELSEIF p_reason EQ 30.
          SELECT SINGLE data_table desc_table
          INTO (gw_datatbl,gw_descrptbl)
          FROM uja_dimension CLIENT SPECIFIED
          WHERE mandt EQ sy-mandt
          AND   appset_id EQ p_env
          AND   dimension EQ p_dim.
          IF sy-subrc EQ 0.
    *        gt_except_t[] = gt_except[].
    *        SORT gt_except_t BY attrib.
    *        DELETE ADJACENT DUPLICATES FROM gt_except_t COMPARING attrib.
    *        IF gt_except_t IS NOT INITIAL.
            SELECT refdimension
            INTO TABLE gt_refdim
            FROM zbpcbt009 CLIENT SPECIFIED
    *          FOR ALL ENTRIES IN gt_except_t
            WHERE mandt EQ sy-mandt
            AND   appset_id EQ p_env
            AND   dimension EQ p_dim
            AND   attrib EQ p_attr."gt_except_t-attrib.
            IF sy-subrc EQ 0.
              gt_refdim_t[] = gt_refdim[].
              SORT gt_refdim_t BY dimension.
              DELETE ADJACENT DUPLICATES FROM gt_refdim_t COMPARING
              dimension.
              IF gt_refdim_t IS NOT INITIAL.
                SELECT data_table desc_table
                             INTO TABLE gt_refdata
                             FROM uja_dimension CLIENT SPECIFIED
                             FOR ALL ENTRIES IN gt_refdim_t
                             WHERE mandt EQ sy-mandt
                             AND   appset_id EQ p_env
                             AND   dimension EQ gt_refdim_t-dimension.
                IF sy-subrc EQ 0.
                  SELECT appset_id dimension tech_name attribute_name
                  caption
                  INTO TABLE gt_attr
                  FROM uja_dim_attr CLIENT SPECIFIED
                  WHERE mandt EQ sy-mandt
                  AND   appset_id EQ p_env
                  AND   dimension EQ p_dim.
                  IF sy-subrc EQ 0.
                    SELECT  tech_name
                    INTO TABLE gt_techattr
                    FROM uja_dim_attr CLIENT SPECIFIED
    *                  FOR ALL ENTRIES IN gt_except_t
                    WHERE mandt EQ sy-mandt
                    AND   appset_id EQ p_env
                    AND   dimension EQ p_dim
                      AND   attribute_name EQ p_attr."gt_except_t-attrib.
                    IF sy-subrc EQ 0.
                      REFRESH: gt_refdim_t.",gt_except_t.
                      lcl_main=>create_alv3( ).
                    ENDIF.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
    *      ENDIF.
    *      ENDIF.
        ENDIF.
      ENDIF.
    *&      Module  SHOW_ALV1  OUTPUT
    *&-------

    Yes you can, although you need to do it slightly differently, depending on what your 'original' form is doing.
    You end up having to do two things:
    1. In your second tabular form, you need to explicitly identify the relevant form fields using calls to the relevant APEX_ITEM functions - as well as this, you need to 'manually' specify the array number in the arguments for the function call, ensuring it doesn't overlap with your original form. Normally, this aspect is done for you.
    2. Create your own custom CRUD processes, referencing the above elements. There are a few threads floating around the forum relating to how to deal with this. Do a search for "APEX_APPLICATION.G_F" or "HTMLDB_APPLICATION.G_F" for pointers.
    Happy hunting!

  • Updated field in IC Agent Inbox

    Hi Forum,
    What is the "Updated" field in agent inbox? Am not able to see any values in that when I search for service requests. Please help me on how to show the updated date in that.
    Regards,
    Shridhar

    Hi Shridhar,
    I am afraid the "Updated" field is not managed at all.
    If you look at workbench component ICCMP_INBOX, view InboxItems, context > context nodes > tree structure > tree node proxy > double-clic on class CL_ICCMP_IN_INBOXITEMS_CN02, double-clic on method GET_LASTUPDATE. Statement "clear value." indicates no value is returned.
    Now you could enhance view ICCMP_INBOX,/InboxItems with custom code, and set your own content into method CL_ICCMP_IN_INBOXITEMS_CN02->GET_LASTUPDATE.
    Do not count on reporting framework to provide the value for that field. Although structure CRMT_REPORT_LOCATORLIST foresees it, it is not filled with value by search query: see method CL_CRM_QUERYAUI_RUN_BTIL->GET_RESULT_LIST to get exact list of fields returned. CREATED_AT_DATE field is part of it, but not  CHANGED_AT_DATE.
    But you may perform the re-read of last change date even in CL_ICCMP_IN_INBOXITEMS_CN02->GET_LASTUPDATE method, because SAP already takes advantage of user-buffering in function CRM_ORDER_READ.
    So adding following code to CL_ICCMP_IN_INBOXITEMS_CN02->GET_LASTUPDATE should show you correct last update
    data:
      lv_header_guid type crmt_object_guid,
      lt_guids       type crmt_object_guid_tab,
      ls_req_obj     type crmt_object_name,
      lt_req_obj     type crmt_object_name_tab,
      lt_orderadm_h  type crmt_orderadm_h_wrkt,
      lv_date        type sydatum,
      lv_time        type syuzeit.
    lv_header_guid ?= me->bo->get_property( 'GUID' ). 
    check lv_header_guid is not initial.
    insert lv_header_guid into table lt_guids.
    ls_req_obj = 'ORDERADM_H'.
    insert ls_req_obj into table lt_req_obj.
    call function 'CRM_ORDER_READ'
      exporting
        it_header_guid       = lt_guids
        it_requested_objects = lt_req_obj
      importing
        et_orderadm_h        = lt_orderadm_h
      exceptions
        others               = 4.
    if sy-subrc is initial.
      read table lt_orderadm_h into crmt_orderadm_h_wrk index 1.
      if sy-subrc is initial.
        CONVERT TIME STAMP crmt_orderadm_h_wrk-changed_at TIME ZONE sy-zonlo
            INTO DATE lv_date TIME lv_time.
      may need to convert first to strings
        concatenate lv_date lv_time into value separated by space.
      endif.
    endif.
    Hope you can use these ideas
    Kind regards
    Walter

  • How to display a variable in the message

    Hi all,
    I am developing an application where I am parking a document, can anyone please tell me how can I display the document number on the web dynpro screen with the message once the document has been parked. So far I have written the following code but this is just for displaying a message only and not the number:
    DATA lo_api_controller     TYPE REF TO if_wd_controller.
        DATA lo_message_manager    TYPE REF TO if_wd_message_manager.
    lo_api_controller ?= wd_this->wd_get_api( ).
        CALL METHOD lo_api_controller->get_message_manager
          RECEIVING
            message_manager = lo_message_manager.
        CALL METHOD lo_message_manager->report_success
          EXPORTING
            message_text = 'Document has been parked.'

    DATA lo_api_controller     TYPE REF TO if_wd_controller.
    DATA lo_message_manager    TYPE REF TO if_wd_message_manager.
    data lv_document_number    type        string.
    data lv_message_string        type        string.
    lo_api_controller ?= wd_this->wd_get_api( ).
        CALL METHOD lo_api_controller->get_message_manager
          RECEIVING
            message_manager = lo_message_manager.
    *** get document number in lv_document_number
    lv_document_number = .....
    *** form message string
    concatenate 'Document has been parked : Document No :' lv_document_number into lv_message_string.
        CALL METHOD lo_message_manager->report_success
          EXPORTING
            message_text = lv_message_string.

  • Syntax Error with EXPORT statement in ECC 6

    Hi All,
    I have one issue with EXPORT statement syntax.
    I have declared data like below:
    DATA: BEGIN OF mem_id,
              mandt LIKE sy-mandt,
              uname LIKE sy-uname,
              modno LIKE sy-modno,
            END OF mem_id.
    export the memory id
        EXPORT E_VBKOK XANZPK TEXTTAB XBOLNR TO MEMORY ID MEM_ID.
    When I am checking the syntax error i am getting like "MEM_ID" must be a character-type field (data type C, N, D or T). by "INTERFACE". by "INTERFACE". "INTERFACE". by "INTERFACE". by "INTERFACE".
    I know this statement would be like IMPORT ITAB TO JTAB FROM MEMORY ID 'table'. So I have written like below
    EXPORT E_VBKOK XANZPK TEXTTAB XBOLNR TO MEMORY ID 'MEM_ID'. But still it is throwing an error.
    Can you please let me know how can I resolve this?
    Regards,
    Jyothi CH.

    Hi Jyothi,
    data: l_var type string.
    concatenate '6' '8' into l_var separated by space.
    export l_var to memory id 'BB'.
    Here we have to declare the type(structure) for l_var not for BB
    and in another program
    data:l_var type string.
    import l_var from memory id 'BB'.
    write : l_var.

  • Adding a new field to search of Service Contracts

    Hi Experts,
    I have a requirement where in to add an existing field i.e your ref (sold_to) your_ref_sold field into the search criteria of Service Contrct .
    How to add the field to the Search .
    I have few questions here.
    1 need I use EEW to add the field to Search but its already existing?
    2 If not How to append the Structure crmst_query_src_btil and enhace it with field required?
    3 how to implement the BADI crm_rf_search_eew?
    Thanking You,
    Sree.

    The search help exit allows you to modify functionality of search help. If you add a new field to the
    parameter list that is not contained on the selection method you can manually populate it within the search
    help exit.
    This  would be performed within the u2018STEP DISPu2019 section. Once within this section all search help
    data has been retrieved and is stored in table RECORD_TAB (record_tab-string) as one long string value.
    Therefore you need to read table SHLP in-order to locate position of value within string.
    Example:
    To find position of personnel number (PERNR) within elemenory search
    help M_PREMN you would use the following code:
    Loop at record_tab.
         read table shlp-fielddescr into wa_shlp
                                       with key tabname   = 'M_PREMN'
                                                fieldname = 'PERNR'.
    You could then use this information in the following way, for
    example, to find a persons organisation unit:
          select  orgeh endda
            up to 1 rows
            from pa0001
            into (ld_orgeh,ld_endda)
           where pernr eq record_tab-string+wa_shlp-offset(8)
                                                      u201Cpernr length is 8
           order by endda descending.
          endselect.
          select single orgtx
            from t527x
            into ld_orgtxt
           where orgeh eq ld_orgeh and
                 sprsl eq sy-langu and
               ( endda ge sy-datum and
                 begda le sy-datum ).
    If you have added a new field to the end of the parameters list
    the next step is to populate it by adding this data to the end of
    the record_tab string:
      concatenate record_tab-string ld_orgtxt into record_tab-string.
      modify record_tab.
    endloop.

  • Adding a new field to the search help exit

    Hi friends,
    adding a new field to the search help exit. How does it work ?
    Thanks in advace
    Ilhan

    The search help exit allows you to modify functionality of search help. If you add a new field to the
    parameter list that is not contained on the selection method you can manually populate it within the search
    help exit.
    This  would be performed within the u2018STEP DISPu2019 section. Once within this section all search help
    data has been retrieved and is stored in table RECORD_TAB (record_tab-string) as one long string value.
    Therefore you need to read table SHLP in-order to locate position of value within string.
    Example:
    To find position of personnel number (PERNR) within elemenory search
    help M_PREMN you would use the following code:
    Loop at record_tab.
         read table shlp-fielddescr into wa_shlp
                                       with key tabname   = 'M_PREMN'
                                                fieldname = 'PERNR'.
    You could then use this information in the following way, for
    example, to find a persons organisation unit:
          select  orgeh endda
            up to 1 rows
            from pa0001
            into (ld_orgeh,ld_endda)
           where pernr eq record_tab-string+wa_shlp-offset(8)
                                                      u201Cpernr length is 8
           order by endda descending.
          endselect.
          select single orgtx
            from t527x
            into ld_orgtxt
           where orgeh eq ld_orgeh and
                 sprsl eq sy-langu and
               ( endda ge sy-datum and
                 begda le sy-datum ).
    If you have added a new field to the end of the parameters list
    the next step is to populate it by adding this data to the end of
    the record_tab string:
      concatenate record_tab-string ld_orgtxt into record_tab-string.
      modify record_tab.
    endloop.

Maybe you are looking for

  • Report - S_PLO_86000030 -  G/L A/C Balance

    Hi, In the above mentioned report we are not able to get Account Number. Only description is available. Is there any way get the Account Number in this report.? Bye, Ramesh

  • Creating setup file for java project

    hi My project has java files, properties files,batch files as well as two jar files,mail.jar & activation.jar(for importing packages). I have to include these jar files while setting environment variables. Now i want to make setup file for myproject

  • Patch Policy for EBS

    Does anyone have a comprehensive list of all technology that requires security patching in the oracle EBS and supporting infrastructure? I'd prefer comments as opposed to endless links. And possibly if you could provide a split of what Oracle will pa

  • Usb0 Interface Isn't Showing As Available?

    First of all, I've never used usbnet before, and I HAVE searched the forums & google for answers. For some reason, I can't seem to activate usb0 interface.  I was trying to tether my android phone, instead of having to use the mobile AP over wifi.  I

  • Drilling/linking queries

    Hi, I am pretty new to BO and Crystal, hence may be asking basic queries. But I am starting a new thread after searching through the various forums and doing a few rounds of googling. 1. Drill/links on graphs. Clicking on the lines/bars inside a grap