这是在佛山好帮手时受启发而研究出来的,创建物料,带单位,类型组

经测试。。。。算了,不说了,有什么限制自己测去。。。今天心情不好。。。

FUNCTION ZLY_CREATE_PRODUCT_UNIT.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(IN_PRODUCT_ID) TYPE  COMT_PRODUCT_ID
*"     REFERENCE(IN_PRODUCT_TYPE) TYPE  COMT_PRODUCT_TYPE DEFAULT '01'
*"     REFERENCE(IN_SHORT_TEXT) TYPE  COMT_PRSHTEXTX DEFAULT
*"       'CRM CREATE PRODUCT'
*"     REFERENCE(IN_CATEGORY_ID) TYPE  COMT_CATEGORY_ID DEFAULT
*"       'MAT_ROH'
*"  EXPORTING
*"     REFERENCE(RT_RETURN) TYPE  BAPIRET2_TAB
*"----------------------------------------------------------------------
*--> Structures
  DATA : ls_product TYPE comt_product_mat_maintain_api,
         ls_comt_prod TYPE comt_product_maintain_api,
         ls_prod TYPE comt_product,
         ls_prod_categ2 TYPE comt_prod_cat_rel,
         ls_srv_maintain TYPE comt_prod_mat_maintain_api,
         ls_pr_unit TYPE comt_pr_unit_maintain,
         ls_unit TYPE comt_pr_unit,
         ls_shtext TYPE comt_pr_shtext_maintain,
         ls_text TYPE comt_prshtext,
         ls_ret_prod TYPE comt_product_mat_maintain_api,
         ls_return TYPE bapiret2.
*--> Internal Tables
**----------------------------------------------------------------------
*----------
  DATA : lt_product TYPE comt_product_mat_maintain_apit,
         lt_ret_prod TYPE comt_product_mat_maintain_apit,
         lt_prod_categ TYPE comt_prod_cat_rel_maintain_tab,
         lt_pr_unit TYPE comt_pr_unit_maintain_tab,
         lt_shtext_maint TYPE comt_pr_shtext_maintain_tab.

*-->logsys get
DATA iv_logsys    TYPE TBDLS-LOGSYS.
  CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
   IMPORTING
     OWN_LOGICAL_SYSTEM                   = iv_logsys
   EXCEPTIONS
     OWN_LOGICAL_SYSTEM_NOT_DEFINED       = 1
     OTHERS                               = 2.
  IF SY-SUBRC <> 0.
  ENDIF.

**--> Maintain Category relevant data
  DATA:ls_category TYPE comm_category .
  CLEAR ls_prod_categ2.
  SELECT SINGLE * FROM comm_category INTO ls_category WHERE category_id = IN_CATEGORY_ID." 'ZMNFG'.
  ls_prod_categ2-category_id  = ls_category-category_id.
  ls_prod_categ2-category_guid = ls_category-category_guid.
  ls_prod_categ2-logsys = iv_logsys.
  APPEND ls_prod_categ2 TO lt_prod_categ.

**--> Maintain Product-general data
  ls_prod-product_id = in_product_id.
  ls_prod-product_type = in_product_type.
  ls_prod-client = sy-mandt.
  ls_prod-logsys = iv_logsys.
  MOVE ls_prod TO ls_comt_prod-com_product.
  MOVE lt_prod_categ TO ls_comt_prod-categories.

**--> Maintain Units of measure data
*  LOOP AT it_unit INTO ls_unit.
*    ls_unit-logsys = iv_logsys.
*    MOVE ls_unit TO ls_pr_unit-data.
*    APPEND ls_pr_unit TO lt_pr_unit.
*  ENDLOOP.
  ls_unit-unit = 'PC'.
  ls_unit-numerator = '1'.
  ls_unit-denominator = '1'.
  ls_unit-is_base_unit = 'X'.
  ls_unit-logsys = iv_logsys.
  MOVE ls_unit TO ls_pr_unit-data.
  APPEND ls_pr_unit TO lt_pr_unit.
  MOVE lt_pr_unit TO ls_srv_maintain-comm_pr_unit.
  MOVE ls_srv_maintain TO ls_product-data.

**--> Maintain Short texts
  ls_text-langu = sy-langu.
  ls_text-short_text = in_short_text.
  ls_text-logsys = iv_logsys.
  MOVE ls_text TO ls_shtext-data.
  APPEND ls_shtext TO lt_shtext_maint.
  MOVE lt_shtext_maint TO ls_comt_prod-short_texts.
  MOVE ls_comt_prod TO ls_product-header.
  APPEND ls_product TO lt_product.

**--> Create Product
  CALL FUNCTION 'COM_PRODUCT_MAT_MAINT_MULT_API'
    EXPORTING
      it_product                    = lt_product
      iv_check_only                 = ' '
      iv_suppress_inactive          = ' '
      iv_activate_inactive_products = ' '
      iv_application                = ' '
    IMPORTING
      et_product                    = lt_ret_prod
      et_bapireturn                 = rt_return
    EXCEPTIONS
      internal_error                = 1
      OTHERS                        = 2.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    CALL FUNCTION 'BALW_BAPIRETURN_GET2'
      EXPORTING
        type   = 'E'
        cl     = sy-msgid
        number = sy-msgno
      IMPORTING
        return = ls_return.
    APPEND ls_return TO rt_return.
    CLEAR ls_return.
  ENDIF.

**--> Save Product
  DATA : lv_product_id TYPE symsgv.
  CALL FUNCTION 'COM_PRODUCT_SAVE_API'
    EXPORTING
      iv_update_task   = 'X'
    EXCEPTIONS
      internal_error   = 1
      save_not_allowed = 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.
*    lv_product_id = in_product_id.
*    CALL FUNCTION 'BALW_BAPIRETURN_GET2'
*      EXPORTING
*        type   = 'E'
*        cl     = gc_msg_class
*        number = '002'
*        par1   = lv_product_id
*      IMPORTING
*        return = ls_return.
*    APPEND ls_return TO xt_return.
*    CLEAR ls_return.
  ENDIF.

**--> Commit transaction
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    IMPORTING
      return = ls_return.
  IF ls_return IS NOT INITIAL.
    APPEND ls_return TO rt_return.
  ENDIF.

**--> Refresh buffer
  CALL FUNCTION 'COM_PRODUCT_FREE_API'.

ENDFUNCTION.

CRM创建物料FM2的更多相关文章

  1. CRM创建物料FM1

    这是在中联混凝土那边搞的.... method create_prd.  data: lt_return type bapiret2_tab,        ls_return like line o ...

  2. SAP 创建物料主数据分类视图特性

    1.CL01创建物料分类 2.去CT04中去创建特性值 创建完成之后保存, 3.创建物料的分类视图,选择相应的特性值

  3. SAP MM01 创建物料主数据 [关注公众号后回复MM01获取更多资料]

    操作内容 物料主数据,适用于所有有物料编码物料相关信息的系统维护 业务流程 新项目设计冻结后—M公司 PD用-物料编码申请表D-BOM Material Number  Application部门内部 ...

  4. crm创建报告补充导航

    报告导航实现动态交互体验报告. 通过使用各种类型的操作的,报告允许用户导航到特定的报告.Microsoft Dynamics CRM 记录或其它网站 动态钻取到 Microsoft Dynamics ...

  5. crm创建和编辑全局选项集

    一个选项集就是可包含在一个实体中的某种类型的字段.它定义一组选项.当一个选项集显示在窗口中时,将使用下拉列表控件.当在 Advanced Find 中显示时,则使用选择列表控件.有时,开发者将选项集称 ...

  6. CRM创建BP(END USER)

    FUNCTION ZCRM_BP_CRT. *"---------------------------------------------------------------------- ...

  7. crm创建启用停用用户

    public static readonly string entityName = "systemuser";         public Guid userId = Guid ...

  8. crm创建基于fetch自己的自定义报告

    在解决方案资源管理器,右键点击"报表"目录.然后点击"增加了新的报告". 打开"报表向导". 在"欢迎来到报表向导"前, ...

  9. SAP 设置屏幕字段的隐藏、显示、必填和可选,以设置物料组为例

    1.事务码MM01,把物料组设为选填字段. 2.找到物料组的屏幕字段. 3.在后台根据屏幕字段找到对应字段组.后台路径:后勤-常规—物料主数据—字段选择—给字段组分配字段.点击后面的箭头进入下一屏幕. ...

随机推荐

  1. Ubuntu 14.04中文输入法的安装

    Ubuntu默认自带的中文输入法是IBUS框架的ibus-pinyin,IBUS-Bopomofo等.对于习惯于搜狗,紫光华宇,谷歌拼音的我们可能有点使用不习惯.下面就是安装常用的IBUS中文输入法. ...

  2. Mybatis的二级缓存配置

    一个项目中肯定会存在很多共用的查询数据,对于这一部分的数据,没必要每一个用户访问时都去查询数据库,因此配置二级缓存将是非常必要的.  Mybatis的二级缓存配置相当容易,要开启二级缓存,只需要在你的 ...

  3. Android中四种OnClick事件的写法

    package com.example.dailphone; import android.support.v7.app.ActionBarActivity; import android.suppo ...

  4. SQL SERVER赋权限

    --创建登录账户 use master GO EXEC sp_addlogin 'jacky', 'pwd' --EXEC sp_droplogin 'jacky' --删除登陆账户 use Test ...

  5. 优秀c++开源项目集合

    本文会持续更新, 我希望通过这篇文章把我看到过的优秀开源项目记录下来, 有时间仔细阅读. cockroachdb 前googler开发的开源的spanner数据库: https://github.co ...

  6. BUAA & ICT 夏令营之旅

    我还只有二十几岁,总应该相信点什么吧. ================================ 7.10午后坐火车赶到北京.一路上火车行驶在茫茫云海里.车窗外的世界是这样子的:一片广袤的原野 ...

  7. Python学习(18)面向对象

    目录 Python 面向对象 创建实例对象 Python内置类属性 Pyyhon对象销毁(垃圾回收) 类属性与方法 Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此 ...

  8. thinkphp模板调用函数用法

    注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式为: {$varname|function1|function2=arg1,arg2,# ...

  9. python 在不同层级目录import 模块的方法

    有一个文件夹/home/a,  里面有个模块叫b.py,  我怎么把他import到程序里? 1). import sys; sys.path.append("/home/a/") ...

  10. matplotlib库的常用知识

    看看matplotlib是什么? matplotlib是python上的一个2D绘图库,它可以在夸平台上边出很多高质量的图像.综旨就是让简单的事变得更简单,让复杂的事变得可能.我们可以用matplot ...