讓我老火的CONVERSION_EXIT_INVDT_INPUT

    最近發生了一件令我相當老火(貌似重慶人很喜歡用這個詞)的事情:同

 

一個報表因為不同的帳號執行,最後結果不一樣(這裡不涉及權限相關的內

 

容),更怪異的是唯獨只有一個帳號不一樣,其他都沒問題。從這一情況來

 

分析,代碼是沒有問題,應該是用戶設置問題(SU01,你懂的),但具體是

 

哪個參數就不得而知了。

 

    後來用兩個用戶來Debug代碼,經過一番周折,發現這麼一段FM的調用:

 

CONVERSION_EXIT_INVDT_INPUT ,代碼如下:

 

FUNCTION conversion_exit_invdt_input.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"       IMPORTING
*"             VALUE(INPUT)
*"       EXPORTING
*"             VALUE(OUTPUT)
*"----------------------------------------------------------------------

  
IF input <> space.
    
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
         
EXPORTING
              date_external            = 
input
         
IMPORTING
              date_internal            = datum
         
EXCEPTIONS
              date_external_is_invalid = 
1.

    
IF sy-subrc <> 0.
      
MESSAGE e102.
    
ENDIF.
    
MOVE datum TO chdat.
    houtput = 
'99999999' - chdat.  "Zwischenspeichern in houtput, damit
    
output  = houtput.             "die führenden Nullen nicht verloren
                                       
"gehen.
  
ELSE.
    
output = space.        " damit bei 'Springen->Anderer Eintrag' auch
  
ENDIF.                               " die Eingabe SPACE erlaubt ist
ENDFUNCTION.               " (CONVERT_DATE_INPUT wird nicht durchlaufen)

 

  從該FM可以發現,它是將輸入的日期轉化為與用戶設置保持一致的日期,

 

然後再做字符運算。看到這裡,我才感覺到自己悲催了。所以這裡提醒下,

 

以後要是再用到類似的代碼,一定要注意用戶的參數設置。從整體來講,特

 

別是對一個比較成熟的系統來說,一套標準化的作業流程更是難能可貴。

 

 

 

  

 

    

 

   

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22464099/viewspace-695817/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22464099/viewspace-695817/

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值