@hitc/netsuite-types
Version:
TypeScript typings for SuiteScript 2.0
158 lines (149 loc) • 7.86 kB
TypeScript
interface GetParameterOptions {
/** The name of the script parameter. */
name: string;
}
interface SetOptions {
/** Key used to store the runtime.Session. */
name: string;
/** Value to associate with the key in the user session. */
value: string;
}
/** Encapsulates the runtime settings of the currently executing script. */
interface Script {
/** Returns the value of a script parameter for the currently executing script. */
getParameter(options: GetParameterOptions): boolean | number | Date | string | string[];
/** Returns a number value for the usage units remaining for the currently executing script. */
getRemainingUsage(): number;
/** The deployment ID for the script deployment on the currently executing script. */
deploymentId: string;
/** The script ID for the currently executing script. */
id: string;
/** The script logging level for the current script execution. This method is not supported on client scripts. */
logLevel: string;
/** The percent complete specified for the current scheduled script execution. The return value will appear in the % Complete column in the Scheduled Script Status page. */
percentComplete: number;
/** An Array of bundle IDs for the bundles that include the currently executing script. */
bundleIds: string[];
}
/** Encapsulates the user session for the currently executing script. */
interface Session {
/** Returns the user-defined session object value associated with the session object key. */
get(options: GetParameterOptions): string;
/** Sets a key and value for a user-defined runtime.Session. */
set(options: SetOptions): void;
}
/** Encapsulates the properties and preferences for the user of the currently executing script. */
interface User {
/** Returns a user permission level for the specified permission as a runtime.Permission enumeration. */
getPermission(options: GetParameterOptions): Permission;
/** Returns the value of a NetSuite preference. */
getPreference(options: GetParameterOptions): string;
/** The internal ID of the currently logged-in contact. If no logged-in entity or other entity than contact is logged in, then 0 is returned as value. */
readonly contact: number;
/** The internal ID of the department for the currently logged-in user. */
department: number;
/** The email address of the currently logged-in user. */
email: string;
/** The internal ID of the currently logged-in user. */
id: number;
/** The internal ID of the location of the currently logged-in user. */
location: number;
/** The name of the currently logged-in user. */
name: string;
/** The internal ID of the role for the currently logged-in user. */
role: number;
/** The script ID of the center type, or role center, for the currently logged-in user.
* NOTE: The actual behavior of this strays from the documentation. This in practice returns the script id
* of the role center as opposed to its internal id. That is why the return type is string | number instead of
* what the documentation claims (just number).
*/
roleCenter: string | number;
/** The custom scriptId of the role for the currently logged-in user. */
roleId: string;
/** The internal ID of the subsidiary for the currently logged-in user. */
subsidiary: number;
}
interface FeatureOptions {
/** The internal ID of the feature to check. */
feature: string;
}
/** The NetSuite account ID for the currently logged-in user. */
export const accountId: string;
/** The country for the current company. Returns the two-letter abbreviation. For example, US */
export const country: string;
/** The current environment in which the script is executing. This property returns one of the values from the runtime.EnvType enumeration. */
export const envType: EnvType;
/** Returns a runtime.ContextType enumeration that represents what triggered the current script. */
export const executionContext: ContextType;
/** The number of processors available to the currently logged in account.
SuiteCloud Processors is the current system used to execute (process) scheduled scripts and map/reduce scripts. This property is helpful if you are a SuiteApp developer and your script needs to know the total number of processors available to a deployment.
For scheduled script deployments that continue to use queues, use runtime.queueCount. With the introduction of SuiteCloud Processors, map/reduce script deployments and new scheduled script deployments no longer use queues, but pre-existing scheduled script deployments continue to use queues until the queues are removed (see SuiteCloud Processors – Supported Task Types).
Be aware that the number of processors available may not be the same as the number of queues available. For more information, see SuiteCloud Plus Settings.
*/
export const processorCount: number;
/** Returns the number of scheduled script queues in a given account. */
export const queueCount: number;
/** Returns the version of NetSuite that the method is called in. For example, the runtime.version property in an account running NetSuite 2015.2 is 2015.2. */
export const version: string;
/** Returns a runtime.Script that represents the currently executing script. */
export function getCurrentScript(): Script;
/** Returns a runtime.Session that represents the user session for the currently executing script. */
export function getCurrentSession(): Session;
/** Returns a runtime.User that represents the properties and preferences for the user of the currently executing script. */
export function getCurrentUser(): User;
/** Use this method to determine if a particular feature is enabled in a NetSuite account. These are the features that appear on the Enable Features page at Setup > Company > Setup Tasks > Enable Features. */
export function isFeatureInEffect(options: FeatureOptions): boolean;
/** Enumeration that holds the context information about what triggered the current script. Returned by the runtime.executionContext property of the N/runtime Module. */
export enum ContextType {
ACTION = "ACTION",
ADVANCEDREVREC = "ADVANCEDREVREC",
BANKCONNECTIVITY = "BANKCONNECTIVITY",
BANKSTATEMENTPARSER = "BANKSTATEMENTPARSER",
BUNDLE_INSTALLATION = "BUNDLEINSTALLATION",
CLIENT = "CLIENT",
CONSOLRATEADJUSTOR = "CONSOLRATEADJUSTOR",
CSV_IMPORT = "CSVIMPORT",
CUSTOMGLLINES = "CUSTOMGLLINES",
CUSTOM_MASSUPDATE = "CUSTOMMASSUPDATE",
DATASETBUILDER = "DATASETBUILDER",
DEBUGGER = "DEBUGGER",
EMAIL_CAPTURE = "EMAILCAPTURE",
FICONNECTIVITY = "FICONNECTIVITY",
FIPARSER = "FIPARSER",
MAP_REDUCE = "MAPREDUCE",
NONE = "NONE",
PAYMENTGATEWAY = "PAYMENTGATEWAY",
PAYMENTPOSTBACK = "PAYMENTPOSTBACK",
PLATFORMEXTENSION = "PLATFORMEXTENSION",
PORTLET = "PORTLET",
PROMOTIONS = "PROMOTIONS",
RESTLET = "RESTLET",
REST_WEBSERVICES = "RESTWEBSERVICES",
SCHEDULED = "SCHEDULED",
SDF_INSTALLATION = "SDFINSTALLATION",
SHIPPING_PARTNERS = "SHIPPINGPARTNERS",
SUITELET = "SUITELET",
TAX_CALCULATION = "TAXCALCULATION",
USEREVENT = "USEREVENT",
USER_INTERFACE = "USERINTERFACE",
WEBAPPLICATION = "WEBAPPLICATION",
WEBSERVICES = "WEBSERVICES",
WEBSTORE = "WEBSTORE",
WORKBOOKBUILDER = "WORKBOOKBUILDER",
WORKFLOW = "WORKFLOW"
}
/** Enumeration that holds all possible environment types that the current script can execute in. */
export enum EnvType {
SANDBOX,
PRODUCTION,
BETA,
INTERNAL,
}
/** Enumeration that holds the user permission level for a specific permission ID. Returned by the User.getPermission(options) method. */
export enum Permission {
FULL = 4,
EDIT = 3,
CREATE = 2,
VIEW = 1,
NONE = 0,
}