Thursday, May 26, 2011

Oracle Receivables API for Cancelling Receipt

  1. DECLARE
    l_trx_hdr_id NUMBER;
    l_trx_lines_id NUMBER;
    l_line_number NUMBER :=1;
    l_cust_account_id NUMBER;
    l_btch_source NUMBER;
    l_count NUMBER;
    l_cust_trx_type_id NUMBER;
    l_memo_lines NUMBER;
    l_return_status VARCHAR2(1);
    l_msg_count NUMBER;
    l_msg_data VARCHAR2(2000);
    l_mesg VARCHAR2(2000);
    l_batch_id NUMBER;
    l_cnt NUMBER := 0;
    l_batch_source_rec ar_invoice_api_pub.batch_source_rec_type;
    l_trx_header_tbl ar_invoice_api_pub.trx_header_tbl_type;
    l_trx_lines_tbl ar_invoice_api_pub.trx_line_tbl_type;
    l_trx_dist_tbl ar_invoice_api_pub.trx_dist_tbl_type;
    l_trx_salescredits_tbl ar_invoice_api_pub.trx_salescredits_tbl_type;
    l_customer_trx_id NUMBER;
    l_chr_mesg VARCHAR2(2000);
    p_cm_line_tbl AR_CREDIT_MEMO_API_PUB.Cm_Line_Tbl_Type_Cover%TYPE;

    --Reciepts
    e_excp EXCEPTION;

    BEGIN
    fnd_global.apps_initialize (user_id => 0,resp_id => 20678,resp_appl_id => 222);

    mo_global.init('AR');

    ar_receipt_api_pub.REVERSE(
    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
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    ,p_cash_receipt_id => 6023
    ,p_receipt_number => NULL
    ,p_reversal_category_code => 'REV'
    ,p_reversal_category_name => NULL
    ,p_reversal_gl_date => TRUNC(SYSDATE)
    ,p_reversal_date => TRUNC(SYSDATE)
    ,p_reversal_reason_code => 'PAYMENT REVERSAL'
    ,p_reversal_reason_name => NULL
    ,p_reversal_comments => NULL
    ,p_called_from => NULL
    ,p_cancel_claims_flag => 'Y'
    ,p_org_id => 81
    );
    IF l_return_status<> FND_API.G_RET_STS_SUCCESS
    THEN
    dbms_output.put_line('... Msg Count: ' || l_msg_count);
    l_chr_mesg := 'Error in Create Single Invoice';
    IF l_msg_count = 1
    THEN
    dbms_output.put_line('... Msg Data: ' || l_msg_data);
    l_chr_mesg := l_chr_mesg||l_msg_data;
    ELSIF l_msg_count > 1
    THEN
    -- the messages on the stack are more than one so call them in a loop
    -- and put the messages in a PL/SQL table.
    l_count := 0;
    LOOP
    l_count := l_count +1 ;
    l_mesg := fnd_msg_pub.get (fnd_msg_pub.g_next, fnd_api.g_false);
    IF l_mesg IS NOT NULL
    THEN
    dbms_output.put_line('... Msg Data: ' || l_count || '. ' || l_mesg);
    l_chr_mesg := l_chr_mesg||' '||l_mesg;
    ELSE
    RAISE e_excp;
    END IF;
    END LOOP;
    END IF;
    END IF;

    dbms_output.put_line(l_return_status||l_msg_data);

    COMMIT;
    END;

2 comments:

Unknown said...

Thanks and Regards. Oracle Apps R12 Training Videos at affordable cost. please check oracleappstechnical.com

Smith said...

Oracle Apps R12 and Oracle Fusion Cloud Self Paced Online Training Videos Published on Udemy with Life Time Access & Live Meeting Support to Clear your Queries. Avail 25% to 80% discount. Please Check https://www.oracleappstechnical.com for Never Before Offers and Discount Coupon Codes.