固定资产新增接口

DECLARE

  l_trans_rec           fa_api_types.trans_rec_type;
  l_dist_trans_rec      fa_api_types.trans_rec_type;
  l_asset_hdr_rec       fa_api_types.asset_hdr_rec_type;
  l_asset_desc_rec      fa_api_types.asset_desc_rec_type;
  l_asset_cat_rec       fa_api_types.asset_cat_rec_type;
  l_asset_type_rec      fa_api_types.asset_type_rec_type;
  l_asset_hierarchy_rec fa_api_types.asset_hierarchy_rec_type;
  l_asset_fin_rec       fa_api_types.asset_fin_rec_type;
  l_asset_deprn_rec     fa_api_types.asset_deprn_rec_type;
  l_asset_dist_rec      fa_api_types.asset_dist_rec_type;
  l_asset_dist_tbl      fa_api_types.asset_dist_tbl_type;
  l_inv_tbl             fa_api_types.inv_tbl_type;
  l_inv_rate_tbl        fa_api_types.inv_rate_tbl_type;

  l_return_status VARCHAR2(1);
  l_mesg_count    NUMBER;
  l_mesg          VARCHAR2(4000);

BEGIN
  --初始化
  dbms_output.enable(10000000);

  fa_srvr_msg.init_server_message;

  --资产基础信息
  -- desc info
  --资产编号(不传值系统会自动将asset_id赋过来)
  l_asset_desc_rec.asset_number := 'GH_TEST004';
  --资产说明
  l_asset_desc_rec.description := 'TEST';
  --资产关键字组合代码标识
  l_asset_desc_rec.asset_key_ccid := 1;

  --资产类别信息
  -- cat info
  --资产类别代码组合标识
  l_asset_cat_rec.category_id := 1;

  --资产类型信息
  --type info
  --资产类型
  l_asset_type_rec.asset_type := 'CAPITALIZED';

  --财务信息
  -- fin info
  --资产成本
  l_asset_fin_rec.cost := 1;
  --资产新增日期
  l_asset_fin_rec.date_placed_in_service := to_date('2013-03-13',
                                                    'YYYY/MM/DD');

  l_asset_fin_rec.depreciate_flag := 'YES';

  --折旧信息
  -- deprn info
  --折旧信息
  l_asset_deprn_rec.ytd_deprn           := 0;
  l_asset_deprn_rec.deprn_reserve       := 0;
  l_asset_deprn_rec.bonus_ytd_deprn     := 0;
  l_asset_deprn_rec.bonus_deprn_reserve := 0;

  --账簿及分配信息
  -- book / trans info
  --账簿
  l_asset_hdr_rec.book_type_code := 'FA_BOOK_01';
  --分配日期
  l_trans_rec.transaction_date_entered := l_asset_fin_rec.date_placed_in_service;
  -- distribution info
  --分配数量
  l_asset_dist_rec.units_assigned := 1;
  --费用账户id
  l_asset_dist_rec.expense_ccid := 14001;
  --地点组合代码标识id
  l_asset_dist_rec.location_ccid := 1;
  --员工id
  l_asset_dist_rec.assigned_to := 61;
  --调整数量
  l_asset_dist_rec.transaction_units := l_asset_dist_rec.units_assigned;
  l_asset_dist_tbl(1) := l_asset_dist_rec;

  -- call the api
  fa_addition_pub.do_addition(
                              -- 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_dist_trans_rec      => l_dist_trans_rec,
                              px_asset_hdr_rec       => l_asset_hdr_rec,
                              px_asset_desc_rec      => l_asset_desc_rec,
                              px_asset_type_rec      => l_asset_type_rec,
                              px_asset_cat_rec       => l_asset_cat_rec,
                              px_asset_hierarchy_rec => l_asset_hierarchy_rec,
                              px_asset_fin_rec       => l_asset_fin_rec,
                              px_asset_deprn_rec     => l_asset_deprn_rec,
                              px_asset_dist_tbl      => l_asset_dist_tbl,
                              px_inv_tbl             => l_inv_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));
    dbms_output.put_line('ASSET_ID:' || to_char(l_asset_hdr_rec.asset_id));
    dbms_output.put_line('ASSET_NUMBER:' || l_asset_desc_rec.asset_number);
  END IF;

END;


你可能感兴趣的:(接口,新增,固定资产)