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

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

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. 7.mybatis一对多关联查询

    和第5节一对一查询类似,但是不同的是,一对一使用的是association,而一对多使用collection. 实例: 1个班级Class,对应1个老师Teacher,对应多个学生Student 1. ...

  2. How can I retrieve the remote git address of a repo?

    When you want to show an URL of remote branches, try: git remote -v

  3. NS_ASSUME_NONNULL_BEGIN,NS_ASSUME_NONNULL_END

    Nonnull区域设置(Audited Regions) 如果需要每个属性或每个方法都去指定nonnull和nullable,是一件非常繁琐的事.苹果为了减轻我们的工作量,专门提供了两个宏:NS_AS ...

  4. 用一张图片制作skybox图片 (如何制作360全景图、立方体)

    我转发的帖子在这里 http://dong2008hong.blog.163.com/blog/static/4696882720140294039205/ 原帖不知道地址 我这里简单整理了下 去掉了 ...

  5. const 与 readonly 知多少

    const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写.那么,const与readonly 这两个修饰符到底区别在什么地方呢?其实,这个牵扯出C#语言中两种不同的常量类型 ...

  6. [转]瓦的VPS后台kiwivm面板使用+安装AMH+装VPN

    参考网址:http://u-lis.com/archives/4159 ZC:网页图片保存于“百度云 OsSkill --> 全部文件 > 知识__来自网页 > 瓦 > 瓦_面 ...

  7. pkg-config问题:

    pkg-config是一个工具,可以用于检测相应的依赖环境. pkg-config用来检索系统中安装库文件的信息,典型的是用作库的编译和连接.一般来说,如果库的头文件不在/usr/include目录中 ...

  8. Mysql插入数据的时候,中文乱码问题的解决

    如果在Mysql中插入数据的时候,没有特定指定编码,可能会产生一系列的问题,例如,如果用insert语句的时候,可能提示incorrect values,等...究其原因,实际上无非是要让数据库和表中 ...

  9. Java编程思想学习笔记_5(IO流)

    一.用DataInputStream读取字符 可以使用available方法查看还有多少可供存取的字符.示例如下: public class Test1 { public static void ma ...

  10. AJAX的简介

    AJAX 指异步JavaScript及XML(Asynchronous JavaScript And XML(异步JavaScript和XML)),是指一种创建交互式网页应用的网页开发技术. 国内通常 ...