GL接口导入

这周学习了一下GL导入总账方面的知识,今天下面做一个简短的总结。

GL导入主要是用来生成日记账及其分录。

1.导入接口表

GL总账接口表为  gl.gl_interface  关于其各个字段意义可以参考 《gl_interface的详细说明》。

需要补充说明:

gl_interface的attribute1到attribute10 对应gl_je_lines表的attribute1到attribute10字段

              attribute11到attribute20 对应GL_CAPTURED_INFO表的attribute11到attribute20字段

在启用接口表的时候需要注意。

PROCEDURE import_data(p_batch_id      IN NUMBER,
                        x_return_status OUT NOCOPY VARCHAR2) IS
  
    --获取需要导入的数据
    CURSOR get_data IS
      SELECT *
        FROM cux_forex_transfer_bills_v ftb
       WHERE ftb.attribute1 = p_batch_id -- 本次要导入的批
       ORDER BY ftb.forex_bill_num;
  
    l_request_id       NUMBER;
    l_conc_program_id  NUMBER;
    l_prog_appl_id     NUMBER;
    l_user_id          NUMBER;
    l_login_id         NUMBER;
    l_count            NUMBER;
    l_sysdate          DATE;
    l_batch_name       VARCHAR2(100);
    l_je_name          VARCHAR2(100);
    l_je_source_name   VARCHAR2(100);
    l_je_category_name VARCHAR2(100);
    l_period_name      VARCHAR2(100);
    l_ccid_to          NUMBER; -- 转入银行账户的现金账户
    l_ccid_fm          NUMBER; -- 转出银行账户的现金账户
    l_ledger_id        NUMBER;
    l_gl_interface_rec gl_interface%ROWTYPE;
    l_clear            gl_interface%ROWTYPE;
    l_bill_num         VARCHAR2(1000);
    l_je_desc          VARCHAR2(1000);
  BEGIN
    -- init
    l_request_id      := fnd_global.conc_request_id;
    l_conc_program_id := fnd_global.conc_program_id;
    l_prog_appl_id    := fnd_global.prog_appl_id;
    l_user_id         := fnd_global.user_id;
    l_login_id        := fnd_global.login_id;
    l_count           := 0;
    l_sysdate         := SYSDATE;
    g_sob_id          := fnd_profile.value('GL_SET_OF_BKS_ID');
  
    BEGIN
      SELECT sob.chart_of_accounts_id
        INTO g_chart_of_accounts_id
        FROM gl_sets_of_books sob
       WHERE sob.set_of_books_id = g_sob_id;
    EXCEPTION
      WHEN OTHERS THEN
        g_chart_of_accounts_id := NULL;
    END;
  
    --批名
    l_batch_name := cux_doc_sequences_utl.next_seq_number(p_doc_type   => 'FOREX_TRANSFER_BILLS_BATCH' ||
                                                                          g_sob_id,
                                                          p_doc_prefix => l_sysdate || '购汇',
                                                          p_seq_length => 3,
                                                          p_pk1_value  => l_sysdate || '购汇');
    --日记账名
    l_je_name := cux_doc_sequences_utl.next_seq_number(p_doc_type   => 'FOREX_TRANSFER_BILLS_JE' ||
                                                                       g_sob_id,
                                                       p_doc_prefix => '',
                                                       p_seq_length => '',
                                                       p_pk1_value  => '');
    cux_conc_utl.log_msg('l_batch_name= ' || l_batch_name);
    cux_conc_utl.log_msg('l_je_name= ' || l_je_name);
  
    g_batch_name := l_batch_name;
    g_je_name    := l_je_name; 
    FOR r IN get_data
    LOOP
    
      SELECT l_bill_num || nvl2(l_bill_num, '&', NULL) || r.forex_bill_num
        INTO l_bill_num
        FROM dual;
    
    END LOOP;
  
    l_je_desc := l_bill_num;
    cux_conc_utl.log_msg('l_je_desc= ' || l_je_desc);
  
    -- 来源  
    BEGIN
      SELECT gs.user_je_source_name
        INTO l_je_source_name
        FROM gl_je_sources_vl gs
       WHERE gs.je_source_key = 'EXCHANGE';  
    EXCEPTION
      WHEN OTHERS THEN
        l_je_source_name := NULL;
    END;
  
    BEGIN
      SELECT gs.je_source_name
        INTO g_je_source_name
        FROM gl_je_sources_vl gs
       WHERE gs.je_source_key = 'EXCHANGE';  
    EXCEPTION
      WHEN OTHERS THEN
        g_je_source_name := NULL;
    END;
  
    -- 类别  
    BEGIN
      SELECT gjc.user_je_category_name
        INTO l_je_category_name
        FROM gl_je_categories_vl gjc
       WHERE gjc.je_category_key = 'EXCHANGE';  
    EXCEPTION
      WHEN OTHERS THEN
        l_je_category_name := NULL;
    END;
    cux_conc_utl.log_msg('l_je_source_name= ' || l_je_source_name);
    cux_conc_utl.log_msg('g_je_source_name= ' || g_je_source_name);
    cux_conc_utl.log_msg('l_je_category_name= ' || l_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值