UnitOfMeasureSetAdd(7.0)

Requires the company to be enabled for unit of measure (UOM), either a single unit of measure per item, or multiple units of measure. However, in order to support both single or multiple units per item of measure enablement, you must prefix all UOM set names with “By the”, for example, “By the Barrel”. Otherwise, the UOM set will not show up in the QuickBooks UI in single UOM per item mode.


Request

Response

XMLOps

VB.NET

C#

Tag Type Max length Implementation Required

IUnitOfMeasureSetAdd

Requires the company to be enabled for unit of measure (UOM), either a single unit of measure per item, or multiple units of measure. However, in order to support both single or multiple units per item of measure enablement, you must prefix all UOM set names with “By the”, for example, “By the Barrel”. Otherwise, the UOM set will not show up in the QuickBooks UI in single UOM per item mode.
    7.0  

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 31 chars   Y

IsActive

If IsActive is true, this object is currently enabled for use by QuickBooks. The default value is true.
IQBBoolType      

UnitOfMeasureType

The type of the unit of measure. This can be one of the values you see in the QuickBooks UI when you create a new UOM set, such as Count, or it can be your own value, which in the UI you can specify by selecting “Other” then defining it.
IQBENUnitOfMeasureTypeType     Y

BaseUnit

The unit of measure in a unit of measure set by which quantities of an item are tracked, priced, etc. If the company file is enabled for single unit of measure per item, the base unit is the only unit that is available for transaction line items. If the company file is enabled for multipleunits per item, the base unit is the default unit for transaction line items, unless you specify different defaults in the unit of measure set.
IBaseUnit     Y

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 31 chars   Y

Abbreviation

The is the short “identifier” for a unit of measure that shows up in transaction line items in the U/M field in the QuickBooks UI.
IQBStringType 31 chars   Y

RelatedUnitList

A unit of measure set (UOM set) consists of one base unit and 0-n related units. This is the optional list of related units in the UOM set. Each related unit contains a certain number of the base unit, and that “certain number” is specified in the conversion ratio property.
IRelatedUnitList      

(List

of IRelatedUnit Objects)
       

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 31 chars   Y

Abbreviation

The is the short “identifier” for a unit of measure that shows up in transaction line items in the U/M field in the QuickBooks UI.
IQBStringType 31 chars   Y

ConversionRatio

Within a unit of measure set, in any of the related units in that set, this indicates how many base units are in the related unit. That is, if the base unit is “box”, and the related unit is “case” with a conversion ratio of 10, that means there are 10 boxes in a case.
IQBPriceType 5000 chars   Y

DefaultUnitList

The optional list of default units that you want to show up in transaction line items in the U/M field. You can specify one default for sales transactions, another for purchase transactions and you can specify a default for shipping lines.
IDefaultUnitList      

(List

of IDefaultUnit Objects)
       

UnitUsedFor

In a default unit of measure, this specifies whether the default is to be used for purchase line items, sales line items, or shipping lines.
IQBENUnitUsedForType     Y

Unit

In a related unit within a unit of measure set, the name you want the unit to have. This name is displayed in the QuickBooks as an available unit for the item, if the company is enabled for multiple units of measure per item.
IQBStringType 31 chars   Y

IncludeRetElementList

You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a City within an Address: you must specify Address and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the DataExtRet element and you must supply the OwnerID set to either a value of 0 (custom data) or the GUID for the private data.
IBSTRList 50 chars    
Tag Type Max length Implementation Required

IResponse

Requires the company to be enabled for unit of measure (UOM), either a single unit of measure per item, or multiple units of measure. However, in order to support both single or multiple units per item of measure enablement, you must prefix all UOM set names with “By the”, for example, “By the Barrel”. Otherwise, the UOM set will not show up in the QuickBooks UI in single UOM per item mode.
    7.0  

StatusCode

A number that corresponds to a statusSeverity and statusMessage. Five status codes relate directly to signon messages: 2000, 2010, 2020, 2030, and 2040. For details about these and other statusCode values that can be returned, see the statusCode table on the Error Codes page.
IQBIntType     Y

StatusSeverity

One of the following values: INFO The request was completed, and the results are consistent with what your application expected. WARNING The request was completed, but the results might not be consistent with what you expected. ERROR The request was not completed. No data will appear in the server’s response after the statusMessage.
IQBStringType     Y

StatusMessage

A user-readable explanation of the success or error condition that is indicated by the statusCode. For details about the statusMessage values that can be returned, see the “Explanation” column of the statusCode table on the Error Codes page.
IQBStringType     Y

Detail

IUnitOfMeasureSetRet      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

TimeCreated

Time the object was created.
IQBDateTimeType      

TimeModified

Time the object was last modified.
IQBDateTimeType      

EditSequence

A number that the server generates and assigns to this object. Every time the object is changed, the server will change its EditSequence value. When you try to modify a list object, you must provide its EditSequence. The server compares the EditSequence you provide with the EditSequence in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because EditSequence is only used to check whether two objects match, there is no reason to interpret its value.
IQBStringType 16 chars    

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 31 chars    

IsActive

If IsActive is true, this object is currently enabled for use by QuickBooks. The default value is true.
IQBBoolType      

UnitOfMeasureType

The type of the unit of measure. This can be one of the values you see in the QuickBooks UI when you create a new UOM set, such as Count, or it can be your own value, which in the UI you can specify by selecting “Other” then defining it.
IQBENUnitOfMeasureTypeType      

BaseUnit

The unit of measure in a unit of measure set by which quantities of an item are tracked, priced, etc. If the company file is enabled for single unit of measure per item, the base unit is the only unit that is available for transaction line items. If the company file is enabled for multipleunits per item, the base unit is the default unit for transaction line items, unless you specify different defaults in the unit of measure set.
IBaseUnit      

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 31 chars   Y

Abbreviation

The is the short “identifier” for a unit of measure that shows up in transaction line items in the U/M field in the QuickBooks UI.
IQBStringType 31 chars   Y

RelatedUnitList

A unit of measure set (UOM set) consists of one base unit and 0-n related units. This is the optional list of related units in the UOM set. Each related unit contains a certain number of the base unit, and that “certain number” is specified in the conversion ratio property.
IRelatedUnitList      

(List

of IRelatedUnit Objects)
       

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 31 chars   Y

Abbreviation

The is the short “identifier” for a unit of measure that shows up in transaction line items in the U/M field in the QuickBooks UI.
IQBStringType 31 chars   Y

ConversionRatio

Within a unit of measure set, in any of the related units in that set, this indicates how many base units are in the related unit. That is, if the base unit is “box”, and the related unit is “case” with a conversion ratio of 10, that means there are 10 boxes in a case.
IQBPriceType 5000 chars   Y

DefaultUnitList

The optional list of default units that you want to show up in transaction line items in the U/M field. You can specify one default for sales transactions, another for purchase transactions and you can specify a default for shipping lines.
IDefaultUnitList      

(List

of IDefaultUnit Objects)
       

UnitUsedFor

In a default unit of measure, this specifies whether the default is to be used for purchase line items, sales line items, or shipping lines.
IQBENUnitUsedForType     Y

Unit

In a related unit within a unit of measure set, the name you want the unit to have. This name is displayed in the QuickBooks as an available unit for the item, if the company is enabled for multiple units of measure per item.
IQBStringType 31 chars   Y

Detail

IErrorRecovery   11.0  

ORListOwnerTxn

IORListOwnerTxn     Y

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

OwnerID

Refers to the owner of a data extension:If OwnerID is 0, this is a public data extension, also known as a custom field. Custom fields appear in the QuickBooks UI.If OwnerID is a GUID, for example {6B063959-81B0-4622-85D6-F548C8CCB517}, this field is a private data extension defined by an integrated application. Private data extensions do not appear in the QuickBooks UI. Note that OwnerID values are not case-sensitive, meaning that if you enter an OwnerID value with lower-case letters, the value will be saved and returned with upper-case letters. When you share a private data extension with another application, the other application must know both the OwnerID and the DataExtName, as these together form a data extension’s unique name.
IQBGUIDType      

TxnID

QuickBooks generates a unique TxnID for each transaction that is added to QuickBooks. A TxnID returned from a request can be used to refer to the transaction in subsequent requests. Notice that you cannot supply the TxnID of a TimeTracking transaction to TransactionQueryRq requests. If you do, you get an error stating that no such record could be found, even though the transaction is in QuickBooks. This behavior reflects the behavior in the QuicKBooks UI in the Find window.
IQBIDType      

TxnNumber

An identifying number for this transaction.
IQBIntType      

EditSequence

A number that the server generates and assigns to this object. Every time the object is changed, the server will change its EditSequence value. When you try to modify a list object, you must provide its EditSequence. The server compares the EditSequence you provide with the EditSequence in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because EditSequence is only used to check whether two objects match, there is no reason to interpret its value.
IQBStringType 16 chars    

ExternalGUID

Allows for the attachment of a user defined GUID value.
IQBGUIDType      

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="16.0"?>
<QBXML>
        <QBXMLMsgsRq onError="stopOnError">
                <UnitOfMeasureSetAddRq>
                        <UnitOfMeasureSetAdd> <!-- required -->
                                <Name >STRTYPE</Name> <!-- required -->
                                <IsActive >BOOLTYPE</IsActive> <!-- optional -->
                                <!-- UnitOfMeasureType may have one of the following values: Area, Count, Length, Other, Time, Volume, Weight -->
                                <UnitOfMeasureType >ENUMTYPE</UnitOfMeasureType> <!-- required -->
                                <BaseUnit> <!-- required -->
                                        <Name >STRTYPE</Name> <!-- required -->
                                        <Abbreviation >STRTYPE</Abbreviation> <!-- required -->
                                </BaseUnit>
                                <RelatedUnit> <!-- optional, may repeat -->
                                        <Name >STRTYPE</Name> <!-- required -->
                                        <Abbreviation >STRTYPE</Abbreviation> <!-- required -->
                                        <ConversionRatio >PRICETYPE</ConversionRatio> <!-- required -->
                                </RelatedUnit>
                                <DefaultUnit> <!-- optional, may repeat -->
                                        <!-- UnitUsedFor may have one of the following values: Purchase, Sales, Shipping -->
                                        <UnitUsedFor >ENUMTYPE</UnitUsedFor> <!-- required -->
                                        <Unit >STRTYPE</Unit> <!-- required -->
                                </DefaultUnit>
                        </UnitOfMeasureSetAdd>
                        <IncludeRetElement >STRTYPE</IncludeRetElement> <!-- optional, may repeat -->
                </UnitOfMeasureSetAddRq>

                <UnitOfMeasureSetAddRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE">
                        <UnitOfMeasureSetRet> <!-- optional -->
                                <ListID >IDTYPE</ListID> <!-- optional -->
                                <TimeCreated >DATETIMETYPE</TimeCreated> <!-- optional -->
                                <TimeModified >DATETIMETYPE</TimeModified> <!-- optional -->
                                <EditSequence >STRTYPE</EditSequence> <!-- optional -->
                                <Name >STRTYPE</Name> <!-- optional -->
                                <IsActive >BOOLTYPE</IsActive> <!-- optional -->
                                <!-- UnitOfMeasureType may have one of the following values: Area, Count, Length, Other, Time, Volume, Weight -->
                                <UnitOfMeasureType >ENUMTYPE</UnitOfMeasureType> <!-- optional -->
                                <BaseUnit> <!-- optional -->
                                        <Name >STRTYPE</Name> <!-- required -->
                                        <Abbreviation >STRTYPE</Abbreviation> <!-- required -->
                                </BaseUnit>
                                <RelatedUnit> <!-- optional, may repeat -->
                                        <Name >STRTYPE</Name> <!-- required -->
                                        <Abbreviation >STRTYPE</Abbreviation> <!-- required -->
                                        <ConversionRatio >PRICETYPE</ConversionRatio> <!-- required -->
                                </RelatedUnit>
                                <DefaultUnit> <!-- optional, may repeat -->
                                        <!-- UnitUsedFor may have one of the following values: Purchase, Sales, Shipping -->
                                        <UnitUsedFor >ENUMTYPE</UnitUsedFor> <!-- required -->
                                        <Unit >STRTYPE</Unit> <!-- required -->
                                </DefaultUnit>
                        </UnitOfMeasureSetRet>
                        <ErrorRecovery> <!-- optional -->
                                <!-- BEGIN OR -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                <!-- OR -->
                                        <OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
                                <!-- OR -->
                                        <TxnID >IDTYPE</TxnID> <!-- optional -->
                                <!-- END OR -->
                                <TxnNumber >INTTYPE</TxnNumber> <!-- optional -->
                                <EditSequence >STRTYPE</EditSequence> <!-- optional -->
                                <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
                        </ErrorRecovery>
                </UnitOfMeasureSetAddRs>
        </QBXMLMsgsRq>
</QBXML>

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
'The following sample code is generated as an illustration of
'Creating requests and parsing responses ONLY
'This code is NOT intended to show best practices or ideal code
'Use at your most careful discretion

imports System
imports System.Net
imports System.Drawing
imports System.Collections
imports System.ComponentModel
imports System.Windows.Forms
imports System.Data
imports System.IO
imports Interop.QBFC16

Module com.intuit.idn.samples
        Public Class Sample
                Public Sub  DoUnitOfMeasureSetAdd()
                        Dim sessionBegun as Boolean
                        sessionBegun = False
                        Dim connectionOpen as Boolean
                        connectionOpen = False
                        Dim sessionManager as QBSessionManager
                        sessionManager = nothing

                        Try
                                'Create the session Manager object
                                sessionManager = new QBSessionManager

                                'Create the message set request object to hold our request
                                Dim requestMsgSet as IMsgSetRequest
                                requestMsgSet = sessionManager.CreateMsgSetRequest("US",16,0)
                                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue

                                BuildUnitOfMeasureSetAddRq(requestMsgSet)

                                'Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR")
                                connectionOpen = True
                                sessionManager.BeginSession("", ENOpenMode.omDontCare)
                                sessionBegun = True

                                'Send the request and get the response from QuickBooks
                                Dim responseMsgSet as IMsgSetResponse
                                responseMsgSet = sessionManager.DoRequests(requestMsgSet)

                                'End the session and close the connection to QuickBooks
                                sessionManager.EndSession()
                                sessionBegun = False
                                sessionManager.CloseConnection()
                                connectionOpen = False

                                WalkUnitOfMeasureSetAddRs(responseMsgSet)
                        Catch e as Exception
                                MessageBox.Show(e.Message, "Error")
                                if (sessionBegun) then
                                        sessionManager.EndSession()
                                End If
                                if (connectionOpen) then
                                        sessionManager.CloseConnection()
                                End If
                        End Try
                End Sub
                Public Sub BuildUnitOfMeasureSetAddRq(requestMsgSet as IMsgSetRequest)
                        Dim UnitOfMeasureSetAddRq as IUnitOfMeasureSetAdd
                        UnitOfMeasureSetAddRq= requestMsgSet.AppendUnitOfMeasureSetAddRq()
                        'Set field value for Name
                        UnitOfMeasureSetAddRq.Name.SetValue("ab")
                        'Set field value for IsActive
                        UnitOfMeasureSetAddRq.IsActive.SetValue(True)
                        'Set field value for UnitOfMeasureType
                        UnitOfMeasureSetAddRq.UnitOfMeasureType.SetValue(ENUnitOfMeasureType.uomtArea)
                        'Set field value for Name
                        UnitOfMeasureSetAddRq.BaseUnit.Name.SetValue("ab")
                        'Set field value for Abbreviation
                        UnitOfMeasureSetAddRq.BaseUnit.Abbreviation.SetValue("ab")
                        Dim RelatedUnit22907 as IRelatedUnit
                        RelatedUnit22907=UnitOfMeasureSetAddRq.RelatedUnitList.Append()
                        'Set field value for Name
                        RelatedUnit22907.Name.SetValue("ab")
                        'Set field value for Abbreviation
                        RelatedUnit22907.Abbreviation.SetValue("ab")
                        'Set field value for ConversionRatio
                        RelatedUnit22907.ConversionRatio.SetValue(15.65)
                        Dim DefaultUnit22908 as IDefaultUnit
                        DefaultUnit22908=UnitOfMeasureSetAddRq.DefaultUnitList.Append()
                        'Set field value for UnitUsedFor
                        DefaultUnit22908.UnitUsedFor.SetValue(ENUnitUsedFor.uufPurchase)
                        'Set field value for Unit
                        DefaultUnit22908.Unit.SetValue("ab")
                        'Set field value for IncludeRetElementList
                        'May create more than one of these if needed
                        UnitOfMeasureSetAddRq.IncludeRetElementList.Add("ab")
                End Sub




                Public Sub WalkUnitOfMeasureSetAddRs( responseMsgSet as IMsgSetResponse)
                        if (responseMsgSet is nothing) then
                                Exit Sub
                        End If

                        Dim responseList as IResponseList
                        responseList = responseMsgSet.ResponseList
                        if (responseList is nothing) then
                                Exit Sub
                        End If

                        'if we sent only one request, there is only one response, we'll walk the list for this sample
                        for j=0 to responseList.Count-1
                                Dim response as IResponse
                                response = responseList.GetAt(j)
                                'check the status code of the response, 0=ok, >0 is warning
                                if (response.StatusCode >= 0) then
                                        'the request-specific response is in the details, make sure we have some
                                        if (not response.Detail is nothing) then
                                                'make sure the response is the type we're expecting
                                                Dim responseType as ENResponseType
                                                responseType = CType(response.Type.GetValue(),ENResponseType)
                                                if (responseType == ENResponseType.rtUnitOfMeasureSetAddRs) then
                                                        'upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        Dim UnitOfMeasureSetRet as IUnitOfMeasureSetRet
                                                        UnitOfMeasureSetRet = CType(response.Detail,IUnitOfMeasureSetRet)
                                                        WalkUnitOfMeasureSetRet(UnitOfMeasureSetRet)
                                                End If
                                        End If
                                End If
                        Next j
                End Sub




                Public Sub WalkUnitOfMeasureSetRet(UnitOfMeasureSetRet as IUnitOfMeasureSetRet)
                        if (UnitOfMeasureSetRet is nothing) then
                                Exit Sub
                        End If

                        'Go through all the elements of IUnitOfMeasureSetRet
                        'Get value of ListID
                        if ( not UnitOfMeasureSetRet.ListID is nothing) then
                                Dim ListID22909 as String
                                ListID22909 = UnitOfMeasureSetRet.ListID.GetValue()
                        End If
                        'Get value of TimeCreated
                        if ( not UnitOfMeasureSetRet.TimeCreated is nothing) then
                                Dim TimeCreated22910 as DateTime
                                TimeCreated22910 = UnitOfMeasureSetRet.TimeCreated.GetValue()
                        End If
                        'Get value of TimeModified
                        if ( not UnitOfMeasureSetRet.TimeModified is nothing) then
                                Dim TimeModified22911 as DateTime
                                TimeModified22911 = UnitOfMeasureSetRet.TimeModified.GetValue()
                        End If
                        'Get value of EditSequence
                        if ( not UnitOfMeasureSetRet.EditSequence is nothing) then
                                Dim EditSequence22912 as String
                                EditSequence22912 = UnitOfMeasureSetRet.EditSequence.GetValue()
                        End If
                        'Get value of Name
                        if ( not UnitOfMeasureSetRet.Name is nothing) then
                                Dim Name22913 as String
                                Name22913 = UnitOfMeasureSetRet.Name.GetValue()
                        End If
                        'Get value of IsActive
                        if ( not UnitOfMeasureSetRet.IsActive is nothing) then
                                Dim IsActive22914 as Boolean
                                IsActive22914 = UnitOfMeasureSetRet.IsActive.GetValue()
                        End If
                        'Get value of UnitOfMeasureType
                        if ( not UnitOfMeasureSetRet.UnitOfMeasureType is nothing) then
                                Dim UnitOfMeasureType22915 as ENUnitOfMeasureType
                                UnitOfMeasureType22915 = UnitOfMeasureSetRet.UnitOfMeasureType.GetValue()
                        End If
                        if (not UnitOfMeasureSetRet.BaseUnit. is nothing) then
                                'Get value of Name
                                Dim Name22916 as String
                                Name22916 = UnitOfMeasureSetRet.BaseUnit.Name.GetValue()
                                'Get value of Abbreviation
                                Dim Abbreviation22917 as String
                                Abbreviation22917 = UnitOfMeasureSetRet.BaseUnit.Abbreviation.GetValue()
                        End If
                        if (not UnitOfMeasureSetRet.RelatedUnitList is nothing)
                                Dim i22918 as Integer
                                for i22918 = 0  to UnitOfMeasureSetRet.RelatedUnitList.Count - 1
                                        Dim RelatedUnit as IRelatedUnit
                                        RelatedUnit = UnitOfMeasureSetRet.RelatedUnitList.GetAt(i22918)
                                        'Get value of Name
                                        Dim Name22919 as String
                                        Name22919 = RelatedUnitName.GetValue()
                                        'Get value of Abbreviation
                                        Dim Abbreviation22920 as String
                                        Abbreviation22920 = RelatedUnitAbbreviation.GetValue()
                                        'Get value of ConversionRatio
                                        Dim ConversionRatio22921 as Double
                                        ConversionRatio22921 = RelatedUnitConversionRatio.GetValue()
                                Next i22918
                        End If
                        if (not UnitOfMeasureSetRet.DefaultUnitList is nothing)
                                Dim i22922 as Integer
                                for i22922 = 0  to UnitOfMeasureSetRet.DefaultUnitList.Count - 1
                                        Dim DefaultUnit as IDefaultUnit
                                        DefaultUnit = UnitOfMeasureSetRet.DefaultUnitList.GetAt(i22922)
                                        'Get value of UnitUsedFor
                                        Dim UnitUsedFor22923 as ENUnitUsedFor
                                        UnitUsedFor22923 = DefaultUnitUnitUsedFor.GetValue()
                                        'Get value of Unit
                                        Dim Unit22924 as String
                                        Unit22924 = DefaultUnitUnit.GetValue()
                                Next i22922
                        End If
                End Sub




        End Class
End Module

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
//The following sample code is generated as an illustration of
//Creating requests and parsing responses ONLY
//This code is NOT intended to show best practices or ideal code
//Use at your most careful discretion

using System;
using System.Net;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using Interop.QBFC16;

namespace com.intuit.idn.samples
{
        public class Sample
        {
                public void  DoUnitOfMeasureSetAdd()
                {
                        bool sessionBegun = false;
                        bool connectionOpen = false;
                        QBSessionManager sessionManager = null;

                        try
                        {
                                //Create the session Manager object
                                sessionManager = new QBSessionManager();

                                //Create the message set request object to hold our request
                                IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US",16,0);
                                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

                                BuildUnitOfMeasureSetAddRq(requestMsgSet);

                                //Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR");
                                connectionOpen = true;
                                sessionManager.BeginSession("", ENOpenMode.omDontCare);
                                sessionBegun = true;

                                //Send the request and get the response from QuickBooks
                                IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);

                                //End the session and close the connection to QuickBooks
                                sessionManager.EndSession();
                                sessionBegun = false;
                                sessionManager.CloseConnection();
                                connectionOpen = false;

                                WalkUnitOfMeasureSetAddRs(responseMsgSet);
                        }
                        catch (Exception e)
                        {
                                MessageBox.Show(e.Message, "Error");
                                if (sessionBegun)
                                {
                                        sessionManager.EndSession();
                                }
                                if (connectionOpen)
                                {
                                        sessionManager.CloseConnection();
                                }
                        }
                }
                void BuildUnitOfMeasureSetAddRq(IMsgSetRequest requestMsgSet)
                {
                        IUnitOfMeasureSetAdd UnitOfMeasureSetAddRq= requestMsgSet.AppendUnitOfMeasureSetAddRq();
                        //Set field value for Name
                        UnitOfMeasureSetAddRq.Name.SetValue("ab");
                        //Set field value for IsActive
                        UnitOfMeasureSetAddRq.IsActive.SetValue(true);
                        //Set field value for UnitOfMeasureType
                        UnitOfMeasureSetAddRq.UnitOfMeasureType.SetValue(ENUnitOfMeasureType.uomtArea);
                        //Set field value for Name
                        UnitOfMeasureSetAddRq.BaseUnit.Name.SetValue("ab");
                        //Set field value for Abbreviation
                        UnitOfMeasureSetAddRq.BaseUnit.Abbreviation.SetValue("ab");
                        IRelatedUnit RelatedUnit22889=UnitOfMeasureSetAddRq.RelatedUnitList.Append();
                        //Set field value for Name
                        RelatedUnit22889.Name.SetValue("ab");
                        //Set field value for Abbreviation
                        RelatedUnit22889.Abbreviation.SetValue("ab");
                        //Set field value for ConversionRatio
                        RelatedUnit22889.ConversionRatio.SetValue(15.65);
                        IDefaultUnit DefaultUnit22890=UnitOfMeasureSetAddRq.DefaultUnitList.Append();
                        //Set field value for UnitUsedFor
                        DefaultUnit22890.UnitUsedFor.SetValue(ENUnitUsedFor.uufPurchase);
                        //Set field value for Unit
                        DefaultUnit22890.Unit.SetValue("ab");
                        //Set field value for IncludeRetElementList
                        //May create more than one of these if needed
                        UnitOfMeasureSetAddRq.IncludeRetElementList.Add("ab");
                }




                void WalkUnitOfMeasureSetAddRs(IMsgSetResponse responseMsgSet)
                {
                        if (responseMsgSet == null) return;
                        IResponseList responseList = responseMsgSet.ResponseList;
                        if (responseList == null) return;
                        //if we sent only one request, there is only one response, we'll walk the list for this sample
                        for(int i=0; i < responseList.Count; i++)
                        {
                                IResponse response = responseList.GetAt(i);
                                //check the status code of the response, 0=ok, >0 is warning
                                if (response.StatusCode >= 0)
                                {
                                        //the request-specific response is in the details, make sure we have some
                                        if (response.Detail != null)
                                        {
                                                //make sure the response is the type we're expecting
                                                ENResponseType responseType = (ENResponseType)response.Type.GetValue();
                                                if (responseType == ENResponseType.rtUnitOfMeasureSetAddRs)
                                                {
                                                        //upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        IUnitOfMeasureSetRet UnitOfMeasureSetRet = (IUnitOfMeasureSetRet)response.Detail;
                                                        WalkUnitOfMeasureSetRet(UnitOfMeasureSetRet);
                                                }
                                        }
                                }
                        }
                }




                void WalkUnitOfMeasureSetRet(IUnitOfMeasureSetRet UnitOfMeasureSetRet)
                {
                        if (UnitOfMeasureSetRet == null) return;
                        //Go through all the elements of IUnitOfMeasureSetRet
                        //Get value of ListID
                        if (UnitOfMeasureSetRet.ListID != null)
                        {
                                string ListID22891 = (string)UnitOfMeasureSetRet.ListID.GetValue();
                        }
                        //Get value of TimeCreated
                        if (UnitOfMeasureSetRet.TimeCreated != null)
                        {
                                DateTime TimeCreated22892 = (DateTime)UnitOfMeasureSetRet.TimeCreated.GetValue();
                        }
                        //Get value of TimeModified
                        if (UnitOfMeasureSetRet.TimeModified != null)
                        {
                                DateTime TimeModified22893 = (DateTime)UnitOfMeasureSetRet.TimeModified.GetValue();
                        }
                        //Get value of EditSequence
                        if (UnitOfMeasureSetRet.EditSequence != null)
                        {
                                string EditSequence22894 = (string)UnitOfMeasureSetRet.EditSequence.GetValue();
                        }
                        //Get value of Name
                        if (UnitOfMeasureSetRet.Name != null)
                        {
                                string Name22895 = (string)UnitOfMeasureSetRet.Name.GetValue();
                        }
                        //Get value of IsActive
                        if (UnitOfMeasureSetRet.IsActive != null)
                        {
                                bool IsActive22896 = (bool)UnitOfMeasureSetRet.IsActive.GetValue();
                        }
                        //Get value of UnitOfMeasureType
                        if (UnitOfMeasureSetRet.UnitOfMeasureType != null)
                        {
                                ENUnitOfMeasureType UnitOfMeasureType22897 = (ENUnitOfMeasureType)UnitOfMeasureSetRet.UnitOfMeasureType.GetValue();
                        }
                        if (UnitOfMeasureSetRet.BaseUnit != null)
                        {
                                //Get value of Name
                                string Name22898 = (string)UnitOfMeasureSetRet.BaseUnit.Name.GetValue();
                                //Get value of Abbreviation
                                string Abbreviation22899 = (string)UnitOfMeasureSetRet.BaseUnit.Abbreviation.GetValue();
                        }
                        if (UnitOfMeasureSetRet.RelatedUnitList != null)
                        {
                                for (int i22900 = 0; i22900 < UnitOfMeasureSetRet.RelatedUnitList.Count; i22900++)
                                {
                                        IRelatedUnit RelatedUnit = UnitOfMeasureSetRet.RelatedUnitList.GetAt(i22900);
                                        //Get value of Name
                                        string Name22901 = (string)RelatedUnit.Name.GetValue();
                                        //Get value of Abbreviation
                                        string Abbreviation22902 = (string)RelatedUnit.Abbreviation.GetValue();
                                        //Get value of ConversionRatio
                                        double ConversionRatio22903 = (double)RelatedUnit.ConversionRatio.GetValue();
                                }
                        }
                        if (UnitOfMeasureSetRet.DefaultUnitList != null)
                        {
                                for (int i22904 = 0; i22904 < UnitOfMeasureSetRet.DefaultUnitList.Count; i22904++)
                                {
                                        IDefaultUnit DefaultUnit = UnitOfMeasureSetRet.DefaultUnitList.GetAt(i22904);
                                        //Get value of UnitUsedFor
                                        ENUnitUsedFor UnitUsedFor22905 = (ENUnitUsedFor)DefaultUnit.UnitUsedFor.GetValue();
                                        //Get value of Unit
                                        string Unit22906 = (string)DefaultUnit.Unit.GetValue();
                                }
                        }
                }




        }
}