Advertisement
Guest User

Untitled

a guest
Jun 14th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 21.83 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *&  Include           ZPPTMATFRPOW_F01
  3. *&---------------------------------------------------------------------*
  4. *&---------------------------------------------------------------------*
  5. *&      Form  GET_DATA_FOR_NEW_MATERIAL
  6. *&---------------------------------------------------------------------*
  7. *       text
  8. *----------------------------------------------------------------------*
  9. *  -->  p1        text
  10. *  <--  p2        text
  11. *----------------------------------------------------------------------*
  12. FORM get_data_for_new_material.
  13.   DATA: lv_netto TYPE ntgew,
  14.         lv_brutto TYPE brgew,
  15.         lv_desc_pl TYPE maktx,
  16.         lv_desc_en TYPE maktx,
  17.         lv_desc_de TYPE maktx,
  18.         lv_desc_pl_2 TYPE c LENGTH 60,
  19.         lv_desc_en_2 TYPE c LENGTH 60,
  20.         lv_desc_de_2 TYPE c LENGTH 60,
  21.         lv_normt TYPE normt,
  22.         lv_len TYPE i,
  23.         lv_check TYPE char1,
  24.         lt_class TYPE STANDARD TABLE OF sclass,
  25.         lt_objdata TYPE STANDARD TABLE OF clobjdat,
  26.         ls_objdata LIKE LINE OF lt_objdata,
  27.         lv_atflv TYPE cawn-atflv,
  28.         lv_char_val TYPE cha_class_view-sollwert,
  29.         lv_wsp TYPE zpp_dt_wsp,
  30.         lv_grub TYPE zpp_dt_grub,
  31.         lv_obj TYPE objnum,
  32.         lv_grub_char TYPE char3.
  33.  
  34.  
  35.   CLEAR: lv_check.
  36.  
  37.   SELECT ntgew brgew normt
  38.     INTO (lv_netto, lv_brutto, lv_normt)
  39.     FROM mara UP TO 1 ROWS
  40.     WHERE matnr EQ gv_matnr_sourc.
  41.   ENDSELECT.
  42.  
  43.   SELECT SINGLE maktx
  44.     INTO lv_desc_pl
  45.     FROM makt
  46.     WHERE matnr EQ gv_matnr_sourc
  47.     AND spras EQ 'L'.
  48.  
  49.   SELECT SINGLE maktx
  50.     INTO lv_desc_en
  51.     FROM makt
  52.     WHERE matnr EQ gv_matnr_sourc
  53.     AND spras EQ 'E'.
  54.  
  55.   SELECT SINGLE maktx
  56.     INTO lv_desc_de
  57.     FROM makt
  58.     WHERE matnr EQ gv_matnr_sourc
  59.     AND spras EQ 'D'.
  60.  
  61.   CLEAR: lv_grub_char.
  62.  
  63.   lv_grub_char = gv_grub.
  64.  
  65.   CONCATENATE lv_desc_pl lv_grub_char 'um' INTO lv_desc_pl_2 SEPARATED BY space.
  66.   CONCATENATE lv_desc_en lv_grub_char 'um' INTO lv_desc_en_2 SEPARATED BY space.
  67.   CONCATENATE lv_desc_de lv_grub_char 'um' INTO lv_desc_de_2 SEPARATED BY space.
  68.  
  69.   CLEAR: lv_len.
  70.   lv_len = STRLEN( lv_desc_pl_2 ).
  71.   IF lv_len > 40.
  72.     gv_matnr_desc_pl = 'Popraw opis materialu'.
  73.     lv_check = 'X'.
  74.   ELSE.
  75.     gv_matnr_desc_pl = lv_desc_pl_2(40).
  76.   ENDIF.
  77.  
  78.   CLEAR: lv_len.
  79.   lv_len = STRLEN( lv_desc_en_2 ).
  80.   IF lv_len > 40.
  81.     gv_matnr_desc_en = 'Popraw opis materialu'.
  82.     lv_check = 'X'.
  83.   ELSE.
  84.     gv_matnr_desc_en = lv_desc_en_2(40).
  85.   ENDIF.
  86.  
  87.   CLEAR: lv_len.
  88.   lv_len = STRLEN( lv_desc_de_2 ).
  89.   IF lv_len > 40.
  90.     gv_matnr_desc_de = 'Popraw opis materialu'.
  91.     lv_check = 'X'.
  92.   ELSE.
  93.     gv_matnr_desc_de = lv_desc_de_2(40).
  94.   ENDIF.
  95.  
  96.   CLEAR lv_obj.
  97.   lv_obj = gv_matnr_sourc.
  98.   CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
  99.     EXPORTING
  100.       class              = 'MAT_YFER'
  101.       classtype          = '001'
  102.       object             = lv_obj
  103.       objecttable        = 'MARA'
  104.     TABLES
  105.       t_class            = lt_class
  106.       t_objectdata       = lt_objdata
  107.     EXCEPTIONS
  108.       no_classification  = 1
  109.       no_classtypes      = 2
  110.       invalid_class_type = 3
  111.       OTHERS             = 4.
  112.   IF sy-subrc <> 0.
  113.  
  114.   ENDIF.
  115.  
  116.   READ TABLE lt_objdata INTO ls_objdata WITH KEY atnam = 'GRUBOSC_POWLOKI'.
  117.   lv_atflv = ls_objdata-atflv.
  118.  
  119.   CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
  120.     EXPORTING
  121.       i_number_of_digits = 0
  122.       i_fltp_value       = lv_atflv
  123.     IMPORTING
  124.       e_char_field       = lv_char_val.
  125.  
  126.   lv_grub = lv_char_val.
  127.  
  128.   SELECT SINGLE wsp
  129.     INTO lv_wsp
  130.     FROM zgr_powloki
  131.     WHERE gr_baz EQ lv_grub
  132.     AND gr_doc EQ gv_grub.
  133.  
  134.   gv_netto = lv_netto * lv_wsp.
  135.   gv_brutto = lv_brutto * lv_wsp.
  136.  
  137.   CLEAR: lv_len.
  138. *  lv_len = STRLEN( lv_normt ).
  139.   lv_len = STRLEN( gv_matnr_desti ).
  140.   IF lv_len GT 0.
  141.     lv_len = lv_len - 1.
  142. *    IF lv_normt(lv_len) EQ 'M'.
  143.     IF gv_matnr_desti+lv_len(1) EQ 'M'.
  144.       CLEAR gv_vtweg.
  145.       IF lv_len GT 0.
  146. *        lv_len = lv_len - 1.
  147.       ENDIF.
  148. *      CONCATENATE lv_normt(lv_len) 'VZ' INTO gv_normt.
  149.       CONCATENATE gv_matnr_desti(lv_len) 'VZ' INTO gv_normt.
  150.     ELSE.
  151.       gv_vtweg = 'UE'.
  152. *      CONCATENATE lv_normt 'VZ' INTO gv_normt.
  153.       CONCATENATE gv_matnr_desti 'VZ' INTO gv_normt.
  154.     ENDIF.
  155.   ELSE.
  156.     gv_normt = 'VZ'.
  157.   ENDIF.
  158.   IF lv_check EQ 'X'.
  159.     MESSAGE 'Proszę poprawić nazwę materiału' TYPE 'W'.
  160.   ENDIF.
  161. ENDFORM.                    " GET_DATA_FOR_NEW_MATERIAL
  162. *&---------------------------------------------------------------------*
  163. *&      Form  CREATE_MATERIAL
  164. *&---------------------------------------------------------------------*
  165. *       text
  166. *----------------------------------------------------------------------*
  167. *  -->  p1        text
  168. *  <--  p2        text
  169. *----------------------------------------------------------------------*
  170. FORM create_material.
  171. *  DATA: ls_general TYPE bapimatdoa,
  172. *        ls_return TYPE bapireturn,
  173. *        ls_plant TYPE bapimatdoc,
  174. *        ls_val TYPE bapimatdobew,
  175.   DATA: lv_werks TYPE werks_d,
  176.         lv_bwkey TYPE bwkey,
  177.         lv_lgort TYPE lgort_d,
  178.         lv_vkorg TYPE vkorg,
  179.         lv_vtweg TYPE vtweg,
  180.         lv_bukrs TYPE bukrs.
  181.  
  182.   DATA: ls_client TYPE bapi_mara_ga,
  183.         ls_plant TYPE bapi_marc_ga,
  184.         ls_forc TYPE bapi_mpop_ga,
  185.         ls_planning TYPE bapi_mpgd_ga,
  186.         ls_stloc TYPE bapi_mard_ga,
  187.         ls_valuation TYPE bapi_mbew_ga,
  188.         ls_wareh TYPE bapi_mlgn_ga,
  189.         ls_sales TYPE bapi_mvke_ga,
  190.         ls_sttype TYPE bapi_mlgt_ga,
  191.         ls_prt TYPE bapi_mfhm_ga,
  192.         ls_lval TYPE bapi_myms_ga.
  193.  
  194.   DATA: ls_head TYPE bapimathead,
  195.         ls_plant_new TYPE bapi_marc,
  196.         ls_plant_x TYPE bapi_marcx,
  197.         ls_client_new TYPE bapi_mara,
  198.         ls_client_x TYPE bapi_marax,
  199.         ls_sales_new TYPE bapi_mvke,
  200.         ls_sales_x TYPE bapi_mvkex,
  201.         ls_return TYPE bapiret2,
  202.         ls_forc_new TYPE bapi_mpop,
  203.         ls_forc_x TYPE bapi_mpopx,
  204.         ls_planning_new TYPE bapi_mpgd,
  205.         ls_planning_x TYPE bapi_mpgdx,
  206.         ls_stloc_new TYPE bapi_mard,
  207.         ls_stloc_x TYPE bapi_mardx,
  208.         ls_valuation_new TYPE bapi_mbew,
  209.         ls_valuation_x TYPE bapi_mbewx,
  210.         ls_wareh_new TYPE bapi_mlgn,
  211.         ls_wareh_x TYPE bapi_mlgnx,
  212.         ls_sttype_new TYPE bapi_mlgt,
  213.         ls_sttype_x TYPE bapi_mlgtx.
  214.  
  215.   DATA: lt_matdesc TYPE STANDARD TABLE OF bapi_makt_ga,
  216.         lt_uom TYPE STANDARD TABLE OF bapi_marm_ga,
  217.         lt_int TYPE STANDARD TABLE OF bapi_mean_ga,
  218.         lt_longtext TYPE STANDARD TABLE OF bapi_mltx_ga,
  219.         lt_tax TYPE STANDARD TABLE OF bapi_mlan_ga,
  220.         lt_ext TYPE STANDARD TABLE OF bapiparex,
  221.         lt_return TYPE STANDARD TABLE OF bapireturn,
  222.         lt_return_new TYPE TABLE OF bapi_matreturn2,
  223.         lt_matdesc_new TYPE STANDARD TABLE OF bapi_makt,
  224.         ls_matdesc_new LIKE LINE OF lt_matdesc_new.
  225.  
  226.   DATA: lt_uom_new TYPE STANDARD TABLE OF bapi_marm,
  227.         lt_uom_x TYPE bapi_marmx OCCURS 0.
  228.  
  229.   DATA: lt_marc TYPE TABLE OF marc,
  230.         lv_int TYPE i,
  231.         lv_counter TYPE sy-index,
  232.         lv_view.
  233.   DATA: lt_char TYPE STANDARD TABLE OF bapi1003_alloc_values_char,
  234.         lt_numc TYPE STANDARD TABLE OF bapi1003_alloc_values_num,
  235.         lt_curr TYPE STANDARD TABLE OF bapi1003_alloc_values_curr,
  236.         ls_char LIKE LINE OF lt_char,
  237.         ls_numc LIKE LINE OF lt_numc,
  238.         lt_return_bapi TYPE STANDARD TABLE OF bapiret2,
  239.         ls_ret_new LIKE LINE OF lt_return_new,
  240.         ls_ret_bap LIKE LINE OF lt_return_bapi,
  241.         lv_obj TYPE objnum,
  242.         lv_lines TYPE i.
  243.   DATA: ls_tax LIKE LINE OF lt_tax,
  244.         lt_tax_new TYPE STANDARD TABLE OF bapi_mlan,
  245.         ls_tax_new LIKE LINE OF lt_tax_new.
  246.  
  247.  
  248.   FIELD-SYMBOLS: <fs_marc> TYPE marc,
  249.                  <f1> TYPE ANY,
  250.                  <f2> TYPE ANY,
  251.                  <fms> TYPE bapi_matreturn2,
  252.                  <uom> TYPE bapi_marm,
  253.                  <uomx> TYPE bapi_marmx.
  254.  
  255.   CLEAR: gt_return.
  256.  
  257.   SELECT SINGLE werks
  258.     INTO lv_werks
  259.     FROM marc
  260.     WHERE matnr EQ gv_matnr_sourc.
  261.  
  262.   SELECT SINGLE bwkey
  263.     INTO lv_bwkey
  264.     FROM mbew
  265.     WHERE matnr EQ gv_matnr_sourc.
  266.  
  267.   SELECT SINGLE lgort
  268.     INTO lv_lgort
  269.     FROM mard
  270.     WHERE matnr EQ gv_matnr_sourc
  271.     AND werks EQ lv_werks.
  272.  
  273.   SELECT SINGLE vkorg vtweg
  274.     INTO (lv_vkorg, lv_vtweg)
  275.     FROM mvke
  276.     WHERE matnr EQ gv_matnr_sourc.
  277.  
  278.   SELECT SINGLE bukrs
  279.     INTO lv_bukrs
  280.     FROM t001k
  281.     WHERE bwkey EQ lv_bwkey.
  282.  
  283.   SELECT * FROM marc
  284.     INTO TABLE lt_marc
  285.     WHERE matnr EQ gv_matnr_sourc
  286.     AND werks EQ lv_werks.
  287.  
  288.  
  289.   CALL FUNCTION 'BAPI_MATERIAL_GET_ALL'
  290.     EXPORTING
  291.       material                   = gv_matnr_sourc
  292.       comp_code                  = lv_bukrs
  293.       val_area                   = lv_bwkey
  294. *     val_type                   =
  295.       plant                      = lv_werks
  296.       stge_loc                   = lv_lgort
  297.       salesorg                   = lv_vkorg
  298.       distr_chan                 = lv_vtweg
  299. *     whsenumber                 =
  300. *     stge_type                  =
  301. *     lifo_valuation_level       =
  302. *     kzrfb_all                  =
  303.     IMPORTING
  304.       clientdata                 = ls_client
  305.       plantdata                  = ls_plant
  306.       forecastparameters         = ls_forc
  307.       planningdata               = ls_planning
  308.       storagelocationdata        = ls_stloc
  309.       valuationdata              = ls_valuation
  310.       warehousenumberdata        = ls_wareh
  311.       salesdata                  = ls_sales
  312.       storagetypedata            = ls_sttype
  313.       prtdata                    = ls_prt
  314.       lifovaluationdata          = ls_lval
  315.     TABLES
  316.       materialdescription        = lt_matdesc
  317.       unitsofmeasure             = lt_uom
  318.       internationalartnos        = lt_int
  319.       materiallongtext           = lt_longtext
  320.       taxclassifications         = lt_tax
  321.       extensionout               = lt_ext
  322.       return                     = lt_return.
  323.  
  324.   IF sy-subrc = 0.
  325.     READ TABLE lt_marc ASSIGNING <fs_marc> INDEX 1.
  326.     IF sy-subrc = 0.
  327.       lv_counter = 0.
  328.       CLEAR lv_view.
  329.       lv_int = STRLEN( <fs_marc>-pstat ).
  330.       DO lv_int TIMES.
  331.         lv_view = <fs_marc>-pstat+lv_counter(sy-index).
  332.         IF lv_view IS INITIAL.
  333.           EXIT.
  334.         ENDIF.
  335.         lv_counter = lv_counter + 1.
  336.         CASE lv_view.
  337.           WHEN 'K'.
  338.             ls_head-basic_view = lv_view.
  339.           WHEN 'V'.
  340.             ls_head-sales_view = lv_view.
  341.           WHEN 'E'.
  342.             ls_head-purchase_view = lv_view.
  343.           WHEN 'D' .
  344.             ls_head-mrp_view = lv_view.
  345.           WHEN 'P'.
  346.             ls_head-forecast_view = lv_view.
  347.           WHEN 'A'.
  348.             ls_head-work_sched_view = lv_view.
  349.           WHEN 'F'.
  350.             ls_head-prt_view = lv_view.
  351.           WHEN 'L'.
  352.             ls_head-storage_view = lv_view.
  353.           WHEN 'S'.
  354.             ls_head-warehouse_view = lv_view.
  355.           WHEN 'Q'.
  356.             ls_head-quality_view = lv_view.
  357.           WHEN 'B'.
  358.             ls_head-account_view = lv_view.
  359.           WHEN 'G'.
  360.             ls_head-cost_view = lv_view.
  361.           WHEN OTHERS.
  362.         ENDCASE.
  363.       ENDDO.
  364.     ENDIF.
  365.   ENDIF.
  366.  
  367.   ls_head-material = gv_matnr_desti.
  368.   ls_head-ind_sector = ls_client-ind_sector.
  369.   ls_head-matl_type = ls_client-matl_type.
  370.   ls_head-basic_view = 'X'.
  371.   MOVE-CORRESPONDING ls_client TO ls_client_new.
  372.   MOVE-CORRESPONDING ls_plant TO ls_plant_new.
  373.   MOVE-CORRESPONDING ls_forc TO ls_forc_new.
  374.   MOVE-CORRESPONDING ls_planning TO ls_planning_new.
  375.   MOVE-CORRESPONDING ls_stloc TO ls_stloc_new.
  376.   MOVE-CORRESPONDING ls_valuation TO ls_valuation_new.
  377.   MOVE-CORRESPONDING ls_wareh TO ls_wareh_new.
  378.   MOVE-CORRESPONDING ls_sales TO ls_sales_new.
  379.   MOVE-CORRESPONDING ls_sttype TO ls_sttype_new.
  380.  
  381.   IF gv_vtweg IS NOT INITIAL.
  382.     ls_sales_new-distr_chan = gv_vtweg.
  383.   ENDIF.
  384.   ls_client_new-net_weight = gv_netto.
  385.   ls_client_new-std_descr = gv_normt.
  386.   ls_plant_new-iss_st_loc = lv_lgort.
  387.  
  388.   DO.
  389.     CASE sy-index.
  390.       WHEN 1.
  391.         ASSIGN ls_client_new TO <f1>.
  392.         ASSIGN ls_client_x TO <f2>.
  393.         PERFORM fill_update_struct USING <f1> <f2>.
  394.       WHEN 2.
  395.         ASSIGN ls_plant_new TO <f1>.
  396.         ASSIGN ls_plant_x TO <f2>.
  397.         PERFORM fill_update_struct USING <f1> <f2>.
  398.       WHEN 3.
  399.         ASSIGN ls_forc_new TO <f1>.
  400.         ASSIGN ls_forc_x TO <f2>.
  401.         PERFORM fill_update_struct USING <f1> <f2>.
  402.       WHEN 4.
  403.         ASSIGN ls_planning_new TO <f1>.
  404.         ASSIGN ls_planning_x TO <f2>.
  405.         PERFORM fill_update_struct USING <f1> <f2>.
  406.       WHEN 5.
  407.         ASSIGN ls_stloc_new TO <f1>.
  408.         ASSIGN ls_stloc_x TO <f2>.
  409.         PERFORM fill_update_struct USING <f1> <f2>.
  410.       WHEN 6.
  411.         ASSIGN ls_valuation_new TO <f1>.
  412.         ASSIGN ls_valuation_x TO <f2>.
  413.         PERFORM fill_update_struct USING <f1> <f2>.
  414.       WHEN 7.
  415.         ASSIGN ls_wareh_new TO <f1>.
  416.         ASSIGN ls_wareh_x TO <f2>.
  417.         PERFORM fill_update_struct USING <f1> <f2>.
  418.       WHEN 8.
  419.         ASSIGN ls_sales_new TO <f1>.
  420.         ASSIGN ls_sales_x TO <f2>.
  421.         PERFORM fill_update_struct USING <f1> <f2>.
  422.       WHEN 9.
  423.         ASSIGN ls_sttype_new TO <f1>.
  424.         ASSIGN ls_sttype_x TO <f2>.
  425.         PERFORM fill_update_struct USING <f1> <f2>.
  426.       WHEN OTHERS.
  427.         EXIT.
  428.     ENDCASE.
  429.   ENDDO.
  430.  
  431.   CLEAR: lt_matdesc_new.
  432.   DO 3 TIMES.
  433.     CASE sy-index.
  434.       WHEN 1.
  435.         CLEAR ls_matdesc_new.
  436.         ls_matdesc_new-langu = 'L'.
  437.         ls_matdesc_new-langu_iso = 'PL'.
  438.         ls_matdesc_new-matl_desc = gv_matnr_desc_pl.
  439.         APPEND ls_matdesc_new TO lt_matdesc_new.
  440.       WHEN 2.
  441.         CLEAR ls_matdesc_new.
  442.         ls_matdesc_new-langu = 'D'.
  443.         ls_matdesc_new-langu_iso = 'DE'.
  444.         ls_matdesc_new-matl_desc = gv_matnr_desc_de.
  445.         APPEND ls_matdesc_new TO lt_matdesc_new.
  446.       WHEN 3.
  447.         CLEAR ls_matdesc_new.
  448.         ls_matdesc_new-langu = 'E'.
  449.         ls_matdesc_new-langu_iso = 'EN'.
  450.         ls_matdesc_new-matl_desc = gv_matnr_desc_en.
  451.         APPEND ls_matdesc_new TO lt_matdesc_new.
  452.     ENDCASE.
  453.   ENDDO.
  454.  
  455. *  ls_sales_new-sales_org = .
  456. *  ls_sales_new-distr_chan = .
  457.   CLEAR: ls_sales_x-sales_org,
  458.          ls_sales_x-distr_chan,
  459.          ls_plant_x-plant,
  460.          ls_valuation_x-val_area,
  461.          ls_stloc_x-plant,
  462.          ls_stloc_x-stge_loc,
  463.          ls_wareh_x-whse_no,
  464.          ls_sttype_x-whse_no,
  465.          ls_sttype_x-stge_type.
  466.   ls_sales_x-sales_org = ls_sales_new-sales_org.
  467.   ls_sales_x-distr_chan = ls_sales_new-distr_chan.
  468.   ls_plant_x-plant = ls_plant_new-plant.
  469.   ls_valuation_x-val_area = ls_valuation_new-val_area.
  470.   ls_stloc_x-plant = ls_stloc_new-plant.
  471.   ls_stloc_x-stge_loc = ls_stloc_new-stge_loc.
  472.   ls_wareh_x-whse_no = ls_wareh_new-whse_no.
  473.   ls_sttype_x-whse_no = ls_sttype_new-whse_no.
  474.   ls_sttype_x-stge_type = ls_sttype_new-stge_type.
  475.  
  476.   CLEAR: ls_valuation_new-std_price, ls_valuation_new-moving_pr.
  477.  
  478.   APPEND INITIAL LINE TO lt_uom_new ASSIGNING <uom>.
  479.   <uom>-alt_unit = ls_client_new-base_uom.
  480.   <uom>-gross_wt = gv_brutto.
  481.   APPEND INITIAL LINE TO lt_uom_x ASSIGNING <uomx>.
  482.   <uomx>-alt_unit = ls_client_new-base_uom.
  483.   <uomx>-gross_wt = 'X'.
  484.  
  485.   LOOP AT lt_tax INTO ls_tax.
  486.     MOVE-CORRESPONDING ls_tax TO ls_tax_new.
  487.     APPEND ls_tax_new TO lt_tax_new.
  488.   ENDLOOP.
  489.  
  490.   CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
  491.     EXPORTING
  492.       headdata                   = ls_head
  493.       clientdata                 = ls_client_new
  494.       clientdatax                = ls_client_x
  495.       plantdata                  = ls_plant_new
  496.       plantdatax                 = ls_plant_x
  497.       forecastparameters         = ls_forc_new
  498.       forecastparametersx        = ls_forc_x
  499.       planningdata               = ls_planning_new
  500.       planningdatax              = ls_planning_x
  501.       storagelocationdata        = ls_stloc_new
  502.       storagelocationdatax       = ls_stloc_x
  503.       valuationdata              = ls_valuation_new
  504.       valuationdatax             = ls_valuation_x
  505.       warehousenumberdata        = ls_wareh_new
  506.       warehousenumberdatax       = ls_wareh_x
  507.       salesdata                  = ls_sales_new
  508.       salesdatax                 = ls_sales_x
  509.       storagetypedata            = ls_sttype_new
  510.       storagetypedatax           = ls_sttype_x
  511. *     FLAG_ONLINE                = ' '
  512. *     FLAG_CAD_CALL              = ' '
  513. *     NO_DEQUEUE                 = ' '
  514. *     NO_ROLLBACK_WORK           = ' '
  515.     IMPORTING
  516.       return                     = ls_return
  517.     TABLES
  518.       materialdescription        = lt_matdesc_new
  519.       unitsofmeasure             = lt_uom_new
  520.       unitsofmeasurex            = lt_uom_x
  521. *     INTERNATIONALARTNOS        =
  522. *     MATERIALLONGTEXT           =
  523.       taxclassifications         = lt_tax_new
  524.       returnmessages             = lt_return_new
  525. *     PRTDATA                    =
  526. *     PRTDATAX                   =
  527. *     EXTENSIONIN                =
  528. *     EXTENSIONINX               =
  529.             .
  530.  
  531.   LOOP AT lt_return_new INTO ls_ret_new.
  532.     CLEAR: ls_ret_bap.
  533.     MOVE-CORRESPONDING ls_ret_new TO ls_ret_bap.
  534.     APPEND ls_ret_bap TO gt_return.
  535.   ENDLOOP.
  536.   IF ls_return-type EQ 'S'.
  537.     CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  538.       EXPORTING
  539.         wait = 'X'.
  540.  
  541.     CLEAR: ls_char.
  542.     ls_char-charact = 'INDEKS_BAZOWY'.
  543.     ls_char-value_char = gv_matnr_sourc.
  544.     APPEND ls_char TO lt_char.
  545.  
  546.     CLEAR: ls_numc.
  547.     ls_numc-charact = 'GRUBOSC_POWLOKI'.
  548.     ls_numc-value_from = gv_grub.
  549.     APPEND ls_numc TO lt_numc.
  550.  
  551.     CLEAR lv_obj.
  552.     lv_obj = gv_matnr_desti.
  553.  
  554.     CALL FUNCTION 'BAPI_OBJCL_CHANGE'
  555.       EXPORTING
  556.         objectkey          = lv_obj
  557.         objecttable        = 'MARA'
  558.         classnum           = 'MAT_YFER'
  559.         classtype          = '001'
  560.       TABLES
  561.         allocvaluesnumnew  = lt_numc
  562.         allocvaluescharnew = lt_char
  563.         allocvaluescurrnew = lt_curr
  564.         return             = lt_return_bapi.
  565.     LOOP AT lt_return_bapi INTO ls_ret_new.
  566.       CLEAR: ls_ret_bap.
  567.       MOVE-CORRESPONDING ls_ret_new TO ls_ret_bap.
  568.       APPEND ls_ret_bap TO gt_return.
  569.     ENDLOOP.
  570.  
  571.     CLEAR: ls_ret_bap.
  572.     DESCRIBE TABLE lt_return_bapi LINES lv_lines.
  573.     READ TABLE lt_return_bapi INTO ls_ret_bap INDEX lv_lines.
  574.     IF ls_ret_bap-type EQ 'S'.
  575.       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  576.         EXPORTING
  577.           wait = 'X'.
  578. *      MESSAGE 'Operacja zakończona pomyślnie' TYPE 'S'.
  579.     ELSE.
  580.       CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  581. *      MESSAGE 'Utworzono materiał, nie utworzono klasyfikacji' TYPE 'S' DISPLAY LIKE 'E'.
  582.     ENDIF.
  583. **********************
  584.     CLEAR: lt_numc, lt_char, lt_curr, lt_return_bapi.
  585.     CALL FUNCTION 'BAPI_OBJCL_CHANGE'
  586.       EXPORTING
  587.         objectkey          = lv_obj
  588.         objecttable        = 'MARA'
  589.         classnum           = 'KLASA_WYR_GOTOWE'
  590.         classtype          = '022'
  591.       TABLES
  592.         allocvaluesnumnew  = lt_numc
  593.         allocvaluescharnew = lt_char
  594.         allocvaluescurrnew = lt_curr
  595.         return             = lt_return_bapi.
  596.     LOOP AT lt_return_bapi INTO ls_ret_new.
  597.       CLEAR: ls_ret_bap.
  598.       MOVE-CORRESPONDING ls_ret_new TO ls_ret_bap.
  599.       APPEND ls_ret_bap TO gt_return.
  600.     ENDLOOP.
  601.  
  602.     CLEAR: ls_ret_bap.
  603.     DESCRIBE TABLE lt_return_bapi LINES lv_lines.
  604.     READ TABLE lt_return_bapi INTO ls_ret_bap INDEX lv_lines.
  605.     IF ls_ret_bap-type EQ 'S'.
  606.       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  607.         EXPORTING
  608.           wait = 'X'.
  609. *      MESSAGE 'Operacja zakończona pomyślnie' TYPE 'S'.
  610.     ELSE.
  611.       CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  612. *      MESSAGE 'Utworzono materiał, nie utworzono klasyfikacji' TYPE 'S' DISPLAY LIKE 'E'.
  613.     ENDIF.
  614. ********************
  615.   ELSE.
  616.     CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  617. *    MESSAGE 'Nie utworzono materiału' TYPE 'S' DISPLAY LIKE 'E'.
  618.   ENDIF.
  619.  
  620.   CALL FUNCTION 'RSCRMBW_DISPLAY_BAPIRET2'
  621.     TABLES
  622.       it_return = gt_return.
  623.  
  624. ENDFORM.                    " CREATE_MATERIAL
  625. *&---------------------------------------------------------------------*
  626. *&      Form  FILL_UPDATE_STRUCT
  627. *&---------------------------------------------------------------------*
  628. *       text
  629. *----------------------------------------------------------------------*
  630. *      -->P_<F1>  text
  631. *      -->P_<F2>  text
  632. *----------------------------------------------------------------------*
  633. FORM fill_update_struct  USING  p_f1 TYPE any
  634.                                 p_f2 TYPE any.
  635.   FIELD-SYMBOLS: <fstruct> TYPE ANY,
  636.                  <fstructx> TYPE ANY.
  637.   DO.
  638.     ASSIGN COMPONENT sy-index OF STRUCTURE p_f1 TO <fstruct>.
  639.     IF sy-subrc <> 0. EXIT. ENDIF.
  640.     IF <fstruct> IS NOT INITIAL.
  641.       ASSIGN COMPONENT sy-index OF STRUCTURE p_f2 TO <fstructx>.
  642.       IF sy-subrc = 0.
  643.         <fstructx> = 'X'.
  644.       ENDIF.
  645.     ENDIF.
  646.   ENDDO.
  647. ENDFORM.                    " FILL_UPDATE_STRUCT
  648.  
  649. *&------------------------------------------------------*
  650. *&      Form  add_field
  651. *&------------------------------------------------------*
  652. *  Add field info to fieldtab given its table name and
  653. *  field name
  654. *-------------------------------------------------------*
  655. *      -->TABNAME    text
  656. *      -->FIELDNAME  text
  657. *-------------------------------------------------------*
  658. FORM add_field
  659.   TABLES p_fields
  660.   USING tabname TYPE tabname
  661.         fieldname TYPE fieldname.
  662.  
  663.  
  664.   DATA: ls_field TYPE dfies,
  665.        lt_fields TYPE STANDARD TABLE OF dfies.
  666.  
  667.   CALL FUNCTION 'DDIF_FIELDINFO_GET'
  668.     EXPORTING
  669.       tabname        = tabname
  670.       fieldname      = fieldname
  671.     TABLES
  672.       dfies_tab      = lt_fields
  673.     EXCEPTIONS
  674.       not_found      = 1
  675.       internal_error = 2
  676.       OTHERS         = 3.
  677.   IF sy-subrc <> 0.
  678.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  679.             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  680.   ENDIF.
  681.  
  682.   APPEND LINES OF lt_fields TO p_fields.
  683.  
  684. ENDFORM.                    "add_field
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement