Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Include ZPPTMATFRPOW_F01
- *&---------------------------------------------------------------------*
- *&---------------------------------------------------------------------*
- *& Form GET_DATA_FOR_NEW_MATERIAL
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM get_data_for_new_material.
- DATA: lv_netto TYPE ntgew,
- lv_brutto TYPE brgew,
- lv_desc_pl TYPE maktx,
- lv_desc_en TYPE maktx,
- lv_desc_de TYPE maktx,
- lv_desc_pl_2 TYPE c LENGTH 60,
- lv_desc_en_2 TYPE c LENGTH 60,
- lv_desc_de_2 TYPE c LENGTH 60,
- lv_normt TYPE normt,
- lv_len TYPE i,
- lv_check TYPE char1,
- lt_class TYPE STANDARD TABLE OF sclass,
- lt_objdata TYPE STANDARD TABLE OF clobjdat,
- ls_objdata LIKE LINE OF lt_objdata,
- lv_atflv TYPE cawn-atflv,
- lv_char_val TYPE cha_class_view-sollwert,
- lv_wsp TYPE zpp_dt_wsp,
- lv_grub TYPE zpp_dt_grub,
- lv_obj TYPE objnum,
- lv_grub_char TYPE char3.
- CLEAR: lv_check.
- SELECT ntgew brgew normt
- INTO (lv_netto, lv_brutto, lv_normt)
- FROM mara UP TO 1 ROWS
- WHERE matnr EQ gv_matnr_sourc.
- ENDSELECT.
- SELECT SINGLE maktx
- INTO lv_desc_pl
- FROM makt
- WHERE matnr EQ gv_matnr_sourc
- AND spras EQ 'L'.
- SELECT SINGLE maktx
- INTO lv_desc_en
- FROM makt
- WHERE matnr EQ gv_matnr_sourc
- AND spras EQ 'E'.
- SELECT SINGLE maktx
- INTO lv_desc_de
- FROM makt
- WHERE matnr EQ gv_matnr_sourc
- AND spras EQ 'D'.
- CLEAR: lv_grub_char.
- lv_grub_char = gv_grub.
- CONCATENATE lv_desc_pl lv_grub_char 'um' INTO lv_desc_pl_2 SEPARATED BY space.
- CONCATENATE lv_desc_en lv_grub_char 'um' INTO lv_desc_en_2 SEPARATED BY space.
- CONCATENATE lv_desc_de lv_grub_char 'um' INTO lv_desc_de_2 SEPARATED BY space.
- CLEAR: lv_len.
- lv_len = STRLEN( lv_desc_pl_2 ).
- IF lv_len > 40.
- gv_matnr_desc_pl = 'Popraw opis materialu'.
- lv_check = 'X'.
- ELSE.
- gv_matnr_desc_pl = lv_desc_pl_2(40).
- ENDIF.
- CLEAR: lv_len.
- lv_len = STRLEN( lv_desc_en_2 ).
- IF lv_len > 40.
- gv_matnr_desc_en = 'Popraw opis materialu'.
- lv_check = 'X'.
- ELSE.
- gv_matnr_desc_en = lv_desc_en_2(40).
- ENDIF.
- CLEAR: lv_len.
- lv_len = STRLEN( lv_desc_de_2 ).
- IF lv_len > 40.
- gv_matnr_desc_de = 'Popraw opis materialu'.
- lv_check = 'X'.
- ELSE.
- gv_matnr_desc_de = lv_desc_de_2(40).
- ENDIF.
- CLEAR lv_obj.
- lv_obj = gv_matnr_sourc.
- CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
- EXPORTING
- class = 'MAT_YFER'
- classtype = '001'
- object = lv_obj
- objecttable = 'MARA'
- TABLES
- t_class = lt_class
- t_objectdata = lt_objdata
- EXCEPTIONS
- no_classification = 1
- no_classtypes = 2
- invalid_class_type = 3
- OTHERS = 4.
- IF sy-subrc <> 0.
- ENDIF.
- READ TABLE lt_objdata INTO ls_objdata WITH KEY atnam = 'GRUBOSC_POWLOKI'.
- lv_atflv = ls_objdata-atflv.
- CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
- EXPORTING
- i_number_of_digits = 0
- i_fltp_value = lv_atflv
- IMPORTING
- e_char_field = lv_char_val.
- lv_grub = lv_char_val.
- SELECT SINGLE wsp
- INTO lv_wsp
- FROM zgr_powloki
- WHERE gr_baz EQ lv_grub
- AND gr_doc EQ gv_grub.
- gv_netto = lv_netto * lv_wsp.
- gv_brutto = lv_brutto * lv_wsp.
- CLEAR: lv_len.
- * lv_len = STRLEN( lv_normt ).
- lv_len = STRLEN( gv_matnr_desti ).
- IF lv_len GT 0.
- lv_len = lv_len - 1.
- * IF lv_normt(lv_len) EQ 'M'.
- IF gv_matnr_desti+lv_len(1) EQ 'M'.
- CLEAR gv_vtweg.
- IF lv_len GT 0.
- * lv_len = lv_len - 1.
- ENDIF.
- * CONCATENATE lv_normt(lv_len) 'VZ' INTO gv_normt.
- CONCATENATE gv_matnr_desti(lv_len) 'VZ' INTO gv_normt.
- ELSE.
- gv_vtweg = 'UE'.
- * CONCATENATE lv_normt 'VZ' INTO gv_normt.
- CONCATENATE gv_matnr_desti 'VZ' INTO gv_normt.
- ENDIF.
- ELSE.
- gv_normt = 'VZ'.
- ENDIF.
- IF lv_check EQ 'X'.
- MESSAGE 'Proszę poprawić nazwę materiału' TYPE 'W'.
- ENDIF.
- ENDFORM. " GET_DATA_FOR_NEW_MATERIAL
- *&---------------------------------------------------------------------*
- *& Form CREATE_MATERIAL
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM create_material.
- * DATA: ls_general TYPE bapimatdoa,
- * ls_return TYPE bapireturn,
- * ls_plant TYPE bapimatdoc,
- * ls_val TYPE bapimatdobew,
- DATA: lv_werks TYPE werks_d,
- lv_bwkey TYPE bwkey,
- lv_lgort TYPE lgort_d,
- lv_vkorg TYPE vkorg,
- lv_vtweg TYPE vtweg,
- lv_bukrs TYPE bukrs.
- DATA: ls_client TYPE bapi_mara_ga,
- ls_plant TYPE bapi_marc_ga,
- ls_forc TYPE bapi_mpop_ga,
- ls_planning TYPE bapi_mpgd_ga,
- ls_stloc TYPE bapi_mard_ga,
- ls_valuation TYPE bapi_mbew_ga,
- ls_wareh TYPE bapi_mlgn_ga,
- ls_sales TYPE bapi_mvke_ga,
- ls_sttype TYPE bapi_mlgt_ga,
- ls_prt TYPE bapi_mfhm_ga,
- ls_lval TYPE bapi_myms_ga.
- DATA: ls_head TYPE bapimathead,
- ls_plant_new TYPE bapi_marc,
- ls_plant_x TYPE bapi_marcx,
- ls_client_new TYPE bapi_mara,
- ls_client_x TYPE bapi_marax,
- ls_sales_new TYPE bapi_mvke,
- ls_sales_x TYPE bapi_mvkex,
- ls_return TYPE bapiret2,
- ls_forc_new TYPE bapi_mpop,
- ls_forc_x TYPE bapi_mpopx,
- ls_planning_new TYPE bapi_mpgd,
- ls_planning_x TYPE bapi_mpgdx,
- ls_stloc_new TYPE bapi_mard,
- ls_stloc_x TYPE bapi_mardx,
- ls_valuation_new TYPE bapi_mbew,
- ls_valuation_x TYPE bapi_mbewx,
- ls_wareh_new TYPE bapi_mlgn,
- ls_wareh_x TYPE bapi_mlgnx,
- ls_sttype_new TYPE bapi_mlgt,
- ls_sttype_x TYPE bapi_mlgtx.
- DATA: lt_matdesc TYPE STANDARD TABLE OF bapi_makt_ga,
- lt_uom TYPE STANDARD TABLE OF bapi_marm_ga,
- lt_int TYPE STANDARD TABLE OF bapi_mean_ga,
- lt_longtext TYPE STANDARD TABLE OF bapi_mltx_ga,
- lt_tax TYPE STANDARD TABLE OF bapi_mlan_ga,
- lt_ext TYPE STANDARD TABLE OF bapiparex,
- lt_return TYPE STANDARD TABLE OF bapireturn,
- lt_return_new TYPE TABLE OF bapi_matreturn2,
- lt_matdesc_new TYPE STANDARD TABLE OF bapi_makt,
- ls_matdesc_new LIKE LINE OF lt_matdesc_new.
- DATA: lt_uom_new TYPE STANDARD TABLE OF bapi_marm,
- lt_uom_x TYPE bapi_marmx OCCURS 0.
- DATA: lt_marc TYPE TABLE OF marc,
- lv_int TYPE i,
- lv_counter TYPE sy-index,
- lv_view.
- DATA: lt_char TYPE STANDARD TABLE OF bapi1003_alloc_values_char,
- lt_numc TYPE STANDARD TABLE OF bapi1003_alloc_values_num,
- lt_curr TYPE STANDARD TABLE OF bapi1003_alloc_values_curr,
- ls_char LIKE LINE OF lt_char,
- ls_numc LIKE LINE OF lt_numc,
- lt_return_bapi TYPE STANDARD TABLE OF bapiret2,
- ls_ret_new LIKE LINE OF lt_return_new,
- ls_ret_bap LIKE LINE OF lt_return_bapi,
- lv_obj TYPE objnum,
- lv_lines TYPE i.
- DATA: ls_tax LIKE LINE OF lt_tax,
- lt_tax_new TYPE STANDARD TABLE OF bapi_mlan,
- ls_tax_new LIKE LINE OF lt_tax_new.
- FIELD-SYMBOLS: <fs_marc> TYPE marc,
- <f1> TYPE ANY,
- <f2> TYPE ANY,
- <fms> TYPE bapi_matreturn2,
- <uom> TYPE bapi_marm,
- <uomx> TYPE bapi_marmx.
- CLEAR: gt_return.
- SELECT SINGLE werks
- INTO lv_werks
- FROM marc
- WHERE matnr EQ gv_matnr_sourc.
- SELECT SINGLE bwkey
- INTO lv_bwkey
- FROM mbew
- WHERE matnr EQ gv_matnr_sourc.
- SELECT SINGLE lgort
- INTO lv_lgort
- FROM mard
- WHERE matnr EQ gv_matnr_sourc
- AND werks EQ lv_werks.
- SELECT SINGLE vkorg vtweg
- INTO (lv_vkorg, lv_vtweg)
- FROM mvke
- WHERE matnr EQ gv_matnr_sourc.
- SELECT SINGLE bukrs
- INTO lv_bukrs
- FROM t001k
- WHERE bwkey EQ lv_bwkey.
- SELECT * FROM marc
- INTO TABLE lt_marc
- WHERE matnr EQ gv_matnr_sourc
- AND werks EQ lv_werks.
- CALL FUNCTION 'BAPI_MATERIAL_GET_ALL'
- EXPORTING
- material = gv_matnr_sourc
- comp_code = lv_bukrs
- val_area = lv_bwkey
- * val_type =
- plant = lv_werks
- stge_loc = lv_lgort
- salesorg = lv_vkorg
- distr_chan = lv_vtweg
- * whsenumber =
- * stge_type =
- * lifo_valuation_level =
- * kzrfb_all =
- IMPORTING
- clientdata = ls_client
- plantdata = ls_plant
- forecastparameters = ls_forc
- planningdata = ls_planning
- storagelocationdata = ls_stloc
- valuationdata = ls_valuation
- warehousenumberdata = ls_wareh
- salesdata = ls_sales
- storagetypedata = ls_sttype
- prtdata = ls_prt
- lifovaluationdata = ls_lval
- TABLES
- materialdescription = lt_matdesc
- unitsofmeasure = lt_uom
- internationalartnos = lt_int
- materiallongtext = lt_longtext
- taxclassifications = lt_tax
- extensionout = lt_ext
- return = lt_return.
- IF sy-subrc = 0.
- READ TABLE lt_marc ASSIGNING <fs_marc> INDEX 1.
- IF sy-subrc = 0.
- lv_counter = 0.
- CLEAR lv_view.
- lv_int = STRLEN( <fs_marc>-pstat ).
- DO lv_int TIMES.
- lv_view = <fs_marc>-pstat+lv_counter(sy-index).
- IF lv_view IS INITIAL.
- EXIT.
- ENDIF.
- lv_counter = lv_counter + 1.
- CASE lv_view.
- WHEN 'K'.
- ls_head-basic_view = lv_view.
- WHEN 'V'.
- ls_head-sales_view = lv_view.
- WHEN 'E'.
- ls_head-purchase_view = lv_view.
- WHEN 'D' .
- ls_head-mrp_view = lv_view.
- WHEN 'P'.
- ls_head-forecast_view = lv_view.
- WHEN 'A'.
- ls_head-work_sched_view = lv_view.
- WHEN 'F'.
- ls_head-prt_view = lv_view.
- WHEN 'L'.
- ls_head-storage_view = lv_view.
- WHEN 'S'.
- ls_head-warehouse_view = lv_view.
- WHEN 'Q'.
- ls_head-quality_view = lv_view.
- WHEN 'B'.
- ls_head-account_view = lv_view.
- WHEN 'G'.
- ls_head-cost_view = lv_view.
- WHEN OTHERS.
- ENDCASE.
- ENDDO.
- ENDIF.
- ENDIF.
- ls_head-material = gv_matnr_desti.
- ls_head-ind_sector = ls_client-ind_sector.
- ls_head-matl_type = ls_client-matl_type.
- ls_head-basic_view = 'X'.
- MOVE-CORRESPONDING ls_client TO ls_client_new.
- MOVE-CORRESPONDING ls_plant TO ls_plant_new.
- MOVE-CORRESPONDING ls_forc TO ls_forc_new.
- MOVE-CORRESPONDING ls_planning TO ls_planning_new.
- MOVE-CORRESPONDING ls_stloc TO ls_stloc_new.
- MOVE-CORRESPONDING ls_valuation TO ls_valuation_new.
- MOVE-CORRESPONDING ls_wareh TO ls_wareh_new.
- MOVE-CORRESPONDING ls_sales TO ls_sales_new.
- MOVE-CORRESPONDING ls_sttype TO ls_sttype_new.
- IF gv_vtweg IS NOT INITIAL.
- ls_sales_new-distr_chan = gv_vtweg.
- ENDIF.
- ls_client_new-net_weight = gv_netto.
- ls_client_new-std_descr = gv_normt.
- ls_plant_new-iss_st_loc = lv_lgort.
- DO.
- CASE sy-index.
- WHEN 1.
- ASSIGN ls_client_new TO <f1>.
- ASSIGN ls_client_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN 2.
- ASSIGN ls_plant_new TO <f1>.
- ASSIGN ls_plant_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN 3.
- ASSIGN ls_forc_new TO <f1>.
- ASSIGN ls_forc_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN 4.
- ASSIGN ls_planning_new TO <f1>.
- ASSIGN ls_planning_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN 5.
- ASSIGN ls_stloc_new TO <f1>.
- ASSIGN ls_stloc_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN 6.
- ASSIGN ls_valuation_new TO <f1>.
- ASSIGN ls_valuation_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN 7.
- ASSIGN ls_wareh_new TO <f1>.
- ASSIGN ls_wareh_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN 8.
- ASSIGN ls_sales_new TO <f1>.
- ASSIGN ls_sales_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN 9.
- ASSIGN ls_sttype_new TO <f1>.
- ASSIGN ls_sttype_x TO <f2>.
- PERFORM fill_update_struct USING <f1> <f2>.
- WHEN OTHERS.
- EXIT.
- ENDCASE.
- ENDDO.
- CLEAR: lt_matdesc_new.
- DO 3 TIMES.
- CASE sy-index.
- WHEN 1.
- CLEAR ls_matdesc_new.
- ls_matdesc_new-langu = 'L'.
- ls_matdesc_new-langu_iso = 'PL'.
- ls_matdesc_new-matl_desc = gv_matnr_desc_pl.
- APPEND ls_matdesc_new TO lt_matdesc_new.
- WHEN 2.
- CLEAR ls_matdesc_new.
- ls_matdesc_new-langu = 'D'.
- ls_matdesc_new-langu_iso = 'DE'.
- ls_matdesc_new-matl_desc = gv_matnr_desc_de.
- APPEND ls_matdesc_new TO lt_matdesc_new.
- WHEN 3.
- CLEAR ls_matdesc_new.
- ls_matdesc_new-langu = 'E'.
- ls_matdesc_new-langu_iso = 'EN'.
- ls_matdesc_new-matl_desc = gv_matnr_desc_en.
- APPEND ls_matdesc_new TO lt_matdesc_new.
- ENDCASE.
- ENDDO.
- * ls_sales_new-sales_org = .
- * ls_sales_new-distr_chan = .
- CLEAR: ls_sales_x-sales_org,
- ls_sales_x-distr_chan,
- ls_plant_x-plant,
- ls_valuation_x-val_area,
- ls_stloc_x-plant,
- ls_stloc_x-stge_loc,
- ls_wareh_x-whse_no,
- ls_sttype_x-whse_no,
- ls_sttype_x-stge_type.
- ls_sales_x-sales_org = ls_sales_new-sales_org.
- ls_sales_x-distr_chan = ls_sales_new-distr_chan.
- ls_plant_x-plant = ls_plant_new-plant.
- ls_valuation_x-val_area = ls_valuation_new-val_area.
- ls_stloc_x-plant = ls_stloc_new-plant.
- ls_stloc_x-stge_loc = ls_stloc_new-stge_loc.
- ls_wareh_x-whse_no = ls_wareh_new-whse_no.
- ls_sttype_x-whse_no = ls_sttype_new-whse_no.
- ls_sttype_x-stge_type = ls_sttype_new-stge_type.
- CLEAR: ls_valuation_new-std_price, ls_valuation_new-moving_pr.
- APPEND INITIAL LINE TO lt_uom_new ASSIGNING <uom>.
- <uom>-alt_unit = ls_client_new-base_uom.
- <uom>-gross_wt = gv_brutto.
- APPEND INITIAL LINE TO lt_uom_x ASSIGNING <uomx>.
- <uomx>-alt_unit = ls_client_new-base_uom.
- <uomx>-gross_wt = 'X'.
- LOOP AT lt_tax INTO ls_tax.
- MOVE-CORRESPONDING ls_tax TO ls_tax_new.
- APPEND ls_tax_new TO lt_tax_new.
- ENDLOOP.
- CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
- EXPORTING
- headdata = ls_head
- clientdata = ls_client_new
- clientdatax = ls_client_x
- plantdata = ls_plant_new
- plantdatax = ls_plant_x
- forecastparameters = ls_forc_new
- forecastparametersx = ls_forc_x
- planningdata = ls_planning_new
- planningdatax = ls_planning_x
- storagelocationdata = ls_stloc_new
- storagelocationdatax = ls_stloc_x
- valuationdata = ls_valuation_new
- valuationdatax = ls_valuation_x
- warehousenumberdata = ls_wareh_new
- warehousenumberdatax = ls_wareh_x
- salesdata = ls_sales_new
- salesdatax = ls_sales_x
- storagetypedata = ls_sttype_new
- storagetypedatax = ls_sttype_x
- * FLAG_ONLINE = ' '
- * FLAG_CAD_CALL = ' '
- * NO_DEQUEUE = ' '
- * NO_ROLLBACK_WORK = ' '
- IMPORTING
- return = ls_return
- TABLES
- materialdescription = lt_matdesc_new
- unitsofmeasure = lt_uom_new
- unitsofmeasurex = lt_uom_x
- * INTERNATIONALARTNOS =
- * MATERIALLONGTEXT =
- taxclassifications = lt_tax_new
- returnmessages = lt_return_new
- * PRTDATA =
- * PRTDATAX =
- * EXTENSIONIN =
- * EXTENSIONINX =
- .
- LOOP AT lt_return_new INTO ls_ret_new.
- CLEAR: ls_ret_bap.
- MOVE-CORRESPONDING ls_ret_new TO ls_ret_bap.
- APPEND ls_ret_bap TO gt_return.
- ENDLOOP.
- IF ls_return-type EQ 'S'.
- CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
- EXPORTING
- wait = 'X'.
- CLEAR: ls_char.
- ls_char-charact = 'INDEKS_BAZOWY'.
- ls_char-value_char = gv_matnr_sourc.
- APPEND ls_char TO lt_char.
- CLEAR: ls_numc.
- ls_numc-charact = 'GRUBOSC_POWLOKI'.
- ls_numc-value_from = gv_grub.
- APPEND ls_numc TO lt_numc.
- CLEAR lv_obj.
- lv_obj = gv_matnr_desti.
- CALL FUNCTION 'BAPI_OBJCL_CHANGE'
- EXPORTING
- objectkey = lv_obj
- objecttable = 'MARA'
- classnum = 'MAT_YFER'
- classtype = '001'
- TABLES
- allocvaluesnumnew = lt_numc
- allocvaluescharnew = lt_char
- allocvaluescurrnew = lt_curr
- return = lt_return_bapi.
- LOOP AT lt_return_bapi INTO ls_ret_new.
- CLEAR: ls_ret_bap.
- MOVE-CORRESPONDING ls_ret_new TO ls_ret_bap.
- APPEND ls_ret_bap TO gt_return.
- ENDLOOP.
- CLEAR: ls_ret_bap.
- DESCRIBE TABLE lt_return_bapi LINES lv_lines.
- READ TABLE lt_return_bapi INTO ls_ret_bap INDEX lv_lines.
- IF ls_ret_bap-type EQ 'S'.
- CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
- EXPORTING
- wait = 'X'.
- * MESSAGE 'Operacja zakończona pomyślnie' TYPE 'S'.
- ELSE.
- CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
- * MESSAGE 'Utworzono materiał, nie utworzono klasyfikacji' TYPE 'S' DISPLAY LIKE 'E'.
- ENDIF.
- **********************
- CLEAR: lt_numc, lt_char, lt_curr, lt_return_bapi.
- CALL FUNCTION 'BAPI_OBJCL_CHANGE'
- EXPORTING
- objectkey = lv_obj
- objecttable = 'MARA'
- classnum = 'KLASA_WYR_GOTOWE'
- classtype = '022'
- TABLES
- allocvaluesnumnew = lt_numc
- allocvaluescharnew = lt_char
- allocvaluescurrnew = lt_curr
- return = lt_return_bapi.
- LOOP AT lt_return_bapi INTO ls_ret_new.
- CLEAR: ls_ret_bap.
- MOVE-CORRESPONDING ls_ret_new TO ls_ret_bap.
- APPEND ls_ret_bap TO gt_return.
- ENDLOOP.
- CLEAR: ls_ret_bap.
- DESCRIBE TABLE lt_return_bapi LINES lv_lines.
- READ TABLE lt_return_bapi INTO ls_ret_bap INDEX lv_lines.
- IF ls_ret_bap-type EQ 'S'.
- CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
- EXPORTING
- wait = 'X'.
- * MESSAGE 'Operacja zakończona pomyślnie' TYPE 'S'.
- ELSE.
- CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
- * MESSAGE 'Utworzono materiał, nie utworzono klasyfikacji' TYPE 'S' DISPLAY LIKE 'E'.
- ENDIF.
- ********************
- ELSE.
- CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
- * MESSAGE 'Nie utworzono materiału' TYPE 'S' DISPLAY LIKE 'E'.
- ENDIF.
- CALL FUNCTION 'RSCRMBW_DISPLAY_BAPIRET2'
- TABLES
- it_return = gt_return.
- ENDFORM. " CREATE_MATERIAL
- *&---------------------------------------------------------------------*
- *& Form FILL_UPDATE_STRUCT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * -->P_<F1> text
- * -->P_<F2> text
- *----------------------------------------------------------------------*
- FORM fill_update_struct USING p_f1 TYPE any
- p_f2 TYPE any.
- FIELD-SYMBOLS: <fstruct> TYPE ANY,
- <fstructx> TYPE ANY.
- DO.
- ASSIGN COMPONENT sy-index OF STRUCTURE p_f1 TO <fstruct>.
- IF sy-subrc <> 0. EXIT. ENDIF.
- IF <fstruct> IS NOT INITIAL.
- ASSIGN COMPONENT sy-index OF STRUCTURE p_f2 TO <fstructx>.
- IF sy-subrc = 0.
- <fstructx> = 'X'.
- ENDIF.
- ENDIF.
- ENDDO.
- ENDFORM. " FILL_UPDATE_STRUCT
- *&------------------------------------------------------*
- *& Form add_field
- *&------------------------------------------------------*
- * Add field info to fieldtab given its table name and
- * field name
- *-------------------------------------------------------*
- * -->TABNAME text
- * -->FIELDNAME text
- *-------------------------------------------------------*
- FORM add_field
- TABLES p_fields
- USING tabname TYPE tabname
- fieldname TYPE fieldname.
- DATA: ls_field TYPE dfies,
- lt_fields TYPE STANDARD TABLE OF dfies.
- CALL FUNCTION 'DDIF_FIELDINFO_GET'
- EXPORTING
- tabname = tabname
- fieldname = fieldname
- TABLES
- dfies_tab = lt_fields
- EXCEPTIONS
- not_found = 1
- internal_error = 2
- OTHERS = 3.
- IF sy-subrc <> 0.
- MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
- WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
- ENDIF.
- APPEND LINES OF lt_fields TO p_fields.
- ENDFORM. "add_field
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement