netsuite 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/Gemfile +4 -0
  2. data/lib/netsuite.rb +6 -2
  3. data/lib/netsuite/configuration.rb +2 -8
  4. data/lib/netsuite/records/base_ref_list.rb +3 -19
  5. data/lib/netsuite/records/billing_schedule_milestone_list.rb +4 -23
  6. data/lib/netsuite/records/billing_schedule_recurrence_list.rb +4 -23
  7. data/lib/netsuite/records/bin_number_list.rb +5 -23
  8. data/lib/netsuite/records/cash_refund_item_list.rb +3 -23
  9. data/lib/netsuite/records/cash_sale_item_list.rb +3 -15
  10. data/lib/netsuite/records/customer_payment_apply_list.rb +3 -22
  11. data/lib/netsuite/records/customer_refund_apply_list.rb +3 -20
  12. data/lib/netsuite/records/deposit_payment_list.rb +3 -4
  13. data/lib/netsuite/records/gift_certificate_item.rb +84 -0
  14. data/lib/netsuite/records/inventory_transfer_inventory_list.rb +2 -23
  15. data/lib/netsuite/records/item_fulfillment_package_list.rb +3 -19
  16. data/lib/netsuite/records/journal_entry_line_list.rb +3 -23
  17. data/lib/netsuite/records/member_list.rb +3 -22
  18. data/lib/netsuite/records/other_charge_sale_item.rb +73 -0
  19. data/lib/netsuite/records/record_ref_list.rb +2 -20
  20. data/lib/netsuite/records/units_type_uom_list.rb +2 -23
  21. data/lib/netsuite/records/vendor.rb +4 -1
  22. data/lib/netsuite/records/vendor_bill_item_list.rb +3 -23
  23. data/lib/netsuite/records/vendor_payment_apply_list.rb +3 -23
  24. data/lib/netsuite/records/work_order_item_list.rb +3 -23
  25. data/lib/netsuite/rest/utilities/request.rb +53 -0
  26. data/lib/netsuite/rest/utilities/roles.rb +45 -0
  27. data/lib/netsuite/utilities.rb +20 -0
  28. data/lib/netsuite/version.rb +1 -1
  29. data/spec/netsuite/actions/search_spec.rb +1 -1
  30. data/spec/netsuite/configuration_spec.rb +3 -3
  31. data/spec/netsuite/records/basic_record_spec.rb +2 -0
  32. data/spec/netsuite/records/custom_record_spec.rb +1 -1
  33. data/spec/netsuite/records/invoice_item_spec.rb +1 -1
  34. data/spec/netsuite/records/journal_entry_spec.rb +1 -1
  35. data/spec/netsuite/records/vendor_bill_expense_spec.rb +1 -1
  36. data/spec/netsuite/records/vendor_bill_item_spec.rb +2 -2
  37. data/spec/netsuite/utilities/request_spec.rb +29 -0
  38. data/spec/netsuite/utilities/roles_spec.rb +98 -0
  39. data/{wsdl/2011_2.wsdl → spec/support/2015.wsdl} +190 -56
  40. data/spec/support/configuration.rb +1 -0
  41. metadata +12 -4
  42. data/wsdl/2012_1.wsdl +0 -2283
@@ -0,0 +1,45 @@
1
+ module NetSuite
2
+ module Rest
3
+ module Utilities
4
+ class Roles
5
+
6
+ class << self
7
+
8
+ def get(email, password)
9
+ code, body = Request.get(
10
+ email: email,
11
+ password: password,
12
+ uri: '/roles'
13
+ )
14
+ code == "200" ? format_response(body) : body
15
+ end
16
+
17
+ private
18
+
19
+ def format_response(parsed)
20
+ # [
21
+ # {
22
+ # "account"=>{
23
+ # "internalId"=>"TSTDRV15",
24
+ # "name"=>"Honeycomb Mfg SDN (Leading)"},
25
+ # "role"=>{
26
+ # "internalId"=>3,
27
+ # "name"=>"Administrator"},
28
+ # "dataCenterURLs"=>{
29
+ # "webservicesDomain"=>"https://webservices.na1.netsuite.com",
30
+ # "restDomain"=>"https://rest.na1.netsuite.com",
31
+ # "systemDomain"=>"https://system.na1.netsuite.com"}
32
+ # },
33
+ # ....
34
+ {
35
+ accounts: parsed.map {|hash| hash["account"]["internalId"] }.uniq,
36
+ roles: parsed.map {|hash| hash["role"]["internalId"] }.uniq,
37
+ wsdls: parsed.map {|hash| hash["dataCenterURLs"]["webservicesDomain"] }.uniq,
38
+ }
39
+ end
40
+
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -57,6 +57,26 @@ module NetSuite
57
57
  return errors.size > 0
58
58
  end
59
59
 
60
+
61
+ def get_item(ns_item_internal_id)
62
+ # TODO add additional item types!
63
+ ns_item = NetSuite::Utilities.get_record(NetSuite::Records::InventoryItem, ns_item_internal_id)
64
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::AssemblyItem, ns_item_internal_id)
65
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::NonInventorySaleItem, ns_item_internal_id)
66
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::NonInventoryResaleItem, ns_item_internal_id)
67
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::DiscountItem, ns_item_internal_id)
68
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::OtherChargeSaleItem, ns_item_internal_id)
69
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::ServiceSaleItem, ns_item_internal_id)
70
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::GiftCertificateItem, ns_item_internal_id)
71
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::KitItem, ns_item_internal_id)
72
+
73
+ if ns_item.nil?
74
+ fail NetSuite::RecordNotFound, "item with ID #{ns_item_internal_id} not found"
75
+ end
76
+
77
+ ns_item
78
+ end
79
+
60
80
  def get_record(record_klass, id, opts = {})
61
81
  opts[:external_id] ||= false
62
82
 
@@ -1,3 +1,3 @@
1
1
  module Netsuite
2
- VERSION = '0.7.1'
2
+ VERSION = '0.7.2'
3
3
  end
@@ -100,7 +100,7 @@ describe NetSuite::Actions::Search do
100
100
 
101
101
  :attributes! => {
102
102
  "platformCore:customField" => {
103
- "internalId" => ["custentity_customerandcontacttypelist", "custentity_relatedthing"],
103
+ "scriptId" => ["custentity_customerandcontacttypelist", "custentity_relatedthing"],
104
104
  "operator" => ["anyOf", "anyOf"],
105
105
  "xsi:type" => ["platformCore:SearchMultiSelectCustomField", "platformCore:SearchMultiSelectCustomField"]
106
106
  }
@@ -52,7 +52,7 @@ describe NetSuite::Configuration do
52
52
 
53
53
  context 'when the wsdl has not been set' do
54
54
  it 'returns a path to the WSDL to use for the API' do
55
- expect(config.wsdl).to match(/.*\/netsuite\/wsdl\/2011_2\.wsdl/)
55
+ expect(config.wsdl).to eq("https://webservices.netsuite.com/wsdl/v2015_1_0/netsuite.wsdl")
56
56
  end
57
57
  end
58
58
 
@@ -214,8 +214,8 @@ describe NetSuite::Configuration do
214
214
 
215
215
  describe '#api_version' do
216
216
  context 'when no api_version is defined' do
217
- it 'defaults to 2011_2' do
218
- expect(config.api_version).to eq('2011_2')
217
+ it 'defaults to 2015_1' do
218
+ expect(config.api_version).to eq('2015_1')
219
219
  end
220
220
  end
221
221
  end
@@ -40,6 +40,8 @@ describe 'basic records' do
40
40
  NetSuite::Records::SubtotalItem,
41
41
  NetSuite::Records::Term,
42
42
  NetSuite::Records::Note,
43
+ NetSuite::Records::OtherChargeSaleItem,
44
+ NetSuite::Records::GiftCertificateItem,
43
45
  ]
44
46
  }
45
47
 
@@ -29,7 +29,7 @@ describe NetSuite::Records::CustomRecord do
29
29
  attributes = {
30
30
  :custom_field => {
31
31
  :amount => 10,
32
- :internal_id => 'custfield_amount'
32
+ :script_id => 'custfield_amount'
33
33
  }
34
34
  }
35
35
  record.custom_field_list = attributes
@@ -39,7 +39,7 @@ describe NetSuite::Records::InvoiceItem do
39
39
  attributes = {
40
40
  :custom_field => {
41
41
  :value => 10,
42
- :internal_id => 'custfield_value'
42
+ :script_id => 'custfield_value'
43
43
  }
44
44
  }
45
45
  item.custom_field_list = attributes
@@ -26,7 +26,7 @@ describe NetSuite::Records::JournalEntry do
26
26
  attributes = {
27
27
  :custom_field => {
28
28
  :amount => 10,
29
- :internal_id => 'custfield_amount'
29
+ :script_id => 'custfield_amount'
30
30
  }
31
31
  }
32
32
  entry.custom_field_list = attributes
@@ -32,7 +32,7 @@ describe NetSuite::Records::VendorBillExpense do
32
32
  attributes = {
33
33
  :custom_field => {
34
34
  :value => 10,
35
- :internal_id => 'custfield_value'
35
+ :script_id => 'custfield_value'
36
36
  }
37
37
  }
38
38
  expense.custom_field_list = attributes
@@ -42,7 +42,7 @@ describe NetSuite::Records::VendorBillItem do
42
42
  attributes = {
43
43
  :custom_field => {
44
44
  :value => 10,
45
- :internal_id => 'custfield_value'
45
+ :script_id => 'custfield_value'
46
46
  }
47
47
  }
48
48
  item.custom_field_list = attributes
@@ -63,7 +63,7 @@ describe NetSuite::Records::VendorBillItem do
63
63
  attributes = {
64
64
  :custom_field => {
65
65
  :value => 10,
66
- :internal_id => 'custfield_value'
66
+ :script_id => 'custfield_value'
67
67
  }
68
68
  }
69
69
  item.options = attributes
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe NetSuite::Rest::Utilities::Request do
4
+ subject { described_class }
5
+
6
+ describe '#get' do
7
+ it { is_expected.to respond_to :get }
8
+ let(:default_args) do
9
+ { email: 'jim@godaddy.com', password: 'secret', uri: '/sandwich'}
10
+ end
11
+
12
+ [:email, :password, :uri].each do |key|
13
+ it "throws an error if no #{key} key is given" do
14
+ expect{
15
+ subject.get(default_args.delete_if{|x| x == key})
16
+ }.to raise_error(KeyError)
17
+ end
18
+ end
19
+
20
+ it 'returns an array with the response code and parsed body' do
21
+ allow(subject).to receive(:make_request).and_return(
22
+ double(:response, code: "200", body: [{great: :body}].to_json)
23
+ )
24
+ expect( subject.get(default_args) ).to eq ["200", [{"great" => "body"}]]
25
+ end
26
+ end
27
+
28
+
29
+ end
@@ -0,0 +1,98 @@
1
+ require 'spec_helper'
2
+
3
+ describe NetSuite::Rest::Utilities::Roles do
4
+ subject { described_class }
5
+
6
+ describe '#get' do
7
+ it { is_expected.to respond_to :get }
8
+
9
+ it 'invokes the request module' do
10
+ expect( NetSuite::Rest::Utilities::Request ).to receive(:get)
11
+ subject.get('jimbob@netzero.com', 'pickles')
12
+ end
13
+
14
+ it 'formats the API response if successful' do
15
+ allow( NetSuite::Rest::Utilities::Request ).to receive(:get).and_return(
16
+ ["200", {parsed: :response}]
17
+ )
18
+ expect( subject ).to receive(:format_response).with({parsed: :response}).and_return nil
19
+ subject.get('jimbob@netzero.com', 'pickles')
20
+ end
21
+
22
+ it 'returns the full error message if unsuccessful' do
23
+ allow( NetSuite::Rest::Utilities::Request ).to receive(:get).and_return(
24
+ ["500", {oh: :no!}]
25
+ )
26
+ expect( subject ).to_not receive(:format_reponse)
27
+ expect( subject.get('jimbob@netzero.com', 'pickles') ).to eq({oh: :no!})
28
+ end
29
+ end
30
+
31
+ describe '#format_response' do
32
+ let(:parsed) do
33
+ [
34
+ {
35
+ "account"=>{
36
+ "internalId"=>"TSTDRV15",
37
+ "name"=>"Honeycomb Mfg SDN (Leading)"},
38
+ "role"=>{
39
+ "internalId"=>3,
40
+ "name"=>"Administrator"},
41
+ "dataCenterURLs"=>{
42
+ "webservicesDomain"=>"https://webservices.na1.netsuite.com",
43
+ "restDomain"=>"https://rest.na1.netsuite.com",
44
+ "systemDomain"=>"https://system.na1.netsuite.com"}
45
+ },
46
+ {
47
+ "account"=>{
48
+ "internalId"=>"TSTDRV15",
49
+ "name"=>"Honeycomb Mfg SDN (Leading)"},
50
+ "role"=>{
51
+ "internalId"=>1,
52
+ "name"=>"Accountant"},
53
+ "dataCenterURLs"=>{
54
+ "webservicesDomain"=>"https://webservices.na1.netsuite.com",
55
+ "restDomain"=>"https://rest.na1.netsuite.com",
56
+ "systemDomain"=>"https://system.na1.netsuite.com"}
57
+ },
58
+ {
59
+ "account"=>{
60
+ "internalId"=>"TSTDRV14",
61
+ "name"=>"Honeycomb Mfg SDN (Leading)"},
62
+ "role"=>{
63
+ "internalId"=>1,
64
+ "name"=>"Accountant"},
65
+ "dataCenterURLs"=>{
66
+ "webservicesDomain"=>"https://webservices.na1.netsuite.com",
67
+ "restDomain"=>"https://rest.na1.netsuite.com",
68
+ "systemDomain"=>"https://system.na1.netsuite.com"}
69
+ },
70
+ ]
71
+ end
72
+
73
+ it 'pulls out the account_ids' do
74
+ expect(
75
+ subject.send(:format_response, parsed).fetch(:accounts)
76
+ ).to eq ["TSTDRV15","TSTDRV14"]
77
+ end
78
+
79
+ it 'pulls out the role_ids' do
80
+ expect(
81
+ subject.send(:format_response, parsed).fetch(:roles)
82
+ ).to eq [3, 1]
83
+ end
84
+
85
+ it 'pulls out the wsdls' do
86
+ expect(
87
+ subject.send(:format_response, parsed).fetch(:wsdls)
88
+ ).to eq ["https://webservices.na1.netsuite.com"]
89
+ end
90
+
91
+ it 'handles an empty response body' do
92
+ expect{
93
+ subject.send(:format_response, [])
94
+ }.to_not raise_error
95
+ end
96
+
97
+ end
98
+ end
@@ -1,42 +1,46 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <definitions xmlns:tns="urn:platform_2011_2.webservices.netsuite.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:platformMsgs="urn:messages_2011_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2011_2.platform.webservices.netsuite.com" targetNamespace="urn:platform_2011_2.webservices.netsuite.com">
2
+ <definitions xmlns:tns="urn:platform_2015_1.webservices.netsuite.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:platformMsgs="urn:messages_2015_1.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2015_1.platform.webservices.netsuite.com" targetNamespace="urn:platform_2015_1.webservices.netsuite.com">
3
3
  <types>
4
4
  <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
5
- <xsd:import namespace="urn:core_2011_2.platform.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/platform/v2011_2_0/core.xsd"/>
6
- <xsd:import namespace="urn:faults_2011_2.platform.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/platform/v2011_2_0/faults.xsd"/>
7
- <xsd:import namespace="urn:messages_2011_2.platform.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/platform/v2011_2_0/messages.xsd"/>
8
- <xsd:import namespace="urn:common_2011_2.platform.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/platform/v2011_2_0/common.xsd"/>
9
- <xsd:import namespace="urn:scheduling_2011_2.activities.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/activities/v2011_2_0/scheduling.xsd"/>
10
- <xsd:import namespace="urn:types.scheduling_2011_2.activities.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/activities/v2011_2_0/schedulingTypes.xsd"/>
11
- <xsd:import namespace="urn:communication_2011_2.general.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/general/v2011_2_0/communication.xsd"/>
12
- <xsd:import namespace="urn:types.communication_2011_2.general.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/general/v2011_2_0/communicationTypes.xsd"/>
13
- <xsd:import namespace="urn:relationships_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/relationships.xsd"/>
14
- <xsd:import namespace="urn:types.relationships_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/relationshipTypes.xsd"/>
15
- <xsd:import namespace="urn:support_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/support.xsd"/>
16
- <xsd:import namespace="urn:types.support_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/supportTypes.xsd"/>
17
- <xsd:import namespace="urn:accounting_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/accounting.xsd"/>
18
- <xsd:import namespace="urn:types.accounting_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/accountingTypes.xsd"/>
19
- <xsd:import namespace="urn:sales_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/sales.xsd"/>
20
- <xsd:import namespace="urn:types.sales_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/saleTypes.xsd"/>
21
- <xsd:import namespace="urn:purchases_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/purchases.xsd"/>
22
- <xsd:import namespace="urn:customers_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/customers.xsd"/>
23
- <xsd:import namespace="urn:financial_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/financial.xsd"/>
24
- <xsd:import namespace="urn:bank_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/bank.xsd"/>
25
- <xsd:import namespace="urn:inventory_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/inventory.xsd"/>
26
- <xsd:import namespace="urn:types.inventory_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/inventoryTypes.xsd"/>
27
- <xsd:import namespace="urn:general_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/general.xsd"/>
28
- <xsd:import namespace="urn:customization_2011_2.setup.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/setup/v2011_2_0/customization.xsd"/>
29
- <xsd:import namespace="urn:types.customization_2011_2.setup.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/setup/v2011_2_0/customizationTypes.xsd"/>
30
- <xsd:import namespace="urn:employees_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/employees.xsd"/>
31
- <xsd:import namespace="urn:types.employees_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/employeeTypes.xsd"/>
32
- <xsd:import namespace="urn:filecabinet_2011_2.documents.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/documents/v2011_2_0/fileCabinet.xsd"/>
33
- <xsd:import namespace="urn:types.filecabinet_2011_2.documents.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/documents/v2011_2_0/fileCabinetTypes.xsd"/>
34
- <xsd:import namespace="urn:website_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/website.xsd"/>
35
- <xsd:import namespace="urn:types.website_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/websiteTypes.xsd"/>
36
- <xsd:import namespace="urn:employees_2011_2.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2011_2_0/employees.xsd"/>
37
- <xsd:import namespace="urn:marketing_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/marketing.xsd"/>
38
- <xsd:import namespace="urn:types.marketing_2011_2.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2011_2_0/marketingTypes.xsd"/>
39
- </xsd:schema>
5
+ <xsd:import namespace="urn:core_2015_1.platform.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/platform/v2015_1_0/core.xsd"/>
6
+ <xsd:import namespace="urn:faults_2015_1.platform.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/platform/v2015_1_0/faults.xsd"/>
7
+ <xsd:import namespace="urn:messages_2015_1.platform.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/platform/v2015_1_0/messages.xsd"/>
8
+ <xsd:import namespace="urn:common_2015_1.platform.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/platform/v2015_1_0/common.xsd"/>
9
+ <xsd:import namespace="urn:scheduling_2015_1.activities.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/activities/v2015_1_0/scheduling.xsd"/>
10
+ <xsd:import namespace="urn:types.scheduling_2015_1.activities.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/activities/v2015_1_0/schedulingTypes.xsd"/>
11
+ <xsd:import namespace="urn:communication_2015_1.general.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/general/v2015_1_0/communication.xsd"/>
12
+ <xsd:import namespace="urn:types.communication_2015_1.general.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/general/v2015_1_0/communicationTypes.xsd"/>
13
+ <xsd:import namespace="urn:relationships_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/relationships.xsd"/>
14
+ <xsd:import namespace="urn:types.relationships_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/relationshipTypes.xsd"/>
15
+ <xsd:import namespace="urn:support_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/support.xsd"/>
16
+ <xsd:import namespace="urn:types.support_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/supportTypes.xsd"/>
17
+ <xsd:import namespace="urn:accounting_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/accounting.xsd"/>
18
+ <xsd:import namespace="urn:types.accounting_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/accountingTypes.xsd"/>
19
+ <xsd:import namespace="urn:sales_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/sales.xsd"/>
20
+ <xsd:import namespace="urn:types.sales_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/saleTypes.xsd"/>
21
+ <xsd:import namespace="urn:purchases_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/purchases.xsd"/>
22
+ <xsd:import namespace="urn:customers_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/customers.xsd"/>
23
+ <xsd:import namespace="urn:financial_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/financial.xsd"/>
24
+ <xsd:import namespace="urn:bank_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/bank.xsd"/>
25
+ <xsd:import namespace="urn:inventory_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/inventory.xsd"/>
26
+ <xsd:import namespace="urn:types.inventory_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/inventoryTypes.xsd"/>
27
+ <xsd:import namespace="urn:general_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/general.xsd"/>
28
+ <xsd:import namespace="urn:customization_2015_1.setup.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/setup/v2015_1_0/customization.xsd"/>
29
+ <xsd:import namespace="urn:types.customization_2015_1.setup.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/setup/v2015_1_0/customizationTypes.xsd"/>
30
+ <xsd:import namespace="urn:employees_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/employees.xsd"/>
31
+ <xsd:import namespace="urn:types.employees_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/employeeTypes.xsd"/>
32
+ <xsd:import namespace="urn:filecabinet_2015_1.documents.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/documents/v2015_1_0/fileCabinet.xsd"/>
33
+ <xsd:import namespace="urn:types.filecabinet_2015_1.documents.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/documents/v2015_1_0/fileCabinetTypes.xsd"/>
34
+ <xsd:import namespace="urn:website_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/website.xsd"/>
35
+ <xsd:import namespace="urn:types.website_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/websiteTypes.xsd"/>
36
+ <xsd:import namespace="urn:employees_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/employees.xsd"/>
37
+ <xsd:import namespace="urn:marketing_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/marketing.xsd"/>
38
+ <xsd:import namespace="urn:types.marketing_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/marketingTypes.xsd"/>
39
+ <xsd:import namespace="urn:demandplanning_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/demandPlanning.xsd"/>
40
+ <xsd:import namespace="urn:types.demandplanning_2015_1.transactions.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/transactions/v2015_1_0/demandPlanningTypes.xsd"/>
41
+ <xsd:import namespace="urn:supplychain_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/supplyChain.xsd"/>
42
+ <xsd:import namespace="urn:types.supplychain_2015_1.lists.webservices.netsuite.com" schemaLocation="https://webservices.netsuite.com/xsd/lists/v2015_1_0/supplyChainTypes.xsd"/>
43
+ </xsd:schema>
40
44
  </types>
41
45
  <message name="headers">
42
46
  <part name="applicationInfo" element="platformMsgs:applicationInfo"/>
@@ -64,11 +68,17 @@
64
68
  <message name="mapSsoResponse">
65
69
  <part name="parameters" element="platformMsgs:mapSsoResponse"/>
66
70
  </message>
67
- <message name="changePasswordOrEmailRequest">
68
- <part name="parameters" element="platformMsgs:changePasswordOrEmail"/>
71
+ <message name="changePasswordRequest">
72
+ <part name="parameters" element="platformMsgs:changePassword"/>
69
73
  </message>
70
- <message name="changePasswordOrEmailResponse">
71
- <part name="parameters" element="platformMsgs:changePasswordOrEmailResponse"/>
74
+ <message name="changePasswordResponse">
75
+ <part name="parameters" element="platformMsgs:changePasswordResponse"/>
76
+ </message>
77
+ <message name="changeEmailRequest">
78
+ <part name="parameters" element="platformMsgs:changeEmail"/>
79
+ </message>
80
+ <message name="changeEmailResponse">
81
+ <part name="parameters" element="platformMsgs:changeEmailResponse"/>
72
82
  </message>
73
83
  <message name="logoutRequest">
74
84
  <part name="parameters" element="platformMsgs:logout"/>
@@ -214,6 +224,18 @@
214
224
  <message name="getConsolidatedExchangeRateResponse">
215
225
  <part name="parameters" element="platformMsgs:getConsolidatedExchangeRateResponse"/>
216
226
  </message>
227
+ <message name="getCurrencyRateRequest">
228
+ <part name="parameters" element="platformMsgs:getCurrencyRate"/>
229
+ </message>
230
+ <message name="getCurrencyRateResponse">
231
+ <part name="parameters" element="platformMsgs:getCurrencyRateResponse"/>
232
+ </message>
233
+ <message name="getDataCenterUrlsRequest">
234
+ <part name="parameters" element="platformMsgs:getDataCenterUrls"/>
235
+ </message>
236
+ <message name="getDataCenterUrlsResponse">
237
+ <part name="parameters" element="platformMsgs:getDataCenterUrlsResponse"/>
238
+ </message>
217
239
  <message name="getPostingTransactionSummaryRequest">
218
240
  <part name="parameters" element="platformMsgs:getPostingTransactionSummary"/>
219
241
  </message>
@@ -374,9 +396,19 @@
374
396
  <fault name="ExceededRequestLimitFault" message="tns:ExceededRequestLimitFault"/>
375
397
  <fault name="UnexpectedErrorFault" message="tns:UnexpectedErrorFault"/>
376
398
  </operation>
377
- <operation name="changePasswordOrEmail">
378
- <input name="changePasswordOrEmailRequest" message="tns:changePasswordOrEmailRequest"/>
379
- <output name="changePasswordOrEmailResponse" message="tns:changePasswordOrEmailResponse"/>
399
+ <operation name="changePassword">
400
+ <input name="changePasswordRequest" message="tns:changePasswordRequest"/>
401
+ <output name="changePasswordResponse" message="tns:changePasswordResponse"/>
402
+ <fault name="InsufficientPermissionFault" message="tns:InsufficientPermissionFault"/>
403
+ <fault name="InvalidAccountFault" message="tns:InvalidAccountFault"/>
404
+ <fault name="InvalidCredentialsFault" message="tns:InvalidCredentialsFault"/>
405
+ <fault name="InvalidVersionFault" message="tns:InvalidVersionFault"/>
406
+ <fault name="ExceededRequestLimitFault" message="tns:ExceededRequestLimitFault"/>
407
+ <fault name="UnexpectedErrorFault" message="tns:UnexpectedErrorFault"/>
408
+ </operation>
409
+ <operation name="changeEmail">
410
+ <input name="changeEmailRequest" message="tns:changeEmailRequest"/>
411
+ <output name="changeEmailResponse" message="tns:changeEmailResponse"/>
380
412
  <fault name="InsufficientPermissionFault" message="tns:InsufficientPermissionFault"/>
381
413
  <fault name="InvalidAccountFault" message="tns:InvalidAccountFault"/>
382
414
  <fault name="InvalidCredentialsFault" message="tns:InvalidCredentialsFault"/>
@@ -642,6 +674,23 @@
642
674
  <fault name="ExceededRequestSizeFault" message="tns:ExceededRequestSizeFault"/>
643
675
  <fault name="UnexpectedErrorFault" message="tns:UnexpectedErrorFault"/>
644
676
  </operation>
677
+ <operation name="getCurrencyRate">
678
+ <input name="getCurrencyRateRequest" message="tns:getCurrencyRateRequest"/>
679
+ <output name="getCurrencyRateResponse" message="tns:getCurrencyRateResponse"/>
680
+ <fault name="InvalidSessionFault" message="tns:InvalidSessionFault"/>
681
+ <fault name="InvalidCredentialsFault" message="tns:InvalidCredentialsFault"/>
682
+ <fault name="ExceededRequestLimitFault" message="tns:ExceededRequestLimitFault"/>
683
+ <fault name="ExceededUsageLimitFault" message="tns:ExceededUsageLimitFault"/>
684
+ <fault name="ExceededRecordCountFault" message="tns:ExceededRecordCountFault"/>
685
+ <fault name="ExceededRequestSizeFault" message="tns:ExceededRequestSizeFault"/>
686
+ <fault name="UnexpectedErrorFault" message="tns:UnexpectedErrorFault"/>
687
+ </operation>
688
+ <operation name="getDataCenterUrls">
689
+ <input name="getDataCenterUrlsRequest" message="tns:getDataCenterUrlsRequest"/>
690
+ <output name="getDataCenterUrlsResponse" message="tns:getDataCenterUrlsResponse"/>
691
+ <fault name="ExceededRequestSizeFault" message="tns:ExceededRequestSizeFault"/>
692
+ <fault name="UnexpectedErrorFault" message="tns:UnexpectedErrorFault"/>
693
+ </operation>
645
694
  <operation name="getPostingTransactionSummary">
646
695
  <input name="getPostingTransactionSummaryRequest" message="tns:getPostingTransactionSummaryRequest"/>
647
696
  <output name="getPostingTransactionSummaryResponse" message="tns:getPostingTransactionSummaryResponse"/>
@@ -899,15 +948,15 @@
899
948
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
900
949
  </fault>
901
950
  </operation>
902
- <operation name="changePasswordOrEmail">
903
- <soap:operation soapAction="changePasswordOrEmail"/>
904
- <input name="changePasswordOrEmailRequest">
951
+ <operation name="changePassword">
952
+ <soap:operation soapAction="changePassword"/>
953
+ <input name="changePasswordRequest">
905
954
  <soap:header message="tns:headers" part="passport" use="literal"/>
906
955
  <soap:header message="tns:headers" part="applicationInfo" use="literal"/>
907
956
  <soap:header message="tns:headers" part="partnerInfo" use="literal"/>
908
957
  <soap:body use="literal"/>
909
958
  </input>
910
- <output name="changePasswordOrEmailResponse">
959
+ <output name="changePasswordResponse">
911
960
  <soap:body use="literal"/>
912
961
  </output>
913
962
  <fault name="InsufficientPermissionFault">
@@ -929,6 +978,36 @@
929
978
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
930
979
  </fault>
931
980
  </operation>
981
+ <operation name="changeEmail">
982
+ <soap:operation soapAction="changeEmail"/>
983
+ <input name="changeEmailRequest">
984
+ <soap:header message="tns:headers" part="passport" use="literal"/>
985
+ <soap:header message="tns:headers" part="applicationInfo" use="literal"/>
986
+ <soap:header message="tns:headers" part="partnerInfo" use="literal"/>
987
+ <soap:body use="literal"/>
988
+ </input>
989
+ <output name="changeEmailResponse">
990
+ <soap:body use="literal"/>
991
+ </output>
992
+ <fault name="InsufficientPermissionFault">
993
+ <soap:fault name="InsufficientPermissionFault" use="literal"/>
994
+ </fault>
995
+ <fault name="InvalidAccountFault">
996
+ <soap:fault name="InvalidAccountFault" use="literal"/>
997
+ </fault>
998
+ <fault name="InvalidCredentialsFault">
999
+ <soap:fault name="InvalidCredentialsFault" use="literal"/>
1000
+ </fault>
1001
+ <fault name="InvalidVersionFault">
1002
+ <soap:fault name="InvalidVersionFault" use="literal"/>
1003
+ </fault>
1004
+ <fault name="ExceededRequestLimitFault">
1005
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
1006
+ </fault>
1007
+ <fault name="UnexpectedErrorFault">
1008
+ <soap:fault name="UnexpectedErrorFault" use="literal"/>
1009
+ </fault>
1010
+ </operation>
932
1011
  <operation name="logout">
933
1012
  <soap:operation soapAction="logout"/>
934
1013
  <input name="logoutRequest">
@@ -1740,6 +1819,61 @@
1740
1819
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
1741
1820
  </fault>
1742
1821
  </operation>
1822
+ <operation name="getCurrencyRate">
1823
+ <soap:operation soapAction="getCurrencyRate"/>
1824
+ <input name="getCurrencyRateRequest">
1825
+ <soap:header message="tns:headers" part="passport" use="literal"/>
1826
+ <soap:header message="tns:headers" part="applicationInfo" use="literal"/>
1827
+ <soap:header message="tns:headers" part="partnerInfo" use="literal"/>
1828
+ <soap:header message="tns:headers" part="preferences" use="literal"/>
1829
+ <soap:body use="literal"/>
1830
+ </input>
1831
+ <output name="getCurrencyRateResponse">
1832
+ <soap:header message="tns:headers" part="documentInfo" use="literal"/>
1833
+ <soap:body use="literal"/>
1834
+ </output>
1835
+ <fault name="InvalidSessionFault">
1836
+ <soap:fault name="InvalidSessionFault" use="literal"/>
1837
+ </fault>
1838
+ <fault name="InvalidCredentialsFault">
1839
+ <soap:fault name="InvalidCredentialsFault" use="literal"/>
1840
+ </fault>
1841
+ <fault name="ExceededRequestLimitFault">
1842
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
1843
+ </fault>
1844
+ <fault name="ExceededUsageLimitFault">
1845
+ <soap:fault name="ExceededUsageLimitFault" use="literal"/>
1846
+ </fault>
1847
+ <fault name="ExceededRecordCountFault">
1848
+ <soap:fault name="ExceededRecordCountFault" use="literal"/>
1849
+ </fault>
1850
+ <fault name="ExceededRequestSizeFault">
1851
+ <soap:fault name="ExceededRequestSizeFault" use="literal"/>
1852
+ </fault>
1853
+ <fault name="UnexpectedErrorFault">
1854
+ <soap:fault name="UnexpectedErrorFault" use="literal"/>
1855
+ </fault>
1856
+ </operation>
1857
+ <operation name="getDataCenterUrls">
1858
+ <soap:operation soapAction="getDataCenterUrls"/>
1859
+ <input name="getDataCenterUrlsRequest">
1860
+ <soap:header message="tns:headers" part="passport" use="literal"/>
1861
+ <soap:header message="tns:headers" part="applicationInfo" use="literal"/>
1862
+ <soap:header message="tns:headers" part="partnerInfo" use="literal"/>
1863
+ <soap:header message="tns:headers" part="preferences" use="literal"/>
1864
+ <soap:body use="literal"/>
1865
+ </input>
1866
+ <output name="getDataCenterUrlsResponse">
1867
+ <soap:header message="tns:headers" part="documentInfo" use="literal"/>
1868
+ <soap:body use="literal"/>
1869
+ </output>
1870
+ <fault name="ExceededRequestSizeFault">
1871
+ <soap:fault name="ExceededRequestSizeFault" use="literal"/>
1872
+ </fault>
1873
+ <fault name="UnexpectedErrorFault">
1874
+ <soap:fault name="UnexpectedErrorFault" use="literal"/>
1875
+ </fault>
1876
+ </operation>
1743
1877
  <operation name="getPostingTransactionSummary">
1744
1878
  <soap:operation soapAction="getPostingTransactionSummary"/>
1745
1879
  <input name="getPostingTransactionSummaryRequest">
@@ -1969,7 +2103,7 @@
1969
2103
  <soap:fault name="ExceededRequestSizeFault" use="literal"/>
1970
2104
  </fault>
1971
2105
  <fault name="ExceededRequestLimitFault">
1972
- <soap:fault name="ExceededRecordCountFault" use="literal"/>
2106
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
1973
2107
  </fault>
1974
2108
  <fault name="UnexpectedErrorFault">
1975
2109
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
@@ -2001,7 +2135,7 @@
2001
2135
  <soap:fault name="ExceededRequestSizeFault" use="literal"/>
2002
2136
  </fault>
2003
2137
  <fault name="ExceededRequestLimitFault">
2004
- <soap:fault name="ExceededRecordCountFault" use="literal"/>
2138
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
2005
2139
  </fault>
2006
2140
  <fault name="UnexpectedErrorFault">
2007
2141
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
@@ -2033,7 +2167,7 @@
2033
2167
  <soap:fault name="ExceededRequestSizeFault" use="literal"/>
2034
2168
  </fault>
2035
2169
  <fault name="ExceededRequestLimitFault">
2036
- <soap:fault name="ExceededRecordCountFault" use="literal"/>
2170
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
2037
2171
  </fault>
2038
2172
  <fault name="UnexpectedErrorFault">
2039
2173
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
@@ -2065,7 +2199,7 @@
2065
2199
  <soap:fault name="ExceededRequestSizeFault" use="literal"/>
2066
2200
  </fault>
2067
2201
  <fault name="ExceededRequestLimitFault">
2068
- <soap:fault name="ExceededRecordCountFault" use="literal"/>
2202
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
2069
2203
  </fault>
2070
2204
  <fault name="UnexpectedErrorFault">
2071
2205
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
@@ -2097,7 +2231,7 @@
2097
2231
  <soap:fault name="ExceededRequestSizeFault" use="literal"/>
2098
2232
  </fault>
2099
2233
  <fault name="ExceededRequestLimitFault">
2100
- <soap:fault name="ExceededRecordCountFault" use="literal"/>
2234
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
2101
2235
  </fault>
2102
2236
  <fault name="UnexpectedErrorFault">
2103
2237
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
@@ -2164,7 +2298,7 @@
2164
2298
  <soap:fault name="ExceededRequestSizeFault" use="literal"/>
2165
2299
  </fault>
2166
2300
  <fault name="ExceededRequestLimitFault">
2167
- <soap:fault name="ExceededRecordCountFault" use="literal"/>
2301
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
2168
2302
  </fault>
2169
2303
  <fault name="UnexpectedErrorFault">
2170
2304
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
@@ -2228,7 +2362,7 @@
2228
2362
  <soap:fault name="InvalidCredentialsFault" use="literal"/>
2229
2363
  </fault>
2230
2364
  <fault name="ExceededRequestLimitFault">
2231
- <soap:fault name="ExceededRecordCountFault" use="literal"/>
2365
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
2232
2366
  </fault>
2233
2367
  <fault name="UnexpectedErrorFault">
2234
2368
  <soap:fault name="UnexpectedErrorFault" use="literal"/>
@@ -2263,7 +2397,7 @@
2263
2397
  <soap:fault name="ExceededRecordCountFault" use="literal"/>
2264
2398
  </fault>
2265
2399
  <fault name="ExceededRequestLimitFault">
2266
- <soap:fault name="ExceededRecordCountFault" use="literal"/>
2400
+ <soap:fault name="ExceededRequestLimitFault" use="literal"/>
2267
2401
  </fault>
2268
2402
  <fault name="ExceededRequestSizeFault">
2269
2403
  <soap:fault name="ExceededRequestSizeFault" use="literal"/>
@@ -2275,7 +2409,7 @@
2275
2409
  </binding>
2276
2410
  <service name="NetSuiteService">
2277
2411
  <port name="NetSuitePort" binding="tns:NetSuiteBinding">
2278
- <soap:address location="https://webservices.netsuite.com/services/NetSuitePort_2011_2"/>
2412
+ <soap:address location="https://webservices.netsuite.com/services/NetSuitePort_2015_1"/>
2279
2413
  </port>
2280
2414
  </service>
2281
2415
  </definitions>