Bugzilla – Attachment 5930 Details for
Bug 15954
Die Parameter für den Daten-Reorg am Webserver werden nicht berücksichtigt
DE
|
EN
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
Log In
[x]
|
Forgot Password
Login:
[x]
Vorlage Reorganisationsprogramm
ZGIB_DCV_DATA_REORG.txt (text/plain), 22.60 KB, created by
Hopmann, Peter
on 2023-06-19 10:29:08 CEST
(
hide
)
Description:
Vorlage Reorganisationsprogramm
Filename:
MIME Type:
Creator:
Hopmann, Peter
Created:
2023-06-19 10:29:08 CEST
Size:
22.60 KB
patch
obsolete
>*&---------------------------------------------------------------------* >*& Report ZGIB_DCV_REORG_DATA >*& >*&---------------------------------------------------------------------* >*& >*& >*&---------------------------------------------------------------------* > >REPORT zgib_dcv_reorg_data. > >TABLES: /gib/dcvt012, > /gib/dcvt112, > /gib/dcvt003, > /gib/dcvt103_s, > /gib/dcv_objtrn. > >SELECTION-SCREEN: BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001. >PARAMETERS: pa_vmi RADIOBUTTON GROUP vi USER-COMMAND setmode MODIF ID slm, > pa_imv RADIOBUTTON GROUP vi MODIF ID slm. >SELECT-OPTIONS: so_abnmr FOR /gib/dcvt012-abnmr MODIF ID vmi, > so_lifnr FOR /gib/dcvt012-lifnr MODIF ID vmi, > so_slabv FOR /gib/dcvt003-sc_label MODIF ID vmi, > so_kunnr FOR /gib/dcvt112-kunnr MODIF ID imv, > so_abnmi FOR /gib/dcvt112-abnmr MODIF ID imv, > so_suppl FOR /gib/dcvt112-suppl MODIF ID imv, > so_slabi FOR /gib/dcvt103_s-sc_label MODIF ID imv, > so_matnr FOR /gib/dcvt012-matnr MODIF ID vmi, > so_matni FOR /gib/dcvt112-matnr MODIF ID imv. >SELECT-OPTIONS: so_objid FOR /gib/dcv_objtrn-objectid. > >SELECTION-SCREEN SKIP 1. >SELECTION-SCREEN: END OF BLOCK bl1. >SELECTION-SCREEN: BEGIN OF BLOCK bl2 WITH FRAME TITLE text-003. >SELECTION-SCREEN: BEGIN OF BLOCK bl3 WITH FRAME. >PARAMETERS: pa_avis AS CHECKBOX USER-COMMAND dummy MODIF ID vmi. >PARAMETERS: pa_areo TYPE /gib/dcvt000-avis_reorg MODIF ID are. >PARAMETERS: pa_mhist AS CHECKBOX USER-COMMAND dummy. >PARAMETERS: pa_mreo TYPE /gib/dcvt000-datah_reorg MODIF ID mre. >PARAMETERS: pa_limit AS CHECKBOX USER-COMMAND dummy. >PARAMETERS: pa_lreo TYPE /gib/dcvt000-limits_reorg MODIF ID lre. >SELECTION-SCREEN: END OF BLOCK bl3. >PARAMETERS: pa_delxx AS CHECKBOX. >PARAMETERS: pa_trans AS CHECKBOX MODIF ID npr. >SELECTION-SCREEN: END OF BLOCK bl2. > >SELECTION-SCREEN BEGIN OF BLOCK bl99 WITH FRAME TITLE text-096 > NO INTERVALS. >SELECTION-SCREEN PUSHBUTTON /2(4) pinfo USER-COMMAND pinf MODIF ID noc. >SELECTION-SCREEN COMMENT 7(54) gib_name. >SELECTION-SCREEN COMMENT /7(54) gib_addr. > >SELECTION-SCREEN END OF BLOCK bl99. > > >CLASS lcl_dprov DEFINITION ABSTRACT. > > PUBLIC SECTION. > METHODS check_material ABSTRACT IMPORTING if_objid TYPE /gib/dcv_objid > RAISING /gib/cx_dcv. > >ENDCLASS. > >CLASS lcl_dprov_vmi DEFINITION INHERITING FROM lcl_dprov. > > PUBLIC SECTION. > METHODS: check_material REDEFINITION. > >ENDCLASS. > >CLASS lcl_dprov_imv DEFINITION INHERITING FROM lcl_dprov. > > PUBLIC SECTION. > METHODS: check_material REDEFINITION. > >ENDCLASS. > >CLASS lcl_reorg DEFINITION ABSTRACT. > > PUBLIC SECTION. > > METHODS: constructor. > METHODS: read_data ABSTRACT, > process_data, >* create_items ABSTRACT, >* delete_data, > delete_item IMPORTING ir_data TYPE REF TO /gib/cl_dcv_single_data, > delete_invalid_data ABSTRACT, > get_msg RETURNING VALUE(er_msg) TYPE REF TO /gib/if_msg_queue. > > PROTECTED SECTION. > DATA: mr_msg TYPE REF TO /gib/if_msg_queue, > mf_count TYPE i, > mf_commit_count TYPE i. > > METHODS: transfer_data IMPORTING ir_data TYPE REF TO /gib/cl_dcv_single_data > RAISING /gib/cx_dcv, > get_label ABSTRACT RETURNING VALUE(ef_label) TYPE ddtext. > >ENDCLASS. > >CLASS lcl_flow DEFINITION. > > PUBLIC SECTION. > CLASS-METHODS: at_initialization, > at_pbo, > at_pai, > start_of_selection, > get_dprov RETURNING VALUE(er_dprov) TYPE REF TO lcl_dprov, > set_mode. > > PRIVATE SECTION. > CLASS-DATA: gr_dprov TYPE REF TO lcl_dprov. > > CLASS-METHODS: reorg IMPORTING ir_reorg TYPE REF TO lcl_reorg. > >ENDCLASS. > >CLASS lcl_reorg_avis DEFINITION INHERITING FROM lcl_reorg. > > PUBLIC SECTION. > METHODS: read_data REDEFINITION, > process_data REDEFINITION, > delete_invalid_data REDEFINITION, > constructor IMPORTING if_horizon TYPE /gib/dcvt000-avis_reorg. > > TYPES: BEGIN OF ts_del, > delid TYPE /gib/dcv_indel-delid, > abnmr TYPE /gib/dcv_indel-abnmr, > lifnr TYPE /gib/dcv_indel-lifnr, > matnr TYPE /gib/dcv_indel-matnr, > datum TYPE /gib/dcv_indel-datum, > END OF ts_del. > > PROTECTED SECTION. > METHODS get_label REDEFINITION. > > PRIVATE SECTION. > DATA: mf_horizon TYPE /gib/dcvt000-avis_reorg, > mt_avis TYPE TABLE OF ts_del, > mt_invalid TYPE TABLE OF ts_del. > >ENDCLASS. > >CLASS lcl_reorg_limits DEFINITION INHERITING FROM lcl_reorg. > > PUBLIC SECTION. > METHODS: read_data REDEFINITION, > process_data REDEFINITION, > delete_invalid_data REDEFINITION, > constructor IMPORTING if_horizon TYPE /gib/dcvt000-limits_reorg. > > PROTECTED SECTION. > METHODS: get_label REDEFINITION. > > PRIVATE SECTION. > DATA: mf_horizon TYPE /gib/dcvt000-limits_reorg, > mt_limit TYPE TABLE OF /gib/cl_dcv_mat_stock_limits=>ts_key, > mt_invalid TYPE TABLE OF /gib/cl_dcv_mat_stock_limits=>ts_key. > > METHODS: check_limit_obsolete IMPORTING is_limit TYPE /gib/cl_dcv_mat_stock_limits=>ts_key > RAISING /gib/cx_root. > >ENDCLASS. > >CLASS lcl_reorg_mathist DEFINITION INHERITING FROM lcl_reorg. > > PUBLIC SECTION. > METHODS: read_data REDEFINITION, > process_data REDEFINITION, > delete_invalid_data REDEFINITION, > constructor IMPORTING if_horizon TYPE /gib/dcvt000-datah_reorg. > > PROTECTED SECTION. > METHODS: get_label REDEFINITION. > > PRIVATE SECTION. > DATA: mf_horizon TYPE /gib/dcvt000-datah_reorg, > mt_mhist TYPE SORTED TABLE OF /gib/cl_dcv_material_data_hist=>ts_key > WITH UNIQUE KEY objectid_scmat erdat, > mt_invalid TYPE TABLE OF /gib/cl_dcv_material_data_hist=>ts_key. > >ENDCLASS. > >CLASS lcl_flow IMPLEMENTATION. > > METHOD at_initialization. > > DATA(lf_repid) = sy-repid. > TRY. >* /gib/cl_dc_tools=>check_report_authority( lf_repid ). > /gib/cl_dcv_authority_check=>authority_check( if_auth_object = 'TE' > if_activity = '02' ). > CATCH /gib/cx_dcv INTO DATA(lr_error). > MESSAGE lr_error TYPE 'E'. > LEAVE PROGRAM. > ENDTRY. > > DATA(ls_inst) = /gib/cl_dcv_installation=>get_instance( )->get_data( ). > pa_areo = ls_inst-avis_reorg. > IF pa_areo IS INITIAL. > pa_areo = 365. > ENDIF. > pa_lreo = ls_inst-limits_reorg. > IF pa_lreo IS INITIAL. > pa_lreo = 365. > ENDIF. > pa_mreo = ls_inst-datah_reorg. > IF pa_mreo IS INITIAL. > pa_mreo = 365. > ENDIF. > > DATA(lr_inst) = /gib/cl_dcv_installation=>get_instance( ). > IF pa_vmi = abap_false > AND pa_imv = abap_false. > IF lr_inst->is_vmi_active( ) <> lr_inst->is_imv_active( ). > pa_vmi = lr_inst->is_vmi_active( ). > pa_imv = lr_inst->is_imv_active( ). > ELSE. > pa_vmi = abap_true. > pa_imv = abap_false. > ENDIF. > ENDIF. > pa_avis = abap_true. > pa_limit = abap_true. > pa_mhist = abap_true. > pa_delxx = abap_true. > > gib_name = /gib/cl_legal_notice=>get_copyright_notice( ). > gib_addr = /gib/cl_legal_notice=>get_address_line( ). > pinfo = icon_information. > > ENDMETHOD. > > METHOD at_pbo. > > DATA(lr_inst) = /gib/cl_dcv_installation=>get_instance( ). > > LOOP AT SCREEN. > CASE screen-group1. > WHEN 'ARE'. > IF pa_avis = abap_false > OR pa_vmi = abap_false. > screen-active = 0. > ENDIF. > > WHEN 'LRE'. > IF pa_limit = abap_false. > screen-active = 0. > ENDIF. > > WHEN 'MRE'. > IF pa_mhist = abap_false. > screen-active = 0. > ENDIF. > > WHEN 'SLM'. > IF lr_inst->is_vmi_active( ) <> lr_inst->is_imv_active( ). > screen-active = 0. > ENDIF. > > WHEN 'VMI'. > IF pa_vmi = abap_false. > screen-active = 0. > ENDIF. > > WHEN 'IMV'. > IF pa_imv = abap_false. > screen-active = 0. > ENDIF. > > ENDCASE. > MODIFY SCREEN. > ENDLOOP. > > ENDMETHOD. > > METHOD at_pai. > > CASE sy-ucomm. > WHEN 'SETMODE'. > lcl_flow=>set_mode( ). > > WHEN 'PINF'. > CALL FUNCTION '/GIB/DC_SHOW_INFO_WINDOW'. > > ENDCASE. > > ENDMETHOD. > > METHOD start_of_selection. > > DATA: lr_reorg TYPE REF TO lcl_reorg. > DATA(lr_msg) = NEW /gib/cl_msg_queue( ). > > IF pa_avis = abap_true > AND pa_vmi = abap_true. > lr_reorg = NEW lcl_reorg_avis( pa_areo ). > reorg( lr_reorg ). > lr_msg->add_msg_queue( lr_reorg->get_msg( ) ). > ENDIF. > > IF pa_mhist = abap_true. > lr_reorg = NEW lcl_reorg_mathist( pa_mreo ). > reorg( lr_reorg ). > lr_msg->add_msg_queue( lr_reorg->get_msg( ) ). > ENDIF. > > IF pa_limit = abap_true. > lr_reorg = NEW lcl_reorg_limits( pa_lreo ). > reorg( lr_reorg ). > lr_msg->add_msg_queue( lr_reorg->get_msg( ) ). > ENDIF. > > lr_msg->show( if_batch_list_type = /gib/if_msg_queue=>co_batch_list_type_spool ). > > ENDMETHOD. > > METHOD get_dprov. > > IF gr_dprov IS INITIAL. > set_mode( ). > ENDIF. > er_dprov = gr_dprov. > > ENDMETHOD. > > METHOD set_mode. > > IF pa_vmi IS INITIAL > AND pa_imv IS INITIAL. > pa_vmi = abap_true. > ENDIF. > CASE abap_true. > WHEN pa_vmi. > gr_dprov = NEW lcl_dprov_vmi( ). > > WHEN pa_imv. > gr_dprov = NEW lcl_dprov_imv( ). > > ENDCASE. > > ENDMETHOD. > > METHOD reorg. > > ir_reorg->read_data( ). > ir_reorg->process_data( ). > IF pa_delxx = abap_true. > ir_reorg->delete_invalid_data( ). > ENDIF. > > ENDMETHOD. > >ENDCLASS. > >CLASS lcl_reorg IMPLEMENTATION. > > METHOD constructor. > > mr_msg = NEW /gib/cl_msg_queue( ). > > ENDMETHOD. > > METHOD process_data. > > DATA: lf_dummy TYPE c. > > COMMIT WORK. > DATA(lf_label) = get_label( ). > MESSAGE s406(/gib/dcv) WITH lf_label mf_count INTO lf_dummy. > mr_msg->add_symsg( ). > > ENDMETHOD. > > METHOD delete_item. > > CHECK ir_data IS BOUND. > TRY. > ir_data->set_updkz( EXPORTING if_updkz = /gib/cl_dcv_single_data=>co_updkz_delete > EXCEPTIONS OTHERS = 1 ). > IF sy-subrc <> 0. > mr_msg->add_symsg( ). > RETURN. > ENDIF. > ir_data->save_data( ). > mf_count = mf_count + 1. > mf_commit_count = mf_commit_count + 1. > IF pa_trans = abap_true. > transfer_data( ir_data ). > ENDIF. > CATCH /gib/cx_root INTO DATA(lr_error). > mr_msg->add_exception_msg( lr_error ). > ENDTRY. > ir_data->set_updkz( EXPORTING if_updkz = /gib/cl_dcv_single_data=>co_updkz_no_update > EXCEPTIONS OTHERS = 0 ). > IF mf_commit_count > 1000. > COMMIT WORK. > CLEAR: mf_commit_count. > ENDIF. > ir_data->free( ). > > ENDMETHOD. > > METHOD get_msg. > > er_msg = mr_msg. > > ENDMETHOD. > > METHOD transfer_data. > > DATA: lt_data TYPE /gib/dcv_instance_t, > lf_filename TYPE /gib/dcv_fname. > > lf_filename = ir_data->get_io_name( ). > APPEND INITIAL LINE TO lt_data ASSIGNING FIELD-SYMBOL(<ls_instance>). > <ls_instance>-data_r = ir_data. > <ls_instance>-keyval = ir_data->get_key_val( ). > <ls_instance>-objectid = ir_data->get_object_id( ). > /gib/cl_dcv_tools=>upload_items( it_data = lt_data > if_filename = lf_filename ). > > ENDMETHOD. > >ENDCLASS. > >CLASS lcl_reorg_avis IMPLEMENTATION. > > METHOD constructor. > > super->constructor( ). > mf_horizon = if_horizon. > > ENDMETHOD. > > METHOD read_data. > > DATA: lf_datum TYPE sy-datum, > lf_dummy TYPE c, > lr_sc_mat TYPE REF TO /gib/cl_dcv_sc_material. > > lf_datum = sy-datum - mf_horizon. > DATA(lf_label) = get_label( ). > SELECT abnmr lifnr matnr delid datum FROM /gib/dcv_indel INTO CORRESPONDING FIELDS OF TABLE mt_avis > WHERE delid IN so_objid > AND abnmr IN so_abnmr > AND lifnr IN so_lifnr > AND matnr IN so_matnr > AND datum < lf_datum > AND ( delivery_stat = /gib/cl_dcv_delivery=>co_status_delivered > OR delivery_stat = /gib/cl_dcv_delivery=>co_status_delivery_rejected > OR delivery_stat = /gib/cl_dcv_delivery=>co_status_receipt_rejected ). > DATA(lf_total) = sy-dbcnt. > MESSAGE s407(/gib/dcv) WITH lf_label lf_total INTO lf_dummy. > mr_msg->add_symsg( ). > IF so_slabv[] IS NOT INITIAL. > LOOP AT mt_avis ASSIGNING FIELD-SYMBOL(<ls_avis>). > lr_sc_mat ?= /gib/cl_dcv_sc_material=>get_instance( if_abnmr = <ls_avis>-abnmr > if_lifnr = <ls_avis>-lifnr > if_matnr = <ls_avis>-matnr ). > IF lr_sc_mat IS NOT BOUND. > APPEND <ls_avis> TO mt_invalid. > DELETE mt_avis. > CONTINUE. > ENDIF. > TRY. > lcl_flow=>get_dprov( )->check_material( lr_sc_mat->get_object_id( ) ). > CATCH /gib/cx_dcv. > DELETE mt_avis. > ENDTRY. > ENDLOOP. > ENDIF. > > DATA(lf_del) = lines( mt_avis ). > MESSAGE s408(/gib/dcv) WITH lf_label lf_del lf_total INTO lf_dummy. > mr_msg->add_symsg( ). > > ENDMETHOD. > > METHOD process_data. > > LOOP AT mt_avis ASSIGNING FIELD-SYMBOL(<ls_avis>). > DATA(lr_data) = /gib/cl_dcv_delivery=>get_instance( if_delid = <ls_avis>-delid ). > delete_item( lr_data ). > ENDLOOP. > > super->process_data( ). > > ENDMETHOD. > > METHOD delete_invalid_data. > > DATA: lf_count TYPE i, > lf_dummy TYPE c. > > LOOP AT mt_invalid ASSIGNING FIELD-SYMBOL(<ls_invalid>). > DELETE FROM /gib/dcv_indel > WHERE delid = <ls_invalid>-delid. > IF sy-subrc = 0. > lf_count = lf_count + 1. > ENDIF. > ENDLOOP. > DATA(lf_label) = get_label( ). > lf_label = lf_label && | (| && 'ungültige'(002) && ')'. > MESSAGE s406(/gib/dcv) WITH lf_label lf_count INTO lf_dummy. > mr_msg->add_symsg( ). > > ENDMETHOD. > > METHOD get_label. > > SELECT SINGLE descript FROM seoclasstx INTO ef_label "#EC CI_SUBRC > WHERE clsname = '/GIB/CL_DCV_DELIVERY' > AND langu = sy-langu. > > ENDMETHOD. > >ENDCLASS. > >CLASS lcl_reorg_limits IMPLEMENTATION. > > METHOD constructor. > > super->constructor( ). > mf_horizon = if_horizon. > > ENDMETHOD. > > METHOD read_data. > > DATA: lf_datum TYPE sy-datum, > lf_dummy TYPE c. > > lf_datum = sy-datum - mf_horizon. > DATA(lf_label) = get_label( ). > SELECT objectid_scmat erdat lfdnr FROM /gib/dcv_stklmt INTO CORRESPONDING FIELDS OF TABLE mt_limit > WHERE objectid_scmat IN so_objid > AND erdat < lf_datum. > DATA(lf_total) = sy-dbcnt. > MESSAGE s407(/gib/dcv) WITH lf_label lf_total INTO lf_dummy. > mr_msg->add_symsg( ). > SORT mt_limit BY objectid_scmat erdat ASCENDING. > LOOP AT mt_limit ASSIGNING FIELD-SYMBOL(<ls_limit>). > TRY. > lcl_flow=>get_dprov( )->check_material( <ls_limit>-objectid_scmat ). > check_limit_obsolete( <ls_limit> ). > CATCH /gib/cx_dcv_not_found. > APPEND <ls_limit> TO mt_invalid. > DELETE mt_limit. > CATCH /gib/cx_root. > DELETE mt_limit. > ENDTRY. > ENDLOOP. > > DATA(lf_del) = lines( mt_limit ). > MESSAGE s408(/gib/dcv) WITH lf_label lf_del lf_total INTO lf_dummy. > mr_msg->add_symsg( ). > > ENDMETHOD. > > METHOD process_data. > > LOOP AT mt_limit ASSIGNING FIELD-SYMBOL(<ls_limit>). > DATA(lr_data) = /gib/cl_dcv_mat_stock_limits=>get_instance( if_objectid_scmat = <ls_limit>-objectid_scmat > if_erdat = <ls_limit>-erdat > if_lfdnr = <ls_limit>-lfdnr ). > delete_item( lr_data ). > ENDLOOP. > super->process_data( ). > > ENDMETHOD. > > METHOD check_limit_obsolete. > > DATA: lt_mhist TYPE TABLE OF /gib/cl_dcv_material_data_hist=>ts_key. > > DATA: lt_limit TYPE TABLE OF /gib/dcv_stklmt. > SELECT * FROM /gib/dcv_stklmt INTO TABLE lt_limit. > > SELECT SINGLE COUNT(*) FROM /gib/dcv_stklmt > WHERE objectid_scmat = is_limit-objectid_scmat > AND erdat > is_limit-erdat. > IF sy-subrc <> 0. > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > > SELECT objectid_scmat erdat FROM /gib/dcv_mhist INTO TABLE lt_mhist > WHERE objectid_scmat = is_limit-objectid_scmat > AND erdat >= is_limit-erdat. > IF sy-subrc = 0. > SORT lt_mhist BY erdat ASCENDING. > READ TABLE lt_mhist ASSIGNING FIELD-SYMBOL(<ls_mhist>) INDEX 1. > SELECT SINGLE COUNT(*) FROM /gib/dcv_stklmt > WHERE objectid_scmat = is_limit-objectid_scmat > AND erdat > is_limit-erdat > AND erdat <= <ls_mhist>-erdat. > IF sy-subrc <> 0. > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > > ENDIF. > > ENDMETHOD. > > METHOD delete_invalid_data. > > DATA: lf_count TYPE i, > lf_dummy TYPE c. > > LOOP AT mt_invalid ASSIGNING FIELD-SYMBOL(<ls_invalid>). > DELETE FROM /gib/dcv_stklmt > WHERE objectid_scmat = <ls_invalid>-objectid_scmat > AND erdat = <ls_invalid>-erdat > AND lfdnr = <ls_invalid>-lfdnr. > IF sy-subrc = 0. > lf_count = lf_count + 1. > ENDIF. > ENDLOOP. > DATA(lf_label) = get_label( ). > lf_label = lf_label && | (| && 'ungültige'(002) && ')'. > MESSAGE s406(/gib/dcv) WITH lf_label lf_count INTO lf_dummy. > mr_msg->add_symsg( ). > > ENDMETHOD. > > METHOD get_label. > > SELECT SINGLE descript FROM seoclasstx INTO ef_label "#EC CI_SUBRC > WHERE clsname = '/GIB/CL_DCV_MAT_STOCK_LIMITS' > AND langu = sy-langu. > > ENDMETHOD. > >ENDCLASS. > >CLASS lcl_reorg_mathist IMPLEMENTATION. > > METHOD constructor. > > super->constructor( ). > mf_horizon = if_horizon. > > ENDMETHOD. > > METHOD read_data. > > DATA: lf_datum TYPE sy-datum, > lf_dummy TYPE c. > > lf_datum = sy-datum - mf_horizon. > DATA(lf_label) = get_label( ). > SELECT objectid_scmat erdat FROM /gib/dcv_mhist INTO CORRESPONDING FIELDS OF TABLE mt_mhist > WHERE objectid_scmat IN so_objid > AND erdat < lf_datum. > DATA(lf_total) = sy-dbcnt. > MESSAGE s407(/gib/dcv) WITH lf_label lf_total INTO lf_dummy. > mr_msg->add_symsg( ). > LOOP AT mt_mhist ASSIGNING FIELD-SYMBOL(<ls_mhist>). > TRY. > lcl_flow=>get_dprov( )->check_material( <ls_mhist>-objectid_scmat ). > LOOP AT mt_mhist TRANSPORTING NO FIELDS > WHERE objectid_scmat = <ls_mhist>-objectid_scmat > AND erdat > <ls_mhist>-erdat. > EXIT. > ENDLOOP. > IF sy-subrc <> 0. > SELECT SINGLE COUNT(*) FROM /gib/dcv_mhist > WHERE objectid_scmat = <ls_mhist>-objectid_scmat > AND erdat > <ls_mhist>-erdat. > ENDIF. > IF sy-subrc <> 0. "caused by loop or select > DELETE mt_mhist. "still needed > ENDIF. > CATCH /gib/cx_dcv_not_found. > APPEND <ls_mhist> TO mt_invalid. > DELETE mt_mhist. > CATCH /gib/cx_dcv. > DELETE mt_mhist. "not selected > ENDTRY. > ENDLOOP. > DATA(lf_del) = lines( mt_mhist ). > MESSAGE s408(/gib/dcv) WITH lf_label lf_del lf_total INTO lf_dummy. > mr_msg->add_symsg( ). > > ENDMETHOD. > > METHOD process_data. > > LOOP AT mt_mhist ASSIGNING FIELD-SYMBOL(<ls_mhist>). > > DATA(lr_data) = /gib/cl_dcv_material_data_hist=>get_instance( if_objectid_scmat = <ls_mhist>-objectid_scmat > if_erdat = <ls_mhist>-erdat ). > delete_item( lr_data ). > ENDLOOP. > super->process_data( ). > > ENDMETHOD. > > METHOD delete_invalid_data. > > DATA: lf_count TYPE i, > lf_dummy TYPE c. > > LOOP AT mt_invalid ASSIGNING FIELD-SYMBOL(<ls_invalid>). > DELETE FROM /gib/dcv_mhist > WHERE objectid_scmat = <ls_invalid>-objectid_scmat > AND erdat = <ls_invalid>-erdat. > IF sy-subrc = 0. > lf_count = lf_count + 1. > ENDIF. > ENDLOOP. > DATA(lf_label) = get_label( ). > lf_label = lf_label && | (| && 'ungültige'(002) && ')'. > MESSAGE s406(/gib/dcv) WITH lf_label lf_count INTO lf_dummy. > mr_msg->add_symsg( ). > > ENDMETHOD. > > METHOD get_label. > > SELECT SINGLE descript FROM seoclasstx INTO ef_label "#EC CI_SUBRC > WHERE clsname = '/GIB/CL_DCV_MATERIAL_DATA_HIST' > AND langu = sy-langu. > > ENDMETHOD. > > >ENDCLASS. > >CLASS lcl_dprov IMPLEMENTATION. > >ENDCLASS. > >CLASS lcl_dprov_vmi IMPLEMENTATION. > > METHOD check_material. > > DATA: lr_sc_mat TYPE REF TO /gib/cl_dcv_sc_material, > lr_sc TYPE REF TO /gib/cl_dcv_supply_chain. > TRY. > lr_sc_mat ?= /gib/cl_dcv_single_data=>get_instance_by_objectid_cx( if_objid ). > CHECK lr_sc_mat IS BOUND. > DATA(ls_mat) = lr_sc_mat->get_data( ). > IF ls_mat-abnmr NOT IN so_abnmr > OR ls_mat-lifnr NOT IN so_lifnr > OR ls_mat-matnr NOT IN so_matnr. > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > lr_sc ?= lr_sc_mat->get_supply_chain( ). > IF lr_sc->get_label( ) NOT IN so_slabv. > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > CATCH cx_sy_move_cast_error. > RAISE EXCEPTION TYPE /gib/cx_dcv. "not what we ar looking for > ENDTRY. > > ENDMETHOD. > >ENDCLASS. > >CLASS lcl_dprov_imv IMPLEMENTATION. > > METHOD check_material. > > DATA: lr_sc_mat TYPE REF TO /gib/cl_dcv_sc_material_imv, > lr_sc TYPE REF TO /gib/cl_dcv_supply_chain_imv. > TRY. > lr_sc_mat ?= /gib/cl_dcv_single_data=>get_instance_by_objectid_cx( if_objid ). > CHECK lr_sc_mat IS BOUND. > DATA(ls_mat) = lr_sc_mat->get_data( ). > IF ls_mat-abnmr NOT IN so_abnmi > OR ls_mat-suppl NOT IN so_suppl > OR ls_mat-kunnr NOT IN so_kunnr > OR ls_mat-matnr NOT IN so_matni. > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > lr_sc ?= lr_sc_mat->get_supply_chain( ). > IF lr_sc->get_label( ) NOT IN so_slabi. > RAISE EXCEPTION TYPE /gib/cx_dcv. > ENDIF. > CATCH cx_sy_move_cast_error. > RAISE EXCEPTION TYPE /gib/cx_dcv. "not what we ar looking for > ENDTRY. > > ENDMETHOD. > >ENDCLASS. > > >INITIALIZATION. > lcl_flow=>at_initialization( ). > >AT SELECTION-SCREEN OUTPUT. > lcl_flow=>at_pbo( ). > >AT SELECTION-SCREEN. > lcl_flow=>at_pai( ). > >START-OF-SELECTION. > lcl_flow=>start_of_selection( ).
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 15954
:
5930
|
5931
|
5932