Adjustment API's

Did anybody use Adjustment API's? I am having a hard time to create an adjustment using the below API.
ar_adjust_pub.create_adjustment
It is giving me a lot of errors. Most of the errors are from Oracle packages.
EXCEPTION: arp_adjustments_pkg.insert_p()
EXCEPTION: ar_process_adjustment.insert_adjustment()
Error in Insert Entity handler. Rolling back and setting status to ERROR
Any help is appreciated.
Thank you.

declare
v_msg_count number;
v_msg_data varchar2(240);
v_return_status varchar2(1);
v_new_adj_num number;
v_new_adj_id number;
v_count number;
Type adj_rec IS Record
p_last_updated_by number := -1,
p_last_update_date date := trunc(sysdate),
p_last_update_login number := -1,
p_created_by number := -1,
p_creation_date date := trunc(sysdate),
p_amount number := 30.00,
p_apply_date date := trunc(sysdate),
p_gl_date date := trunc(sysdate),
p_set_of_books_id number := 1001,
p_code_combination_id number := 1138,
p_type varchar2(10) := 'LINE',
p_adjustment_type varchar2(1) := 'M',
p_status varchar2(1) := 'w',
p_associated_cash_receipt_id number := 21296,
p_customer_trx_id number := 147599,
p_payment_schedule_id number := 123624,
p_receivables_trx_id number := 1019,
p_created_from varchar2(10) := 'ARXTWADJ',
p_postable varchar2(1) := 'N',
p_posting_control_id number := -3,
p_acctd_amount number := 30.00,
p_program_application_id number := -1,
p_program_id number := -1,
p_program_update_date date := trunc(sysdate),
p_org_id number := 91
v_adj_rec adj_rec;
begin
dbms_output.put_line('Start API');
AR_ADJUST_PUB.create_adjustment
p_api_name => 'AR_ADJUST_PUB',
p_api_version => 1.0,
p_msg_count => v_msg_count,
p_msg_data => v_msg_data,
p_return_status => v_return_status,
p_adj_rec => v_adj_rec,
p_new_adjust_number => v_new_adj_num,
p_new_adjust_id => v_new_adj_id
dbms_output.put_line('Adjust Number: '||v_new_adj_num);
dbms_output.put_line('Adjust Id: '||v_new_adj_id);
end;
Regards
GS

Similar Messages

  • AR ADJUSTMENT API 종류

    제품 : FIN_AR
    작성날짜 : 2005-11-28
    AR ADJUSTMENT API 종류
    =====================
    PURPOSE
    AR ADJUSTMENT API 사용 방법에 대한 문의
    Explanation
    API는 아래의 4개의 경우에 사용할수 있도록 만들어 졌습니다.
    a) Creating an adjustment
    b) Modifying an adjustment
    c) Approving an adjustment
    d) Reversing an adjustment
    1 AR_ADJUST_PUB.CREATE_ADJUSTMENT
    2 AR_ADJUST_PUB.MODIFY_ADJUSTMENT
    adjustment status 'A' or 'R' 에 대해서는 사용하지 못함
    3 AR_ADJUST_PUB.APPROVE_ADJUSTMENT
    4 AR_ADJUST_PUB.REVERSE_ADJUSTMENT
    Example
    Reference Documents
    177129.1

    Could you please send us the details of API code?
    Thanks,
    Anil

  • Problem In Calling API  fa_addition_pub.do_addition

    Hello friends,
    I am workin on the addition Of asset program
    In which i called API fa_addition_pub.do_addition
    but when i am executing it it gives me error
    Error(157,1): PLS-00306: wrong number or types of arguments in call to 'DO_ADDITION'
    Error(196,1): PLS-00201: identifier 'UPDATE_ERROR_MSG' must be declared
    THE CODE WHICH I USED IS GIVEN BELOW
    PLZ HELP ME TO SOLVE THIS PROBLEM.
    CREATE OR REPLACE PROCEDURE APPS.FA_ADDITION_API (p_row_number NUMBER) AS
    l_trans_rec fa_api_types.trans_rec_type;
    l_dist_trans_rec fa_api_types.trans_rec_type;
    l_asset_hdr_rec fa_api_types.asset_hdr_rec_type;
    l_asset_fin_rec_old fa_api_types.asset_fin_rec_type;
    l_asset_fin_rec 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_asset_deprn_rec fa_api_types.asset_deprn_rec_type;
    l_asset_deprn_rec_new fa_api_types.asset_deprn_rec_type;
    l_asset_deprn_mrc_tbl fa_api_types.asset_deprn_tbl_type;
    l_asset_desc_rec fa_api_types.asset_desc_rec_type;
    l_asset_type_rec fa_api_types.asset_type_rec_type;
    l_asset_cat_rec fa_api_types.asset_cat_rec_type;
    l_asset_dist_rec fa_api_types.asset_dist_rec_type;
    l_asset_hierarchy_rec fa_api_types.asset_hierarchy_rec_type;
    l_inv_rec fa_api_types.inv_rec_type;
    l_inv_trans_rec fa_api_types.inv_trans_rec_type;
    l_period_rec fa_api_types.period_rec_type;
    l_who_rec fa_api_types.standard_who_rec_type;
    l_inv_tbl fa_api_types.inv_tbl_type;
    l_inv_rate_tbl fa_api_types.inv_rate_tbl_type;
    l_asset_dist_tbl fa_api_types.asset_dist_tbl_type;
    l_tax_book_tbl fa_cache_pkg.fazctbk_tbl_type;
    l_initial_book boolean := TRUE;
    CURSOR xx_addition_cur (p_row_number NUMBER)
    IS
    SELECT *
    FROM xx_reg_book_load_interface
    WHERE ROW_NUMBER = p_row_number;
    -- Get the inventory details for Asset Addition API
    CURSOR xx_dist_info_cur (p_asset_id NUMBER)
    IS
    SELECT fdh.*
    FROM fa_distribution_history fdh
    WHERE fdh.transaction_header_id_in = (SELECT MIN(transaction_header_id)
    FROM fa_transaction_headers fth
    WHERE fth.asset_id = p_asset_id
    AND fth.transaction_type_code in ('TRANSFER IN', 'TRANSFER IN/VOID') );
    -- AND transaction_header_id_in = p_transaction_id
    -- AND NVL (transaction_units, 1) > 0;
    -- Get the inventory details for Asset Adjustment API
    CURSOR xx_inv_rec_type_adj_cur (p_row_number NUMBER)
    IS
    SELECT fai.invoice_transaction_id_in, fai.deleted_flag,
    fai.invoice_number, fai.po_number, fai.unrevalued_cost,
    fai.project_id, fai.task_id, fai.payables_code_combination_id,
    fai.fixed_assets_cost, fai.source_line_id, fai.payables_cost,
    xrbli.transaction_type_code, fai.ap_distribution_line_number,
    fai.description, fai.po_vendor_id,
    fai.payables_units,
    fai.invoice_id,
    fai.invoice_date
    FROM fa_asset_invoices fai, xx_reg_book_load_interface xrbli
    WHERE fai.invoice_transaction_id_in = xrbli.invoice_transaction_id
    AND xrbli.ROW_NUMBER = p_row_number;
    -- Out parameter for Addition API
    l_return_status VARCHAR2 (1);
    -- Out parameter for Addition API
    l_mesg_count NUMBER := 0;
    -- Out parameter for Addition API and used for error tracking
    l_mesg VARCHAR2 (4000);
    -- Index for inventory record table
    l_dist_rec_count NUMBER := 0;
    l_inv_rec_count NUMBER := 0;
    l_stat_class VARCHAR2(50) ;
    BEGIN
    -- Open XX_ADDITION_CUR cursor by passing the period
    FOR p_asset_addition IN xx_addition_cur (p_row_number)
    LOOP
    -- ASSET_FIN_REC_TYPE Asset Structure
    l_asset_fin_rec.date_placed_in_service :=p_asset_addition.date_placed_in_service;
    l_asset_fin_rec.COST := p_asset_addition.COST;
    l_asset_fin_rec.depreciate_flag := 'YES'; -- YES for all the records
    -- Transaction Info
    /* BEGIN
    SELECT segment4
    INTO l_stat_class
    FROM fa_categories_b fcb
    WHERE fcb.category_id = p_asset_addition.asset_category_id ;
    EXCEPTION WHEN OTHERS THEN
    l_stat_class := NULL ;
    END ;
    IF ( NVL(l_stat_class,'*') = 'I' ) THEN
    l_trans_rec.transaction_subtype := 'AMORTIZED' ;
    END IF ;
    l_trans_rec.who_info := l_who_rec;
    -- ASSET_HDR_REC_TYPE Asset Structure (Asset ID should not be there for Addition API)
    l_asset_hdr_rec.book_type_code := p_asset_addition.book_type_code;
    -- ASSET_DESC_REC_TYPE Asset Structure
    l_asset_desc_rec.asset_number := p_asset_addition.asset_number;
    l_asset_desc_rec.description := p_asset_addition.description; ----modify by anand
    l_asset_desc_rec.current_units := p_asset_addition.current_units;
    l_asset_desc_rec.asset_key_ccid := p_asset_addition.asset_key_ccid;
    -- ASSET_TYPE_REC_TYPE Asset Structure
    l_asset_type_rec.asset_type := p_asset_addition.asset_type;
    -- ASSET_CAT_REC_TYPE Asset Structure
    l_asset_cat_rec.category_id := p_asset_addition.asset_category_id;
    -- Initialize the count
    l_inv_rec_count := 0;
    -- INV_REC_TYPE Invoice Structure
    FOR i IN xx_inv_rec_type_adj_cur (p_row_number)
    LOOP
    --IF l_asset_id_count p_asset_adjustment.asset_id THEN
    l_inv_rec_count := l_inv_rec_count + 1;
    l_inv_trans_rec.transaction_type := i.transaction_type_code;
    --l_inv_rec.source_line_id := i.source_line_id;
    l_inv_rec.fixed_assets_cost := i.fixed_assets_cost;
    l_inv_rec.payables_cost := i.payables_cost;
    l_inv_rec.payables_code_combination_id :=i.payables_code_combination_id;
    l_inv_rec.invoice_number := i.invoice_number;
    l_inv_rec.po_number := i.po_number;
    l_inv_rec.unrevalued_cost := i.unrevalued_cost;
    l_inv_rec.project_id := i.project_id;
    l_inv_rec.task_id := i.task_id;
    l_inv_rec.deleted_flag := i.deleted_flag;
    l_inv_rec.description := i.description;
    l_inv_rec.po_vendor_id := i.po_vendor_id;
    l_inv_rec.ap_distribution_line_number :=i.ap_distribution_line_number;
    l_inv_rec.payables_units := i.payables_units;
    l_inv_rec.invoice_id := i.invoice_id;
    l_inv_rec.invoice_date := i.invoice_date;
    l_inv_tbl (l_inv_rec_count) := l_inv_rec;
    --l_asset_id_count := p_asset_adjustment.asset_id;
    --END IF;
    END LOOP;
    -- ASSET_DIST_REC_TYPE and ASSET_DIST_TBL_TYPE Asset Structure
    FOR i IN xx_dist_info_cur (p_asset_addition.asset_id
    -- , p_asset_addition.transaction_header_id
    LOOP
    l_dist_rec_count := l_dist_rec_count + 1;
    -- l_asset_dist_rec.assigned_to := i.assigned_to;
    l_asset_dist_rec.units_assigned := i.units_assigned;
    l_asset_dist_rec.expense_ccid := i.code_combination_id;
    l_asset_dist_rec.location_ccid := i.location_id;
    l_asset_dist_tbl (l_dist_rec_count) := l_asset_dist_rec;
    END LOOP;
    -- Update to 0 for further use
    l_dist_rec_count := 0;
    --fnd_file.put_line(fnd_file.log, 'Calling the Addition API') ;
    -- Call Addition api
    fa_addition_pub.do_addition
    (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_mesg_count,
    x_msg_data => l_mesg,
    p_calling_fn => 'FA_ADDITION_API', ---modify by anand
    px_trans_rec => l_trans_rec,
    px_dist_trans_rec => l_dist_trans_rec,
    px_asset_hdr_rec => l_asset_hdr_rec,
    px_asset_desc_rec => l_asset_desc_rec,
    px_asset_type_rec => l_asset_type_rec,
    px_asset_cat_rec => l_asset_cat_rec,
    px_asset_hierarchy_rec => l_asset_hierarchy_rec,
    px_asset_fin_rec => l_asset_fin_rec,
    px_asset_deprn_rec => l_asset_deprn_rec,
    px_asset_dist_tbl => l_asset_dist_tbl,
    px_inv_tbl => l_inv_tbl,
    px_inv_rate_tbl => l_inv_rate_tbl
    --fnd_file.put_line(fnd_file.log, 'Addition API returned status as : '|| l_return_status) ;
    IF (l_return_status = fnd_api.g_ret_sts_success)
    THEN
    l_mesg_count := fnd_msg_pub.count_msg;
    IF l_mesg_count > 0
    THEN
    l_mesg :=CHR (10)|| SUBSTR (fnd_msg_pub.get (fnd_msg_pub.g_first,fnd_api.g_false),1,512);
    FOR i IN 1 .. (l_mesg_count - 1)
    LOOP
    l_mesg :=l_mesg|| CHR (10)|| SUBSTR (fnd_msg_pub.get (fnd_msg_pub.g_next,fnd_api.g_false),1,512);
    END LOOP;
    fnd_msg_pub.delete_msg ();
    END IF;
    l_mesg := 'FAILED (' || SQLERRM || '): ' || l_mesg;
    -- Procedure to update XX_REG_BOOK_LOAD_INTERFACE table with rejection reason
    update_error_msg ('Addition', l_mesg, p_asset_addition.ROW_NUMBER);
    ELSE
    -- Display the successful record
    fnd_file.put_line (fnd_file.output,p_asset_addition.asset_number|| ' -> '|| p_asset_addition.description|| ' for asset Addition Success.'); --- modify by anand
    END IF;
    -- Delete PLSQL table and record type variables data
    --empty_rec;
    END LOOP;
    END fa_addition_api;
    tahnk you

    You call do_addition with a wrong set of parameters or you use the wrong datatypes from your parameters.
    Check what parameters ( and their datatypes ) that procedure expects.
    Also check if you have the right privileges for using UPDATE_ERROR_MSG and that a synonym exists for it.
    fa_addition_pub.do_addition
    (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_mesg_count,
    x_msg_data => l_mesg,
    p_calling_fn => 'FA_ADDITION_API', ---modify by anand
    px_trans_rec => l_trans_rec,
    px_dist_trans_rec => l_dist_trans_rec,
    px_asset_hdr_rec => l_asset_hdr_rec,
    px_asset_desc_rec => l_asset_desc_rec,
    px_asset_type_rec => l_asset_type_rec,
    px_asset_cat_rec => l_asset_cat_rec,
    px_asset_hierarchy_rec => l_asset_hierarchy_rec,
    px_asset_fin_rec => l_asset_fin_rec,
    px_asset_deprn_rec => l_asset_deprn_rec,
    px_asset_dist_tbl => l_asset_dist_tbl,
    px_inv_tbl => l_inv_tbl,
    px_inv_rate_tbl => l_inv_rate_tbl
    );

  • Getting Error - CREATE_CASH : ORA-01403: no data found

    When i use api AR_RECEIPT_API_PUB.CREATE_CASH in loop then i get error 'CREATE_CASH : ORA-01403: no data found' for second record.
    AR_RECEIPT_API_PUB.CREATE_CASH(p_api_version => 1.0
    ,p_init_msg_list => fnd_api.g_true
    ,p_commit => fnd_api.g_true
    ,p_receipt_number => i_receipt_number
    ,p_receipt_date => TRUNC(SYSDATE)
    ,p_gl_date => TRUNC(SYSDATE)
    ,p_amount => i_receipt_amount
    ,p_currency_code => g_currency_code
    ,p_receipt_method_id => i_receipt_method_id
    ,p_customer_id => i_customer_id
    ,p_cr_id => l_cr_id
    ,p_org_id => i_org_id
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    I run it for different org. First org it's running fine but for second it's fail -
    Here is output -
    Start, Org ID - 84
    l_receipt_number - 43164
    l_receipt_amount - 74.55
    g_currency_code - USD
    l_receipt_method_id - 4000
    l_customer_id - 7040
    l_cr_id -
    l_return_status -
    l_msg_count -
    l_msg_data -
    Status - S
    Start, Org ID - 81
    l_receipt_number - 43166
    l_receipt_amount - 30
    g_currency_code - USD
    l_receipt_method_id - 4000
    l_customer_id - 7047
    l_cr_id -
    l_return_status -
    l_msg_count -
    l_msg_data -
    Error count/msg - 2-
    Error msg - CREATE_CASH : ORA-01403: no data found
    Error msg - ORA-01403: no data found in Package AR_RECEIPT_API_PUB Procedure Create_cash
    PLease help it's urgent

    Here is code which i am using...
    IF l_ar_pay_rec > 0 THEN
    l_receipt_number := ar_cash_receipts_s.NEXTVAL;
    FOR r_ar_org_records IN cr_ar_org_records
    LOOP
    IF r_ar_org_records.org_id = 81 THEN
    l_resp_id := 50677;
    ELSE
    l_resp_id := 50681;
    END IF;
    MO_GLOBAL.INIT('AR');
    MO_GLOBAL.SET_POLICY_CONTEXT('S',r_ar_org_records.org_id);
    FND_GLOBAL.APPS_INITIALIZE(g_user_id,l_resp_id,l_appl_id,0);
    DBMS_OUTPUT.PUT_LINE('User,Resp,App,Org - '||g_user_id||','||l_resp_id||','||l_appl_id||','||r_ar_org_records.org_id);
    -- Derive Receipt Method ID
    BEGIN
    SELECT receipt_method_id
    INTO l_receipt_method_id
    FROM ar_receipt_methods
    WHERE name = g_receipt_method;
    EXCEPTION
    WHEN OTHERS THEN
    g_ar_error := 'Y';
    g_ar_error_msg := g_ar_error_msg||'Receipet Method Not Found, ';
    FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Derive Receipt Method ID');
    END;
    -- Derive Customer ID
    BEGIN
    SELECT customer_id
    ,SUM(AMOUNT_PAID)
    INTO l_customer_id
    ,l_receipt_amount
    FROM xxar_third_party_validation
    WHERE raf_code = i_raf
    AND receipt_date = i_date_paid
    AND org_id = r_ar_org_records.org_id
    AND customer_id is not null
    GROUP BY customer_id;
    EXCEPTION
    WHEN OTHERS THEN
    g_ar_error := 'Y';
    g_ar_error_msg := g_ar_error_msg||' Customer ID Not Found, ';
    FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Customer ID');
    END;
    fnd_msg_pub.initialize;
    l_return_status := NULL;
    l_msg_count := NULL;
    l_msg_data := NULL;
    l_cr_id := NULL;
    g_currency_code := 'USD';
    DBMS_OUTPUT.PUT_LINE('Start, Org ID - '||r_ar_org_records.org_id);
    -- Create Cash for Customer
    DBMS_OUTPUT.PUT_LINE('l_receipt_number - '||l_receipt_number);
    DBMS_OUTPUT.PUT_LINE('l_receipt_amount - '||l_receipt_amount);
    DBMS_OUTPUT.PUT_LINE('g_currency_code - '||g_currency_code);
    DBMS_OUTPUT.PUT_LINE('l_receipt_method_id - '||l_receipt_method_id);
    DBMS_OUTPUT.PUT_LINE('l_customer_id - '||l_customer_id);
    DBMS_OUTPUT.PUT_LINE('l_cr_id - '||l_cr_id);
    DBMS_OUTPUT.PUT_LINE('l_return_status - '||l_return_status);
    DBMS_OUTPUT.PUT_LINE('l_msg_count - '||l_msg_count);
    DBMS_OUTPUT.PUT_LINE('l_msg_data - '||l_msg_data);
    AR_RECEIPT_API_PUB.CREATE_CASH(p_api_version => 1.0
    ,p_init_msg_list => fnd_api.g_true
    ,p_receipt_number => l_receipt_number
    ,p_receipt_date => TRUNC(SYSDATE)
    ,p_gl_date => TRUNC(SYSDATE)
    ,p_amount => l_receipt_amount
    ,p_currency_code => g_currency_code
    ,p_receipt_method_id => l_receipt_method_id
    ,p_customer_id => l_customer_id
    ,p_cr_id => l_cr_id
    ,p_org_id => r_ar_org_records.org_id
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    DBMS_OUTPUT.PUT_LINE('Status - '||l_return_status);
    IF l_return_status <> 'S' THEN
    g_ar_error := 'Y';
    DBMS_OUTPUT.PUT_LINE('Error count/msg - '||l_msg_count||'-'||l_msg_data);
    IF l_msg_count = 1 THEN
    g_ar_error_msg := g_ar_error_msg||l_msg_data;
    DBMS_OUTPUT.PUT_LINE('Error msg - '||l_msg_data);
    ELSIF l_msg_count > 1 THEN
    LOOP
    l_msg_data := fnd_msg_pub.get (fnd_msg_pub.g_next
    ,fnd_api.g_false);
    IF l_msg_data IS NULL THEN
    EXIT;
    END IF;
    g_ar_error_msg := g_ar_error_msg||l_msg_data;
    DBMS_OUTPUT.PUT_LINE('Error msg - '||l_msg_data);
    END LOOP;
    END IF;
    xxar_log_error(r_ar_org_records.record_id,SUBSTR(g_ar_error_msg,1,120));
    ELSE
    DBMS_OUTPUT.PUT_LINE('Status - '||l_return_status);
    FOR r_ar_records IN cr_ar_records(r_ar_org_records.org_id)
    LOOP
    fnd_msg_pub.initialize;
    l_return_status := NULL;
    l_msg_count := NULL;
    l_msg_data := NULL;
    l_cr_id := NULL;
    l_receipt_amount := r_ar_records.amount_paid;
    l_trx_number := r_ar_records.transaction_number;
    g_currency_code := r_ar_records.currency_code;
    l_receipt_date := SYSDATE;
    l_gl_date := SYSDATE;
    -- Apply payments for the RAF and Date Paid
    AR_RECEIPT_API_PUB.APPLY(p_api_version => 1.0
    ,p_init_msg_list => fnd_api.g_true
    ,p_commit => fnd_api.g_false
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    ,p_receipt_number => l_receipt_number
    ,p_trx_number => l_trx_number
    ,p_amount_applied => l_receipt_amount
    ,p_org_id => r_ar_org_records.org_id
    IF l_return_status <> 'S' THEN
    g_ar_error := 'Y';
    IF l_msg_count = 1 THEN
    g_ar_error_msg := g_ar_error_msg||l_msg_data;
    ELSIF l_msg_count > 1 THEN
    LOOP
    l_msg_data := fnd_msg_pub.get (fnd_msg_pub.g_next
    ,fnd_api.g_false);
    IF l_msg_data IS NULL THEN
    EXIT;
    END IF;
    g_ar_error_msg := g_ar_error_msg||l_msg_data;
    END LOOP;
    END IF;
    xxar_log_error(r_ar_records.record_id,SUBSTR(g_ar_error_msg,1,240));
    ELSE
    DBMS_OUTPUT.PUT_LINE('Sucess 2 - ');
    NULL;
    /* -- Call Adjustment API for Contractual Allowance
    IF NVL(r_ar_records.contractual_allowance_amt,0) > 0 THEN
    xxar_third_party_rcpt_adj(r_ar_records.record_id
    ,r_ar_records.transaction_number
    ,r_ar_records.contractual_allowance_amt
    ,i_user_id
    END IF; */
    END IF;
    END LOOP;
    END IF;
    DBMS_OUTPUT.PUT_LINE('Error Flag AR - '||g_ar_error);
    IF g_ar_error = 'Y' THEN
    xxar_log_error(r_ar_org_records.record_id,SUBSTR(g_ar_error_msg,1,240));
    END IF;
    END LOOP;

  • Wrong GL Dates for Distributions for Credit Memo with Rules

    Hi all
    Using Autoinvoice, Ive created Invoice with Invoice date 17-APR-08 and 12 month payment term. Invoice line has amount of $460 and deferred accounting rule of type "Accounting, Fixed Duration". Rule start date is 17-APR-08 and duration is 1.
    I run the Revenue Recognition and then Revenue Adjustment API "ar_revenueadjust_pub.earn_revenue" to create revenue account schedule for 12 month period based on business rules. Now I issue credit memo of $60 on 18-JUN-08 with LIFO rule method and LIFO split term method, against the above invoice line.
    I run revenue recognition, go to the credit memo distributions. All the distributions show GL Date as 17-APR-08 with correct percentages and amount as in the original invoice line.
    Can anyone help me understand why all distributions of credit memo have same gl date?

    Hi Nagamohan,
    Credit Memo is applied to invoice line with deferred rule.
    If I issue credit memo on 18-JUN-08 with LIFO against a Invoice line which uses "Daily Revenue - All Periods" rule, the distributions show
    GL Date - Dr - Cr - Amount
    17-FEB-09 REV UNEARN 0.77
    17-MAR-09 REV UNEARN 39.07
    16-MAR-09 REV UNEARN 20.16
    The above amounts are exactly the reverse distributions as in Original Invoice line.
    I was expecting the same thing to happen in Deferred Fixed rule, but the only difference is for Fixed rule I cannot populate Rule_End_Date through Autoinvoice or manually.
    Kishore.
    Message was edited by:
    chakoo

  • API for AR Invoice Adjustment

    Hi All,
    We have a requirement for adjusting AR Invoices. This is a conversion activity and hence we have millions of records. Can anyone please suggest whether there is an API for making adjustments to AR Invoices.
    Thanks.

    All APIs are listed in Oracle Integration Repository
    http://irep.oracle.com/index.html
    API User Notes - HTML Format [ID 236937.1]
    R12.0.[3-4] : Oracle Install Base Api / Open Interface Setup Test [ID 427566.1]
    Oracle Trading Community Architecture API User Notes, June 2003 [ID 241320.1]
    Technical Uses of Customer Interface and TCA-API [ID 269121.1]
    Pelase also check below:
    Api's in EBS
    Re: Api's in EBS
    http://sairamgoudmalla.blogspot.com/2009/05/script-to-find-oracle-apis-for-any.html
    API
    Fixed Asset API
    List of API
    Re: List of APIs
    Oracle Common Application Components API Reference Guide
    download.oracle.com/docs/cd/B25284_01/current/acrobat/jta115api.pdf
    List of APIs and open interface R12
    Re: List of APIs and open interface R12
    Regard
    Helios

  • How to adjust line sampling frequency in photoshop CC on surface pro 3

    I just got a Surface Pro 3 so that I could work on my art on the go. I am used to working on a mac with a cintiq, but fell for the hype that photoshop was optimized to work with SP3. However, when I try to use the brush tool, my lines look AWFUL! no matter what I do, the lines are wavy and messy looking. I read that PSCC raised the sampling frequency rate so that the line would look better, but I think THAT is exactly why it looks awful. the Surface pro seems to be picking up EVERY microscopic twitch. I cant work like this ... and I am surely not the only person using PSCC on the SP3, as they're ADVERTISED to work together. How do I adjust the sampling frequency so that my line looks as smooth as it does on a Wacom in photoshop? ...because THAT image below.. looks like crap.

    I'm not an artist so I don't draw using my Surface pro 3.  Many have the same issue with wacom tablets and cintigu from what I read.  They seem to be able to solve their concerns by installing a plugin Lazy Nezumi Pro - Mouse and Pen Smoothing for PhotoShop and other Apps Remember I don't draw and have not installed that plug-in so I can not state that it works well on a surface pro 3.
    Doing a Web search  I found this I quote
    Hi guys,
    I'm the author of Lazy Nezumi Pro!
    Here's the situation with the Surface Pro 3: I'm not 100% sure, but I think the people who got LNP to work with the SP3 the ones who have Photoshop CC 2014, which uses the new Windows 8 native tablet API (instead of Wintab, which is very old tech). If you have this version, make sure you enable Windows Ink for it to work right. It's possible that the N-Trig Wintab implementation is just buggy, or that it's doing something very differently than what LNP is expecting (this is probably the case since I have reports that PS works fine without LNP). Unfortunately I won't know more until I get a SP3 myself and do some testing/debugging.
    I'm sorry I can't help more right now, but I'll keep you updated!  

  • Date Calculations - Adding 1 to the day and adjusting month/year

    Hi all,
    I have a date field in MM/ DD/ YYYY format. If I add 1 to the DD (day) field, and I hit the end
    of the month/year I need to adjust the MM and YYYY accordingly.
    Is there is an existing class/method in the JAVA API that would handle somthing like this??
    If so , I can't find it..... I don't want to re-invent the wheel creating a Date Handling routine just
    for this program.......
    Thanks very much

    This is overkill... (and sorry that this post is over a year later than the original post... hopefully somebody will benefit from it :)
    Calendar.getInstance() by default instanciates a GregorianCalendar
    object. (check the src).
    Therefore:
    Calendar cal = Calendar.getInstance();
    cal.setTime(d); // where d = java.util.Date or java.sql.Timestamp
    cal.add(Calendar.DATE, numberOfDays);
    return cal.getTime();
    public static java.util.Date
    adjustDateBy(java.util.Date d, int numberOfDays) {
    java.util.GregorianCalendar cal = new
    java.util.GregorianCalendar();
         cal.setTime(d);
    cal.add(java.util.GregorianCalendar.DATE,
    numberOfDays);
         return cal.getTime();

  • Why FlowLayout - JPane will NOT auto adjust in size?

    Hello java friends,
    I don't understand why my little demo program's JPane(use FlowLayout manager) will not adjust the size correctly. When run, I see one row of buttons, which only show 11 of them; the rest are shown on secon row which only visible if I go resize the window. Why is that? Wouldn't FlowLayout manager will auto size the pane? My main frame used the pack() method, so it's up to the pane's preferredsize. Please give me some ideas. Thanks.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Template {
        public static void main(String[] args) {
             JFrame mainFrame =new JFrame("Template");
            mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            mainFrame.setContentPane(new TemplatePane());
            //Display the window.
            mainFrame.pack();
            mainFrame.setVisible(true);
    class TemplatePane extends JPanel
              implements ActionListener {
         JButton componentAry[] =new JButton[100];
         TemplatePane() {
              this.setLayout(new FlowLayout());
              for(int i=0; i<componentAry.length; i++) {
                   componentAry[i] =new JButton("Test#"+i);
                   componentAry.addActionListener(this);
                   this.add(componentAry[i]);
         public void actionPerformed(ActionEvent ae) {
              System.out.println(ae.getActionCommand());

    I did read the API doc:
    >>>>
    A flow layout arranges components in a left-to-right flow, much like lines of text in a paragraph. Flow layouts are typically used to arrange buttons in a panel. It will arrange buttons left to right until no more buttons fit on the same line. Each line is centered.
    >>>>
    My question is why won't it adjust the pane size if the there is more than one line? It did draw the second line for things that won't fit in the first line... just not visible unless the whole window is resized to a bigger view. Can you please provide an explanation?

  • How to change the default name of new adjustment layers? (and other Q's)

    How do I change the default name of new adjustment layers?
    How can I make it so that adjustment layers don't come with a mask when I create them (unless I have a selection active)?
    Why isn't the Shadows/Highlights functionality an adjustment layer? It's accessable under "adjustments" but you can't use it non-destructive
    Where can I find documentation on Photoshop's API? (I want o make tools for it - javascript)

    Forgive me for not looking into your Maya-specific links, but one can automate Photoshop using JavaScript indeed (on Windows also VB, on Mac also AppleScript).
    Not everything can be automated naturally, but a lot – and it can really speed up many tasks; and with the »small« repetitive ones like saving copies off of files etc. combining Scripts with Configurator Panels can be especially convenient.
    There is a Scripting Forum over at
    http://forums.adobe.com/community/photoshop/photoshop_scripting
    As for plugins: it's something I would like to learn some day (I guess you would have to go with Flash and AS3 for making actual plugins)
    I think you might also have to learn C++ or C.
    There is Forum the contributors to which might be able to give you pointers if you get to that. 
    http://forums.adobe.com/community/photoshop/photoshop_sdk

  • ORABPEL-11811 - Error while calling PL/Sql API Into BPEL Process

    Hi,
    I have created a BPEL Process for creating a Order in Oracle using the synchronous process.
    I have followed the below steps.
    1) Created a Stored procedure using the Order Creation API's by passing Recard Type IN parameters.
    2) Created Synchronous BPEL Process and called the above Procedure using APPS Adapter.
    3) Created a xsd file and mapped the input and output parameter values using Transform Activity.
    After the above steps, when I try to run the BPEL process I am getting the below error:
    An error occurred while preparing and executing the APPS.PROC_PROC_NAME API. Cause: java.sql.SQLException: ORA-06531: Reference to uninitialized collection
    ORA-06512: at "APPS.PROC_PROC_NAME ", line 149
    ORA-06512: at line 1
    [Caused by: ORA-06531: Reference to uninitialized collection
    ORA-06512: at "APPS.PROC_NAME", line 149
    ORA-06512: at line 1
    ; nested exception is:
    ORABPEL-11811
    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the APPS.PROC_PROC_NAME API. Cause: java.sql.SQLException: ORA-06531: Reference to uninitialized collection.
    Can anybody help in resolving the error?
    Thanks,
    Mastanvali.

    Here is the API Code..
    CREATE OR REPLACE PROCEDURE XXMAST_PRC(
    arg_in_p_header_rec           IN HeaderObject,
    arg_in_p_line_tbl          IN arrayLines,
    arg_out_x_return_status          OUT VARCHAR2,
    arg_out_order_number          OUT NUMBER,
    arg_out_header_id          OUT NUMBER,
    arg_out_flow_status_code     OUT VARCHAR2
    ) AS
         p_api_version_number          NUMBER;
         x_return_status      VARCHAR2(2);
         x_msg_count      NUMBER;
         x_msg_data      VARCHAR2(2000);
         v_msg_data               VARCHAR2(8000);
         v_msg_index_out               NUMBER(10);
         p_header_rec      OE_ORDER_PUB.HEADER_REC_TYPE;
         p_old_header_rec      OE_ORDER_PUB.HEADER_REC_TYPE;
         p_header_val_rec      OE_ORDER_PUB.Header_Val_Rec_Type;
         p_old_header_val_rec      OE_ORDER_PUB.Header_Val_Rec_Type;
         p_Header_Adj_tbl      OE_ORDER_PUB.Header_Adj_Tbl_Type;
         p_old_Header_Adj_tbl      OE_ORDER_PUB.Header_Adj_Tbl_Type;
         p_Header_Adj_val_tbl      OE_ORDER_PUB.Header_Adj_Val_Tbl_Type;
         p_old_Header_Adj_val_tbl      OE_ORDER_PUB.Header_Adj_Val_Tbl_Type;
         p_Header_price_Att_tbl      OE_ORDER_PUB.Header_Price_Att_Tbl_Type;
         p_old_Header_Price_Att_tbl      OE_ORDER_PUB.Header_Price_Att_Tbl_Type;
         p_Header_Adj_Att_tbl      OE_ORDER_PUB.Header_Adj_Att_Tbl_Type;
         p_old_Header_Adj_Att_tbl      OE_ORDER_PUB.Header_Adj_Att_Tbl_Type;
         p_Header_Adj_Assoc_tbl      OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type;
         p_old_Header_Adj_Assoc_tbl      OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type;
         p_Header_Scredit_tbl      OE_ORDER_PUB.Header_Scredit_Tbl_Type;
         p_old_Header_Scredit_tbl      OE_ORDER_PUB.Header_Scredit_Tbl_Type;
         p_Header_Scredit_val_tbl      OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type;
         p_old_Header_Scredit_val_tbl      OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type;
         p_line_tbl      OE_ORDER_PUB.Line_Tbl_Type;
         p_old_line_tbl      OE_ORDER_PUB.Line_Tbl_Type;
         p_line_val_tbl      OE_ORDER_PUB.Line_Val_Tbl_Type;
         p_old_line_val_tbl      OE_ORDER_PUB.Line_Val_Tbl_Type;
         p_Line_Adj_tbl      OE_ORDER_PUB.Line_Adj_Tbl_Type;
         p_old_Line_Adj_tbl      OE_ORDER_PUB.Line_Adj_Tbl_Type;
         p_Line_Adj_val_tbl      OE_ORDER_PUB.Line_Adj_Val_Tbl_Type;
         p_old_Line_Adj_val_tbl      OE_ORDER_PUB.Line_Adj_Val_Tbl_Type;
         p_Line_price_Att_tbl      OE_ORDER_PUB.Line_Price_Att_Tbl_Type;
         p_old_Line_Price_Att_tbl      OE_ORDER_PUB.Line_Price_Att_Tbl_Type;
         p_Line_Adj_Att_tbl      OE_ORDER_PUB.Line_Adj_Att_Tbl_Type;
         p_old_Line_Adj_Att_tbl      OE_ORDER_PUB.Line_Adj_Att_Tbl_Type;
         p_Line_Adj_Assoc_tbl      OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type;
         p_old_Line_Adj_Assoc_tbl      OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type;
         p_Line_Scredit_tbl      OE_ORDER_PUB.Line_Scredit_Tbl_Type;
         p_old_Line_Scredit_tbl      OE_ORDER_PUB.Line_Scredit_Tbl_Type;
         p_Line_Scredit_val_tbl      OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type;
         p_old_Line_Scredit_val_tbl      OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type;
         p_Lot_Serial_tbl      OE_ORDER_PUB.Lot_Serial_Tbl_Type;
         p_old_Lot_Serial_tbl      OE_ORDER_PUB.Lot_Serial_Tbl_Type;
         p_Lot_Serial_val_tbl      OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type;
         p_old_Lot_Serial_val_tbl      OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type;
         p_action_request_tbl      OE_ORDER_PUB.Request_Tbl_Type;
         x_header_rec OE_ORDER_PUB.Header_Rec_Type;
         x_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type;
         x_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type;
         x_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type;
         x_Header_price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type;
         x_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type;
         x_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type;
         x_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type;
         x_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type;
         x_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
         x_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type;
         x_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type;
         x_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type;
         x_Line_price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type;
         x_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type;
         x_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type;
         x_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type;
         x_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type;
         x_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type;
         x_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type;
         x_action_request_tbl     OE_ORDER_PUB.Request_Tbl_Type;
         icount                    NUMBER :=0;
    BEGIN
         fnd_global.apps_initialize(1318,21623,660);
         fnd_client_info.set_org_context(204);
         p_header_rec:= OE_ORDER_PUB.G_MISS_HEADER_REC;
         SELECT OE_ORDER_HEADERS_S.NEXTVAL INTO p_header_rec.header_id FROM DUAL;
         dbms_output.put_line('Header ID          = '|| p_header_rec.header_id);
         p_api_version_number := 1.0;
    ------------------------------------------header code-----------------------------------------------------------------------
              p_header_rec.order_type_id          := arg_in_p_header_rec.order_type_id;
              p_header_rec.sold_to_org_id          := arg_in_p_header_rec.sold_to_org_id;
              p_header_rec.ship_to_org_id          := arg_in_p_header_rec.ship_to_org_id;
              p_header_rec.transactional_curr_code:= arg_in_p_header_rec.transactional_curr_code;
              p_header_rec.order_source_id          := arg_in_p_header_rec.order_source_id;
              p_header_rec.org_id               := arg_in_p_header_rec.org_id;
              p_header_rec.ship_from_org_id          := arg_in_p_header_rec.ship_from_org_id;
              p_header_rec.payment_term_id           := arg_in_p_header_rec.payment_term_id;
              p_header_rec.price_list_id          := 1000;
              p_header_rec.freight_terms_code          := 'Due';     -- Prepay and Add
              p_header_rec.operation               := OE_GLOBALS.G_OPR_CREATE;
              p_header_rec.pricing_date          := SYSDATE;
              p_header_rec.creation_date          := SYSDATE;
              p_header_rec.booked_flag          := 'N';
              p_header_rec.created_by               := 1318;
              p_header_rec.last_updated_by          := 1318;
              p_header_rec.last_update_date          := SYSDATE;
              p_header_rec.invoice_to_org_id          := 1424;
              p_header_rec.version_number          := 1;
              p_header_rec.open_flag               := 'Y';
              p_header_rec.ordered_date          := SYSDATE;
              p_header_rec.flow_status_code          := 'ENTERED';
              p_header_rec.tax_exempt_flag          := 'S';
              p_header_rec.salesrep_id          := -3;
    --------------------------------------------LINES CODE------------------------------------------------------------
         icount := 0;
         for icount in 1 .. arg_in_p_line_tbl.count loop
              p_line_tbl(icount) := Oe_Order_Pub.G_MISS_LINE_REC;
              SELECT OE_ORDER_LINES_S.NEXTVAL INTO p_line_tbl(icount).line_id FROM DUAL;
              dbms_output.put_line('Line ID               = '|| p_line_tbl(icount).line_id);
         p_line_tbl(icount).inventory_item_id          := arg_in_p_line_tbl(icount).inventory_item_id;
         p_line_tbl(icount).ordered_quantity          := arg_in_p_line_tbl(icount).ordered_quantity;
         p_line_tbl(icount).pricing_quantity          := arg_in_p_line_tbl(icount).pricing_quantity;
         p_line_tbl(icount).line_type_id               := arg_in_p_line_tbl(icount).line_type_id;
         p_line_tbl(icount).line_number          := icount;
         p_line_tbl(icount).shipment_number          := arg_in_p_line_tbl(icount).shipment_number;
         p_line_tbl(icount).ship_to_org_id          := arg_in_p_line_tbl(icount).ship_to_org_id;
         p_line_tbl(icount).sold_to_org_id          := arg_in_p_line_tbl(icount).sold_to_org_id;
         p_line_tbl(icount).salesrep_id          := arg_in_p_line_tbl(icount).salesrep_id;
         p_line_tbl(icount).payment_term_id          := arg_in_p_line_tbl(icount).payment_term_id;
              p_line_tbl(icount).price_list_id          := 1000;
              p_line_tbl(icount).operation               := OE_GLOBALS.G_OPR_CREATE;
              p_line_tbl(icount).open_flag               := 'Y';
              p_line_tbl(icount).booked_flag               := 'N';
              p_line_tbl(icount).header_id               := p_header_rec.header_id;
              p_line_tbl(icount).line_category_code          := 'ORDER';
              p_line_tbl(icount).order_quantity_uom          :='Ea';
              p_line_tbl(icount).request_date               := SYSDATE;
              p_line_tbl(icount).schedule_ship_date          := SYSDATE;
              p_line_tbl(icount).ship_from_org_id          := 204;
              p_line_tbl(icount).flow_status_code          := 'ENTERED';
              p_line_tbl(icount).ship_to_customer_id          := 1290;
              p_line_tbl(icount).invoice_to_org_id          := 1424;
              p_line_tbl(icount).tax_exempt_flag          := 'S';
              p_line_tbl(icount).tax_date               := '02-Mar-2005';
              p_line_tbl(icount).tax_code               := 'Location';
              SELECT OE_PRICE_ADJUSTMENTS_S.NEXTVAL INTO p_Line_Adj_tbl(icount).price_adjustment_id FROM DUAL;
              dbms_output.put_line('Price Adjustment ID     = '|| p_Line_Adj_tbl(icount).price_adjustment_id);
              p_Line_Adj_tbl(icount).created_by          := 1318;
              p_Line_Adj_tbl(icount).header_id          := p_header_rec.header_id;
              p_Line_Adj_tbl(icount).line_id               := p_line_tbl(icount).line_id;
              p_Line_Adj_tbl(icount).percent               := 10;
              p_Line_Adj_tbl(icount).operation          := OE_GLOBALS.G_OPR_CREATE;
              p_Line_Adj_tbl(icount).list_header_id          := 8988;
              p_Line_Adj_tbl(icount).list_line_id          := 16596;
              p_Line_Adj_tbl(icount).list_line_type_code     := 'DIS';
              p_Line_Adj_tbl(icount).arithmetic_operator     := 'AMT';
              p_Line_Adj_tbl(icount).updated_flag          := 'Y';
              p_Line_Adj_tbl(icount).update_allowed          := 'Y';
              p_Line_Adj_tbl(icount).applied_flag          := 'Y';
              p_Line_Adj_tbl(icount).automatic_flag          := 'N';
              p_Line_Adj_tbl(icount).OPERAND               := 10;
         end loop;
         oe_msg_pub.initialize;
         oe_order_pub.process_order
              ( p_api_version_number =>      p_api_version_number
              , p_init_msg_list =>      FND_API.G_FALSE
              , p_return_values =>      FND_API.G_FALSE
              , p_action_commit =>      FND_API.G_FALSE
              , x_return_status =>      x_return_status
              , x_msg_count =>      x_msg_count
              , x_msg_data =>      x_msg_data
              , p_header_rec =>     p_header_rec
              , p_old_header_rec =>     p_old_header_rec
              , p_header_val_rec =>     p_header_val_rec
              , p_old_header_val_rec =>     p_old_header_val_rec
              , p_Header_Adj_tbl =>     p_Header_Adj_tbl
              , p_old_Header_Adj_tbl =>     p_old_Header_Adj_tbl
              , p_Header_Adj_val_tbl =>     p_Header_Adj_val_tbl
              , p_old_Header_Adj_val_tbl =>     p_old_Header_Adj_val_tbl
              , p_Header_price_Att_tbl =>     p_Header_price_Att_tbl
              , p_old_Header_Price_Att_tbl =>     p_old_Header_Price_Att_tbl
              , p_Header_Adj_Att_tbl =>     p_Header_Adj_Att_tbl
              , p_old_Header_Adj_Att_tbl =>      p_old_Header_Adj_Att_tbl
              , p_Header_Adj_Assoc_tbl =>     p_Header_Adj_Assoc_tbl
              , p_old_Header_Adj_Assoc_tbl =>      p_old_Header_Adj_Assoc_tbl
              , p_Header_Scredit_tbl =>     p_Header_Scredit_tbl
              , p_old_Header_Scredit_tbl =>     p_old_Header_Scredit_tbl
              , p_Header_Scredit_val_tbl =>     p_Header_Scredit_val_tbl
              , p_old_Header_Scredit_val_tbl =>     p_old_Header_Scredit_val_tbl
              , p_line_tbl =>     p_line_tbl
              , p_old_line_tbl =>     p_old_line_tbl
              , p_line_val_tbl =>     p_line_val_tbl
              , p_old_line_val_tbl =>     p_old_line_val_tbl
              , p_Line_Adj_tbl =>     p_Line_Adj_tbl
              , p_old_Line_Adj_tbl =>     p_old_Line_Adj_tbl
              , p_Line_Adj_val_tbl =>     p_Line_Adj_val_tbl
              , p_old_Line_Adj_val_tbl =>     p_old_Line_Adj_val_tbl
              , p_Line_price_Att_tbl =>     p_Line_price_Att_tbl
              , p_old_Line_Price_Att_tbl =>     p_old_Line_Price_Att_tbl
              , p_Line_Adj_Att_tbl =>     p_Line_Adj_Att_tbl
              , p_old_Line_Adj_Att_tbl =>      p_old_Line_Adj_Att_tbl
              , p_Line_Adj_Assoc_tbl =>     p_Line_Adj_Assoc_tbl
              , p_old_Line_Adj_Assoc_tbl =>      p_old_Line_Adj_Assoc_tbl
              , p_Line_Scredit_tbl =>     p_Line_Scredit_tbl
              , p_old_Line_Scredit_tbl =>     p_old_Line_Scredit_tbl
              , p_Line_Scredit_val_tbl =>     p_Line_Scredit_val_tbl
              , p_old_Line_Scredit_val_tbl =>     p_old_Line_Scredit_val_tbl
              , p_Lot_Serial_tbl =>     p_Lot_Serial_tbl
              , p_old_Lot_Serial_tbl =>     p_old_Lot_Serial_tbl
              , p_Lot_Serial_val_tbl =>     p_Lot_Serial_val_tbl
              , p_old_Lot_Serial_val_tbl =>     p_old_Lot_Serial_val_tbl
              , p_action_request_tbl =>     p_action_request_tbl
              , x_header_rec =>      x_header_rec
              , x_header_val_rec =>      x_header_val_rec
              , x_Header_Adj_tbl =>      x_Header_Adj_tbl
              , x_Header_Adj_val_tbl =>      x_Header_Adj_val_tbl
              , x_Header_price_Att_tbl =>      x_Header_price_Att_tbl
              , x_Header_Adj_Att_tbl =>      x_Header_Adj_Att_tbl
              , x_Header_Adj_Assoc_tbl =>      x_Header_Adj_Assoc_tbl
              , x_Header_Scredit_tbl =>      x_Header_Scredit_tbl
              , x_Header_Scredit_val_tbl =>      x_Header_Scredit_val_tbl
              , x_line_tbl =>      x_line_tbl
              , x_line_val_tbl =>      x_line_val_tbl
              , x_Line_Adj_tbl =>      x_Line_Adj_tbl
              , x_Line_Adj_val_tbl =>      x_Line_Adj_val_tbl
              , x_Line_price_Att_tbl =>      x_Line_price_Att_tbl
              , x_Line_Adj_Att_tbl =>      x_Line_Adj_Att_tbl
              , x_Line_Adj_Assoc_tbl =>      x_Line_Adj_Assoc_tbl
              , x_Line_Scredit_tbl =>      x_Line_Scredit_tbl
              , x_Line_Scredit_val_tbl =>      x_Line_Scredit_val_tbl
              , x_Lot_Serial_tbl =>      x_Lot_Serial_tbl
              , x_Lot_Serial_val_tbl =>      x_Lot_Serial_val_tbl
              , x_action_request_tbl     =>      x_action_request_tbl
         IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
              COMMIT;
         dbms_output.put_line('Return Status - '|| SUBSTR (x_return_status,1,255));
         dbms_output.put_line('------------------------------------');
         dbms_output.put_line('Order Number ==== '|| x_header_rec.order_number);
         dbms_output.put_line('------------------------------------');
              arg_out_x_return_status := x_return_status;
              arg_out_order_number          := x_header_rec.order_number;
              arg_out_header_id          := p_header_rec.header_id;
              arg_out_flow_status_code     := p_header_rec.flow_status_code;
         ELSE
              dbms_output.put_line('Return Status = '|| SUBSTR (x_return_status,1,255));
              dbms_output.put_line('Msg Count = '|| TO_CHAR(x_msg_count));
              dbms_output.put_line('Msg Data = '|| SUBSTR (x_msg_data,1,255));
              IF x_msg_count >1 THEN
                   FOR I IN 1..x_msg_count LOOP
                        Oe_Msg_Pub.get(
                             p_msg_index           => i
                             ,p_encoded           => Fnd_Api.G_FALSE
                             ,p_data           => v_msg_data
                             ,p_msg_index_out      => v_msg_index_out
                        DBMS_OUTPUT.PUT_LINE('v_msg_index_out '|| v_msg_index_out);
                        DBMS_OUTPUT.PUT_LINE('v_msg_data '|| v_msg_data);
                   END LOOP;
              END IF;
         END IF;
    END;
    /

  • Error in Receiver Soap Adapter for Google API

    Hi,
    I am working on HTTP-XI-Soap scenario which on the receiver side calls google API for spell check.
    I get the following error : <b>No Deserializer found to deserialize a ':key' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.</b>
    However if I try calling the webservice individually using SOAP Client it works fine and do get desired response.The soap message that is sent by the client to the target URL is :
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:GoogleSearch" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <soapenv:Body>
          <urn:doSpellingSuggestion soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
             <key xsi:type="xsd:string">qXWD4x1QFHIo/dePqlYOLwT7kMmkv80E</key>
             <phrase <b>xsi:type="xsd:string"</b>>Bratney</phrase>
          </urn:doSpellingSuggestion>
       </soapenv:Body>
    </soapenv:Envelope>
    However if i remove the "xsi:type="xsd:string" part from the element 'phrase' and 'key' it returns the same error as it does while using with XI.
    Hence I am assuming that that the outgoing soap message elements need to have the above highlighed attribute.
    Now I want to have this attribute(xsi:type="xsd:string) in the soap message that is sent from XI.
    My question is , Is there any setting using which I can add the attributes in the above form to the outgoing message from XI.I do not want to use a adapter Module.
    Thanks & Regards,
    Sidharth

    Hi Sidharth,
    You post here the soap message that is sent by the client to the target URL, but did you look to the soap message that is sent by XI?
    Try the AF monitor http://<host>:<j2ee-port>//MessagingSystem/monitor/monitor.jsp?
    Because XI soap adapter doesn't support all tags of wsdl rpc-based, we need to adjust them...
    Look to the SOAP FAQ (SAP note number 856597) under question "Can I convert an RPC styled WSDL to a document styled WSDL?"... Look at last but one paragraph ;o)
    So, you need to change this attribute to one that it is compatible...
    Go to http://service.sap.com/xi > Media Library > Documentation and there you will find this xls document -> SAP XI 3.0 (SP11) - Supported XML Schema and WSDL (EN) in this document you have all the compatible elements of wsdl for XI.
    One more thing, you can adjust your soap request and change or add the required tags You can do it with xslt-mapping or create your won data types in XI without import the WSDL generated by google. 
    Hope it helps,
    Ricardo.
    Message was edited by: Ricardo  Quintino

  • Oracle Projects not totaling properly after adjusts have been made 11i 11.5.10

    Hi Guru,
    The our Oracle Projects group is in the process of cleaning up CIP balances on Projects which are left after the Project has been interfaced once to Fixed Assets. We are using the ADJUST function to clear the balances and this is working well for STATE 1 and STATE 2, but it is not working very well for STATE 3 projects. We have 6 Projects in STATE 3 which when the adjust was done, the correct amount was passed to FA but the CIP/interfaced CIP totals on the Capital screen are incorrect. A method is needed to correct the Capital CIP balance.

    This is a very common issue.
    One way to avoid this is as follows
    1) Define a new item status called "Uncosted"
    2) On the Item status screen (Inventory > setup > item > status code), make Uncosted item status NON-transactable.
    3) Define a process where the item status changes from Uncosted to Active only after the item cost is entered. This can be done via a manual process or by a custom program that uses Item api to change the status.
    Hope this helps,
    Sandeep Gandhi

  • API for reading/updating Lightroom metadata

    I've tried looking for documentation, and I can't find it, so...
    Is there an officially sanctioned mechanism for third party applications to read and edit Lightroom metadata? In particular, the keywords that have been assigned?
    My use case is as follows. I pull photos in to Lightroom, edit, adjust, add metadata, and so on. Then, for some of them, I export them to Flickr, using the Flickr Uploadr tool.
    Sometimes, based on comments on the photos, I may want to edit the metadata. I can do this, but I need to edit it in both places, Lightroom and Flickr.
    Flickr publishes an API for rummaging through photos, extracting metadata, and so on. So what I'd like to do is develop a tool that periodically looks at my photos on Flickr, compares the keywords it finds there with the keywords in Lightroom, and synchronises them. The Flickr side of that is fairly easy, but the Lightroom side doesn't appear to be documented.

    Hi Birla,
    try this:
    IResource res = ResourceFactory.getInstance().getResource(path,context);
    IPropertyName propName = new PropertyName("http://ars.com/xmlns/cm","Region");
    java.util.List values = new List();
    values.add("Asia");
    values.add("America");
    values.add("Muenster, Germany");
    IProperty property = new Property(propName, PropertyType.STRING, values);
    res.setProperty(property);
    Best regards,
    Michael

  • API/package/procedure/function for updating physical attributes in Org/Mast

    I need some kind of procedure or function for updating the weight, volume, and dimensions in the organization and master items forms. We have almost 350,000 items and I want to update them in batch. Is there an API of some kind for this? I would do a simple update but I want to make sure there's no additional logic necessary (other tables that are updated during the process of updating those fields, etc).
    Thanks!

    here is for API's you need to check...
    You can use Decimal & UOM Quantity API
    These APIs are used to handle item decimal quantities:
    Convert from one UOM to another
    Validate quantities at input time
    Validate quantities at display/output time
    Quantity Comparison
    Get UOM information
    For your convenience, I am giving you the API as below:
    /*===========================================================================+
    | Copyright (c) 1999 Oracle Corporation |
    | Redwood Shores, California, USA |
    | All rights reserved. |
    +===========================================================================*/
    /*-----------------------------------------------------------------------+
    |This package contains procedures relevent to item decimal quantity |
    |processing. This package contains routines to: |
    |(1)validate item quantities based on UOM and decimal precision rules |
    |(2)validate whether the UOM controls and decimal precision rules |
    | themselves are correct based on functionality planned. For reviewing|
    | UOM and decimal quantity functional design details, please visit the|
    | following URL: |
    | "http//apps-us.oracle.com/inv/development/designs_120/ |
    | decimal_precision/decimal_precision.html" |
    |But here are a few basics to give background context: |
    | |
    | "Item Quantity" -- The item's quantity is described by the item |
    | identifier, the unit of measure (e.g. grams, kilos, etc), and a |
    | number value to indicate the amount in that unit of measure. |
    | |
    | "Unit of Measure" -- Units of measure belong to unit of measure |
    | classes(e.g. weight, volume, length, etc). Each unit of measure class|
    | has actual units of measure that belong to that class (e.g. the |
    | weight class may have units of measures like, "grams", "kilos", etc).|
    | |
    | "UOM Conversion" --Users can set up conversion rates between UOMs in |
    | them same UOM class, by defining conversions to the base UOM. These |
    | are standard conversions. Item-level intra-class conversions may also|
    | be defined. When doing intra-class conversions, item-level |
    | intra-class conversions are used first if defined, and then standard |
    | conversions are used. |
    | Users can define inter-class conversions. Inter-class Conversions may|
    | also be defined at the lot/sublot levels. For inter-class conversions|
    | sublot, lot, and then item inter-class conversions will be used in |
    | in order. If lot-lvel conversion is not defined, then item-level |
    | conversion is used. A strict hierarchy is imposed. |
    | |
    | "TU" -- Trasactable Unit.A UOM may have a TU. This implies |
    | that when transacting in this UOM, any item's quantities will be |
    | forced to be integer multiples of this TU quantity. The TU may also |
    | be declared at the item level. The TU quantity at the item level may |
    | be different from the UOM level TU, and if defined, item level TU |
    | takes precedance. |
    | |
    | "Decimal Precision"--Users have a choice of setting decimal precision|
    | at the base UOM for each UOM class. All other UOMs in that class get |
    | get their decimal precisions derived from the base UOM decimal |
    | precision, the converison rate, and TUs, if they are |
    | being used. |
    | |
    | |
    | "Conversion Rate Tolerance" -- This is a tolerance that may be set |
    | when conversion rate cannot be not strictly fixed. Example: |
    | 1 Chicken = 2 pounds (plus or minus 0.7 pounds). This 0.7 pounds is |
    | the conversion rate tolerance. Conversion rate tolerance is only |
    | definable at inter-class UOM conversions, at item or lot/sublot level|
    | |
    | History |
    | 04/08/99 Mansoor Jafri Created Package Spec |
    | 04/26/99 Mansoor Jafri Updated with TU at 3 levels as |
    | opposed to MTU at 2 and atomic at|
    | UOM class level. |
    | 04/29/99 Mansoor Jafri Updated document with lot/sublot |
    | conversions. Also, removed |
    | "atomic" as a separate control, |
    | since this can |
    | implemented as a TU at base UOM |
    | level with an integer quantity. |
    | 05/03/99 Mansoor Jafri Updated the package with sublot |
    | level control. Also, changed name|
    | of DTU to TU, so that it fits |
    | better in the "process" market. |
    | Also, conformed to BOI API stds. |
    +-----------------------------------------------------------------------*/
    SET VERIFY OFF
    WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
    CREATE OR REPLACE PACKAGE inv_decimals_pub AS
    /* $Header: INVDECPS.pls 118.3 99/05/03 18:12:27 mjafri noship $ */
    /*--------------------------------------------------------------------------+
    |Procedure validate_compare_quantities(..)
    |Returns the quantity converted from the first UOM in the second UOM.
    |If quantities in 2 UOMs are already available, then this procedure will
    |compare and validate these quantities based on conversion rates
    |and UOM and decimal qty controls. This procedure may be used to validate
    |scenarios where quatities are entered in dual UOMs. We want to make sure
    |quantities are valid based on conversion, TUs, and conversion
    |rate tolerances.
    |
    |Procedure validate_and_compare(
    |p_api_version_number IN NUMBER, -- version # of API
    |p_init_msg_list IN VARCHAR2, -- whether to initialize list
    |p_inventory_item_id IN NUMBER, -- inventory_item_id
    |p_organization_id IN NUMBER, -- organization_id
    |p_lot_control_code IN NUMBER, -- item's lot control code
    |p_lot_number IN VARCHAR2, -- lot number
    |p_sub_lot_control_code IN NUMBER, --sub lot control code
    |p_sublot_number IN VARCHAR2, -- sublot number
    |p_from_quantity IN NUMBER, -- qty in first UOM
    |p_from_uom_code IN VARCHAR2, -- UOM of fisrt qty
    |p_to_uom_code IN VARCHAR2, -- UOM of second qty
    |p_to_quantity_to_check IN NUMBER, -- qty in second UOM
    |x_resultant_to_quantity OUT NUMBER, -- calculated qty in second UOM
    |x_comparison OUT NUMBER,--Possible values are 1,0,-1,-99
    |x_msg_count OUT NUMBER, -- number of messages
    |x_msg_data OUT VARCHAR2, -- populated,if msg count = 1
    |x_return_status OUT VARCHAR2) -- return status
    |
    |Note: The comparisons are done in base UOM
    | of the UOM class to which the first UOM belongs. x_comparison returns:
    |-1 if from_quantity is less than to_quantity (A < B)
    | 0 if from_quantity is equal to to_quantity (A = B)
    | 1 if from_quantity is greater than to_quantity (A > B)
    | -99 if the validations for the first/second quantity failed
    | If the UOMs belong to different classes, then users can specify whether
    | they want to use the effective interclass UOM conversion tolerance, say, T.
    | CASE: p_use_interclass_tolerance = 1
    | ------
    | Q1 > Q2 if (Q1 - Q2) >= T
    | Q1 = Q2 if ABS(Q1 - Q2) < T
    | Q1 < Q2 if (Q1 - Q2 ) <= -T
    |
    |The output variable x_resultant_to_quantity will contain the converted
    |quantity
    |in the second UOM, using effective conversion rates.
    |Usage: In a dual UOM scenario, this api will confirm whether quantities in
    |the two UOMs are equal or not, based on x_comparison output variable.
    +--------------------------------------------------------------------------*/
    Procedure validate_compare_quantities(
    p_api_version_number IN NUMBER,
    p_init_msg_list IN VARCHAR2,
    p_inventory_item_id IN NUMBER,
    p_organization_id IN NUMBER,
    p_lot_control_code IN NUMBER,
    p_lot_number IN VARCHAR2,
    p_sub_lot_control_code IN NUMBER,
    p_sublot_number IN VARCHAR2,
    p_from_quantity IN NUMBER,
    p_from_uom_code IN VARCHAR2,
    p_to_uom_code IN VARCHAR2,
    p_to_quantity_to_check IN NUMBER,
    x_resultant_to_quantity OUT NUMBER,
    x_valid_conversion OUT NUMBER,
    x_msg_count OUT NUMBER,
    x_msg_data OUT VARCHAR2,
    x_return_status OUT VARCHAR2);
    /*--------------------------------------------------------------------------+
    |Function convert_UOM(..) return NUMBER ;
    |Returns the quantity converted from the first unit into the second unit.
    |If conversion is not possible, return status is failure.
    |Function convert(
    |p_api_version_number IN NUMBER,
    |p_init_msg_list IN VARCHAR2, -- whether to initialize list
    |p_inventory_item_id IN NUMBER, -- inventory_item_id
    |p_organization_id IN NUMBER, -- organization_id
    |p_lot_control_code IN NUMBER, -- item's lot control code
    |p_lot_number IN VARCHAR2, -- lot number
    |p_sub_lot_control_code IN NUMBER,
    |p_sublot_number IN VARCHAR2,
    |p_from_quantity IN NUMBER, -- qty in first UOM
    |p_from_uom_code IN VARCHAR2, -- UOM of fisrt qty
    |p_to_uom_code IN VARCHAR2, -- UOM of second qty
    |x_msg_count OUT NUMBER,
    |x_msg_data OUT VARCHAR2,
    |x_return_status OUT VARCHAR2)
    | return NUMBER ;
    |If there is an error, then -99 is returned.
    |1) From_quantity must be an absolute value.
    |2) From_quantity will be truncated to decimal precision in the from UOM, then
    | converted to base UOM in the class,
    |3) Then converted to base UOM of the
    | to_UOM class,
    |4) Then converted to the quantity in to_UOM,
    |5) Then truncated to decimal precision of the to_UOM.
    +--------------------------------------------------------------------------*/
    Function convert_UOM(
    p_api_version_number IN NUMBER,
    p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
    p_inventory_item_id IN NUMBER,
    p_organization_id IN NUMBER,
    p_lot_control_code IN NUMBER,
    p_lot_number IN VARCHAR2,
    p_sub_lot_control_code IN NUMBER,
    p_sublot_number IN VARCHAR2,
    p_from_quantity IN NUMBER,
    p_from_uom_code IN VARCHAR2,
    p_to_uom_code IN VARCHAR2,
    x_msg_count OUT NUMBER,
    x_msg_data OUT VARCHAR2,
    x_return_status OUT VARCHAR2) return NUMBER ;
    /*--------------------------------------------------------------------------+
    | get_uom_properties(..)
    | This procedure is used to interrogate the UOM.
    | It returns:
    | (1) decimal precision at the UOM level
    | (2) TU, if defined, at the UOM level
    | (3) Atomicity, if defined for the class that this UOM belongs to
    | If some of the controls are not defined, null values are returned.
    | if the UOM is not found, the return status indicates this.
    | Procedure get_uom_properties(
    | p_api_version_number IN NUMBER,
    | p_init_msg_list IN VARCHAR2,
    | p_uom_code IN VARCHAR2,
    | x_decimal_precision OUT NUMBER,
    | x_uom_TU OUT NUMBER,
    | x_uom_class OUT VARCHAR2,
    | x_msg_count OUT NUMBER,
    | x_msg_data OUT VARCHAR2,
    | x_return_status OUT VARCAHR2);
    +--------------------------------------------------------------------------*/
    Procedure get_uom_properties(
    p_api_version_number IN NUMBER,
    p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
    p_uom_code IN VARCHAR2,
    x_decimal_precision OUT NUMBER,
    x_uom_TU OUT NUMBER,
    x_uom_class OUT VARCHAR2,
    x_msg_count OUT NUMBER,
    x_msg_data OUT VARCHAR2,
    x_return_status OUT VARCAHR2);
    /*-------------------------------------------------------------------------+
    | get_item_uom_properties(..)
    | This procedure returns a specific item's primary UOM, TU, and tolerance
    | Procedure get_item_uom_properties(
    | p_api_version_number IN NUMBER,
    | p_init_msg_list IN VARCHAR2,
    | p_inventory_item_id IN NUMBER,
    | p_organization_id IN NUMBER,
    | p_lot_control_code IN NUMBER, -- item's lot control code
    | p_lot_number IN VARCHAR2,
    | p_sub_lot_control_code IN NUMBER,
    | p_sublot_number IN VARCHAR2,
    | x_primary_uom_code OUT VARCHAR2,
    | x_uom_class OUT VARCHAR2,
    | x_decimal_precision OUT NUMBER,
    | x_item_TU OUT NUMBER,
    | x_uom_TU OUT NUMBER,
    | x_effective_TU OUT NUMBER,
    | x_msg_count OUT NUMBER,
    | x_msg_data OUT VARCHAR2,
    | x_return_status OUT VARCHAR2 );
    | If the item is not a valid one, then this is reflected through the
    | return status.
    +-------------------------------------------------------------------------*/
    Procedure get_item_uom_properties(
    p_api_version_number IN NUMBER,
    p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
    p_inventory_item_id IN NUMBER,
    p_organization_id IN NUMBER,
    p_lot_control_code IN NUMBER,
    p_lot_number IN VARCHAR2,
    p_sub_lot_control_code IN NUMBER,
    p_sublot_number IN VARCHAR2,
    x_primary_uom_code OUT VARCHAR2,
    x_uom_class OUT VARCHAR2,
    x_decimal_precision OUT NUMBER,
    x_item_TU OUT NUMBER,
    x_class_TU OUT NUMBER,
    x_uom_TU OUT NUMBER,
    x_effective_TU OUT NUMBER,
    x_msg_count OUT NUMBER,
    x_msg_data OUT VARCHAR2,
    x_return_status OUT VARCHAR2 );
    /*-------------------------------------------------------------------------+
    | Procedure compare_quantities(..)
    | Procedure compare_quantities(
    | p_api_version_number IN NUMBER,
    | p_init_msg_list IN VARCHAR2,
    | p_inventory_item_id IN NUMBER,
    | p_organization_id IN NUMBER,
    | p_lot_control_code IN NUMBER,
    | p_lot_number IN VARCHAR2,
    | p_sub_lot_control_code IN NUMBER,
    | p_sublot_number IN VARCHAR2,
    | p_fisrt_qauantity IN NUMBER,
    | p_first_uom IN VARCHAR2,
    | p_second_quantity IN NUMBER,
    | p_second_uom IN VARCHAR2,
    | p_use_interclass_tolerance IN VARCHAR2, -- Yes = 1, 2 = No
    | x_comaprison_result OUT NUMBER,
    | x_msg_count OUT NUMBER,
    | x_msg_data OUT VARCHAR2,
    | x_return_status OUT VARCHAR2);
    |
    | This procedure compares the quantities A and B and returns result in the
    | output variable x_comparison_result. The comparisons are done in base UOM
    | of the UOM class to which the first UOM belongs:
    |-1 if quantity A is less than quantity B (A < B)
    | 0 if quantity A is equal to quantity B (A = B)
    | 1 if quantity A is greater than quantity B (A > B)
    | If the UOMs belong to different classes, then users can specify whether
    | they want to use interclass UOM conversion tolerance, say, T.
    | CASE: p_use_interclass_tolerance = 1
    | ------
    | Q1 > Q2 if (Q1 - Q2) >= T
    | Q1 = Q2 if ABS(Q1 - Q2) < T
    | Q1 < Q2 if (Q1 - Q2 ) <= -T
    +------------------------------------------------------------------------*/
    Procedure compare_quantities(
    p_api_version_number IN NUMBER,
    p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
    p_inventory_item_id IN NUMBER,
    p_organization_id IN NUMBER,
    p_lot_control_code IN NUMBER,
    p_lot_number IN VARCAHR2,
    p_sub_lot_control_code IN NUMBER,
    p_sublot_number IN VARCHAR2,
    p_fisrt_qauantity IN NUMBER,
    p_first_uom IN VARCHAR2,
    p_second_quantity IN NUMBER,
    p_second_uom IN VARCHAR2,
    p_use_interclass_tolerance IN VARCHAR2,
    x_comaprison_result OUT NUMBER,
    x_msg_count OUT NUMBER,
    x_msg_data OUT VARCHAR2,
    x_return_status OUT VARCHAR2);
    /*-----------------------------------------------------------------------+
    | Procedure Validate_Quantity(
    | p_api_version_number IN NUMBER,
    | p_init_msg_list IN VARCHAR2,
    | p_inventory_item_id IN NUMBER,
    | p_organization_id IN NUMBER,
    | p_lot_control_code IN NUMBER,
    | p_lot_number IN VARCHAR2,
    | p_sub_lot_control_code IN NUMBER,
    | p_sublot_number IN VARCHAR2,
    | p_input_quantity IN NUMBER,
    | p_UOM_code IN VARCHAR2,
    | x_msg_count OUT NUMBER,
    | x_msg_data OUT VARCHAR2,
    | x_return_status OUT VARCHAR2);
    |
    | Validates and returns the quantity in this manner (the caller does not need
    | to adjust the result):
    | 0. Truncate to and validate decimal precision
    | 1. Validate quantity with respect to TU controls.
    +-------------------------------------------------------------------------*/
    Procedure Validate_Quantity(
    p_api_version_number IN NUMBER,
    p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
    p_inventory_item_id IN NUMBER,
    p_organization_id IN NUMBER,
    p_lot_control_code IN NUMBER,
    p_lot_number IN VARCAHR2,
    p_sub_lot_control_code IN NUMBER,
    p_sublot_number IN VARCHAR2,
    p_input_quantity IN NUMBER,
    p_UOM_code IN VARCHAR2,
    x_msg_count OUT NUMBER,
    x_msg_data OUT VARCHAR2,
    x_return_status OUT VARCHAR2);
    /*------------------------------------------------------------------------+
    | Function Truncate_Quantity(
    | p_api_version_number IN NUMBER,
    | p_init_msg_list IN VARCHAR2,
    | p_inventory_item_id IN NUMBER,
    | p_organization_id IN NUMBER,
    | p_lot_control_code IN NUMBER,
    | p_lot_number IN VARCHAR2,
    | p_sub_lot_control_code IN NUMBER,
    | p_sublot_number IN VARCHAR2,
    | p_input_quantity IN NUMBER,
    | p_UOM_code IN VARCHAR2,
    | x_msg_count OUT NUMBER,
    | x_msg_data OUT VARCHAR2,
    | x_return_status OUT VARCHAR2) return NUMBER;
    |
    | Truncates the quantity to decimal precision of the UOM.
    | In case of error conditions, -99 is returned.
    +------------------------------------------------------------------------*/
    Function Truncate_Quantity(
    p_api_version_number IN NUMBER,
    p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
    p_inventory_item_id IN NUMBER,
    p_organization_id IN NUMBER,
    p_lot_control_code IN NUMBER,
    p_lot_number IN VARCHAR2,
    p_sub_lot_control_code IN NUMBER,
    p_sublot_number IN VARCHAR2,
    p_input_quantity IN NUMBER,
    p_UOM_code IN VARCHAR2,
    x_msg_count OUT NUMBER,
    x_msg_data OUT VARCHAR2,
    x_return_status OUT VARCHAR2) return NUMBER;
    * show errors package INV_DECIMALS_PUB
    * SELECT to_date('SQLERROR') FROM user_errors
    * WHERE name = 'INV_DECIMALS_PUB'
    * AND type = 'PACKAGE';
    commit;
    exit;

Maybe you are looking for

  • Linking to a library through code

    Is it possible to link an icon to a library through code? I need to make up heaps of audio libraries and I've managed to import the audio files into an authorware piece but now I need to put these into a library. I can do this manually by dragging an

  • FFT express VI: maximum possible clock speed

    I'm using the FFT express VI in an FPGA VI running on a PXIe-7962R.  The maximum clock speed I can use without getting timing errors on compilation is 125 MHz.  Is this about right for this VI?  I see that the Xilinx LogiCORE FFT has much faster max.

  • Firefox continually opens tabs about latest updated add-ons

    Every time I open/start Firefox, in addition to my previously opened tabs (if any), it opens (or has started opening) an additional... 4-7 tabs... https://www.mozilla.org/en-US/firefox/33.1/whatsnew/?oldversion=31.0 http://update.downloadhelper.net/i

  • Can't get "true" height of text box (text object) in Photoshop CS4-CS6 on Mac

    I'm seeing this behavior in CS4, CS5 and CS6 on the Mac using AppleScript. When I get the height of a text object layer as such:      tell app "Adobe Photoshop CS4"           tell current document                set textObjectHeight to height of text

  • STMS - Transport Layer

    Hi, I understand that the default and recommended transport route is DEV -> QA -> PRD. Most of our transports are created in DEV and subsequently transported to QA and then PRD.  However, we have a scenario whereby we also need to create some transpo