使用ABAP代码动态创建Netweaver数据库表
发布日期:2021-06-30 14:06:39 浏览次数:2 分类:技术文章

本文共 41963 字,大约阅读时间需要 139 分钟。

REPORT  /ext/value_tab_tool.* ----------------------------------------------------------------------------------------* Variables* ----------------------------------------------------------------------------------------DATA: lv_dom_name       TYPE char32,      lv_dtel_name      TYPE char32,      lv_dbtab1_name    TYPE char32,      lv_dbtab2_name    TYPE char32,      lv_view_name      TYPE char32,      lv_fugr_name      TYPE char32,      lv_maintview_name TYPE char32,      lv_text           TYPE bapi_msg.DATA: lv_guid           TYPE sysuuid-c,      lv_mandt_guid     TYPE sysuuid-c,      lv_codevalue_guid TYPE sysuuid-c,      lv_language_guid  TYPE sysuuid-c,      lv_parent_guid    TYPE sysuuid-c,      lv_parent_guid2   TYPE sysuuid-c,      lv_parent_guid3   TYPE sysuuid-c.DATA: lv_ddobjname      TYPE ddobjname.DATA: lv_gotstate       TYPE ddgotstate.DATA: ls_dd02v          TYPE dd02v.DATA: lv_objname        TYPE sobj_name.DATA: lv_table          TYPE dfies-lfieldname.DATA: lv_exists         TYPE xfeld VALUE 'X'.DATA: lv_fieldvalue     TYPE char255.* ----------------------------------------------------------------------------------------* internal tables and structures* ----------------------------------------------------------------------------------------DATA: lt_new_object         TYPE comt_gox_def_header,      ls_new_object         TYPE coms_gox_def_header.DATA: lt_old_object         TYPE comt_gox_def_header,      ls_old_object         TYPE coms_gox_def_header.DATA: ls_new_object_details TYPE coms_gox_table_entry_fields,      ls_new_object_text    TYPE coms_gox_def_text.DATA: lt_returntab          TYPE bapirettab,      lt_resulttab          TYPE bapirettab,      ls_return             TYPE bapiret2,      ls_result             TYPE bapiret2.DATA: lt_transport          TYPE comt_gox_trans_object,      ls_transport          TYPE coms_gox_trans_object.DATA: ls_tadir              TYPE tadir.* ----------------------------------------------------------------------------------------* Input-Screen with matchcodes* ----------------------------------------------------------------------------------------SELECTION-SCREEN: BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.PARAMETER: p_table TYPE char14 OBLIGATORY MATCHCODE OBJECT dd_bastab_for_view.PARAMETER: p_fldlen TYPE num2 OBLIGATORY.PARAMETER: p_devcl TYPE devclass OBLIGATORY MATCHCODE OBJECT devclass.PARAMETER: p_transp TYPE tr_trkorr MATCHCODE OBJECT seef_mig_trkorr.SELECTION-SCREEN: END OF BLOCK a1.* ----------------------------------------------------------------------------------------* Testing for already existing table and table/parts with error-message* ----------------------------------------------------------------------------------------AT SELECTION-SCREEN.  IF p_fldlen > 30.    MESSAGE text-003 TYPE 'E'.  ENDIF.  IF p_fldlen < 1.    MESSAGE text-004 TYPE 'E'.  ENDIF.  IF p_devcl <> '$TMP' AND p_transp IS INITIAL.    MESSAGE text-023 TYPE 'E'.  ENDIF.* ----------------------------------------------------------------------------------------* Existence-Checks (are there any objects already existing)* ----------------------------------------------------------------------------------------* Is Domain already existing  CONCATENATE p_table '_DOM' INTO lv_dom_name.  lv_ddobjname = lv_dom_name.  CALL FUNCTION 'DDIF_DOMA_GET' "#EC FB_OLDED    EXPORTING      name     = lv_ddobjname      state    = ''      langu    = sy-langu    IMPORTING      gotstate = lv_gotstate.  IF NOT lv_gotstate IS INITIAL.    CLEAR lv_gotstate.    MESSAGE text-008 TYPE 'E'.    LEAVE TO SCREEN 1000.  ELSE.    lv_exists = space.  ENDIF.* Is Dataelement already existing  CONCATENATE p_table '_DT' INTO lv_dtel_name.  lv_ddobjname = lv_dtel_name.  CALL FUNCTION 'DDIF_DTEL_GET' "#EC FB_OLDED    EXPORTING      name     = lv_ddobjname      state    = 'A'      langu    = sy-langu    IMPORTING      gotstate = lv_gotstate.  IF NOT lv_gotstate IS INITIAL.    CLEAR lv_gotstate.    MESSAGE text-013 TYPE 'E'.    LEAVE TO SCREEN 1000.  ELSE.    lv_exists = space.  ENDIF.* Is Text-Table already existing  CONCATENATE p_table '_T' INTO lv_dbtab2_name.  lv_ddobjname = lv_dbtab2_name.  CALL FUNCTION 'DDIF_TABL_GET' "#EC FB_OLDED    EXPORTING      name     = lv_ddobjname      state    = 'A'      langu    = sy-langu    IMPORTING      gotstate = lv_gotstate.  IF NOT lv_gotstate IS INITIAL.    CLEAR lv_gotstate.    MESSAGE text-021 TYPE 'E'.    LEAVE TO SCREEN 1000.  ELSE.    lv_exists = space.  ENDIF.* Is Name-Table already existing  lv_dbtab1_name = p_table.  lv_ddobjname = lv_dbtab1_name.  CALL FUNCTION 'DDIF_TABL_GET' "#EC FB_OLDED    EXPORTING      name     = lv_ddobjname      state    = 'A'      langu    = sy-langu    IMPORTING      gotstate = lv_gotstate.  IF NOT lv_gotstate IS INITIAL.    CLEAR lv_gotstate.    MESSAGE text-020 TYPE 'E'.    LEAVE TO SCREEN 1000.  ELSE.    lv_exists = space.  ENDIF.** Is View already existing*  CONCATENATE p_table '_V' INTO lv_view_name.*  lv_ddobjname = lv_view_name.*  CALL FUNCTION 'DDIF_VIEW_GET'*    EXPORTING*      name     = lv_ddobjname*      state    = 'A'*      langu    = sy-langu*    IMPORTING*      gotstate = lv_gotstate.*  IF NOT lv_gotstate IS INITIAL.*    CLEAR lv_gotstate.*    MESSAGE text-022 TYPE 'E'.*    LEAVE TO SCREEN 1000.*  ELSE.*    lv_exists = space.*  ENDIF.*** Is Function-Group already existing*  CONCATENATE p_table '_FUGR' INTO lv_fugr_name.*  lv_objname = lv_fugr_name.*  SELECT SINGLE * FROM tadir INTO ls_tadir*       WHERE pgmid = 'R3TR'*         AND object = 'FUGR'*         AND obj_name = lv_objname.*  IF sy-subrc = 0.*    MESSAGE text-024 TYPE 'E'.*    LEAVE TO SCREEN 1000.*  ELSE.*    lv_exists = space.*  ENDIF.START-OF-SELECTION.* ----------------------------------------------------------------------------------------  CHECK lv_exists = space.* ----------------------------------------------------------------------------------------* Create Domain* ----------------------------------------------------------------------------------------  REFRESH: lt_new_object,           ls_new_object-details,           lt_old_object.  CLEAR: ls_new_object_details.  ls_new_object-object_type = 'DOMAIN'.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  ls_new_object-object_name = lv_dom_name.  ls_new_object_details-fieldname = 'DATATYPE'.  ls_new_object_details-fieldvalue = 'CHAR'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'LENG'.  ls_new_object_details-fieldvalue = p_fldlen.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.  CLEAR ls_return.  REFRESH lt_returntab.  CALL FUNCTION 'GOX_GEN_DOMA_STD'    EXPORTING      iv_object_name = lv_dom_name      it_object_new  = lt_new_object      it_object_old  = lt_old_object      iv_devclass    = p_devcl      iv_request_wb  = p_transp      iv_part_gen    = ''    IMPORTING      et_bapireturn  = lt_returntab.  IF NOT lt_returntab IS INITIAL.    READ TABLE lt_returntab INTO ls_return WITH KEY type = 'E'.    IF sy-subrc = 0.      MESSAGE ls_return-message TYPE ls_return-type.      LEAVE TO SCREEN 1000.    ELSE.      CONCATENATE text-005 lv_dom_name text-007 p_fldlen INTO lv_text SEPARATED BY space.      ls_result-message = lv_text.      ls_result-type = 'I'.      APPEND ls_result TO lt_resulttab.      CLEAR ls_result.    ENDIF.  ELSE.    CONCATENATE text-005 lv_dom_name text-007 p_fldlen INTO lv_text SEPARATED BY space.    ls_result-message = lv_text.    ls_result-type = 'I'.    APPEND ls_result TO lt_resulttab.    CLEAR ls_result.  ENDIF.* ----------------------------------------------------------------------------------------* Create Data-Element* ----------------------------------------------------------------------------------------  REFRESH: lt_new_object,           ls_new_object-details,           lt_old_object.  CLEAR: ls_new_object_details.  ls_new_object-object_type = 'DATA_ELEMENT'.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  ls_new_object-object_name = lv_dtel_name.  ls_new_object_details-fieldname = 'ROLLNAME'.  ls_new_object_details-fieldvalue = lv_dom_name.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'DOMNAME'.  ls_new_object_details-fieldvalue = lv_dom_name.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'DDLANGUAGE'.  ls_new_object_details-fieldvalue = sy-langu.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'AUTHCLASS'.  ls_new_object_details-fieldvalue = '10'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.  CLEAR ls_return.  REFRESH lt_returntab.  CALL FUNCTION 'GOX_GEN_DTEL_STD'    EXPORTING      iv_object_name = lv_dtel_name      it_object_new  = lt_new_object      it_object_old  = lt_old_object      iv_devclass    = p_devcl      iv_request_wb  = p_transp      iv_part_gen    = ''    IMPORTING      et_bapireturn  = lt_returntab.  IF NOT lt_returntab IS INITIAL.    READ TABLE lt_returntab INTO ls_return WITH KEY type = 'E'.    IF sy-subrc = 0.      MESSAGE ls_return-message TYPE ls_return-type.      LEAVE TO SCREEN 1000.    ELSE.      CONCATENATE text-012 lv_dtel_name INTO lv_text SEPARATED BY space.      ls_result-message = lv_text.      ls_result-type = 'I'.      APPEND ls_result TO lt_resulttab.      CLEAR ls_result.    ENDIF.  ELSE.    CONCATENATE text-012 lv_dtel_name INTO lv_text SEPARATED BY space.    ls_result-message = lv_text.    ls_result-type = 'I'.    APPEND ls_result TO lt_resulttab.    CLEAR ls_result.  ENDIF.* ----------------------------------------------------------------------------------------* Create value table* ----------------------------------------------------------------------------------------  REFRESH: lt_new_object,           ls_new_object-details,           lt_old_object.  CLEAR: ls_new_object_details.* fill Details* Header  ls_new_object-object_type = 'TABLE'.  ls_new_object-object_name = lv_dbtab1_name.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  lv_parent_guid = ls_new_object-key_guid.  ls_new_object_details-fieldname = 'TABCLASS'.  ls_new_object_details-fieldvalue = 'TRANSP'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'TABKAT'.  ls_new_object_details-fieldvalue = '0'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'TABART'.  ls_new_object_details-fieldvalue = 'APPL2'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'PUFFERUNG'.  ls_new_object_details-fieldvalue = ' '.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'CONTFLAG'.  ls_new_object_details-fieldvalue = 'S'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'MAINFLAG'.  ls_new_object_details-fieldvalue = 'X'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'BUFFALLOW'.  ls_new_object_details-fieldvalue = 'N'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'SCHFELDANZ'.  ls_new_object_details-fieldvalue = '0'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.* Fields* 1. Code value  ls_new_object-object_type = 'TABLE_FIELD'.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  ls_new_object-parent_key = lv_parent_guid.  lv_parent_guid = lv_guid.  ls_new_object-object_name = 'CODE_VALUE'.  ls_new_object_details-fieldname = 'POSITION'.  ls_new_object_details-fieldvalue = '1'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'KEYFLAG'.  ls_new_object_details-fieldvalue = 'X'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'NOTNULL'.  ls_new_object_details-fieldvalue = 'X'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'ROLLNAME'.  ls_new_object_details-fieldvalue = lv_dtel_name.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.  CLEAR ls_return.  REFRESH lt_returntab.  CLEAR lv_parent_guid.* Call function  lv_dbtab1_name = p_table.  CALL FUNCTION 'GOX_GEN_TABLE_STD'    EXPORTING      iv_object_name = lv_dbtab1_name      it_object_new  = lt_new_object      it_object_old  = lt_old_object      iv_devclass    = p_devcl      iv_request_wb  = p_transp      iv_part_gen    = ''    IMPORTING      et_bapireturn  = lt_returntab.  IF NOT lt_returntab IS INITIAL.    READ TABLE lt_returntab INTO ls_return WITH KEY type = 'E'.    IF sy-subrc = 0.      MESSAGE ls_return-message TYPE ls_return-type.      LEAVE TO SCREEN 1000.    ELSE.      CONCATENATE text-014 lv_dbtab1_name INTO lv_text SEPARATED BY space.      ls_result-message = lv_text.      ls_result-type = 'I'.      APPEND ls_result TO lt_resulttab.      CLEAR ls_result.    ENDIF.  ELSE.    CONCATENATE text-014 lv_dbtab1_name INTO lv_text SEPARATED BY space.    ls_result-message = lv_text.    ls_result-type = 'I'.    APPEND ls_result TO lt_resulttab.    CLEAR ls_result.  ENDIF.* Enable SE16 maintenance  lv_ddobjname = lv_dbtab1_name.  CALL FUNCTION 'DDIF_TABL_GET' "#EC FB_OLDED    EXPORTING      name          = lv_ddobjname      state         = 'A'      langu         = sy-langu    IMPORTING      dd02v_wa      = ls_dd02v    EXCEPTIONS      illegal_input = 1      OTHERS        = 2.  IF sy-subrc <> 0.  ENDIF.  ls_dd02v-mainflag = 'X'.  CALL FUNCTION 'DDIF_TABL_PUT' "#EC FB_OLDED    EXPORTING      name              = lv_ddobjname      dd02v_wa          = ls_dd02v    EXCEPTIONS      tabl_not_found    = 1      name_inconsistent = 2      tabl_inconsistent = 3      put_failure       = 4      put_refused       = 5      OTHERS            = 6.  IF sy-subrc <> 0.  ENDIF.  CALL FUNCTION 'DDIF_TABL_ACTIVATE' "#EC FB_OLDED    EXPORTING      name     = lv_ddobjname      auth_chk = ' '.  IF sy-subrc <> 0.  ENDIF.* ----------------------------------------------------------------------------------------* Create value text table* ----------------------------------------------------------------------------------------  REFRESH: lt_new_object,           ls_new_object-details,           lt_old_object.  CLEAR ls_new_object_details.* fill Details* Header  ls_new_object-object_type = 'TABLE'.  ls_new_object-object_name = lv_dbtab2_name.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  lv_parent_guid = ls_new_object-key_guid.  ls_new_object_details-fieldname = 'TABCLASS'.  ls_new_object_details-fieldvalue = 'TRANSP'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'TABKAT'.  ls_new_object_details-fieldvalue = '0'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'TABART'.  ls_new_object_details-fieldvalue = 'APPL2'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'PUFFERUNG'.  ls_new_object_details-fieldvalue = ' '.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'CONTFLAG'.  ls_new_object_details-fieldvalue = 'S'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'BUFFALLOW'.  ls_new_object_details-fieldvalue = 'N'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'SCHFELDANZ'.  ls_new_object_details-fieldvalue = '0'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.* Fields* 1. Code value  ls_new_object-object_type = 'TABLE_FIELD'.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  lv_codevalue_guid = lv_guid.  ls_new_object-parent_key = lv_parent_guid.  ls_new_object-object_name = 'CODE_VALUE'.  ls_new_object_details-fieldname = 'POSITION'.  ls_new_object_details-fieldvalue = '1'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'KEYFLAG'.  ls_new_object_details-fieldvalue = 'X'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'NOTNULL'.  ls_new_object_details-fieldvalue = 'X'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'ROLLNAME'.  ls_new_object_details-fieldvalue = lv_dtel_name.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'CHECKTABLE'.  ls_new_object_details-fieldvalue = lv_dbtab1_name.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'FRKART'.  ls_new_object_details-fieldvalue = 'TEXT'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.* 2. Language  ls_new_object-object_type = 'TABLE_FIELD'.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  lv_language_guid = lv_guid.  ls_new_object-parent_key = lv_parent_guid.  ls_new_object-object_name = 'LANGUAGE'.  ls_new_object_details-fieldname = 'POSITION'.  ls_new_object_details-fieldvalue = '2'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'KEYFLAG'.  ls_new_object_details-fieldvalue = 'X'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'NOTNULL'.  ls_new_object_details-fieldvalue = 'X'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'LANGUFLAG'.  ls_new_object_details-fieldvalue = 'X'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'ROLLNAME'.  ls_new_object_details-fieldvalue = 'SPRAS'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'CHECKTABLE'.  ls_new_object_details-fieldvalue = 'T002'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'FRKART'.  ls_new_object_details-fieldvalue = 'KEY'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.* 3. Description  ls_new_object-object_type = 'TABLE_FIELD'.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  ls_new_object-parent_key = lv_parent_guid.  ls_new_object-object_name = 'DESCRIPTION'.  ls_new_object_details-fieldname = 'POSITION'.  ls_new_object_details-fieldvalue = '3'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'ROLLNAME'.  ls_new_object_details-fieldvalue = 'SAETEXT64'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.  CLEAR ls_return.  REFRESH lt_returntab.  CLEAR lv_parent_guid.* Foreign Keys* Code value  ls_new_object-object_type = 'TABLE_FIELD_KEY'.  ls_new_object-object_name = 'CODE_VALUE'.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  ls_new_object-parent_key = lv_codevalue_guid. "For foreign key CODEVALUE needed  ls_new_object_details-fieldname = 'FORTABLE'.  ls_new_object_details-fieldvalue = lv_dbtab2_name.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'PRIMPOS'.  ls_new_object_details-fieldvalue = '1'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'CHECKTABLE'.  ls_new_object_details-fieldvalue = lv_dbtab1_name.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'CHECKFIELD'.  ls_new_object_details-fieldvalue = 'CODEVALUE'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.* Language  ls_new_object-object_type = 'TABLE_FIELD_KEY'.  ls_new_object-object_name = 'LANGUAGE'.  TRY.      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(             ).    CATCH cx_uuid_error .  ENDTRY.  ls_new_object-key_guid = lv_guid.  ls_new_object-parent_key = lv_language_guid. "For foreign key LANGUAGE needed  ls_new_object_details-fieldname = 'FORTABLE'.  ls_new_object_details-fieldvalue = lv_dbtab2_name.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'PRIMPOS'.  ls_new_object_details-fieldvalue = '2'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'CHECKTABLE'.  ls_new_object_details-fieldvalue = 'T002'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  ls_new_object_details-fieldname = 'CHECKFIELD'.  ls_new_object_details-fieldvalue = 'LANGUAGE'.  APPEND ls_new_object_details TO ls_new_object-details.  CLEAR ls_new_object_details.  APPEND ls_new_object TO lt_new_object.  CLEAR ls_new_object.* Call function  CALL FUNCTION 'GOX_GEN_TABLE_STD'    EXPORTING      iv_object_name = lv_dbtab2_name      it_object_new  = lt_new_object      it_object_old  = lt_old_object      iv_devclass    = p_devcl      iv_request_wb  = p_transp      iv_part_gen    = ''    IMPORTING      et_bapireturn  = lt_returntab.  IF NOT lt_returntab IS INITIAL.    READ TABLE lt_returntab INTO ls_return WITH KEY type = 'E'.    IF sy-subrc = 0.      MESSAGE ls_return-message TYPE ls_return-type.      LEAVE TO SCREEN 1000.    ELSE.      CONCATENATE text-015 lv_dbtab2_name INTO lv_text SEPARATED BY space.      ls_result-message = lv_text.      ls_result-type = 'I'.      APPEND ls_result TO lt_resulttab.      CLEAR ls_result.    ENDIF.  ELSE.    CONCATENATE text-015 lv_dbtab2_name INTO lv_text SEPARATED BY space.    ls_result-message = lv_text.    ls_result-type = 'I'.    APPEND ls_result TO lt_resulttab.    CLEAR ls_result.  ENDIF.* Enable SE16 maintenance  lv_ddobjname = lv_dbtab2_name.  CALL FUNCTION 'DDIF_TABL_GET' "#EC FB_OLDED    EXPORTING      name          = lv_ddobjname      state         = 'A'      langu         = sy-langu    IMPORTING      dd02v_wa      = ls_dd02v    EXCEPTIONS      illegal_input = 1      OTHERS        = 2.  IF sy-subrc <> 0.  ENDIF.  ls_dd02v-mainflag = 'X'.  CALL FUNCTION 'DDIF_TABL_PUT' "#EC FB_OLDED    EXPORTING      name              = lv_ddobjname      dd02v_wa          = ls_dd02v    EXCEPTIONS      tabl_not_found    = 1      name_inconsistent = 2      tabl_inconsistent = 3      put_failure       = 4      put_refused       = 5      OTHERS            = 6.  IF sy-subrc <> 0.  ENDIF.  CALL FUNCTION 'DDIF_TABL_ACTIVATE' "#EC FB_OLDED    EXPORTING      name     = lv_ddobjname      auth_chk = ' '.  IF sy-subrc <> 0.  ENDIF.** ----------------------------------------------------------------------------------------** Create Maintenance-View for both tables above** ----------------------------------------------------------------------------------------** View for both Tables** ----------------------------------------------------------------------------------------**  REFRESH: lt_new_object,*           ls_new_object-details,*           lt_old_object.*  CLEAR: ls_new_object_details.** fill Details** Header*  ls_new_object-object_type = 'VIEW'.*  ls_new_object-object_name = lv_view_name.*  ls_new_object_text-language = sy-langu.*  ls_new_object_text-description = lv_view_name.*  APPEND ls_new_object_text TO ls_new_object-object_text.*  CLEAR ls_new_object_text.*  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.*  lv_parent_guid = lv_guid.** Header-Details*  ls_new_object_details-fieldname = 'AGGTYPE'.*  ls_new_object_details-fieldvalue = 'V'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROOTTAB'.*  ls_new_object_details-fieldvalue = lv_dbtab1_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'VIEWCLASS'.*  ls_new_object_details-fieldvalue = 'C'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ACTFLAG'.*  ls_new_object_details-fieldvalue = 'X'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'MASTERLANG'.*  ls_new_object_details-fieldvalue = sy-langu.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  APPEND ls_new_object TO lt_new_object.*  CLEAR ls_new_object.*** Join Relationships** In a Maintenance View you only can join tables by the foreign keys** For that you can see the join-records in table DD26S.** Attention: By the Client is the Foreign-Key-Table the same than the Value-Table.**            Also the fields FORFIELD and FORDIR have to be empty.*  ls_new_object-object_type = 'VIEW_JOIN_RELATIONS'.*  ls_new_object-object_name = '0001'.              "TABPOS will be filled with that*  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.*  lv_parent_guid3 = lv_guid.*  ls_new_object-parent_key = lv_parent_guid.** Join Relationships Details*  ls_new_object_details-fieldname = 'TABNAME'.*  ls_new_object_details-fieldvalue = lv_dbtab1_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FORTABNAME'.*  ls_new_object_details-fieldvalue = lv_dbtab1_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  APPEND ls_new_object TO lt_new_object.*  CLEAR ls_new_object.*  REFRESH ls_new_object-details.**  ls_new_object-object_type = 'VIEW_JOIN_RELATIONS'.*  ls_new_object-object_name = '0002'.              "TABPOS will be filled with that*  ls_new_object-parent_key = lv_parent_guid.*  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.*  ls_new_object-parent_key = lv_parent_guid.*  ls_new_object_details-fieldname = 'TABNAME'.*  ls_new_object_details-fieldvalue = lv_dbtab2_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FORTABNAME'.*  ls_new_object_details-fieldvalue = lv_dbtab1_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FORFIELD'.*  ls_new_object_details-fieldvalue = 'CODEVALUE'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FORDIR'.*  ls_new_object_details-fieldvalue = 'I'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  APPEND ls_new_object TO lt_new_object.*  CLEAR ls_new_object.*  REFRESH ls_new_object-details.*** Fields*  ls_new_object-object_type = 'VIEW_FIELDS'.**  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.** Attention: Here the parent-key have to be the key_guid. Otherwise the function** will fill a wrong table-name in the input-structure and the view will not be** activated*  ls_new_object-parent_key = lv_guid.** field-details** Client*  ls_new_object-object_name = 'MANDT'.*  ls_new_object_details-fieldname = 'OBJPOS'.*  ls_new_object_details-fieldvalue = '1'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'TABNAME'.*  ls_new_object_details-fieldvalue = lv_dbtab1_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FIELDNAME'.*  ls_new_object_details-fieldvalue = 'MANDT'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'VIEWFIELD'.*  ls_new_object_details-fieldvalue = 'MANDT'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'KEYFLAG'.*  ls_new_object_details-fieldvalue = 'X'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROLLNAME'.*  ls_new_object_details-fieldvalue = 'MANDT'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROLLNAMEVI'.*  ls_new_object_details-fieldvalue = 'MANDT'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  APPEND ls_new_object TO lt_new_object.*  REFRESH ls_new_object-details.** Codevalue*  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.** Attention: Here the parent-key have to be the key_guid. Otherwise the function** will fill a wrong table-name in the input-structure and the view will not be** activated*  ls_new_object-parent_key = lv_guid.*  ls_new_object-object_name = 'CODEVALUE'.*  ls_new_object_details-fieldname = 'OBJPOS'.*  ls_new_object_details-fieldvalue = '2'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'VIEWFIELD'.*  ls_new_object_details-fieldvalue = 'CODEVALUE'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'TABNAME'.*  ls_new_object_details-fieldvalue = lv_dbtab1_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FIELDNAME'.*  ls_new_object_details-fieldvalue = 'CODEVALUE'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'KEYFLAG'.*  ls_new_object_details-fieldvalue = 'X'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROLLNAME'.*  ls_new_object_details-fieldvalue = lv_dtel_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROLLNAMEVI'.*  ls_new_object_details-fieldvalue = lv_dtel_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  APPEND ls_new_object TO lt_new_object.*  REFRESH ls_new_object-details.*** SPRAS*  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.** Attention: Here the parent-key have to be the key_guid. Otherwise the function** will fill a wrong table-name in the input-structure and the view will not be** activated*  ls_new_object-parent_key = lv_guid.*  ls_new_object-object_name = 'SPRAS'.*  ls_new_object_details-fieldname = 'OBJPOS'.*  ls_new_object_details-fieldvalue = '3'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'VIEWFIELD'.*  ls_new_object_details-fieldvalue = 'SPRAS'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'TABNAME'.*  ls_new_object_details-fieldvalue = lv_dbtab2_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FIELDNAME'.*  ls_new_object_details-fieldvalue = 'SPRAS'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'KEYFLAG'.*  ls_new_object_details-fieldvalue = 'X'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROLLNAME'.*  ls_new_object_details-fieldvalue = 'SPRAS'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROLLNAMEVI'.*  ls_new_object_details-fieldvalue = 'SPRAS'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  APPEND ls_new_object TO lt_new_object.*  REFRESH ls_new_object-details.*** Description*  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.** Attention: Here the parent-key have to be the key_guid. Otherwise the function** will fill a wrong table-name in the input-structure and the view will not be** activated*  ls_new_object-parent_key = lv_guid.*  ls_new_object-object_name = 'DESCRIPTION'.*  ls_new_object_details-fieldname = 'OBJPOS'.*  ls_new_object_details-fieldvalue = '4'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'VIEWFIELD'.*  ls_new_object_details-fieldvalue = 'DESCRIPTION'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'TABNAME'.*  ls_new_object_details-fieldvalue = lv_dbtab2_name.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FIELDNAME'.*  ls_new_object_details-fieldvalue = 'DESCRIPTION'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROLLNAME'.*  ls_new_object_details-fieldvalue = 'SAETEXT64'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'ROLLNAMEVI'.*  ls_new_object_details-fieldvalue = 'SAETEXT64'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'KEYFLAG'.*  ls_new_object_details-fieldvalue = ''.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.**  APPEND ls_new_object TO lt_new_object.*  CLEAR ls_new_object.*  REFRESH ls_new_object-details.*** Call function*  CLEAR ls_return.*  REFRESH lt_returntab.*  CALL FUNCTION 'GOX_GEN_VIEW_STD'*    EXPORTING*      iv_object_name = lv_view_name*      it_object_new  = lt_new_object*      it_object_old  = lt_old_object*      iv_devclass    = p_devcl*      iv_request_wb  = p_transp*      iv_part_gen    = ''*    IMPORTING*      et_bapireturn  = lt_returntab.*  IF NOT lt_returntab IS INITIAL.*    READ TABLE lt_returntab INTO ls_return WITH KEY type = 'E'.*    IF sy-subrc = 0.*      MESSAGE ls_return-message TYPE ls_return-type.*      LEAVE TO SCREEN 1000.*    ELSE.*      CONCATENATE text-016 lv_view_name INTO lv_text SEPARATED BY space.*      ls_result-message = lv_text.*      ls_result-type = 'I'.*      APPEND ls_result TO lt_resulttab.*      CLEAR ls_result.*    ENDIF.*  ELSE.*    CONCATENATE text-016 lv_view_name INTO lv_text SEPARATED BY space.*    ls_result-message = lv_text.*    ls_result-type = 'I'.*    APPEND ls_result TO lt_resulttab.*    CLEAR ls_result.*  ENDIF.** ----------------------------------------------------------------------------------------** Create Function-Group** ----------------------------------------------------------------------------------------**  REFRESH: lt_new_object,*           ls_new_object-details,*           lt_old_object.**  CLEAR: ls_new_object_details.** fill Details** Header*  ls_new_object-object_type = 'FUNCTION_GROUP'.*  ls_new_object-object_name = lv_fugr_name.*  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.*  APPEND ls_new_object TO lt_new_object.*  CLEAR ls_new_object.** Call function*  CLEAR ls_return.*  REFRESH lt_returntab.*  CALL FUNCTION 'GOX_GEN_FUNCTION_GROUP'*    EXPORTING*      iv_object_name = lv_fugr_name*      it_object_new  = lt_new_object*      it_object_old  = lt_old_object*      iv_devclass    = p_devcl*      iv_request_wb  = p_transp*      iv_part_gen    = ''*    IMPORTING*      et_bapireturn  = lt_returntab.*  IF NOT lt_returntab IS INITIAL.*    READ TABLE lt_returntab INTO ls_return WITH KEY type = 'E'.*    IF sy-subrc = 0.*      MESSAGE ls_return-message TYPE ls_return-type.*      LEAVE TO SCREEN 1000.*    ELSE.*      CONCATENATE text-018 lv_fugr_name INTO lv_text SEPARATED BY space.*      ls_result-message = lv_text.*      ls_result-type = 'I'.*      APPEND ls_result TO lt_resulttab.*      CLEAR ls_result.*    ENDIF.*  ELSE.*    CONCATENATE text-018 lv_fugr_name INTO lv_text SEPARATED BY space.*    ls_result-message = lv_text.*    ls_result-type = 'I'.*    APPEND ls_result TO lt_resulttab.*    CLEAR ls_result.*  ENDIF.*** ----------------------------------------------------------------------------------------** Bind the tables to the new function-group and create a transport-task for it (like SE54)** ----------------------------------------------------------------------------------------** ========================>>>> hier gehts weiter - C5049302*  REFRESH: lt_new_object,*           ls_new_object-details,*           lt_old_object.*  CLEAR: ls_new_object_details.** Fill Details** Header*  ls_new_object-object_type = 'VIEWMAINT'.*  ls_new_object-object_name = lv_view_name.*  TRY.*      lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(*             ).*    CATCH cx_uuid_error .*  ENDTRY.*  ls_new_object-key_guid = lv_guid.*  ls_new_object_details-fieldname = 'FUNCTIONSGROUP'.*  ls_new_object_details-fieldvalue = lv_fugr_name..*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'LISTE'.*  ls_new_object_details-fieldvalue = '501'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'TYPE'.*  ls_new_object_details-fieldvalue = '1'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  ls_new_object_details-fieldname = 'FUGR_OWNER'.*  ls_new_object_details-fieldvalue = 'X'.*  APPEND ls_new_object_details TO ls_new_object-details.*  CLEAR ls_new_object_details.*  APPEND ls_new_object TO lt_new_object.*  CLEAR ls_new_object.*** Call function*  CLEAR ls_return.*  REFRESH lt_returntab.*  CALL FUNCTION 'GOX_GEN_VIEWMAINT'*    EXPORTING*      iv_object_name = lv_view_name*      it_object_new  = lt_new_object*      it_object_old  = lt_old_object*      iv_devclass    = p_devcl*      iv_request_wb  = p_transp*      iv_part_gen    = ''*    IMPORTING*      et_bapireturn  = lt_returntab.*  IF NOT lt_returntab IS INITIAL.*    READ TABLE lt_returntab INTO ls_return WITH KEY type = 'E'.*    IF sy-subrc = 0.*      MESSAGE ls_return-message TYPE ls_return-type.*      LEAVE TO SCREEN 1000.*    ELSE.*      CONCATENATE text-019 lv_view_name INTO lv_text SEPARATED BY space.*      ls_result-message = lv_text.*      ls_result-type = 'I'.*      APPEND ls_result TO lt_resulttab.*      CLEAR ls_result.*    ENDIF.*  ELSE.*    CONCATENATE text-019 lv_view_name INTO lv_text SEPARATED BY space.*    ls_result-message = lv_text.*    ls_result-type = 'I'.*    APPEND ls_result TO lt_resulttab.*    CLEAR ls_result.*  ENDIF.*** ----------------------------------------------------------------------------------------** END-OF-PROGRAM.** ----------------------------------------------------------------------------------------* Read Results  LOOP AT lt_resulttab INTO ls_result.    WRITE: /1 ls_result-type, ls_result-message.  ENDLOOP.  WRITE: /1 text-006.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

转载地址:https://jerry.blog.csdn.net/article/details/104034310 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ABAP面试题系列:只用位操作实现两个整数的加法运算
下一篇:使用CRM_ORDER_MAINTAIN修改SAP CRM订单抬头的描述信息

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月08日 19时10分33秒