【SAP】内外码互转


  • 在SAP系统中,实际以内码作为存储,外码作为显示的字段
    1. SAP为了方便查看和校验,在SE11、SE16等查看透明表的事务码中,带了内外码转化的功能,是否转换可以进行配置。
      配置的地方

      勾选的话 se16或者se11查看的时候就自动转换为外码
    2. se16n取消转换例程的选项
  • 查看转化例程
    • 通过se11在表的定义中,点击数据元素-域
  • 内外码转换function
    • 内码转外码 CONVERSION_EXIT_ABPSP_OUTPUT
    • 外码转内码 CONVERSION_EXIT_ABPSP_INPUT
    • 代码实例
      		  DATA lv_char TYPE c LENGTH 24.
      		  DATA lt_prps TYPE STANDARD TABLE OF prps.
      		  
      		  TYPES:BEGIN OF typ_prps,
      		          pspnr TYPE prps-pspnr,
      		          posid TYPE prps-posid_edit,
      		        END OF typ_prps.
      		  DATA: lt_tmp TYPE STANDARD TABLE OF typ_prps,
      		        ls_tmp TYPE typ_prps.
      		  
      		  SELECT  *
      		  INTO TABLE @lt_prps
      		  FROM prps
      		  UP TO 10 ROWS.
      		  WRITE:/ '内码转外码------>'.
      		  LOOP AT lt_prps ASSIGNING FIELD-SYMBOL(<fs_prps>).
      		    CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT'
      		      EXPORTING
      		        input  = <fs_prps>-pspnr
      		      IMPORTING
      		        output = lv_char.
      		    WRITE:/ |内码:{ <fs_prps>-pspnr } 外码:{ lv_char } |.
      		  *  ls_tmp-pspnr = <fs_prps>-pspnr.
      		  *  ls_tmp-posid = lv_char.
      		  *  APPEND ls_tmp TO  lt_tmp.
      		    lt_tmp = VALUE #( BASE lt_tmp
      		                      ( pspnr = <fs_prps>-pspnr
      		                        posid = lv_char )
      		                    ).
      		  
      		    CLEAR lv_char.
      		  ENDLOOP.
      		  WRITE:/ '外码转内码------>'.
      		  LOOP AT lt_tmp ASSIGNING FIELD-SYMBOL(<fs_tmp>).
      		    CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
      		      EXPORTING
      		        input  = <fs_tmp>-posid
      		      IMPORTING
      		        output = lv_char.
      		    WRITE:/ |外码:{ <fs_tmp>-posid } 内码:{ lv_char } |.
      		    CLEAR lv_char.
      		  ENDLOOP.
      


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM