Along with NetSuite Version 11.0 is the release of NetFlex Web Services Version 2.0.0. Refer to the following sections for details on all updates:
Important: If upgrading from older endpoints to the new 2.0 endpoint, ensure that you note field renames, type changes and other backwards incompatible changes as detailed in these release notes.
The new getCustomization operation can be used to dynamically retrieve and manage the metadata for Custom Fields, Lists, and Record Types in order to handle some of the custom business logic included at the record level. The following custom objects as enumerated in the
coreTypes XSD are currently supported by the getCustomization operation:
Web services requests can now be processed synchronously or asynchronously. In
asynchronous requests, your client application sends a request to the NetSuite Web Services Platform where it is placed in a processing queue and handled asynchronously with other requests. A job ID is returned in the web services response. Your client application can then check on the status and result of the request by referencing the job ID. The status of an asynchronous submission can be checked using the new
checkAsyncStatus operation. The results of an asynchronous submission can be retrieved via the new
getAsyncResult operation.
Asynchronous equivalents are available for the following operations:
Note: In the initial phase of NetFlex version 2.0.0, all async operations were named by appending Async to the operation name. This caused some issues with .Net so now async is prepended to the operation name as listed above.
You can now change a users email or password via the changePasswordOrEmail operation.
The new getItemAvailability operation can be used to retrieve the inventory availability for a given list of items. For each item, information such as the location, quantity on hand, quantity available, quantity back ordered, quantity committed, preferred stock level, and reorder point is returned.
You can also filter the returned list using a lastQtyAvailableChange filter. If set, only items with quantity available changes recorded as of the specified date are returned.
The new attach and detach operations can be used to attach or detach a contact to and from a customer record. You can invoke the attach operation by passing an AttachContactReference object that has elements to specify the recordRefs for attachTo (customer), contact and contactRole. Please note that while you can specify the role relationship for contact and customer using the attach operation, you need to return the read-only CustomerContactList on the customer record in order to view the existing contact and role relationship on the customer record.
Important: In this release, the attach operation can only be used to attach Contacts to Customer Records. Attempting to attach contacts to any other record type will result in a user error.
Contact Roles are roles available in a user defined list at Accounting > Lists > Other Lists. This list has been exposed as ContactRole in accounting.xsd.
The messagesFromJoin, messagesJoin, messagesToJoin, and userNotesJoin joined searches can be used to retrieve notes and messages for a given record.
In this version of NetFlex Web Services, you can now design for single login between Web services applications and the NetSuite UI. For example, a partner application can submit a POST to a specific wslogin page URL with credentials and a taskId identifying the desired NetSuite page. The wslogin page authenticates the request, provides a new session and redirects to the requested page.
For authentication, the following must be provided:
Optionally, you can also provide the role. The post URL is:
/app/webservices/wslogin.nl.
You can now specify a partnerId in the header of a request. This new element is a NetSuite issued Partner Id that can be used to track web services activity corresponding to a specific partner application.
You can now no longer explicitly define a web service call to ignore default values for a field. Now, if a default value needs to be changed you should override the default with the desired values.
Note: Previously, you could define an account to ignore default values in one of two ways:
This change reduces potential issues where default values are an integral part of the expected business logic embedded within a record and should NOT be ignored. For example, default values can be implied by requiredness, setup, and configuration.
Important: This change is NOT forwards compatible. When upgrading clients from a previous endpoint, you must modify your code accordingly.
Note: The Bin record, exposed as InventoryItemBinNumber in the accounting.xsd, has been added subsequent to the initial phase of NetFlex version 2.0.0. In the UI, the Bin record is located at Lists > Accounting > Bins. You must enable the Bin Management feature at Accounting > Bin Management to manipulate these objects.
In your existing Web Services applications, you may receive an INSUFFICIENT_PERMISSION error when attempting to set some custom fields in code that could be set prior to the 11.0 upgrade of your account. These custom fields cannot be set in the UI, either. To prevent this error from occurring on mandatory fields, disable the
Disable Mandatory Custom Field Validation preference at Setup > Integration > Web Services. You can also make the field settable in the UI to avoid this error.
Note: We recommend using a dedicated Web Services custom form for your application to decouple the Web Services permissions and validation from the UI.
The following table lists changes in the schema that correspond to previously exposed records. Any changes related to newly exposed records are not listed here. Please refer to the Web Services Records Guide for a complete list of available fields and types associated with new records.
|
|
Changed Fields / Removed Fields
|
New Fields / Joined Searches
|
|
|
|
visits > long stage > List *creditHoldOverride > enum
|
*accessHelp altEmail billPay campaignCategory creditCardsList daysOverdue defaultAddress firstName homePhone isPerson lastName middleName mobilePhone overdueBalance printOnCheckAs requirePwdChange *salesGroup salutation shipComplete thirdPartyAcct thirdPartyCountry thirdPartyZipcode title
*contactList (all fields)
*downloadList (all fields)
|
CustomerStatusStage *CustomerCreditHoldOverride
ContactType: removed _contact, added _otherName
|
|
|
|
|
|
|
|
|
|
|
|
|
hasDupes > hasDuplicates zip > zipCode
campaign campaignChannel campaignPromoCode campaignResponse campaignResponseCode campaignResponseDate targetCampaign
|
messagesFromJoin messagesJoin messagesToJoin transactionJoin userNotesJoin
ccCustomerCode contribution creditHoldOverride daysOverdue firstName isPerson isShipAddress lastName manualCreditHold middleName onCreditHold overdueBalance phoneticName resaleNumber salesTeamMember salesTeamRole salutation shipComplete shippingItem
|
country > SearchEnumMultiSelectField state > SearchStringField
|
|
|
|
|
|
|
|
|
|
|
|
|
hasDupes > hasDuplicates zip > zipCode
campaign campaignChannel campaignPromoCode campaignResponse campaignResponseDate campaignResponseCode targetCampaign
|
messagesFromJoin messagesJoin messagesToJoin *salutation transactionJoin userNotesJoin
phoneticName salutation middleName
|
country > SearchEnumMultiSelect state > SearchStringField
|
|
|
|
billpay dateCreated defaultAddress directDeposit inheritIPRules IPAddressRule lastModifiedDate requirePwdChange
messagesFromJoin messagesJoin messagesToJoin userNotesJoin
|
EmployeePayaccruedAccrual
|
|
|
campaign campaignChannel campaignPromoCode campaignResponse campaignResponseDate targetCampaign template
|
eligibleForCommission isTemplate isJobResource laborCost middleName phoneticName salesRole salutation supportRep type
|
country > SearchEnumMultiSelect state > SearchStringField
|
|
|
|
company contact supportCase timedEvent
|
|
|
|
|
attendeeJoin transactionJoin userNotesJoin
|
|
|
|
|
company contact milestone reminderMinutes reminderType supportCase timedEvent
|
PhoneCallReminderMinutes PhoneCallReminderType
|
|
|
|
transactionJoin userNotesJoin
lastModifiedDate isPrivate
|
|
|
|
|
company contact milestone reminderMinutes reminderType supportCase timedEvent
|
TaskReminderMinutes TaskReminderType
|
|
|
|
transactionJoin userNotesJoin
estimatedTime estimatedTimeOverride isPrivate milestone percentComplete percentTimeComplete
|
|
|
|
|
|
|
|
|
SupportCaseMessage (removed entire list)
|
|
|
|
|
|
messagesJoin userNotesJoin
helpDesk locked type module number product
|
caseNumber > SearchStringField messageType > SearchEnumMultiSelectField
|
|
|
|
messagesJoin userNotesJoin
*salesTeamList (all fields)
|
rate > string revRecTermInMonths > long
|
|
|
modified > lastModifiedDate
|
amount contribution salesTeamMember salesTeamRole
|
created > dateCreated daysOpen > SearchLongField daysToClose > SearchLongField number > SearchLongField probability > SearchLongField
|
|
|
|
leadSource quantityBackOrdered quantityBilled quantityCommitted quantityFulfilled quantityPacked quantityPicked revRecEndDate recRecSchedule recRecStartDate *salesGroup shipComplete
commitInventory createPo options line
*salesTeamList (all fields)
|
TransactionStatus (removed many possible enums) TransactionType (added several enums) discountRate > string
rate > string revRecTermInMonths > long
OpportunityEstimatesForecastType
SalesOrderItemCommitInventory
|
|
|
|
*amortizationEndDate *amortizationResidual *amortizationSched *amortizStartDate
|
|
|
|
dateClosed > closeDate modified > lastModifiedDate created > dateCreated poNum > otherRefNum
currency entity itemCount period total
|
altSalesNetAmount anyLineItem ccCustomerCode contribution customForm giftCertificate inVsoeBundle isShipAddress leadSource quantity salesTeamMember salesTeamRole shipComplete tranIsVsoeBundle vsoeAllocation vsoeAmount vsoeDeferral vsoeDelivered vsoePermitDiscount vsoePrice
|
billState > SearchStringField daysOpen > SearchLongField daysOverdue > SearchLongField number > SearchLongField parent > SearchLongField probability > SearchLongField revRecTermInMonths > SearchLongField shipState > SearchStringField
|
|
|
modified > lastModifiedDate onlineCustPrice > onlineCustomerPrice prefStockLevel > preferredStockLevel shoppingCategory > shoppingDotComCategory
|
autoLeadTime autoPreferredStockLevel autoReorderPoint category class daysBeforeExpiration demandModifier department feedDescription feedName froogleProductFeed giftCertAuthCode giftCertEmail giftCertExpDate giftCertFrom giftCertMsg giftCertOrigAmt giftCertRecipient imageUrl isAvailable issueProduct isVsoeBundle itemUrl lastQuantityAvailableChange leadTime location manufacturer matrixChild minimumQuantity mpn nexTagCategory nexTagProductFeed numberAllowedDownloads overallQuantityPricingType
|
costingMethod > SearchEnumMultiSelectField overallQuantityPricingType > SearchEnumMultiSelectField
|
|
|
|
pageTitle preferredStockLevelDays pricingGroup quantityAvailable quantityOnOrder quantityPricingSchedule safetyStockLevel safetyStockLevelDays seasonalDemand shippingRate shoppingCategory shoppingProductFeed shopzillaCategoryId shopzillaProductFeed stockDescription thumbnailUrl totalValue trackLandedCost urlComponent useMarginalRates vsoeDeferral vsoeDelivered vsoePermitDiscount vsoePrice
|
|
|
|
|
|
AccountType CurrencyCurrencyPrecision CurrencyLocale ItemOverallQuantityPricingType ItemPreferenceCriterion ItemProductFeed ScheduleBCode
|
|
|
|
class createdDate department lastModifiedDate location
|
|
|
|
|
account class createdDate deferredRevenueAccount department lastModifiedDate
|
|
|
|
onhandvaluemli > onHandValueMli
|
*autoLeadTime *autoPreferredStockLevel *autoReorderPoint class costUnits createdDate *demandModifier department enforceMinQtyInternally handlingCostUnits lastModifiedDate *leadTime location manufacturer manufacturerAddr1 manufacturerCity manufacturerState manufacturerTariff manufacturerTaxId manufacturerZip minimumQuantity mpn nexTagCategory overallQuantityPricingType preferenceCriterion *preferredStockLevelDays pricingGroup producer productFeed quantityPricingSchedule quantityReorderUnits *safetyStockLevel *safetyStockLevelDays scheduleBCode scheduleBNumber scheduleBQuantity searchKeywords *seasonalDemand shippingCostUnits shoppingDotComCategory shopzillaCategoryId stockDescription trackLandedCost *translation *useBins useMarginalRates weightUnits
*binNumberList (all fields)
|
|
|
|
|
class createdDate deferredRevenueAccount department lastModifiedDate location nonPosting
|
|
NonInventory Purchase Items
|
|
class costUnits createdDate department lastModifiedDate location
|
|
|
|
|
class costUnits createdDate department enforceMinQtyInternally handlingCostUnits lastModifiedDate location manufacturer manufacturerAddr1 manufacturerCity manufacturerState manufacturerTariff manufacturerTaxId manufacturerZip minimumQuantity minimumQuantityUnits mpn nexTagCategory overallQuantityPricingType preferenceCriterion pricingGroup producer productFeed quantityPricingSchedule scheduleBCode scheduleBNumber scheduleBQuantity searchKeywords shippingCostUnits shoppingDotComCategory shopzillaCategoryId stockDescription useMarginalRates weightUnits
|
|
|
|
|
class createdDate department enforceMinQtyInternally handlingCostUnits lastModifiedDate location manufacturer manufacturerAddr1 manufacturerCity manufacturerState manufacturerTariff manufacturerTaxId manufacturerZip minimumQuantity minimumQuantityUnits mpn nexTagCategory overallQuantityPricingType preferenceCriterion pricingGroup producer productFeed quantityPricingSchedule scheduleBCode scheduleBNumber scheduleBQuantity searchKeywords shippingCostUnits shippingDotComCategory shopzillaCategoryId stockDescription useMarginalRates weightUnits
|
|
Other Charge Purchase Items
|
|
class createdDate department lastModifiedDate costUnits
|
|
Other Charge Resale Items
|
|
class createdDate department enforceMinQtyInternally lastModifiedDate location minimumQuantity minimumQuantityUnits overallQuantityPricingType pricingGroup quantityPricingSchedule useMarginalRates costUnits
|
|
|
|
|
class createdDate department enforceMinQtyInternally lastModifiedDate location minimumQuantity minimumQuantityUnits overallQuantityPricingType pricingGroup quantityPricingSchedule useMarginalRates
|
|
|
|
|
class createdDate department lastModifiedDate location
|
|
|
|
|
class createdDate department lastModifiedDate location costUnits
|
|
|
|
|
class createdDate department enforceMinQtyInternally lastModifiedDate location minimumQuantity minimumQuantityUnits overallQuantityPricingType pricingGroup quantityPricingSchedule searchKeywords useMarginalRates costUnits
|
|
|
|
|
class createdDate department enforceMinQtyInternally lastModifiedDate location minimumQuantity minimumQuantityUnits overallQuantityPricingType pricingGroup quantityPricingSchedule searchKeywords useMarginalRates
|
|
|
|
|
class createdDate department lastModifiedDate location
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dateDriven daysUntilExpiry dayOfMonthNetDue dueNextMonthIfWithinDays discountPercentDateDriven dayDiscountExpires
|
daysUntilExpiry > long daysUntilNetDue > long
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
messagesJoin userNotesJoin
|
|
|
|
|
|
internalID > SearchMulitSelectField
|
*added subsequent to the initial phase of NetFlex Version 2.0.0
|