Sie sind auf Seite 1von 159

REPORT Z_NOTE_2416906.

* Generated by SAP_LOCAL_DOWNPORT_ASSISTANT Version 5.85 on 27.01.2017 with opti


on DELTA
* The individual coding starts at 'FORM update_01.' ( line 5.589 )
* Review FORM update & FORM genview to see a complete list of changed objects
* Generation done for objects found in one of the following transports:
* EBJK360409
CONSTANTS: activation_mode VALUE '2', "1 = one step, 2 = two step
myrepid TYPE progname VALUE 'SAP_LOCAL_DOWNPORT_ASSISTANT',
step3_object TYPE sy-lisel VALUE 'Will be processed in step 3 (GENVIE
W)', "#EC NOTEXT
sapbasis TYPE sy-saprl VALUE '700 ', "SAP_BASIS release for which th
e report was generated; in lower releases it might get problems
approved_logical_objects TYPE string VALUE "#EC NOTEXT "also
check method pilot_user
'AOBJ-CHDO-IWPR-IWMO-IWSV-SUCD-SUSC-SUSK-DIOB-DTRF-DROU-' &
'DTRC-BSVO-BSVI-BSVV-SCP2-TOBJ-PCLA-DTMT-DTMU-DTMR-DTMS-' &
'PSCS-PMKS-PFCS-POCS-PCYS-LODS-LODE-LOIE-LODC-SHI3-SHI5-' &
'SHI6-ECTD-ELEM-SICF-SRFR-SRFS-SRFQ-SAJT-SAJC-SXCI-IOBJ-' &
'TRAN'.
DATA: BEGIN OF gc_objtext,
translation TYPE ddtext VALUE 'Translation', "#EC NOTEXT
blacklisted TYPE ddtext VALUE 'Blacklisted (note 2249880)', "#EC N
OTEXT
"DOCU
docu_status TYPE ddtext VALUE 'Documentation Status', "#EC NOTEXT
"REPT
report_title TYPE ddtext VALUE 'Report Title', "#EC NOTEXT
report_text TYPE ddtext VALUE 'Report Texts', "#EC NOTEXT
report_text_title TYPE ddtext VALUE 'Report Texts/Title', "#EC NOTEXT
"TABL
database_table TYPE ddtext VALUE 'Database Table', "#EC NOTEXT
global_temp_table TYPE ddtext VALUE 'Global Temporary Table', "#EC NOTEX
T
idoc_segment TYPE ddtext VALUE 'IDOC Segment Structure', "#EC NOTEX
T
structure TYPE ddtext VALUE 'Structure', "#EC NOTEXT
append TYPE ddtext VALUE 'Append', "#EC NOTEXT
frozen TYPE ddtext VALUE 'Structure (frozen)', "#EC NOTEXT
"TOBJ
log_transp_obj TYPE ddtext VALUE 'Definition of a Logical transport o
bject', "#EC NOTEXT
view_variant TYPE ddtext VALUE 'Definition of a Maintenance Object
(View Variant)', "#EC NOTEXT
"METH
amdp TYPE ddtext VALUE 'Method (AMDP)', "#EC NOTEXT
"CINC
unit_test TYPE ddtext VALUE 'Class Include (Unit Tests)', "#EC N
OTEXT
"ENHO
empty TYPE ddtext VALUE 'Empty', "#EC NOTEXT
badi_impl TYPE ddtext VALUE 'BADI Implementation', "#EC NOTEXT
notfound TYPE ddtext VALUE 'Not found', "#EC NOTEXT
unknown TYPE ddtext VALUE 'Unknown', "#EC NOTEXT
section TYPE ddtext VALUE 'Enh. Section', "#EC NOTEXT
section_multi TYPE ddtext VALUE 'Enh. Section (multiple)', "#EC NOTE
XT
point TYPE ddtext VALUE 'Enh. Point', "#EC NOTEXT
point_multi TYPE ddtext VALUE 'Enh. Point (multiple)', "#EC NOTEXT
point_imp TYPE ddtext VALUE 'Implicit Enh. Point', "#EC NOTEXT
overwrite TYPE ddtext VALUE 'Overwrite Exit', "#EC NOTEXT
parameter TYPE ddtext VALUE 'Parameter Enh.', "#EC NOTEXT
"TABU
imgtree TYPE ddtext VALUE 'IMG Tree Structure', "#EC NOTEXT
areamenu TYPE ddtext VALUE 'Area Menu', "#EC NOTEXT
END OF gc_objtext.
TYPE-POOLS: seox, seoc, seok, seex, bcwbn, ststc, trmtd, trexe, scua, trlog.
TYPES: t_switch_id TYPE char30, "sfw_switch_id does not exist in SAP_BASIS 640
t_bfunction TYPE char30, "sfw_bfunction does not exist in SAP_BASIS 640
* t_sfw_switch TYPE sfw_switch,
* BEGIN OF t_sfw_switch, switch_id TYPE t_switch_id, version, author TYPE
as4user, createdon TYPE as4date, changedby TYPE as4user, changedon TYPE as4date
,
* x_combi, x_ddic, timestamp TYPE timestamp, switch
_nr TYPE int2, END OF t_sfw_switch, "SFW_SWITCH
BEGIN OF t_bf_sw, switch_id TYPE t_switch_id, version, bfunction TYPE t_b
function, no_check, END OF t_bf_sw, "SFW_BF_SW
BEGIN OF t_sfw_package, switch_id TYPE t_switch_id, version, devclass TYP
E devclass, enhname(30), END OF t_sfw_package, "SFW_PACKAGE
BEGIN OF t_sfw_viewfield, viewname(30), fieldname(30), version, switch_id
(30), END OF t_sfw_viewfield,
BEGIN OF t_permission, client_pak(30), intf_name(30), err_sever(4), END O
F t_permission, "has to be in sync with structure permission
BEGIN OF t_ddldependency, ddlname(40), objectname(30), state, objecttype(
4), END OF t_ddldependency,
BEGIN OF t_hrdsys_docu, line_content(5), tdformat TYPE tdformat, tdline T
YPE tdline, END OF t_hrdsys_docu, "HRDSYS_DOCU_ITAB
t_molga TYPE char2, "MOLGA
t_otype TYPE char5, "HRDSYS_OTYPE
t_oname TYPE char20, "HRDSYS_ONAME
* t_phio_objid TYPE sdok_docid, "XYAb
BEGIN OF t_loio_h, id TYPE sdok_loid, otype TYPE sdok_prv_l, oname TYPE s
dok_prv_l, molga TYPE sdok_prv_s, END OF t_loio_h,
BEGIN OF t_loio, otype TYPE t_otype, molga TYPE t_molga, oname TYPE t_ona
me, END OF t_loio,
BEGIN OF dd43v,typename(30),seckeyname(30),ddlanguage,seckeyunique,access
mode,kind,keydescription(80),END OF dd43v,
BEGIN OF dd12fulltextinfo, full_text, langu_column(30), mime_type_col(30)
, mime_type(127),langu_detection(200),fast_preprocess,fuzzy_search_indx,search_o
nly,
update_mode(10),configuration,phrase_indx_ratio TYPE numc3,text_
analysis,token_separators(50),END OF dd12fulltextinfo.
TYPES: BEGIN OF t_pak_projects, mandt TYPE mandt, project_guid TYPE sysuuid_x, p
roject_id(24), short_text_en(40), short_text_de(40), inactive, fetch_date TYPE d
, END OF t_pak_projects.
TYPES: tt_dd05m TYPE TABLE OF dd05m,
tt_dd17v TYPE TABLE OF dd17v,
tt_dd26e TYPE TABLE OF dd26e,
tt_dd26v TYPE TABLE OF dd26v,
tt_dd27p TYPE TABLE OF dd27p,
tt_dd27v TYPE TABLE OF dd27v,
tt_dd28v TYPE TABLE OF dd28v,
tt_dd30v TYPE TABLE OF dd30v,
tt_dd30tv TYPE TABLE OF dd30tv,
tt_dd31v TYPE TABLE OF dd31v,
tt_dd32v TYPE TABLE OF dd32v,
tt_dd32p TYPE TABLE OF dd32p,
tt_dd33v TYPE TABLE OF dd33v,
tt_dd36m TYPE TABLE OF dd36m,
tt_dd42v TYPE TABLE OF dd42v,
tt_dd43v TYPE TABLE OF dd43v,
tt_e071k TYPE TABLE OF e071k,
tt_permission TYPE TABLE OF t_permission,
tt_hrdsys_docu TYPE TABLE OF t_hrdsys_docu,
tt_bfunction TYPE TABLE OF t_bfunction,
tt_activity TYPE TABLE OF t100o-activity,
tt_tline TYPE TABLE OF tline,
tt_tstca TYPE TABLE OF tstca,
tt_langu TYPE TABLE OF sylangu,
tt_sta TYPE TABLE OF rsmpe_stat,
tt_fun TYPE TABLE OF rsmpe_funt,
tt_men TYPE TABLE OF rsmpe_men,
tt_mtx TYPE TABLE OF rsmpe_mnlt,
tt_act TYPE TABLE OF rsmpe_act,
tt_but TYPE TABLE OF rsmpe_but,
tt_pfk TYPE TABLE OF rsmpe_pfk,
tt_set TYPE TABLE OF rsmpe_staf,
tt_doc TYPE TABLE OF rsmpe_atrt,
tt_tit TYPE TABLE OF rsmpe_titt,
tt_biv TYPE TABLE OF rsmpe_buts,
tt_dypara TYPE TABLE OF rpy_dypara,
tt_d022s TYPE TABLE OF d022s,
tt_bao6163 TYPE TABLE OF bao6163,
* tt_img_tree TYPE TABLE OF BMREF_TC.
tt_img_tree TYPE TABLE OF bmstnode,
tt_ttrees TYPE TABLE OF ttrees.
TYPES: BEGIN OF ty_dd02l_new, "new fields in DD02l (not yet SAPBASIS 731)
is_gtt,
END OF ty_dd02l_new.
DATA: gr_devclass TYPE RANGE OF devclass,
gr_domname TYPE RANGE OF domname WITH HEADER LINE,
gr_rollname TYPE RANGE OF rollname,
gr_tabname TYPE RANGE OF tabname, "structures and database tables
gs_tabname LIKE LINE OF gr_tabname VALUE 'IEQ',
gr_dbtabname TYPE RANGE OF tabname, "all database tables
gr_dbviewname TYPE RANGE OF viewname, "all database views
gt_tabname TYPE TABLE OF tabname,
gr_fugrname TYPE RANGE OF rs38l_area,
gr_indexes TYPE RANGE OF trobj_name,
gr_indxtab TYPE RANGE OF tabname,
gr_indxname TYPE RANGE OF indexid,
gr_shlpname TYPE RANGE OF shlpname WITH HEADER LINE,
gr_enqname TYPE RANGE OF enqname,
gr_viewname TYPE RANGE OF viewname,
gr_ttypname TYPE RANGE OF ttypename,
gt_ttypname TYPE TABLE OF ttypename,
gr_guistatus TYPE RANGE OF progname,
gr_switchname TYPE RANGE OF t_switch_id,
gr_msg_class TYPE RANGE OF msgid,
gv_trkorr TYPE trkorr,
gt_trkorr TYPE TABLE OF trkorr,
gt_trkey TYPE TABLE OF trkey,
gv_unit_test,
gv_translation,
gv_abap_in_eclipse,
gv_master_languages TYPE string, "texts in those languages are always inse
rted, other languages only if they are installed
gt_skipped_languages TYPE TABLE OF sylangu,
gv_repository_changed,
gv_errors_occured,
gv_string TYPE string,
gv_uname TYPE syuname,
gv_langu TYPE sylangu,
gv_log_handle TYPE balloghndl,
gv_progname_rept TYPE progname,
mydevclass TYPE devclass.
CONSTANTS: c_bal_object TYPE balobj_d VALUE 'SNOTE',
c_bal_subobj TYPE balsubobj VALUE space,
c_bal_context TYPE tabname VALUE 'ADIR_KEY',
c_include6 TYPE fieldname VALUE '.INCLU', ".INCLUDE or .INCLU--AP
or .INCLU-_BY
c_type_ref_to TYPE datatype_d VALUE 'REF',
c_memory_id(40) VALUE myrepid,
c_traceid TYPE memoryid VALUE '%/UDO/LAST_OBJECT',
c_logical_object VALUE 'L',
c_internal TYPE tadir-object VALUE 'ITAB'.
CONSTANTS: gc_report TYPE text15 VALUE 'Report', "#EC NOTEXT
gc_local LIKE gc_report VALUE 'Local', "#EC NOTEXT
gc_snote LIKE gc_report VALUE 'SNote', "#EC NOTEXT
gc_workaround LIKE gc_report VALUE 'Workaround', "#EC NOTEXT
gc_manual LIKE gc_report VALUE 'Manual Instr. ', "#EC NOTEXT
gc_bcset LIKE gc_report VALUE 'Manual/BC-Set', "#EC NOTEXT
gc_ignore LIKE gc_report VALUE '-', "#EC NOTEXT
gc_generate LIKE gc_report VALUE 'Generation', "#EC NOTEXT
gc_suppack LIKE gc_report VALUE 'Supp.Pack.', "#EC NOTEXT
gc_dest_init TYPE rfcdest VALUE 'MISSING INITIALIZATION'. "#EC NOTEXT
"the following texts are also hard coded in ZRB_UDO_ADJUST!!!!
CONSTANTS: gc_test_mode TYPE string VALUE 'Running in Test Mode', "#EC NOTEXT
gc_update_mode TYPE string VALUE 'Running in Update Mode', "#EC NOTE
XT
gc_genview_mode TYPE string VALUE 'Executing Step Generation'. "#EC N
OTEXT
CONSTANTS: BEGIN OF gc_dok,
data_element TYPE dok_id VALUE 'DE',
dtel_suppl TYPE dok_id VALUE 'DZ',
independent TYPE dok_id VALUE 'DT',
message TYPE dok_id VALUE 'NA',
function TYPE dok_id VALUE 'FU',
class TYPE dok_id VALUE 'CL',
class_method TYPE dok_id VALUE 'CO',
class_attrib TYPE dok_id VALUE 'CA',
class_event TYPE dok_id VALUE 'CE',
class_type TYPE dok_id VALUE 'CT',
interface TYPE dok_id VALUE 'IF',
intf_method TYPE dok_id VALUE 'IO',
intf_attrib TYPE dok_id VALUE 'IA',
intf_event TYPE dok_id VALUE 'IE',
intf_type TYPE dok_id VALUE 'IT',
release_note TYPE dok_id VALUE 'IN',
general_text TYPE dok_id VALUE 'TX',
hyper_text TYPE dok_id VALUE 'HY', "DSYS
auth_object TYPE dok_id VALUE 'UO',
extension_index TYPE dok_id VALUE 'XI',
hrdsys TYPE dok_id VALUE 'HR', "only used in UDO
END OF gc_dok.
DATA: akb_get_tadir TYPE funcname VALUE 'AKB_GET_TADIR', "#EC NOTEXT
sadt_navigation TYPE memoryid VALUE 'SADT_NAVIGATION', "#EC NOTEXT
show_genview. "show parameter GENVIEW on generated report
DATA: g_custom_container TYPE REF TO cl_gui_custom_container,
g_docking TYPE REF TO cl_gui_docking_container,
g_html_viewer TYPE REF TO object.
CONSTANTS selection_screen_1900 TYPE sydynnr VALUE 1900. "dummy for navigation
SELECTION-SCREEN BEGIN OF SCREEN 1900. "1900
SELECTION-SCREEN BEGIN OF LINE. "1900
SELECTION-SCREEN COMMENT 1(6) testrun1 FOR FIELD testrun. "1900
PARAMETERS testrun RADIOBUTTON GROUP exec. "1900
SELECTION-SCREEN COMMENT 12(83) testrun2 FOR FIELD testrun. "1900
SELECTION-SCREEN END OF LINE. "1900
SELECTION-SCREEN BEGIN OF LINE. "1900
SELECTION-SCREEN COMMENT 1(6) update1 FOR FIELD update. "1900
PARAMETERS update RADIOBUTTON GROUP exec. "1900
SELECTION-SCREEN COMMENT 12(83) update2 FOR FIELD update. "1900
SELECTION-SCREEN END OF LINE. "1900
SELECTION-SCREEN BEGIN OF LINE. "1900
SELECTION-SCREEN COMMENT 1(6) genview1 FOR FIELD genview. "1900
PARAMETERS genview RADIOBUTTON GROUP exec. "1900
SELECTION-SCREEN COMMENT 12(83) genview2 FOR FIELD genview. "1900
SELECTION-SCREEN END OF LINE. "1900
SELECTION-SCREEN SKIP 1. "1900
SELECTION-SCREEN BEGIN OF LINE. "1900
SELECTION-SCREEN COMMENT 1(6) showlog1 FOR FIELD showlogs. "1900
PARAMETERS showlogs RADIOBUTTON GROUP exec. "1900
SELECTION-SCREEN COMMENT 12(83) showlog2 FOR FIELD showlogs. "1900
SELECTION-SCREEN END OF LINE. "1900
SELECTION-SCREEN END OF SCREEN 1900. "1900
DATA: c_ddic_ref TYPE textpool-entry VALUE 'D_______.'.
INITIALIZATION.
IF sy-repid NE myrepid.
SELECT SINGLE devclass FROM tadir INTO mydevclass WHERE pgmid EQ 'R3TR' AND
object EQ 'PROG' AND obj_name EQ sy-repid.
ENDIF.
TRANSLATE c_ddic_ref USING '_ '.
* "Initialize texts for selection screen 1900 "#
EC NOTEXT "1900
testrun1 = 'Step 1'. "#EC NOTEXT "1
900
testrun2 = 'Test Run'. "#EC NOTEXT "1900
update1 = 'Step 2'. "#EC NOTEXT "1
900
update2 = 'Update & Activate'. "#EC NOTEXT "1900
genview1 = 'Step 3'. "#EC NOTEXT "1
900
genview2 = 'Generate Maintenance Dialogs'. "#EC NOTEXT "1900
showlog1 = 'Info'. "#EC NOTEXT "190
0
showlog2 = 'Show Logs'. "#EC NOTEXT
"1900
AT SELECTION-SCREEN OUTPUT.
PERFORM selection_screen_output IN PROGRAM (sy-repid) IF FOUND.
IF sy-dynnr EQ selection_screen_1900.
CONCATENATE sy-repid '-' 'Note Implementation' INTO sy-lisel SEPARATED BY sp
ace. "#EC * "1900
SET TITLEBAR 'POP' OF PROGRAM 'SAPLKKBL' WITH sy-lisel.
"1900
PERFORM show_instruction.
ENDIF.
*&---------------------------------------------------------------------*
*& Form bal_callback_ucomm
*&---------------------------------------------------------------------*
FORM bal_callback_ucomm CHANGING c_state TYPE bal_s_cbuc. "#EC CALLED
DATA: ls_msg TYPE bal_s_msg,
l_date(8),
ls_tadir TYPE adir_key,
ls_limu_key TYPE bcwbn_limu_key.
CASE c_state-ucomm.
WHEN '%LONGTEXT' OR '&IC1'.
CALL FUNCTION 'BAL_LOG_MSG_READ'
EXPORTING
i_s_msg_handle = c_state-list_msgh
IMPORTING
e_s_msg = ls_msg
EXCEPTIONS
OTHERS = 0.
ls_tadir = ls_msg-context-value.
MOVE-CORRESPONDING ls_tadir TO ls_limu_key.
IF ls_msg-msgid EQ 'DO' AND ls_msg-msgno EQ '626'.
"MESSAGE i626(do) WITH 'Click this message to view' 'detailed activation
logs with name' l_logname INTO sy-lisel. "#EC *
SPLIT ls_msg-msgv3 AT ':' INTO sy-lisel l_date.
SUBMIT radprotb WITH protname EQ ls_msg-msgv3 "#EC CI_SUBMIT
WITH date EQ l_date
* with TIME
* with USER
AND RETURN.
c_state-ucomm_exec = 'X'.
ELSEIF c_state-ucomm EQ '&IC1' AND c_state-list_field = 'OBJ_NAME' AND ls_
tadir-obj_name IS NOT INITIAL. "double click on object name
CHECK NOT ls_tadir-object IS INITIAL.
CALL FUNCTION 'RS_TOOL_ACCESS'
EXPORTING
operation = 'SHOW'
object_name = ls_tadir-obj_name
object_type = ls_tadir-object
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
c_state-ucomm_exec = 'X'.
ELSEIF c_state-ucomm EQ '&IC1' AND c_state-list_field = 'OBJECT' AND ls_ta
dir-object IS NOT INITIAL. "double click on object type
PERFORM show_object_type IN PROGRAM (myrepid) USING ls_limu_key IF FOUND
.
c_state-ucomm_exec = 'X'.
ELSEIF ls_msg-msgid EQ '01' AND ls_msg-msgno EQ '319'.
PERFORM show_object_type IN PROGRAM (myrepid) USING ls_limu_key IF FOUND
.
c_state-ucomm_exec = 'X'.
ENDIF.
ENDCASE.
ENDFORM. "bal_callback_ucomm
*&---------------------------------------------------------------------*
*& Form bdc_field
*&---------------------------------------------------------------------*
DEFINE bdc_field.
clear: ls_bdc.
ls_bdc-fnam = &1.
ls_bdc-fval = &2.
append ls_bdc to lt_bdc.
END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*& Form bdc_field
*&---------------------------------------------------------------------*
DEFINE bdc_screen.
clear ls_bdc.
ls_bdc-program = &1.
ls_bdc-dynpro = &2.
ls_bdc-dynbegin = 'X'.
append ls_bdc to lt_bdc.
END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*& Form prepare_table
*&---------------------------------------------------------------------*
FORM prepare_table USING i_tabname TYPE tabname
i_key_fields TYPE string
it_entries TYPE STANDARD TABLE
CHANGING e_no_update.
DATA: lt_key_fields TYPE TABLE OF fieldname,
l_key_field TYPE fieldname,
l_where TYPE ddf4sqlstm,
lt_where TYPE TABLE OF ddf4sqlstm,
l_value LIKE l_where,
dref TYPE REF TO data.
FIELD-SYMBOLS: <lt_entries> TYPE STANDARD TABLE,
<ls_entry> TYPE any,
<l_field> TYPE any.
IF it_entries[] IS INITIAL. "entire deletion not supported
e_no_update = 'X'.
RETURN.
ENDIF.
READ TABLE it_entries[] INDEX 1 ASSIGNING <ls_entry>.
SPLIT i_key_fields AT space INTO TABLE lt_key_fields.
LOOP AT lt_key_fields INTO l_key_field.
ASSIGN COMPONENT l_key_field OF STRUCTURE <ls_entry> TO <l_field>.
IF <l_field> IS INITIAL.
MESSAGE a666(01) WITH 'Key field is initial:' i_tabname l_key_field. "#EC
*
ENDIF.
l_value = <l_field>. CONDENSE l_value NO-GAPS. "convert to left-aligned cha
racter
CONCATENATE l_where l_key_field '~EQ ''' l_value '''' INTO l_where. TRANSLAT
E l_where USING '~ '.
APPEND l_where TO lt_where.
l_where = 'AND~'. "next line starts with AND
ENDLOOP.
CREATE DATA dref LIKE it_entries.
ASSIGN dref->* TO <lt_entries>.
SELECT * FROM (i_tabname) INTO TABLE <lt_entries> WHERE (lt_where) ORDER BY PR
IMARY KEY. "#EC CI_DYNTAB "#EC CI_DYNWHERE
IF it_entries[] EQ <lt_entries>[].
"MESSAGE s666(01) WITH 'No update neccessary' INTO sy-lisel. "#EC *
"CALL METHOD lcl_wb=>log_message.
e_no_update = 'X'.
RETURN.
ELSEIF NOT <lt_entries>[] IS INITIAL AND testrun IS INITIAL.
"remove all current entries before inserting the new ones
DELETE (i_tabname) FROM TABLE <lt_entries>. "#EC CI_DYNTAB. "#EC CI_DYNWHERE
ENDIF.
ENDFORM. "prepare_table
*&---------------------------------------------------------------------*
*& Form show_instruction
*&---------------------------------------------------------------------*
FORM show_instruction.
IF show_genview IS INITIAL.
"hide GENVIEW
LOOP AT SCREEN.
IF screen-name CS 'GENVIEW'.
screen-input = 0.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
* "get current screen size
* l_size = sy-scols - 15. "selection screen needx 15 columns
* CALL METHOD cl_gui_cfw=>compute_metric_from_dynp
* CALL METHOD cl_gui_cfw=>compute_pixel_from_metric
DATA: l_ratio TYPE i VALUE 85.
IF sy-scols NE 0.
l_ratio = 100 - ( 30 * 100 / sy-scols ).
ENDIF.
IF g_docking IS NOT INITIAL.
* CALL METHOD g_docking->set_extension
* EXPORTING
* extension = l_size
* EXCEPTIONS
* OTHERS = 0.
ELSE.
CREATE OBJECT g_docking
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
side = cl_gui_docking_container=>dock_at_right
ratio = l_ratio
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
CREATE OBJECT g_html_viewer TYPE ('CL_GUI_HTML_VIEWER')
EXPORTING
parent = g_docking
EXCEPTIONS
cntl_error = 1
cntl_install_error = 2
dp_install_error = 3
dp_error = 4.
IF sy-subrc NE 0.
* Fehlerbehandlung
ENDIF.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2.
IF sy-subrc NE 0.
* Fehlerbehandlung
ENDIF.
ENDIF.
DATA: lt_html TYPE STANDARD TABLE OF abaptxt255,
l_url(255).
"http://www.w3schools.com/html/default.asp
APPEND '<html><body>' TO lt_html. "#EC NOTEXT "1900
APPEND '<br><br>'
TO lt_html. "#EC NOTEXT "1900
APPEND '<h3>Instructions:</h3>' TO lt_html. "#EC NOTEXT "1900
APPEND '<ul>'
TO lt_html. "#EC NOTEXT "1900
APPEND '<li>Execute the given steps one after the other.</li>'
TO lt_html. "#EC NOTEXT "1900
APPEND '<li>If an error occurs repeat the same step again until the error is s
olved.</li>' TO lt_html. "#EC NOTEXT "1900
APPEND '<li>It does not harm if a step is executed several times.</li>'
TO lt_html. "#EC NOTEXT "1900
APPEND '<li>Nearlly all popups can be closed by pressing ENTER.</li>'
TO lt_html. "#EC NOTEXT "1900
APPEND '</ul>'
TO lt_html. "#EC NOTEXT "1900
PERFORM dummy IN PROGRAM saplstrd IF FOUND. "load function group STRD
FIELD-SYMBOLS: <gt_confirmed_messages> TYPE STANDARD TABLE.
ASSIGN ('(SAPLSTRD)GT_CONFIRMED_MESSAGES') TO <gt_confirmed_messages>.
IF sy-subrc NE 0. "Note 1609940 not applied in current system
APPEND '<h3>Hint:</h3>' TO lt_html. "#EC NOTEXT "1900
APPEND 'Implement note 1609940 if you want to avoid messages ''Object can on
ly be created in SAP package'' (TR015)<br>' TO lt_html. "#EC NOTEXT
ENDIF.

* APPEND '<li>See also note <a href="https://service.sap.com/sap/support/notes/


2133603/">2133603</a>.</li>' TO lt_html. "#EC NOTEXT "190
0
APPEND '</ul>'
TO lt_html. "#EC NOTEXT "1900
DATA: but_sim(60), but_upd(60), but_gen(60), but_log(60).
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = icon_simulate
text = 'Simulation' "#EC NOTEXT
* info = 'Search for Translation System' "#EC NOTEXT
IMPORTING
result = but_sim.
APPEND '<h3>Test Run:</h3>'
TO lt_html. "#EC NOTEXT "1900
APPEND 'You perform the test run to check the prerequisites and display the li
st of objects to be updated.<br>' TO lt_html. "#EC NOTEXT "1900
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = icon_change
text = 'Update' "#EC NOTEXT
* info = 'Search for Translation System' "#EC NOTEXT
IMPORTING
result = but_upd.
APPEND '<h3>Update & Activate:</h3>'
TO lt_html. "#EC NOTEXT "1900
APPEND 'You perform this step to update the objects and then to activate them.
<br>' TO lt_html. "#EC NOTEXT "1900
APPEND 'We recommend using the "online" mode to activate the objects. Only if
this activation times out, use the "batch" mode.<br>' TO lt_html. "#EC NOTEX
T "1900
IF show_genview IS NOT INITIAL.
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = icon_generate
text = 'Generation' "#EC NOTEXT
IMPORTING
result = but_gen.
APPEND '<h3>Generate:</h3>'
TO lt_html. "#EC NOTEXT "1900
APPEND 'Generate Maintainance Dialogs.<br>' TO lt_html. "#EC NOTEXT "1900
APPEND 'In this step the maintainance dialogs are generated. Perform this st
ep only after the <i>Update & Activate</i> step is completed succesfully.<br>'
TO lt_html. "#EC NOTEXT "1900
ENDIF.
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = icon_protocol
text = 'Logs' "#EC NOTEXT
IMPORTING
result = but_log.
APPEND '<h3>Show Logs:</h3>' T
O lt_html. "#EC NOTEXT "1900
APPEND 'You can perform this step to display the logs of the previous steps.<b
r>' TO lt_html. "#EC NOTEXT "1900
APPEND 'The first message of each log shows whether this belongs to a simulati
on, update or generation.<br>' TO lt_html. "#EC NOTEXT "1900
APPEND 'Only the most recent log of each step is relevant. You can ignore erro
rs in older logs.<br>' TO lt_html. "#EC NOTEXT "1900
APPEND 'This step is optional.' TO lt_html. "#EC NOTEXT "1900
APPEND '</body></html>' TO lt_html. "#EC NOTEXT "1900
CALL METHOD g_html_viewer->('LOAD_DATA')
EXPORTING
type = 'text'
subtype = 'html'
IMPORTING
assigned_url = l_url
CHANGING
data_table = lt_html
EXCEPTIONS
dp_invalid_parameter = 1
dp_error_general = 2
cntl_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
CALL METHOD g_html_viewer->('SHOW_URL')
EXPORTING
url = l_url
* frame = l_frame
EXCEPTIONS
cntl_error = 1.
ENDFORM. "show_docking_control
*----------------------------------------------------------------------*
* CLASS lcl_wb DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_wb DEFINITION.
PUBLIC SECTION.
CLASS-METHODS init
IMPORTING
value(i_note) TYPE c OPTIONAL "note which indicates that report i
s not needed anymore
value(i_cinst) TYPE cwbcialeid OPTIONAL "correction instruction which d
escribes the validity of the report
RETURNING
value(r_return_code) TYPE sysubrc.
CLASS-METHODS get_object_text
IMPORTING
i_object TYPE e071-object "e.g. TABD
i_obj_name TYPE c OPTIONAL "for DOCU
RETURNING value(r_text) TYPE string.
CLASS-METHODS get_function_pool_master
IMPORTING
i_area TYPE c
RETURNING value(r_master) TYPE progdir-name.
CLASS-METHODS create_doma
IMPORTING
i_domname TYPE domname
i_datatype TYPE dd01v-datatype OPTIONAL
i_leng TYPE dd01v-leng OPTIONAL
i_outputlen TYPE dd01v-outputlen OPTIONAL
i_convexit TYPE dd01v-convexit OPTIONAL
i_function_group TYPE rs38l-area OPTIONAL "only needed for conversion
exit
i_decimals TYPE dd01v-decimals OPTIONAL
i_signflag TYPE dd01v-signflag OPTIONAL
i_lowercase TYPE dd01v-lowercase OPTIONAL
i_entitytab TYPE dd01v-entitytab OPTIONAL
i_appendname TYPE domname OPTIONAL "appendname not known in all release
s
i_devclass TYPE devclass
i_langu TYPE sylangu OPTIONAL
i_ddtext TYPE ddtext OPTIONAL
i_domvalue TYPE dd07v-domvalue_l OPTIONAL
i_domvalue_h TYPE dd07v-domvalue_h OPTIONAL "only for intervals
i_valpos TYPE dd07v-valpos OPTIONAL
i_valtext TYPE dd07v-ddtext OPTIONAL.
CLASS-METHODS create_dtel
IMPORTING
i_rollname TYPE rollname
i_domname TYPE domname
i_datatype TYPE dd04v-domname OPTIONAL "only needed if domain is ini
tial
i_decimals TYPE dd04v-decimals OPTIONAL "only needed if rollname is i
nitial
i_leng TYPE dd04v-leng OPTIONAL "only needed if domain is ini
tial
i_devclass TYPE devclass
i_logflag TYPE logflag DEFAULT 'X'
i_memoryid TYPE dd04v-memoryid OPTIONAL
i_headlen TYPE dd04v-headlen OPTIONAL "defaulted with fieldlen
i_scrlen1 TYPE dd04v-scrlen1 DEFAULT 10
i_scrlen2 TYPE dd04v-scrlen2 DEFAULT 15
i_scrlen3 TYPE dd04v-scrlen3 DEFAULT 20
i_langu TYPE sylangu
i_ddtext TYPE ddtext
i_reptext TYPE reptext OPTIONAL
i_scrtext_m TYPE scrtext_m
i_scrtext_l TYPE scrtext_l
i_scrtext_s TYPE scrtext_s
i_shlpname TYPE shlpname OPTIONAL
i_shlpfield TYPE shlpfield OPTIONAL
i_refkind TYPE dd04l-refkind OPTIONAL ">=SAPBASIS640
i_reftype TYPE dd04l-reftype OPTIONAL ">=SAPBASIS640
i_proxytype TYPE ddproxyty OPTIONAL ">=SAPBASIS640
i_ltrflddis TYPE xfeld OPTIONAL "TYPE dd04l-refkind
i_bidictrlc TYPE xfeld OPTIONAL "TYPE dd04l-bidictrl
i_nohistory TYPE xfeld OPTIONAL "TYPE dd04l-nohistory
i_deffdname TYPE deffdname OPTIONAL.
CLASS-METHODS create_table_type "create or change table without sortin
g
IMPORTING
i_typename TYPE dd40v-typename
i_rowtype TYPE dd40v-rowtype
i_ttypkind TYPE dd40v-ttypkind OPTIONAL
i_range_ctyp TYPE dd40v-range_ctyp OPTIONAL
i_accessmode TYPE dd40v-accessmode DEFAULT 'T'
i_keydef TYPE dd40v-keydef DEFAULT 'D'
i_keykind TYPE dd40v-keykind DEFAULT 'N'
i_generic TYPE dd40v-generic OPTIONAL
i_rowkind TYPE dd40v-rowkind DEFAULT 'S' "Default: Structure as lin
e type
i_datatype TYPE dd40v-datatype DEFAULT 'STRU'
i_leng TYPE dd40v-leng OPTIONAL "only for direct type entry
i_decimals TYPE dd40v-decimals OPTIONAL "only for direct type entry
i_furtherseckey TYPE char1 OPTIONAL " TYPE dd40v-furtherseckey
i_proxytype TYPE ddproxyty OPTIONAL
">=SAPBASIS640
it_dd43v TYPE tt_dd43v OPTIONAL "only needed for secondary index
it_dd42v TYPE tt_dd42v OPTIONAL "only needed for sorted tables
i_langu TYPE sylangu DEFAULT 'E' "Default EN
i_devclass TYPE devclass OPTIONAL "only needed for new table ty
pe
i_ddtext TYPE ddtext OPTIONAL. "only needed for new table ty
pe
CLASS-METHODS create_table "or structure or append or database table
IMPORTING
i_tabname TYPE tabname
i_devclass TYPE devclass
i_edtflag TYPE edtflag OPTIONAL
i_exclass TYPE num1 OPTIONAL "dd02v-exclass
i_langu TYPE sylangu DEFAULT 'E' "Default EN
i_ddtext TYPE ddtext OPTIONAL "can be taken from tabname
i_authclass TYPE dd02v-authclass DEFAULT '00'
i_mainflag TYPE dd02v-mainflag OPTIONAL
i_tabclass TYPE tabclass DEFAULT 'INTTAB'
it_dd05m_inc TYPE tt_dd05m OPTIONAL "foreign key check on fields inheri
ted from includes
i_sqltab TYPE sqlappdtab OPTIONAL
i_proxytype TYPE ddproxyty OPTIONAL
">=SAPBASIS640
i_contflag TYPE contflag DEFAULT 'C' "only needed for db t
ables
i_buffered TYPE dd02v-buffered OPTIONAL "only needed for db t
ables
i_tabkat TYPE dd09v-tabkat DEFAULT '0' "only needed for db t
ables
i_tabart TYPE dd09v-tabart DEFAULT 'APPL2' "only needed for db t
ables
i_bufallow TYPE dd09v-bufallow DEFAULT 'N' "only needed for db t
ables
i_pufferung TYPE dd09v-pufferung OPTIONAL "only needed for db t
ables
i_schfeldanz TYPE dd09v-schfeldanz OPTIONAL "only needed for db t
ables
i_speichpuff TYPE dd09v-speichpuff OPTIONAL "only needed for db t
ables
i_uebersetz TYPE dd09v-uebersetz OPTIONAL "only needed for db t
ables
i_roworcolst TYPE char1 DEFAULT space "space = column store
i_is_gtt TYPE char1 DEFAULT space "global temp table
i_javaonly TYPE xfeld OPTIONAL "dd09v-javaonly "only needed for db t
ables
i_protokoll TYPE dd09v-protokoll OPTIONAL. "only needed for db t
ables
CLASS-METHODS add_field_to_table
IMPORTING
i_tabname TYPE tabname
i_fieldname TYPE fieldname
i_remove TYPE xfeld OPTIONAL "X => remove that field instead of A
dd
i_keyflag TYPE keyflag DEFAULT space
i_anonymous TYPE xfeld OPTIONAL "dd03p-anonymous
i_rollname TYPE rollname OPTIONAL "data element, structure, tabl
e_type, include/append name
i_edtflag TYPE edtflag OPTIONAL
i_datatype TYPE dd03p-datatype OPTIONAL "only needed if rollname is in
itial
i_decimals TYPE dd03p-decimals OPTIONAL "only needed if rollname is in
itial
i_leng TYPE dd03p-leng OPTIONAL "only needed if rollname is in
itial
i_langu TYPE dd03p-ddlanguage OPTIONAL "only needed if rollname is
initial
i_ddtext TYPE dd03p-ddtext OPTIONAL "only needed if rollname is in
itial
i_reftable TYPE dd03p-reftable OPTIONAL
i_reffield TYPE dd03p-reffield OPTIONAL
i_notnull TYPE dd03p-notnull OPTIONAL
i_languflag TYPE xfeld OPTIONAL "DDLANGUFLG
i_groupname TYPE ddgroup OPTIONAL
is_dd08v TYPE dd08v OPTIONAL "foreign key relationship
it_dd05m TYPE tt_dd05m OPTIONAL "foreign key relationship fie
lds
i_context TYPE string OPTIONAL. "name of previous field or in
clude, blank->append
CLASS-METHODS create_view
IMPORTING
i_viewname TYPE viewname
i_devclass TYPE devclass
i_langu TYPE sylangu DEFAULT 'E' "Default EN
i_ddtext TYPE ddtext OPTIONAL "can be taken from tabname
i_contflag TYPE dd25v-customauth DEFAULT 'C'
i_aggtype TYPE dd25v-aggtype
i_roottab TYPE dd25v-roottab
i_viewclass TYPE dd25v-viewclass
i_viewgrant TYPE dd25v-viewgrant
i_readonly TYPE dd25v-readonly OPTIONAL
i_globalflag TYPE dd25v-globalflag OPTIONAL
it_dd26v TYPE tt_dd26v "basis tables
"it_dd28j TYPE tt_dd28j "join conditions
it_dd28v TYPE tt_dd28v. "view conditions
CLASS-METHODS add_field_to_view
IMPORTING
i_viewname TYPE viewname
i_viewfield TYPE viewfield OPTIONAL "omit if same like fieldname
i_remove TYPE xfeld OPTIONAL "X => remove that field instead of
Add
i_tabname TYPE tabname
i_fieldname TYPE fieldname
i_keyflag TYPE dd27v-keyflag OPTIONAL
i_rollchange TYPE dd27v-rollchange OPTIONAL
i_rollname TYPE dd27v-rollname OPTIONAL "can be taken from tabfield
i_rdonly TYPE dd27v-rdonly OPTIONAL
value(i_switch) TYPE t_switch_id OPTIONAL
i_context TYPE fieldname OPTIONAL. "name of previous field or
include, blank->append
CLASS-METHODS generate_maint_view "SE54
IMPORTING
i_devclass TYPE devclass
i_objectname TYPE objh-objectname
i_objecttype TYPE objh-objecttype DEFAULT 'V'
i_masterlang TYPE masterlang DEFAULT 'E'
i_auth_group TYPE tddat-cclass DEFAULT '&NC&'
i_func_group TYPE tvdir-area
i_dynp_list TYPE tvdir-liste
i_dynp_detail TYPE tvdir-liste OPTIONAL
"not used anymore, but kept for compatability
i_compare_flag TYPE objh-importable DEFAULT '3'
i_transp_flag TYPE objh-objtransp DEFAULT '2'
i_cursetting TYPE objh-cursetting OPTIONAL
RETURNING
value(r_mode) TYPE char1. "updkz: I or U
CLASS-METHODS create_message
IMPORTING
i_msgid TYPE msgid
i_msgno TYPE msgno
i_langu TYPE sylangu DEFAULT 'E' "Default EN
i_text TYPE natxt
i_auth_check TYPE t100x-auth_check OPTIONAL
it_activity TYPE tt_activity OPTIONAL
i_selfdef TYPE doku_selfd DEFAULT 'X'.
CLASS-METHODS create_screen
IMPORTING
i_devclass TYPE devclass OPTIONAL "only needed if report/function g
roup does not exist yet
is_header TYPE rpy_dyhead
it_containers TYPE dycatt_tab
it_fields TYPE dyfatc_tab
it_params TYPE tt_dypara OPTIONAL
it_flow_logic TYPE tt_d022s. "dyn_flowlist.
CLASS-METHODS create_program_text
IMPORTING
i_devclass TYPE devclass OPTIONAL "needed if report texts are created
before the program exists
i_progname TYPE progname
i_langu TYPE sylangu DEFAULT 'E' "Default EN
i_id TYPE textpool-id DEFAULT 'I' "I = Text element, S = S
election Text, R = Title
i_key TYPE textpool-key "space for title
i_text TYPE textpool-entry DEFAULT c_ddic_ref
i_length TYPE textpool-length OPTIONAL. "can be defaulted from lengt
h of text
CLASS-METHODS execute_method
IMPORTING
i_method TYPE c. "AFTER_IMP or BEFORE_EXP
CLASS-METHODS create_table_entries
IMPORTING
i_tabname TYPE tabname
i_delete TYPE xfeld OPTIONAL "delete given entries with logg
ing into transport request
i_langu TYPE sylangu OPTIONAL
it_entries TYPE STANDARD TABLE OPTIONAL
i_logical_object TYPE tadir-object OPTIONAL
CHANGING
c_deliver TYPE text15 OPTIONAL "ty_object-deliver
c_clidep TYPE dd02l-clidep OPTIONAL
c_contflag TYPE dd02l-contflag OPTIONAL.
CLASS-METHODS add_to_transport
IMPORTING
i_object TYPE e071-object "e.g. TABD
i_obj_name TYPE c "flexible number of characters
i_tabkey TYPE e071k-tabkey OPTIONAL "only for TABU
i_edtflag TYPE edtflag OPTIONAL "X = not editable via standard tools
i_devclass TYPE devclass OPTIONAL
i_langu TYPE sylangu OPTIONAL
EXPORTING
e_masterlang TYPE tadir-masterlang
EXCEPTIONS
error
simulation
language_not_installed.
CLASS-METHODS register_inactive_object
IMPORTING
i_objtype TYPE e071-object
i_treetype TYPE e071-object OPTIONAL "space = do not update tree, op
tionally different type in tree, e.g. TABL vs. CDS
i_objname TYPE c.
CLASS-METHODS log_message
IMPORTING i_object TYPE e071-object OPTIONAL
i_obj_name TYPE c OPTIONAL
i_probclass TYPE balprobcl OPTIONAL.
CLASS-METHODS display_log
IMPORTING
i_db_search TYPE xfeld OPTIONAL "search logs on db
i_no_save TYPE xfeld OPTIONAL.
CLASS-METHODS save_log.
CLASS-METHODS set_context
IMPORTING i_object TYPE e071-object
i_obj_name TYPE c
i_obj_name2 TYPE c OPTIONAL
i_msgty TYPE symsgty DEFAULT 'I'
i_text TYPE c OPTIONAL
i_no_message TYPE c OPTIONAL
i_langu TYPE sylangu.
CLASS-METHODS activate
IMPORTING i_result_auth_check TYPE sysubrc OPTIONAL.
PRIVATE SECTION.
CLASS-METHODS mass_activation
IMPORTING
i_step TYPE i DEFAULT 1
i_inactive TYPE c OPTIONAL
i_ddmode TYPE ddmode DEFAULT 'O'
i_logname TYPE c
EXCEPTIONS
error.
CLASS-METHODS language_installed
IMPORTING
i_langu TYPE sylangu
RETURNING value(r_installed) TYPE xfeld.
ENDCLASS. "lcl_wb DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_dcm_to_po_bridge IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_wb IMPLEMENTATION.
METHOD init.
DATA: ls_balobj TYPE balobj.
CLEAR: gv_errors_occured, r_return_code, gv_progname_rept.
SET LOCALE LANGUAGE 'E'. "most text/message are only in EN hence avoid m
ixture
"copied from CL_ADT_GUI_EVENT_DISPATCHER=>IS_ADT_ENVIRONMENT( ).
GET PARAMETER ID sadt_navigation FIELD gv_abap_in_eclipse.
DATA: l_system_type TYPE df41s-parent_obj.
CALL FUNCTION 'RPY_CHECK_SYSTEM_TYPE_30'
IMPORTING
system_type = l_system_type.
IF sy-repid EQ myrepid OR l_system_type EQ 'SAP'.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = 'SCWB'
EXCEPTIONS
ok = 0
OTHERS = 1.
ELSE.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = 'SNOTE'
EXCEPTIONS
ok = 0
OTHERS = 1.
ENDIF.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msg
v3 sy-msgv4.
gv_errors_occured = 'X'.
r_return_code = 1. RETURN.
ENDIF.
IF NOT showlogs IS INITIAL.
r_return_code = 2. RETURN.
ENDIF.
DATA: ls_log TYPE bal_s_log.
"prepare application log
ls_log-object = c_bal_object.
ls_log-subobject = c_bal_subobj.
ls_log-extnumber = sy-cprog.
ls_log-aldate = sy-datum.
ls_log-altime = sy-uzeit.
ls_log-aluser = sy-uname.
ls_log-alprog = sy-repid.
ls_log-altcode = sy-tcode.
SELECT SINGLE * FROM balobj INTO ls_balobj WHERE object EQ c_bal_object.
IF sy-subrc NE 0.
"create if missing
ls_balobj-object = c_bal_object.
INSERT balobj FROM ls_balobj.
ENDIF.
"create standard application log handle
IF gv_log_handle IS INITIAL. "will be refreshed in display_log
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
i_s_log = ls_log
IMPORTING
e_log_handle = gv_log_handle
EXCEPTIONS
log_header_inconsistent = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
EXPORT gv_log_handle FROM gv_log_handle TO MEMORY ID c_memory_id.
CALL METHOD set_context
EXPORTING
i_langu = space
i_object = space
i_obj_name = space.
"Main check: Last changed by SAP -> Report came via SP / Upgrade
"Does not work if customer use user SAP to implement notes....
"==> no execution anymore.
IF sy-cprog NE myrepid.
SELECT SINGLE prog FROM d010sinf INTO sy-lisel
WHERE ( prog EQ sy-repid )
AND ( unam EQ 'SAP' OR "last changed by ...
unam EQ 'SAP*' OR
unam EQ space AND ( cnam EQ 'SAP' OR
cnam EQ 'SAP*' OR
cnam EQ space ) "created by
...
).
IF sy-subrc EQ 0.
"If customer used user SAP to apply that report they have to comment out
the following 4 lines:
MESSAGE w666(01) WITH 'The neccessary changes already came' 'via support
package.' 'Report execution not required anymore.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
r_return_code = 3.
RETURN.
ENDIF.
ENDIF.
IF sy-cprog(1) EQ '!'. "Executing inactive version
MESSAGE w666(01) WITH 'Please activate this report' sy-repid 'first.' INTO
sy-lisel. "#EC *
CALL METHOD log_message.
r_return_code = 4. RETURN.
ENDIF.
IF sy-saprl < sapbasis.
MESSAGE w666(01) WITH 'This report was generated for SAP_BASIS' sapbasis '
but current system has SAP_BASIS' sy-saprl INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
IF NOT i_note IS INITIAL.
* that that note is not already implemented
* this must not be the note containing the generated report for DDIC but a f
ollow-up note with the coding using that new DDIC
DATA l_status TYPE c.
CALL FUNCTION 'SCWB_NOTE_IMPL_STATUS_SIMPLE'
EXPORTING
iv_numm = i_note
IMPORTING
ev_status = l_status
EXCEPTIONS
OTHERS = 0.
CASE l_status.
WHEN 'E'.
MESSAGE w666(01) WITH 'SAP Note' i_note 'completely implemented;' 'Rep
ort execution not required anymore.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
r_return_code = 5. RETURN.
WHEN 'O'.
MESSAGE w666(01) WITH 'SAP Note' i_note 'is obsolete;' 'Report executi
on not required anymore.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
r_return_code = 6. RETURN.
WHEN OTHERS. "okay
DATA: ls_note TYPE bcwbn_note.
DATA: l_valid TYPE bcwbn_bool.
ls_note-key-numm = i_note.
CALL FUNCTION 'SCWB_NOTE_READ'
EXPORTING
iv_read_corr_instructions = 'X'
CHANGING
cs_note = ls_note
EXCEPTIONS
note_not_found = 1
language_not_found = 2
unreadable_text_format = 3
corr_instruction_not_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE w666(01) WITH 'SAP Note' i_note 'cannot be read;' 'Cannot ch
eck validity.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
l_valid = 'X'.
ENDIF.
*------
FIELD-SYMBOLS: <ls_corr> TYPE bcwbn_corr_instruction.
LOOP AT ls_note-corr_instructions ASSIGNING <ls_corr>.
IF NOT i_cinst IS INITIAL.
CHECK <ls_corr>-key-aleid = i_cinst.
ENDIF.
CALL FUNCTION 'SCWB_CINST_CHECK_VALID'
IMPORTING
ev_valid = l_valid
CHANGING
cs_corr_instruction = <ls_corr>
EXCEPTIONS
corr_inst_not_found = 1
inconsistent_delivery_data = 2
undefined = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF NOT l_valid IS INITIAL.
EXIT.
ENDIF.
ENDLOOP.
IF l_valid IS INITIAL.
MESSAGE e666(01) WITH 'Manual changes cannot be applied;' 'Correctio
n instruction invalid' 'for current patch level' INTO sy-lisel. "#EC *
CALL METHOD log_message.
r_return_code = 7. RETURN.
ENDIF.
ENDCASE.
ENDIF.
IF NOT testrun IS INITIAL.
MESSAGE w666(01) WITH gc_test_mode INTO sy-lisel. "#EC *
CALL METHOD lcl_wb=>log_message.
ELSEIF NOT update IS INITIAL. "or UPDATE & GENVIEW
MESSAGE i666(01) WITH gc_update_mode INTO sy-lisel. "#EC *
CALL METHOD lcl_wb=>log_message.
ELSEIF NOT genview IS INITIAL. "only GENVIEW
MESSAGE i666(01) WITH gc_genview_mode INTO sy-lisel. "#EC *
CALL METHOD lcl_wb=>log_message.
ENDIF.
"Switch on SNOTE & SCWB mode
CALL FUNCTION 'SCWG_TOOLFLAG_SET'.
TRY. CALL METHOD ('CL_CWB_RUNTIME')=>set_active. CATCH cx_sy_dyn_call_illega
l_class. ENDTRY. ">=SAPBASIS640
"Set goon for all regarding message TR015 if possible
DATA: BEGIN OF ls_msg,
id TYPE symsgid VALUE 'TR',
ty TYPE symsgty,
no TYPE symsgno VALUE '015',
END OF ls_msg.
PERFORM dummy IN PROGRAM saplstrd IF FOUND. "load function group STRD
FIELD-SYMBOLS: <gt_confirmed_messages> TYPE STANDARD TABLE.
ASSIGN ('(SAPLSTRD)GT_CONFIRMED_MESSAGES') TO <gt_confirmed_messages>.
IF sy-subrc EQ 0. "Note 1609940 applied in current system
ls_msg-no = 015. "TR015
READ TABLE <gt_confirmed_messages> TRANSPORTING NO FIELDS WITH KEY table_l
ine = ls_msg.
IF sy-subrc NE 0.
APPEND ls_msg TO <gt_confirmed_messages>.
ENDIF.
ls_msg-no = 693. "TR693
READ TABLE <gt_confirmed_messages> TRANSPORTING NO FIELDS WITH KEY table_l
ine = ls_msg.
IF sy-subrc NE 0.
APPEND ls_msg TO <gt_confirmed_messages>.
ENDIF.
ELSEIF l_system_type NE 'SAP'.
MESSAGE w666(01) WITH 'Implement note 1609940 if you want to avoid' 'messa
ges ''Object can only be created' 'in SAP package (TR015)''' INTO sy-lisel. "#EC
NOTEXT
CALL METHOD lcl_wb=>log_message.
ENDIF.
CALL METHOD add_to_transport "init static variables
EXPORTING
i_object = space
i_obj_name = space
EXCEPTIONS
OTHERS = 1.
ENDMETHOD. "init

METHOD get_object_text.
STATICS: lt_object_text TYPE TABLE OF ko100,
lt_doktypes TYPE TABLE OF dd07v.
DATA: ls_object_text TYPE ko100,
ls_doktype TYPE dd07v.
CHECK NOT i_object IS INITIAL.
IF lt_object_text IS INITIAL.
CALL FUNCTION 'TR_OBJECT_TABLE'
TABLES
wt_object_text = lt_object_text.
SORT lt_object_text BY object.
CALL FUNCTION 'DDIF_DOMA_GET'
EXPORTING
name = 'DOK_ID'
langu = sy-langu
TABLES
dd07v_tab = lt_doktypes
EXCEPTIONS
OTHERS = 0.
SORT lt_doktypes BY domvalue_l.
ENDIF.
CASE i_object.
WHEN 'DOCU'.
IF i_obj_name CP 'FU*'.
SPLIT i_obj_name AT space INTO sy-lisel sy-lisel. "check if name con
taines two words.
IF sy-lisel IS INITIAL.
r_text = 'Documentation Function Module'. "#EC NOTEXT
ELSE.
r_text = 'Documentation Function Module Parameter'. "#EC NOTEXT
ENDIF.
ELSE.
READ TABLE lt_doktypes INTO ls_doktype BINARY SEARCH
WITH KEY domvalue_l = i_obj_name(2).
IF sy-subrc EQ 0.
CONCATENATE 'Documentation' ls_doktype-ddtext INTO r_text SEPARATED
BY space. "#EC NOTEXT
ELSE.
r_text = 'Documentation'. "#EC NOTEXT
ENDIF.
ENDIF.
WHEN 'FUNH'.
r_text = 'Function Module Release Status'. "#EC NOTEXT
WHEN 'PROC'.
r_text = 'HDB Stored Procedure'. "#EC NOTEXT
WHEN 'ALVV'.
r_text = 'ALV Standard Variant'. "#EC NOTEXT
WHEN OTHERS.
READ TABLE lt_object_text INTO ls_object_text BINARY SEARCH
WITH KEY object = i_object. "ignore PGMID!
IF sy-subrc EQ 0.
r_text = ls_object_text-text.
ENDIF.
ENDCASE.
CASE i_obj_name.
WHEN 'TNODEIMG' OR 'TNODEIMGT'.
r_text = gc_objtext-imgtree.
WHEN 'TMENU01' OR 'TMENU01T' OR 'TMENU01T'.
r_text = gc_objtext-areamenu.
ENDCASE.
ENDMETHOD. "get_object_text
METHOD get_function_pool_master.
"/SAPAPO/ABC => /SAPAPO/SAPLABC
"XYZ1 => SAPLXYZ1
r_master = i_area.
REPLACE '/' WITH '/SAPL' INTO r_master+1.
IF sy-subrc NE 0.
CONCATENATE 'SAPL' r_master INTO r_master.
ENDIF.
* CALL FUNCTION 'FUNCTION_INCLUDE_CONCATENATE'
* CHANGING
* program = r_master
* complete_area = i_area
* EXCEPTIONS
* OTHERS = 0.
ENDMETHOD. "get_docu_object

METHOD create_doma.
DATA: ls_dd01v TYPE dd01v,
lt_dd07v TYPE TABLE OF dd07v,
ls_dd07v TYPE dd07v,
l_update,
ls_domname LIKE LINE OF gr_domname VALUE 'IEQ'.
FIELD-SYMBOLS: <l_appendname> TYPE c,
<ls_dd07v> LIKE LINE OF lt_dd07v.
CALL METHOD set_context
EXPORTING
i_langu = i_langu
i_object = 'DOMA'
i_obj_name = i_domname.
ls_domname-low = i_domname.
COLLECT ls_domname INTO gr_domname.
CALL FUNCTION 'DDIF_DOMA_GET'
EXPORTING
name = i_domname
langu = i_langu "reads all values, returns value without langua
ge/text if text does not exist in i_langu
state = 'M' "newest version (e.g. inactive)
IMPORTING
dd01v_wa = ls_dd01v
TABLES
dd07v_tab = lt_dd07v
EXCEPTIONS
OTHERS = 0.
IF ls_dd01v IS INITIAL OR
ls_dd01v-ddtext NE i_ddtext OR
ls_dd01v-domname NE i_domname OR
ls_dd01v-datatype NE i_datatype OR
ls_dd01v-leng NE i_leng OR
i_outputlen NE 0 AND i_outputlen NE ls_dd01v-outputlen OR
i_outputlen EQ 0 AND i_leng NE ls_dd01v-outputlen OR
ls_dd01v-convexit NE i_convexit OR
ls_dd01v-decimals NE i_decimals OR
ls_dd01v-lowercase NE i_lowercase OR
ls_dd01v-signflag NE i_signflag OR
ls_dd01v-entitytab NE i_entitytab.
l_update = 'X'.
ENDIF.
ls_dd01v-domname = i_domname.
ls_dd01v-datatype = i_datatype.
ls_dd01v-leng = i_leng.
IF i_outputlen IS INITIAL.
ls_dd01v-outputlen = i_leng.
ELSE.
ls_dd01v-outputlen = i_outputlen.
ENDIF.
ls_dd01v-convexit = i_convexit.
ASSIGN ('LS_DD01V-APPENDNAME') TO <l_appendname>.
IF sy-subrc EQ 0.
<l_appendname> = i_appendname.
ENDIF.
ls_dd01v-ddlanguage = i_langu.
ls_dd01v-ddtext = i_ddtext.
ls_dd01v-domname = i_domname.
ls_dd01v-datatype = i_datatype.
ls_dd01v-leng = i_leng.
ls_dd01v-outputlen = i_outputlen.
ls_dd01v-convexit = i_convexit.
ls_dd01v-decimals = i_decimals.
ls_dd01v-lowercase = i_lowercase.
ls_dd01v-signflag = i_signflag.
ls_dd01v-entitytab = i_entitytab.
IF i_domvalue IS SUPPLIED. "INITIAL value shall be possible fix value
READ TABLE lt_dd07v ASSIGNING <ls_dd07v> WITH KEY domvalue_l = i_domvalue.
IF sy-subrc EQ 0 AND <ls_dd07v>-valpos NE i_valpos.
DELETE lt_dd07v INDEX sy-tabix. "remove value from wrong position.
LOOP AT lt_dd07v ASSIGNING <ls_dd07v>.
<ls_dd07v>-valpos = sy-tabix.
ENDLOOP.
sy-subrc = 1. "trigger insertion of value at correct position
ENDIF.
IF sy-subrc EQ 0.
"value exists -> compare text and high value
IF <ls_dd07v>-ddtext NE i_valtext OR
<ls_dd07v>-domvalue_h NE i_domvalue_h.
<ls_dd07v>-ddlanguage = i_langu.
<ls_dd07v>-ddtext = i_valtext.
<ls_dd07v>-domvalue_h = i_domvalue_h.
l_update = 'X'.
ENDIF.
ELSE.
"value does not exist -> insert
READ TABLE lt_dd07v TRANSPORTING NO FIELDS WITH KEY valpos = i_valpos.
IF sy-subrc EQ 0.
"insert new value and increase valpos of exiting entries
LOOP AT lt_dd07v ASSIGNING <ls_dd07v> WHERE valpos GE i_valpos.
ADD 1 TO <ls_dd07v>-valpos.
ENDLOOP.
ENDIF.
CLEAR ls_dd07v.
ls_dd07v-domname = i_domname.
ls_dd07v-domvalue_l = i_domvalue.
ls_dd07v-domvalue_h = i_domvalue_h.
IF i_valpos IS INITIAL.
DESCRIBE TABLE lt_dd07v.
ls_dd07v-valpos = sy-tfill + 1.
ELSE.
ls_dd07v-valpos = i_valpos.
ENDIF.
ls_dd07v-ddlanguage = i_langu.
ls_dd07v-ddtext = i_valtext.
APPEND ls_dd07v TO lt_dd07v.
SORT lt_dd07v BY valpos.
l_update = 'X'.
ENDIF.
IF NOT lt_dd07v[] IS INITIAL.
ls_dd01v-valexi = 'X'.
ENDIF.
ENDIF.
IF l_update IS INITIAL.
IF i_domvalue IS SUPPLIED.
MESSAGE i666(01) WITH 'No update necessary for fix value' i_domvalue INT
O sy-lisel. "#EC *
CALL METHOD log_message.
ELSE.
MESSAGE i666(01) WITH 'No update necessary' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
RETURN.
ENDIF.
DATA: l_funcname TYPE funcname,
l_text TYPE tftit-stext,
l_namespace TYPE rs38l-namespace,
l_area TYPE tlibg-area.
DATA: lt_import TYPE TABLE OF rsimp,
ls_import TYPE rsimp,
lt_export TYPE TABLE OF rsexp,
ls_export TYPE rsexp,
lt_source TYPE TABLE OF rssource.
IF NOT i_convexit IS INITIAL.
"check if function group exist
CALL FUNCTION 'RPY_EXISTENCE_CHECK_FUGR'
EXPORTING
name = i_function_group
EXCEPTIONS
not_exist = 1
OTHERS = 2.
IF sy-subrc NE 0 AND NOT i_function_group IN gr_fugrname.
MESSAGE e666(01) WITH 'Function group' i_function_group 'does not exist.
' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
"check if function modules exist
DO 2 TIMES.
IF sy-index EQ 1.
CONCATENATE 'CONVERSION_EXIT_' i_convexit '_INPUT' INTO l_funcname. "#
EC NOTEXT
APPEND 'INPUT' TO lt_import. "#EC NOTEXT
APPEND 'OUTPUT' TO lt_export. "#EC NOTEXT
APPEND 'MOVE input TO output.' TO lt_source. "#EC NOTEXT
ELSE.
CONCATENATE 'CONVERSION_EXIT_' i_convexit '_OUTPUT' INTO l_funcname. "
#EC NOTEXT
ENDIF.
CALL FUNCTION 'FUNCTION_EXISTS'
EXPORTING
funcname = l_funcname
EXCEPTIONS
function_not_exist = 1
OTHERS = 0.
IF sy-subrc EQ 1.
"create empty function module on the fly
IF NOT testrun IS INITIAL.
MESSAGE s666(01) WITH 'Conversion exit function module' l_funcname '
will be created.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
CONTINUE.
ENDIF.
CALL METHOD add_to_transport
EXPORTING
i_object = 'FUNC'
i_obj_name = l_funcname
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0.
l_text = l_funcname.
IF i_function_group+1 CA '/'.
ADD 2 TO sy-fdpos.
l_namespace = i_function_group(sy-fdpos).
l_area = i_function_group+sy-fdpos.
ELSE.
l_area = i_function_group.
ENDIF.
CALL FUNCTION 'RS_FUNCTIONMODULE_INSERT'
EXPORTING
funcname = l_funcname
function_pool = l_area
namespace = l_namespace
short_text = l_text
suppress_corr_check = ' '
suppress_language_check = 'X'
authority_check = 'X'
suppress_upgrade_check = 'X'
TABLES
import_parameter = lt_import
export_parameter = lt_export
source = lt_source
EXCEPTIONS
OTHERS = 1.
ENDIF.
IF sy-subrc EQ 0.
MESSAGE s666(01) WITH 'Search help exit function module' l_funcname
'has been created.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ELSE.
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
ENDDO.
ENDIF.
CALL METHOD add_to_transport
EXPORTING
i_object = 'DOMA'
i_obj_name = i_domname
i_devclass = i_devclass
i_langu = i_langu
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
"align redundant field DOMMASTER with TADIR-MASTERLANG
SELECT SINGLE masterlang FROM tadir INTO ls_dd01v-dommaster
WHERE pgmid EQ 'R3TR'
AND object EQ 'DOMA'
AND obj_name EQ i_domname.
CALL FUNCTION 'DDIF_DOMA_PUT'
EXPORTING
name = i_domname
dd01v_wa = ls_dd01v
TABLES
dd07v_tab = lt_dd07v
EXCEPTIONS
doma_not_found = 1
name_inconsistent = 2
doma_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE e108(do) WITH i_domname INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
MESSAGE i666(01) WITH 'Update successful' INTO sy-lisel. "#EC *
CALL METHOD log_message.
CALL METHOD register_inactive_object
EXPORTING
i_objtype = 'DOMA'
i_objname = i_domname.
ENDMETHOD. "create_doma
METHOD create_dtel.
DATA: ls_dd04v TYPE dd04v,
l_gotstate,
ls_rollname LIKE LINE OF gr_domname VALUE 'IEQ'.
CALL METHOD set_context
EXPORTING
i_langu = i_langu
i_object = 'DTEL'
i_obj_name = i_rollname.
ls_rollname-low = i_rollname.
COLLECT ls_rollname INTO gr_rollname.
CALL FUNCTION 'DDIF_DTEL_GET'
EXPORTING
name = i_rollname
langu = i_langu
state = 'M' "newest version (e.g. inactive)
IMPORTING
dd04v_wa = ls_dd04v
gotstate = l_gotstate
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0 AND
ls_dd04v-rollname EQ i_rollname AND
ls_dd04v-ddlanguage EQ i_langu AND
ls_dd04v-memoryid EQ i_memoryid AND
ls_dd04v-logflag EQ i_logflag AND
ls_dd04v-headlen EQ i_headlen AND
ls_dd04v-scrlen1 EQ i_scrlen1 AND
ls_dd04v-scrlen2 EQ i_scrlen2 AND
ls_dd04v-scrlen3 EQ i_scrlen3 AND
ls_dd04v-ddtext EQ i_ddtext AND
ls_dd04v-reptext EQ i_reptext AND
ls_dd04v-scrtext_m EQ i_scrtext_m AND
ls_dd04v-scrtext_l EQ i_scrtext_l AND
ls_dd04v-scrtext_s EQ i_scrtext_s AND
ls_dd04v-shlpname EQ i_shlpname AND
ls_dd04v-shlpfield EQ i_shlpfield AND
ls_dd04v-deffdname EQ i_deffdname AND
ls_dd04v-proxytype EQ i_proxytype AND ">=SAPB
ASIS640
( ls_dd04v-domname NE space AND ls_dd04v-datatype NE 'REF' OR
">=SAPBASIS640
ls_dd04v-refkind EQ i_refkind AND ls_dd04v-reftype EQ i_reftype ) AND
">=SAPBASIS640
( i_domname NE space AND ls_dd04v-domname EQ i_domname
OR
i_domname EQ space AND ls_dd04v-datatype EQ i_datatype AND
ls_dd04v-decimals EQ i_decimals AND
ls_dd04v-leng EQ i_leng ).
"data element already exists with that properties
MESSAGE i666(01) WITH 'No update necessary' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
"check whether domain exists
IF NOT i_domname IS INITIAL AND i_datatype NE 'REF'.
READ TABLE gr_domname TRANSPORTING NO FIELDS WITH KEY low = i_domname.
IF sy-subrc NE 0.
SELECT SINGLE domname FROM dd01l INTO sy-lisel WHERE domname EQ i_domnam
e.
ENDIF.
IF sy-subrc NE 0.
MESSAGE e666(01) WITH 'Domain' i_domname 'does not exist' INTO sy-lisel.
"#EC *
CALL METHOD log_message.
IF testrun IS INITIAL.
RETURN.
ENDIF.
ENDIF.
ENDIF.
ls_dd04v-ddlanguage = i_langu.
ls_dd04v-ddtext = i_ddtext.
ls_dd04v-scrtext_s = i_scrtext_s.
ls_dd04v-scrlen1 = i_scrlen1.
ls_dd04v-scrtext_m = i_scrtext_m.
ls_dd04v-scrlen2 = i_scrlen2.
ls_dd04v-scrtext_l = i_scrtext_l.
ls_dd04v-scrlen3 = i_scrlen3.
IF NOT i_reptext IS INITIAL.
ls_dd04v-reptext = i_reptext.
IF i_headlen IS INITIAL.
ls_dd04v-headlen = strlen( i_reptext ).
ELSE.
ls_dd04v-headlen = i_headlen.
ENDIF.
ENDIF.
ls_dd04v-rollname = i_rollname.
ls_dd04v-domname = i_domname.
IF ls_dd04v-domname IS INITIAL.
ls_dd04v-datatype = i_datatype.
ls_dd04v-decimals = i_decimals.
ls_dd04v-leng = i_leng.
ENDIF.
ls_dd04v-shlpname = i_shlpname.
ls_dd04v-shlpfield = i_shlpfield.
ls_dd04v-deffdname = i_deffdname.
ls_dd04v-logflag = i_logflag.
ls_dd04v-memoryid = i_memoryid.
ls_dd04v-refkind = i_refkind. ">=
SAPBASIS640
ls_dd04v-reftype = i_reftype. ">=
SAPBASIS640
ls_dd04v-proxytype = i_proxytype. ">=
SAPBASIS640
CALL METHOD add_to_transport
EXPORTING
i_object = 'DTEL'
i_obj_name = i_rollname
i_devclass = i_devclass
i_langu = i_langu "masterlanguage (only relevant during first call)
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
"align redundant field DTELMASTER with TADIR-MASTERLANG
SELECT SINGLE masterlang FROM tadir INTO ls_dd04v-dtelmaster
WHERE pgmid EQ 'R3TR'
AND object EQ 'DTEL'
AND obj_name EQ i_rollname.
CALL FUNCTION 'DDIF_DTEL_PUT'
EXPORTING
name = i_rollname
dd04v_wa = ls_dd04v
EXCEPTIONS
dtel_not_found = 1
name_inconsistent = 2
dtel_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6.
IF sy-subrc NE 0.
CALL METHOD log_message.
RETURN.
ELSE.
MESSAGE i666(01) WITH 'Update successful' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
CALL METHOD register_inactive_object
EXPORTING
i_objtype = 'DTEL'
i_objname = i_rollname.
ENDMETHOD. "create_dtel
METHOD create_table_type.
DATA: ls_dd40v TYPE dd40v,
lt_dd42v TYPE tt_dd42v,
lt_dd43v TYPE tt_dd43v,
ls_ttypname LIKE LINE OF gr_ttypname VALUE 'IEQ'.
CALL METHOD set_context
EXPORTING
i_langu = i_langu
i_object = 'TTYP'
i_obj_name = i_typename.
ls_ttypname-low = i_typename.
COLLECT ls_ttypname INTO gr_ttypname.
CALL FUNCTION 'DDIF_TTYP_GET'
EXPORTING
name = i_typename
state = 'M'
langu = i_langu "with text
IMPORTING
dd40v_wa = ls_dd40v
TABLES
dd42v_tab = lt_dd42v
* dd43v_tab = lt_dd43v
EXCEPTIONS
illegal_input = 1
OTHERS = 2.
IF sy-subrc EQ 0 AND "exists
( ls_dd40v-ddtext = i_ddtext OR i_ddtext IS INITIAL ) AND
ls_dd40v-rowtype = i_rowtype AND
ls_dd40v-datatype = i_datatype AND
( ls_dd40v-leng = i_leng OR i_leng IS INITIAL ) AND
( ls_dd40v-decimals = i_decimals OR i_decimals IS INITIAL ) AND
ls_dd40v-rowkind = i_rowkind AND
ls_dd40v-accessmode = i_accessmode AND
ls_dd40v-keydef = i_keydef AND
ls_dd40v-keykind = i_keykind AND
ls_dd40v-generic = i_generic AND
ls_dd40v-proxytype = i_proxytype AND ">=S
APBASIS640
* ls_dd40v-furtherseckey = i_furtherseckey AND
lt_dd43v = it_dd43v AND
lt_dd42v = it_dd42v.
MESSAGE i666(01) WITH 'No update necessary' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
"basic consistency checks
IF i_rowkind EQ 'S'. "structure
READ TABLE gt_tabname TRANSPORTING NO FIELDS WITH KEY table_line = i_rowty
pe. "new structure
IF sy-subrc NE 0.
SELECT SINGLE tabname FROM dd02l INTO sy-lisel WHERE tabname EQ i_rowtyp
e. "existing structure
ENDIF.
IF sy-subrc NE 0.
MESSAGE e666(01) WITH 'Structure' i_rowtype 'does not exist' INTO sy-lis
el. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
"now create/update
ls_dd40v-typename = i_typename.
ls_dd40v-rowtype = i_rowtype.
ls_dd40v-rowkind = i_rowkind.
ls_dd40v-ttypkind = i_ttypkind.
ls_dd40v-range_ctyp = i_range_ctyp.
ls_dd40v-datatype = i_datatype.
ls_dd40v-leng = i_leng.
ls_dd40v-decimals = i_decimals.
ls_dd40v-accessmode = i_accessmode.
ls_dd40v-keydef = i_keydef.
ls_dd40v-keykind = i_keykind.
ls_dd40v-proxytype = i_proxytype. ">=S
APBASIS640
ls_dd40v-generic = i_generic.
* ls_dd40v-furtherseckey = i_furtherseckey.
IF NOT i_ddtext IS INITIAL.
ls_dd40v-ddtext = i_ddtext.
ls_dd40v-ddlanguage = i_langu.
ENDIF.
CALL METHOD add_to_transport
EXPORTING
i_object = 'TTYP'
i_langu = i_langu
i_obj_name = i_typename
i_devclass = i_devclass
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
CALL FUNCTION 'DDIF_TTYP_PUT'
EXPORTING
name = i_typename
dd40v_wa = ls_dd40v
TABLES
dd42v_tab = it_dd42v
* dd43v_tab = it_dd43v
EXCEPTIONS
ttyp_not_found = 1
name_inconsistent = 2
ttyp_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6.
IF sy-subrc NE 0.
CALL METHOD log_message.
RETURN.
ELSE.
MESSAGE i666(01) WITH 'Update successful' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
CALL METHOD register_inactive_object
EXPORTING
i_objtype = 'TTYP'
i_objname = i_typename.

ENDMETHOD. "create_table_type

METHOD create_table.
DATA: ls_dd02v TYPE dd02v,
ls_dd09l TYPE dd09l,
lt_dd03p TYPE TABLE OF dd03p,
lt_dd05m TYPE TABLE OF dd05m,
lt_dd08v TYPE TABLE OF dd08v,
lt_dd12v TYPE TABLE OF dd12v,
lt_dd17v TYPE TABLE OF dd17v,
lt_dd35v TYPE TABLE OF dd35v,
lt_dd36m TYPE TABLE OF dd36m,
l_treetype TYPE trobjtype,
l_technical_setting_changed,
ls_tabname LIKE LINE OF gr_tabname VALUE 'IEQ'.
DATA: BEGIN OF ls_dd09l_new, "field available release dependent
javaonly, "as of 700
roworcolst, "as of 740
END OF ls_dd09l_new.
DATA: BEGIN OF ls_dd02v_new, "field available release dependent
is_gtt, "as of 740
END OF ls_dd02v_new.
FIELD-SYMBOLS: <ls_dd09l_javaonly> TYPE char1,
<ls_dd09l_roworcolst> TYPE char1.
CALL METHOD set_context
EXPORTING
i_langu = i_langu
i_object = 'TABD'
i_obj_name = i_tabname.
ls_tabname-low = i_tabname.
COLLECT ls_tabname INTO gr_tabname.
CALL FUNCTION 'DDIF_TABL_GET'
EXPORTING
name = i_tabname
state = 'M' "newest version (e.g. inactive)
langu = i_langu
IMPORTING
* GOTSTATE = GOTSTATE
dd02v_wa = ls_dd02v
dd09l_wa = ls_dd09l
TABLES
dd03p_tab = lt_dd03p
dd05m_tab = lt_dd05m
dd08v_tab = lt_dd08v
dd12v_tab = lt_dd12v
dd17v_tab = lt_dd17v
dd35v_tab = lt_dd35v
dd36m_tab = lt_dd36m
EXCEPTIONS
illegal_input = 0 "checking ls_dd02v-tabname NE space
OTHERS = 0.
"handling of fields which do no exist in all releases:
ls_dd09l_new-roworcolst = i_roworcolst. "default: make equal to avoid unnec
cessary update
ls_dd09l_new-javaonly = i_javaonly. "default: make equal to avoid unnec
cessary update
MOVE-CORRESPONDING ls_dd09l TO ls_dd09l_new. "overwrite default with actual
value if exists
ls_dd02v_new-is_gtt = i_is_gtt.
MOVE-CORRESPONDING ls_dd02v TO ls_dd02v_new. "overwrite default with actual
value if exists
IF i_tabclass EQ 'INTTAB' AND ( ls_dd02v-tabclass EQ 'INTTAB' OR ls_dd02v-ta
bclass IS INITIAL ). "V5.73
l_technical_setting_changed = space. "structures do not have technical se
ttings
ELSEIF ls_dd02v-contflag EQ i_contflag AND
ls_dd02v-buffered EQ i_buffered AND
ls_dd09l-tabkat EQ i_tabkat AND
ls_dd09l-tabart EQ i_tabart AND
ls_dd09l-pufferung EQ i_pufferung AND
ls_dd09l-bufallow EQ i_bufallow AND
ls_dd09l-schfeldanz EQ i_schfeldanz AND
ls_dd09l-protokoll EQ i_protokoll AND
ls_dd09l-uebersetz EQ i_uebersetz AND
ls_dd09l_new-javaonly EQ i_javaonly AND
( ls_dd09l_new-roworcolst EQ i_roworcolst OR i_roworcolst IS INITIAL )
AND
( ls_dd02v_new-is_gtt EQ i_is_gtt OR i_is_gtt IS INITIAL )
AND
ls_dd09l-speichpuff EQ i_speichpuff. "do not check javaonly fie
ld
l_technical_setting_changed = space.
ELSE.
l_technical_setting_changed = 'X'.
ENDIF.
IF ls_dd02v-tabname NE space AND "existing.
ls_dd02v-ddtext EQ i_ddtext AND
ls_dd02v-exclass EQ i_exclass AND ">=SAPBAS
IS640
ls_dd02v-proxytype EQ i_proxytype AND ">=SAPBAS
IS640
ls_dd02v-tabclass EQ i_tabclass AND
ls_dd02v-authclass EQ i_authclass AND
ls_dd02v-mainflag EQ i_mainflag AND
ls_dd02v-sqltab EQ i_sqltab AND
l_technical_setting_changed IS INITIAL.
MESSAGE i666(01) WITH 'No update necessary' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
"new table
ls_dd02v-tabname = i_tabname.
ls_dd02v-ddlanguage = i_langu.
ls_dd02v-exclass = i_exclass. ">=SAP
BASIS640
ls_dd02v-proxytype = i_proxytype. ">=SAP
BASIS640
ls_dd02v-tabclass = i_tabclass.
ls_dd02v-authclass = i_authclass.
ls_dd02v-mainflag = i_mainflag.
ls_dd02v-sqltab = i_sqltab.
IF i_ddtext IS INITIAL.
ls_dd02v-ddtext = i_tabname.
ELSE.
ls_dd02v-ddtext = i_ddtext.
ENDIF.
IF ls_dd02v-tabclass EQ 'CLUSTER' OR "only for real database tables
ls_dd02v-tabclass EQ 'POOL' OR
ls_dd02v-tabclass EQ 'TRANSP'.
ls_dd02v-contflag = i_contflag.
ls_dd02v-buffered = i_buffered.
ls_dd09l-tabname = i_tabname.
ls_dd09l-tabkat = i_tabkat.
ls_dd09l-tabart = i_tabart.
ls_dd09l-pufferung = i_pufferung.
ls_dd09l-bufallow = i_bufallow.
ls_dd09l-schfeldanz = i_schfeldanz.
ls_dd09l-protokoll = i_protokoll.
ls_dd09l-uebersetz = i_uebersetz.
ls_dd09l-speichpuff = i_speichpuff.
ls_dd09l_new-javaonly = i_javaonly.
ls_dd09l_new-roworcolst = i_roworcolst.
MOVE-CORRESPONDING ls_dd09l_new TO ls_dd09l.
ls_dd02v_new-is_gtt = i_is_gtt.
MOVE-CORRESPONDING ls_dd02v_new TO ls_dd02v.
l_treetype = 'TABL'.
ELSE.
l_treetype = 'CDS'.
ENDIF.
CALL METHOD add_to_transport
EXPORTING
i_object = 'TABL'
i_langu = i_langu
i_obj_name = i_tabname
i_devclass = i_devclass
i_edtflag = i_edtflag
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
IF l_technical_setting_changed EQ 'X'.
CALL METHOD add_to_transport
EXPORTING
i_object = 'TABT'
i_langu = i_langu
i_obj_name = i_tabname
i_devclass = i_devclass
i_edtflag = i_edtflag
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
ENDIF.
"update redundant field masterlang with TADIR value
SELECT SINGLE masterlang FROM tadir INTO ls_dd02v-masterlang
WHERE pgmid EQ 'R3TR'
AND object EQ 'TABL'
AND obj_name EQ i_tabname.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
name = i_tabname
dd02v_wa = ls_dd02v
dd09l_wa = ls_dd09l
TABLES
dd03p_tab = lt_dd03p
dd05m_tab = lt_dd05m
dd08v_tab = lt_dd08v
dd35v_tab = lt_dd35v
dd36m_tab = lt_dd36m
EXCEPTIONS
tabl_not_found = 1
name_inconsistent = 2
tabl_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6.
IF sy-subrc <> 0.
CALL METHOD log_message.
RETURN.
ENDIF.
MESSAGE i666(01) WITH 'Update successful' INTO sy-lisel. "#EC *
CALL METHOD log_message.
CALL METHOD register_inactive_object
EXPORTING
i_objtype = 'TABL'
i_treetype = l_treetype
i_objname = i_tabname.

ENDMETHOD. "create_table
METHOD add_field_to_table.
DATA: ls_dd02v TYPE dd02v,
ls_dd09l TYPE dd09l,
lt_dd03p TYPE TABLE OF dd03p,
ls_dd05m TYPE dd05m,
lt_dd05m TYPE TABLE OF dd05m,
ls_dd08v TYPE dd08v,
lt_dd08v TYPE TABLE OF dd08v,
lt_dd12v TYPE TABLE OF dd12v,
lt_dd17v TYPE TABLE OF dd17v,
lt_dd35v TYPE TABLE OF dd35v,
lt_dd36m TYPE TABLE OF dd36m,
l_tabix TYPE sytabix,
l_state TYPE ddgotstate,
l_include TYPE fieldname,
l_type TYPE rollname,
ls_tabname LIKE LINE OF gr_tabname VALUE 'IEQ'.
FIELD-SYMBOLS: <ls_dd03p> TYPE dd03p.
IF i_remove IS INITIAL.
sy-lisel = 'Add field(s) to table'. "#EC NOTEXT
ELSE.
sy-lisel = 'Remove field(s) from table'. "#EC NOTEXT
ENDIF.
CALL METHOD set_context
EXPORTING
i_langu = space
i_text = sy-lisel
i_object = 'TABD'
i_obj_name = i_tabname.
ls_tabname-low = i_tabname.
COLLECT ls_tabname INTO gr_tabname.
CALL FUNCTION 'DDIF_TABL_GET'
EXPORTING
name = i_tabname
state = 'M' "newest version (e.g. inactive)
IMPORTING
* GOTSTATE = GOTSTATE
dd02v_wa = ls_dd02v
dd09l_wa = ls_dd09l
TABLES
dd03p_tab = lt_dd03p
dd05m_tab = lt_dd05m
dd08v_tab = lt_dd08v
dd12v_tab = lt_dd12v
dd17v_tab = lt_dd17v
dd35v_tab = lt_dd35v
dd36m_tab = lt_dd36m
EXCEPTIONS
illegal_input = 1
OTHERS = 2.
IF sy-subrc NE 0 OR ls_dd02v-tabname IS INITIAL. "not existing.
READ TABLE gr_tabname TRANSPORTING NO FIELDS WITH KEY low = i_tabname.
IF testrun IS INITIAL OR i_remove EQ 'X' OR sy-subrc NE 0. "'i_tabname NOT
IN gr_tabname' does not work since there might be database tables with sign = '
E'
MESSAGE e666(01) WITH 'Error while reading table' i_tabname INTO sy-lise
l. "#EC *
CALL METHOD log_message.
ENDIF.
RETURN.
ENDIF.
CASE ls_dd02v-tabclass.
WHEN 'CLUSTER' OR 'POOL' OR 'TRANSP'.
COLLECT ls_tabname INTO gr_dbtabname.
CALL FUNCTION 'DDIF_TABL_GET'
EXPORTING
name = i_tabname
state = 'A'
IMPORTING
gotstate = l_state
EXCEPTIONS
OTHERS = 0.
IF l_state EQ 'A'.
ls_tabname-sign = 'E'. "exclude from activation step 1
COLLECT ls_tabname INTO gr_tabname.
ENDIF.
IF ls_dd09l IS INITIAL. "technical settings are missing -> will give err
or in RS_DD_CHECK_ACTIVATE
MESSAGE e173(e2) INTO sy-lisel WITH 'TABL' i_tabname. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDCASE.
IF i_remove IS INITIAL.
"check length of fieldname.
DATA: ls_saac TYPE saanorm,
l_rclist TYPE char10.
ls_saac-saa_length = 'X'.
CALL FUNCTION 'DD_TABL_CHK_SAANORM'
EXPORTING
name = i_fieldname
saac = ls_saac
objecttype = 'TBFD' "table field
subtype = ls_dd02v-tabclass
IMPORTING
rclist = l_rclist.
IF NOT l_rclist IS INITIAL.
MESSAGE e102(ad) WITH i_fieldname INTO sy-lisel.
CALL METHOD log_message.
MESSAGE w666(01) WITH 'Please refer to note 1680583.' INTO sy-lisel. "#E
C *
CALL METHOD log_message.
RETURN.
ENDIF.
"check whether data element respectivly included/appended/referenced struc
ture exists
IF i_rollname NE space AND i_rollname NE 'DATA' AND i_rollname NE 'OBJECT
'. "type ref to DATA/OBJECT is always allowed
READ TABLE gr_rollname TRANSPORTING NO FIELDS WITH KEY low = i_rollnam
e. "new data element
IF sy-subrc NE 0.
READ TABLE gt_tabname TRANSPORTING NO FIELDS WITH KEY table_line = i_
rollname. "new structure
ENDIF.
IF sy-subrc NE 0.
READ TABLE gt_ttypname TRANSPORTING NO FIELDS WITH KEY table_line = i_
rollname. "new table type
ENDIF.
IF sy-subrc NE 0.
SELECT SINGLE rollname FROM dd04l INTO sy-lisel WHERE rollname EQ i_ro
llname. "#EC CI_GENBUFF
ENDIF.
IF sy-subrc NE 0.
SELECT SINGLE tabname FROM dd03l INTO sy-lisel WHERE tabname EQ i_rol
lname. "existing structure
ENDIF.
IF sy-subrc NE 0.
SELECT SINGLE typename FROM dd40l INTO sy-lisel WHERE typename EQ i_ro
llname. "existing table_type
ENDIF.
IF sy-subrc NE 0.
SELECT SINGLE clsname FROM seoclass INTO sy-lisel WHERE clsname EQ i_
rollname. "existing class
ENDIF.
IF sy-subrc NE 0.
IF i_rollname(3) EQ 'CL_'. "probably a class
MESSAGE w666(01) WITH 'Class' i_rollname 'does not exist (yet)' INTO
sy-lisel. "#EC *
CALL METHOD log_message.
ELSEIF i_fieldname(6) EQ c_include6 AND ( i_rollname(3) EQ 'CI_' OR i_
rollname(3) EQ 'SI_' ).
"Customer/industry include
ELSE.
MESSAGE e666(01) WITH 'Data Element or Structure' i_rollname 'does n
ot exist' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
ENDIF.
"Find field to insert/change
IF i_fieldname(6) EQ c_include6.
READ TABLE lt_dd03p ASSIGNING <ls_dd03p>
WITH KEY fieldname = i_fieldname
precfield = i_rollname.
IF sy-subrc EQ 0 AND <ls_dd03p>-groupname = i_groupname.
"INCLUDE already exists
MESSAGE i666(01) WITH 'Include ' i_rollname 'already part of table' i_
tabname INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ELSE.
READ TABLE lt_dd03p ASSIGNING <ls_dd03p>
WITH KEY fieldname = i_fieldname depth = 0.
IF sy-subrc EQ 0.
"extract foreign key relation ship for current field
DATA: lt_dd05m_h TYPE tt_dd05m,
it_dd05m_h TYPE tt_dd05m.
it_dd05m_h[] = it_dd05m[]. "one field
lt_dd05m_h[] = lt_dd05m[].
DELETE lt_dd05m_h WHERE fieldname NE i_fieldname. "now also one field
CLEAR ls_dd05m.
MODIFY lt_dd05m_h FROM ls_dd05m TRANSPORTING domname datatype leng WHE
RE NOT fieldname IS INITIAL.
MODIFY it_dd05m_h FROM ls_dd05m TRANSPORTING domname datatype leng WHE
RE NOT fieldname IS INITIAL.
CLEAR ls_dd08v.
READ TABLE lt_dd08v INTO ls_dd08v WITH KEY fieldname = i_fieldname.
"Check if fields already has data element
IF "i_context EQ l_context AND "not yet supported
i_rollname EQ <ls_dd03p>-rollname AND
( i_datatype EQ <ls_dd03p>-datatype OR i_datatype IS INITIAL ) AND
( i_decimals EQ <ls_dd03p>-decimals OR i_decimals IS INITIAL ) AND
( i_leng EQ <ls_dd03p>-leng OR i_leng IS INITIAL ) AND
i_keyflag EQ <ls_dd03p>-keyflag AND
i_languflag EQ <ls_dd03p>-languflag AND
">=SAPBASIS640
i_notnull EQ <ls_dd03p>-notnull AND
i_reftable EQ <ls_dd03p>-reftable AND
i_reffield EQ <ls_dd03p>-reffield AND
i_groupname EQ <ls_dd03p>-groupname AND
* i_reftype EQ <ls_dd03p>-reftype AND
( i_datatype NE c_type_ref_to OR <ls_dd03p>-reftype NE space ) AND
it_dd05m_h[] EQ lt_dd05m_h[] AND
is_dd08v EQ ls_dd08v.
"field already exists with correct data element, langu and foreign k
ey
IF i_datatype NE c_type_ref_to OR <ls_dd03p>-reftype NE space.
MESSAGE i666(01) WITH 'No update neccessary for field' i_fieldname
INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ELSE.
MESSAGE i666(01) WITH 'Properties of field' i_fieldname 'will be cha
nged' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ENDIF.
ENDIF.
IF NOT <ls_dd03p> IS ASSIGNED. "new field
"Find context (one field is enough since fieldname is unique)
IF i_context EQ i_tabname.
l_tabix = 1. "table name as context -> insert at the very beginning
ELSEIF NOT i_context IS INITIAL.
SPLIT i_context AT space INTO l_include l_type.
IF NOT l_type IS INITIAL. ".include XYZ or .inclu-abc XYZ
READ TABLE lt_dd03p TRANSPORTING NO FIELDS "include name as context
WITH KEY fieldname = l_include
precfield = l_type.
ELSE.
READ TABLE lt_dd03p TRANSPORTING NO FIELDS
WITH KEY fieldname = i_context.
IF sy-subrc NE 0.
READ TABLE lt_dd03p TRANSPORTING NO FIELDS "include name as conte
xt (before version 4.25)
WITH KEY precfield = i_context.
ENDIF.
ENDIF.
IF sy-subrc NE 0 AND NOT lt_dd03p[] IS INITIAL.
READ TABLE gr_tabname TRANSPORTING NO FIELDS WITH KEY low = i_tabnam
e.
IF testrun IS INITIAL OR sy-subrc NE 0. "'i_tabname NOT IN gr_tabnam
e' does not work since there might be database tables with sign = 'E'
MESSAGE e666(01) WITH 'Context' i_context 'not found for field' i_
fieldname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ELSE.
"missing context may be created during update hence give success m
essage in testrun
IF i_fieldname(6) EQ c_include6.
MESSAGE i666(01) WITH i_fieldname+1 i_rollname 'will be added' I
NTO sy-lisel. "#EC *
ELSE.
MESSAGE i666(01) WITH 'Field' i_fieldname 'will be added' INTO s
y-lisel. "#EC *
ENDIF.
CALL METHOD log_message.
ENDIF.
RETURN.
ENDIF.
"insert new field after context
l_tabix = sy-tabix + 1.
ELSE.
"no context -> insert field at end
DESCRIBE TABLE lt_dd03p LINES sy-tfill.
l_tabix = sy-tfill + 1.
ENDIF.
* INSERT INITIAL LINE INTO lt_dd03p INDEX l_tabix ASSIGNING <ls_dd03p>.
INSERT INITIAL LINE INTO lt_dd03p INDEX l_tabix. READ TABLE lt_dd03p IND
EX l_tabix ASSIGNING <ls_dd03p>. "46C
ENDIF.
<ls_dd03p>-tabname = i_tabname.
<ls_dd03p>-fieldname = i_fieldname.
<ls_dd03p>-groupname = i_groupname.
<ls_dd03p>-languflag = i_languflag. ">=SAPBASIS640
<ls_dd03p>-notnull = i_notnull.
<ls_dd03p>-keyflag = i_keyflag.
<ls_dd03p>-reftable = i_reftable.
<ls_dd03p>-reffield = i_reffield.
"initialize all attributes before populating them depending in use case
CLEAR: <ls_dd03p>-rollname,
<ls_dd03p>-datatype,
<ls_dd03p>-decimals,
<ls_dd03p>-leng,
<ls_dd03p>-ddtext,
<ls_dd03p>-ddlanguage,
<ls_dd03p>-precfield,
<ls_dd03p>-comptype.
IF i_fieldname(6) EQ c_include6.
<ls_dd03p>-precfield = i_rollname.
<ls_dd03p>-comptype = 'S'.
ELSEIF i_rollname IS INITIAL.
<ls_dd03p>-datatype = i_datatype.
<ls_dd03p>-decimals = i_decimals.
<ls_dd03p>-leng = i_leng.
IF i_ddtext NE space.
<ls_dd03p>-ddtext = i_ddtext.
<ls_dd03p>-ddlanguage = i_langu.
ENDIF.
ELSE.
<ls_dd03p>-rollname = i_rollname.
IF i_datatype EQ c_type_ref_to.
<ls_dd03p>-datatype = i_datatype.
<ls_dd03p>-comptype = 'R'.
ENDIF.
ENDIF.
LOOP AT lt_dd03p ASSIGNING <ls_dd03p> FROM l_tabix.
<ls_dd03p>-position = sy-tabix.
ENDLOOP.
"field will be added
IF i_fieldname(6) EQ c_include6.
MESSAGE i666(01) WITH i_fieldname+1 i_rollname 'will be added' INTO sy-l
isel. "#EC *
ELSE.
MESSAGE i666(01) WITH 'Field' i_fieldname 'will be added' INTO sy-lisel.
"#EC *
ENDIF.
CALL METHOD log_message.
DELETE lt_dd08v WHERE fieldname EQ i_fieldname.
DELETE lt_dd05m WHERE fieldname EQ i_fieldname.
LOOP AT it_dd05m INTO ls_dd05m WHERE NOT checktable IS INITIAL
AND NOT checkfield IS INITIAL.
APPEND ls_dd05m TO lt_dd05m.
ENDLOOP.
IF NOT is_dd08v IS INITIAL.
APPEND is_dd08v TO lt_dd08v.
ENDIF.
ELSEIF i_remove EQ 'X'.
IF i_fieldname(6) EQ c_include6.
DELETE lt_dd03p WHERE fieldname EQ i_fieldname AND precfield EQ i_rollna
me.
IF sy-subrc EQ 0.
MESSAGE i666(01) WITH i_fieldname+1 i_rollname 'will be removed' INTO
sy-lisel. "#EC *
CALL METHOD log_message.
ELSE.
MESSAGE s666(01) WITH 'No update neccessary for' i_fieldname+1 i_rolln
ame INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ELSE.
DELETE lt_dd03p WHERE fieldname EQ i_fieldname.
IF sy-subrc EQ 0.
MESSAGE i666(01) WITH 'Field' i_fieldname 'will be removed' INTO sy-li
sel. "#EC *
CALL METHOD log_message.
ELSE.
MESSAGE s666(01) WITH 'No update neccessary for field' i_fieldname INT
O sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
DELETE lt_dd05m WHERE fieldname EQ i_fieldname.
DELETE lt_dd08v WHERE fieldname EQ i_fieldname.
DELETE lt_dd35v WHERE fieldname EQ i_fieldname.
DELETE lt_dd36m WHERE fieldname EQ i_fieldname.
ENDIF.
CALL METHOD add_to_transport
EXPORTING
i_object = 'TABL'
i_obj_name = i_tabname
i_edtflag = i_edtflag
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
name = i_tabname
dd02v_wa = ls_dd02v
dd09l_wa = ls_dd09l
TABLES
dd03p_tab = lt_dd03p
dd05m_tab = lt_dd05m
dd08v_tab = lt_dd08v
dd35v_tab = lt_dd35v
dd36m_tab = lt_dd36m
EXCEPTIONS
tabl_not_found = 1
name_inconsistent = 2
tabl_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6.
IF sy-subrc <> 0.
CALL METHOD log_message.
RETURN.
ENDIF.
CALL METHOD register_inactive_object
EXPORTING
i_objtype = 'TABL'
i_objname = i_tabname.
ENDMETHOD. "add_field_to_table

METHOD create_view.
DATA: ls_dd25v TYPE dd25v,
ls_dd09l TYPE dd09l,
lt_dd26v TYPE TABLE OF dd26v,
lt_dd27p TYPE TABLE OF dd27p,
lt_dd28v TYPE TABLE OF dd28v.
DATA: ls_viewname LIKE LINE OF gr_viewname VALUE 'IEQ'.
CALL METHOD set_context
EXPORTING
i_langu = i_langu
i_object = 'VIEW'
i_obj_name = i_viewname.
ls_viewname-low = i_viewname.
COLLECT ls_viewname INTO gr_viewname.
CALL FUNCTION 'DD_VIEW_GET'
EXPORTING
view_name = i_viewname
langu = i_langu
withtext = 'X'
IMPORTING
dd25v_wa_a = ls_dd25v
dd09l_wa_a = ls_dd09l
TABLES
dd26v_tab_a = lt_dd26v
dd27p_tab_a = lt_dd27p
dd28v_tab_a = lt_dd28v
EXCEPTIONS
access_failure = 1
OTHERS = 2.
IF sy-subrc <> 0.
IF testrun IS INITIAL OR NOT i_viewname IN gr_viewname.
MESSAGE e666(01) WITH 'Error while reading view' i_viewname INTO sy-lise
l. "#EC *
CALL METHOD log_message.
ENDIF.
RETURN.
ENDIF.
IF sy-subrc EQ 0 AND ls_dd25v-viewname NE space. "existing.
IF ls_dd25v-ddtext EQ i_ddtext AND
ls_dd25v-viewname EQ i_viewname AND
ls_dd25v-ddlanguage EQ i_langu AND
ls_dd25v-customauth EQ i_contflag AND
ls_dd25v-aggtype EQ i_aggtype AND
ls_dd25v-roottab EQ i_roottab AND
ls_dd25v-viewclass EQ i_viewclass AND
ls_dd25v-viewgrant EQ i_viewgrant AND
ls_dd25v-globalflag EQ i_globalflag AND
ls_dd25v-readonly EQ i_readonly AND
lt_dd26v[] EQ it_dd26v[] AND
lt_dd28v[] EQ it_dd28v[].
"exist
MESSAGE i666(01) WITH 'No update necessary' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
"new view
ls_dd25v-viewname = i_viewname.
ls_dd25v-ddlanguage = i_langu.
ls_dd25v-customauth = i_contflag.
ls_dd25v-aggtype = i_aggtype.
ls_dd25v-roottab = i_roottab.
ls_dd25v-viewclass = i_viewclass.
ls_dd25v-viewgrant = i_viewgrant.
ls_dd25v-globalflag = i_globalflag.
ls_dd25v-readonly = i_readonly.
IF i_ddtext IS INITIAL.
ls_dd25v-ddtext = i_viewname.
ELSE.
ls_dd25v-ddtext = i_ddtext.
ENDIF.
CALL METHOD add_to_transport
EXPORTING
i_object = 'VIEW'
i_langu = i_langu
i_obj_name = i_viewname
i_devclass = i_devclass
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
"clear redundant field MASTERLANG, relevant is only TADIR-MASTERLANG
CLEAR ls_dd25v-masterlang.
CALL FUNCTION 'DD_VIEW_PUT'
EXPORTING
view_name = i_viewname
put_state = 'N' "new
dd25v_wa = ls_dd25v
dd09l_wa = ls_dd09l
TABLES
dd26v_tab = it_dd26v
dd27p_tab = lt_dd27p "fields: emtpy
dd28v_tab = it_dd28v
EXCEPTIONS
db_access_failure = 1
OTHERS = 2.
IF sy-subrc <> 0.
CALL METHOD log_message.
RETURN.
ENDIF.
CALL METHOD register_inactive_object
EXPORTING
i_objtype = 'VIEW'
i_objname = i_viewname.
ENDMETHOD. "create_view
METHOD add_field_to_view.
DATA: ls_dd25v TYPE dd25v,
ls_dd09l TYPE dd09l,
lt_dd26v TYPE TABLE OF dd26v,
lt_dd27p TYPE TABLE OF dd27p,
lt_dd28j TYPE TABLE OF dd28j,
lt_dd28v TYPE TABLE OF dd28v,
l_state TYPE ddgotstate.
DATA: ls_sfw_viewfield TYPE t_sfw_viewfield.
FIELD-SYMBOLS: <ls_dd27p> LIKE LINE OF lt_dd27p.
DATA: l_viewfield LIKE i_viewfield,
l_rollname LIKE i_rollname,
l_tabix TYPE sytabix,
ls_viewname LIKE LINE OF gr_viewname VALUE 'IEQ'.
CALL METHOD set_context
EXPORTING
i_langu = space
i_text = 'Add Field(s) to View' "#EC NOTEXT
i_object = 'VIEW'
i_obj_name = i_viewname.
ls_viewname-low = i_viewname.
COLLECT ls_viewname INTO gr_viewname.
CALL FUNCTION 'DDIF_VIEW_GET'
EXPORTING
name = i_viewname
state = 'M' "most recent, e.g. inactive
IMPORTING
dd25v_wa = ls_dd25v
dd09l_wa = ls_dd09l
TABLES
dd26v_tab = lt_dd26v
dd27p_tab = lt_dd27p
dd28j_tab = lt_dd28j
dd28v_tab = lt_dd28v
EXCEPTIONS
illegal_input = 1
OTHERS = 2.
IF sy-subrc NE 0.
IF testrun IS INITIAL OR NOT i_viewname IN gr_viewname.
MESSAGE e666(01) WITH 'Error while reading view' i_viewname INTO sy-lise
l. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
IF ls_dd25v-viewclass EQ 'D'. "only for database view, not needed for Projec
tion view
COLLECT ls_viewname INTO gr_dbviewname. "can be used like database tables
CALL FUNCTION 'DDIF_VIEW_GET'
EXPORTING
name = i_viewname
state = 'A'
IMPORTING
gotstate = l_state
EXCEPTIONS
OTHERS = 0.
IF l_state EQ 'A'.
ls_viewname-sign = 'E'. "exclude from activation step 1
COLLECT ls_viewname INTO gr_viewname.
ENDIF.
ENDIF.
IF i_viewfield IS INITIAL.
l_viewfield = i_fieldname.
ELSE.
l_viewfield = i_viewfield.
ENDIF.
IF i_rollname IS INITIAL AND l_viewfield NE '*'.
SELECT SINGLE rollname FROM dd03l INTO l_rollname
WHERE tabname EQ i_tabname
AND fieldname EQ i_fieldname.
IF sy-subrc NE 0.
MESSAGE i666(01) WITH 'Field' i_fieldname 'not found in ' i_tabname INTO
sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ELSE.
l_rollname = i_rollname.
ENDIF.

IF i_remove IS INITIAL.
"Check if fields already exists
READ TABLE lt_dd27p ASSIGNING <ls_dd27p> WITH KEY viewfield = l_viewfield
tabname = i_tabname
fieldname = i_fieldname
.
IF sy-subrc EQ 0.
IF <ls_dd27p>-rollname EQ i_rollname AND
<ls_dd27p>-rdonly EQ i_rdonly AND
<ls_dd27p>-rollchange EQ i_rollchange AND
<ls_dd27p>-rollnamevi EQ l_rollname AND
<ls_dd27p>-keyflag EQ i_keyflag.
"field already exists
MESSAGE i666(01) WITH 'Field' l_viewfield 'already exists in view' i_v
iewname INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ELSE.
IF i_context IS INITIAL.
"append at the end
"APPEND INITIAL LINE TO lt_dd27p ASSIGNING <ls_dd27p>.
APPEND INITIAL LINE TO lt_dd27p. READ TABLE lt_dd27p INDEX sy-tabix AS
SIGNING <ls_dd27p>. "46C
ELSE.
"Find context (one field is enough since fieldname is unique)
READ TABLE lt_dd27p TRANSPORTING NO FIELDS
WITH KEY viewfield = i_context.
IF sy-subrc EQ 0.
"insert new field after context
l_tabix = sy-tabix + 1.
* INSERT INITIAL LINE INTO lt_dd27p INDEX l_tabix ASSIGNING <ls_dd27p>.
INSERT INITIAL LINE INTO lt_dd27p INDEX l_tabix. READ TABLE lt_dd27p
INDEX l_tabix ASSIGNING <ls_dd27p>. "46C
ELSE.
IF testrun IS INITIAL OR NOT i_viewname IN gr_viewname.
MESSAGE i666(01) WITH 'Context' i_context 'not found in VIED' i_vi
ewname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
* APPEND INITIAL LINE TO lt_dd27p ASSIGNING <ls_dd27p>.
APPEND INITIAL LINE TO lt_dd27p. READ TABLE lt_dd27p INDEX sy-tabix
ASSIGNING <ls_dd27p>. "46C
ENDIF.
ENDIF.
ENDIF.
"check whether data element exists
IF l_rollname NE space AND l_viewfield NE '*' AND l_viewfield NE '-'.
READ TABLE gr_rollname TRANSPORTING NO FIELDS WITH KEY low = l_rollname.
IF sy-subrc NE 0.
SELECT SINGLE rollname FROM dd04l INTO sy-lisel WHERE rollname EQ l_ro
llname. "#EC CI_GENBUFF
ENDIF.
IF sy-subrc NE 0.
MESSAGE e666(01) WITH 'Data Element' l_rollname 'does not exist' INTO
sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
<ls_dd27p>-viewname = i_viewname.
<ls_dd27p>-viewfield = l_viewfield.
<ls_dd27p>-tabname = i_tabname.
<ls_dd27p>-fieldname = i_fieldname.
<ls_dd27p>-rdonly = i_rdonly. "S/H/R
<ls_dd27p>-keyflag = i_keyflag.
<ls_dd27p>-rollchange = i_rollchange.
<ls_dd27p>-rollnamevi = l_rollname.
ELSE.
DELETE lt_dd27p WHERE viewfield EQ l_viewfield.
ENDIF.
LOOP AT lt_dd27p ASSIGNING <ls_dd27p> FROM l_tabix.
<ls_dd27p>-objpos = sy-tabix.
ENDLOOP.
IF NOT testrun IS INITIAL.
IF i_remove IS INITIAL.
MESSAGE i666(01) WITH 'Field' l_viewfield 'will be added to view' i_view
name INTO sy-lisel. "#EC *
ELSE.
MESSAGE i666(01) WITH 'Field' l_viewfield 'will be removed from view' i_
viewname INTO sy-lisel. "#EC *
ENDIF.
CALL METHOD log_message.
ENDIF.
CALL METHOD add_to_transport
EXPORTING
i_object = 'VIEW'
i_obj_name = i_viewname
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
CALL FUNCTION 'DDIF_VIEW_PUT'
EXPORTING
name = i_viewname
dd25v_wa = ls_dd25v
dd09l_wa = ls_dd09l
TABLES
dd26v_tab = lt_dd26v
dd27p_tab = lt_dd27p
dd28j_tab = lt_dd28j
dd28v_tab = lt_dd28v
EXCEPTIONS
view_not_found = 1
name_inconsistent = 2
view_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6.
IF sy-subrc <> 0.
CALL METHOD log_message.
RETURN.
ENDIF.

IF i_remove IS INITIAL.
MESSAGE i666(01) WITH 'Field' i_fieldname 'has been added to view' i_viewn
ame INTO sy-lisel. "#EC *
ELSE.
MESSAGE i666(01) WITH 'Field' i_fieldname 'has been removed from view' i_v
iewname INTO sy-lisel. "#EC *
ENDIF.
CALL METHOD log_message.
CALL METHOD register_inactive_object
EXPORTING
i_objtype = 'VIEW'
i_objname = i_viewname.
ENDMETHOD. "add_field_to_view
METHOD generate_maint_view. "call SE54, leave screens untouched
"generate or regenerate maintaince view via batch input of SE54
"assumptions:
"- new fields have been added
"- no screen changes needed or done via separate corr instruction
DATA: lt_bdc TYPE TABLE OF bdcdata,
ls_bdc TYPE bdcdata,
ls_bdcp TYPE bdcdata,
lt_message TYPE TABLE OF bdcmsgcoll,
ls_message TYPE bdcmsgcoll,
ls_radio LIKE ls_bdc-fnam,
ls_opt TYPE ctu_params.
DATA: ls_tvdir TYPE tvdir,
l_master TYPE progname,
l_screen TYPE d020s-dnum.
IF update IS NOT INITIAL AND genview IS INITIAL.
CALL METHOD set_context
EXPORTING
i_text = step3_object
i_langu = space
i_object = 'TOBJ'
i_obj_name = i_objectname.
EXIT.
ENDIF.
CASE i_objecttype.
WHEN 'V' OR 'S'. "view or table
CALL METHOD set_context
EXPORTING
i_langu = space
i_text = 'Generate Maintainance View' "#EC NOTEXT
i_object = 'TOBJ'
i_obj_name = i_objectname.
"check existence
CALL FUNCTION 'RPY_EXISTENCE_CHECK_FUGR'
EXPORTING
name = i_func_group
EXCEPTIONS
not_exist = 1
OTHERS = 2.
IF sy-subrc NE 0 AND NOT i_func_group IN gr_fugrname.
sy-msgty = 'E'.
CALL METHOD log_message.
RETURN.
ENDIF.
"try to lock function group
CALL FUNCTION 'RS_ACCESS_PERMISSION'
EXPORTING
authority_check = 'X'
global_lock = 'X'
mode = 'MODIFY'
object = i_func_group
object_class = 'FUGR'
suppress_corr_check = testrun
master_language = sy-langu
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
sy-msgty = 'E'.
CALL METHOD log_message.
RETURN.
ENDIF.
CALL FUNCTION 'RS_ACCESS_PERMISSION'
EXPORTING
mode = 'FREE'
object = i_func_group
object_class = 'FUGR'
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
sy-msgty = 'E'.
CALL METHOD log_message.
RETURN.
ENDIF.
"lock function group in advance to avoid transport popup during batch in
put
IF testrun IS INITIAL.
CALL METHOD add_to_transport
EXPORTING
i_object = 'FUGR'
i_obj_name = i_func_group
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
MESSAGE e666(01) WITH 'Could not add to transport request' INTO sy-l
isel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
"-------------------------------------------
bdc_screen 'SAPMSVIM' '0050'.
bdc_field 'VIMDYNFLDS-VIEWNAME' i_objectname.
bdc_field 'VIMDYNFLDS-ELEM_GEN' 'X'.
bdc_field 'BDC_OKCODE' '=CRMO'.
"check existence to decide between create/change mode
SELECT SINGLE * FROM tvdir INTO ls_tvdir WHERE tabname EQ i_objectname.
IF sy-subrc EQ 0 AND NOT ls_tvdir-liste IS INITIAL.
l_master = lcl_wb=>get_function_pool_master( i_func_group ).
l_screen = ls_tvdir-liste.
CALL FUNCTION 'RPY_EXISTENCE_CHECK_DYNP'
EXPORTING
program = l_master
name = l_screen
EXCEPTIONS
not_exist = 1
OTHERS = 2.
ENDIF.
IF sy-subrc EQ 0.
r_mode = 'U'. "Update
MESSAGE i666(01) WITH 'Maintainance View' i_objectname 'will be regene
rated.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
"-------------------------------------------
bdc_screen 'SAPMSVIM' '0120'.
bdc_field 'BDC_OKCODE' '=RESE'.
"-------------------------------------------
bdc_screen 'SAPMSVIM' '1240'.
bdc_field 'VIMDYNFLDS-NEW_FIELD' 'X'.
bdc_field 'VIMDYNFLDS-DEL_FIELD' 'X'.
bdc_field 'VIMDYNFLDS-TEXT_ASS' 'X'.
IF i_objecttype EQ 'V'. "dynpro field visible only for View
bdc_field 'VIMDYNFLDS-CHANGE_SEL' 'X'.
bdc_field 'VIMDYNFLDS-CHANGE_SUB' 'X'.
bdc_field 'VIMDYNFLDS-READ_ONLY' 'X'.
bdc_field 'VIMDYNFLDS-CHANGE_HID' 'X'.
ENDIF.
bdc_field 'BDC_OKCODE' '=O.K.'.
"-------------------------------------------
bdc_screen 'SAPMSVIM' '1243'.
bdc_field 'VIMDYNFLDS-FIELD_NORM' 'X'.
bdc_field 'BDC_OKCODE' '=O.K.'.
"-------------------------------------------
bdc_screen 'SAPMSVIM' '0120'.
bdc_field 'BDC_OKCODE' '=BACK'.
"-------------------------------------------
bdc_screen 'SAPMSVIM' '0050'.
bdc_field 'BDC_OKCODE' '=BACK'.
ELSE.
r_mode = 'I'. "Insert
"-------------------------------------------
IF ls_tvdir IS INITIAL.
bdc_screen 'SAPLSPO1' '0300'. "Popup Create Modules?
bdc_field 'BDC_OKCODE' '=YES'.
ENDIF.
bdc_screen 'SAPMSVIM' '0120'.
bdc_field 'TDDAT-CCLASS' i_auth_group.
bdc_field 'TVDIR-LISTE' i_dynp_list.
IF i_dynp_detail IS INITIAL.
bdc_field 'VIMDYNFLDS-MTYPE1' 'X'. "einstufig
ELSE.
bdc_field 'VIMDYNFLDS-MTYPE2' 'X'. "zweistufig
bdc_field 'TVDIR-DETAIL' i_dynp_detail.
ENDIF.
bdc_field 'TVDIR-AREA' i_func_group.
bdc_field 'BDC_OKCODE' '=GENE'.
* bdc_screen 'SAPMSVIM' '0120'.
* bdc_field 'BDC_OKCODE' '/00'. "Warnung -> Enter
* "-------------------------------------------
"predict if popup "screen is already used (belongs to SAP)" will come
up -> FORM FREE_SCREEN_NUMBERS (MSVIMF43)
DATA: l_system_type TYPE df41s-parent_obj.
CALL FUNCTION 'RPY_CHECK_SYSTEM_TYPE_30'
IMPORTING
system_type = l_system_type.
IF l_system_type NE 'SAP' AND i_func_group NA 'YZ'.
IF i_dynp_list NE ls_tvdir-liste.
"Obsolete Popup "screen already assigned" triggered in SAPMSVIM D0
120_CHECK_DYNNRS2
bdc_screen 'SAPLSPO1' '0300'.
bdc_field 'BDC_OKCODE' '=YES'.
ENDIF.
IF NOT i_dynp_detail IS INITIAL AND i_dynp_detail NE ls_tvdir-detail
.
"Obsolete Popup "screen already assigned" triggered in SAPMSVIM D0
120_CHECK_DYNNRS3
bdc_screen 'SAPLSPO1' '0300'.
bdc_field 'BDC_OKCODE' '=YES'.
ENDIF.
ENDIF.
bdc_screen 'SAPMSVIM' '0120'.
bdc_field 'BDC_OKCODE' '=BACK'.
bdc_screen 'SAPMSVIM' '0050'.
bdc_field 'BDC_OKCODE' '=BACK'.
MESSAGE i666(01) WITH 'Maintainance View' i_objectname 'will be create
d.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
WHEN 'C'.
CALL METHOD set_context
EXPORTING
i_langu = space
i_text = 'Generate Viewcluster' "#EC NOTEXT
i_object = 'VCLS'
i_obj_name = i_objectname.
DATA: l_exitprog TYPE vcldir-exitprog.
SELECT SINGLE exitprog FROM vcldir INTO l_exitprog WHERE vclname EQ i_ob
jectname.
IF NOT l_exitprog IS INITIAL.
CALL FUNCTION 'RPY_EXISTENCE_CHECK_PROG'
EXPORTING
name = l_exitprog
EXCEPTIONS
not_exist = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE w666(01) WITH 'Program' l_exitprog 'does not exist yet and g
ets delivered separately.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
"put in an existing report to avoid errors during generation
IF testrun IS INITIAL.
UPDATE vcldir SET exitprog = sy-repid WHERE vclname EQ i_objectnam
e.
ENDIF.
ENDIF.
ENDIF.
bdc_screen 'SAPMSVIM' '0050' .
bdc_field 'BDC_OKCODE' '=CLUS'.
bdc_screen 'SAPMSVIM' '0052'.
bdc_field 'VIMDYNFLDS-VCLNAME' i_objectname.
bdc_field 'BDC_OKCODE' '=CLMN'. "Maintain
bdc_screen 'SAPL0SVM' '0101'.
bdc_field 'BDC_OKCODE' '=1AKT'. "Aktivieren
bdc_screen 'SAPLSPO1' '0100'. "Sollen die Pflegedialoge...?
bdc_field 'BDC_OKCODE' '=YES'.
bdc_screen 'SAPL0SVM' '0101'.
bdc_field 'BDC_OKCODE' '=UEBE'. "bernehmen
bdc_screen 'SAPMSVIM' '0052'.
bdc_field 'BDC_OKCODE' '=BACK'.
bdc_screen 'SAPMSVIM' '0050'.
bdc_field 'BDC_OKCODE' '=BACK'.
MESSAGE i666(01) WITH 'View cluster' i_objectname 'will be generated.' I
NTO sy-lisel. "#EC NOTEXT
CALL METHOD log_message.
WHEN OTHERS.
CALL METHOD set_context
EXPORTING
i_langu = space
i_text = space
i_object = space
i_obj_name = i_objectname.
MESSAGE e666(01) WITH 'Object type' i_objecttype 'not supported' INTO sy
-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDCASE.
"up to now nothing happened except populating the batch input table, now sta
rt with checks
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = 'SE54'
EXCEPTIONS
ok = 0
OTHERS = 4.
IF sy-subrc NE 0.
sy-msgty = 'E'.
CALL METHOD log_message.
RETURN.
ENDIF.
IF testrun IS INITIAL.
DATA: ls_tadir TYPE tadir.
"CTO_TADIR_GET_OBJECT
CALL FUNCTION 'CTO_OBJECT_GET_TADIR_KEY'
EXPORTING
iv_objectname = i_objectname
iv_objecttype = i_objecttype
IMPORTING
ev_pgmid = ls_tadir-pgmid
ev_object = ls_tadir-object
ev_obj_name = ls_tadir-obj_name.
CALL METHOD add_to_transport "and create TADIR
EXPORTING
i_object = ls_tadir-object
i_obj_name = ls_tadir-obj_name
i_devclass = i_devclass
i_langu = i_masterlang
EXCEPTIONS
OTHERS = 1.
ls_opt-dismode = 'E'. " Dynpros nicht Anzeigen
ls_opt-dismode = 'Q'. " http://scn.sap.com/thread/82311
* ls_opt-DISMODE = 'A'. " Dynpros Anzeigen
* ls_opt-UPDMODE = 'A'. " Asynchrone Verbuchung
* ls_opt-CATTMODE = ' '. " Kein CATT aktiv
* ls_opt-DEFSIZE = ' '. " Keine Standard Fenster Gre
* ls_opt-NOBINPT = 'X'. " Batchinputmodus
* ls_opt-NOBIEND = 'X'. " Batchinputmodus nach Ende der BDC-Daten
ls_opt-racommit = 'X'. " Kein Stop nach Commit Work
MESSAGE s314(sv) INTO sy-lisel. "fill message variables with default mes
sage
CALL TRANSACTION 'SE54' USING lt_bdc OPTIONS FROM ls_opt MESSAGES INTO lt_
message. "#EC CI_CALLTA
IF sy-msgid EQ '00' AND sy-msgno = '344'. "no batch input data for screen
-> unexpected popup
ls_opt-dismode = 'E'. " try again while showing unexpected screens
CALL TRANSACTION 'SE54' USING lt_bdc OPTIONS FROM ls_opt MESSAGES INTO l
t_message. "#EC CI_CALLTA
ENDIF.
LOOP AT lt_message INTO ls_message.
MOVE-CORRESPONDING ls_message TO sy.
MOVE ls_message-msgnr TO sy-msgno.
MOVE ls_message-msgtyp TO sy-msgty.
IF sy-msgid EQ 'SV'.
CASE sy-msgno.
WHEN 352.
CONTINUE.
WHEN 314 OR 551.
sy-msgty = 'S'.
WHEN 178 OR 162 OR 304 OR 306 OR 308 OR 316 OR 321 OR 322 OR 325 OR
399 OR 439 OR 515 OR 586.
sy-msgty = 'E'. r_mode = 'E'. "no success -> return mode 'Error'
WHEN OTHERS.
sy-msgty = ls_message-msgtyp.
ENDCASE.
ELSEIF sy-msgid EQ '00' AND sy-msgno EQ 344.
sy-msgty = 'E'. r_mode = 'E'. "no success -> return mode 'Error'
ENDIF.
CALL METHOD log_message.
ENDLOOP.
"check whether generation was really succesful
CASE i_objecttype.
WHEN 'V' OR 'S'. "view or table
SELECT SINGLE tabname FROM tvdir INTO sy-lisel WHERE tabname EQ i_obje
ctname.
IF sy-subrc NE 0.
MESSAGE e600(sv) WITH i_objectname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
WHEN 'C'.
SELECT SINGLE vclname FROM vcldir INTO sy-lisel WHERE vclname EQ i_obj
ectname.
IF sy-subrc NE 0.
MESSAGE e600(sv) WITH i_objectname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ENDCASE.
* "set some flag which cannot be set via batch input because this is done i
n SOBJ but not in SE54!
* UPDATE objh SET importable = i_compare_flag objtransp = i_transp_flag cur
setting = i_cursetting
* WHERE objectname EQ i_objectname AND objecttype EQ i_objecttype
.
IF i_objecttype EQ 'C' AND NOT l_exitprog IS INITIAL.
"restore original exit program of view cluster
UPDATE vcldir SET exitprog = l_exitprog WHERE vclname EQ i_objectname.
ENDIF.
ENDIF.
ENDMETHOD. "generate_maint_view
METHOD activate.
DATA: lt_dwinactiv TYPE TABLE OF dwinactiv,
lt_dwinactiv_ddic TYPE TABLE OF dwinactiv,
lv_answer,
l_logname TYPE ddprh-protname,
ls_job TYPE tbtcjob,
lv_rc TYPE sysubrc,
l_dref TYPE REF TO data,
l_message TYPE sy-lisel,
ls_tabname LIKE LINE OF gr_tabname.
DATA: lr_object TYPE RANGE OF dwinactiv-object,
lr_objname TYPE RANGE OF dwinactiv-obj_name.
DATA: lt_ascii TYPE TABLE OF soli,
lt_list TYPE TABLE OF abaplist,
lt_textpool TYPE TABLE OF textpool,
ls_textpool TYPE textpool.
FIELD-SYMBOLS: <ls_dwinactiv> LIKE LINE OF lt_dwinactiv.

CALL METHOD set_context


EXPORTING
i_langu = space
i_object = space
i_obj_name = 'Activation'. "#EC *
IF testrun IS INITIAL.
"pre-check: no activation during SPDD phase TRINT_CHECK_LINCENSE_EXCEPTION
DATA: lt_upginfo TYPE TABLE OF uvers,
ls_upginfo TYPE uvers.
CALL FUNCTION 'UPG_GET_UPGRADE_INFO'
TABLES
tt_upginfo = lt_upginfo
EXCEPTIONS
OTHERS = 0.
SORT lt_upginfo BY enddate DESCENDING.
READ TABLE lt_upginfo INTO ls_upginfo INDEX 1.
IF ( ls_upginfo-putstatus = 'S' OR ls_upginfo-putstatus = 'U' ).
* no activation at all during downtime of system (SPDD)
MESSAGE w666(01) WITH 'No activation during SPDD.' 'Inactive versions ha
ve been updated.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
DATA: l_objname TYPE trobj_name.
"activate switches "online" (one by one to avoid popup)
DATA: ls_switchname LIKE LINE OF gr_switchname.
LOOP AT gr_switchname INTO ls_switchname.
l_objname = ls_switchname-low.
CALL FUNCTION 'RS_WORKING_OBJECT_ACTIVATE'
EXPORTING
object = 'SFSW'
obj_name = l_objname
dictionary_only = 'X' "must be set for switches
activate_only_this_object = 'X'
object_saved = 'X'
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0.
MESSAGE s199(sfw) WITH l_objname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ENDLOOP.
"activate GUI status "online" (one by one to avoid popup)
DATA: ls_guistatus LIKE LINE OF gr_guistatus.
LOOP AT gr_guistatus INTO ls_guistatus.
l_objname = ls_guistatus-low.
CALL FUNCTION 'RS_WORKING_OBJECT_ACTIVATE'
EXPORTING
object = 'CUAD'
obj_name = l_objname
activate_only_this_object = 'X'
object_saved = 'X'
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0.
MESSAGE s137(ec) WITH l_objname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ENDLOOP.
APPEND LINES OF gr_guistatus TO lr_objname. "non DDIC
APPEND LINES OF gr_domname TO lr_objname. "DDIC
APPEND LINES OF gr_rollname TO lr_objname. "DDIC
APPEND LINES OF gr_tabname TO lr_objname. "DDIC
APPEND LINES OF gr_shlpname TO lr_objname. "DDIC
APPEND LINES OF gr_viewname TO lr_objname. "DDIC
APPEND LINES OF gr_enqname TO lr_objname. "DDIC
APPEND LINES OF gr_ttypname TO lr_objname. "DDIC
APPEND LINES OF gr_indexes TO lr_objname. "DDIC
DELETE lr_objname WHERE sign EQ 'E'. "remove exclusions
IF NOT lr_objname[] IS INITIAL.
SELECT * FROM dwinactiv INTO TABLE lt_dwinactiv
WHERE object IN lr_object "EC Dummy
AND obj_name IN lr_objname.
IF gr_tabname[] IS NOT INITIAL.
"add partly active structures/tables
SELECT tabname AS obj_name FROM dd02l APPENDING CORRESPONDING FIELDS O
F TABLE lt_dwinactiv
WHERE tabname IN gr_tabname AND actflag EQ 'U'. "e.g. partl
y active
LOOP AT lt_dwinactiv ASSIGNING <ls_dwinactiv> WHERE object IS INITIAL.
<ls_dwinactiv>-object = 'TABL'.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
"add all relevant inactive objects also to current user's worklist
"gets relevant if a different user is doing the activation.
"entries for all users will be deleted if any user activates the object
LOOP AT lt_dwinactiv ASSIGNING <ls_dwinactiv> WHERE uname NE sy-uname.
<ls_dwinactiv>-uname = sy-uname.
ENDLOOP.
INSERT dwinactiv FROM TABLE lt_dwinactiv ACCEPTING DUPLICATE KEYS.
LOOP AT lt_dwinactiv ASSIGNING <ls_dwinactiv>
WHERE object EQ 'DOMA' OR
object EQ 'DTEL' OR
object EQ 'TABL' OR
object EQ 'INDX' OR
object EQ 'XINX' OR
object EQ 'VIEW' OR
object EQ 'ENQU' OR
object EQ 'TTYP' OR
object EQ 'SHLP'.
DATA: l_obj_name TYPE e071-obj_name.
l_obj_name = <ls_dwinactiv>-obj_name.
DATA: lt_dd02v_inc TYPE TABLE OF dd02v,
ls_dd02v_inc TYPE dd02v,
l_auth_subrc TYPE sysubrc.
CALL FUNCTION 'RS_DD_CHECK_ACTIVATE'
EXPORTING
objtype = <ls_dwinactiv>-object
objname = l_obj_name
* i_no_ui = 'X' "not in all sap_basis releases
EXCEPTIONS
object_not_found = 0 "ignore invalid entries in DWINACTIV
OTHERS = 1.
IF sy-subrc EQ 0.
"check dependent database tables similar to DD_TABL_ACT
"==> shall be part of RS_DD_CHECK_ACTIVATE of DD_TABL_ACT
CALL FUNCTION 'DD_GET_INCLUDING_TABLES' "Get tables which are
EXPORTING "importing table TABNAME
tabname = <ls_dwinactiv>-obj_name(30)
TABLES
tabnames = lt_dd02v_inc.
CLEAR l_auth_subrc.
LOOP AT lt_dd02v_inc INTO ls_dd02v_inc.
l_obj_name = ls_dd02v_inc-tabname.
CALL FUNCTION 'RS_DD_CHECK_ACTIVATE'
EXPORTING
objtype = 'TABL'
objname = l_obj_name
* i_no_ui = 'X' "not in all sap_basis releases
EXCEPTIONS
permission_error = 1
canceled = 2
object_not_found = 3
definition_error = 4
invalid_parameter = 5
OTHERS = 6.
CASE sy-subrc.
WHEN 0.
CONTINUE.
WHEN 1.
MESSAGE e666(01) WITH 'No authorization to activate database table
' <ls_dwinactiv>-obj_name '. Call transaction SU53 for details' INTO sy-lisel. "
#EC *
WHEN 4.
MESSAGE e666(01) WITH 'Technical Settings are missing for table' l
_obj_name INTO sy-lisel. "#EC *
WHEN OTHERS.
MESSAGE e666(01) WITH 'Error during activation of table' <ls_dwina
ctiv>-obj_name INTO sy-lisel. "#EC *
ENDCASE.
l_auth_subrc = sy-subrc.
CALL METHOD log_message.
EXIT. "LOOP
ENDLOOP.
sy-subrc = l_auth_subrc.
ENDIF.
IF sy-subrc EQ 0.
"DDIC always via RADMASG0
"move DDIC objects to separate worklist
APPEND <ls_dwinactiv> TO lt_dwinactiv_ddic.
DELETE lt_dwinactiv.
ELSE.
MESSAGE e666(01) WITH 'No authorization to activate' <ls_dwinactiv>-obje
ct <ls_dwinactiv>-obj_name '. Call transaction SU53 for details' INTO sy-lisel.
"#EC *
CALL METHOD log_message.
CASE <ls_dwinactiv>-object.
WHEN 'DOMA'. DELETE gr_domname WHERE low EQ <ls_dwinactiv>-obj_name.
WHEN 'DTEL'. DELETE gr_rollname WHERE low EQ <ls_dwinactiv>-obj_name.
WHEN 'TABL'.
DELETE gr_tabname WHERE low EQ <ls_dwinactiv>-obj_name.
DELETE gr_indxtab WHERE low EQ <ls_dwinactiv>-obj_name.
WHEN 'INDX' OR 'XINX'. DELETE gr_indxname WHERE low EQ <ls_dwinactiv>-
obj_name.
WHEN 'VIEW'. DELETE gr_viewname WHERE low EQ <ls_dwinactiv>-obj_name.
WHEN 'ENQU'. DELETE gr_enqname WHERE low EQ <ls_dwinactiv>-obj_name.
WHEN 'TTYP'. DELETE gr_ttypname WHERE low EQ <ls_dwinactiv>-obj_name.
WHEN 'SHLP'. DELETE gr_shlpname WHERE low EQ <ls_dwinactiv>-obj_name.
ENDCASE.
DELETE lt_dwinactiv.
ENDIF.
ENDLOOP.
IF lt_dwinactiv[] IS INITIAL AND lt_dwinactiv_ddic[] IS INITIAL AND gv_repos
itory_changed IS INITIAL.
IF testrun IS INITIAL.
IF sy-cprog EQ myrepid.
MESSAGE i666(01) WITH 'No activation neccessary' '' '' '' INTO sy-lise
l. "#EC *
ELSE.
MESSAGE i666(01) WITH 'No activation neccessary' '' '' ''. "#EC *
ENDIF.
CALL METHOD log_message.
ELSEIF sy-cprog EQ myrepid.
MESSAGE i666(01) WITH 'Press button Back (F3) to leave the simulation.'
'' '' '' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
IF gv_translation EQ 'X'.
MESSAGE i666(01) WITH 'Translation has been updated' '' '' '' INTO sy-li
sel. "#EC *
CALL METHOD log_message.
ENDIF.
ELSEIF NOT gv_errors_occured IS INITIAL.
MESSAGE a666(01) WITH 'Activation was skipped because of errors' 'in previ
ous steps. Please try again.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ELSEIF NOT i_result_auth_check IS INITIAL.
MESSAGE e666(01) WITH 'No authorization to activate the DDIC changes.' 'Ca
ll transaction SU53 for details' '' '' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ELSE. "do the activation
IF NOT lt_dwinactiv[] IS INITIAL.
"1) activate non DDIC objects (e.g. CUAD) online
MESSAGE s357(scwn).
CALL FUNCTION 'RS_WORKING_OBJECT_ACTIVATE'
EXPORTING
dictionary_only = ' '
* cwb_mode = 'X'
* UI_DECOUPLED = 'X' "as of SAPBASIS740
TABLES
objects = lt_dwinactiv
EXCEPTIONS
OTHERS = 5.
IF sy-subrc NE 0.
lv_answer = 'A'.
CALL METHOD log_message.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT lt_dwinactiv_ddic ASSIGNING <ls_dwinactiv> WHERE object EQ 'TABL'
AND obj_name EQ 'DOKIL'.
MESSAGE w666(01) WITH 'Please use SE11 to activate Database Table' <ls_
dwinactiv>-obj_name INTO sy-lisel. "#EC *
MESSAGE w666(01) WITH 'Please use SE11 to activate' 'Technical Settings
of Database Table' <ls_dwinactiv>-obj_name INTO sy-lisel. "#EC *
CALL METHOD log_message.
DELETE gr_tabname WHERE low EQ <ls_dwinactiv>-obj_name.
DELETE gr_dbtabname WHERE low EQ <ls_dwinactiv>-obj_name.
DELETE lt_dwinactiv_ddic.
ENDLOOP.
IF NOT lt_dwinactiv_ddic[] IS INITIAL AND lv_answer NE 'A'.
IF NOT gv_unit_test IS INITIAL OR NOT genview IS INITIAL.
lv_answer = '1'. "force online activation
ELSE.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Activation' "#EC NOTEXT
text_question = 'How do you want to activate DDIC?' "#EC N
OTEXT
text_button_1 = 'Online' "#EC NOTEXT
text_button_2 = 'Batch' "#EC NOTEXT
display_cancel_button = 'X'
IMPORTING
answer = lv_answer
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
CALL METHOD log_message.
ENDIF.
ENDIF.
ENDIF.
IF sy-repid(2) EQ '%_'. "Temp. Subroutine Pool
l_logname = 'UDO'.
ELSEIF sy-repid(1) EQ '/'.
SPLIT sy-repid AT '/' INTO l_logname l_logname l_logname. "remove namesp
ace
ELSE.
l_logname = sy-repid.
ENDIF.
CONCATENATE l_logname sy-datum sy-uzeit INTO l_logname SEPARATED BY '_'.
IF lv_answer EQ '1'. "online
"2a) activate DDIC online
IF sy-repid(2) EQ '%_'. "Temp. Subroutine Pool
l_logname = 'UDO'.
ELSEIF sy-repid(1) EQ '/'.
SPLIT sy-repid AT '/' INTO l_logname l_logname l_logname. "remove name
space
ELSE.
l_logname = sy-repid.
ENDIF.
CALL METHOD lcl_wb=>save_log. "save log makes sense here in case that ac
tivation dumps (e.g. time out)
CONCATENATE l_logname ':' sy-datum ':' sy-uzeit INTO l_logname.
DATA: lt_ddxtt_before TYPE TABLE OF ddxtt,
lt_ddxtt_after TYPE TABLE OF ddxtt,
ls_ddxtt TYPE ddxtt.
SELECT * FROM ddxtt INTO CORRESPONDING FIELDS OF TABLE lt_ddxtt_before.
"#EC CI_NOWHERE "usually empty, if not want need ALL entries
DATA: lt_swotice TYPE TABLE OF swotice.
IF gr_tabname[] IS NOT INITIAL.
* SELECT * FROM swotice INTO TABLE lt_swotice WHERE tabname IN gr_tabna
me.
* IF sy-subrc EQ 0.
* DELETE swotice FROM TABLE lt_swotice.
* ENDIF.
ENDIF.
IF activation_mode EQ '2'. "two step activation
CALL METHOD mass_activation "Step 1, only for two step activation
EXPORTING
i_step = 1
i_logname = space "no log, any error messages will appear in step
2 also
i_ddmode = 'T'
i_inactive = 'X'
EXCEPTIONS
error = 1.
ELSE.
CLEAR sy-subrc.
ENDIF.
IF sy-subrc EQ 0.
CALL METHOD mass_activation "Step 2, always
EXPORTING
i_step = 2
i_logname = l_logname
i_ddmode = 'O'
i_inactive = ' '
EXCEPTIONS
error = 1.
ENDIF.
DATA: l_act_subrc TYPE sy-subrc.
l_act_subrc = sy-subrc.
SELECT * FROM ddxtt INTO CORRESPONDING FIELDS OF TABLE lt_ddxtt_after. "
#EC CI_NOWHERE
LOOP AT lt_ddxtt_after INTO ls_ddxtt.
READ TABLE lt_ddxtt_before WITH KEY tabname = ls_ddxtt-tabname
modeflag = ls_ddxtt-modeflag TRANS
PORTING NO FIELDS.
IF sy-subrc NE 0.
"new entry in ddxtt
MESSAGE w666(01) WITH 'Unexpected entry in DDXTT:' ls_ddxtt-tabname
ls_ddxtt-modeflag INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ENDLOOP.
IF NOT lt_swotice[] IS INITIAL.
INSERT swotice FROM TABLE lt_swotice.
ENDIF.
CLEAR l_message.
IF l_act_subrc EQ 0.
LOOP AT gr_dbtabname INTO ls_tabname WHERE NOT low IS INITIAL.
"check DB object
SUBMIT rutdbchk WITH tabname EQ ls_tabname-low "#EC CI_SUBMIT
WITH showlist EQ 'X'
EXPORTING LIST TO MEMORY
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = lt_list
EXCEPTIONS
OTHERS = 0.
CALL FUNCTION 'LIST_TO_ASCI'
TABLES
listasci = lt_ascii
listobject = lt_list
EXCEPTIONS
OTHERS = 0.
SET LOCALE LANGUAGE ' '.
READ TEXTPOOL 'RUTDBCHK' INTO lt_textpool LANGUAGE sy-langu.
SET LOCALE LANGUAGE 'E'.
IF lt_textpool IS INITIAL.
READ TEXTPOOL 'RUTDBCHK' INTO lt_textpool LANGUAGE 'D'. "masterlan
g of RUTDBCHK
ENDIF.
"expected messages: text-021 and text-023
LOOP AT lt_textpool INTO ls_textpool WHERE key EQ '021' OR key EQ '0
23' .
LOOP AT lt_ascii TRANSPORTING NO FIELDS WHERE table_line CS ls_tex
tpool-entry.
EXIT.
ENDLOOP.
IF sy-subrc NE 0.
MESSAGE e666(01) WITH 'Database object of table' ls_tabname-low
'is inconsistent!' INTO l_message. "#EC *
CALL METHOD log_message.
ENDIF.
ENDLOOP.
ENDLOOP.
LOOP AT gr_dbviewname INTO ls_tabname WHERE NOT low IS INITIAL.
"check DB object
SUBMIT rddviewc WITH viewname EQ ls_tabname-low "#EC CI_SUBMIT
EXPORTING LIST TO MEMORY
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = lt_list
EXCEPTIONS
OTHERS = 0.
CALL FUNCTION 'LIST_TO_ASCI'
TABLES
listasci = lt_ascii
listobject = lt_list
EXCEPTIONS
OTHERS = 0.
"expected message:
MESSAGE s410(mc) INTO sy-lisel. "sy-lisel.
LOOP AT lt_ascii TRANSPORTING NO FIELDS WHERE table_line CS sy-lisel
.
EXIT.
ENDLOOP.
IF sy-subrc NE 0. "success message not found
MESSAGE e666(01) WITH 'Database object of view' ls_tabname-low 'is
inconsistent!' INTO l_message. "#EC *
CALL METHOD log_message.
ENDIF.
ENDLOOP.
APPEND LINES OF gr_ttypname TO gr_tabname.
APPEND LINES OF gr_rollname TO gr_tabname.
LOOP AT gr_tabname INTO ls_tabname WHERE NOT low IS INITIAL.
TRY.
">=SAPBASIS640
CREATE DATA l_dref TYPE (ls_tabname-low).
CATCH cx_sy_create_data_error.
">=SAPBASIS640
MESSAGE e666(01) WITH 'Data Type' ls_tabname-low 'is inconsisten
t' INTO l_message. "#EC * ">=SAPBASIS640
CALL METHOD log_message. ">=SAPBASIS640
ENDTRY.
">=SAPBASIS640
ENDLOOP.
IF l_message IS INITIAL.
CLEAR sy-subrc.
ELSE.
MESSAGE e666(01) WITH 'DDIC activation step 3 ended with errors.' IN
TO sy-lisel. "#EC *
CALL METHOD log_message.
sy-subrc = 4.
ENDIF.
ENDIF.
IF sy-subrc EQ 0.
MESSAGE s666(01) WITH 'DDIC activation successful' INTO sy-lisel. "#EC
*
CALL METHOD log_message.
CALL METHOD set_context
EXPORTING
i_langu = space
i_object = space
i_obj_name = 'Detailed Log'. "#EC *
MESSAGE i626(do) WITH 'Click this message to view' 'detailed activatio
n logs with name' l_logname INTO sy-lisel. "#EC *
CALL METHOD log_message.
"RADMASG0 does not remove DWINACTIV for XINX hence we cleanup here
DATA: ls_dwinactiv TYPE dwinactiv.
LOOP AT lt_dwinactiv_ddic INTO ls_dwinactiv WHERE object EQ 'XINX'.
DELETE FROM dwinactiv WHERE object EQ 'XINX' AND obj_name EQ ls_dwin
activ-obj_name.
ENDLOOP.
ELSE.
"e.g. no authorization for activation or conversion of dependent datab
ase tables
"make sure that the objects appear as inactive; corresponding are remo
ved by DDIC activation phase 1 although phase 2 or 3 may fail.
MODIFY dwinactiv FROM TABLE lt_dwinactiv_ddic.
CALL METHOD set_context
EXPORTING
i_langu = space
i_object = space
i_obj_name = 'Detailed Log'. "#EC *
MESSAGE w626(do) WITH 'Click this message to view' 'detailed activatio
n logs with name' l_logname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ELSEIF lv_answer EQ '2' .
"2b) activate DDIC objects via batch job
ls_job-jobname = sy-repid.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = ls_job-jobname
IMPORTING
jobcount = ls_job-jobcount
CHANGING
ret = lv_rc
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc <> 0 OR lv_rc NE 0.
MESSAGE e026(bt) WITH ls_job-jobname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ELSE.
IF activation_mode EQ '2'.
SUBMIT radmasg0 WITH domname IN gr_domname "#EC CI_SUBMIT
WITH rollname IN gr_rollname
WITH tabname IN gr_tabname
WITH indxtab IN gr_indxtab
WITH indxname IN gr_indxname
WITH viewname IN gr_viewname
WITH ttypname IN gr_ttypname
WITH shlpname IN gr_shlpname
WITH logname EQ l_logname
WITH logshow EQ 'X' "show log in SPOOL
WITH ddmode EQ 'T'
WITH inactive EQ 'X'
VIA JOB ls_job-jobname
NUMBER ls_job-jobcount
AND RETURN.
ENDIF.
"remove exclusions for next step
DELETE gr_tabname WHERE sign EQ 'E'.
DELETE gr_viewname WHERE sign EQ 'E'.
SUBMIT radmasg0 WITH domname IN gr_domname "#EC CI_SUBMIT
WITH rollname IN gr_rollname
WITH tabname IN gr_tabname
WITH indxtab IN gr_indxtab
WITH indxname IN gr_indxname
WITH viewname IN gr_viewname
WITH ttypname IN gr_ttypname
WITH shlpname IN gr_shlpname
WITH logname EQ l_logname
WITH logshow EQ 'X' "show log in SPOOL
WITH ddmode EQ 'O'
WITH inactive EQ ' '
VIA JOB ls_job-jobname
NUMBER ls_job-jobcount
AND RETURN.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = ls_job-jobcount
jobname = ls_job-jobname
strtimmed = 'X'
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0.
MESSAGE s305(ut) WITH ls_job-jobname INTO sy-lisel. "#EC *
CALL METHOD log_message.
CALL METHOD set_context
EXPORTING
i_langu = space
i_object = space
i_obj_name = 'Detailed Log'. "#EC *
MESSAGE w666(01) WITH 'Use Report RADPROTB to view' 'activation log'
l_logname 'after job has finished in transaction SMX.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ELSE.
MESSAGE e026(bt) WITH ls_job-jobname INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
DATA: l_langu TYPE langu.
LOOP AT gt_skipped_languages[] INTO l_langu.
SELECT SINGLE sptxt FROM t002t INTO sy-lisel WHERE spras EQ 'E' AND sprsl
EQ l_langu.
CONCATENATE '(' sy-lisel ')' INTO sy-lisel.
MESSAGE i666(01) WITH 'Language' l_langu sy-lisel 'is not installed and ha
s been skipped.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDLOOP.
CALL METHOD set_context
EXPORTING
i_langu = space
i_object = space
i_obj_name = 'Method Execution'. "#EC *
CALL METHOD lcl_wb=>execute_method "e.g. OSOD, SCP2
EXPORTING
i_method = trmtd_after_imp.

"Refresh some fields


SET PARAMETER ID 'EUK' FIELD space.
EXPORT current_devclass FROM space TO MEMORY ID 'EUK'.
ENDMETHOD. "activate
METHOD mass_activation.
CONSTANTS: lc_active VALUE 'A'.
DATA: lt_log TYPE TABLE OF trlog,
ls_log TYPE trlog.
IF i_step EQ 2.
"remove exclusions for step 2
DELETE gr_tabname WHERE sign EQ 'E'.
DELETE gr_viewname WHERE sign EQ 'E'.
ENDIF.
SUBMIT radmasg0 WITH domname IN gr_domname "#EC CI_SUBMIT
WITH rollname IN gr_rollname
WITH tabname IN gr_tabname
WITH indxtab IN gr_indxtab
WITH indxname IN gr_indxname
WITH viewname IN gr_viewname
WITH enquname IN gr_enqname
WITH ttypname IN gr_ttypname
WITH shlpname IN gr_shlpname
WITH logname EQ i_logname
WITH logshow EQ space
WITH inactive EQ i_inactive
WITH ddmode EQ i_ddmode
AND RETURN.
IMPORT act_rc TO sy-subrc FROM MEMORY ID 'ACRC'.
CHECK NOT i_logname IS INITIAL.
IF sy-subrc > 4. "4 is only warning
CHECK i_step NE 1. "messages of step 1 have to be ignored
MESSAGE e666(01) WITH 'DDIC activation step' i_step 'ended with errors:' I
NTO sy-lisel. "#EC *
CALL METHOD log_message.
CALL FUNCTION 'TR_READ_LOG'
EXPORTING
iv_log_type = 'DB'
iv_logname_db = i_logname
TABLES
et_lines = lt_log
EXCEPTIONS
OTHERS = 0.
"append errors from activation log (idea for future: show all messages fro
m entire phase 004 and 005)
LOOP AT lt_log INTO ls_log WHERE severity EQ 'E' OR newsection EQ 'X'.
IF ls_log-newsection EQ 'X'.
IF ls_log-severity EQ 'E'. "error as first line in new section
sy-lisel = 'Activation'. "#EC NOTEXT
ELSE.
MESSAGE i666(01) WITH ls_log-line(50) ls_log-line+50(50) ls_log-line
+100 INTO sy-lisel. "#EC *
ENDIF.
CALL METHOD set_context
EXPORTING
i_langu = space
i_object = space
i_obj_name = sy-lisel.
ENDIF.
IF ls_log-severity EQ 'E'.
* MESSAGE e099(ut) WITH ls_log-line(50) ls_log-line+50(50) ls_log-line+10
0 INTO sy-lisel. "#EC *
MESSAGE e666(01) WITH ls_log-line(50) ls_log-line+50(50) ls_log-line+1
00 INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ENDLOOP.
RAISE error.
ENDIF.
ENDMETHOD. "mass_activation
METHOD language_installed.
DATA: l_languages TYPE string.
CLEAR r_installed.
IF i_langu IS INITIAL OR gv_master_languages CS i_langu.
r_installed = 'X'.
ELSE.
CALL FUNCTION 'SYSTEM_INSTALLED_LANGUAGES'
IMPORTING
languages = l_languages
EXCEPTIONS
sapgparam_error = 1
OTHERS = 2.
IF sy-subrc NE 0 OR l_languages CS i_langu.
r_installed = 'X'.
ELSE.
COLLECT i_langu INTO gt_skipped_languages.
ENDIF.
ENDIF.
ENDMETHOD. "language_installed

METHOD execute_method.
DATA: ls_e070 TYPE e070,
ls_e071 TYPE e071,
lt_e071 TYPE TABLE OF e071,
lt_e071k TYPE TABLE OF e071k,
ls_trkey TYPE trkey.
DATA: lt_result TYPE scts_cl_results. ">=SAPBASIS700
DATA: lt_client TYPE trexe_t_client.
DATA: lt_trlog TYPE TABLE OF trlog,
ls_trlog TYPE trlog,
lv_trkorr TYPE trkorr,
lv_file TYPE tstrf01-file.
FIELD-SYMBOLS: <ls_method_call> TYPE trmtd_method_call.
CHECK NOT i_method IS INITIAL.
"get AFTER_IMP method
SORT gt_trkey.
DELETE ADJACENT DUPLICATES FROM gt_trkey COMPARING obj_type obj_name.
LOOP AT gt_trkey INTO ls_trkey.
ls_e071-pgmid = 'R3TR'.
ls_e071-object = ls_trkey-obj_type.
ls_e071-obj_name = ls_trkey-obj_name.
APPEND ls_e071 TO lt_e071.
ENDLOOP.
CALL FUNCTION 'TRINT_FREE_MEMORY'.
CONCATENATE sy-sysid 'K' sy-datum '_' sy-uzeit INTO lv_trkorr.
CALL FUNCTION 'TR_INITIALIZE_LOG' "Build temporary log file like DEV_201404
15_142649.SNOTE
EXPORTING
acttype = '_'
* DIRTYPE = 'T'
sysname = 'SNOTE' "lv_sysname
trkorr = lv_trkorr
IMPORTING
file = lv_file
EXCEPTIONS
wrong_call = 1
OTHERS = 2.
ASSERT sy-subrc EQ 0.
* CALL FUNCTION 'APPEND_PROTOCOL'. "here error occurs depending on previou
s statements
COMMIT WORK. "save what we have reached so far
DATA: trint_call_after_imp_method TYPE funcname VALUE 'TRINT_CALL_AFTER_IMP_
METHOD'.
IF sy-saprl >= '700'.
APPEND sy-mandt TO lt_result. ">=SAP
BASIS700
CALL FUNCTION trint_call_after_imp_method
EXPORTING
iv_trkorr = space
is_e070 = ls_e070
it_e071 = lt_e071[]
it_e071k = lt_e071k[]
iv_update_lockflag = '' "'X'
CHANGING ">=SAPB
ASIS700
it_client = lt_result ">=SAPBA
SIS700
EXCEPTIONS
error_message = 1.
ELSE.
APPEND sy-mandt TO lt_client.
CALL FUNCTION trint_call_after_imp_method
EXPORTING
iv_trkorr = space
is_e070 = ls_e070
it_e071 = lt_e071[]
it_e071k = lt_e071k[]
iv_update_lockflag = '' "'X'
it_client = lt_client
EXCEPTIONS
error_message = 1.
ENDIF.
IF sy-subrc NE 0.
CALL METHOD log_message.
ENDIF.
CALL FUNCTION 'TR_READ_LOG'
EXPORTING
iv_log_type = trlog_type_file
iv_logname_file = lv_file
TABLES
et_lines = lt_trlog
EXCEPTIONS
OTHERS = 0.
DELETE lt_trlog WHERE class EQ 'PU' AND number EQ '131'. "No objects requir
ing post-import methods exist
"append messages from method execution log
LOOP AT lt_trlog INTO ls_trlog.
CONCATENATE '(' ls_trlog-class '~' ls_trlog-number ')' INTO sy-msgv4. TRAN
SLATE sy-msgv4 USING '~ '.
MESSAGE i666(01) WITH ls_trlog-line(50) ls_trlog-line+50(50) ls_trlog-line
+100(31) sy-msgv4 INTO sy-lisel. "#EC *
IF ls_trlog-class EQ 'SCPR' AND ( ls_trlog-number EQ 707 OR ls_trlog-numbe
r EQ 871 ).
ls_trlog-severity = 'W'. "increase severity for some messages
ENDIF.
sy-msgty = ls_trlog-severity.
CALL METHOD log_message.
ENDLOOP.
CALL FUNCTION 'TR_DELETE_LOG'
EXPORTING
iv_log_type = 'FILE'
iv_logname_file = lv_file
EXCEPTIONS
OTHERS = 0.
ENDMETHOD. "execute_method

METHOD create_table_entries.
*
CONSTANTS lc_approved_system_table TYPE tabname VALUE 'APPROVED_SYSTEM_TABLE
'.
DATA: lt_ko200 TYPE TABLE OF ko200,
ls_ko200 TYPE ko200,
lt_e071k TYPE TABLE OF e071k,
ls_e071k TYPE e071k.
DATA: l_keylen TYPE sy-fleng,
ls_x030l TYPE x030l,
l_no_update,
l_object TYPE tadir-object,
l_approved_system_table.
FIELD-SYMBOLS: <ls_entry> TYPE any,
<lt_entries> TYPE STANDARD TABLE.
DATA: dref TYPE REF TO data.
IF i_logical_object IS INITIAL AND NOT it_entries[] IS INITIAL.
CALL METHOD set_context
EXPORTING
i_langu = i_langu
i_object = 'TABU'
i_obj_name = i_tabname.
ENDIF.
IF i_logical_object EQ 'X'. "used in older version
SELECT SINGLE objectname INTO l_object FROM objs WHERE tabname EQ i_tabnam
e AND objecttype EQ 'L'.
ELSEIF i_logical_object IS NOT INITIAL.
l_object = i_logical_object.
ENDIF.
"Currently only a bunch of tables is supported:
" - client independent
" - system tables (S / E / W) and customizing of type G
" - key fields of data type char/numc
"--- basic checks
DATA: ls_dd02v TYPE dd02v,
lt_dd03p TYPE TABLE OF dd03p,
ls_state TYPE dctablget VALUE 'A',
l_rfcdest TYPE rfcdest.
CALL FUNCTION 'DD_TABL_GET' DESTINATION l_rfcdest
EXPORTING
get_state = ls_state
langu = space
tabl_name = i_tabname
IMPORTING
dd02v_wa_a = ls_dd02v
TABLES
dd03p_tab_a = lt_dd03p
EXCEPTIONS
system_failure = 98 MESSAGE sy-lisel
communication_failure = 99 MESSAGE sy-lisel
access_failure = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE e666(01) WITH 'Error reading table' i_tabname INTO sy-lisel. "#EC
*
RETURN.
ENDIF.
IF ls_dd02v IS INITIAL.
CALL METHOD lcl_wb=>set_context( i_object = 'TABU' i_obj_name = i_tabname
i_langu = space i_no_message = 'X' ).
MESSAGE w666(01) WITH 'Table' i_tabname 'does not exist (yet).' INTO sy-li
sel. "#EC *
CALL METHOD lcl_wb=>log_message.
CALL METHOD lcl_wb=>set_context( i_object = space i_obj_name = space i_lan
gu = space ).
ENDIF.
c_clidep = ls_dd02v-clidep.
c_contflag = ls_dd02v-contflag.
IF NOT ls_dd02v-clidep IS INITIAL.
IF i_logical_object EQ 'LODS' OR "approved_logical_objects
i_logical_object EQ 'LODE' OR
i_logical_object EQ 'LOIE' OR
i_logical_object EQ 'LODC' OR
i_logical_object EQ 'PCYS' OR
i_tabname(14) EQ '/FSPD/TCDIR_CA' OR
i_tabname(5) EQ 'APB_L' OR "LPDS??
i_tabname(12) EQ 'TBCA_PAY_GA_' OR
i_tabname(12) EQ 'TBCA_PAY_GA_' OR
i_tabname CP 'SMMW*PARAM*'.
"approved client dependent table
ELSE.
"do not allow update
IF NOT it_entries[] IS INITIAL. "not during initial call
MESSAGE e666(01) WITH 'Skipping table ' i_tabname 'because it is clien
t dependent.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
EXIT.
ENDIF.
ENDIF.
CASE ls_dd02v-contflag.
WHEN 'S' OR 'E' OR 'W'. "W for SCP2
"later: MODIFY (i_tabname) FROM TABLE it_entries.
WHEN 'G'.
"later: INSERT (i_tabname) FROM TABLE it_entries ACCEPTING DUPLICATE KEY
S.
WHEN OTHERS. "'W' OR 'L' OR 'A' OR 'C'.
IF NOT it_entries[] IS INITIAL. "not during initial call
MESSAGE e666(01) WITH 'Skipping table ' i_tabname 'because of delivery
class' ls_dd02v-contflag INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
EXIT.
ENDCASE.
"dynamic check for simple client independent system tables
IF ls_dd02v-clidep IS INITIAL AND ls_dd02v-contflag CA 'SE'.
DELETE lt_dd03p WHERE fieldname(6) EQ c_include6.
LOOP AT lt_dd03p TRANSPORTING NO FIELDS WHERE ( datatype NE 'CHAR' AND
datatype NE 'NUMC' AND
datatype NE 'CUKY' AND
datatype NE 'UNIT' AND
datatype NE 'TIMS' AND
datatype NE 'LANG' AND
datatype NE 'DATS' AND
datatype(3) NE 'INT' )
OR ( datatype(3) EQ 'INT' AND k
eyflag IS NOT INITIAL )
OR ( outputlen > 255 ).
EXIT.
ENDLOOP.
IF sy-subrc NE 0.
l_approved_system_table = 'X'.
ENDIF.
ENDIF.

CASE i_tabname.
"------- transported as TABU, update via MODIFY -> no deletions supporte
d
WHEN 'TVIMF' OR "view e
vents
'TRESC' OR "reserv
ed namespace
'T100S' OR 'T100SA' OR "variab
le messages
'THLPF' OR "assigm
ent DZ / screen fields
'IWREFERENC' OR "Keno Link in Release Note
'TRGTS_SOURCE' OR 'TRGTS_SOURCE_T' OR 'TKEDR' OR 'TKEDRT' OR "TARO p
roject
'ROMDDELTA' OR 'ROOHIECAT' OR 'ROOHIECOM' OR 'ROOSESRMAP' OR "OSOD D
atasource
'ROOSFIELD' OR 'ROOSOURCE' OR 'ROOSOURCET' OR 'ROOSSEG' OR "OSOD D
atasource
'BALOBJ' OR 'BALOBJT' OR 'BALSUB' OR 'BALSUBT' OR "CDAT A
PPL_LOG Application log defintion (SLG0)
'IDMX_DI_TXTOB' OR
'/PLMB/FRW_TABPRO' OR "VDAT /
PLMB/V_TABPRO
'/BA1/FU_KF_SAP' OR '/BA1/FU_KF_SAPT' OR
'MASSFLDLST' OR "Fields
allowed in transaction MASS
'SGT_CFUN_L' OR 'SGT_CFUN_T' OR "Segmen
tation
'CRMI_IMP_IOBJSM' OR 'CRMI_IMP_IOBJSMT' OR 'CRMI_MKTPL_FLDSM' OR "Inf
oObject Semantics
'AMPI_SRUNOBJ' OR 'AMPI_SDIM' OR 'AMPI_SDIM_T' OR 'AMPI_SMEAS' OR
'PPH_HANA_ACTIVE' OR "PPH
* IDOCs deactived 08.10.2015, example EBSK246971
* 'EDISDEF' OR 'EDISEGMENT' OR 'EDSAPPL' OR "TDAT
EDISEGMENT
* 'EDMSG' OR 'EDIMSG' OR 'EDIMSGT' OR "TDAT
BDBG, VDAT VEDI_EDMSG,
* 'EDIFCT' OR 'TBDBA' OR 'TBDBE' OR 'TBDBH' OR 'TBDBS' OR "TDAT
BDBG
'ARCH_USR' OR 'TBKKARCHEVENTS' OR "'AOBJ'
'TZK08' OR "Alloc
ation: Calculation type - KOPO fields
'TBCA_PAY_GA_SPLT' OR 'TBCA_PAY_GA_S_T' OR
'TZFB' OR 'TZFBT' OR
'CRMCHKMSG' OR 'CRMCHKMSGT' OR "Check
man/ATC customizing
'T185' OR 'T185D' OR 'T185T' OR 'T185F' OR 'T185V' OR 'TAXITABS' OR
"VFBS
'TC02' OR
'PPH_HANA_ACTIVE' OR "PPH
'TC33' OR 'TC34' OR 'T354B' OR "Status
handling
* 'T511K' or 'T512L' or 'T511P' or 'T511T' or 'T5QSG' or 'T5QTM' or 'T
5QTX' OR

'TKCOD' OR 'TKCODT' OR 'TKCOH' OR 'TKCOHW' OR 'TKCOR' OR 'TKCOU' OR


"VCLS VC_TKCOD
'TMC73' OR
'OROBJROLES' OR
* 'SWOTICE' or
'TCNS_APPL' OR 'TCNS_EXPOBJ' OR 'TCNS_EXP_REC' OR 'TCNS_RECEIVERS' OR
'FINB_TR_TCAT' OR 'FINB_TR_TCATT' OR 'FINB_TR_TAPPL' OR 'FINB_TR_TAPP
LT' OR
'/SAPPO/S_BPROC ' OR
'/SAPPO/S_BPROC_T' OR
'ECHS_PP_PROCESS ' OR
'ECHS_PROCESSES ' OR
'ECHS_PROCESSES_T' OR
'FEHT_PROXY2CMPR ' OR
'/BA1/TB1_BUSTRC' OR "Bank Analyzer
'/BA1/TB1_CM06' OR
'/BA1/TB1_CM07_SA' OR
'/BA1/TB1_CM02' OR
'/BA1/TB1_CM03_SA' OR
'/BA1/TB1_CM01' OR
'/BA1/TB1_CM05_SA' OR
'/BA1/TB1_ITMPAT' OR
'/BA1/TB1_CM04_SA' OR
'/BA1/TB1_ACCKF2S' OR
'/BA1/TB1_ACC_KF1' OR
'/BA1/FU_KFCL' OR
'/BA1/FU_CURTYPE' OR
'/BA1/FU_KFCL_TXT' OR
'/BA1/TB1_ACCKF1T' OR
'/BA1/TB1_CM01T' OR
'/BA1/TB1_CM02T' OR
'/BA1/TB1_CM06T' OR
'/BA1/TB1_CM08' OR
'/BA1/TB1_CM08T' OR
'/BA1/TB1_CM20' OR
'/BA1/TB1_ITMPATT' OR
'/BA1/F7_AED_AN' OR
'/BA1/B1_PROCCATG' OR
'/BA1/B1_PROCCATT' OR
'/BA1/TIA_AECAT' OR
'/BA1/TIA_AECAT_T' OR
'/BA1/TIA_CAT2APP' OR
'/BA1/TB1_BUSTRCT' OR
'/BA1/TB1_ITMPATT' OR
'/BA1/F0_LOC_FIX' OR
'/FSPD/TCDIR_CAGT' OR
'/FSPD/TCDIR_CATG' OR
'/SRMSMC/EXTN_LOC' OR
'/SRMSMC/EXTN_LOT' OR
'/SRMSMC/S_DNBFS' OR
'/SRMSMC/S_DNBFST' OR
'/SRMSMC/S_DNBLF' OR
'/SRMSMC/S_DNBLFT' OR
'/SRMSMC/S_SWITCH' OR
'/SRMSMC/S_SWITCT' OR
'RSECACHK' OR
'APB_LAUNCHPADT ' OR
'APB_LAUNCHPAD_V ' OR
'APB_LPD_CONTROL ' OR
'APB_LPD_OTR_KEYS' OR
'APB_LPD_VERSIONS' OR
'SMMW_PARAMGRTYP ' OR
'SMMW_PARAMTYP ' OR
'SMMW_PARAMGROUP ' OR
'SMMWPARAM ' OR
'SMMWPARAMKEY ' OR
'SMMWPARAMKEYT ' OR
'SMMWPARAMNAME ' OR
'SMMWPARAMNAMET ' OR
'SMMWPARAMVALUE ' OR
'SMMWPARAMVALUET ' OR
'LRM_T_BS_ARC_OBJ' OR
'LRM_T_BS_BOR_OBJ' OR
'LRM_T_BS_FLD_DVD' OR
'LRM_T_BS_STT_BVD' OR
'LRM_T_BS_STT_DVD' OR
'LRM_T_OT' OR
'LRM_T_OT_T' OR
'LRM_T_OT_FLD' OR
'LRM_T_OT_FLD_T' OR
'LRM_T_OT_PC' OR
'LRM_T_OT_PC_STAT' OR "G
'LRM_T_OT_STT' OR
'LRM_T_OT_STT_TO ' OR
'LRM_T_BS_FLD_BVD' OR
'LRM_T_BS_KOW_BVD' OR
'TCLO'. "VDAT V_CLO Class
System
"transported via R3TR TABU with keys in E071K
"will be filled later
WHEN 'TNODEIMG' OR 'TNODEIMGT' OR 'TNODEIMGR' OR "IMG Struc
ture
'TMENU01' OR 'TMENU01T' OR 'TMENU01R'. "Area Menu
c_deliver = gc_suppack.
"only insert/update needed hence NO PERFORM prepare_table
"transport request is triggered separately
"------- transported as R3TR (logical object), remove existing entries b
efore MODIFY
WHEN 'VCLDIR' OR 'VCLSTRUC' OR 'VCLSTRUDEP' OR 'VCLMF'.
"VCLS
PERFORM prepare_table USING i_tabname 'VCLNAME' it_entries CHANGING l_no
_update.
WHEN 'VCLDIRT' OR 'VCLSTRUCT'.
"VCLS text
PERFORM prepare_table USING i_tabname 'VCLNAME SPRAS' it_entries CHANGIN
G l_no_update.
WHEN 'SCPRATTR' OR 'SCPRDOCU' OR 'SCPRFLDV' OR 'SCPRPPRL' OR
"SCP1
'SCPRRECA' OR 'SCPRVALS'.
PERFORM prepare_table USING i_tabname 'ID VERSION' it_entries CHANGING l
_no_update.
WHEN 'SCPRTEXT' OR 'SCPRVALL'.
"SCP1 text
PERFORM prepare_table USING i_tabname 'LANGU ID VERSION' it_entries CHAN
GING l_no_update.
WHEN 'SBRANCHEEX' OR 'SBRANCHEIN' OR 'SCOUNTRYEX' OR 'SCOUNTRYIN'.
"SCP1 industries
PERFORM prepare_table USING i_tabname 'OBJTYP OBJID' it_entries CHANGING
l_no_update.
WHEN 'AAB_ID_PROP'.
"ACID
PERFORM prepare_table USING i_tabname 'NAME' it_entries CHANGING l_no_up
date.
WHEN 'AAB_ID_PROPT'.
"ACID
PERFORM prepare_table USING i_tabname 'NAME LANGU ' it_entries CHANGING
l_no_update.
WHEN 'APB_LPD_SH_TEXTS'.
"LPDS
PERFORM prepare_table USING i_tabname 'SAP_OBJECT UNIQUE_LPD_ID LANGU' i
t_entries CHANGING l_no_update.
WHEN 'THRFORMS_01' OR 'TIDIMATTRIB_01' OR 'TINETISTARS_01' OR 'TINFODIM_0
1' OR "HRFO
'TINFONET_01' OR 'TINFOSTAR_01' OR 'TISCRFIELDS_01' OR 'TISCRFIELD
S_02' OR
'TISTARFIG_01' OR 'TISTARIDIM_01' OR 'TSELFIELDS_01' OR 'TSELRANGES
_01'.
PERFORM prepare_table USING i_tabname 'INFONET' it_entries CHANGING l_no
_update.
WHEN 'TINFONET_T_01' OR 'TINFOSTAR_T_01'.
"HRFO text
PERFORM prepare_table USING i_tabname 'INFONET SPRSL' it_entries CHANGIN
G l_no_update.
WHEN 'SFREIM' OR 'SFREAC' OR 'SFRECOU'.
"SFRN
PERFORM prepare_table USING i_tabname 'REL_CLA REL_OBJ' it_entries CHANG
ING l_no_update.
WHEN 'FINS'.
"SFRN
PERFORM prepare_table USING i_tabname 'SHCLASS TXTKEY' it_entries CHANGI
NG l_no_update.
WHEN 'SFRELN'.
"SFRN
PERFORM prepare_table USING i_tabname 'TXTKEY' it_entries CHANGING l_no_
update.
WHEN 'CUS_IMGACH'.
"CUS0
PERFORM prepare_table USING i_tabname 'ACTIVITY' it_entries CHANGING l_n
o_update.
WHEN 'CUS_IMGACT'.
"CUS0 text
PERFORM prepare_table USING i_tabname 'ACTIVITY SPRAS' it_entries CHANGI
NG l_no_update.
WHEN 'CUS_ACTEXT' OR 'CUS_ACTH' OR 'CUS_ACTOBJ'.
"CUS1
PERFORM prepare_table USING i_tabname 'ACT_ID' it_entries CHANGING l_no_
update.
WHEN 'CUS_ACTT' OR 'CUS_ACTOBT'.
"CUS1 text
PERFORM prepare_table USING i_tabname 'ACT_ID SPRAS' it_entries CHANGING
l_no_update.
WHEN 'CUS_ATRH' OR 'CUS_ATRCOU'.
"CUS2
PERFORM prepare_table USING i_tabname 'ATTR_ID' it_entries CHANGING l_no
_update.
WHEN 'CUS_ATRT'.
"CUS2 text
PERFORM prepare_table USING i_tabname 'ATTR_ID SPRAS' it_entries CHANGIN
G l_no_update.
WHEN 'TFM18'.
"CUS2 special
WHEN 'EDBAS' OR 'IDOCSYN'.
"IDOC
PERFORM prepare_table USING i_tabname 'IDOCTYP' it_entries CHANGING l_no
_update.
WHEN 'EDBAST'.
"IDOC text
PERFORM prepare_table USING i_tabname 'IDOCTYP LANGUA' it_entries CHANGI
NG l_no_update.
WHEN 'TOBJ' OR 'TOBJVOR' OR 'TOBJVORFLG' OR 'TOBJVORDAT'.
"SUSO
PERFORM prepare_table USING i_tabname 'OBJCT' it_entries CHANGING l_no_u
pdate.
WHEN 'TACTZ'.
"SUSO
PERFORM prepare_table USING i_tabname 'BROBJ' it_entries CHANGING l_no_u
pdate.
WHEN 'TOBJT'.
"SUSO text
PERFORM prepare_table USING i_tabname 'OBJECT LANGU' it_entries CHANGING
l_no_update.
WHEN 'STC_SCN_HDR' OR 'STC_SCN_TASKS' OR 'STC_SCN_ATTR'.
"STCS
PERFORM prepare_table USING i_tabname 'SCENARIO_ID' it_entries CHANGING
l_no_update.
WHEN 'STC_SCN_HDR_T'.
"STCS text
PERFORM prepare_table USING i_tabname 'SCENARIO_ID LANGU' it_entries CHA
NGING l_no_update.
* when 'WDY_CONFIG_APPT' or 'WDY_CFG_VERS_APPL_COMPO' or 'WDY_CFG_VERS_APPL
_HEADER' "WDCA
* or 'WDY_CFG_VERS_APPL_PARAM' or 'WDY_CFG_VERS_APPL_PARAM_L'.
WHEN 'WDY_APPLICATION' OR 'WDY_APP_PROPERTY' OR 'SOTR_USE'.
"WDYA
PERFORM prepare_table USING i_tabname 'APPLICATION_NAME' it_entries CHAN
GING l_no_update.
WHEN 'WDY_APPLICATIONT'.
"WDYA text
PERFORM prepare_table USING i_tabname 'APPLICATION_NAME LANGU' it_entrie
s CHANGING l_no_update.
WHEN 'OA2_SD_SC'.
"OAS2
PERFORM prepare_table USING i_tabname 'SCOPE_ID' it_entries CHANGING l_n
o_update.
WHEN 'OA2_SD_SCT' .
"OAS2 text
PERFORM prepare_table USING i_tabname 'SCOPE_ID LANGU' it_entries CHANGI
NG l_no_update.
WHEN 'TDDAT' OR 'TVDIR'.
"generated via execution of SE54 -> no need to insert and no need to tra
nsport
c_deliver = gc_generate.
RETURN.
WHEN OTHERS.
IF NOT l_object IS INITIAL AND ( approved_logical_objects CS l_object )
. "approved logical transport objects
"existing entries deleted during create_logical_object
ELSEIF l_approved_system_table EQ 'X'.
"no deletions, only update of existing entries and insert
ELSE.
"objects which might have to be described as manual step or BCSet
CONCATENATE gc_bcset '?' INTO c_deliver.
MESSAGE e666(01) WITH 'Delivering entries for table' i_tabname 'is not
approved yet' INTO sy-lisel. "#EC *
IF NOT it_entries[] IS INITIAL.
CALL METHOD log_message.
ENDIF.
RETURN.
ENDIF.
ENDCASE.
IF c_deliver NE gc_suppack. "do not change from suppack to something else,
e.g. TNODEIMG
c_deliver = gc_report.
ENDIF.

IF i_logical_object IS INITIAL.
"transported via R3TR TABU with keys in E071K
CALL FUNCTION 'DDIF_NAMETAB_GET'
EXPORTING
tabname = i_tabname
IMPORTING
x030l_wa = ls_x030l
EXCEPTIONS
not_found = 1
OTHERS = 2.
l_keylen = ls_x030l-keylen / ls_x030l-unicodelg.
CLEAR ls_ko200.
ls_ko200-pgmid = 'R3TR'.
ls_ko200-object = 'TABU'.
ls_ko200-objfunc = 'K'.
ls_ko200-obj_name = i_tabname.
APPEND ls_ko200 TO lt_ko200.
CLEAR ls_e071k.
ls_e071k-pgmid = ls_ko200-pgmid.
ls_e071k-objname = ls_ko200-obj_name.
ls_e071k-object = ls_ko200-object.
ls_e071k-mastertype = ls_ko200-object.
ls_e071k-mastername = ls_ko200-obj_name.
LOOP AT it_entries ASSIGNING <ls_entry>.
ls_e071k-tabkey = <ls_entry>(l_keylen).
IF l_keylen <= 120. "entire key does fit into E071K-TABKEY (CHAR 120)
ELSEIF i_tabname EQ 'EDIFCT'.
IF ls_e071k-tabkey+91 CA '_'.
ADD 91 TO sy-fdpos.
ls_e071k-tabkey+sy-fdpos = '*'.
ELSE.
ls_e071k-tabkey+119 = '*'.
ENDIF.
ELSE.
MESSAGE e666(01) WITH 'Delivering entries for table' i_tabname 'is not
approved yet' INTO sy-lisel. "#EC *
c_deliver = gc_manual.
RETURN.
ENDIF.
APPEND ls_e071k TO lt_e071k.
ENDLOOP.
ENDIF.
CHECK NOT it_entries[] IS INITIAL.
IF i_delete IS INITIAL.
CHECK l_no_update IS INITIAL.
ENDIF.
IF testrun IS INITIAL.
IF i_logical_object IS INITIAL.
CALL FUNCTION 'TR_OBJECTS_CHECK'
TABLES
wt_ko200 = lt_ko200
* WT_E071K =
EXCEPTIONS
cancel_edit_other_error = 1
show_only_other_error = 2
OTHERS = 3.
IF sy-subrc EQ 0.
DATA: l_trkorr LIKE gv_trkorr.
CALL FUNCTION 'TR_OBJECTS_INSERT'
EXPORTING
wi_order = gv_trkorr
IMPORTING
we_order = l_trkorr
TABLES
wt_ko200 = lt_ko200
wt_e071k = lt_e071k
* TT_TADIR =
EXCEPTIONS
cancel_edit_other_error = 1
show_only_other_error = 2
OTHERS = 3.
IF sy-subrc EQ 0.
IF l_trkorr IS INITIAL.
MESSAGE w666(01) WITH 'Changes cannot be recorded in a transport r
equest.' 'You may have to logon to a different client.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
CLEAR sy-subrc. "go on without error code
ELSE.
gv_trkorr = l_trkorr.
ENDIF.
ENDIF.
ENDIF.
IF sy-subrc NE 0.
MESSAGE e666(01) WITH 'Could not be added to transport request.' INTO
sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
ENDIF.
IF NOT it_entries[] IS INITIAL.
IF i_delete IS INITIAL.
CASE ls_dd02v-contflag.
WHEN 'S' OR 'E' OR 'W'.
MODIFY (i_tabname) FROM TABLE it_entries. "#EC CI_DYNTAB
WHEN 'G'.
INSERT (i_tabname) FROM TABLE it_entries ACCEPTING DUPLICATE KEYS.
"#EC CI_DYNTAB
WHEN OTHERS.
"should never happen because of "basic checks"
MESSAGE a666(01) WITH 'Table' i_tabname 'cannot be processed'. "#E
C *
ENDCASE.
MESSAGE i666(01) WITH sy-dbcnt 'entries were inserted into table' i_ta
bname INTO sy-lisel. "#EC *
ELSE.
DELETE (i_tabname) FROM TABLE it_entries. "#EC CI_DYNTAB
MESSAGE i666(01) WITH sy-dbcnt 'entries were deleted from table' i_ta
bname INTO sy-lisel. "#EC *
ENDIF.
CALL METHOD log_message.
ENDIF.
ELSE.
DESCRIBE TABLE it_entries.
IF i_delete IS INITIAL.
MESSAGE i666(01) WITH sy-tfill 'entries will be inserted into table' i_t
abname INTO sy-lisel. "#EC *
ELSE.
MESSAGE i666(01) WITH sy-tfill 'entries will be deleted from table' i_t
abname INTO sy-lisel. "#EC *
ENDIF.
CALL METHOD log_message.
ENDIF.
ENDMETHOD. "create_table_entries

METHOD add_to_transport.
STATICS: s_object LIKE i_object,
s_obj_name TYPE string,
s_msgty TYPE symsgty,
s_testrun LIKE testrun VALUE '-',
s_masterlang TYPE tadir-masterlang.
DATA: l_tadir_name TYPE tadir-obj_name,
l_new_devclass TYPE devclass,
l_object_name TYPE string,
l_object_class TYPE string,
l_extend,
l_global_lock,
ls_trkey TYPE trkey,
ls_t000 TYPE t000,
l_bcset_clients TYPE string.
CLEAR sy-subrc.
IF lcl_wb=>language_installed( i_langu ) IS INITIAL.
RAISE language_not_installed.
ENDIF.
IF gv_errors_occured EQ 'X'.
MESSAGE w666(01) WITH 'Skipped because of error in previous object' INTO s
y-lisel. "#EC *
CALL METHOD log_message.
RAISE error.
ELSEIF i_object EQ 'TABU'.
DATA: lt_ko200 TYPE TABLE OF ko200, ls_ko200 TYPE ko200,
lt_e071k TYPE TABLE OF e071k, ls_e071k TYPE e071k.
ls_ko200-pgmid = ls_e071k-pgmid = 'R3TR'.
ls_ko200-object = ls_e071k-object = ls_e071k-mastertype = 'TABU'.
ls_ko200-obj_name = ls_e071k-objname = ls_e071k-mastername = i_obj_name.
ls_ko200-objfunc = 'K'.
ls_e071k-tabkey = i_tabkey.
APPEND ls_ko200 TO lt_ko200.
APPEND ls_e071k TO lt_e071k.
CALL FUNCTION 'TR_OBJECTS_CHECK'
TABLES
wt_ko200 = lt_ko200
* WT_E071K =
EXCEPTIONS
cancel_edit_other_error = 1
show_only_other_error = 2
OTHERS = 3.
IF sy-subrc EQ 0.
CALL FUNCTION 'TR_OBJECTS_INSERT'
EXPORTING
wi_order = gv_trkorr
IMPORTING
we_order = gv_trkorr
TABLES
wt_ko200 = lt_ko200
wt_e071k = lt_e071k
EXCEPTIONS
cancel_edit_other_error = 1
show_only_other_error = 2
OTHERS = 3.
ENDIF.
IF sy-subrc NE 0.
RAISE error.
ENDIF.
RETURN.
ELSEIF i_object NE s_object OR
i_obj_name NE s_obj_name OR
testrun NE s_testrun.
s_object = i_object.
s_obj_name = i_obj_name.
s_testrun = testrun.
CLEAR s_msgty.
CHECK i_object NE space.
CASE i_object.
WHEN 'SCP1'.
WHEN 'SCP2'.
"check if there is any BCSet client.
SELECT mandt FROM t000 INTO ls_t000 WHERE ccorigcont EQ 'X'. "AND ccca
tegory EQ 'C' <- sometimes not customized as C but T, e.g. E27
CONCATENATE l_bcset_clients ls_t000-mandt INTO l_bcset_clients SEPAR
ATED BY space.
ENDSELECT.
IF NOT l_bcset_clients IS INITIAL.
"check if current client is a BCSet client
IF l_bcset_clients NS sy-mandt.
MESSAGE e666(01) WITH 'BCSets can only be changed in one' 'of the
following clients:' l_bcset_clients INTO sy-lisel. "#EC *
CALL METHOD log_message.
s_msgty = 'E'.
ENDIF.
ENDIF.
ENDCASE.
CASE i_object.
WHEN 'REPT' OR 'FUNC' OR 'CUAD' OR 'DOCU'.
l_object_class = i_object.
l_object_name = i_obj_name.
IF i_object EQ 'DOCU'.
l_extend = 'X'. "no SMODILOG for DOCU
ENDIF.
WHEN 'DOCV' OR 'DOCT' OR 'DSYS' OR 'STCS' OR 'MSAG' OR 'SOTR'
OR 'IWPR' OR 'IWMO' OR 'IWSV' OR 'IWOM' OR 'IWSG' OR 'SICF' "SEGW
OR 'SFRN' OR 'CUS0' OR 'CUS1' OR 'CUS2'. "IMG
l_object_class = i_object.
l_object_name = i_obj_name.
l_global_lock = 'X'.
l_extend = 'X'.
l_tadir_name = i_obj_name.
WHEN 'MESS'.
l_object_class = 'T100'.
l_object_name = i_obj_name.
WHEN 'CLAS' OR 'FUGR' OR 'PARA' OR 'VCLS' OR 'AUTH' OR 'TRAN' OR 'SUSO'
OR 'PROG'.
l_object_class = i_object.
l_object_name = i_obj_name.
l_tadir_name = i_obj_name.
l_global_lock = 'X'.
WHEN 'DOMA' OR 'DTEL' OR 'TABL' OR 'TABT' OR 'VIEW' OR 'INDX' OR 'XINX'
OR 'TTYP' OR 'SHLP' OR 'ENQU'.
l_object_class = 'DICT'.
CONCATENATE i_object i_obj_name INTO l_object_name.
IF i_object NE 'INDX'. "correct name will be determined by SCWB_GET_TA
DIR_REM
l_tadir_name = i_obj_name.
ENDIF.
WHEN 'DYNP'.
l_object_class = 'SCRP'.
l_object_name = i_obj_name.
WHEN 'TABU'.
WHEN OTHERS.
l_object_class = i_object.
l_object_name = i_obj_name.
SELECT SINGLE objectname FROM objh INTO sy-lisel
WHERE objectname EQ i_object
AND objecttype EQ 'L'.
IF sy-subrc EQ 0. "is a logical object
l_global_lock = 'X'.
l_extend = 'X'.
l_tadir_name = i_obj_name.
ENDIF.
ENDCASE.
"determine TADIR key and check for old TADIR entry
DATA: ls_e071 TYPE e071,
ls_tadir_key TYPE tadir,
ls_tadir_old TYPE tadir.
ls_e071-pgmid = 'LIMU'.
ls_e071-object = i_object.
ls_e071-obj_name = i_obj_name.
CALL FUNCTION 'SCWB_GET_TADIR_REM' "determines main object if i_object is
a part object, e.g REPT->PROG
EXPORTING
is_e071 = ls_e071
IMPORTING
es_tadir = ls_tadir_old
es_tadir_key = ls_tadir_key.
IF ls_tadir_key IS INITIAL.
ls_e071-pgmid = 'R3TR'.
CALL FUNCTION 'SCWB_GET_TADIR_REM'
EXPORTING
is_e071 = ls_e071
IMPORTING
es_tadir = ls_tadir_old
es_tadir_key = ls_tadir_key.
ENDIF.
IF ls_tadir_old-devclass IS INITIAL.
l_new_devclass = i_devclass.
ELSE.
l_new_devclass = ls_tadir_old-devclass.
ENDIF.
"create TADIR entry in advance avoid popup
IF NOT ls_tadir_key-obj_name IS INITIAL. "only if a name could be determ
ined, e.g. does not work for LIMU DOCU FU... if function group does not exist ye
t
ASSERT l_tadir_name IS INITIAL OR ls_tadir_key-obj_name EQ l_tadir_name.
"compatibility check
s_masterlang = ls_tadir_old-masterlang.
IF ls_tadir_old IS INITIAL. "V3.5
2
IF l_object_class EQ 'DICT' AND "V3.5
2
i_object NE 'INDX'. "V3.5
2
l_global_lock = 'X'. "similar to MSDXXBAS_FORMS 463 "V3.5
2
ENDIF. "V3.5
2
ELSEIF i_edtflag EQ 'X'. "iv_no_standard_editor
"temporary disable check of tadir-edtflag
UPDATE tadir SET edtflag = ' '
WHERE pgmid EQ ls_tadir_key-pgmid
AND object EQ ls_tadir_key-object
AND obj_name EQ ls_tadir_key-obj_name.
l_extend = 'X'. "no SMODILOG because object can't be reset to standa
rd
ENDIF. "V3.5
2
IF i_langu CA gv_master_languages.
IF ls_tadir_old IS INITIAL.
"for new objects check whether it exists globally to determine corre
ct package
DATA: ls_gtadir TYPE gtadir.
CALL FUNCTION 'TR_GTADIR_QUERY'
EXPORTING
iv_pgmid = ls_tadir_key-pgmid
iv_object = ls_tadir_key-object
iv_obj_name = ls_tadir_key-obj_name
IMPORTING
result = ls_gtadir
EXCEPTIONS
OTHERS = 0.
IF NOT ls_gtadir IS INITIAL AND testrun IS INITIAL.
CALL FUNCTION 'TRINT_TADIR_MODIFY'
EXPORTING
author = sy-uname
devclass = i_devclass "or from GTADIR
pgmid = ls_tadir_key-pgmid
object = ls_tadir_key-object
obj_name = ls_tadir_key-obj_name
masterlang = i_langu "no masterlang in GTADIR
srcsystem = ls_gtadir-srcsystem
change_masterlang = 'X'
* EDTFLAG = '~'
* GENFLAG = '~'
force_mode = space
EXCEPTIONS
OTHERS = 0.
ENDIF.
ENDIF.
"set correct language and package on first call per object
"skip this for other languages than EN/DE.
CALL FUNCTION 'TR_TADIR_INTERFACE'
EXPORTING
* WI_DELETE_TADIR_ENTRY = ' '
wi_test_modus = testrun
wi_tadir_pgmid = ls_tadir_key-pgmid
wi_tadir_object = ls_tadir_key-object
wi_tadir_obj_name = ls_tadir_key-obj_name
wi_tadir_devclass = l_new_devclass
wi_tadir_masterlang = i_langu
EXCEPTIONS
devclass_not_existing = 90
obj_specification_not_unique = 91
pgmid_object_not_allowed = 92
masterlanguage_not_specified = 93
devclass_not_specified = 94
tadir_entry_not_existing = 1
tadir_entry_ill_type = 2
no_systemname = 3
no_systemtype = 4
original_system_conflict = 5
object_reserved_for_devclass = 6
object_exists_global = 7
object_exists_local = 8
object_is_distributed = 9
no_authorization_to_delete = 11
simultanious_set_remove_repair = 13
order_missing = 14
no_modification_of_head_syst = 15
specify_owner_unique = 19
loc_priv_objs_no_repair = 20
gtadir_not_reached = 21
object_locked_for_order = 22
change_of_class_not_allowed = 23
no_change_from_sap_to_tmp = 24
OTHERS = 25.
IF sy-subrc EQ 90.
READ TABLE gr_devclass WITH KEY low = i_devclass TRANSPORTING NO FIE
LDS.
IF sy-subrc NE 0 OR testrun IS INITIAL.
CALL METHOD lcl_wb=>log_message.
s_msgty = 'E'.
ENDIF.
ELSEIF sy-subrc GT 90.
CALL METHOD lcl_wb=>log_message.
s_msgty = 'E'.
ENDIF.
ENDIF.
IF NOT i_devclass IS INITIAL.
"set correct package in memory
EXPORT current_devclass FROM i_devclass TO MEMORY ID 'EUK'.
SET PARAMETER ID 'EUK' FIELD i_devclass.
ENDIF.
ENDIF.
IF testrun IS INITIAL.
DATA: l_suppress_dialog.
IF i_devclass EQ '$TMP'. "perform all checks but suppress some popups
l_suppress_dialog = 'X'. "e.g. 'object can only be created in SAP p
ackage' 'system setting does not allow....'
ENDIF.
CALL FUNCTION 'RS_CORR_INSERT' "and create TADIR-entry
EXPORTING
object = l_object_name
object_class = l_object_class
global_lock = l_global_lock
devclass = i_devclass
korrnum = gv_trkorr
master_language = i_langu
extend = l_extend
suppress_dialog = l_suppress_dialog "currently only set for loca
l objects
* AUTHOR = ' '
* GENFLAG = ' '
* PROGRAM = ' '
* OBJECT_CLASS_SUPPORTS_MA = ' '
* MOD_LANGU = ' '
* ACTIVATION_CALL = ' '
IMPORTING
korrnum = gv_trkorr
* ORDERNUM =
* NEW_CORR_ENTRY =
* AUTHOR =
transport_key = ls_trkey
* NEW_EXTEND =
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc NE 0.
s_msgty = 'E'.
gv_errors_occured = 'X'. "no change in further objects, skip activat
ion
ELSE.
"collect objects with update
COLLECT ls_trkey INTO gt_trkey.
"correct master language if neccessary
IF NOT ls_tadir_key IS INITIAL AND ls_tadir_old-masterlang IS INITIAL.
IF i_langu CA gv_master_languages.
IF ls_e071-pgmid EQ 'R3TR'.
UPDATE tadir SET masterlang = i_langu
WHERE pgmid EQ ls_tadir_key-pgmid
AND object EQ ls_tadir_key-object
AND obj_name EQ ls_tadir_key-obj_name
AND masterlang NE i_langu.
ELSEIF i_devclass NE '$TMP'.
"creation of LIMU where no TADIR existed before
** UPDATE tadir SET masterlang = space "clear language and let SCW
B/SNOTE set the correct language "erasing masterlang not enough->delete tadir?
"deactivated because copy PINF lost TADIR here: (20161124)
* DELETE FROM tadir WHERE pgmid EQ ls_tadir_key-pgmid AND object
EQ ls_tadir_key-object AND obj_name EQ ls_tadir_key-obj_name.
ENDIF.
s_masterlang = i_langu.
ENDIF.
ENDIF.
"set/restore tadir-edtflag
IF i_edtflag EQ 'X'. "iv_no_standard_editor
"temporary disable check of tadir-edtflag
UPDATE tadir SET edtflag = 'X'
WHERE pgmid EQ ls_tadir_key-pgmid
AND object EQ ls_tadir_key-object
AND obj_name EQ ls_tadir_key-obj_name.
ENDIF.
ENDIF.
ELSE.
CALL FUNCTION 'RS_CORR_CHECK'
EXPORTING
object = l_object_name
object_class = l_object_class
global_lock = l_global_lock
suppress_dialog = 'X' "e.g. 'object can only be created in SAP
package'
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc NE 0.
CALL METHOD log_message.
s_msgty = 'E'.
ELSE.
s_msgty = 'W'.
ENDIF.
ENDIF.
ENDIF.
IF gv_trkorr IS NOT INITIAL.
READ TABLE gt_trkorr WITH KEY table_line = gv_trkorr TRANSPORTING NO FIELD
S.
IF sy-subrc NE 0.
APPEND gv_trkorr TO gt_trkorr.
ENDIF.
ENDIF.
e_masterlang = s_masterlang.
CASE s_msgty.
WHEN 'E'.
MESSAGE e666(01) WITH 'Could not add to transport request' INTO sy-lisel
. "#EC *
CALL METHOD log_message.
RAISE error.
WHEN 'W'.
RAISE simulation.
ENDCASE.
ENDMETHOD. "add_to_transport
METHOD register_inactive_object.
DATA: l_obj_name TYPE e071-obj_name.
l_obj_name = i_objname.
CALL FUNCTION 'RS_INSERT_INTO_WORKING_AREA'
EXPORTING
object = i_objtype
obj_name = l_obj_name
EXCEPTIONS
OTHERS = 0.
IF i_treetype IS SUPPLIED.
CHECK i_treetype NE space.
CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
EXPORTING
type = i_treetype
object = l_obj_name.
ELSE.
CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
EXPORTING
type = i_objtype
object = l_obj_name.
ENDIF.
ENDMETHOD. "register_inactive_object

METHOD create_message.
DATA: lt_bdc TYPE TABLE OF bdcdata,
ls_bdc TYPE bdcdata,
ls_bdcp TYPE bdcdata,
ls_opt TYPE ctu_params.
DATA: ls_t100 TYPE t100,
ls_t100a TYPE t100a,
ls_t100u TYPE t100u,
ls_t100x TYPE t100x,
ls_t100o TYPE t100o,
lt_activity TYPE tt_activity,
l_obj_name TYPE dokil-object,
ls_msg_class LIKE LINE OF gr_msg_class VALUE 'IEQ'.
ls_msg_class-low = i_msgid.
COLLECT ls_msg_class INTO gr_msg_class.
CALL METHOD set_context
EXPORTING
i_langu = i_langu
i_object = 'MESS'
i_obj_name = i_msgid
i_obj_name2 = i_msgno.
IF gv_abap_in_eclipse EQ 'X'.
MESSAGE e666(01) WITH 'Creation/Copy not possible in Eclipse.' 'Please use
SAPGUI.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
SELECT SINGLE * FROM t100a INTO ls_t100a
WHERE arbgb EQ i_msgid.
IF sy-subrc NE 0.
IF testrun IS INITIAL OR NOT i_msgid IN gr_msg_class.
MESSAGE e509(eu) WITH i_msgid INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
RETURN.
ENDIF.
SELECT SINGLE masterlang FROM tadir INTO ls_t100a-masterlang
WHERE pgmid EQ 'R3TR'
AND object EQ 'MSAG'
AND obj_name EQ i_msgid.
SELECT SINGLE * FROM t100 INTO ls_t100
WHERE sprsl EQ i_langu
AND arbgb EQ i_msgid
AND msgnr EQ i_msgno.
SELECT SINGLE * FROM t100u INTO ls_t100u
WHERE arbgb EQ i_msgid
AND msgnr EQ i_msgno.
SELECT SINGLE auth_check FROM t100x INTO CORRESPONDING FIELDS OF ls_t100x
WHERE arbgb EQ i_msgid
AND msgnr EQ i_msgno.
SELECT activity FROM t100o INTO TABLE lt_activity "#EC CI_GENBUFF
WHERE arbgb EQ i_msgid "#EC CI_SGLSELECT
AND msgnr EQ i_msgno.
IF i_text EQ ls_t100-text AND
i_auth_check EQ ls_t100x-auth_check AND
it_activity EQ lt_activity.
IF i_selfdef IS INITIAL AND ls_t100u-selfdef IS INITIAL OR
">=SAPBASIS640
NOT i_selfdef IS INITIAL AND NOT ls_t100u-selfdef IS INITIAL.
">=SAPBASIS640
MESSAGE i666(01) WITH 'No update necessary' INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
">=SAPBASIS640
ENDIF.
CALL FUNCTION 'DOCU_OBJECT_NAME_CONCATENATE'
EXPORTING
docu_id = 'NA'
element = i_msgid
addition = i_msgno
IMPORTING
object = l_obj_name
EXCEPTIONS
OTHERS = 0.
CALL METHOD add_to_transport
EXPORTING
i_object = 'MESS'
i_obj_name = l_obj_name
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0.
IF i_langu EQ ls_t100a-masterlang.
"create or change message and write into transport request
"if sy-langu is different from master language SE91 will switch to master
lang
"-------------------------------------------
ls_bdcp-program = 'SAPLWBMESSAGES'.
ls_bdcp-dynpro = '0100'.
ls_bdcp-dynbegin = 'X'.
APPEND ls_bdcp TO lt_bdc.
* ls_bdc-fnam = 'BDC_CURSOR'.
* ls_bdc-fval = 'MSG_NUMMER'.
* APPEND ls_bdc TO lt_bdc.
ls_bdc-fnam = 'RSDAG-ARBGB'.
ls_bdc-fval = i_msgid.
APPEND ls_bdc TO lt_bdc.
ls_bdc-fnam = 'MSG_NUMMER'.
ls_bdc-fval = i_msgno.
APPEND ls_bdc TO lt_bdc.
ls_bdc-fnam = 'RSDAG-MSGFLAG'.
ls_bdc-fval = 'X'.
APPEND ls_bdc TO lt_bdc.
ls_bdc-fnam = 'BDC_OKCODE'.
ls_bdc-fval = '=WB_EDIT'.
APPEND ls_bdc TO lt_bdc.
"-------------------------------------------
ls_bdcp-dynpro = '1000'.
ls_bdcp-dynbegin = 'X'.
APPEND ls_bdcp TO lt_bdc.
ls_bdc-fnam = 'BDC_SUBSCR'.
ls_bdc-fval = 'SAPLWBMESSAGES 0101SUB'.
APPEND ls_bdc TO lt_bdc.
ls_bdc-fnam = 'T100-TEXT(01)'.
ls_bdc-fval = i_text.
APPEND ls_bdc TO lt_bdc.
ls_bdc-fnam = 'LISTTAB-DOKU_FLAG(01)'.
IF i_selfdef IS INITIAL.
ls_bdc-fval = ' '.
ELSE.
ls_bdc-fval = 'X'.
ENDIF.
APPEND ls_bdc TO lt_bdc.
ls_bdc-fnam = 'BDC_OKCODE'.
ls_bdc-fval = '=WB_SAVE'.
APPEND ls_bdc TO lt_bdc.
"-------------------------------------------
ls_bdcp-dynpro = '1000'.
ls_bdcp-dynbegin = 'X'.
APPEND ls_bdcp TO lt_bdc.
ls_bdc-fnam = 'BDC_OKCODE'.
ls_bdc-fval = '=WB_BACK'.
APPEND ls_bdc TO lt_bdc.
"-------------------------------------------
ls_bdcp-dynpro = '0100'.
ls_bdcp-dynbegin = 'X'.
APPEND ls_bdcp TO lt_bdc.
ls_bdc-fnam = 'BDC_OKCODE'.
ls_bdc-fval = '=WB_BACK'.
APPEND ls_bdc TO lt_bdc.
ls_opt-dismode = 'E'.
ls_opt-racommit = 'X'.
ls_opt-nobinpt = 'X'.
ls_opt-nobiend = 'X'.
"-------------------------------------------
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = 'SE91'
EXCEPTIONS
ok = 0
not_ok = 2
OTHERS = 3.
IF sy-subrc NE 0.
CALL METHOD log_message.
ELSE.
CALL TRANSACTION 'SE91' USING lt_bdc OPTIONS FROM ls_opt. "#EC CI_CALLTA
ENDIF.
ELSE.
"update translation only
ls_t100-arbgb = i_msgid.
ls_t100-msgnr = i_msgno.
ls_t100-sprsl = i_langu.
ls_t100-text = i_text.
MODIFY t100 FROM ls_t100. "no activation needed
ENDIF.
IF i_auth_check EQ ls_t100x-auth_check OR i_auth_check IS NOT SUPPLIED.
ELSEIF i_auth_check IS INITIAL.
DELETE FROM t100x WHERE arbgb EQ i_msgid AND msgnr EQ i_msgno.
ELSE.
ls_t100x-arbgb = i_msgid.
ls_t100x-msgnr = i_msgno.
ls_t100x-auth_check = i_auth_check.
INSERT t100x FROM ls_t100x.
ENDIF.
IF it_activity NE lt_activity AND it_activity IS SUPPLIED.
DELETE FROM t100o WHERE arbgb EQ i_msgid AND msgnr EQ i_msgno.
LOOP AT it_activity INTO ls_t100o-activity.
ls_t100o-arbgb = i_msgid.
ls_t100o-msgnr = i_msgno.
INSERT t100o FROM ls_t100o.
ENDLOOP.
ENDIF.
MESSAGE i666(01) WITH 'Update successful' INTO sy-lisel. "#EC *
CALL METHOD log_message.
gv_translation = 'X'.
gv_repository_changed = 'X'.
ENDMETHOD. "create_message

METHOD create_screen.
DATA: l_obj_name TYPE e071-obj_name,
ls_header TYPE rpy_dyhead,
lt_containers TYPE dycatt_tab,
lt_fields TYPE dyfatc_tab,
lt_params TYPE tt_dypara,
lt_flow_logic TYPE tt_d022s. "dyn_flowlist.
CONCATENATE is_header-program is_header-screen INTO l_obj_name SEPARATED BY
space.
CALL METHOD set_context
EXPORTING
i_langu = is_header-language
i_object = 'DYNP'
i_obj_name = l_obj_name.
l_obj_name = is_header-program.
l_obj_name+40 = is_header-screen.
CALL METHOD add_to_transport
EXPORTING
i_devclass = i_devclass
i_langu = is_header-language
i_object = 'DYNP'
i_obj_name = l_obj_name
EXCEPTIONS
OTHERS = 1.
"work with local copies because RPY_DYNPRO_INSERT contains write access to t
hat fields
ls_header = is_header.
lt_containers = it_containers.
lt_fields = it_fields.
lt_params = it_params.
lt_flow_logic = it_flow_logic.
IF sy-subrc EQ 0.
CALL FUNCTION 'RPY_DYNPRO_INSERT' "also see type RPYTY_FORCE_OFF
EXPORTING
* SUPPRESS_CORR_CHECKS = ' '
* CORRNUM = ' '
suppress_exist_checks = 'X' "overwrite existing screen
* SUPPRESS_GENERATE = ' '
suppress_dict_support = 'X' "suppress detection of SET_PARAM, GET_
PARAM, FOREIGN_KEY, UP_LOWER
* SUPPRESS_EXTENDED_CHECKS = ' '
header = ls_header
* USE_CORRNUM_IMMEDIATEDLY = ' '
* SUPPRESS_COMMIT_WORK = ' '
TABLES
containers = lt_containers
fields_to_containers = lt_fields
flow_logic = lt_flow_logic
params = lt_params
EXCEPTIONS
cancelled = 1
already_exists = 2
program_not_exists = 3
not_executed = 4
missing_required_field = 5
illegal_field_value = 6
field_not_allowed = 7
not_generated = 8
illegal_field_position = 9
OTHERS = 10.
ENDIF.
IF sy-subrc EQ 0 OR NOT testrun IS INITIAL.
MESSAGE i666(01) WITH 'Update successful' INTO sy-lisel. "#EC *
ENDIF.
CALL METHOD log_message.
ENDMETHOD. "create_screen
METHOD create_program_text.
DATA: lt_textpool TYPE TABLE OF textpool,
lt_source TYPE TABLE OF abapsource,
l_text LIKE i_text,
ls_e071 TYPE e071,
ls_tadir TYPE tadir.
FIELD-SYMBOLS: <ls_textpool> TYPE textpool.
CALL METHOD set_context
EXPORTING
i_langu = i_langu
i_object = 'REPT'
i_obj_name = i_progname.
CALL FUNCTION 'RPY_PROGRAM_READ'
EXPORTING
language = i_langu
program_name = i_progname
with_includelist = space
only_texts = 'X'
read_latest_version = 'X'
with_lowercase = 'X'
TABLES
textelements = lt_textpool
source = lt_source "dummy for 46C
EXCEPTIONS
cancelled = 1
not_found = 2
permission_error = 3
OTHERS = 4.
IF sy-subrc EQ 2.
* READ TEXTPOOL i_progname INTO lt_textpool LANGUAGE i_langu.
IF i_progname NE gv_progname_rept. "show following message only once
MESSAGE i666(01) WITH 'Report Texts can not be created yet.' INTO sy-lis
el. "#EC *
CALL METHOD log_message.
ls_e071-pgmid = 'LIMU'.
ls_e071-object = 'REPT'.
ls_e071-obj_name = i_progname.
CALL FUNCTION 'SCWB_GET_TADIR_REM'
EXPORTING
is_e071 = ls_e071
IMPORTING
es_tadir_key = ls_tadir.
MESSAGE w666(01) WITH 'Please execute this report again when' ls_tadir-o
bject ls_tadir-obj_name 'has been created.' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
gv_progname_rept = i_progname.
RETURN.
ELSEIF sy-subrc NE 0.
MESSAGE e666(01) WITH 'Error while reading program text' 'of program' i_pr
ogname INTO sy-lisel. "#EC *
CALL METHOD log_message.
RETURN.
ENDIF.
l_text = i_text.
IF i_id EQ 'S' AND i_text(8) NE space AND i_text NE c_ddic_ref.
"if selection text does note begin with 8 space -> insert them
SHIFT l_text LEFT DELETING LEADING space.
SHIFT l_text RIGHT BY 8 PLACES.
ENDIF.
READ TABLE lt_textpool ASSIGNING <ls_textpool>
WITH KEY id = i_id
key = i_key.
IF sy-subrc EQ 0. "already exists
IF l_text EQ <ls_textpool>-entry AND
i_length EQ <ls_textpool>-length.
MESSAGE i666(01) WITH 'No update necessary for program text' i_key INTO
sy-lisel. "#EC *
CALL METHOD log_message.
RETURN. "nothing to do
ELSE.
"update existing entry
<ls_textpool>-entry = l_text.
sy-fleng = strlen( l_text ).
IF i_length IS INITIAL OR i_length LT sy-fleng.
<ls_textpool>-length = strlen( l_text ).
ELSE.
<ls_textpool>-length = i_length.
ENDIF.
ENDIF.
ELSE.
"add new entry
* APPEND INITIAL LINE TO lt_textpool ASSIGNING <ls_textpool>.
APPEND INITIAL LINE TO lt_textpool. READ TABLE lt_textpool INDEX sy-tabix
ASSIGNING <ls_textpool>. "46C
<ls_textpool>-id = i_id.
<ls_textpool>-key = i_key.
<ls_textpool>-entry = l_text.
IF i_length IS INITIAL.
<ls_textpool>-length = strlen( l_text ).
ELSE.
<ls_textpool>-length = i_length.
ENDIF.
ENDIF.
CALL METHOD add_to_transport
EXPORTING
i_devclass = i_devclass
i_langu = i_langu
i_object = 'REPT'
i_obj_name = i_progname
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc EQ 0 OR i_progname EQ myrepid.
CALL FUNCTION 'RPY_TEXTELEMENTS_INSERT' "other funcs in version 00047
EXPORTING
development_class = i_devclass
language = i_langu
program_name = i_progname
temporary = 'X' "transport check was already done
transport_number = space
r2_flag = space
TABLES
source = lt_textpool
EXCEPTIONS
cancelled = 1
permission_error = 2
program_not_exists = 3
OTHERS = 4.
IF sy-subrc EQ 0.
MESSAGE i666(01) WITH 'Update successful for program text' i_key INTO sy-l
isel. "#EC *
ELSE.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 s
y-msgv3 sy-msgv4 INTO sy-lisel. "#EC *
CALL METHOD log_message.
MESSAGE e666(01) WITH 'Update failed for program text' i_key INTO sy-lisel
. "#EC *
ENDIF.
CALL METHOD log_message.
ENDMETHOD. "create_program_text

METHOD log_message.
DATA: ls_msg TYPE bal_s_msg,
ls_key TYPE adir_key.
IF sy-msgno IS INITIAL OR sy-msgid IS INITIAL.
MESSAGE e666(01) WITH 'unknown error' INTO sy-lisel. "#EC *
ENDIF.
IF i_probclass IS INITIAL.
CASE sy-msgty. "change problem class (default is 4)
WHEN 'E' OR 'A'.
ls_msg-probclass = '2'.
WHEN 'W'.
ls_msg-probclass = '3'.
ENDCASE.
ENDIF.
MOVE-CORRESPONDING syst TO ls_msg.
IF i_object IS NOT INITIAL.
ls_key-object = i_object.
ls_key-obj_name = i_obj_name.
ls_msg-context-value = ls_key.
ls_msg-context-tabname = c_bal_context.
ENDIF.
CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
i_log_handle = gv_log_handle
i_s_msg = ls_msg
EXCEPTIONS
OTHERS = 0.
IF ls_msg-msgty CA 'EA'.
gv_errors_occured = 'X'.
ENDIF.
ENDMETHOD. "log_message
METHOD display_log.
DATA: lt_log_handle TYPE bal_t_logh,
ls_profile TYPE bal_s_prof,
l_s_fcat TYPE bal_s_fcat,
lt_dfies TYPE TABLE OF dfies,
ls_dfies TYPE dfies.
DATA: lr_filter_client TYPE RANGE OF mandt,
ls_filter_client LIKE LINE OF lr_filter_client,
ls_filter TYPE bal_s_lfil,
lr_filter TYPE bal_s_extn, "range table
lr_extnumber TYPE bal_s_extn,
lt_log_header TYPE balhdr_t.
"Reset SNOTE & SCWB mode
CALL FUNCTION 'SCWG_TOOLFLAG_RESET'.
TRY. CALL METHOD ('CL_CWB_RUNTIME')=>set_finished. CATCH cx_sy_dyn_call_ille
gal_class. ENDTRY. ">=SAPBASIS640
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'.
"if we come here the action (copy/read/generate/compare) has finshed without
dumps hence we reset the trace
"-------- build profile
IF 1 = 1.
"grid
CALL FUNCTION 'BAL_DSP_PROFILE_STANDARD_GET'
IMPORTING
e_s_display_profile = ls_profile
EXCEPTIONS
OTHERS = 0.
"Set profile
ls_profile-use_grid = 'X'.
ls_profile-tree_ontop = 'X'.
ls_profile-mess_mark = 'X'.
ls_profile-exp_level = 1.
ls_profile-show_all = 'X'.
ELSE.
"tree
CALL FUNCTION 'BAL_DSP_PROFILE_DETLEVEL_GET'
IMPORTING
e_s_display_profile = ls_profile
EXCEPTIONS
OTHERS = 0.
ENDIF.
"add own fields to field cat
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = c_bal_context
TABLES
dfies_tab = lt_dfies
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc NE 0.
MESSAGE a666(01) WITH 'Error in DDIF_FIELDINFO_GET for table:' c_bal_conte
xt. "#EC *
ENDIF.
LOOP AT lt_dfies INTO ls_dfies WHERE fieldname EQ 'OBJECT'
OR fieldname EQ 'OBJ_NAME'.
l_s_fcat-ref_table = c_bal_context.
l_s_fcat-ref_field = ls_dfies-fieldname.
l_s_fcat-outputlen = ls_dfies-outputlen + 1.
* l_s_fcat-col_pos = 100 + sy-tabix. "most rigth columns
APPEND l_s_fcat TO ls_profile-mess_fcat.
ENDLOOP.

"set parameters for saving layout.


ls_profile-disvariant-report = sy-repid.
ls_profile-disvariant-handle = 'LOG'.
ls_profile-clbk_ucbf-userexitp = sy-repid.
ls_profile-clbk_ucbf-userexitf = 'BAL_CALLBACK_UCOMM'.
* ls_profile-clbk_ucom-userexitp = sy-repid.
* ls_profile-clbk_ucom-userexitf = 'BAL_CALLBACK_UCOMM'.
* ls_profile-ext_push1-active = 'X'.
* ls_profile-ext_push1-def-text = 'DDIC'.
* ls_profile-ext_push1-def-icon_id = icon_history.
* ls_profile-ext_push1-def-icon_text = 'DDIC'.
* ls_profile-ext_push1-def-quickinfo = 'DDIC Activation log'.
IF NOT testrun IS INITIAL.
ls_profile-title = 'Simulation log'. "#EC *
ELSEIF NOT update IS INITIAL.
ls_profile-title = 'Change Log'. "#EC *
ELSEIF NOT genview IS INITIAL.
ls_profile-title = 'View Generation Log'. "#EC *
ELSEIF gv_log_handle IS INITIAL.
ls_profile-title = 'All Logs'. "#EC *
CLEAR ls_profile-exp_level.
CLEAR ls_profile-show_all.
ls_profile-tree_ontop = 'X'.
ELSE.
ls_profile-title = 'Problem Log'. "#EC *
ls_profile-start_row = 5.
ls_profile-start_col = 5.
ls_profile-end_row = 30.
ls_profile-end_col = 160.
* ls_profile-TREE_ONTOP = space.
ENDIF.
IF sy-repid EQ myrepid.
CONCATENATE 'UDO -' ls_profile-title INTO ls_profile-title SEPARATED
BY space. "#EC *
ELSE.
CONCATENATE sy-repid '-' ls_profile-title INTO ls_profile-title SEPARATED
BY space. "#EC *
ENDIF.

"-------- find relevant logs


IF gv_log_handle IS INITIAL.
CHECK NOT i_db_search IS INITIAL.
CLEAR: ls_filter, lr_extnumber.
*- Search only log file of this application
lr_filter-sign = 'I'.
lr_filter-option = 'EQ'.
lr_filter-low = c_bal_object.
APPEND lr_filter TO ls_filter-object.
lr_filter-sign = 'I'.
lr_filter-option = 'EQ'.
lr_filter-low = c_bal_subobj.
APPEND lr_filter TO ls_filter-subobject.

IF sy-repid EQ myrepid.
"--------- Search only log files of UDO itself
CALL FUNCTION 'APPL_LOG_DISPLAY'
EXPORTING
object = c_bal_object
object_attribute = 0
subobject = c_bal_subobj
subobject_attribute = 0
external_number = ' '
external_number_attribute = 0
title_list_screen = ' '
title_selection_screen = ' '
date_from = sy-datum "#EC DOM_EQUAL
date_to = sy-datum "#EC DOM_EQUAL
time_to = '235959' "#EC DOM_EQUAL
external_number_display_length = 20
i_s_display_profile = ls_profile
i_variant_report = sy-repid
EXCEPTIONS
no_authority = 0.
RETURN.
ENDIF.
"--------- Search for log files of generated reports (also valid for copy)
lr_extnumber-low = sy-repid.
lr_extnumber-sign = 'I'.
lr_extnumber-option = 'EQ'.
APPEND lr_extnumber TO ls_filter-extnumber.
ls_filter_client-sign = 'I'.
ls_filter_client-option = 'EQ'.
ls_filter_client-low = sy-mandt.
APPEND ls_filter_client TO lr_filter_client.

* CALL FUNCTION 'BAL_DB_SEARCH' "only searches current client


* EXPORTING
* i_client = sy-mandt
* i_s_log_filter = ls_filter
* IMPORTING
* e_t_log_header = lt_log_header
* EXCEPTIONS
* log_not_found = 1
* no_filter_criteria = 2
* OTHERS = 3.
SELECT * FROM balhdr CLIENT SPECIFIED "#EC CI_CLIENT "option for all cl
ients
INTO TABLE lt_log_header
WHERE mandant IN lr_filter_client "#EC CI_BUFFSUBQ
AND object IN ls_filter-object
AND subobject IN ls_filter-subobject
AND extnumber IN ls_filter-extnumber.
IF sy-subrc EQ 0.
"Load log files from database into memory
CALL FUNCTION 'BAL_DB_LOAD'
EXPORTING
i_t_log_header = lt_log_header
IMPORTING
e_t_log_handle = lt_log_handle
EXCEPTIONS
OTHERS = 0.
ENDIF.
ELSE.
APPEND gv_log_handle TO lt_log_handle.
ENDIF.

"-------- display the logs


DATA: ls_statistics TYPE bal_s_scnt.
IF i_no_save IS INITIAL.
CALL METHOD lcl_wb=>save_log.
ls_statistics-msg_cnt_al = 1.
ELSE.
CALL FUNCTION 'BAL_LOG_HDR_READ'
EXPORTING
i_log_handle = gv_log_handle
IMPORTING
e_statistics = ls_statistics
EXCEPTIONS
OTHERS = 0.
ENDIF.
IF ls_statistics-msg_cnt_al NE 0 AND gv_unit_test IS INITIAL AND sy-batch IS
INITIAL.
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
EXPORTING
i_t_log_handle = lt_log_handle
i_s_display_profile = ls_profile
i_amodal = space
EXCEPTIONS
OTHERS = 0.
ENDIF.
IF NOT i_no_save IS INITIAL.
CALL FUNCTION 'BAL_LOG_REFRESH'
EXPORTING
i_log_handle = gv_log_handle
EXCEPTIONS
OTHERS = 0.
"reset context
CALL METHOD set_context( EXPORTING i_langu = space i_object = space i_obj_
name = space ).
ENDIF.
CLEAR gv_log_handle.
ENDMETHOD. "display_log
METHOD save_log.
DATA: lt_log_handle TYPE bal_t_logh.
APPEND gv_log_handle TO lt_log_handle.
CALL FUNCTION 'BAL_DB_SAVE'
EXPORTING
i_t_log_handle = lt_log_handle
EXCEPTIONS
OTHERS = 0.
ENDMETHOD. "save_log
METHOD set_context.
STATICS: BEGIN OF lss_key, "save last key
i_object TYPE e071-object,
i_obj_name TYPE adir_key-obj_name,
i_obj_name2 TYPE adir_key-obj_name,
i_text TYPE string,
i_langu TYPE sylangu,
END OF lss_key.
DATA: ls_msg_defaults TYPE bal_s_mdef,
ls_context TYPE adir_key,
l_text(70),
l_mode TYPE string,
ls_key LIKE lss_key.
DATA: ls_e071 TYPE e071,
ls_tadir TYPE tadir,
ls_tadir_key TYPE tadir.
CHECK NOT lcl_wb=>language_installed( i_langu ) IS INITIAL.
IF sy-repid NE myrepid.
CONCATENATE i_object i_obj_name INTO l_text SEPARATED BY space.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = l_text.
ENDIF.
"trace current object to be able to know what was processed in case a dump o
ccurs
CONCATENATE space i_object i_obj_name INTO l_text SEPARATED BY '|'. "fromsy
s not possible
ls_key-i_object = i_object.
ls_key-i_obj_name = i_obj_name.
ls_key-i_obj_name2 = i_obj_name2.
ls_key-i_text = i_text.
ls_key-i_langu = i_langu.
IF ls_key EQ lss_key. "check last key
"avoid double message like "add field to table"
RETURN.
ELSE.
lss_key = ls_key.
ENDIF.
ls_context-object = i_object.
CONCATENATE i_obj_name i_obj_name2 INTO ls_context-obj_name SEPARATED BY spa
ce.
ls_msg_defaults-log_handle = gv_log_handle.
ls_msg_defaults-context-value = ls_context.
ls_msg_defaults-context-tabname = c_bal_context.
CALL FUNCTION 'BAL_GLB_MSG_DEFAULTS_SET'
EXPORTING
i_s_msg_defaults = ls_msg_defaults
EXCEPTIONS
OTHERS = 0.
IF NOT i_no_message IS INITIAL.
RETURN.
ENDIF.
"try to check if object exists
IF NOT i_object IS INITIAL AND NOT i_obj_name IS INITIAL.
ls_e071-pgmid = 'R3TR'.
ls_e071-object = i_object.
ls_e071-obj_name = i_obj_name.
CALL FUNCTION 'SCWB_GET_TADIR_REM'
EXPORTING
is_e071 = ls_e071
IMPORTING
es_tadir_key = ls_tadir_key
es_tadir = ls_tadir.
IF ls_tadir_key IS INITIAL.
ls_e071-pgmid = 'LIMU'.
CALL FUNCTION 'SCWB_GET_TADIR_REM'
EXPORTING
is_e071 = ls_e071
IMPORTING
es_tadir_key = ls_tadir_key
es_tadir = ls_tadir.
ENDIF.
IF ls_tadir IS INITIAL.
l_mode = 'Create'. "#EC NOTEXT
ELSE.
l_mode = 'Change'. "#EC NOTEXT
"check if object has been manually modified by customer.
SELECT COUNT( * ) FROM adiraccess WHERE pgmid EQ ls_tadir-pgmid
AND object EQ ls_tadir-object
AND obj_name EQ ls_tadir-obj_name.
IF sy-dbcnt NE 0.
MESSAGE w666(01) WITH ls_tadir-object ls_tadir-obj_name 'was manually
changed before.' 'Please adjust manually afterwards' INTO sy-lisel. "#EC *
CALL METHOD log_message.
ENDIF.
ENDIF.
ENDIF.
IF i_text IS INITIAL.
CALL METHOD get_object_text
EXPORTING
i_object = i_object
i_obj_name = i_obj_name
RECEIVING
r_text = l_text.
CONCATENATE l_mode l_text INTO l_text SEPARATED BY space.
ELSE.
l_text = i_text.
ENDIF.
IF NOT l_text IS INITIAL.
IF NOT i_langu IS INITIAL.
MESSAGE s666(01) WITH l_text '( language' i_langu ')' INTO l_text. "#EC
NOTEXT
ENDIF.
CALL FUNCTION 'BAL_LOG_MSG_ADD_FREE_TEXT'
EXPORTING
i_msgty = i_msgty
i_text = l_text
i_probclass = '3'
EXCEPTIONS
OTHERS = 0.
ENDIF.
ENDMETHOD. "set_context

ENDCLASS. "lcl_wb IMPLEMENTATION


*&---------------------------------------------------------------------*
*& Form main
*&---------------------------------------------------------------------*
FORM main.
TRANSLATE c_ddic_ref USING '_ '. "initialization
DO. "1900
CALL SELECTION-SCREEN selection_screen_1900. "1900
IF sy-subrc NE 0. "1900
EXIT. "DO "1900
ENDIF. "1900
IF showlogs IS INITIAL.
CLEAR: gt_trkorr, gv_trkorr. "Transport popup shall come once
IF lcl_wb=>init( i_note = '' ) IS INITIAL. "<note which indicates that rep
ort is not needed anymore>
IF NOT update IS INITIAL OR NOT testrun IS INITIAL.
PERFORM update.
CALL METHOD lcl_wb=>activate.
ENDIF.
IF NOT genview IS INITIAL OR NOT testrun IS INITIAL.
PERFORM genview.
ENDIF.
ENDIF.
ENDIF.
CALL METHOD lcl_wb=>display_log "one or all logs
EXPORTING
i_db_search = showlogs.
ENDDO. "1900
ENDFORM. "main
FORM update_01. " DOMD J_1BECD_COD_NAT ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_COD_NAT'
i_devclass = 'J1BA'
i_datatype = 'NUMC'
i_langu = 'E'
i_ddtext = 'Account Purpose Code'
i_leng = '000002':
i_domvalue = '01'
i_valpos = '0001'
i_valtext = 'Asset Account',
"#EC NOTEXT
i_domvalue = '02'
i_valpos = '0002'
i_valtext = 'Liabilities Account',
"#EC NOTEXT
i_domvalue = '03'
i_valpos = '0003'
i_valtext = 'Net Worth',
"#EC NOTEXT
i_domvalue = '04'
i_valpos = '0004'
i_valtext = 'Result Account',
"#EC NOTEXT
i_domvalue = '05'
i_valpos = '0005'
i_valtext = 'Compensation Account',
"#EC NOTEXT
i_domvalue = '09'
i_valpos = '0006'
i_valtext = 'Others'
"#EC NOTEXT
.
ENDFORM.
FORM update_02. " DOMD J_1BECD_COD_PAIS ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_COD_PAIS'
i_devclass = 'J1BA'
i_datatype = 'NUMC'
i_langu = 'E'
i_ddtext = 'Country Code'
i_leng = '000005':
.
ENDFORM.
FORM update_03. " DOMD J_1BECD_COD_VER ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_COD_VER'
i_devclass = 'J1BA'
i_datatype = 'CHAR'
i_langu = 'E'
i_ddtext = 'Layout Version Code'
i_leng = '000003':
i_domvalue = '005'
i_valpos = '0005'
i_valtext = '5.00'
"#EC NOTEXT
.
ENDFORM.
FORM update_04. " DOMD J_1BECD_COND_PART ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_COND_PART'
i_devclass = 'J1BA'
i_datatype = 'NUMC'
i_langu = 'E'
i_ddtext = 'Company Condition'
i_leng = '000001':
i_domvalue = '1'
i_valpos = '0001'
i_valtext = 'Successor',
"#EC NOTEXT
i_domvalue = '2'
i_valpos = '0002'
i_valtext = 'Acquirer',
"#EC NOTEXT
i_domvalue = '3'
i_valpos = '0003'
i_valtext = 'Acquirer'
"#EC NOTEXT
.
ENDFORM.
FORM update_05. " DOMD J_1BECD_DESC_RTF ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_DESC_RTF'
i_devclass = 'J1BA'
i_datatype = 'CHAR'
i_lowercase = 'X'
i_langu = 'E'
i_ddtext = 'RTF File Description'
i_leng = '000255':
.
ENDFORM.
FORM update_06. " DOMD J_1BECD_EVENTO_TIPO ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_EVENTO_TIPO'
i_devclass = 'J1BA'
i_datatype = 'NUMC'
i_langu = 'E'
i_ddtext = 'Type of corporate event occurred in the period'
i_leng = '000001':
i_domvalue = '1'
i_valpos = '0001'
i_valtext = 'Aquisition',
"#EC NOTEXT
i_domvalue = '2'
i_valpos = '0002'
i_valtext = 'Alienation',
"#EC NOTEXT
i_domvalue = '3'
i_valpos = '0003'
i_valtext = 'Merging',
"#EC NOTEXT
i_domvalue = '4'
i_valpos = '0004'
i_valtext = 'Split',
"#EC NOTEXT
i_domvalue = '5'
i_valpos = '0005'
i_valtext = 'Total Split',
"#EC NOTEXT
i_domvalue = '6'
i_valpos = '0006'
i_valtext = 'Incorporation',
"#EC NOTEXT
i_domvalue = '7'
i_valpos = '0007'
i_valtext = 'Extinction',
"#EC NOTEXT
i_domvalue = '8'
i_valpos = '0008'
i_valtext = 'Formation'
"#EC NOTEXT
.
ENDFORM.
FORM update_07. " DOMD J_1BECD_HASH_RTF ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_HASH_RTF'
i_devclass = 'J1BA'
i_datatype = 'CHAR'
i_langu = 'E'
i_ddtext = 'RTF File Hash'
i_leng = '000041':
.
ENDFORM.
FORM update_08. " DOMD J_1BECD_IND_FIN_ESC ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_IND_FIN_ESC'
i_devclass = 'J1BA'
i_datatype = 'CHAR'
i_langu = 'E'
i_ddtext = 'SPED ECD: Indication of bookkeeping purpose'
i_leng = '000001':
i_domvalue = '1'
i_valpos = '0002'
i_valtext = 'Substitute or Substitute with NIRE before layout 5'
"#EC NOTEXT
.
ENDFORM.
FORM update_09. " DOMD J_1BECD_REGISTER ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_REGISTER'
i_devclass = 'J1BA'
i_datatype = 'CHAR'
i_langu = 'E'
i_ddtext = 'ECD Register Number'
i_leng = '000004':
i_domvalue = 'I200'
i_valpos = '0025'
i_valtext = 'Register I200: Accounting Postings',
"#EC NOTEXT
i_domvalue = 'I250'
i_valpos = '0026'
i_valtext = 'Register I250: Posting Entries',
"#EC NOTEXT
i_domvalue = 'I300'
i_valpos = '0027'
i_valtext = 'Register I300: Daily Trial Balances # Date Identification'
, "#EC NOTEXT
i_domvalue = 'I310'
i_valpos = '0028'
i_valtext = 'Register I310: Details of Daily Trial Balances',
"#EC NOTEXT
i_domvalue = 'I350'
i_valpos = '0029'
i_valtext = 'Register I350: Balance of Profit & Loss Account before Clo
s', "#EC NOTEXT
i_domvalue = 'I355'
i_valpos = '0030'
i_valtext = 'Register I355: Details of Account''s Balances before Closi
ng', "#EC NOTEXT
i_domvalue = 'I500'
i_valpos = '0031'
i_valtext = 'Register I500: Parameter to Print and Displ. the Aux. Ledg
er', "#EC NOTEXT
i_domvalue = 'I510'
i_valpos = '0032'
i_valtext = 'Register I510: Definition of Fields for Auxiliary Ledger',
"#EC NOTEXT
i_domvalue = 'I550'
i_valpos = '0033'
i_valtext = 'Register I550: Details of Auxiliary Ledger with Flex. Layo
ut', "#EC NOTEXT
i_domvalue = 'I555'
i_valpos = '0034'
i_valtext = 'Register I555: Totals in Auxiliary Ledger Book',
"#EC NOTEXT
i_domvalue = 'I990'
i_valpos = '0035'
i_valtext = 'Register I990: Block I Closure',
"#EC NOTEXT
i_domvalue = 'J001'
i_valpos = '0036'
i_valtext = 'Register J001: Block J Opening',
"#EC NOTEXT
i_domvalue = 'J005'
i_valpos = '0037'
i_valtext = 'Register J005: Accounting Statement',
"#EC NOTEXT
i_domvalue = 'J100'
i_valpos = '0038'
i_valtext = 'Register J100: Balance Sheet',
"#EC NOTEXT
i_domvalue = 'J150'
i_valpos = '0039'
i_valtext = 'Register J150: Profit & Loss Statement',
"#EC NOTEXT
i_domvalue = 'J200'
i_valpos = '0040'
i_valtext = 'Register J200: History: Retained Earnings/Losses or Equity
', "#EC NOTEXT
i_domvalue = 'J210'
i_valpos = '0041'
i_valtext = 'Register J210: Profit and Loss: Stockholders/Equity',
"#EC NOTEXT
i_domvalue = 'J215'
i_valpos = '0042'
i_valtext = 'Register J215: Retained Earnings or Losses or Equity acc.'
, "#EC NOTEXT
i_domvalue = 'J310'
i_valpos = '0043'
i_valtext = 'Register J310: Cash Flow Statement',
"#EC NOTEXT
i_domvalue = 'J410'
i_valpos = '0044'
i_valtext = 'Register J410: Value Added Statement',
"#EC NOTEXT
i_domvalue = 'J800'
i_valpos = '0045'
i_valtext = 'Register J800: Other Information',
"#EC NOTEXT
i_domvalue = 'J801'
i_valpos = '0046'
i_valtext = 'Register J801: ECD Substitution Report',
"#EC NOTEXT
i_domvalue = 'J900'
i_valpos = '0047'
i_valtext = 'Register J900: Closure Statement',
"#EC NOTEXT
i_domvalue = 'J930'
i_valpos = '0048'
i_valtext = 'Register J930: Identification of Bookkeeping Signatory',
"#EC NOTEXT
i_domvalue = 'J935'
i_valpos = '0049'
i_valtext = 'Register J935: Identification of Independent Auditors',
"#EC NOTEXT
i_domvalue = 'J990'
i_valpos = '0050'
i_valtext = 'Register J990: Block J Closure',
"#EC NOTEXT
i_domvalue = 'K001'
i_valpos = '0051'
i_valtext = 'Register K001 - Block K opening',
"#EC NOTEXT
i_domvalue = 'K030'
i_valpos = '0052'
i_valtext = 'Register K030: Consolidated Accounting Bookkeeping Period'
, "#EC NOTEXT
i_domvalue = 'K100'
i_valpos = '0053'
i_valtext = 'Register K100: Company Consolidation Relation',
"#EC NOTEXT
i_domvalue = 'K110'
i_valpos = '0054'
i_valtext = 'Register K110: Corporate Events Relationship',
"#EC NOTEXT
i_domvalue = 'K115'
i_valpos = '0055'
i_valtext = 'Register K115: Companies Attending on Corporate Event',
"#EC NOTEXT
i_domvalue = 'K200'
i_valpos = '0056'
i_valtext = 'Register K200: Consolidated Chart of Accounts',
"#EC NOTEXT
i_domvalue = 'K210'
i_valpos = '0057'
i_valtext = 'Register K210: Mapping of Chart of Accounts from Companies
', "#EC NOTEXT
i_domvalue = 'K300'
i_valpos = '0058'
i_valtext = 'Register K300: Consolidate Account Balance',
"#EC NOTEXT
i_domvalue = 'K310'
i_valpos = '0059'
i_valtext = 'Register K310: Companies Holders from Total Eliminated Val
ue', "#EC NOTEXT
i_domvalue = 'K315'
i_valpos = '0060'
i_valtext = 'Register K315: Counterpart Comp. from eliminated total val
ue', "#EC NOTEXT
i_domvalue = 'K990'
i_valpos = '0061'
i_valtext = 'Register K990: Block K Closure',
"#EC NOTEXT
i_domvalue = '9001'
i_valpos = '0062'
i_valtext = 'Register 9001: Block 9 Opening',
"#EC NOTEXT
i_domvalue = '9900'
i_valpos = '0063'
i_valtext = 'Register 9900: File Registers',
"#EC NOTEXT
i_domvalue = '9990'
i_valpos = '0064'
i_valtext = 'Register 9990: Block 9 Closing',
"#EC NOTEXT
i_domvalue = '9999'
i_valpos = '0065'
i_valtext = 'Register 9999: Digital File Closing',
"#EC NOTEXT
i_domvalue = ''
i_valpos = '0066'
i_valtext = ''
"#EC NOTEXT
.
ENDFORM.
FORM update_10. " DOMD J_1BECD_TIPO_DOC ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_TIPO_DOC'
i_devclass = 'J1BA'
i_datatype = 'NUMC'
i_langu = 'E'
i_ddtext = 'Other Informations: Document Type'
i_leng = '000003':
i_domvalue = '001'
i_valpos = '0001'
i_valtext = 'Period Demonstration of the Whole Result',
"#EC NOTEXT
i_domvalue = '002'
i_valpos = '0002'
i_valtext = 'Cash Flows Demonstration',
"#EC NOTEXT
i_domvalue = '003'
i_valpos = '0003'
i_valtext = 'Added Value Demonstration',
"#EC NOTEXT
i_domvalue = '010'
i_valpos = '0004'
i_valtext = 'Explanatory Notes',
"#EC NOTEXT
i_domvalue = '011'
i_valpos = '0005'
i_valtext = 'Management report',
"#EC NOTEXT
i_domvalue = '012'
i_valpos = '0006'
i_valtext = 'Opinion of the Auditors',
"#EC NOTEXT
i_domvalue = '099'
i_valpos = '0007'
i_valtext = 'Others'
"#EC NOTEXT
.
ENDFORM.
FORM update_11. " DOMD J_1BECD_TIPO_DOC_SUBSTITUTION ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1BECD_TIPO_DOC_SUBSTITUTION'
i_devclass = 'J1BA'
i_datatype = 'NUMC'
i_langu = 'E'
i_ddtext = 'Other Informations: Document Type for Substitution'
i_leng = '000003':
i_domvalue = '001'
i_valpos = '0001'
i_valtext = 'ECD Substitution Report'
"#EC NOTEXT
.
ENDFORM.
FORM update_12. " DOMD J_1B_SN_YES_NO ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_doma "#EC *
EXPORTING
i_domname = 'J_1B_SN_YES_NO'
i_devclass = 'J1BA'
i_datatype = 'CHAR'
i_langu = 'E'
i_ddtext = 'Yes or No values'
i_leng = '000001':
i_domvalue = 'S'
i_valpos = '0001'
i_valtext = 'Yes',
"#EC NOTEXT
i_domvalue = 'N'
i_valpos = '0002'
i_valtext = 'No'
"#EC NOTEXT
.
ENDFORM.
FORM update_13. " DTED J_1BECD_COD_CONTRA ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_COD_CONTRA'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'CHAR'
i_decimals = '000000'
i_leng = '000255'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Consolidated Account Code from Counterpart'
i_reptext = 'Consolidated Account Code from Counterpart'
i_scrtext_s = 'ConsAccoun'
i_scrtext_m = 'Consolidated AccCode'
i_scrtext_l = 'Counterpart Consolidated Account Code'.
ENDFORM.
FORM update_14. " DTED J_1BECD_COD_NAT ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_COD_NAT'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_COD_NAT'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Account Purpose Code'
i_reptext = 'Account Purpose Code'
i_scrtext_s = 'AccPurpCod'
i_scrtext_m = 'Account Purpose Code'
i_scrtext_l = 'Account Purpose Code'.
ENDFORM.
FORM update_15. " DTED J_1BECD_COD_PAIS ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_COD_PAIS'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_COD_PAIS'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Country Code'
i_reptext = 'Country Code'
i_scrtext_s = 'CountryCod'
i_scrtext_m = 'Country Code'
i_scrtext_l = 'Country Code'.
ENDFORM.
FORM update_16. " DTED J_1BECD_COND_PART ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_COND_PART'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_COND_PART'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Company Condition'
i_reptext = 'Company Condition'
i_scrtext_s = 'CompCondit'
i_scrtext_m = 'Company Condition'
i_scrtext_l = 'Company Condition'.
ENDFORM.
FORM update_17. " DTED J_1BECD_DATA_FIN_EMP ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_DATA_FIN_EMP'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DATS'
i_decimals = '000000'
i_leng = '000008'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Consolidation Finish Date'
i_reptext = 'Consolidation Finish Date'
i_scrtext_s = 'ConsFiniDt'
i_scrtext_m = 'Consolidation Fin Dt'
i_scrtext_l = 'Consolidation Finish Date'.
ENDFORM.
FORM update_18. " DTED J_1BECD_DATA_INI_EMP ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_DATA_INI_EMP'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DATS'
i_decimals = '000000'
i_leng = '000008'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Consolidation Initial Date'
i_reptext = 'Consolidation Initial Date'
i_scrtext_s = 'ConsInitDt'
i_scrtext_m = 'Consolidation Ini Dt'
i_scrtext_l = 'Consolidation Initial Date'.
ENDFORM.
FORM update_19. " DTED J_1BECD_DESC_RTF ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_DESC_RTF'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_DESC_RTF'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'RTF File Description'
i_reptext = 'RTF File Description'
i_scrtext_s = 'RTF Descr.'
i_scrtext_m = 'RTF File Description'
i_scrtext_l = 'RTF File Description'.
ENDFORM.
FORM update_20. " DTED J_1BECD_DT_EVENTO ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_DT_EVENTO'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DATS'
i_decimals = '000000'
i_leng = '000008'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Event Date'
i_reptext = 'Event Date'
i_scrtext_s = 'Event Date'
i_scrtext_m = 'Event Date'
i_scrtext_l = 'Event Date'.
ENDFORM.
FORM update_21. " DTED J_1BECD_EVENTO ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_EVENTO'
i_devclass = 'J1BA'
i_domname = 'J_1B_SN_YES_NO'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Corporate Event Ocurred'
i_reptext = 'Corporate Event Ocurred'
i_scrtext_s = 'Corp.Event'
i_scrtext_m = 'Corporate Event Ocur'
i_scrtext_l = 'Corporate Event Ocurred'.
ENDFORM.
FORM update_22. " DTED J_1BECD_EVENTO_TIPO ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_EVENTO_TIPO'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_EVENTO_TIPO'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Type of corporate event occurred in the period'
i_reptext = 'Type of corporate event occurred in the period'
i_scrtext_s = 'Event Type'
i_scrtext_m = 'Type of Event'
i_scrtext_l = 'Type of Corporate Event'.
ENDFORM.
FORM update_23. " DTED J_1BECD_HASH_RTF ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_HASH_RTF'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_HASH_RTF'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'RTF File Hash'
i_reptext = 'RTF File Hash'
i_scrtext_s = 'RTF Hash'
i_scrtext_m = 'RTF File Hash'
i_scrtext_l = 'RTF File Hash'.
ENDFORM.
FORM update_24. " DTED J_1BECD_IND_ESC_CONS ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_IND_ESC_CONS'
i_devclass = 'J1BA'
i_domname = 'J_1B_SN_YES_NO'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Consolidated accounting bookeeping'
i_reptext = 'Consolidated Bookkeeping'
i_scrtext_s = 'ConsBookep'
i_scrtext_m = 'Consolidated Bookke.'
i_scrtext_l = 'Consolidated Bookkeeping'.
ENDFORM.
FORM update_25. " DTED J_1BECD_IND_RESP_LEGAL ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_IND_RESP_LEGAL'
i_devclass = 'J1BA'
i_domname = 'J_1B_SN_YES_NO'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Check that the signatory will be validated in RFB'
i_reptext = 'Check that the signatory will be validated in RFB'
i_scrtext_s = 'RFB Valid'
i_scrtext_m = 'RFB Valid Signatory'
i_scrtext_l = 'RFB Validated Signatory'.
ENDFORM.
FORM update_26. " DTED J_1BECD_IND_VAL_AG ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_IND_VAL_AG'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_IND_BAL'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Agglutinated Value Indicator'
i_reptext = 'Agglutinated Value Indicator'
i_scrtext_s = 'AgglValInd'
i_scrtext_m = 'Agglutin. Value Ind.'
i_scrtext_l = 'Agglutinated Value Indicator'.
ENDFORM.
FORM update_27. " DTED J_1BECD_IND_VAL_CS ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_IND_VAL_CS'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_IND_BAL'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Consolidated Value Indicator'
i_reptext = 'Consolidated Value Indicator'
i_scrtext_s = 'ConsValInd'
i_scrtext_m = 'Consolid. Value Ind.'
i_scrtext_l = 'Consolidated Value Indicator'.
ENDFORM.
FORM update_28. " DTED J_1BECD_IND_VAL_EL ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_IND_VAL_EL'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_IND_BAL'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Eliminated Value Indicator'
i_reptext = 'Eliminated Value Indicator'
i_scrtext_s = 'ElimValInd'
i_scrtext_m = 'Eliminated Value Ind'
i_scrtext_l = 'Eliminated Value Indicator'.
ENDFORM.
FORM update_29. " DTED J_1BECD_NIVEL ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_NIVEL'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'NUMC'
i_decimals = '000000'
i_leng = '000010'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Account Level'
i_reptext = 'Account Level'
i_scrtext_s = 'Acc.Level'
i_scrtext_m = 'Account Level'
i_scrtext_l = 'Account Level'.
ENDFORM.
FORM update_30. " DTED J_1BECD_NOME ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_NOME'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'CHAR'
i_decimals = '000000'
i_leng = '000150'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Company Name'
i_reptext = 'Company Name'
i_scrtext_s = 'Compa.Name'
i_scrtext_m = 'Company Name'
i_scrtext_l = 'Company Name'.
ENDFORM.
FORM update_31. " DTED J_1BECD_PER_CONS ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_PER_CONS'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DEC'
i_decimals = '000004'
i_leng = '000008'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Consolidation Percentual'
i_reptext = 'Consolidation Percentual'
i_scrtext_s = 'ConsoliPer'
i_scrtext_m = 'Consolidation Perc.'
i_scrtext_l = 'Consolidation Percentual'.
ENDFORM.
FORM update_32. " DTED J_1BECD_PER_EVT ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_PER_EVT'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DEC'
i_decimals = '000004'
i_leng = '000008'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Event Percentual'
i_reptext = 'Event Percentual'
i_scrtext_s = 'Event Perc'
i_scrtext_m = 'Event Percentual'
i_scrtext_l = 'Event Percentual'.
ENDFORM.
FORM update_33. " DTED J_1BECD_PER_PART ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_PER_PART'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DEC'
i_decimals = '000004'
i_leng = '000008'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Participation Percentual'
i_reptext = 'Participation Percentual'
i_scrtext_s = 'PartPercen'
i_scrtext_m = 'ParticipationPercent'
i_scrtext_l = 'Participation Percentual'.
ENDFORM.
FORM update_34. " DTED J_1BECD_TIPO_DOC ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_TIPO_DOC'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_TIPO_DOC'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Other Informations: Document Type'
i_reptext = 'Other Informations: Document Type'
i_scrtext_s = 'DocumentTp'
i_scrtext_m = 'Document Type'
i_scrtext_l = 'Other Informations: Document Type'.
ENDFORM.
FORM update_35. " DTED J_1BECD_TIPO_DOC_SUBSTITUTION ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_TIPO_DOC_SUBSTITUTION'
i_devclass = 'J1BA'
i_domname = 'J_1BECD_TIPO_DOC_SUBSTITUTION'
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_langu = 'E'
i_ddtext = 'Other Informations: Document Type for Substitution'
i_reptext = 'Other Informations: Document Type'
i_scrtext_s = 'DocumentTp'
i_scrtext_m = 'Document Type'
i_scrtext_l = 'Other Informations: Document Type'.
ENDFORM.
FORM update_36. " DTED J_1BECD_VALOR ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_VALOR'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DEC'
i_decimals = '000002'
i_leng = '000019'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Total Eliminated Value Parcel'
i_reptext = 'Total Eliminated Value Parcel'
i_scrtext_s = 'ElimValPar'
i_scrtext_m = 'Total ElimVal Parcel'
i_scrtext_l = 'Total Eliminated Value Parcel'.
ENDFORM.
FORM update_37. " DTED J_1BECD_VAL_AG ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_VAL_AG'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DEC'
i_decimals = '000002'
i_leng = '000019'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Agglutinated absolute value'
i_reptext = 'Agglutinated absolute value'
i_scrtext_s = 'AggAValue'
i_scrtext_m = 'Agglutinated abs val'
i_scrtext_l = 'Agglutinated absolute value'.
ENDFORM.
FORM update_38. " DTED J_1BECD_VAL_CS ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_VAL_CS'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DEC'
i_decimals = '000002'
i_leng = '000019'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Consolidated absolute value'
i_reptext = 'Consolidated absolute value'
i_scrtext_s = 'ConsAValue'
i_scrtext_m = 'Consolidated abs val'
i_scrtext_l = 'Consolidated absolute value'.
ENDFORM.
FORM update_39. " DTED J_1BECD_VAL_EL ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_dtel "#EC *
EXPORTING
i_rollname = 'J_1BECD_VAL_EL'
i_devclass = 'J1BA'
i_domname = ''
i_headlen = '55'
i_scrlen1 = '10'
i_scrlen2 = '20'
i_scrlen3 = '40'
i_logflag = ''
i_datatype = 'DEC'
i_decimals = '000002'
i_leng = '000019'
i_reftype = '' ">=SAPBASIS640
i_refkind = '' ">=SAPBASIS640
i_langu = 'E'
i_ddtext = 'Eliminated absolute value'
i_reptext = 'Eliminated absolute value'
i_scrtext_s = 'ElimAbsVal'
i_scrtext_m = 'Elimi. absolute Val.'
i_scrtext_l = 'Eliminated absolute value'.
ENDFORM.
FORM update_40. " TABD J_1BECD_0000_0_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_0000_0_S'
i_fieldname = 'IND_FIN_ESC'
i_rollname = 'J_1BECD_IND_FIN_ESC'
i_context = 'IND_NIRE'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_0000_0_S'
i_fieldname = 'IND_ESC_CONS'
i_rollname = 'J_1BECD_IND_ESC_CONS'
i_context = 'IDENT_MF'.
ENDFORM.
FORM update_41. " TABD J_1BECD_CUST03 ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_CUST03'
i_fieldname = 'BUKRS'
i_keyflag = 'X'
i_notnull = 'X'
i_rollname = 'BUKRS'
i_context = 'MANDT'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_CUST03'
i_fieldname = 'UF_CRC'
i_rollname = 'J_1BECD_UF_CRC'
i_context = 'FONE'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_CUST03'
i_fieldname = 'IND_RESP_LEGAL'
i_rollname = 'J_1BECD_IND_RESP_LEGAL'
i_context = 'DT_CRC'.
ENDFORM.
FORM update_42. " TABT J_1BECD_CUST03 ( EN , source: EBJ )
gs_tabname-low = 'J_1BECD_CUST03'. COLLECT gs_tabname INTO gr_tabname.
ENDFORM.
FORM update_43. " TABD J_1BECD_J800_3_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J800_3_S'
i_fieldname = 'TIPO_DOC'
i_rollname = 'J_1BECD_TIPO_DOC'
i_context = 'IND_FIM_RTF'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J800_3_S'
i_fieldname = 'DESC_RTF'
i_rollname = 'J_1BECD_DESC_RTF'
i_context = 'TIPO_DOC'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J800_3_S'
i_fieldname = 'HASH_RTF'
i_rollname = 'J_1BECD_HASH_RTF'
i_context = 'DESC_RTF'.
ENDFORM.
FORM update_44. " TABD J_1BECD_J801_3_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J801_3_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register J801: ECD Substitution Report'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J801_3_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_J801_3_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J801_3_S'
i_fieldname = 'IND_FIM_RTF'
i_datatype = 'CHAR'
i_decimals = '000000'
i_leng = '000007'
i_ddtext = 'Indicator of end of file RTF'
i_langu = 'E'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J801_3_S'
i_fieldname = 'TIPO_DOC'
i_rollname = 'J_1BECD_TIPO_DOC_SUBSTITUTION'
i_context = 'IND_FIM_RTF'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J801_3_S'
i_fieldname = 'DESC_RTF'
i_rollname = 'J_1BECD_DESC_RTF'
i_context = 'TIPO_DOC'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J801_3_S'
i_fieldname = 'HASH_RTF'
i_rollname = 'J_1BECD_HASH_RTF'
i_context = 'DESC_RTF'.
ENDFORM.
FORM update_45. " TABD J_1BECD_J930_3_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_J930_3_S'
i_fieldname = 'IND_RESP_LEGAL'
i_rollname = 'J_1BECD_IND_RESP_LEGAL'
i_context = 'DT_CRC'.
ENDFORM.
FORM update_46. " TABD J_1BECD_K001_1_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K001_1_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K001 - Block K opening'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K001_1_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K001_1_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K001_1_S'
i_fieldname = 'IND_DAD'
i_rollname = 'J_1BECD_IND_DAD'
i_context = 'REG'.
ENDFORM.
FORM update_47. " TABD J_1BECD_K030_2_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K030_2_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K030: Consolidated Accounting Bookkeeping Period'
.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K030_2_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K030_2_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K030_2_S'
i_fieldname = 'DT_INI_CONS'
i_rollname = 'J_1BECD_INIDAT'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K030_2_S'
i_fieldname = 'DT_FIN_CONS'
i_rollname = 'J_1BECD_FINDAT'
i_context = 'DT_INI_CONS'.
ENDFORM.
FORM update_48. " TABD J_1BECD_K100_3_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K100: Company Consolidation Relation'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K100_3_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'COD_PAIS'
i_rollname = 'J_1BECD_COD_PAIS'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'EMP_COD'
i_rollname = 'BUKRS'
i_context = 'COD_PAIS'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'CNPJ'
i_rollname = 'J_1BECD_CNPJ'
i_context = 'EMP_COD'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'NOME'
i_rollname = 'J_1BECD_NOME'
i_context = 'CNPJ'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'PER_PART'
i_rollname = 'J_1BECD_PER_PART'
i_context = 'NOME'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'EVENTO'
i_rollname = 'J_1BECD_EVENTO'
i_context = 'PER_PART'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'PER_CONS'
i_rollname = 'J_1BECD_PER_CONS'
i_context = 'EVENTO'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'DATA_INI_EMP'
i_rollname = 'J_1BECD_DATA_INI_EMP'
i_context = 'PER_CONS'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K100_3_S'
i_fieldname = 'DATA_FIN_EMP'
i_rollname = 'J_1BECD_DATA_FIN_EMP'
i_context = 'DATA_INI_EMP'.
ENDFORM.
FORM update_49. " TABD J_1BECD_K110_4_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K110_4_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K110: Corporate Events Relationship'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K110_4_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K110_4_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K110_4_S'
i_fieldname = 'EVENTO'
i_rollname = 'J_1BECD_EVENTO_TIPO'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K110_4_S'
i_fieldname = 'DT_EVENTO'
i_rollname = 'J_1BECD_DT_EVENTO'
i_context = 'EVENTO'.
ENDFORM.
FORM update_50. " TABD J_1BECD_K115_5_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K115_5_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K115: Companies Attending on Corporate Event'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K115_5_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K115_5_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K115_5_S'
i_fieldname = 'EMP_COD_PART'
i_rollname = 'BUKRS'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K115_5_S'
i_fieldname = 'COND_PART'
i_rollname = 'J_1BECD_COND_PART'
i_context = 'EMP_COD_PART'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K115_5_S'
i_fieldname = 'PER_EVT'
i_rollname = 'J_1BECD_PER_EVT'
i_context = 'COND_PART'.
ENDFORM.
FORM update_51. " TABD J_1BECD_K200_2_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K200_2_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K200: Consolidated Chart of Accounts'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K200_2_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K200_2_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K200_2_S'
i_fieldname = 'COD_NAT'
i_rollname = 'J_1BECD_COD_NAT'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K200_2_S'
i_fieldname = 'IND_CTA'
i_rollname = 'J_1BECD_ACCOUNT_TYPE'
i_context = 'COD_NAT'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K200_2_S'
i_fieldname = 'NIVEL'
i_rollname = 'J_1BECD_NIVEL'
i_context = 'IND_CTA'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K200_2_S'
i_fieldname = 'COD_CTA'
i_rollname = 'J_1BECD_ACCOUNT_CODE'
i_context = 'NIVEL'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K200_2_S'
i_fieldname = 'COD_CTA_SUP'
i_rollname = 'J_1BECD_ACCOUNT_CODE'
i_context = 'COD_CTA'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K200_2_S'
i_fieldname = 'CTA'
i_rollname = 'J_1BECD_ACCOUNT_DESC'
i_context = 'COD_CTA_SUP'.
ENDFORM.
FORM update_52. " TABD J_1BECD_K210_3_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K210_3_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K210: Mapping of Chart of Accounts from Companies
'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K210_3_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K210_3_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K210_3_S'
i_fieldname = 'COD_EMP'
i_rollname = 'BUKRS'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K210_3_S'
i_fieldname = 'COD_CTA_EMP'
i_rollname = 'J_1BECD_ACCOUNT_CODE'
i_context = 'COD_EMP'.
ENDFORM.
FORM update_53. " TABD J_1BECD_K300_3_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K300: Consolidate Account Balance'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K300_3_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_fieldname = 'COD_CTA'
i_rollname = 'J_1BECD_ACCOUNT_CODE'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_fieldname = 'VAL_AG'
i_rollname = 'J_1BECD_VAL_AG'
i_context = 'COD_CTA'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_fieldname = 'IND_VAL_AG'
i_rollname = 'J_1BECD_IND_VAL_AG'
i_context = 'VAL_AG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_fieldname = 'VAL_EL'
i_rollname = 'J_1BECD_VAL_EL'
i_context = 'IND_VAL_AG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_fieldname = 'IND_VAL_EL'
i_rollname = 'J_1BECD_IND_VAL_EL'
i_context = 'VAL_EL'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_fieldname = 'VAL_CS'
i_rollname = 'J_1BECD_VAL_CS'
i_context = 'IND_VAL_EL'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K300_3_S'
i_fieldname = 'IND_VAL_CS'
i_rollname = 'J_1BECD_IND_VAL_CS'
i_context = 'VAL_CS'.
ENDFORM.
FORM update_54. " TABD J_1BECD_K310_4_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K310_4_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K310: Companies Holders from Total Eliminated Val
ue'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K310_4_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K310_4_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K310_4_S'
i_fieldname = 'EMP_COD_PARTE'
i_rollname = 'BUKRS'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K310_4_S'
i_fieldname = 'VALOR'
i_rollname = 'J_1BECD_VALOR'
i_context = 'EMP_COD_PARTE'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K310_4_S'
i_fieldname = 'IND_VALOR'
i_rollname = 'J_1BECD_IND_VAL_EL'
i_context = 'VALOR'.
ENDFORM.
FORM update_55. " TABD J_1BECD_K315_5_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K315_5_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K315: Counterpart Comp. from eliminated total val
ue'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K315_5_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K315_5_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K315_5_S'
i_fieldname = 'EMP_COD_CONTRA'
i_rollname = 'BUKRS'
i_context = 'REG'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K315_5_S'
i_fieldname = 'COD_CONTRA'
i_rollname = 'J_1BECD_COD_CONTRA'
i_context = 'EMP_COD_CONTRA'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K315_5_S'
i_fieldname = 'VALOR'
i_rollname = 'J_1BECD_VALOR'
i_context = 'COD_CONTRA'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K315_5_S'
i_fieldname = 'IND_VALOR'
i_rollname = 'J_1BECD_IND_VAL_EL'
i_context = 'VALOR'.
ENDFORM.
FORM update_56. " TABD J_1BECD_K990_1_S ( EN , source: EBJ )
DATA: lt_dd36 TYPE TABLE OF dd36m, ls_dd36 TYPE dd36m,
lt_dd05m TYPE TABLE OF dd05m, ls_dd05m TYPE dd05m,
ls_dd08v TYPE dd08v.
CALL METHOD lcl_wb=>create_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K990_1_S'
i_devclass = 'J1BA'
i_exclass = '4'
i_authclass = '00'
i_langu = 'E'
i_ddtext = 'Register K990: Block K Closure'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K990_1_S'
i_fieldname = 'REG'
i_rollname = 'J_1BECD_REGISTER'
i_context = 'J_1BECD_K990_1_S'.
CLEAR: ls_dd08v, lt_dd05m.
CALL METHOD lcl_wb=>add_field_to_table "#EC *
EXPORTING
i_tabname = 'J_1BECD_K990_1_S'
i_fieldname = 'QTD_LIN_K'
i_datatype = 'NUMC'
i_decimals = '000000'
i_leng = '000010'
i_ddtext = 'Total of line quantity Block J'
i_langu = 'E'
i_context = 'REG'.
ENDFORM.
FORM update_57. " VIED J_1BECD_CUST03V ( EN , source: EBJ )
DATA: lt_dd26v TYPE TABLE OF dd26v, ls_dd26v TYPE dd26v.
CLEAR ls_dd26v.
ls_dd26v-viewname = 'J_1BECD_CUST03V'.
"#EC NOTEXT
ls_dd26v-tabname = 'J_1BECD_CUST03'.
"#EC NOTEXT
ls_dd26v-tabpos = '0001'.
"#EC NOTEXT
ls_dd26v-fortabname = 'J_1BECD_CUST03'.
"#EC NOTEXT
APPEND ls_dd26v TO lt_dd26v.
DATA: lt_dd28v TYPE TABLE OF dd28v, ls_dd28v TYPE dd28v.
CALL METHOD lcl_wb=>create_view "#EC *
EXPORTING
i_viewname = 'J_1BECD_CUST03V'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'ECD Person Responsible'
i_aggtype = 'V'
i_roottab = 'J_1BECD_CUST03'
i_viewclass = 'C'
i_viewgrant = ''
i_globalflag = 'X'
it_dd26v = lt_dd26v[]
it_dd28v = lt_dd28v[].
CALL METHOD lcl_wb=>add_field_to_view "#EC *
EXPORTING
i_viewname = 'J_1BECD_CUST03V'
i_viewfield = 'IND_RESP_LEGAL'
i_tabname = 'J_1BECD_CUST03'
i_fieldname = 'IND_RESP_LEGAL'
i_rollname = 'J_1BECD_IND_RESP_LEGAL'
i_context = 'DT_CRC'.
ENDFORM.
FORM update_58. " TTYD J_1BECD_J801_3_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_J801_3_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register J801: ECD Substitution Report'
i_rowtype = 'J_1BECD_J801_3_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_59. " TTYD J_1BECD_K001_1_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K001_1_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K001 - Block K opening'
i_rowtype = 'J_1BECD_K001_1_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_60. " TTYD J_1BECD_K030_2_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K030_2_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K030: Consolidated Accounting Bookkeepi
ng'
i_rowtype = 'J_1BECD_K030_2_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_61. " TTYD J_1BECD_K100_3_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K100_3_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K100: Company Consolidation Relation'
i_rowtype = 'J_1BECD_K100_3_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_62. " TTYD J_1BECD_K110_4_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K110_4_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K110: Corporate Events Relationship'
i_rowtype = 'J_1BECD_K110_4_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_63. " TTYD J_1BECD_K115_5_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K115_5_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K115: Companies Attending on Corporate
Ev'
i_rowtype = 'J_1BECD_K115_5_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_64. " TTYD J_1BECD_K200_2_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K200_2_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K200: Consolidated Chart of Accounts'
i_rowtype = 'J_1BECD_K200_2_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_65. " TTYD J_1BECD_K210_3_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K210_3_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K210: Mapping of Chart of Accounts'
i_rowtype = 'J_1BECD_K210_3_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_66. " TTYD J_1BECD_K300_3_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K300_3_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K300: Consolidate Account Balance'
i_rowtype = 'J_1BECD_K300_3_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_67. " TTYD J_1BECD_K310_4_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K310_4_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K310: Companies Holders from Total Elim
in'
i_rowtype = 'J_1BECD_K310_4_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_68. " TTYD J_1BECD_K315_5_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K315_5_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K315: Counterpart Comp. from eliminated
v'
i_rowtype = 'J_1BECD_K315_5_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_69. " TTYD J_1BECD_K990_1_T ( EN , source: EBJ )
DATA: ls_dd42v TYPE dd42v, lt_dd42v TYPE TABLE OF dd42v.
CLEAR lt_dd42v.
CALL METHOD lcl_wb=>create_table_type "#EC *
EXPORTING
i_typename = 'J_1BECD_K990_1_T'
i_devclass = 'J1BA'
i_langu = 'E'
i_ddtext = 'Table for Register K990: Block K Closure'
i_rowtype = 'J_1BECD_K990_1_S'
i_accessmode = 'T'
i_keydef = 'D'
i_keykind = 'N'
it_dd42v = lt_dd42v.
ENDFORM.
FORM update_70. " REPT J_1BECD_MAIN ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_program_text "#EC *
EXPORTING
i_progname = 'J_1BECD_MAIN'
i_devclass = 'J1BA'
i_langu = 'E':
i_id = 'I'
i_key = '033'
i_text = 'Attachments: Other Informations' "#EC NOTEXT
i_length = '31',
i_id = 'I'
i_key = '047'
i_text = 'Attachments: Substitution' "#EC NOTEXT
i_length = '25',
i_id = 'S'
i_key = 'P_DESRTF'
i_length = '0',
i_id = 'S'
i_key = 'P_SAPIN'
i_length = '0',
i_id = 'S'
i_key = 'P_SDESRT'
i_length = '0',
i_id = 'S'
i_key = 'P_SPCIN'
i_text = 'File Name / Directory Name' "#EC NOTEXT
i_length = '34',
i_id = 'S'
i_key = 'P_STYPDO'
i_length = '0',
i_id = 'S'
i_key = 'P_SXAPIN'
i_text = 'Read from Application Server' "#EC NOTEXT
i_length = '36',
i_id = 'S'
i_key = 'P_SXPCIN'
i_text = 'Read from Presentation Server' "#EC NOTEXT
i_length = '37',
i_id = 'S'
i_key = 'P_TYPDOC'
i_length = '0'.
ENDFORM.
FORM update_71. " REPT J_1BECD_MAIN_PRE_BLK ( EN , source: EBJ )
CALL METHOD lcl_wb=>create_program_text "#EC *
EXPORTING
i_progname = 'J_1BECD_MAIN_PRE_BLK'
i_devclass = 'J1BA'
i_langu = 'E':
i_id = 'R'
i_key = ''
i_text = 'Include J_1BECD_MAIN_PRE_BLJ' "#EC NOTEXT
i_length = '28'.
ENDFORM.
FORM update_72. " MESS J_1BECD048 ( EN , source: EBJ )
DATA lt_activity TYPE tt_activity.
CALL METHOD lcl_wb=>create_message "#EC *
EXPORTING
i_msgid = 'J_1BECD'
i_msgno = '048'
it_activity = lt_activity
i_auth_check = '':
i_langu = 'E'
i_selfdef = ''
i_text = 'The Indication of bookkeeping purpose must be 0 or 1 for la
yout 005'.
ENDFORM.
FORM update_73_0005. " DYNP SAPLJ_1BECD_VIEWS 0005 ( EN EB
J )
DATA: lt_rpy_dyhead TYPE TABLE OF rpy_dyhead, ls_rpy_dyhead TYPE rpy_dyhead.
CLEAR ls_rpy_dyhead.
ls_rpy_dyhead-program = 'SAPLJ_1BECD_VIEWS'.
"#EC NOTEXT
ls_rpy_dyhead-screen = '0005'.
"#EC NOTEXT
ls_rpy_dyhead-language = 'E'.
"#EC NOTEXT
ls_rpy_dyhead-descript = 'View Maintenance: Overview Screen J_1BECD_CUST
03V'. "#EC NOTEXT
ls_rpy_dyhead-type = 'N'.
"#EC NOTEXT
ls_rpy_dyhead-nextscreen = '0005'.
"#EC NOTEXT
ls_rpy_dyhead-lines = '061'.
"#EC NOTEXT
ls_rpy_dyhead-columns = '083'.
"#EC NOTEXT
APPEND ls_rpy_dyhead TO lt_rpy_dyhead.
DATA: lt_rpy_dycatt TYPE TABLE OF rpy_dycatt, ls_rpy_dycatt TYPE rpy_dycatt.
CLEAR ls_rpy_dycatt.
ls_rpy_dycatt-type = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dycatt-name = 'SCREEN'.
"#EC NOTEXT
APPEND ls_rpy_dycatt TO lt_rpy_dycatt.
CLEAR ls_rpy_dycatt.
ls_rpy_dycatt-type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dycatt-name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dycatt-element_of = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dycatt-line = '003'.
"#EC NOTEXT
ls_rpy_dycatt-column = '001'.
"#EC NOTEXT
ls_rpy_dycatt-length = '083'.
"#EC NOTEXT
ls_rpy_dycatt-height = '057'.
"#EC NOTEXT
ls_rpy_dycatt-c_resize_v = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-c_resize_h = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-c_scroll_v = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-c_scroll_h = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-tc_tabtype = 'ENTRY'.
"#EC NOTEXT
ls_rpy_dycatt-tc_separ_v = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-tc_separ_h = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-tc_title = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-tc_header = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-tc_config = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-tc_sel_lns = 'MULTIPLE'.
"#EC NOTEXT
ls_rpy_dycatt-tc_sel_cls = 'NONE'.
"#EC NOTEXT
ls_rpy_dycatt-tc_lsel_cl = 'X'.
"#EC NOTEXT
ls_rpy_dycatt-tc_fixcol = '001'.
"#EC NOTEXT
APPEND ls_rpy_dycatt TO lt_rpy_dycatt.
DATA: lt_rpy_dyfatc TYPE TABLE OF rpy_dyfatc, ls_rpy_dyfatc TYPE rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-BUKRS'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'Company_Code___'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '015'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '015'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = '2'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-labelleft = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-BUKRS'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '____'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '017'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '004'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '004'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-param_id = 'BUK'.
"#EC NOTEXT
ls_rpy_dyfatc-set_param = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-get_param = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'PUSH_TMPL'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'VIM_POSI_PUSH'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '____________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '061'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '019'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '020'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '020'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-push_fcode = 'POSI'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'VIM_POSITION_INFO'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '______________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '061'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '030'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '030'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-up_lower = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-outputonly = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-2_dimens = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'SCREEN'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'OKCODE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'OK_CODE'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '____________________'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '020'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '020'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'VIM_FRAME_FIELD'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '____________________________________________
________________'. "#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '060'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '060'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-up_lower = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_title = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-SEQU_NUMBER'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'Pers.Resp.No.___________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '015'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = '2'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-IDENT_NOM'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'Responsible_Person_Name_________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '002'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '255'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'V'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-IDENT_CPF'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'CPF_Number______________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '003'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '015'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = '2'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-COD_ASSIN'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'Qual._Code______________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '004'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '025'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = '2'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-IND_CRC'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'CRC_Number______________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '005'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '030'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'V'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-EMAIL'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'Signatory''s_E-mail______________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '006'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '060'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'V'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-FONE'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'Signatory''s_Telephone_Number____________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '007'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '013'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'V'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-UF_CRC'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'Federation_Unit_________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '008'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '015'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = '2'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-NUM_SEQ_CRC'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'CRC_Seq._Num.___________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '009'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '255'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'V'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-DT_CRC'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'CRC_Expiriration________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '010'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '016'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = '2'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEXT'.
"#EC NOTEXT
ls_rpy_dyfatc-name = '*J_1BECD_CUST03V-IND_RESP_LEGAL'.
"#EC NOTEXT
ls_rpy_dyfatc-text = 'RFB_Valid_______________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '011'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '040'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '030'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = '1'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_heading = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'CHECK'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'VIM_MARKED'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-tc_selcol = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-SEQU_NUMBER'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '__'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '002'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '015'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-group1 = 'KEY'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'NUMC'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-requ_entry = 'N'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-IDENT_NOM'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '____________________________________________
________________________________________________________________________________
________'. "#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '002'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '255'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '255'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-IDENT_CPF'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '___________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '003'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '011'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '015'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-COD_ASSIN'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '___'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '004'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '003'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '025'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-dict_i_fky = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-IND_CRC'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '______________________________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '005'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '030'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '030'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-EMAIL'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '____________________________________________
________________'. "#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '006'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '060'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '060'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-FONE'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '_____________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '007'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '013'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '013'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-UF_CRC'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '___'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '008'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '003'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '015'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-NUM_SEQ_CRC'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '____________________________________________
________________________________________________________________________________
________'. "#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '009'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '255'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '255'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-DT_CRC'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '__________'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '010'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '010'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '016'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'DATS'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
CLEAR ls_rpy_dyfatc.
ls_rpy_dyfatc-cont_type = 'TABLE_CTRL'.
"#EC NOTEXT
ls_rpy_dyfatc-cont_name = 'TCTRL_J_1BECD_CUST03V'.
"#EC NOTEXT
ls_rpy_dyfatc-type = 'TEMPLATE'.
"#EC NOTEXT
ls_rpy_dyfatc-name = 'J_1BECD_CUST03V-IND_RESP_LEGAL'.
"#EC NOTEXT
ls_rpy_dyfatc-text = '_'.
"#EC NOTEXT
ls_rpy_dyfatc-dropdown = 'L'.
"#EC NOTEXT
ls_rpy_dyfatc-line = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-column = '011'.
"#EC NOTEXT
ls_rpy_dyfatc-length = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-vislength = '030'.
"#EC NOTEXT
ls_rpy_dyfatc-height = '001'.
"#EC NOTEXT
ls_rpy_dyfatc-format = 'CHAR'.
"#EC NOTEXT
ls_rpy_dyfatc-from_dict = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-modific = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-foreignkey = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-input_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-output_fld = 'X'.
"#EC NOTEXT
ls_rpy_dyfatc-dict_i_val = 'X'.
"#EC NOTEXT
APPEND ls_rpy_dyfatc TO lt_rpy_dyfatc.
DATA: lt_rpy_dypara TYPE TABLE OF rpy_dypara, ls_rpy_dypara TYPE rpy_dypara.
DATA: lt_d022s TYPE TABLE OF d022s, ls_d022s TYPE d022s.
APPEND 'PROCESS BEFORE OUTPUT.'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE LISTE_INITIALISIEREN.'
TO lt_d022s. "#EC NOTEXT
APPEND ' LOOP AT EXTRACT WITH CONTROL'
TO lt_d022s. "#EC NOTEXT
APPEND ' TCTRL_J_1BECD_CUST03V CURSOR NEXTLINE.'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE LISTE_SHOW_LISTE.'
TO lt_d022s. "#EC NOTEXT
APPEND ' ENDLOOP.'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE FILL_SUBSTFLDS.'
TO lt_d022s. "#EC NOTEXT
APPEND '*'
TO lt_d022s. "#EC NOTEXT
APPEND 'PROCESS AFTER INPUT.'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE LISTE_BEFORE_LOOP.'
TO lt_d022s. "#EC NOTEXT
APPEND ' LOOP AT EXTRACT.'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE LISTE_INIT_WORKAREA.'
TO lt_d022s. "#EC NOTEXT
APPEND ' CHAIN.'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-SEQU_NUMBER .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-IDENT_NOM .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-IDENT_CPF .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-COD_ASSIN .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-IND_CRC .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-EMAIL .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-FONE .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-UF_CRC .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-NUM_SEQ_CRC .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-DT_CRC .'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-IND_RESP_LEGAL .'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.'
TO lt_d022s. "#EC NOTEXT
APPEND ' ENDCHAIN.'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.'
TO lt_d022s. "#EC NOTEXT
APPEND ' CHAIN.'
TO lt_d022s. "#EC NOTEXT
APPEND ' FIELD J_1BECD_CUST03V-SEQU_NUMBER .'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE LISTE_UPDATE_LISTE.'
TO lt_d022s. "#EC NOTEXT
APPEND ' ENDCHAIN.'
TO lt_d022s. "#EC NOTEXT
APPEND ' ENDLOOP.'
TO lt_d022s. "#EC NOTEXT
APPEND ' MODULE LISTE_AFTER_LOOP.'
TO lt_d022s. "#EC NOTEXT
CALL METHOD lcl_wb=>create_screen "#EC *
EXPORTING
i_devclass = 'J1BA'
is_header = ls_rpy_dyhead
it_containers = lt_rpy_dycatt
it_fields = lt_rpy_dyfatc
it_flow_logic = lt_d022s.
ENDFORM.
FORM update_73. " TOBJ J_1BECD_CUST03VV ( EN , source: EBJ )
IF lcl_wb=>generate_maint_view( "#EC *
i_devclass = 'J1BA'
i_objectname = 'J_1BECD_CUST03V'
i_objecttype = 'V'
i_masterlang = 'E'
i_auth_group = '&NC&'
i_func_group = 'J_1BECD_VIEWS'
i_dynp_list = '0005'
i_dynp_detail = '0000') EQ 'I'. "Insert
PERFORM update_73_0005.
ENDIF.
ENDFORM.
FORM update_74. " TABU TVIMF ( DE , source: EBJ )
DATA: lt_tvimf TYPE TABLE OF tvimf, ls_tvimf TYPE tvimf.
CLEAR ls_tvimf.
ls_tvimf-tabname = 'J_1BECD_CUST03V'.
"#EC NOTEXT
ls_tvimf-event = '20'.
"#EC NOTEXT
ls_tvimf-formname = 'VALIDATE_UF_CRC'.
"#EC NOTEXT
APPEND ls_tvimf TO lt_tvimf.
CALL METHOD lcl_wb=>create_table_entries "#EC *
EXPORTING
i_tabname = 'TVIMF'
it_entries = lt_tvimf.
ENDFORM.
FORM genview.
PERFORM update_73. " TOBJ J_1BECD_CUST03VV ( EN , source: EBJ )
ENDFORM.
FORM update.
gv_master_languages = 'ED'. "#EC NOTEXT
APPEND 'J_1BECD_0000_0_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_CUST03' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_J800_3_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_J801_3_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_J930_3_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K001_1_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K030_2_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K100_3_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K110_4_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K115_5_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K200_2_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K210_3_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K300_3_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K310_4_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K315_5_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_K990_1_S' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_CUST03V' TO gt_tabname. "#EC NOTEXT
APPEND 'J_1BECD_J801_3_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K001_1_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K030_2_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K100_3_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K110_4_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K115_5_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K200_2_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K210_3_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K300_3_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K310_4_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K315_5_T' TO gt_ttypname. "#EC NOTEXT
APPEND 'J_1BECD_K990_1_T' TO gt_ttypname. "#EC NOTEXT
PERFORM update_01. " DOMD J_1BECD_COD_NAT ( EN , source: EBJ )
PERFORM update_02. " DOMD J_1BECD_COD_PAIS ( EN , source: EBJ )
PERFORM update_03. " DOMD J_1BECD_COD_VER ( EN , source: EBJ )
PERFORM update_04. " DOMD J_1BECD_COND_PART ( EN , source: EBJ )
PERFORM update_05. " DOMD J_1BECD_DESC_RTF ( EN , source: EBJ )
PERFORM update_06. " DOMD J_1BECD_EVENTO_TIPO ( EN , source: EBJ )
PERFORM update_07. " DOMD J_1BECD_HASH_RTF ( EN , source: EBJ )
PERFORM update_08. " DOMD J_1BECD_IND_FIN_ESC ( EN , source: EBJ )
PERFORM update_09. " DOMD J_1BECD_REGISTER ( EN , source: EBJ )
PERFORM update_10. " DOMD J_1BECD_TIPO_DOC ( EN , source: EBJ )
PERFORM update_11. " DOMD J_1BECD_TIPO_DOC_SUBSTITUTION ( EN , source: EBJ )
PERFORM update_12. " DOMD J_1B_SN_YES_NO ( EN , source: EBJ )
PERFORM update_13. " DTED J_1BECD_COD_CONTRA ( EN , source: EBJ )
PERFORM update_14. " DTED J_1BECD_COD_NAT ( EN , source: EBJ )
PERFORM update_15. " DTED J_1BECD_COD_PAIS ( EN , source: EBJ )
PERFORM update_16. " DTED J_1BECD_COND_PART ( EN , source: EBJ )
PERFORM update_17. " DTED J_1BECD_DATA_FIN_EMP ( EN , source: EBJ )
PERFORM update_18. " DTED J_1BECD_DATA_INI_EMP ( EN , source: EBJ )
PERFORM update_19. " DTED J_1BECD_DESC_RTF ( EN , source: EBJ )
PERFORM update_20. " DTED J_1BECD_DT_EVENTO ( EN , source: EBJ )
PERFORM update_21. " DTED J_1BECD_EVENTO ( EN , source: EBJ )
PERFORM update_22. " DTED J_1BECD_EVENTO_TIPO ( EN , source: EBJ )
PERFORM update_23. " DTED J_1BECD_HASH_RTF ( EN , source: EBJ )
PERFORM update_24. " DTED J_1BECD_IND_ESC_CONS ( EN , source: EBJ )
PERFORM update_25. " DTED J_1BECD_IND_RESP_LEGAL ( EN , source: EBJ )
PERFORM update_26. " DTED J_1BECD_IND_VAL_AG ( EN , source: EBJ )
PERFORM update_27. " DTED J_1BECD_IND_VAL_CS ( EN , source: EBJ )
PERFORM update_28. " DTED J_1BECD_IND_VAL_EL ( EN , source: EBJ )
PERFORM update_29. " DTED J_1BECD_NIVEL ( EN , source: EBJ )
PERFORM update_30. " DTED J_1BECD_NOME ( EN , source: EBJ )
PERFORM update_31. " DTED J_1BECD_PER_CONS ( EN , source: EBJ )
PERFORM update_32. " DTED J_1BECD_PER_EVT ( EN , source: EBJ )
PERFORM update_33. " DTED J_1BECD_PER_PART ( EN , source: EBJ )
PERFORM update_34. " DTED J_1BECD_TIPO_DOC ( EN , source: EBJ )
PERFORM update_35. " DTED J_1BECD_TIPO_DOC_SUBSTITUTION ( EN , source: EBJ )
PERFORM update_36. " DTED J_1BECD_VALOR ( EN , source: EBJ )
PERFORM update_37. " DTED J_1BECD_VAL_AG ( EN , source: EBJ )
PERFORM update_38. " DTED J_1BECD_VAL_CS ( EN , source: EBJ )
PERFORM update_39. " DTED J_1BECD_VAL_EL ( EN , source: EBJ )
PERFORM update_40. " TABD J_1BECD_0000_0_S ( EN , source: EBJ )
PERFORM update_41. " TABD J_1BECD_CUST03 ( EN , source: EBJ )
PERFORM update_42. " TABT J_1BECD_CUST03 ( EN , source: EBJ )
PERFORM update_43. " TABD J_1BECD_J800_3_S ( EN , source: EBJ )
PERFORM update_44. " TABD J_1BECD_J801_3_S ( EN , source: EBJ )
PERFORM update_45. " TABD J_1BECD_J930_3_S ( EN , source: EBJ )
PERFORM update_46. " TABD J_1BECD_K001_1_S ( EN , source: EBJ )
PERFORM update_47. " TABD J_1BECD_K030_2_S ( EN , source: EBJ )
PERFORM update_48. " TABD J_1BECD_K100_3_S ( EN , source: EBJ )
PERFORM update_49. " TABD J_1BECD_K110_4_S ( EN , source: EBJ )
PERFORM update_50. " TABD J_1BECD_K115_5_S ( EN , source: EBJ )
PERFORM update_51. " TABD J_1BECD_K200_2_S ( EN , source: EBJ )
PERFORM update_52. " TABD J_1BECD_K210_3_S ( EN , source: EBJ )
PERFORM update_53. " TABD J_1BECD_K300_3_S ( EN , source: EBJ )
PERFORM update_54. " TABD J_1BECD_K310_4_S ( EN , source: EBJ )
PERFORM update_55. " TABD J_1BECD_K315_5_S ( EN , source: EBJ )
PERFORM update_56. " TABD J_1BECD_K990_1_S ( EN , source: EBJ )
PERFORM update_57. " VIED J_1BECD_CUST03V ( EN , source: EBJ )
PERFORM update_58. " TTYD J_1BECD_J801_3_T ( EN , source: EBJ )
PERFORM update_59. " TTYD J_1BECD_K001_1_T ( EN , source: EBJ )
PERFORM update_60. " TTYD J_1BECD_K030_2_T ( EN , source: EBJ )
PERFORM update_61. " TTYD J_1BECD_K100_3_T ( EN , source: EBJ )
PERFORM update_62. " TTYD J_1BECD_K110_4_T ( EN , source: EBJ )
PERFORM update_63. " TTYD J_1BECD_K115_5_T ( EN , source: EBJ )
PERFORM update_64. " TTYD J_1BECD_K200_2_T ( EN , source: EBJ )
PERFORM update_65. " TTYD J_1BECD_K210_3_T ( EN , source: EBJ )
PERFORM update_66. " TTYD J_1BECD_K300_3_T ( EN , source: EBJ )
PERFORM update_67. " TTYD J_1BECD_K310_4_T ( EN , source: EBJ )
PERFORM update_68. " TTYD J_1BECD_K315_5_T ( EN , source: EBJ )
PERFORM update_69. " TTYD J_1BECD_K990_1_T ( EN , source: EBJ )
PERFORM update_70. " REPT J_1BECD_MAIN ( EN , source: EBJ )
PERFORM update_71. " REPT J_1BECD_MAIN_PRE_BLK ( EN , source: EBJ )
PERFORM update_72. " MESS J_1BECD048 ( EN , source: EBJ )
PERFORM update_73. " TOBJ J_1BECD_CUST03VV ( EN , source: EBJ )
PERFORM update_74. " TABU TVIMF ( DE , source: EBJ )
ENDFORM.
START-OF-SELECTION.
show_genview = 'X'.
PERFORM main.

Das könnte Ihnen auch gefallen