ヘッダーをスキップ

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

Oracle Assetsの単位修正API

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

はじめに

Oracle Assetsの既存のインタフェースとの併用が困難なカスタム・インタフェースを設定している場合は、このAPIを使用できます。単位修正APIでは、FA_UNIT_ADJ_PUB.DO_UNIT_ADJUSTMENT()プロシージャが使用されます。

主な機能

単位修正APIには、次の機能が用意されています。

税務台帳

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

代替元帳通貨

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

関連項目

単位修正APIの摘要

サンプル・スクリプト: 単位修正APIの使用

共有フレームワーク

すべての取引APIでは、APIの仕組みを理解しやすくし、コーディングでの冗長性を最小化するために、基本の共有フレームワークが使用されます。単位修正APIで使用される共通体系は、次のとおりです。

前述の体系の共有フレームワークおよび定義の詳細は、「共通体系」を参照してください。

単位修正APIの摘要

修正取引を実行するには、FA_UNIT_ADJ_PUB.DO_UNIT_ADJUSTMENT () APIをコールする必要があります。次の表に、FA_UNIT_ADJ_PUB.DO_UNIT_ADJUSTMENTプロシージャの各要素の引数、型、値および説明を示します。

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

引数 説明
P_API_VERSION NUMBER 内部使用のみ。 使用しているAPIのバージョン。
P_INIT_MSG_LIST VARCHAR2 FND_API.G_TRUE: メッセージ・スタックを初期化します。
FND_API.G_FALSE: メッセージ・スタックを初期化しません(デフォルト)。
メッセージ・スタックを初期化するかどうか、消去するかどうかを決定します。
P_COMMIT VARCHAR2 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   APIをコールする関数。
X_RETURN_STATUS VARCHAR2 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 FA_API_TYPES.MSG_REC_TYPE   ユーザーに渡されるメッセージを格納するAPIの一部です。
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_ TYPE   資産の配分情報。

TRANS_REC_TYPE取引体系

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

引数 必須/オプション
TRANSACTION_DATE_ ENTERED オプション DATE 前期間の単位修正を実行する場合は移入され、それ以外の場合は何も移入されないか、NULLに設定されます。現行期間にデフォルト設定されます。
TRANSACTION_NAME オプション VARCHAR2(20) この取引の注釈を入力します。
DESC_FLEX オプション DESC_FLEX_REC 付加フレックスフィールド情報を入力します。
WHO_INFO オプション STANDARD_WHO_REC_TYPE 次の各値にデフォルト設定されます。
LAST_UPDATE_DATE: SYSDATE。
LAST_UPDATED_BY: FND_GLOBAL.USER_ID。
CREATED_BY: FND_GLOBAL.USER_ID。
LAST_UPDATE_LOGIN: FND_GLOBAL.LOGIN_ID。
CALLING_INTERFACE オプション VARCHAR2(30) このAPIをコールするインタフェース名を入力します。CUSTOMにデフォルト設定されます。
TRANSACTION_ HEADER_ID オプション NUMBER(15)  

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) 事業所フレックスフィールドの識別番号。

例1

この資産には、1つの配分明細がある1単位の数量が設定されています。単位数量の合計を2単位に修正し、新規単位を新規配分明細に割り当てます。これを実行するには、次の表に示すように、配分明細を移入する必要があります。

引数 行1
DISTRIBUTION_ID  
TRANSACTION_UNITS 1
ASSIGNED_TO 20
EXPENSE_CCID 1234
LOCATION_CCID 7777

この表は、新規配分情報で作成される新規の1つの単位を示しています。また、DISTRIBUTION_ID、ASSIGNED_TOおよびLOCATION_IDは、すべて有効なIDである必要があります。

例2

この資産には、合計2つの単位数量と2つの配分明細が設定されており、各配分明細には1単位の数量があります。この例では、それぞれの既存明細に1単位の数量を追加して、合計単位数量を4つに増加します。これを実行するには、次の表に示すように、配分明細を移入する必要があります。

引数 行1 行2
DISTRIBUTION_ID 1111 2222
TRANSACTION_UNITS 1 1
ASSIGNED_TO    
EXPENSE_CCID    
LOCATION_CCID    

この表は、配分#1111に追加される1つの単位数量と配分#2222に追加される1つの単位数量を示しています。

サンプル・スクリプト: 単位修正APIの使用

次に、単位修正取引に対してパブリック単位修正APIをコールする例を示します。この例では、合計単位数量が2から4に増加され、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 unit adj 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. 

   -- 

   -- NOTE: you can add to existing, subtract from existing, 

   -- add new, or a combination of these





   -- Option 1 - Impacts to existing distributions



      l_asset_dist_tbl(1).transaction_units := &trx_units



      -- Option 1a - known dist id

      l_asset_dist_tbl(1).distribution_id   := &existing_dist_id

   

      -- or 



      -- Option 1b - Existing distribution - known dist attributes

      l_asset_dist_tbl(1).assigned_to       := &existing_assigned_to

      l_asset_dist_tbl(1).expense_ccid      := &existing_epense_ccid

      l_asset_dist_tbl(1).location_ccid     := &existing_location_id 





   -- and/or 



   -- Option 2 - Completely new Distributions



      -- 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_expense_ccid

      l_asset_dist_tbl(2).location_ccid     := &new_location_id





   FA_UNIT_ADJ_PUB.do_unit_adjustment( 

           -- 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;

/