Bugzilla – Attachment 5169 Details for
Bug 14124
Materialtext doppelt nach Upgrade auf S/4
DE
|
EN
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
Log In
[x]
|
Forgot Password
Login:
[x]
Konvertierungsprogramm
ZGIB_DCV_CONVERT_MAKT.txt (text/plain), 5.46 KB, created by
Hopmann, Peter
on 2021-11-26 09:01:33 CET
(
hide
)
Description:
Konvertierungsprogramm
Filename:
MIME Type:
Creator:
Hopmann, Peter
Created:
2021-11-26 09:01:33 CET
Size:
5.46 KB
patch
obsolete
>*&---------------------------------------------------------------------* >*& Report ZGIB_DCV_CONVERT_MAKT >*&---------------------------------------------------------------------* >*& >*&---------------------------------------------------------------------* >REPORT zgib_dcv_convert_makt MESSAGE-ID /gib/dcv. > >TABLES: /gib/dcvt012. > >SELECT-OPTIONS: so_matnr FOR /gib/dcvt012-matnr. > >CLASS lcl_main DEFINITION. > > PUBLIC SECTION. > CLASS-METHODS: run. > >ENDCLASS. > >CLASS lcl_maktx DEFINITION. > PUBLIC SECTION. > TYPES: BEGIN OF ts_key40, > matnr TYPE matnr, > spras TYPE spras, > END OF ts_key40. > TYPES: BEGIN OF ts_key18, > matnr TYPE char18, > spras TYPE spras, > END OF ts_key18, > tt_objtrn TYPE TABLE OF /gib/dcv_objtrn. > > METHODS: read_data, > convert, > constructor, > get_msg RETURNING VALUE(er_msg) TYPE REF TO /gib/cl_dcv_error_msg, > get_data EXPORTING et_objtrn TYPE tt_objtrn, > get_convert_count RETURNING VALUE(ef_count) TYPE int4. > > CLASS-METHODS: is_matnr_lenght_40 RETURNING VALUE(ef_40) TYPE xfeld. > > PROTECTED SECTION. > DATA: mt_objtrn TYPE tt_objtrn. > > PRIVATE SECTION. > DATA: mt_t002 TYPE TABLE OF t002, > mr_msg TYPE REF TO /gib/cl_dcv_error_msg, > mf_convert_count TYPE int4, > mf_commit_count TYPE int4. > > METHODS: convert_objtrn IMPORTING is_objtrn TYPE /gib/dcv_objtrn > RAISING /gib/cx_dcv, > check_spras IMPORTING if_spras TYPE spras > RAISING /gib/cx_dcv. > >ENDCLASS. > > >START-OF-SELECTION. > lcl_main=>run( ). > >CLASS lcl_main IMPLEMENTATION. > > METHOD run. > > IF lcl_maktx=>is_matnr_lenght_40( ) = abap_true. > DATA(lr_makt) = NEW lcl_maktx( ). > lr_makt->read_data( ). > lr_makt->convert( ). > lr_makt->get_msg( )->show( ). > ELSE. > MESSAGE 'Konvertierung nur bei 40stelliger Materialnummmer notwendig' TYPE 'I'. > RETURN. > ENDIF. > > ENDMETHOD. > >ENDCLASS. > > > >CLASS lcl_maktx IMPLEMENTATION. > > METHOD is_matnr_lenght_40. > DATA: lf_matnr TYPE matnr, > lf_length TYPE i. > > DESCRIBE FIELD lf_matnr LENGTH lf_length IN CHARACTER MODE. > IF lf_length = 40. > ef_40 = abap_true. > ELSE. > ef_40 = abap_false. > ENDIF. > > ENDMETHOD. > > METHOD constructor. > > mr_msg = NEW /gib/cl_dcv_error_msg( ). > > ENDMETHOD. > > METHOD get_msg. > > er_msg = mr_msg. > > ENDMETHOD. > > METHOD get_convert_count. > ef_count = mf_convert_count. > ENDMETHOD. > > METHOD get_data. > et_objtrn = mt_objtrn. > ENDMETHOD. > > METHOD read_data. > > SELECT * FROM /gib/dcv_objtrn INTO TABLE mt_objtrn > WHERE tabname = 'MAKT'. > > ENDMETHOD. > > METHOD convert. > > DATA: ls_key18 TYPE ts_key18, > ls_key40 TYPE ts_key40, > lf_dummy TYPE c. > > LOOP AT mt_objtrn INTO DATA(ls_objtrn). > ls_key40 = ls_objtrn-keyval. > TRY. > check_spras( ls_key40-spras ). > CATCH /gib/cx_dcv. "obviously to be converted > TRY. > convert_objtrn( ls_objtrn ). > CATCH /gib/cx_dcv INTO DATA(lr_error). > mr_msg->set_by_exception( lr_error ). > ENDTRY. > ENDTRY. > IF mf_commit_count > 1000. > COMMIT WORK. > CLEAR: mf_commit_count. > ENDIF. > ENDLOOP. > COMMIT WORK. > MESSAGE s162(/gib/dcv) WITH mf_convert_count INTO lf_dummy. > mr_msg->sy_set( ). > > ENDMETHOD. > > METHOD check_spras. > > DATA: ls_t002 TYPE t002, > lf_dummy TYPE c. > > IF if_spras IS INITIAL. > MESSAGE e199 WITH 'Die Angabe der Sprache fehlt' INTO lf_dummy. > mr_msg->sy_set( ). > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > READ TABLE mt_t002 TRANSPORTING NO FIELDS WITH KEY > spras = if_spras. > IF sy-subrc <> 0. > CLEAR: ls_t002. > SELECT SINGLE spras FROM t002 INTO ls_t002-spras > WHERE spras = if_spras. > IF sy-subrc = 0. > APPEND ls_t002 TO mt_t002. > ELSE. > MESSAGE e108 WITH 'Sprache' if_spras INTO lf_dummy. > mr_msg->sy_set( ). > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > ENDIF. > > ENDMETHOD. > > METHOD convert_objtrn. > > DATA: ls_key18 TYPE ts_key18, > ls_key40 TYPE ts_key40, > lf_dummy_spras TYPE c, > lf_objnr TYPE /gib/dcv_objid, > lf_dummy TYPE c. > > ls_key18 = is_objtrn-keyval. > IF ls_key18-matnr NOT IN so_matnr. > RETURN. > ENDIF. > MOVE-CORRESPONDING ls_key18 TO ls_key40. > SELECT COUNT(*) FROM mara > WHERE matnr = ls_key40-matnr. > IF sy-subrc <> 0. "material not valid > MESSAGE e108 WITH 'Material' ls_key40-matnr INTO lf_dummy. > mr_msg->sy_set( ). > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > check_spras( ls_key40-spras ). > DATA(lf_keyval) = is_objtrn-keyval. > lf_keyval = ls_key40. > SELECT SINGLE objectid FROM /gib/dcv_objtrn INTO lf_objnr > WHERE tabname = 'MAKT' > AND keyval = lf_keyval. > IF sy-subrc = 0. > MESSAGE e108 WITH 'Objekt-ID zu Materialtext' lf_keyval INTO lf_dummy. > mr_msg->sy_set( ). > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > UPDATE /gib/dcv_objtrn SET keyval = lf_keyval > WHERE objectid = is_objtrn-objectid. > mf_convert_count = mf_convert_count + 1. > mf_commit_count = mf_commit_count + 1. > > ENDMETHOD. > >ENDCLASS.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 14124
: 5169