【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