トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ABAP/オフセット

Last-modified: 2016-01-02 (土) 15:02:00
Top/ABAP/オフセット

あるデータの位置を、基準点からの差(距離)で表した値のこと。

概要

offsetとは、英語で差し引き計算するという意味で、そこから転じて「必要なデータの位置を、基準点からの差(距離)で表した値」のことをこう呼ぶ。

用法

そんな薀蓄は置いといて、SAP標準で項目にセットされるコード体系を抜き出したり、固定長のインタフェースファイルを取り込んだりと色々と使いでがある。

注意点は、位置はゼロから始まることと、文字列型でなければ使えないこと。

サンプル

DATA : 
  L_MADE_IN_JAPAN TYPE C LENGTH 11 VALUE 'MADEINJAPAN'.

  L_FIRST  = L_MADE_IN_JAPAN+0(4).
  L_SECOND = L_MADE_IN_JAPAN+4(2).
  L_THIRD  = L_MADE_IN_JAPAN+6(5).

L_FIRSTはMADE、L_SECONDはIN、L_THIRDはJAPANとなる。



【スポンサードリンク】
amazon_book_sap_system_implement is not found or not readable.




最新の10件を表示しています。 コメントページを参照

  • unicodeやマルチバイト文字化けに対応するためには、CL_ABAP_LIST_UTILITIES=>REPLACE_INTO_DISPLAY_LAYOUTを使った方が良いのでは? -- ITの人 2012-03-01 (木) 17:30:55
  • そのメソッドを使ったことがないので見てみましたが、I/Fの吐き出しなど「指定位置に指定した長さだけセットする」という用途には良さそうです。が、オフセットは書き出しだけでなくシステムに保存済みのコードなどの読み込みにも使いますので、一概にどちらが良いとは言えないかと思いますよ。ちなみに私は指定した長さで分割する場合は汎用モジュールTEXT_SPLITを使用しています。 -- Exciter 2012-03-01 (木) 23:24:31
  • text_splitは、余計なことをしてくれちゃいます。最終文字が括弧"(だと、ご丁寧に括弧の前で切ってくれちゃうよ。 -- うに 2012-10-02 (火) 14:11:45
  • 今まで意識したことはありませんでしたが、4.7環境でテストすると、そのように動作しますね。ただし、Noteが幾つか出ていることから、汎用モジュールの仕様というよりは単なる不具合かと思います。 -- Exciter 2012-10-05 (金) 11:29:33
  • トレースすればわかると思うけど、ERP 6.0 ehp5 unicodeでも同じように括弧の前で切ります。コードページの問題かもしれないけど、OSSに聞いたら「仕様です」と答えてきました。日本語の時にあえてその動作をしていますと。 -- うに 2012-11-29 (木) 17:35:52
  • 追伸、”(”だけじゃなく”【”も”「”も”『”も同様。だから固定長の切り出しには使ってはいけません! -- うに 2012-11-29 (木) 17:39:54
  • なるほど。あまりフリーテキストに対しては使用していなかったため気付かなかったのかもしれません。ご指摘ありがとうございます。 -- Exciter 2012-11-30 (金) 13:28:04
お名前: