冰影寒沙

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

需求:对于已经创建好的物料,没有维护分类视图,需要对其维护分类视图

(bapi_material_savedata是创建物料的bapi,但是里边不包含分类视图的创建,就可以在创建完物料之后,再用此bapi来创建分类视图) 

*创建物料分类图,三个参数分别是物料号,分类类别,类别
FORM create_objcl USING mat klr cls.
  DATA: return_messages LIKE TABLE OF bapiret2,
        mat2 LIKE bapi1003_key-object.
  mat2 = mat. "此处直接用mat作为参数赋值的话,会报类型冲突错误,故作此设置

  CALL FUNCTION 'BAPI_OBJCL_CREATE'
    EXPORTING
      objectkeynew            = mat2
      objecttablenew          = 'MARA'
      classnumnew             = cls
      classtypenew            = klr
*     STATUS                  = '1'
      standardclass           = 'X' "此处务必赋值‘X’,是为了bapi执行成功之后,MM03查看物料可以看到分类视图
*     CHANGENUMBER            =
*     KEYDATE                 = SY-DATUM
*     NO_DEFAULT_VALUES       = ' '
*   IMPORTING
*     CLASSIF_STATUS          =
    TABLES
*     ALLOCVALUESNUM          =
*     ALLOCVALUESCHAR         =
*     ALLOCVALUESCURR         =
      return                  = return_messages
            .
  IF sy-subrc = 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait          = 'X'
*     IMPORTING
*       RETURN        =
              .
  ENDIF.

ENDFORM.                    "create_objcl

 

备注:摘自网上

This BAPI does not change the database. To change the database, call BAPI BapiService.TransactionCommit afterwards.

This BAPI can only be used with objects that are not classes.

The values processed in this BAPI only affect classification, not configuration.

posted on 2011-09-06 14:29  冰影寒沙  阅读(2610)  评论(0编辑  收藏  举报