<?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 Re: CHAR23 in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688833#M888254</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;opps .. forgot this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function z_check_datatype.&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(CHAR_LENGTH) TYPE  INTEGER DEFAULT 135&lt;/P&gt;&lt;P&gt;*"  EXPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(RESULT) TYPE  BOOL&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;  data: wa_dd01l type dd01l.&lt;/P&gt;&lt;P&gt;  select single datatype leng&lt;/P&gt;&lt;P&gt;    into corresponding fields of wa_dd01l&lt;/P&gt;&lt;P&gt;    from dd01l&lt;/P&gt;&lt;P&gt;    where datatype eq 'CHAR' and leng eq char_length.&lt;/P&gt;&lt;P&gt;  if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;    result = 'Y'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    result = 'N'.&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;endfunction.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 03 Apr 2008 17:35:33 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-04-03T17:35:33Z</dc:date>
    <item>
      <title>CHAR23</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688830#M888251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good Day ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My app dynamically creates a DDIC Table.&lt;/P&gt;&lt;P&gt;Because I have no idea of what field lengths will be for CHAR types until runtime, I query DD01L for type = CHAR leng = n. If the query fails I increment n and query till a result is returned. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This method appears to work until CHAR(23). I find this odd as there is an entry in DD01L for type CHAR LENG 23.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;anyone have any thoughts ??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THANKS !!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Apr 2008 17:19:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688830#M888251</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-03T17:19:22Z</dc:date>
    </item>
    <item>
      <title>Re: CHAR23</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688831#M888252</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Could you post the routine to select the domain?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Apr 2008 17:22:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688831#M888252</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-03T17:22:18Z</dc:date>
    </item>
    <item>
      <title>Re: CHAR23</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688832#M888253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;function z_create_tabl .&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(ROWS) TYPE  INTEGER DEFAULT 1&lt;/P&gt;&lt;P&gt;*"     VALUE(COLS) TYPE  INTEGER DEFAULT 4&lt;/P&gt;&lt;P&gt;*"     VALUE(NAME) TYPE  CHAR30 DEFAULT 'ZDBC'&lt;/P&gt;&lt;P&gt;*"     VALUE(FIELD_NAMES) TYPE  CHAR1024 DEFAULT 'A|B|C|D'&lt;/P&gt;&lt;P&gt;*"     VALUE(COL_WIDTH) TYPE  CHAR1024 DEFAULT '4|135|4|4'&lt;/P&gt;&lt;P&gt;*"     VALUE(DATA_TYPE) TYPE  CHAR1024 DEFAULT 'I|C|I|C'&lt;/P&gt;&lt;P&gt;*"     VALUE(USER) TYPE  CHAR30 DEFAULT 'BRENCHLEY'&lt;/P&gt;&lt;P&gt;*"  EXPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(SAP_MESSAGE) TYPE  CHAR1024&lt;/P&gt;&lt;P&gt;*"     VALUE(COLS1) TYPE  INTEGER&lt;/P&gt;&lt;P&gt;*"     VALUE(DELIM1) TYPE  CHAR1&lt;/P&gt;&lt;P&gt;*"     VALUE(FIELD_NAMES1) TYPE  CHAR1024&lt;/P&gt;&lt;P&gt;*"     VALUE(TABNAME) TYPE  CHAR30&lt;/P&gt;&lt;P&gt;*"     VALUE(USER1) TYPE  CHAR30&lt;/P&gt;&lt;P&gt;*"     VALUE(DATA_TYPE1) TYPE  CHAR1024&lt;/P&gt;&lt;P&gt;*"     VALUE(COL_WIDTH1) TYPE  CHAR1024&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;  data f_cnt type integer.&lt;/P&gt;&lt;P&gt;  data f_name type char15.&lt;/P&gt;&lt;P&gt;  data f_type type char2.&lt;/P&gt;&lt;P&gt;  data f_width type char3.&lt;/P&gt;&lt;P&gt;  data f_width2 type i.&lt;/P&gt;&lt;P&gt;  data mem_area type char30.&lt;/P&gt;&lt;P&gt;  data delim type c value '|'.&lt;/P&gt;&lt;P&gt;  data repname type char30.&lt;/P&gt;&lt;P&gt;  data tmp type char72.&lt;/P&gt;&lt;P&gt;  data: fm type char24.&lt;/P&gt;&lt;P&gt;  data: f_dat type char1024.&lt;/P&gt;&lt;P&gt;  data: code type table of rssource-line.&lt;/P&gt;&lt;P&gt;  data: result type bool value 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  cols1 = cols.&lt;/P&gt;&lt;P&gt;  delim1 = delim.&lt;/P&gt;&lt;P&gt;  field_names1 = field_names.&lt;/P&gt;&lt;P&gt;  tabname = name.&lt;/P&gt;&lt;P&gt;  user1 = user.&lt;/P&gt;&lt;P&gt;  data_type1 = data_type.&lt;/P&gt;&lt;P&gt;  col_width1 = col_width.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate user 'B' into tmp.&lt;/P&gt;&lt;P&gt;  export delim1 to memory id tmp.&lt;/P&gt;&lt;P&gt;  concatenate user 'C' into tmp.&lt;/P&gt;&lt;P&gt;  export cols1 to memory id tmp.&lt;/P&gt;&lt;P&gt;  concatenate user 'D' into tmp.&lt;/P&gt;&lt;P&gt;  export field_names1 to memory id tmp.&lt;/P&gt;&lt;P&gt;  concatenate user 'E' into tmp.&lt;/P&gt;&lt;P&gt;  export tabname to memory id tmp.&lt;/P&gt;&lt;P&gt;  concatenate user 'F' into tmp.&lt;/P&gt;&lt;P&gt;  export user1 to memory id tmp.&lt;/P&gt;&lt;P&gt;  concatenate user 'G' into tmp.&lt;/P&gt;&lt;P&gt;  export data_type1 to memory id tmp.&lt;/P&gt;&lt;P&gt;  concatenate user 'H' into tmp.&lt;/P&gt;&lt;P&gt;  export col_width1 to memory id tmp.&lt;/P&gt;&lt;P&gt;  concatenate '''' name '''' into tabname.&lt;/P&gt;&lt;P&gt;  concatenate 'Z_BLD_STRUC_' user into repname.&lt;/P&gt;&lt;P&gt;  concatenate 'REPORT' repname '.' into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'TYPES: BEGIN OF mySTRUC,' to code.&lt;/P&gt;&lt;P&gt;  f_cnt = cols.&lt;/P&gt;&lt;P&gt;  while f_cnt &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    split field_names at delim into f_name field_names.&lt;/P&gt;&lt;P&gt;    split data_type at delim into f_type data_type.&lt;/P&gt;&lt;P&gt;    split col_width at delim into f_width col_width.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if f_type = 'C'.&lt;/P&gt;&lt;P&gt;      move f_width to f_width2.&lt;/P&gt;&lt;P&gt;      while result = 'N'.&lt;/P&gt;&lt;P&gt;        call function 'Z_CHECK_DATATYPE' " Check DD01L for CHAR of Length&lt;/P&gt;&lt;P&gt;          exporting char_length = f_width2&lt;/P&gt;&lt;P&gt;          importing result = result.&lt;/P&gt;&lt;P&gt;        if result = 'N'.&lt;/P&gt;&lt;P&gt;          f_width = f_width + 1.  "Adjust Field Width to suit DD01L&lt;/P&gt;&lt;P&gt;          move f_width to f_width2.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endwhile.&lt;/P&gt;&lt;P&gt;      f_type = ' C'.&lt;/P&gt;&lt;P&gt;      concatenate f_name'(' f_width') TYPE' f_type',' into tmp.&lt;/P&gt;&lt;P&gt;      append tmp to code.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      if f_type = 'P'.&lt;/P&gt;&lt;P&gt;        concatenate f_name 'TYPE' f_type 'DECIMALS 2,' into tmp separated by space.&lt;/P&gt;&lt;P&gt;        append tmp to code.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        concatenate f_name 'TYPE' f_type ',' into tmp separated by space.&lt;/P&gt;&lt;P&gt;        append tmp to code.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    f_cnt = f_cnt - 1.&lt;/P&gt;&lt;P&gt;  endwhile.&lt;/P&gt;&lt;P&gt;  append 'END OF mySTRUC.' to code.&lt;/P&gt;&lt;P&gt;  append 'FIELD-SYMBOLS:' to code.&lt;/P&gt;&lt;P&gt;  append '&amp;lt;theStruc&amp;gt; TYPE ANY,' to code.&lt;/P&gt;&lt;P&gt;  append '&amp;lt;theField&amp;gt; TYPE ANY.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: DELIM1 TYPE CHAR1.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: FIELD_NAMES1 TYPE CHAR1024.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: DATA_TYPE1 TYPE CHAR1024.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: COL_WIDTH1 TYPE CHAR1024.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: COLS1 TYPE INTEGER.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: TABLINE TYPE myStruc.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: F_DAT TYPE CHAR1024.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: F_NAME1 TYPE CHAR30.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: F_TYPE TYPE CHAR2.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: F_TYPE2 TYPE CHAR10.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: F_WIDTH TYPE CHAR4.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: F_WIDTH_2 TYPE INTEGER.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: TMP TYPE CHAR10.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: TABNAME TYPE CHAR30.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: TABDEF TYPE DD02V.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: TABTECH TYPE DD09L.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: TABFIELDS TYPE TABLE OF DD03P WITH HEADER LINE.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: CNTR TYPE INTEGER.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: USER1 TYPE CHAR30.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: KEY_DONE TYPE BOOL.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: CHAR_CNT TYPE INTEGER.' to code.&lt;/P&gt;&lt;P&gt;  append 'DATA: CHAR_CNT_2 TYPE INTEGER.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'DATA:' name 'TYPE STANDARD TABLE OF mySTRUC WITH HEADER LINE.' into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IMPORT DELIM1 FROM MEMORY ID ' '''' user 'B' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IMPORT COLS1 FROM MEMORY ID ' '''' user 'C' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IMPORT FIELD_NAMES1 FROM MEMORY ID ' '''' user 'D' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IMPORT TABNAME FROM MEMORY ID ' '''' user 'E' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IMPORT USER1 FROM MEMORY ID ' '''' user 'F' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IMPORT DATA_TYPE1 FROM MEMORY ID ' '''' user 'G' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IMPORT COL_WIDTH1 FROM MEMORY ID ' '''' user 'H' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'ASSIGN TABLINE TO &amp;lt;theStruc&amp;gt;.' to code.&lt;/P&gt;&lt;P&gt;  append 'TABDEF-TABNAME = TABNAME.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABDEF-TABCLASS =' '''' 'TRANSP' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'TABDEF-DDLANGUAGE = sy-langu.' to code.&lt;/P&gt;&lt;P&gt;  append 'TABDEF-LANGDEP = sy-langu.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABDEF-DDTEXT =' '''' 'DYNAMIC TABLE CREATED VIA RFC' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABDEF-CONTFLAG =' '''' 'C' '''' '.'  into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'TABTECH-TABNAME = TABNAME.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABTECH-TABART =' '''' 'APPL0' '''' '.'  into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABTECH-TABKAT =' '''' '6' '''' '.'  into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABTECH-ACTFLAG =' '''' 'X' '''' '.'  into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'KEY_DONE =' '''' 'N' '''' '.'  into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'WHILE COLS1 &amp;gt; 0.' to code.&lt;/P&gt;&lt;P&gt;  append 'CNTR = CNTR + 1.' to code.&lt;/P&gt;&lt;P&gt;  append 'SPLIT FIELD_NAMES1 AT DELIM1 INTO F_NAME1 FIELD_NAMES1.' to code.&lt;/P&gt;&lt;P&gt;  append 'SPLIT DATA_TYPE1 AT DELIM1 INTO F_TYPE DATA_TYPE1.' to code.&lt;/P&gt;&lt;P&gt;  append 'SPLIT COL_WIDTH1 AT DELIM1 INTO F_WIDTH COL_WIDTH1.' to code.&lt;/P&gt;&lt;P&gt;  append 'ASSIGN COMPONENT F_NAME1 OF STRUCTURE &amp;lt;theStruc&amp;gt; to &amp;lt;theField&amp;gt;.' to code.&lt;/P&gt;&lt;P&gt;  append '&amp;lt;theField&amp;gt; = F_DAT.' to code.&lt;/P&gt;&lt;P&gt;  append '"================================================' to code.&lt;/P&gt;&lt;P&gt;  append 'CASE F_TYPE.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WHEN ' '''' 'C' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'CONCATENATE' ' ' ''''  'CHAR' '''' ' ' 'F_WIDTH into TMP.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'F_TYPE2 = TMP.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WHEN ' '''' 'I' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'F_TYPE2 = ' '''' 'INTEGER' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WHEN ' '''' 'D' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'F_TYPE2 = ' '''' 'DATS' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WHEN ' '''' 'T' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'F_TYPE2 = ' '''' 'TIMS' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WHEN ' '''' 'F' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'F_TYPE2 = ' '''' 'FLOAT' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WHEN ' '''' 'P' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'F_TYPE2 = ' '''' 'SRMCURR' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'ENDCASE.' to code.&lt;/P&gt;&lt;P&gt;  append '"================================================' to code.&lt;/P&gt;&lt;P&gt;  append 'CLEAR TABFIELDS.' to code.&lt;/P&gt;&lt;P&gt;  append 'TABFIELDS-TABNAME = TABNAME.' to code.&lt;/P&gt;&lt;P&gt;  append 'TABFIELDS-FIELDNAME = F_NAME1.' to code.&lt;/P&gt;&lt;P&gt;  append 'MOVE F_WIDTH TO F_WIDTH_2.' to code.&lt;/P&gt;&lt;P&gt;  append 'CHAR_CNT = CHAR_CNT_2 + F_WIDTH_2.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IF KEY_DONE =' '''' 'N' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'IF CHAR_CNT &amp;lt; 120.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABFIELDS-KEYFLAG =' '''' 'X' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'CHAR_CNT_2 = CHAR_CNT + F_WIDTH_2.' to code.&lt;/P&gt;&lt;P&gt;  append 'ELSE.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABFIELDS-KEYFLAG =' '''' ' ' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'KEY_DONE =' '''' 'Y' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'ENDIF.' to code.&lt;/P&gt;&lt;P&gt;  append 'ENDIF.' to code.&lt;/P&gt;&lt;P&gt;  append 'TABFIELDS-ROLLNAME = F_TYPE2.' to code.&lt;/P&gt;&lt;P&gt;  append 'TABFIELDS-POSITION = CNTR.' to code.&lt;/P&gt;&lt;P&gt;  append 'TABFIELDS-DATATYPE = F_TYPE.' to code.&lt;/P&gt;&lt;P&gt;  append 'TABFIELDS-LENG = F_WIDTH.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'IF f_type =' '''' 'P' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABFIELDS-REFTABLE =' '''' 'TCURX' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'TABFIELDS-REFFIELD =' '''' 'CURRKEY' '''' '.'  into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'ENDIF.' to code.&lt;/P&gt;&lt;P&gt;  append 'APPEND TABFIELDS.' to code.&lt;/P&gt;&lt;P&gt;  append 'COLS1 = COLS1 - 1.' to code.&lt;/P&gt;&lt;P&gt;  append 'ENDWHILE.' to code.&lt;/P&gt;&lt;P&gt;  concatenate 'APPEND TABLINE TO' name '.' into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'COMMIT WORK.' to code.&lt;/P&gt;&lt;P&gt;  concatenate '''' 'DDIF_TABL_PUT' '''' into fm.&lt;/P&gt;&lt;P&gt;  concatenate 'CALL FUNCTION' fm into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'EXPORTING NAME =' tabname into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'DD02V_WA = TABDEF' to code.&lt;/P&gt;&lt;P&gt;  append 'DD09L_WA = TABTECH' to code.&lt;/P&gt;&lt;P&gt;  append 'TABLES DD03P_TAB = TABFIELDS' to code.&lt;/P&gt;&lt;P&gt;  append 'EXCEPTIONS' to code.&lt;/P&gt;&lt;P&gt;  append 'TABL_NOT_FOUND = 1' to code.&lt;/P&gt;&lt;P&gt;  append 'NAME_INCONSISTENT = 2' to code.&lt;/P&gt;&lt;P&gt;  append 'TABL_INCONSISTENT = 3' to code.&lt;/P&gt;&lt;P&gt;  append 'PUT_FAILURE = 4' to code.&lt;/P&gt;&lt;P&gt;  append 'PUT_REFUSED = 5' to code.&lt;/P&gt;&lt;P&gt;  append 'OTHERS = 6.' to code.&lt;/P&gt;&lt;P&gt;  append 'IF SY-SUBRC &amp;lt;&amp;gt; 0.' to code.&lt;/P&gt;&lt;P&gt;  append 'MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO' to code.&lt;/P&gt;&lt;P&gt;  append 'WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.' to code.&lt;/P&gt;&lt;P&gt;  append 'ELSE.' to code.&lt;/P&gt;&lt;P&gt;  append 'COMMIT WORK.' to code.&lt;/P&gt;&lt;P&gt;  append 'ENDIF.' to code.&lt;/P&gt;&lt;P&gt;  concatenate '''' 'DDIF_TABL_ACTIVATE' '''' into fm.&lt;/P&gt;&lt;P&gt;  concatenate 'CALL FUNCTION' fm into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'EXPORTING NAME =' tabname into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'EXCEPTIONS' to code.&lt;/P&gt;&lt;P&gt;  append 'NOT_FOUND = 1' to code.&lt;/P&gt;&lt;P&gt;  append 'PUT_FAILURE = 2' to code.&lt;/P&gt;&lt;P&gt;  append 'OTHERS = 3.' to code.&lt;/P&gt;&lt;P&gt;  append 'IF SY-SUBRC &amp;lt;&amp;gt; 0.' to code.&lt;/P&gt;&lt;P&gt;  append 'MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO' to code.&lt;/P&gt;&lt;P&gt;  append 'WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.' to code.&lt;/P&gt;&lt;P&gt;  append 'ELSE.' to code.&lt;/P&gt;&lt;P&gt;  append 'COMMIT WORK.' to code.&lt;/P&gt;&lt;P&gt;  append 'ENDIF.' to code.&lt;/P&gt;&lt;P&gt;  concatenate '''' 'TR_TADIR_INTERFACE' '''' into fm.&lt;/P&gt;&lt;P&gt;  concatenate '''' name '''' into tabname.&lt;/P&gt;&lt;P&gt;  concatenate 'CALL FUNCTION' fm into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'EXPORTING WI_TADIR_OBJ_NAME =' tabname into tmp separated by space.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WI_TADIR_OBJECT =' '''' 'TABL' ''''  into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WI_TADIR_PGMID =' '''' 'R3TR' '''' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WI_TADIR_AUTHOR =' '''' user1 ''''  into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  concatenate 'WI_TADIR_DEVCLASS =' '''' '$TMP' '''' '.' into tmp.&lt;/P&gt;&lt;P&gt;  append tmp to code.&lt;/P&gt;&lt;P&gt;  append 'IF SY-SUBRC &amp;lt;&amp;gt; 0.' to code.&lt;/P&gt;&lt;P&gt;  append 'MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO' to code.&lt;/P&gt;&lt;P&gt;  append 'WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.' to code.&lt;/P&gt;&lt;P&gt;  append 'ELSE.' to code.&lt;/P&gt;&lt;P&gt;  append 'COMMIT WORK.' to code.&lt;/P&gt;&lt;P&gt;  append 'ENDIF.' to code.&lt;/P&gt;&lt;P&gt;  insert report repname from code.&lt;/P&gt;&lt;P&gt;  submit (repname) and return.&lt;/P&gt;&lt;P&gt;  free memory.&lt;/P&gt;&lt;P&gt;  clear code.&lt;/P&gt;&lt;P&gt;  sap_message = 'Table Created. Uploading Data...'.&lt;/P&gt;&lt;P&gt;endfunction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;+++++++++++++++++++++++++++++++++++++++++&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report z_bld_struc_bcuser .&lt;/P&gt;&lt;P&gt;types: begin of mystruc,&lt;/P&gt;&lt;P&gt;int_1 type i ,&lt;/P&gt;&lt;P&gt;char_2(13) type c,&lt;/P&gt;&lt;P&gt;char_3(14) type c,&lt;/P&gt;&lt;P&gt;char_4(7) type c,&lt;/P&gt;&lt;P&gt;char_5(10) type c,&lt;/P&gt;&lt;P&gt;char_6(9) type c,&lt;/P&gt;&lt;P&gt;char_7(4) type c,&lt;/P&gt;&lt;P&gt;char_8(38) type c,&lt;/P&gt;&lt;P&gt;end of mystruc.&lt;/P&gt;&lt;P&gt;field-symbols:&lt;/P&gt;&lt;P&gt;&amp;lt;thestruc&amp;gt; type any,&lt;/P&gt;&lt;P&gt;&amp;lt;thefield&amp;gt; type any.&lt;/P&gt;&lt;P&gt;data: delim1 type char1.&lt;/P&gt;&lt;P&gt;data: field_names1 type char1024.&lt;/P&gt;&lt;P&gt;data: data_type1 type char1024.&lt;/P&gt;&lt;P&gt;data: col_width1 type char1024.&lt;/P&gt;&lt;P&gt;data: cols1 type integer.&lt;/P&gt;&lt;P&gt;data: tabline type mystruc.&lt;/P&gt;&lt;P&gt;data: f_dat type char1024.&lt;/P&gt;&lt;P&gt;data: f_name1 type char30.&lt;/P&gt;&lt;P&gt;data: f_type type char2.&lt;/P&gt;&lt;P&gt;data: f_type2 type char10.&lt;/P&gt;&lt;P&gt;data: f_width type char4.&lt;/P&gt;&lt;P&gt;data: f_width_2 type integer.&lt;/P&gt;&lt;P&gt;data: tmp type char10.&lt;/P&gt;&lt;P&gt;data: tabname type char30.&lt;/P&gt;&lt;P&gt;data: tabdef type dd02v.&lt;/P&gt;&lt;P&gt;data: tabtech type dd09l.&lt;/P&gt;&lt;P&gt;data: tabfields type table of dd03p with header line.&lt;/P&gt;&lt;P&gt;data: cntr type integer.&lt;/P&gt;&lt;P&gt;data: user1 type char30.&lt;/P&gt;&lt;P&gt;data: key_done type bool.&lt;/P&gt;&lt;P&gt;data: char_cnt type integer.&lt;/P&gt;&lt;P&gt;data: char_cnt_2 type integer.&lt;/P&gt;&lt;P&gt;data: zaa6 type standard table of mystruc with header line.&lt;/P&gt;&lt;P&gt;import delim1 from memory id'BCUSERB'.&lt;/P&gt;&lt;P&gt;import cols1 from memory id'BCUSERC'.&lt;/P&gt;&lt;P&gt;import field_names1 from memory id'BCUSERD'.&lt;/P&gt;&lt;P&gt;import tabname from memory id'BCUSERE'.&lt;/P&gt;&lt;P&gt;import user1 from memory id'BCUSERF'.&lt;/P&gt;&lt;P&gt;import data_type1 from memory id'BCUSERG'.&lt;/P&gt;&lt;P&gt;import col_width1 from memory id'BCUSERH'.&lt;/P&gt;&lt;P&gt;assign tabline to &amp;lt;thestruc&amp;gt;.&lt;/P&gt;&lt;P&gt;tabdef-tabname = tabname.&lt;/P&gt;&lt;P&gt;tabdef-tabclass ='TRANSP'.&lt;/P&gt;&lt;P&gt;tabdef-ddlanguage = sy-langu.&lt;/P&gt;&lt;P&gt;tabdef-langdep = sy-langu.&lt;/P&gt;&lt;P&gt;tabdef-ddtext ='DYNAMIC TABLE CREATED VIA RFC'.&lt;/P&gt;&lt;P&gt;tabdef-contflag ='C'.&lt;/P&gt;&lt;P&gt;tabtech-tabname = tabname.&lt;/P&gt;&lt;P&gt;tabtech-tabart ='APPL0'.&lt;/P&gt;&lt;P&gt;tabtech-tabkat ='6'.&lt;/P&gt;&lt;P&gt;tabtech-actflag ='X'.&lt;/P&gt;&lt;P&gt;key_done ='N'.&lt;/P&gt;&lt;P&gt;while cols1 &amp;gt; 0.&lt;/P&gt;&lt;P&gt;  cntr = cntr + 1.&lt;/P&gt;&lt;P&gt;  split field_names1 at delim1 into f_name1 field_names1.&lt;/P&gt;&lt;P&gt;  split data_type1 at delim1 into f_type data_type1.&lt;/P&gt;&lt;P&gt;  split col_width1 at delim1 into f_width col_width1.&lt;/P&gt;&lt;P&gt;  assign component f_name1 of structure &amp;lt;thestruc&amp;gt; to &amp;lt;thefield&amp;gt;.&lt;/P&gt;&lt;P&gt;  &amp;lt;thefield&amp;gt; = f_dat.&lt;/P&gt;&lt;P&gt;  "================================================&lt;/P&gt;&lt;P&gt;  case f_type.&lt;/P&gt;&lt;P&gt;      when'C'.&lt;/P&gt;&lt;P&gt;      concatenate'CHAR'f_width into tmp.&lt;/P&gt;&lt;P&gt;      f_type2 = tmp.&lt;/P&gt;&lt;P&gt;      when'I'.&lt;/P&gt;&lt;P&gt;      f_type2 ='INTEGER'.&lt;/P&gt;&lt;P&gt;      when'D'.&lt;/P&gt;&lt;P&gt;      f_type2 ='DATS'.&lt;/P&gt;&lt;P&gt;      when'T'.&lt;/P&gt;&lt;P&gt;      f_type2 ='TIMS'.&lt;/P&gt;&lt;P&gt;      when'F'.&lt;/P&gt;&lt;P&gt;      f_type2 ='FLOAT'.&lt;/P&gt;&lt;P&gt;      when'P'.&lt;/P&gt;&lt;P&gt;      f_type2 ='SRMCURR'.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;  "================================================&lt;/P&gt;&lt;P&gt;  clear tabfields.&lt;/P&gt;&lt;P&gt;  tabfields-tabname = tabname.&lt;/P&gt;&lt;P&gt;  tabfields-fieldname = f_name1.&lt;/P&gt;&lt;P&gt;  move f_width to f_width_2.&lt;/P&gt;&lt;P&gt;  char_cnt = char_cnt_2 + f_width_2.&lt;/P&gt;&lt;P&gt;  if key_done ='N'.&lt;/P&gt;&lt;P&gt;    if char_cnt &amp;lt; 120.&lt;/P&gt;&lt;P&gt;      tabfields-keyflag ='X'.&lt;/P&gt;&lt;P&gt;      char_cnt_2 = char_cnt + f_width_2.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      tabfields-keyflag =''.&lt;/P&gt;&lt;P&gt;      key_done ='Y'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  tabfields-rollname = f_type2.&lt;/P&gt;&lt;P&gt;  tabfields-position = cntr.&lt;/P&gt;&lt;P&gt;  tabfields-datatype = f_type.&lt;/P&gt;&lt;P&gt;  tabfields-leng = f_width.&lt;/P&gt;&lt;P&gt;  if f_type ='P'.&lt;/P&gt;&lt;P&gt;    tabfields-reftable ='TCURX'.&lt;/P&gt;&lt;P&gt;    tabfields-reffield ='CURRKEY'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  append tabfields.&lt;/P&gt;&lt;P&gt;  cols1 = cols1 - 1.&lt;/P&gt;&lt;P&gt;endwhile.&lt;/P&gt;&lt;P&gt;append tabline to zaa6 .&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;call function 'DDIF_TABL_PUT'&lt;/P&gt;&lt;P&gt;  exporting&lt;/P&gt;&lt;P&gt;    name              = 'ZAA6'&lt;/P&gt;&lt;P&gt;    dd02v_wa          = tabdef&lt;/P&gt;&lt;P&gt;    dd09l_wa          = tabtech&lt;/P&gt;&lt;P&gt;  tables&lt;/P&gt;&lt;P&gt;    dd03p_tab         = tabfields&lt;/P&gt;&lt;P&gt;  exceptions&lt;/P&gt;&lt;P&gt;    tabl_not_found    = 1&lt;/P&gt;&lt;P&gt;    name_inconsistent = 2&lt;/P&gt;&lt;P&gt;    tabl_inconsistent = 3&lt;/P&gt;&lt;P&gt;    put_failure       = 4&lt;/P&gt;&lt;P&gt;    put_refused       = 5&lt;/P&gt;&lt;P&gt;    others            = 6.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;  commit work.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;call function 'DDIF_TABL_ACTIVATE'&lt;/P&gt;&lt;P&gt;  exporting&lt;/P&gt;&lt;P&gt;    name        = 'ZAA6'&lt;/P&gt;&lt;P&gt;  exceptions&lt;/P&gt;&lt;P&gt;    not_found   = 1&lt;/P&gt;&lt;P&gt;    put_failure = 2&lt;/P&gt;&lt;P&gt;    others      = 3.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;  commit work.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;call function 'TR_TADIR_INTERFACE'&lt;/P&gt;&lt;P&gt;  exporting&lt;/P&gt;&lt;P&gt;    wi_tadir_obj_name = 'ZAA6'&lt;/P&gt;&lt;P&gt;    wi_tadir_object&lt;/P&gt;&lt;P&gt;    ='TABL'&lt;/P&gt;&lt;P&gt;    wi_tadir_pgmid&lt;/P&gt;&lt;P&gt;    ='R3TR'&lt;/P&gt;&lt;P&gt;    wi_tadir_author&lt;/P&gt;&lt;P&gt;    ='BCUSER'&lt;/P&gt;&lt;P&gt;    wi_tadir_devclass&lt;/P&gt;&lt;P&gt;    ='$TMP'.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;  commit work.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Apr 2008 17:32:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688832#M888253</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-03T17:32:13Z</dc:date>
    </item>
    <item>
      <title>Re: CHAR23</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688833#M888254</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;opps .. forgot this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function z_check_datatype.&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(CHAR_LENGTH) TYPE  INTEGER DEFAULT 135&lt;/P&gt;&lt;P&gt;*"  EXPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(RESULT) TYPE  BOOL&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;  data: wa_dd01l type dd01l.&lt;/P&gt;&lt;P&gt;  select single datatype leng&lt;/P&gt;&lt;P&gt;    into corresponding fields of wa_dd01l&lt;/P&gt;&lt;P&gt;    from dd01l&lt;/P&gt;&lt;P&gt;    where datatype eq 'CHAR' and leng eq char_length.&lt;/P&gt;&lt;P&gt;  if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;    result = 'Y'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    result = 'N'.&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;endfunction.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Apr 2008 17:35:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688833#M888254</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-03T17:35:33Z</dc:date>
    </item>
    <item>
      <title>Re: CHAR23</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688834#M888255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You are looking at the domain table DD01L. Your selection provides you with 12 different domains. One of them is CHAR23. And you are constructing a line like&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;data: a type CHAR23.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;CHAR23 has to be a &lt;STRONG&gt;Data Element&lt;/STRONG&gt;!&lt;/P&gt;&lt;P&gt;And the correlation between Domain and Data Element can be viewed in table DD04L. In this table you will find that none of the previously selected 12 domains does have a data element CHAR23. Unfortunately all other domains do have an appropriate Data Element; CHAR22, CHAR21, CHAR20,.....CHAR2, CHAR1. CHAR24, CHAR25 ..... exists again. &lt;/P&gt;&lt;P&gt;Result:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;CHAR23 is missing in the Data element table DD04L.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to build in a different check, i.e. a modification of the FM z_check_datatype is required. Instead of DD01L, DD04L should be used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;Heinz&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Apr 2008 02:03:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688834#M888255</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-04T02:03:19Z</dc:date>
    </item>
    <item>
      <title>Re: CHAR23</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688835#M888256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Additional thought: why you don't use TYPE STRING?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let the sun shine,&lt;/P&gt;&lt;P&gt;Heinz&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Apr 2008 04:04:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688835#M888256</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-04T04:04:33Z</dc:date>
    </item>
    <item>
      <title>Re: CHAR23</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688836#M888257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;THANKS Heize ..&lt;/P&gt;&lt;P&gt;You can probably tell from my coding and naive questions, I'm new to this. I've modified my Z_CHECK_DATATYPE as shown below. This seems to work ..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With regard to your query as to why I'm not using strings ..&lt;/P&gt;&lt;P&gt;Z_Create_Table is an RFC, unfortunately TYPE STRING is unsupported, believe me I wish it were.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suppose the ultimate fix would be for me to define a new TYPE, but as I review the contents of DD01L, there seems to be an incredible amount of redundancy, just trying to prevent the addition of more glut.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THANKS again for your assist .. Dave&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function z_check_datatype.&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(CHAR_LENGTH) TYPE  INTEGER DEFAULT 23&lt;/P&gt;&lt;P&gt;*"  EXPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(RESULT) TYPE  BOOL&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;  data: wa_dd04l type dd04l.&lt;/P&gt;&lt;P&gt;  data: roll type char30.&lt;/P&gt;&lt;P&gt;  data: tmp type char5.&lt;/P&gt;&lt;P&gt;  move char_length to tmp.&lt;/P&gt;&lt;P&gt;  condense tmp.&lt;/P&gt;&lt;P&gt;  concatenate 'CHAR' tmp into roll.&lt;/P&gt;&lt;P&gt;  select single rollname datatype leng lowercase&lt;/P&gt;&lt;P&gt;    into corresponding fields of wa_dd04l&lt;/P&gt;&lt;P&gt;    from dd04l&lt;/P&gt;&lt;P&gt;    where rollname eq roll and datatype eq 'CHAR' and leng eq char_length and lowercase eq ''.&lt;/P&gt;&lt;P&gt;  if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;    result = 'Y'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    result = 'N'.&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;endfunction.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Apr 2008 15:58:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/char23/m-p/3688836#M888257</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-04T15:58:56Z</dc:date>
    </item>
  </channel>
</rss>

