标签归档:原值调整

Oracle ebs资产调整 api例子

declare
  l_trans_rec                 FA_API_TYPES.trans_rec_type;
  l_asset_hdr_rec             FA_API_TYPES.asset_hdr_rec_type;
  l_asset_fin_rec_adj         FA_API_TYPES.asset_fin_rec_type;
  l_asset_fin_rec_new         FA_API_TYPES.asset_fin_rec_type;
  l_asset_fin_mrc_tbl_new     FA_API_TYPES.asset_fin_tbl_type;
  l_inv_trans_rec             FA_API_TYPES.inv_trans_rec_type;
  l_inv_tbl                   FA_API_TYPES.inv_tbl_type;
  l_inv_rate_tbl              FA_API_TYPES.inv_rate_tbl_type;
  l_asset_deprn_rec_adj       FA_API_TYPES.asset_deprn_rec_type;
  l_asset_deprn_rec_new       FA_API_TYPES.asset_deprn_rec_type;
  l_asset_deprn_mrc_tbl_new   FA_API_TYPES.asset_deprn_tbl_type;
  l_inv_rec                   FA_API_TYPES.inv_rec_type;
  l_group_reclass_options_rec FA_API_TYPES.group_reclass_options_rec_type;
  l_return_status             VARCHAR2(1);
  l_mesg_count                number := 0;
  l_mesg_len                  number;
  l_mesg                      varchar2(4000);
begin
  fnd_profile.put('PRINT_DEBUG', 'Y');
  dbms_output.enable(1000000);
  FA_SRVR_MSG.Init_Server_Message;
  FA_DEBUG_PKG.Initialize;
  — asset header info
  l_asset_hdr_rec.asset_id       := 100000206;
  l_asset_hdr_rec.book_type_code := 'FIN_FA_BOOK';
  — fin info
  l_asset_fin_rec_adj.cost := 1002;

  –需注意这个金额是在原基础上的增减值。
  FA_ADJUSTMENT_PUB.do_adjustment(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            => 'ADJ_TEST_SCRIPT',
                                  x_return_status         => l_return_status,
                                  x_msg_count             => l_mesg_count,
                                  x_msg_data              => l_mesg,
                                  px_trans_rec            => l_trans_rec,
                                  px_asset_hdr_rec        => l_asset_hdr_rec,
                                  p_asset_fin_rec_adj     => l_asset_fin_rec_adj,
                                  x_asset_fin_rec_new     => l_asset_fin_rec_new,
                                  x_asset_fin_mrc_tbl_new => l_asset_fin_mrc_tbl_new,
                                  px_inv_trans_rec        => l_inv_trans_rec,
                                  px_inv_tbl              => l_inv_tbl,
                                  –px_inv_rate_tbl             => l_inv_rate_tbl,
                                  p_asset_deprn_rec_adj       => l_asset_deprn_rec_adj,
                                  x_asset_deprn_rec_new       => l_asset_deprn_rec_new,
                                  x_asset_deprn_mrc_tbl_new   => l_asset_deprn_mrc_tbl_new,
                                  p_group_reclass_options_rec => l_group_reclass_options_rec);
  dbms_output.put_line(l_return_status);
  if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
    fa_debug_pkg.dump_debug_messages(max_mesgs => 0);
    l_mesg_count := fnd_msg_pub.count_msg;
    if l_mesg_count > 0 then
      l_mesg := substr(fnd_msg_pub.get(fnd_msg_pub.G_FIRST, fnd_api.G_FALSE),
                       1,
                       512);
      dbms_output.put_line(substr(l_mesg, 1, 255));
      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,
                         512);
        dbms_output.put_line(substr(l_mesg, 1, 255));
      end loop;
      fnd_msg_pub.delete_msg();
    end if;
  else
    dbms_output.put_line('SUCCESS');
    dbms_output.put_line('THID' ||
                         to_char(l_trans_rec.transaction_header_id));
  end if;
end;
/
参考文件:Oracle Assets Adjustments API Documentation Supplement (文档 ID 206474.1)