1. Get rid of all advertisements and get unlimited access to documents by upgrading to Premium Membership. Upgrade to Premium Now and also get a Premium Badge!

API to Create AR Receipts

Discussion in 'Oracle Apps Technical' started by yowancristo, Dec 18, 2014.

  1. yowancristo

    yowancristo Forum Advisor

    Messages:
    103
    Likes Received:
    10
    Trophy Points:
    305
    Location:
    Bangalore
    Introduction

    API to Create AR Receipts

    The code

    Below script is used to create AR receipt that is not specific to any customers. The receipt created can be applied to any specific customers.


    Code (SQL):


    DECLARE

        --local Variables
        g_loc                       NUMBER :=0;
        g_msg                       VARCHAR2(500);
        l_error_description         VARCHAR2 (2000) := NULL;
        g_sysdate                   DATE  := SYSDATE;
        l_ar_receipt_succ_count     NUMBER:= 0;
        l_ar_receipt_err_count      NUMBER:= 0;
        l_ar_receipt_tot_count      NUMBER:= 0;
        l_msg_index_num             NUMBER:= 1;
        l_msg_count                 NUMBER;
        l_data_txt                  VARCHAR2(1000);
        l_msg_data                  VARCHAR2(1000);
        l_apl_return_status         VARCHAR2 (1);
        l_apl_msg_count             NUMBER;
        l_apl_msg_data              VARCHAR2 (240);
        l_org_id                    NUMBER := FND_PROFILE.VALUE('ORG_ID') ;
        l_gl_date_count             NUMBER;
        l_functional_currency fnd_currencies.currency_code%TYPE;
        l_conv_type gl_daily_conversion_types.conversion_type%TYPE;
        l_conv_rate gl_daily_rates.conversion_rate%TYPE;
        l_cust_account_id hz_cust_accounts.cust_account_id%TYPE;
        l_receipt_id ar_cash_receipts_all.cash_receipt_id%TYPE;
        l_return_status             VARCHAR2(10);
        l_currency_code             fnd_currencies.currency_code%TYPE;
        l_cust_bank_acct_id         NUMBER;
        l_receipt_number            NUMBER ;
        l_receipt_amount            NUMBER;
        l_rcpt_method_name          VARCHAR2(20);
        l_customer_trx_id           NUMBER ;
       
    BEGIN
     

        l_msg_count           := 0;
        l_data_txt            := NULL;
        l_msg_index_num       := NULL;
        l_gl_date_count       := 0;
        l_currency_code       := 'GBP';
        l_functional_currency := NULL;
        l_conv_type           := NULL;
        l_conv_rate           := NULL;
        l_receipt_id          := NULL;
        l_return_status       := NULL;
        l_msg_data            := NULL;
        l_receipt_number      := NULL;
        l_receipt_amount      := 500 ;
        l_rcpt_method_name    := 'CASH';   
       
        FND_GLOBAL.APPS_INITIALIZE(0, 50259, 222);
        MO_GLOBAL.SET_POLICY_CONTEXT('S',l_org_id);
       
        dbms_output.put_line('before calling api ');

        -- Call Api to create receipt
        AR_RECEIPT_API_PUB.CREATE_CASH( p_api_version       => 1.0,
                                        p_init_msg_list     => fnd_api.g_true,
                                        p_commit            => fnd_api.g_false,
                                        p_validation_level  => FND_API.G_VALID_LEVEL_FULL,
                                        p_currency_code     => l_currency_code,
                                        p_exchange_rate_type => NULL,
                                        p_exchange_rate     => NULL,
                                        p_exchange_rate_date => NULL,
                                        p_amount            => l_receipt_amount,     -- receipt amount
                                        p_receipt_number    => '1234',
                                        p_receipt_date      => SYSDATE,
                                        p_maturity_date     => SYSDATE + 30,
                                        p_gl_date           => NULL,
                                        p_customer_name     => NULL,
                                        p_customer_number   => NULL,
                                        p_comments          => NULL ,
                                        p_location          => NULL ,
                                        p_customer_bank_account_num  => NULL,
                                        p_customer_bank_account_name => NULL,
                                        p_receipt_method_name => l_rcpt_method_name,
                                        p_org_id              => l_org_id,
                                        p_cr_id               => l_receipt_id,
                                        x_return_status       => l_return_status,
                                        x_msg_count           => l_msg_count,
                                        x_msg_data            => l_msg_data
                                        );
       
        dbms_output.put_line('called api ');
        IF (l_return_status = 'S') THEN
            dbms_output.put_line('Calling Api AR_RECEIPT_API_PUB.CREATE_CASH success -- >' ||l_return_status ||' Receipt Id > '||l_receipt_id);
     

        ELSE
            dbms_output.put_line('Error in Calling Receipt API:');
           
            FOR i IN 1 .. l_msg_count
            LOOP
                FND_MSG_PUB.GET(p_msg_index => i, p_encoded => 'F', p_data => l_data_txt, p_msg_index_out => l_msg_index_num );        
                l_error_description := SUBSTR(l_error_description||l_data_txt,1,400);
                DBMS_OUTPUT.put_line( l_error_description);
            END LOOP;
           
           
        END IF;

    COMMIT;
    EXCEPTION
        WHEN OTHERS THEN
            dbms_output.put_line('Error in procedure '||SQLERRM);
    END ;
    /

     
    Thanks,
    Yowan Cristo