ABAP 内外码的转换

一、前导零

较常用的字段:KUNNR(客户编号)、MATNR(物料编号)、PRCTR(利润中心)

1、加前导零

ECC 调用函数

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'  "加前导零
    EXPORTING
      input  = lv_data
    IMPORTING
      output = lv_data.

对于物料可能会存在18位/40位长度问题,出问题可以用这个

  CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'  "加前导零
    EXPORTING
      input        = lv_data
    IMPORTING
      output       = lv_data
    EXCEPTIONS
      length_error = 1
      OTHERS       = 2.

S4 新语法

  lv_data = |{ lv_data ALPHA = IN }|.  "加前导零

2、去前导零

ECC 调用函数

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'  "去前导零
    EXPORTING
      input  = lv_data
    IMPORTING
      output = lv_data.

S4 新语法

  lv_data = |{ lv_data ALPHA = OUT }|.  "去前导零

二、WBS号

较常用的字段:PSPNR(项目)、PS_PSP_PNR(工作分解结构元素 (WBS 元素))

1、外码转内码

ECC 调用函数

  CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'  "外码转内码
    EXPORTING
      input  = lv_data
    IMPORTING
      output = lv_data.

2、内码转外码

ECC 调用函数

  CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT'  "内码转外码
    EXPORTING
      input  = lv_data
    IMPORTING
      output = lv_data.

三、日期

在某些操作的时候,日期格式要进行转换

1、内码转用户格式

ECC 调用函数

  DATA: lv_date  TYPE sy-datum,
        lv_datum TYPE char10.
        
  lv_date = sy-datum.
  
  CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'  "内码转用户格式
    EXPORTING
      date_internal = lv_date  "20220726
    IMPORTING
      date_external = lv_datum  "2022-07-26

S4 新语法

  lv_datum = |{ lv_date DATE = USER }|.  "内码转用户格式   2022-07-26

2、内码转ISO格式

S4 新语法

  lv_datum = |{ lv_date DATE = ISO }|.  "内码转ISO格式   2022-07-26

四、时间

在某些操作的时候,时间格式要进行转换

1、内码转用户格式

ECC 调用函数


S4 新语法

  DATA: lv_time  TYPE sy-uzeit,
        lv_uzeit TYPE char8.

  lv_time = sy-uzeit.
  lv_uzeit = |{ lv_time TIME = USER }|.  "内码转用户格式   10:11:05

2、内码转ISO格式

S4 新语法

  lv_uzeit = |{ lv_time TIME = ISO }|.  "内码转ISO格式   10:11:05

四、物料单位

常用字段:MEINS(单位)

1、内码转外码

ECC 调用函数

  DATA: lv_meins TYPE meins,
        lv_longt TYPE char20,
        lv_short TYPE char10.
  
  CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'  "单位内码转外码
    EXPORTING
      input      = lv_meins  "单位内码
      language   = sy-langu  "语言
    IMPORTING
      long_text  = lv_longt  "长文本
      output     = lv_meins  "单位外码
      short_text = lv_short.  "短文本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值