SAP ABAP BAPI函数50连载32-BAPI_OBJCL_CHANGE CL02修改特征

6.1儿童节,上海初步解封,四川发生6.1级别地震且有人员伤亡。

莫言说:起风了,不要被大风吹倒,活下去~

事务代码CL01如何创建物料分类视图的BAPI我们之前第16章有讲到过,今天我们学习TCODE CL02的BAPI用法。

用来修改对象特征数据。

SAP ABAP BAPI函数50之16-BAPI_OBJCL_CREATE创建物料分类视图CL01

 

有了创建的经验,修改起来也就得心应手啦。传入参数字段:

参数名称 关联类型 可选的 说明
OBJECTKEY BAPI1003_KEY-OBJECT 可选 要分类的对象码
OBJECTTABLE BAPI1003_KEY-OBJECTTABLE 必选 对于分类的对象的数据库表名称
CLASSNUM BAPI1003_KEY-CLASSNUM 必选 分类编号
CLASSTYPE BAPI1003_KEY-CLASSTYPE 必选 分类的类型
STATUS BAPI1003_KEY-STATUS 可选 分类状态
KEYDATE BAPI1003_KEY-KEYDATE 可选 关键日期

 

参数名称 关联类型 可选的 说明
ALLOCVALUESNUMNEW BAPI1003_ALLOC_VALUES_NUM 必选 分配 BAPI – NUM、DATE、TIME 类型的值
ALLOCVALUESCHARNEW BAPI1003_ALLOC_VALUES_CHAR 必选 分配 BAPI – CHAR、BOOL 类型的值
ALLOCVALUESCURRNEW BAPI1003_ALLOC_VALUES_CURR 必选 分配 BAPI – CURR 类型值
RETURN BAPIRET2 必选 返回参数

ALLOCVALUESNUMNEW常用输入参数字段:

组件 类型 简短描述
CHARACT ATNAM 特征名称

 

ALLOCVALUESCHARNEW常用输入参数字段:

组件 类型 简短描述
CHARACT ATNAM 特征名称
VALUE_CHAR ATWRT30 特征值

如下是demo代码,作为HOT583.com的码农,多年前也是SAP ABAP beginners ,最开始学习会有些难度,

到处去找Tutorial for Constant。如下是详细代码:

REPORT ZTEST_HOT583_COM.

*bapi相关参数的内表,工作区定义

DATA: BEGIN OF ls_excel,
matnr         TYPE char40, 
klart         TYPE klassenart, 
table         TYPE tabelle, 
classnum      TYPE klasse_d, 
zhg_ysg_zpl   TYPE char30, “子品类
zhg_ysg_cz    TYPE char30, “材质
zhg_ysg_ztcc  TYPE char30, “主体尺寸
zhg_ysg_azfs  TYPE char30, “安装方式
zhg_ysg_cpfx  TYPE char30, “产品方向
zhg_ysg_dcpz  TYPE char30, “档次配置
zhg_ysg_bjpz  TYPE char30, “部件配置
zhg_ysg_xspz  TYPE char30, “下水管配置
zhg_ysg_lbsx  TYPE char30, “类别属性
zhg_ysg_gpxh  TYPE char30, “柜盆型号
zhg_ysg_tjdx  TYPE char30, “体积
zhg_ysg_ys    TYPE char30, “颜色
zhg_ysg_logo  TYPE char30, “LOGO

zhg_hyf_xcx   TYPE char30, “型材型号
zhg_hyf_xccy  TYPE char30, “型材长度
zhg_hyf_bkys1 TYPE char30, “边框颜色

zhg_hyf_gc    TYPE char30, “工厂
zhg_hyf_xl    TYPE char30, “产品系列
zhg_hyf_xh    TYPE char30, “产品型号
*        zhg_hyf_zdhd  TYPE char30, “最大玻璃厚度

zhg_hyf_jtx   TYPE char30, “胶条型号-200
zhg_hyf_cphd1 TYPE char30, “玻璃厚度 -200
zhg_hyf_jtc   TYPE char30, “胶条长度-200
icon          TYPE char04,
mess          TYPE char200,
END OF ls_excel.

DATA: lt_excel LIKE STANDARD TABLE OF ls_excel.

DATA: lt_numnew  LIKE  bapi1003_alloc_values_num OCCURS 0 WITH HEADER LINE,
lt_charnew LIKE  bapi1003_alloc_values_char OCCURS 0 WITH HEADER LINE,
lt_currnew LIKE  bapi1003_alloc_values_curr OCCURS 0 WITH HEADER LINE,
lt_return  LIKE  bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: c_objectkey   LIKE  bapi1003_key-object,
c_objecttable LIKE  bapi1003_key-objecttable,
c_classnum    LIKE  bapi1003_key-classnum,
c_classtype   LIKE  bapi1003_key-classtype.

************************************************

*中间省略从excel读取数据到lt_excel内表的过程

************************************************

LOOP AT lt_excel INTO ls_excel WHERE icon = ‘@5D@’.
FREE: lt_numnew ,lt_charnew ,lt_currnew ,lt_return  .
CLEAR: c_objectkey,c_objecttable,c_classnum,c_classtype  ,
lt_numnew ,lt_charnew ,lt_currnew ,lt_return  .

c_objectkey = ls_excel-matnr.
c_objecttable = ls_excel-table.
c_classnum = ls_excel-classnum.
c_classtype  = ls_excel-klart.

IF p_klart = ‘001’.
lt_charnew-charact = ‘ZHG_YSG_ZPL’. “子品类
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_zpl.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_CZ’. “材质
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_cz.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_ZTCC’. “主体尺寸
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_ztcc.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_AZFS’. “安装方式
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_azfs.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_CPFX’. “产品方向
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_cpfx.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_DCPZ’. “档次配置
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_dcpz.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_BJPZ’. “部件配置
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_bjpz.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_XSPZ’. “下水管配置
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_xspz.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_LBSX’. “类别属性
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_lbsx.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_GPXH’. “柜盆型号
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_gpxh.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_TJDX’. “体积
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_tjdx.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_YS’. “颜色
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_ys.
APPEND lt_charnew. CLEAR: lt_charnew.

lt_charnew-charact = ‘ZHG_YSG_LOGO’. “LOGO
lt_charnew-VALUE_NEUTRAL = ls_excel-zhg_ysg_logo.
APPEND lt_charnew. CLEAR: lt_charnew.
ENDIF.

CALL FUNCTION ‘BAPI_OBJCL_CHANGE’
EXPORTING
objectkey          = c_objectkey
objecttable        = c_objecttable
classnum           = c_classnum
classtype          = c_classtype
*           STATUS             = ‘1’
*           STANDARDCLASS      =
*           CHANGENUMBER       =
*           KEYDATE            = SY-DATUM
*           NO_DEFAULT_VALUES  =  
*           KEEP_SAME_DEFAULTS =  
*           OBJECTKEY_LONG     =
*         IMPORTING
*           CLASSIF_STATUS     =
TABLES
allocvaluesnumnew  = lt_numnew
allocvaluescharnew = lt_charnew
allocvaluescurrnew = lt_currnew
return             = lt_return.

READ TABLE lt_return WITH KEY type = ‘E’.
IF sy-subrc = 0.
ROLLBACK  WORK.

ELSE.
COMMIT WORK AND WAIT.
ls_excel-icon = ‘@5B@’ .
ls_excel-mess = ‘数据更新成功’.
ENDIF.

ENDLOOP.

 

本文链接 http://www.hot583.com/2022/06/01/bapi_objcl_change/

本文为作者原创,如果这篇文章对您有用,欢迎转载,

转载请务必注明来源《今日热点在看》http://www.hot583.com/

我的微信公众号【 hot583 】 或者在这个链接联系我

微信原文《全文完》

今日热点在看SAP HOT583