スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

通貨内部書式変換BAPI

BAPI_CURRENCY_CONV_TO_INTERNAL

概要

外部書式の金額をSAP内部の通貨型の変数に変換するBAPIです。通貨に応じた小数点位置になっている通貨型変数をSAP内部で保持している小数点シフトされた通貨型変数に変換します。

各種のBAPIから返されるパラメータの金額項目は外部書式型になっているので、このBAPIで内部書式に変換することで、ABAPプログラム内で通貨型として扱うことができます。

パラメータ

通貨コードと内部書式の金額がパラメータです。
パラメータ一覧
種別パラメータ説明
インポートCURRENCY通貨
AMOUNT_EXTERNAL通貨額(SAP): 外部データ書式
MAX_NUMBER_OF_DIGITS内部ドメインの最大項目長
エクスポートAMOUNT_INTERNAL換算された内部通貨金額
RETURNリターンメッセージ

インポートパラメータを設定する

通貨コードと外部書式の金額のパラメータがあります。
日本円の場合、123円は小数点シフトして1.23と変換して通貨金額変数に格納する必要があります。
設定例:インポートパラメータ
項目項目名称設定値
CURRENCY通貨JPY
AMOUNT_EXTERNAL通貨額(SAP): 外部データ書式1.23
MAX_NUMBER_OF_DIGITS内部ドメインの最大項目長15

サンプルコード

通常の汎用モジュールを実行するのと同様にCALL FUNCTIONで実行します。

BAPIは例外を発生させない仕様なので、エラー判定はRETURNパラメータにメッセージタイプが「E」のレコードがあるかどうかで判定をします。
DATA: LV_CURRENCY             TYPE TCURC-WAERS,
      LV_AMOUNT_INTERNAL      TYPE BSEG-WRBTR.
      LV_AMOUNT_EXTERNAL      TYPE BAPICURR-BAPICURR,
      LV_MAX_NUMBER_OF_DIGITS TYPE I,
      LS_RETURN               TYPE BAPIRETURN.

* BAPIを呼び出して外部書式の通貨金額項目を取得する
*             :
*          (以下略)

CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL'
  EXPORTING
    CURRENCY             = LV_CURRENCY
    AMOUNT_EXTERNAL      = LV_AMOUNT_EXTERNAL
    MAX_NUMBER_OF_DIGITS = LV_MAX_NUMBER_OF_DIGITS
  IMPORTING
    AMOUNT_INTERNAL      = LV_AMOUNT_INTERNAL
    RETURN               = LS_RETURN
  .

* エラーメッセージがない場合
IF LS_RETURN-TYPE <> 'E'.
  " 正常処理
ELSE.
  " エラー処理
ENDIF.
関連記事

コメントの投稿

非公開コメント

プロフィール

Z*

Author:Z*

このブログではSAPの技術情報について解説をしていきます。

2017年:ブログをリニューアルしました。(旧Zの高速道路)

カテゴリ
最新記事
最新コメント
月別アーカイブ
検索フォーム
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。