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

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

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. Django 过滤器 实例

    实例1 safe让Html标签以及一些特殊符号(如<)生效,下面以例子说明: # value = '<b>CPT</b>' # 那么输出的时候,CPT就是加粗的,如果不加 ...

  2. gastic 安装

    所有文件下载地址: ftp://ftp.broadinstitute.org/pub/GISTIC2.0/ cd /home/software/ tar zxf GISTIC_2_0_22.tar.g ...

  3. Codeforces Round #377 (Div. 2) C. Sanatorium 水题

    C. Sanatorium time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  4. FLASH CC 2015 CANVAS 中 gotoAndStop、gotoAndPlay() 不起作用

    哎 话不多说先看我的代码: //舞台上 放着sp0.sp1....sp8,9个mc,每个mc都有几帧, //帧上有如下代码 var S=this; S.stop() inIt1();//not wor ...

  5. FLASH CC 2015 CANVAS (六)如何像FLASH那样实现场景(多canvas)

    注意 此系列贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新. swf 项目中,我们可以很容易在一个fla文档里创建多场景.也可以通过多个fla文件发布多个s ...

  6. Nginx基础知识之——配置文件信息(检查配置文件是否正确)

    一.检查配置文件是否正确: /usr/local/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf 检查结果: nginx: [emerg] ngin ...

  7. JavaWeb学习总结(六)—HttpServletResponse

    Response概述: response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse.在客户端发出每个请求时,服务 ...

  8. Android中xml设置Animation动画效果详解

    在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...

  9. PHP 注册树模式

    /** * 注册树模式 * 将对象注册到一个类中 * 通过该类实现全局访问操作对象 */ class Tree { private static $treeList = []; private fun ...

  10. OpenGL的glScalef缩放变换函数详解

    glScalef是openGL中的模型缩放函数,就是把当前矩阵与一个表示延各个轴对物体进行拉伸.压缩.反射的矩阵相乘.这个物体的每个点的x,y,z坐标与对应的xyz参数相乘. 先看函数定义void g ...