Ara
10
2014

FA Duran Varlık Ömrünün Değiştirilmesi R11 ve R12 (API)

Mevcut duran varlıklar üzerinde ömür değişikliği işlemi yapmak istediğinizde, değişiklik yapılacak varlık sayısının çok olması durumunda aşağıdaki API kullanılabilir.

Toplu varlık ömrü değişikliği işlemi Toplu İşlemler > Değişiklikler ekranı aracılığı ile de yapılabilir. Fakat ekran aracılığı ile yapılacak değişikliklerde, değişiklik yapmak istediğiniz varlık grubunu tam olarak belirleyemiyebilirsiniz. Ya da değişiklik yapılacak tüm varlıklara aynı varlık ömrünü belirlemek istemeyebilirsiniz.

Benzer bir ihtiyaç duymanız halinde değişiklik yapacağınız varlıkları ve ilgili varlıklar için belrlenecek yeni varlık ömürlerini temp bir tabloya atıp, temp tabloyu API’ ye bağlayarak işleminizi topluca gerçekleştirebilirsiniz.

İlgili API’ nin nasıl kullanılacağına ilişkin örnek video yu aşağıdaki link aracılığı ile inceleyebilirsiniz.

http://www.youtube.com/watch?v=0IrCWMLzvvM

 

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 (30000);
   l_commit_flag                 VARCHAR2 (5) := fnd_api.g_true;
   temp_str VARCHAR2(640);

   CURSOR get_assets
   IS
  select
  adj.LIFE_IN_MONTHS new_life_in_months, adj.deprn_method_code new_deprn_method_code,
  i.*
  from fa_books i, fa_additions_b b,ASSET_LIFE_ADJ adj ----> DEĞİŞİKLİK YAPILACAK VARLIK LİSTESİNİN ATILDIĞI TEMP TABLO
  where 1=1
  and i.asset_id = b.asset_id
  and transaction_header_id_out is null
  and i.BOOK_TYPE_CODE=adj.BOOK_TYPE_CODE
  and b.asset_number = adj.ASSET_ID
       ;
BEGIN
   --fnd_profile.put ('PRINT_DEBUG', 'Y');
   DBMS_OUTPUT.ENABLE (100000000);
   fa_srvr_msg.init_server_message;
   fa_debug_pkg.initialize;

DBMS_OUTPUT.put_line ('Start loop');

   FOR c IN get_assets
   LOOP
   DBMS_OUTPUT.put_line ('Asset_id:' ||c.asset_id);
   -- asset header info
      l_asset_hdr_rec.asset_id := c.asset_id;
      l_asset_hdr_rec.book_type_code := c.book_type_code;
   --TRANS_REC_TYPE
   -- l_trans_rec.transaction_subtype := 'AMORTIZED';
   --P_TRANSACTION_SUBTYPE;
   -- l_trans_rec.amortization_start_date :='30-APR-2012'; -- default last day of open period
   -- fin info
      --l_asset_fin_rec_adj.cost := c.cost;
      l_asset_fin_rec_adj.life_in_months := c.new_life_in_months;       ---> YENI VARLIK ÖMRÜ
      l_asset_fin_rec_adj.deprn_method_code := c.new_deprn_method_code; ---> YENİ AMORTİSMAN METODU
--      l_asset_fin_rec_adj.date_placed_in_service := c.date_placed_in_service;
      --l_asset_fin_rec_adj.depreciate_flag := c.depreciate_flag;
      
      -- deprn info
--l_asset_deprn_rec_adj.ytd_deprn := c.DEPRN_RESERVE_adj;
--l_asset_deprn_rec_adj.deprn_reserve := c.DEPRN_RESERVE_adj;



      fa_adjustment_pub.do_adjustment (
         p_api_version                 => 1.0,
         p_init_msg_list               => fnd_api.g_false,
         p_commit                      => l_commit_flag,
         p_validation_level            => fnd_api.g_valid_level_full,
         x_return_status               => l_return_status,
         x_msg_count                   => l_mesg_count,
         x_msg_data                    => l_mesg,
         p_calling_fn                  => 'ADJ_TEST_SCRIPT',
         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,  -- Mandatory for R11 / uncomment if run for r11
         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
--         dbms_output.put_line(sqlerrm);
               ROLLBACK WORK;
         fa_debug_pkg.dump_debug_messages (max_mesgs => 0);
         l_mesg_count := fnd_msg_pub.count_msg;
         DBMS_OUTPUT.put_line (l_mesg_count);
if (l_mesg_count > 0) then
dbms_output.put_line('l_msg_count '||to_char(l_mesg_count));
temp_str := substr(fnd_msg_pub.get(fnd_msg_pub.G_FIRST, fnd_api.G_FALSE), 1, 230);
dbms_output.put_line(temp_str);
temp_str:= null;
for I in 1..(l_mesg_count -1) loop
temp_str := fnd_msg_pub.get(fnd_msg_pub.G_NEXT, fnd_api.G_FALSE);
dbms_output.put_line(temp_str);
end loop;
else
dbms_output.put_line('dump: NO MESSAGE !');
end if;         
        
     
   END IF;
   END LOOP;
DBMS_OUTPUT.put_line ('End loop');
   COMMIT;
END;                                                 


1 Yorum+ Yorum Ekle

  • Merhaba,

    Aynı işlemi api kullanmadan yapmak için aşağıdaki yöntem de izlenebilir:

    Öncelikle yasal defter üzerinde kayıtlı olan varlıkların ömürleri güncellenecek ise Upload Tax Interface concurrent ının kullandığı defter parametresinin değer kümesi FA_BOOK_TYPE olarak değiştirilir. (Mevcutta bu talep vergi defteri için kullanılmakta ancak Oracle Support tarafından parametre değişikliği yapılarak yasal defter için de kullanılabileceği önerilmiştir.)

    Ömür güncellemesi yapılmak istenen varlıklar fa_tax_interface tablosuna insert edilir.

    asset_number,
    book_type_code,
    posting_status alanları doldurulması zorunlu alanlardır.
    posting_status = POST olarak doldurulur.

    Ömür güncelleme senaryosunda deprn_method_code ve life_in_months alanları doldurulur.

    Duran varlıklar sorumluluğundan Upload Tax Book Interface (Türkçesi “Vergi Mükellefiyet Cüzdanı Arayüzüne Yükler” talebi defter parametresi ile çalıştırılır.

Yorum yapın

*