Budget Exchange Rate

The Budget Exchange Rates table is available at Lists > Accounting > Budget Exchange Rates. In this table you can maintain exchange rates between the child and parent subsidiaries for use in the budgeting process.

Note:

To access this table, the Multiple Currencies and Multiple Budgets features must be enabled.

The Budget Exchange Rates table is similar to the Consolidated Exchange Rates table. In NetSuite OneWorld, NetSuite uses the Consolidated Exchange Rates table to initially populate the Budget Exchange Rates table. Then, you can update and maintain the Budget Exchange Rates table as necessary.

This table shows the exchange rates for each subsidiary's base currency in relation to the currencies used by its parent subsidiaries, for each period. Table columns include: accounting period, accounting book, whether the period is closed, the From (child) subsidiary, the To (parent) subsidiary, and exchange rates.

Rates in this table are either direct or indirect (derived). Direct rates are rates set between a child and parent subsidiary. Direct rates are set by a user and may be edited. Indirect rates are rates set between a grandchild and grandparent subsidiary. Indirect rates are always calculated by the system and cannot be edited. Budget exchange rates include three different rate types per period, subsidiary, and accounting book: Average, Current, and Historical.

For more information about the budget exchange rate record and working with it in the UI, see Budget Exchange Rates.

The internal ID for this record is budgetexchangerate.

The budget exchange rate record is available only when the Multiple Currencies feature is enabled. An administrator can enable this feature at Setup > Company > Enable Features under the Company subtab.

The script user must have the Currency permission with Full permission level. To edit the different rate types per period and subsidiary pair, the script user must also have access to both the From and To subsidiary.

See the SuiteScript Records Browser for all internal IDs associated with this record.

Note:

For information about using the SuiteScript Records Browser, see Working with the SuiteScript Records Browser in the NetSuite Help Center.

For information about scripting with this record in SuiteScript, see the following help topics:

Supported Script Types

The budget exchange rate record is scriptable in both client and server SuiteScript.

The editable elements of the record are the currentrate, averagerate, and historicalrate. The remaining record elements can be read and searched.

Important:

Rates are created and deleted when subsidiaries or secondary accounting books are created and deleted. Script users can edit the record only if it is not derived (Element field-> isderived) and only when the accounting period to which this rate belongs is not closed (Element field-> isperiodclosed). In addition, the script user cannot edit a budget exchange rate of 1 for an elimination subsidiary and its direct parent (Element field-> iseliminationsubsidiary), with the following exception. Those customers who already have a non–1 budget exchange rate (current, average, or historical) between an elimination subsidiary and its direct parent subsidiary can edit the budget exchange rates for the elimination subsidiary.

Supported Functions

This record is partially scriptable. It can be read, updated, and searched using SuiteScript. It cannot be created, copied, deleted, or transformed.

Code Samples

The following sample shows how to update a budget exchange rate between two subsidiaries.

          var PARENT_SUBSIDIARY = 1;
var CHILD_SUBSIDIARY = 3;
var PERIOD = 212;
// Search for the budget rate record from CHILD_SUBSIDIARY to PARENT_SUBSIDIARY for a specific PERIOD
var mySearch = search.create({
    type: 'budgetexchangerate',
    filters: [{
        name: 'fromsubsidiary',
        operator: search.Operator.IS,
        values: CHILD_SUBSIDIARY
    } , {
        name: 'tosubsidiary',
        operator: search.Operator.IS,
        values: PARENT_SUBSIDIARY
    } , {
        name: 'period',
        operator: search.Operator.IS,
        values: PERIOD
    }],
    columns: [{
        name: 'internalid'
    }]
});
var searchResults = mySearch.run().each(function(result){
    var fromSubsidiary = result.getValue({
        name: 'fromsubsidiary'
    });
    var toSubsidiary = result.getValue({
        name: 'tosubsidiary'
    });
    var period = result.getValue({
        name: 'period'
    });
    return true;
});

// Update the budget rate's current, average, and historical rate
var id1 = searchResults[0].getValue({
    name: 'internalid'
});
var rateRecord = record.load({
    type: record.Type.BUDGET_EXCHANGE_RATE,
    id: id1,
    defaultValues: true
});
rateRecord.setValue({
    fieldId: 'currentrate',
    value: 1.2
});
rateRecord.setValue({
    fieldId: 'averagerate',
    value: 1.3
});
rateRecord.setValue({
    fieldId: 'historicalrate',
    value: 1.4
});
recId = rateRecord.save(); 

        

Related Topics

Budget Exchange Rates
Working with the SuiteScript Records Browser
SuiteCloud Supported Records
Lists

General Notices