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?
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;
Latest posts by Kemal Arıyetgin (see all)
- FND_LOAD Metodu İle Geliştirmelerin Farklı Ortamlara Taşınması - 12 Haziran 2015
- Sabit Kıymetler Modülü Varlık Çalışma Ekranı - 08 Haziran 2015
- Sabit Kıymet Modülü İçinden Manuel Varlık Kartı Oluşturulaması - 05 Haziran 2015
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.