ヘッダーをスキップ

Oracle Assetsユーザー・ガイド
リリース12
E06049-01
目次へ
目次
前のページへ
前へ
次のページへ
次へ

Oracle Assetsの振替API

この付録では、次のトピックについて説明します。

はじめに

Oracle Assetsの既存のインタフェースとの併用が困難なカスタム・インタフェースを設定している場合は、このAPIを使用できます。振替APIでは、FA_TRANSFER_PUB.DO_TRANSFERプロシージャが使用されます。Oracle Assetsの既存の資産振替インタフェースとの併用が困難なカスタム・インタフェースを設定している場合は、このAPIを使用できます。

Oracle Assetsでは、次のいずれかの方法を使用して資産を振り替えることもできます。

主な機能

振替APIには、次の機能が用意されています。

税務台帳

振替APIによって、取引の振替が発生した会計用資産台帳に関連付けられているすべての税務台帳の資産が自動的に振り替えられます。

代替元帳通貨

代替元帳通貨を設定している場合は、Oracle Assets APIを使用して資産を追加または変更すると、その取引はAPIによって報告通貨に自動的にコピーされます。請求書端数処理の問題は、APIを使用して、元帳通貨と報告通貨の両方に対して代替元帳通貨会計処理を実行することで回避されます。

関連項目

取引APIの摘要

サンプル・スクリプト: 振替APIを使用した単位の振替

振替APIの摘要

振替APIプロシージャは、FA_TRANSFER_PUB.DO_TRANSFER ()と呼ばれます。

次の表に、FA_TRANSFER_PUB.DO_TRANSFERプロシージャの各要素の引数、型、値および説明を示します。

各引数には、P、XまたはPXのプリフィクスが付加されます。それぞれの意味は、次のとおりです。

引数 説明
P_API_VERSION NUMBER 内部使用のみ。 使用しているAPIのバージョン。
P_INIT_MSG_LIST VARCHAR2(1) FND_API.G_TRUE: メッセージ・スタックを初期化します。
FND_API.G_FALSE: メッセージ・スタックを初期化しません(デフォルト)。
メッセージ・スタックを初期化するかどうか、消去するかどうかを決定します。
P_COMMIT VARCHAR2(1) FND_API.G_TRUE: 自動的にコミットします。
FND_API.G_FALSE: 自動的にコミットしません(デフォルト)。
取引をコミットします。
P_VALIDATION_LEVEL NUMBER FND_API.G_VALID_ LEVEL_NONE: 取引に対して低レベルの検証を実行します。
FND_API.G_VALID_ LEVEL_FULL: 取引に対して高レベルの検証を実行します(デフォルト)。
APIによる資産の検証。
P_CALLING_FN VARCHAR2(30)   APIをコールする関数。
X_RETURN_STATUS VARCHAR2(1) FND_API.G_RET_STS_ SUCCESS: 振替の成功を示します。
FND_API.G_RET_STS_ ERROR: 振替の失敗を示します。
FND_API.G_RET_STS_ UNEXP_ERROR: 予期しないエラーを示します。
APIが成功したかどうかを判別します。
X_MSG_COUNT NUMBER   メッセージ・スタックのメッセージ数。メッセージ・スタックに追加されたメッセージの数が戻されます。
X_MSG_DATA VARCHAR2(1024)   メッセージ・スタック。メッセージ・スタックの最上位メッセージが戻されます。
PX_TRANS_REC FA_API_TYPES. TRANS_REC_TYPE   実行する取引を示します。ユーザーが指定した取引情報です。
PX_ASSET_HDR_REC FA_API_TYPES. ASSET_HDR_REC_ TYPE   ユーザーが指定した資産情報です。資産の一意の識別子です。
PX_ASSET_DIST_TBL FA_API_TYPES. ASSET_DIST_TBL   資産の配分情報。

振替APIの使用

この項では、このAPIのコール方法およびこのAPIで必要なパラメータ体系の移入方法を示します。説明の最後には、PL/SQLでのAPIのコール方法を示したサンプル・スクリプトも記載されています。

APIをコールする前に、移入する必要のある体系が3つあります。

TRANS_REC_TYPE取引体系

TRANS_REC_TYPE取引体系には、取引ヘッダーIDや取引タイプ・コードなど、取引に関する情報が記載されています。次の表に、各引数の型と値の情報を示します。

引数 必須/オプション
TRANSACTION_DATE_ ENTERED オプション DATE 前期間の振替を実行する場合は移入され、それ以外の場合は何も移入されないか、NULLに設定されます。現行期間にデフォルト設定されます。
TRANSACTION_NAME オプション VARCHAR2(20) 取引の摘要。このフィールドは、資産ワークベンチの「注釈」フィールドです。
DESC_FLEX オプション DESC_FLEX_ REC_ TYPE 付加フレックスフィールド・セグメント。
WHO_INFO 必須 STANDARD_ WHO_REC_ TYPE 標準WHO列。
CALLING_INTERFACE オプション VARCHAR2(30) CUSTOMにデフォルト設定されます。
TRANSACTION_HEADER_ ID 内部使用のみ NUMBER(15) オプションのOUTパラメータ。

ASSET_HDR_REC_TYPE資産体系

ASSET_HDR_REC_TYPE資産体系には、資産IDや台帳タイプ・コードなど、特定の資産に関する一意の識別情報が記載されています。次の表に、各引数の型と値の情報を示します。

引数 必須/オプション
ASSET_ID 必須 NUMBER(15) 資産ID。
BOOK_TYPE_CODE 必須 VARCHAR2(15) 台帳名。

ASSET_DIST_REC_TYPE資産体系

ASSET_DIST_REC_TYPE資産体系には、単一の振替元または振替先の配分明細が記載されています。単一の振替取引を構成するすべてのASSET_DIST_REC_TYPEレコードは、ASSET_DIST_TBL表に格納されています。各振替取引には、少なくとも1つの振替元明細と1つの振替先明細が必要です。次の表に、各引数の型と値の情報を示します。

引数 必須/オプション
DISTRIBUTION_ID 必須(行が振替元の配分の場合) NUMBER(15) 一意の配分識別番号。
TRANSACTION_UNITS 必須 NUMBER 取引に関連する単位数。
ASSIGNED_TO オプション NUMBER(15) 従業員識別番号。
EXPENSE_CCID 必須(行が振替先の配分の場合) NUMBER(15) 減価償却費勘定の識別番号。
LOCATION_CCID 必須(行が振替先の配分の場合) NUMBER(15) 事業所フレックスフィールドの識別番号。

サンプル・スクリプト: 振替APIを使用した単位の振替

次に、振替取引に対して振替APIを使用する例を示します。これは、2単位を、1つの既存配分から、ぞれぞれに1単位がある2つの新規配分に振り替える例です。

set serveroutput on;



declare



   l_trans_rec                fa_api_types.trans_rec_type;

   l_asset_hdr_rec            fa_api_types.asset_hdr_rec_type;

   l_asset_dist_tbl           fa_api_types.asset_dist_tbl_type;



   l_return_status            VARCHAR2(1);

   l_mesg_count               number;

   l_mesg                     varchar2(512);



begin



   dbms_output.enable(1000000);



   fa_srvr_msg.init_server_message;



   -- fill in asset information

   l_asset_hdr_rec.asset_id       := &asset_id



   -- fill in distribution data for existing distribution lines

   -- affected by this transfer txn. Note: You need to fill in 

   -- only affected distribution lines. 

   --

   -- For source distribution, you must fill in either existing 

   -- distribution id or 2 columns(expense_ccid,location_ccid) or

   -- 3-tuple columns(assigned_to,expense_ccid, and location_ccid)

   -- depending on the makeup of the particular distribution

   -- of the asset. 



   l_asset_dist_tbl(1).transaction_units := &trx_units



   -- Source

   -- Option A - known dist id

   l_asset_dist_tbl(1).distribution_id   := &existing_dist_id

   

   -- or 

   -- Option B - known dist attributes

   l_asset_dist_tbl(1).assigned_to       := &existing_assigned_to

   l_asset_dist_tbl(1).expense_ccid      := &existing_expense_ccid

   l_asset_dist_tbl(1).location_ccid     := &existing_location_id 





   -- Destination

   -- fill in dist info for one or more destination distribution (start with 2..(3,4,..))

   l_asset_dist_tbl(2).transaction_units := &trx_units2 

   l_asset_dist_tbl(2).assigned_to       := &new_assigned_to

   l_asset_dist_tbl(2).expense_ccid      := &new_expesne_ccid

   l_asset_dist_tbl(2).location_ccid     := &new_location_id



   FA_TRANSFER_PUB.do_transfer( 

           -- std parameters

           p_api_version       => 1.0, 

           p_init_msg_list     => FND_API.G_FALSE,

           p_commit            => FND_API.G_FALSE,

           p_validation_level  => FND_API.G_VALID_LEVEL_FULL,

           p_calling_fn        => NULL,

           x_return_status     => l_return_status,  

           x_msg_count         => l_mesg_count,  

           x_msg_data          => l_mesg,  

           -- api parameters

           px_trans_rec        => l_trans_rec,

           px_asset_hdr_rec    => l_asset_hdr_rec,

           px_asset_dist_tbl   => l_asset_dist_tbl);



   --dump messages

   l_mesg_count := fnd_msg_pub.count_msg;



   if l_mesg_count > 0 then



      l_mesg := chr(10) || substr(fnd_msg_pub.get

                                    (fnd_msg_pub.G_FIRST, fnd_api.G_FALSE),

                                     1, 250);

      dbms_output.put_line(l_mesg);



      for i in 1..(l_mesg_count - 1) loop

         l_mesg :=

                     substr(fnd_msg_pub.get

                            (fnd_msg_pub.G_NEXT,

                             fnd_api.G_FALSE), 1, 250);



         dbms_output.put_line(l_mesg);

      end loop;



      fnd_msg_pub.delete_msg();



   end if;



   if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then

      dbms_output.put_line('FAILURE');

   else

      dbms_output.put_line('SUCCESS');

      dbms_output.put_line('THID' || to_char(l_trans_rec.transaction_header_id));

   end if;



end;

/