【Life】 计划_2014-10-18

作者计划进行为期一年的囚徒健身,希望通过这种方式改善自己的身体健康状况。然而,在实施过程中遇到了诸多挑战,工作后的忙碌使得健身计划难以坚持。

从今天开始到之后一年时间,执行入狱计划!!!

即传说中的囚徒健身!!!

锻炼身体,坚决不做身体每况愈下的程序猿!!!


————更新 2016-5-5 19:23:42————

一年多了,健身计划没有按照计划执行,发现工作后,对很多事已经不是太有激情。

执行力不行,永远会是失败者!

成功者永远会有清晰的目标 不会受他人的意志而动摇;

成功的路是孤独的。。。



FUNCTION zmm_oatosap_077. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(IV_OA_NUM) TYPE ZEPP_OA_NUM *" VALUE(IV_ZAFNAM) TYPE AFNAM *" EXPORTING *" VALUE(E_STATUS) TYPE BAPI_MTYPE *" VALUE(E_MESSAGE) TYPE BAPI_MSG *" TABLES *" T_DATA_BASIS STRUCTURE ZSMM_057 *" T_DATA_FACTORY STRUCTURE ZSMM_058 *"---------------------------------------------------------------------- zfmparavalsave1 . zfmparavalsave2 'START'. DATA:ls_headdata TYPE bapimathead, ls_clientdata TYPE bapi_mara, ls_clientdatax TYPE bapi_marax, lt_materialdescription TYPE TABLE OF bapi_makt, ls_materialdescription TYPE bapi_makt, lt_materiallongtext TYPE TABLE OF bapi_mltx , ls_materiallongtext TYPE bapi_mltx , ls_storagelocationdata TYPE bapi_mard, ls_storagelocationdatax TYPE bapi_mardx, ls_return TYPE bapiret2, ls_plantdata TYPE bapi_marc, ls_plantdatax TYPE bapi_marcx, ls_valuationdata TYPE bapi_mbew, ls_valuationdatax TYPE bapi_mbewx, lt_returnmessages TYPE TABLE OF bapi_matreturn2. DATA:ls_bapi_te_mara TYPE bapi_te_mara, ls_bapi_te_maras(960) TYPE c, ls_bapi_te_marax TYPE bapi_te_marax, ls_bapi_te_maraxs(960) TYPE c, ls_extensionin TYPE bapiparex , lt_extensionin TYPE TABLE OF bapiparex, ls_extensioninx TYPE bapiparexx, lt_extensioninx TYPE TABLE OF bapiparexx. DATA:lv_key TYPE bapi1003_key-object, lv_table TYPE bapi1003_key-objecttable VALUE 'MARA', lv_class TYPE bapi1003_key-classnum VALUE 'Z_BATCH_CLASS', lv_class_type TYPE bapi1003_key-classtype VALUE '022', lv_status TYPE bapi1003_key-status, lt_num LIKE bapi1003_alloc_values_num OCCURS 0 WITH HEADER LINE, lt_char LIKE bapi1003_alloc_values_char OCCURS 0 WITH HEADER LINE, lt_curr LIKE bapi1003_alloc_values_curr OCCURS 0 WITH HEADER LINE, lt_ret LIKE bapiret2 OCCURS 0 WITH HEADER LINE. DATA l_object LIKE bapi1003_key-object. DATA ls_mara TYPE mara. TYPES:BEGIN OF ty_class, klart LIKE klah-klart, "类别种类 class LIKE klah-class, "类号 END OF ty_class. DATA: ls_class TYPE ty_class, lt_class TYPE STANDARD TABLE OF ty_class. LOOP AT t_data_basis WHERE status <> 'S'. SELECT matnr INTO TABLE @DATA(lt_mara_check) FROM mara WHERE matnr = @t_data_basis-matnr. IF lt_mara_check IS NOT INITIAL. t_data_basis-status = 'E'. t_data_basis-message = '物料基本视图已经存在!'. MODIFY t_data_basis. EXIT. ENDIF. IF t_data_basis-mtart = 'Z013'. IF t_data_basis-zmatnr IS INITIAL or t_data_basis-zvcode IS INITIAL or t_data_basis-zwafer_type IS INITIAL. t_data_basis-status = 'E'. t_data_basis-message = 'WAFER类物料,WAFER TYPE、物料编码(不含简码)、供应商简码字段必填!' . MODIFY t_data_basis. EXIT. ENDIF. ENDIF. * IF t_data_basis-matkl = 'M013' OR t_data_basis-matkl = 'M014'. * * ENDIF. CLEAR ls_headdata. ls_headdata-material = t_data_basis-matnr."物料号 ls_headdata-ind_sector = t_data_basis-mbrsh."'M'."行业领域 MARA-MBRSH ls_headdata-matl_type = t_data_basis-mtart.".'Z011'."物料类型 MARA-MTART ls_headdata-basic_view = 'X'. ls_headdata-storage_view = 'X'. CLEAR ls_clientdata. ls_clientdata-matl_group = t_data_basis-matkl."'SC01'."物料组MARA-MATKL ls_clientdata-base_uom = t_data_basis-meins. " 基本计量单位MARA-MEINS ls_clientdata-division = t_data_basis-spart. "产品组 MARA-SPART ls_clientdata-qm_procmnt = t_data_basis-qmpur. "产品组 MARA-SPART ls_clientdata-minremlife = t_data_basis-mhdrz."最短剩余货架寿命 MARA-MHDRZ ls_clientdata-shelf_life = t_data_basis-mhdhb."总货架寿命 ls_clientdata-period_ind_expiration_date = t_data_basis-iprkz. " 货架寿命到期日的期间标识 ls_clientdata-old_mat_no = t_data_basis-bismt. "旧物料号 ls_clientdata-po_unit = t_data_basis-bstme. ""采购订单的计量单位 MARA-BSTME ls_clientdata-qm_procmnt = t_data_basis-qmpur. "质量数据 MARA-QMPUR CLEAR ls_clientdatax. ls_clientdatax-matl_group = 'X'."物料组MARA-MATKL ls_clientdatax-base_uom = 'X'. "基本计量单位MARA-MEINS ls_clientdatax-division = 'X'. "产品组 MARA-SPART ls_clientdatax-minremlife = 'X'."最短剩余货架寿命 MARA-MHDRZ ls_clientdatax-shelf_life = 'X'."总货架寿命 ls_clientdatax-period_ind_expiration_date = 'X'."货架寿命到期日的期间标识 ls_clientdatax-old_mat_no = 'X'.""旧物料号 ls_clientdatax-po_unit = 'X'.""旧物料号 ls_clientdatax-qm_procmnt = 'X'.""旧物料号 CLEAR: lt_materialdescription,ls_materialdescription. ls_materialdescription-matl_desc = t_data_basis-maktx_c. "物料描述取text2字段前40位字符 ls_materialdescription-langu = '1'. APPEND ls_materialdescription TO lt_materialdescription. IF t_data_basis-maktx_e IS NOT INITIAL. ls_materialdescription-matl_desc = t_data_basis-maktx_e."英文物料描述MAKT-MAKTX ls_materialdescription-langu = 'E'. APPEND ls_materialdescription TO lt_materialdescription. ENDIF. "物料长文本赋值 CLEAR:lt_materiallongtext,ls_materiallongtext. ls_materiallongtext-applobject = 'MATERIAL'. ls_materiallongtext-text_name = t_data_basis-matnr. ls_materiallongtext-text_id = 'GRUN'. ls_materiallongtext-langu = sy-langu. ls_materiallongtext-format_col = '*'. ls_materiallongtext-text_line = t_data_basis-maktx_c. APPEND ls_materiallongtext TO lt_materiallongtext. CLEAR: ls_extensionin,ls_extensioninx,lt_extensionin,lt_extensioninx, ls_bapi_te_mara,ls_bapi_te_marax,ls_bapi_te_maras,ls_bapi_te_maraxs. ls_bapi_te_mara-material = t_data_basis-matnr. ls_bapi_te_mara-zts = t_data_basis-zts. ls_bapi_te_mara-zwafer_type = t_data_basis-zwafer_type. ls_bapi_te_mara-zmatnr = t_data_basis-zmatnr. ls_bapi_te_mara-zvcode = t_data_basis-zvcode. ls_bapi_te_mara-zwflx = t_data_basis-zwflx. ls_bapi_te_mara-zsfkyr = t_data_basis-zsfkyr. ls_bapi_te_mara-zsfkp = t_data_basis-zsfkp. ls_bapi_te_mara-zgross_die = t_data_basis-zgross_die. ls_bapi_te_marax-material = t_data_basis-matnr. ls_bapi_te_marax-zts = 'X'. ls_bapi_te_marax-zwafer_type = 'X'. ls_bapi_te_marax-zmatnr = 'X'. ls_bapi_te_marax-zvcode = 'X'. ls_bapi_te_marax-zwflx = 'X'. ls_bapi_te_marax-zsfkyr = 'X'. ls_bapi_te_marax-zsfkp = 'X'. ls_bapi_te_marax-zgross_die = 'X'. CALL METHOD cl_abap_container_utilities=>fill_container_c EXPORTING im_value = ls_bapi_te_mara IMPORTING ex_container = ls_bapi_te_maras. ls_extensionin-structure = 'BAPI_TE_MARA'. ls_extensionin-valuepart1 = ls_bapi_te_maras+0(240). ls_extensionin-valuepart2 = ls_bapi_te_maras+240(240). APPEND ls_extensionin TO lt_extensionin. CALL METHOD cl_abap_container_utilities=>fill_container_c EXPORTING im_value = ls_bapi_te_marax IMPORTING ex_container = ls_bapi_te_maraxs. ls_extensioninx-structure = 'BAPI_TE_MARAX'. ls_extensioninx-valuepart1 = ls_bapi_te_maraxs+0(240). ls_extensioninx-valuepart2 = ls_bapi_te_maraxs+240(240). APPEND ls_extensioninx TO lt_extensioninx. CLEAR:ls_return,lt_returnmessages. CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' EXPORTING headdata = ls_headdata clientdata = ls_clientdata clientdatax = ls_clientdatax IMPORTING return = ls_return TABLES materialdescription = lt_materialdescription materiallongtext = lt_materiallongtext returnmessages = lt_returnmessages extensionin = lt_extensionin extensioninx = lt_extensioninx. IF ls_return-type = 'S'. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. t_data_basis-status = 'S'. t_data_basis-message = '物料基本视图创建成功!'. "物料主数据传SRM CLEAR ls_mara. ls_mara-matnr = t_data_basis-matnr. CALL FUNCTION 'ZMM_SAPTOSRM_010' STARTING NEW TASK 'lv_srm_task' EXPORTING i_mara = ls_mara * IV_UPD_MARA = * I_MARC = * IV_UPD_MARC = * IV_UPD_MAKT = * IV_UPD_MARM = iv_zsynchrono = 'Z' * IMPORTING * E_STATUS = * E_MESSAGE = * TABLES * T_MAKT = * T_MARM = . ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. t_data_basis-status = 'E'. t_data_basis-message = ls_return-message && ls_return-message_v1 && ls_return-message_v2 && ls_return-message_v3 && ls_return-message_v4. ENDIF. CLEAR :lt_materialdescription,ls_materialdescription,lt_materiallongtext,ls_materiallongtext,lt_returnmessages, lt_extensionin,ls_extensionin,lt_extensioninx,ls_extensioninx,ls_headdata,ls_clientdata, ls_clientdatax. IF ls_return-type = 'S'. "读取该物料有没扩充分类视图 l_object = t_data_basis-matnr. CALL FUNCTION 'BAPI_OBJCL_GETDETAIL' EXPORTING objectkey = l_object objecttable = 'MARA' classnum = t_data_basis-class classtype = t_data_basis-klart TABLES allocvaluesnum = lt_num allocvalueschar = lt_char allocvaluescurr = lt_curr return = lt_ret. REFRESH:lt_num[], lt_char[], lt_curr[]. CLEAR:lt_num, lt_char, lt_curr. "分类特性 "供应商料号 lt_char-charact = 'VMAT'. lt_char-value_char = t_data_basis-vmat. APPEND lt_char. "供应商 lt_char-charact = 'VENDOR'. lt_char-value_char = t_data_basis-vendor. APPEND lt_char. "专案名称 lt_char-charact = 'CASENAME'. lt_char-value_char = t_data_basis-casename. APPEND lt_char. "是否保税 lt_char-charact = 'BONDED'. lt_char-value_char = t_data_basis-is_bonded. APPEND lt_char. "备注 lt_char-charact = 'REMARK'. lt_char-value_char = t_data_basis-remark. APPEND lt_char. "客户物料号(P/N) lt_char-charact = 'CPARTID'. lt_char-value_char = t_data_basis-cpartid. APPEND lt_char. "封装形式 lt_char-charact = 'PTYPE'. lt_char-value_char = t_data_basis-ptype. APPEND lt_char. "location lt_char-charact = 'LOCAT'. lt_char-value_char = t_data_basis-location. APPEND lt_char. READ TABLE lt_ret WITH KEY type = 'S' id = 'CL' number = 731. "当没有创建的,进入修改模式 IF sy-subrc <> 0. "删除已有分类 REFRESH lt_ret[]. SELECT a~klart "将已有分类与类号从表中取出 a~class INTO TABLE lt_class FROM klah AS a JOIN kssk AS b ON a~clint = b~clint WHERE b~objek = l_object. "一个类号下只允许存在一个种类,所以需要删除该类号下已存在的种类 LOOP AT lt_class INTO ls_class WHERE klart = t_data_basis-klart. CALL FUNCTION 'BAPI_OBJCL_DELETE' "删除已有分类 EXPORTING objectkey = l_object objecttable = 'MARA' classnum = t_data_basis-class classtype = t_data_basis-klart * CHANGENUMBER = * KEYDATE = SY-DATUM TABLES return = lt_ret. READ TABLE lt_ret WITH KEY type = 'E'. IF sy-subrc <> 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF. REFRESH lt_ret[]. CLEAR: ls_class. ENDLOOP. "分类视图创建 CALL FUNCTION 'BAPI_OBJCL_CREATE' EXPORTING objectkeynew = l_object objecttablenew = 'MARA' classnumnew = t_data_basis-class classtypenew = t_data_basis-klart status = '1' no_default_values = 'X' TABLES allocvaluesnum = lt_num allocvalueschar = lt_char allocvaluescurr = lt_curr return = lt_ret. READ TABLE lt_ret WITH KEY type = 'E'. IF sy-subrc <> 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. t_data_basis-status = lt_ret-type. CONCATENATE '物料' t_data_basis-matnr '基本视图维护成功!' INTO t_data_basis-message. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. t_data_basis-status = lt_ret-type. CONCATENATE '物料' t_data_basis-matnr '基本视图维护失败!' INTO t_data_basis-message. ENDIF. ELSE. "修改模式 REFRESH lt_ret[]. CALL FUNCTION 'BAPI_OBJCL_CHANGE' EXPORTING objectkey = l_object objecttable = 'MARA' classnum = t_data_basis-class classtype = t_data_basis-klart no_default_values = 'X' TABLES allocvaluesnumnew = lt_num allocvaluescharnew = lt_char allocvaluescurrnew = lt_curr return = lt_ret. READ TABLE lt_ret WITH KEY type = 'E'. IF sy-subrc <> 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. t_data_basis-status = lt_ret-type. CONCATENATE '物料' t_data_basis-matnr '基本视图维护成功!' INTO t_data_basis-message. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. t_data_basis-status = lt_ret-type. CONCATENATE '物料' t_data_basis-matnr '基本视图维护失败!' INTO t_data_basis-message. ENDIF. ENDIF. ELSE. ENDIF. MODIFY t_data_basis. WAIT UP TO '0.1' SECONDS. ENDLOOP. LOOP AT t_data_factory WHERE status <> 'S'. IF t_data_factory-vprsv = 'S' AND t_data_factory-mmsta <> '99'. t_data_factory-status = 'E'. t_data_factory-message = '价格控制为S,物料状态必为99!'. MODIFY t_data_factory. CONTINUE. ENDIF. IF t_data_factory-vprsv = 'V' AND t_data_factory-ncost <> 'X'. t_data_factory-status = 'E'. t_data_factory-message = '价格控制为V时,无成本核算不能为空!'. MODIFY t_data_factory. CONTINUE. ENDIF. SELECT werks, matnr INTO TABLE @DATA(lt_marc_check) FROM marc WHERE matnr = @t_data_factory-matnr AND werks = @t_data_factory-werks. IF lt_marc_check IS NOT INITIAL. t_data_factory-status = 'E'. t_data_factory-message = '物料工厂视图已经存在!'. MODIFY t_data_factory. EXIT. ENDIF. CLEAR :ls_headdata. ls_headdata-material = t_data_factory-matnr."物料号 ls_headdata-work_sched_view = 'X'. ls_headdata-purchase_view = 'X'. ls_headdata-mrp_view = 'X'. ls_headdata-quality_view = 'X'. ls_headdata-storage_view = 'X'. ls_headdata-account_view = 'X'. ls_headdata-cost_view = 'X'. "财务数据 CLEAR ls_valuationdata . ls_valuationdata-val_class = t_data_factory-bklas. " MBEW-BKLAS 评估类 ls_valuationdata-price_ctrl = t_data_factory-vprsv. " MBEW-VPRSV 价格控制指示符 ls_valuationdata-ml_settle = t_data_factory-mlast. " MBEW-MLAST 价格确定 ls_valuationdata-price_unit = t_data_factory-peinh. " MBEW-PEINH 价格单位 ls_valuationdata-qty_struct = t_data_factory-ekalr. " MBEW-EKALR 用QS的成本估算 ls_valuationdata-orig_mat = t_data_factory-hkmat. " MBEW-HKMAT 物料相关的源 ls_valuationdata-overhead_grp = t_data_factory-kosgr. " MBEW-KOSGR 成本核算间接费用组 * valuationdata-plndprice1 = i_data2-zplp1. " MBEW-ZPLP1计划价格 1 * valuationdata-plndprdate1 = i_data2-zpld1. " MBEW-ZPLD1计划价格日期1 ls_valuationdata-val_area = t_data_factory-werks. " 评估范围 * CLEAR ls_valuationdatax . ls_valuationdatax-val_class = 'X'." MBEW-BKLAS 评估类 ls_valuationdatax-price_ctrl = 'X'." MBEW-VPRSV 价格控制指示符 ls_valuationdatax-ml_settle = 'X'." MBEW-MLAST 价格确定 ls_valuationdatax-price_unit = 'X'." MBEW-PEINH 价格单位 ls_valuationdatax-qty_struct = 'X'." MBEW-PEINH 用QS的成本估算 ls_valuationdatax-orig_mat = 'X'." MBEW-HKMAT 物料相关的源 ls_valuationdatax-overhead_grp = 'X'." MBEW-KOSGR 成本核算间接费用组 * valuationdatax-plndprice1 = 'X'." MBEW-ZPLP1 计划价格 1 * valuationdatax-plndprdate1 = 'X'." MBEW-ZPLD1 计划价格日期1 ls_valuationdatax-val_area = t_data_factory-werks."评估范围 CLEAR ls_plantdata . ls_plantdata-plant = t_data_factory-werks. " MARC-WERKS 工厂 ls_plantdata-pur_group = t_data_factory-ekgrp. " MARC-EKGRP 采购组 ls_plantdata-auto_p_ord = t_data_factory-kautb. " MARC-KAUTB 采购数据 ls_plantdata-gr_pr_time = t_data_factory-webaz. " MARC-WEBAZ 收货处理时间 ls_plantdata-batch_mgmt = t_data_factory-xchpf. " MARC-XCHPF 标识:批次管理需求 ls_plantdata-minlotsize = t_data_factory-bstmi."'EX'. " MARC-BSTMI 最小批量大小(BTCI) ls_plantdata-round_val = t_data_factory-bstrf. " MARC-BSTRF 舍入值 ls_plantdata-sloc_exprc = t_data_factory-lgfsb."'SF01'. " MARC-LGFSB 外部采购仓储地点 ls_plantdata-plnd_delry = t_data_factory-plifz. " MARC-PLIFZ 计划交货时间(天数) ls_plantdata-mrp_type = t_data_factory-dismm."'PD'. " MARC-DISMM MRP 类型 * plantdata-reorder_pt = i_data2-minbe. " MARC-MINBE 再订货点 " ls_plantdata-mrp_ctrler = t_data_factory-dispo."'001'. " MARC-DISPO MRP 控制者 ls_plantdata-lotsizekey = t_data_factory-disls."'EX'. " MARC-DISLS 批量大小 * plantdata-assy_scrap = i_data2-ausss. " MARC-AUSSS 装配报废t-text_id = 'GRUN'. IF t_data_factory-beskz IS NOT INITIAL. ls_plantdata-proc_type = t_data_factory-beskz."'E'. " MARC-BESKZ 采购类型 ENDIF. ls_plantdata-spproctype = t_data_factory-sobsl. " MARC-SOBSL 特殊采购类型 ls_plantdata-inhseprodt = t_data_factory-dzeit. " MARC-DZEIT 自制生产时间 * ls_plantdata-safety_stk = t_data_factory-eisbe. " MARC-EISBE 安全库存 ls_plantdata-sm_key = t_data_factory-fhori."'000'. " MARC-FHORI 计划边际码 ls_plantdata-backflush = t_data_factory-rgekz ." MARC-RGEKZ 标识:反冲 ls_plantdata-plan_strgp = t_data_factory-strgr."'40'. " MARC-STRGR 策略组 ls_plantdata-consummode = t_data_factory-vrmod."'2'. " MARC-VRMOD 消耗模式* ls_plantdata-fwd_cons = t_data_factory-vint2."'999'. " MARC-VINT2 向前消耗期间 ls_plantdata-bwd_cons = t_data_factory-vint1."'999'. " MARC-VINT1 逆向消耗期间 ls_plantdata-issue_unit = t_data_factory-ausme. " MARC-AUSME 发料单位 ls_plantdata-issue_unit_iso = t_data_factory-ausme. " MARC-AUSME 发料单位 ls_plantdata-availcheck = t_data_factory-mtvfp."'02'. " MARC-MTVFP 可用性检查 ls_plantdata-dep_req_id = t_data_factory-sbdkz."''. " MARC-SBDKZ 独立/集中 * plantdata-prod_unit = i_data2-frtme. " MARC-FRTME 生产 单位 ls_plantdata-production_scheduler = t_data_factory-fevor."'001'." MARC-FEVOR 生产调度员 IF t_data_factory-fevor IS NOT INITIAL. ls_plantdata-prodprof = '000001'." MARC-SFCPF 生产计划参数文件 ENDIF. ls_plantdata-iss_st_loc = t_data_factory-lgpro."'SF01'. " MARC-LGPRO 生产仓储地点 * plantdata-over_tol = i_data2-ueeto. " MARC-UEETO 过度交货允差 " ls_plantdata-pur_status = t_data_factory-mmsta."'99' ." MARC-MMSTA 工厂特定的物料状态 ls_plantdata-lot_size = t_data_factory-losgr."'1'. " MARC-LOSGR 成本核算单位 ls_plantdata-no_costing = t_data_factory-ncost. " MARC-NCOST 无成本核算 ls_plantdata-variance_key = t_data_factory-awsls."'000001'. " MARC-AWSLS 差异码 ls_plantdata-ind_post_to_insp_stock = t_data_factory-insmk. " MARC-INSMK 活动 ls_plantdata-ctrl_key = '0001'. "QM控制码 CLEAR ls_plantdatax. ls_plantdatax-plant = t_data_factory-werks. " MARC-WERKS 工厂 ls_plantdatax-lot_size = 'X'. " MARC-LOSGR 成本核算单位 ls_plantdatax-issue_unit = 'X'. " MARC-AUSME 发料单位 ls_plantdatax-issue_unit_iso = 'X'. " MARC-AUSME 发料单位 ls_plantdatax-pur_status = 'X' ." MARC-MMSTA 工厂特定的物料状态 ls_plantdatax-variance_key = 'X'. " MARC-AWSLS 差异码 ls_plantdatax-pur_group = 'X'. " MARC-EKGRP 采购组 ls_plantdatax-auto_p_ord = 'X'. " MARC-KAUTB 采购数据 ls_plantdatax-gr_pr_time = 'X'. " MARC-WEBAZ 收货处理时间 ls_plantdatax-batch_mgmt = 'X'. " MARC-XCHPF 标识:批次管理需求 ls_plantdatax-lotsizekey = 'X'. " MARC-DISLS 批量大小 ls_plantdatax-minlotsize = 'X'. " MARC-BSTMI 最小批量大小(BTCI) ls_plantdatax-spproctype = 'X'. " MARC-SOBSL 特殊采购类型 ls_plantdatax-sloc_exprc = 'X'. " MARC-LGFSB 外部采购仓储地点 ls_plantdatax-plnd_delry = 'X'. " MARC-PLIFZ 计划交货时间(天数) * ls_plantdatax-safety_stk = 'X'. " MARC-EISBE 安全库存 ls_plantdatax-mrp_type = 'X'. " MARC-DISMM MRP 类型 * plantdatax-reorder_pt = 'X'. " MARC-MINBE 再订货点 ls_plantdatax-mrp_ctrler = 'X'. " MARC-DISPO MRP 控制者 ls_plantdatax-proc_type = 'X'. " MARC-BESKZ 采购类型 ls_plantdatax-iss_st_loc = 'X'. " MARC-LGPRO 生产仓储地点 ls_plantdatax-sm_key = 'X'. " MARC-FHORI 计划边际码 ls_plantdatax-backflush = 'X' ." MARC-RGEKZ 标识:反冲 ls_plantdatax-plan_strgp = 'X'. " MARC-STRGR 策略组 ls_plantdatax-consummode = 'X'. " MARC-VRMOD 消耗模式 ls_plantdatax-bwd_cons = 'X'. " MARC-VINT1 逆向消耗期间 ls_plantdatax-fwd_cons = 'X'. " MARC-VINT2 向前消耗期间 ls_plantdatax-availcheck = 'X'. " MARC-MTVFP 可用性检查 ls_plantdatax-dep_req_id = 'X'. " MARC-SBDKZ 独立/集中 ls_plantdatax-production_scheduler = 'X'." MARC-FEVOR 生产调度员 IF t_data_factory-fevor IS NOT INITIAL. ls_plantdatax-prodprof = 'X'." MARC-SFCPF 生产计划参数文件 ENDIF. ls_plantdatax-round_val = 'X'. " MARC-BSTRF 舍入值 ls_plantdatax-no_costing = 'X'. " MARC-NCOST 无成本核算 * plantdatax-assy_scrap = 'X'. " MARC-AUSSS 装配报废率 ls_plantdatax-inhseprodt = 'X'. " MARC-DZEIT 自制生产时间 * plantdatax-prod_unit = 'X'. " MARC-FRTME 生产单位 * plantdatax-over_tol = 'X'. " MARC-UEETO 过度交货允差 ls_plantdatax-ind_post_to_insp_stock = 'X'. " MARC-AWSLS 差异码 ls_plantdatax-ctrl_key = 'X'. "QM控制码 "扩充库存地点 CLEAR ls_storagelocationdata. ls_storagelocationdata-plant = t_data_factory-werks. ls_storagelocationdata-stge_loc = t_data_factory-lgfsb. CLEAR ls_storagelocationdatax. ls_storagelocationdatax-plant = t_data_factory-werks. ls_storagelocationdatax-stge_loc = t_data_factory-lgfsb. CLEAR:ls_return,lt_returnmessages. CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' EXPORTING headdata = ls_headdata * clientdata = ls_clientdata * clientdatax = ls_clientdatax plantdata = ls_plantdata plantdatax = ls_plantdatax valuationdata = ls_valuationdata valuationdatax = ls_valuationdatax * salesdata = ls_salesdata * salesdatax = ls_salesdatax storagelocationdata = ls_storagelocationdata storagelocationdatax = ls_storagelocationdatax IMPORTING return = ls_return TABLES materialdescription = lt_materialdescription materiallongtext = lt_materiallongtext returnmessages = lt_returnmessages extensionin = lt_extensionin extensioninx = lt_extensioninx. IF ls_return-type = 'S'. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. t_data_factory-status = 'S'. t_data_factory-message = '物料工厂视图创建成功!'. CLEAR ls_mara. ls_mara-matnr = t_data_factory-matnr. CALL FUNCTION 'ZMM_SAPTOSRM_010' STARTING NEW TASK 'lv_srm_task' EXPORTING i_mara = ls_mara * IV_UPD_MARA = * I_MARC = * IV_UPD_MARC = * IV_UPD_MAKT = * IV_UPD_MARM = iv_zsynchrono = 'Z' * IMPORTING * E_STATUS = * E_MESSAGE = * TABLES * T_MAKT = * T_MARM = . IF t_data_factory-xchpf = 'X'. CLEAR:lv_key. lv_key+0(18) = t_data_factory-matnr. " 物料号 " 删除批次特性 REFRESH lt_ret[]. CALL FUNCTION 'BAPI_OBJCL_DELETE' EXPORTING objectkey = lv_key objecttable = 'MARA' classnum = lv_class classtype = lv_class_type * CHANGENUMBER = * KEYDATE = SY-DATUM * OBJECTKEY_LONG = TABLES return = lt_ret. READ TABLE lt_ret WITH KEY type = 'E'. IF sy-subrc <> 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF. REFRESH lt_ret[]. "批次特性的新建 CLEAR :lt_num,lt_char,lt_curr,lt_num[],lt_char[],lt_curr[],lt_ret,lt_ret[]. CALL FUNCTION 'BAPI_OBJCL_CREATE' EXPORTING objectkeynew = lv_key objecttablenew = 'MARA' classnumnew = lv_class classtypenew = lv_class_type status = '1' no_default_values = 'X' TABLES allocvaluesnum = lt_num allocvalueschar = lt_char allocvaluescurr = lt_curr return = lt_ret. READ TABLE lt_ret WITH KEY type = 'E'. IF sy-subrc <> 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. t_data_factory-status = 'S'. t_data_factory-message = '物料工厂视图维护成功!'. ELSE. t_data_factory-status = 'E'. t_data_factory-message = '物料工厂视图维护失败!'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF. ENDIF. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. t_data_factory-status = 'E'. t_data_factory-message = ls_return-message && ls_return-message_v1 && ls_return-message_v2 && ls_return-message_v3 && ls_return-message_v4. ENDIF. MODIFY t_data_factory. WAIT UP TO '0.1' SECONDS. ENDLOOP. READ TABLE t_data_basis WITH KEY status = 'E'. IF sy-subrc = 0. e_status = 'E'. e_message = '基本视图创建失败!'. ENDIF. READ TABLE t_data_factory WITH KEY status = 'E'. IF sy-subrc = 0. e_status = 'E'. e_message = '工厂视图创建失败!'. ENDIF. IF e_status <> 'E'. e_status = 'S'. e_message = '创建成功!'. ENDIF. zfmparavalsave3 'END' e_status e_message. ENDFUNCTION.这段代码我要新增一段逻辑:新定义一个字段zjylx,由OA传输这个字段给我。现在在SAP里已有个自建表ZTMM065,里面存了每个物料组对应的检验类型,我接收到OA传来的料号和物料组和检验类型,用他传来的物料组和检验类型去ztmm065比对表里的物料组是不是传来的检验类型,若不是ztmm065里的检验类型,则把这个料号+zjylx记入另一个自建表ZTMM066,同时记录创建时间和创建人
11-15
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值