<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Urgent:Problems in Function Module in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387379#M188514</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am new to ABAP,My requirement is to extract long text(160 char) from CRM to BW for that i used standard FM RSAX_BIW_GET_DATA_SIMPLE in that I have called another FM Read_text which will pull the required text based on parameters which i passed from table CRMD_ORDERADM_H and now my problem in that is when I append GUID,Langu and Long text to E_T_DATA, which is my structure through which i replicate that data to BW, as GUID is primary key it must not repeat but it is. When i loop through number of lines of text and append the guid langu and text to E_T_DATA with text, langu and guid is also repeating. This is my FM:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION Z_CRMORDERH_STR_TXT.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local Interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR&lt;/P&gt;&lt;P&gt;*"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL&lt;/P&gt;&lt;P&gt;*"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL&lt;/P&gt;&lt;P&gt;*"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL&lt;/P&gt;&lt;P&gt;*"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL&lt;/P&gt;&lt;P&gt;*"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL&lt;/P&gt;&lt;P&gt;*"      I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL&lt;/P&gt;&lt;P&gt;*"      E_T_DATA STRUCTURE  ZCRM_TEXT_STR OPTIONAL&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      NO_MORE_DATA&lt;/P&gt;&lt;P&gt;*"      ERROR_PASSED_TO_MESS_HANDLER&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***"  EXCEPTIONS     NO_MORE_DATA&lt;/P&gt;&lt;P&gt;*"      ERROR_PASSED_TO_MESS_HANDLER&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  tables: CRMD_ORDERADM_H.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Auxiliary Selection criteria structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; data: l_s_select type srsc_s_select.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Maximum number of lines for DB table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  statics: s_s_if type srsc_s_if_simple,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;counter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;         s_counter_datapakid like sy-tabix,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;cursor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;         s_cursor type cursor.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;data: i_crmtext type standard table of TLINE .&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  types: begin of xsreph ,&lt;/P&gt;&lt;P&gt;          GUID type CRMD_ORDERADM_H-guid,&lt;/P&gt;&lt;P&gt;        end of xsreph.&lt;/P&gt;&lt;P&gt;   data: i_guid type standard table of xsreph.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: xempl like  ZCRM_TEXT_STR occurs 0 with header line.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;  data: t_tab like dd03l-tabname.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Select ranges&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  ranges: l_r_guid for CRMD_ORDERADM_H-guid.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;         l_r_connid  for sflight-connid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Initialization mode (first call by SAPI) or data transfer mode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;(following calls) ?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  if i_initflag = sbiwa_c_flag_on.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;**************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Initialization: check input parameters&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;                buffer input parameters&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;                prepare data selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***************************************************************************&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Check DataSource validity&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    case i_dsource.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      when 'ZCRM_TEXT'.  " for S_SREPH1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      when others.&lt;/P&gt;&lt;P&gt;        if 1 = 2. message e009(r3). endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this is a typical log call. Please write every error message like this&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        &lt;/P&gt;&lt;P&gt;               log_write 'E'                  "message type&lt;/P&gt;&lt;P&gt;                  'R3'                 "message class&lt;/P&gt;&lt;P&gt;                  '009'                "message number&lt;/P&gt;&lt;P&gt;                i_dsource   "message variable 1&lt;/P&gt;&lt;P&gt;                  ' '.                 "message variable 2&lt;/P&gt;&lt;P&gt;        raise error_passed_to_mess_handler.&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;   append lines of i_t_select to s_s_if-t_select.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Fill parameter buffer for data extraction calls&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    s_s_if-requnr    = i_requnr.&lt;/P&gt;&lt;P&gt;    s_s_if-dsource = i_dsource.&lt;/P&gt;&lt;P&gt;    s_s_if-maxsize   = i_maxsize.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Fill field list table for an optimized select statement&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;(in case that there is no 1:1 relation between InfoSource fields&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;and database table fields this may be far from beeing trivial)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;   append lines of i_t_fields to s_s_if-t_fields.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;we will do our selection based on what is in the p table for the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;infoobject&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;  else.                 "Initialization mode or data extraction ?&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;***************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Data transfer: First Call      OPEN CURSOR + FETCH&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;               Following Calls FETCH only&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***************************************************************************&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;First data package -&amp;gt; OPEN CURSOR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    if s_counter_datapakid = 0.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Fill range tables BW will only pass down simple selection criteria&lt;/P&gt;&lt;/LI&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;    LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'GUID'.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING L_S_SELECT TO L_R_GUID.&lt;/P&gt;&lt;P&gt;        APPEND L_R_GUID.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      case i_dsource.&lt;/P&gt;&lt;P&gt;        when 'ZCRM_TEXT'.  " for S_SREPH1&lt;/P&gt;&lt;P&gt;          t_tab = 'CRMD_ORDERADM_H'.&lt;/P&gt;&lt;P&gt;      endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      select GUID&lt;/P&gt;&lt;P&gt;      from (t_tab)&lt;/P&gt;&lt;P&gt;      into table i_guid where   PROCESS_TYPE = 'ZACI'  and ( OBJECT_ID &amp;lt; '0000000042').&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     select tdname from stxh into i_text where tdobject = 'TEXT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     if sy-subrc ne 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       message e009(r3).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;this is a typical log call. Please write every error message like this&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       log_write 'E'                  "message type&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                 'R3'                 "message class&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                 '009'                "message number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                 i_dsource   "message variable 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                 'No master data found'.           "message variable 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       raise error_passed_to_mess_handler.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Determine number of database records to be read per FETCH statement&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;from input parameter I_MAXSIZE. If there is a one to one relation&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;between DataSource table lines and database entries, this is trivial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;In other cases, it may be impossible and some estimated value has to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;be determined.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     open cursor with hold s_cursor for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     select (s_s_if-t_fields) from CRMD_ORDERADM_H&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              where GUID in L_R_GUID .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;                               ENDIF.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Fetch records into interface table.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="5" type="ul"&gt;&lt;P&gt;  named E_T_'Name of extract structure'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   fetch next cursor s_cursor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              appending corresponding fields&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              of table e_t_data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              package size s_s_if-maxsize.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLOSE CURSOR S_CURSOR.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     RAISE NO_MORE_DATA.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;as we are doing this only once can use the select statement.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: l_guid type THEAD-TDNAME.&lt;/P&gt;&lt;P&gt;*data: I_TDNAME type THEAD-TDNAME.&lt;/P&gt;&lt;P&gt;data: st_guid type xsreph.&lt;/P&gt;&lt;P&gt;*data: I_TDTITLE type THEAD-TDTITLE.&lt;/P&gt;&lt;P&gt;data: st_crmtext type TLINE.&lt;/P&gt;&lt;P&gt;data: lan type THEAD-TDSPRAS.&lt;/P&gt;&lt;P&gt;lan = 'E'.&lt;/P&gt;&lt;P&gt;loop at i_guid into st_guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_guid = st_guid-guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CALL FUNCTION 'READ_TEXT'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLIENT                        = SY-MANDT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     ID                            = 'A002'&lt;/P&gt;&lt;P&gt;     LANGUAGE                      = lan&lt;/P&gt;&lt;P&gt;     NAME                          =  l_guid&lt;/P&gt;&lt;P&gt;     OBJECT                        = 'CRM_ORDERH'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ARCHIVE_HANDLE                = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOCAL_CAT                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   TABLES&lt;/P&gt;&lt;P&gt;     LINES                         = i_crmtext.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ID                            = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LANGUAGE                      = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NAME                          = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NOT_FOUND                     = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   OBJECT                        = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   REFERENCE_CHECK               = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WRONG_ACCESS_TO_ARCHIVE       = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   OTHERS                        = 8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;e_t_data-guid = l_guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at i_crmtext into st_crmtext.&lt;/P&gt;&lt;P&gt;move lan to e_t_data-langu.&lt;/P&gt;&lt;P&gt;move st_crmtext-tdline to e_t_data-description.&lt;/P&gt;&lt;P&gt;append e_t_data.&lt;/P&gt;&lt;P&gt;clear: st_crmtext.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;clear: st_guid, l_guid.&lt;/P&gt;&lt;P&gt;refresh: i_crmtext.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Would anyone please suggest me some solution for this. I appreciate it in advance. I gurantee of points for good solutions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Nagamani.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 09 Jul 2006 05:15:33 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-07-09T05:15:33Z</dc:date>
    <item>
      <title>Urgent:Problems in Function Module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387379#M188514</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am new to ABAP,My requirement is to extract long text(160 char) from CRM to BW for that i used standard FM RSAX_BIW_GET_DATA_SIMPLE in that I have called another FM Read_text which will pull the required text based on parameters which i passed from table CRMD_ORDERADM_H and now my problem in that is when I append GUID,Langu and Long text to E_T_DATA, which is my structure through which i replicate that data to BW, as GUID is primary key it must not repeat but it is. When i loop through number of lines of text and append the guid langu and text to E_T_DATA with text, langu and guid is also repeating. This is my FM:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION Z_CRMORDERH_STR_TXT.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local Interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR&lt;/P&gt;&lt;P&gt;*"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL&lt;/P&gt;&lt;P&gt;*"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL&lt;/P&gt;&lt;P&gt;*"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL&lt;/P&gt;&lt;P&gt;*"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL&lt;/P&gt;&lt;P&gt;*"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL&lt;/P&gt;&lt;P&gt;*"      I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL&lt;/P&gt;&lt;P&gt;*"      E_T_DATA STRUCTURE  ZCRM_TEXT_STR OPTIONAL&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      NO_MORE_DATA&lt;/P&gt;&lt;P&gt;*"      ERROR_PASSED_TO_MESS_HANDLER&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***"  EXCEPTIONS     NO_MORE_DATA&lt;/P&gt;&lt;P&gt;*"      ERROR_PASSED_TO_MESS_HANDLER&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  tables: CRMD_ORDERADM_H.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Auxiliary Selection criteria structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; data: l_s_select type srsc_s_select.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Maximum number of lines for DB table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  statics: s_s_if type srsc_s_if_simple,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;counter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;         s_counter_datapakid like sy-tabix,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;cursor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;         s_cursor type cursor.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;data: i_crmtext type standard table of TLINE .&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  types: begin of xsreph ,&lt;/P&gt;&lt;P&gt;          GUID type CRMD_ORDERADM_H-guid,&lt;/P&gt;&lt;P&gt;        end of xsreph.&lt;/P&gt;&lt;P&gt;   data: i_guid type standard table of xsreph.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: xempl like  ZCRM_TEXT_STR occurs 0 with header line.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;  data: t_tab like dd03l-tabname.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Select ranges&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  ranges: l_r_guid for CRMD_ORDERADM_H-guid.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;         l_r_connid  for sflight-connid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Initialization mode (first call by SAPI) or data transfer mode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;(following calls) ?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  if i_initflag = sbiwa_c_flag_on.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;**************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Initialization: check input parameters&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;                buffer input parameters&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;                prepare data selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***************************************************************************&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Check DataSource validity&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    case i_dsource.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      when 'ZCRM_TEXT'.  " for S_SREPH1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      when others.&lt;/P&gt;&lt;P&gt;        if 1 = 2. message e009(r3). endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this is a typical log call. Please write every error message like this&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        &lt;/P&gt;&lt;P&gt;               log_write 'E'                  "message type&lt;/P&gt;&lt;P&gt;                  'R3'                 "message class&lt;/P&gt;&lt;P&gt;                  '009'                "message number&lt;/P&gt;&lt;P&gt;                i_dsource   "message variable 1&lt;/P&gt;&lt;P&gt;                  ' '.                 "message variable 2&lt;/P&gt;&lt;P&gt;        raise error_passed_to_mess_handler.&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;   append lines of i_t_select to s_s_if-t_select.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Fill parameter buffer for data extraction calls&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    s_s_if-requnr    = i_requnr.&lt;/P&gt;&lt;P&gt;    s_s_if-dsource = i_dsource.&lt;/P&gt;&lt;P&gt;    s_s_if-maxsize   = i_maxsize.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Fill field list table for an optimized select statement&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;(in case that there is no 1:1 relation between InfoSource fields&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;and database table fields this may be far from beeing trivial)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;   append lines of i_t_fields to s_s_if-t_fields.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;we will do our selection based on what is in the p table for the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;infoobject&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;  else.                 "Initialization mode or data extraction ?&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;***************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Data transfer: First Call      OPEN CURSOR + FETCH&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;               Following Calls FETCH only&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***************************************************************************&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;First data package -&amp;gt; OPEN CURSOR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    if s_counter_datapakid = 0.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Fill range tables BW will only pass down simple selection criteria&lt;/P&gt;&lt;/LI&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;    LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'GUID'.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING L_S_SELECT TO L_R_GUID.&lt;/P&gt;&lt;P&gt;        APPEND L_R_GUID.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      case i_dsource.&lt;/P&gt;&lt;P&gt;        when 'ZCRM_TEXT'.  " for S_SREPH1&lt;/P&gt;&lt;P&gt;          t_tab = 'CRMD_ORDERADM_H'.&lt;/P&gt;&lt;P&gt;      endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      select GUID&lt;/P&gt;&lt;P&gt;      from (t_tab)&lt;/P&gt;&lt;P&gt;      into table i_guid where   PROCESS_TYPE = 'ZACI'  and ( OBJECT_ID &amp;lt; '0000000042').&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     select tdname from stxh into i_text where tdobject = 'TEXT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     if sy-subrc ne 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       message e009(r3).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;this is a typical log call. Please write every error message like this&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       log_write 'E'                  "message type&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                 'R3'                 "message class&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                 '009'                "message number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                 i_dsource   "message variable 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                 'No master data found'.           "message variable 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       raise error_passed_to_mess_handler.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Determine number of database records to be read per FETCH statement&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;from input parameter I_MAXSIZE. If there is a one to one relation&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;between DataSource table lines and database entries, this is trivial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;In other cases, it may be impossible and some estimated value has to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;be determined.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     open cursor with hold s_cursor for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     select (s_s_if-t_fields) from CRMD_ORDERADM_H&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              where GUID in L_R_GUID .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;                               ENDIF.&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Fetch records into interface table.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="5" type="ul"&gt;&lt;P&gt;  named E_T_'Name of extract structure'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   fetch next cursor s_cursor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              appending corresponding fields&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              of table e_t_data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              package size s_s_if-maxsize.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLOSE CURSOR S_CURSOR.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     RAISE NO_MORE_DATA.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;as we are doing this only once can use the select statement.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: l_guid type THEAD-TDNAME.&lt;/P&gt;&lt;P&gt;*data: I_TDNAME type THEAD-TDNAME.&lt;/P&gt;&lt;P&gt;data: st_guid type xsreph.&lt;/P&gt;&lt;P&gt;*data: I_TDTITLE type THEAD-TDTITLE.&lt;/P&gt;&lt;P&gt;data: st_crmtext type TLINE.&lt;/P&gt;&lt;P&gt;data: lan type THEAD-TDSPRAS.&lt;/P&gt;&lt;P&gt;lan = 'E'.&lt;/P&gt;&lt;P&gt;loop at i_guid into st_guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_guid = st_guid-guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CALL FUNCTION 'READ_TEXT'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLIENT                        = SY-MANDT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     ID                            = 'A002'&lt;/P&gt;&lt;P&gt;     LANGUAGE                      = lan&lt;/P&gt;&lt;P&gt;     NAME                          =  l_guid&lt;/P&gt;&lt;P&gt;     OBJECT                        = 'CRM_ORDERH'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ARCHIVE_HANDLE                = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOCAL_CAT                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   TABLES&lt;/P&gt;&lt;P&gt;     LINES                         = i_crmtext.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ID                            = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LANGUAGE                      = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NAME                          = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NOT_FOUND                     = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   OBJECT                        = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   REFERENCE_CHECK               = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WRONG_ACCESS_TO_ARCHIVE       = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   OTHERS                        = 8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;e_t_data-guid = l_guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at i_crmtext into st_crmtext.&lt;/P&gt;&lt;P&gt;move lan to e_t_data-langu.&lt;/P&gt;&lt;P&gt;move st_crmtext-tdline to e_t_data-description.&lt;/P&gt;&lt;P&gt;append e_t_data.&lt;/P&gt;&lt;P&gt;clear: st_crmtext.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;clear: st_guid, l_guid.&lt;/P&gt;&lt;P&gt;refresh: i_crmtext.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Would anyone please suggest me some solution for this. I appreciate it in advance. I gurantee of points for good solutions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Nagamani.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Jul 2006 05:15:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387379#M188514</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-09T05:15:33Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent:Problems in Function Module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387380#M188515</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Before passing GUID to READ_TEXT, delete the duplicate records as follows . This will populate the structre with unique GUID's. The structure can later on be extracted in BW.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;as we are doing this only once can use the select statement.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: l_guid type THEAD-TDNAME.&lt;/P&gt;&lt;P&gt;*data: I_TDNAME type THEAD-TDNAME.&lt;/P&gt;&lt;P&gt;data: st_guid type xsreph.&lt;/P&gt;&lt;P&gt;*data: I_TDTITLE type THEAD-TDTITLE.&lt;/P&gt;&lt;P&gt;data: st_crmtext type TLINE.&lt;/P&gt;&lt;P&gt;data: lan type THEAD-TDSPRAS.&lt;/P&gt;&lt;P&gt;lan = 'E'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT I_GUID BY GUID.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM I_GUID COMPARING GUID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at i_guid into st_guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_guid = st_guid-guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'READ_TEXT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLIENT = SY-MANDT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ID = 'A002'&lt;/P&gt;&lt;P&gt;LANGUAGE = lan&lt;/P&gt;&lt;P&gt;NAME = l_guid&lt;/P&gt;&lt;P&gt;OBJECT = 'CRM_ORDERH'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ARCHIVE_HANDLE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LOCAL_CAT = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;LINES = i_crmtext.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ID = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LANGUAGE = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NAME = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NOT_FOUND = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OBJECT = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;REFERENCE_CHECK = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRONG_ACCESS_TO_ARCHIVE = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;e_t_data-guid = l_guid.&lt;/P&gt;&lt;P&gt;move lan to e_t_data-langu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at i_crmtext into st_crmtext.&lt;/P&gt;&lt;P&gt;move st_crmtext-tdline to e_t_data-description.&lt;/P&gt;&lt;P&gt;append e_t_data.&lt;/P&gt;&lt;P&gt;clear: st_crmtext.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;clear: st_guid, l_guid.&lt;/P&gt;&lt;P&gt;refresh: i_crmtext.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Prashant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Jul 2006 05:53:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387380#M188515</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-09T05:53:42Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent:Problems in Function Module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387381#M188516</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U can try to use  SELECT DISTINCT statament to load the GUID:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select distinct GUID&lt;/P&gt;&lt;P&gt;from (t_tab)&lt;/P&gt;&lt;P&gt;into table i_guid where PROCESS_TYPE = 'ZACI' and ( OBJECT_ID &amp;lt; '0000000042').&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Max&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Jul 2006 06:12:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387381#M188516</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-09T06:12:17Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent:Problems in Function Module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387382#M188517</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Prashanth/Max,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I appreciate quick response but I think i didnot explained my problem to you properly.Actually GUID is repeating in 2nd loop statement when I append GUID,Langu and descrip to e_T_DATA but my requirement is that if we think that there are 5lines of text loop rotates 5times but guid must append e_t_data only once rather than 5times. the code is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;e_t_data-guid = l_guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at i_crmtext into st_crmtext.&lt;/P&gt;&lt;P&gt;move lan to e_t_data-langu.&lt;/P&gt;&lt;P&gt;move st_crmtext-tdline to e_t_data-description.&lt;/P&gt;&lt;P&gt;append e_t_data.*GUID is appending 5times if text has *5lines but it must come only once&lt;/P&gt;&lt;P&gt;clear: st_crmtext.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;clear: st_guid, l_guid.&lt;/P&gt;&lt;P&gt;refresh: i_crmtext.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Would you please suggest me some solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Venkat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Jul 2006 19:47:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-problems-in-function-module/m-p/1387382#M188517</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-09T19:47:02Z</dc:date>
    </item>
  </channel>
</rss>

