分享

SAP BTP 平台 ABAP 编程环境如何维护自定义 Unit Of Measure 数据库表 T006

 汪子熙 2023-06-24 发布于上海

在 ABAP On-Premises 系统下,我们可以轻易在 SAPGUI 里对 Unit of Measure 数据库表即 T006 进行维护: [图片]

ABAP 数据库表 T006 是 SAP 系统中的一个重要数据表,它用于存储与度量单位相关的信息。在 SAP 系统中,度量单位用于表示各种物料、服务和计量单位。这些信息对于物料管理、计划、制造、销售、采购等业务流程至关重要。T006 表用于存储所有度量单位和相关的描述、转换因子等信息。根据要求,以下是关于 T006 数据库表的详细解释,以帮助您更好地理解这个表的作用。

  1. 表的组成:T006 表包含多个字段,用于存储度量单位的不同属性。以下是一些主要字段的简要说明:

  2. MANDT:客户端。这是一个3位数字,用于唯一标识 SAP 系统中的客户端。

  3. MSEHI:度量单位的内部表示形式。这是一个 3 位字符,用于唯一标识度量单位。

  4. MSEH3:度量单位的外部表示形式。这是一个3位字符,用于在系统中显示度量单位。

  5. MSEHL:度量单位的描述。这是一个长度可达 20 个字符的文本,用于描述度量单位的用途和含义。

  6. MSEH6:度量单位与基本单位的转换因子。这是一个浮点数,用于表示从度量单位到基本单位的转换因子。

  7. MSEH5:度量单位与其他度量单位的转换因子。这是一个浮点数,用于表示从度量单位到其他度量单位的转换因子。

  8. KNUMF:度量单位与其他度量单位的比例关系。这是一个浮点数,用于表示度量单位之间的比例关系。

  9. 数据维护:T006 表中的数据由 SAP 系统进行维护。当您在 SAP 系统中创建新的度量单位时,系统会自动将相关信息添加到 T006 表中。同样,当您更新或删除现有度量单位时,系统也会自动更新 T006 表中的数据。这确保了 T006 表始终保持最新的度量单位信息。

  10. 与其他表的关联:T006 表与其他 SAP 数据库表之间存在关联。例如,物料主数据表 MARA 中的基本计量单位字段 MEINS 引用了 T006 表中的度量单位。这确保了物料主数据表中的度量单位与 T006 表中的度量单位保持一致。此外,在采购、销售、制造等业务流程中,度量单位信息还与其他关键数据库表(如 EKPO、VBAP、AFPO 等)相关联。

但是在 SAP BTP ABAP 编程环境里,如何完成类似的任务呢?

许多 Business 应用程序在其业务流程中使用测量单位。

为了标准化这些流程,需要对单位和相关维度进行集中维护。

除此之外,还存在不同单位之间转换的业务需求。

我们提供通用标准化单位、尺寸和 ISO 代码的子集,用作预交付内容。此外,还需要在客户应用程序中定义客户拥有的单位和尺寸。

使用 API CL_UOM_MAINTENANCE 对单位进行增删改查。

创建新单位的一个例子:

CLASS zcl_uom_unit_create_test DEFINITION 
  PUBLIC 
  FINAL 
  CREATE PUBLIC . 

  PUBLIC SECTION. 
 INTERFACES if_oo_adt_classrun. 
  PROTECTED SECTION. 
  PRIVATE SECTION. ENDCLASS. CLASS zcl_uom_unit_create_test IMPLEMENTATION. 
  METHOD if_oo_adt_classrun~main. 
 DATA: lo_uom  TYPE REF TO cl_uom_maintenance, 
 ls_unit TYPE cl_uom_maintenance=>ty_uom_cre_ts. 

 cl_uom_maintenance=>get_instance( 
 RECEIVING 
   ro_uom = lo_uom ). 

 ls_unit-commercial = 'ZYX'. 
 ls_unit-technical  = 'ZYX'. 
 ls_unit-denominator = '1'. 
 ls_unit-numerator = '1'. 
 ls_unit-dec_disp = '3'. 
 ls_unit-long_text = 'Create Unit'. 
 TRY. 
  lo_uom->create( EXPORTING unit_dimid  = 'AAAADL' 
 unit_int = 'ZYX' 
 unit_cre_ts = ls_unit 
   IMPORTING error = DATA(error) 
 ). 
   CATCH cx_uom_error INTO DATA(lo_error). 
  out->write( | Exception raised | ). 
  out->write( lo_error->get_text( ) ). 
 ENDTRY. 

  ENDMETHOD. ENDCLASS.

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章