DepartmentQuery

Retrieves the departments specified in the query filter criteria.


Request

Response

XMLOPS

VB.NET

C#

Tag Type Max length Implementation Required

IDepartmentQuery

Retrieves the departments specified in the query filter criteria.
       

metaData

This is used in a query to cause a count of query objects to be returned. You can specify that the count of query objects is to be returned with the returned objects, or you can specify that only a count and no data is returned. (The default is that no count is returned.) A common use of this feature is to specify a count with no data in order to determine how many objects to expect from the actual query. If you don’t want a query to return a count, either don’t use this feature, or specify the value NoMetaData. If you want only a count, specify the value MetaDataOnly. If you want data and a count, specify MetaDataAndResponseData. You should be aware that the count returned via this setting is not guaranteed to be exact: it could be off slightly due to new object creation or deletions.
IQBENmetaDataType   4.0|us.png|  

iterator

The iterator attribute provided with most query types also allows you to break down query results in smaller and more manageable chunks of data. An iterator results in responses that contain only the specified number of objects. Iterators are only valid for the application that starts them, and they are only valid for the current QuickBooks session.
IQBENiteratorType   5.0|us.png|  

iteratorID

The iterator query attribute is provided with most query types to allow you to break down query results into smaller and more manageable chunks of data. An iterator results in responses that contain only the specified number of objects. The iterator is created when a query contains the iterator attribute set to Start, along with a MaxReturn value specifying how many records are to be returned in each iteration. The response to that first query iteration contains, along with the response data, an IteratorID value that uniquely identifies that iterator. This is important because you can have many iterators active at the same time. Accordingly, in subsequent iterations of that query, you need to supply that returned iteratorID so the SDK knows where to resume the iteration.
IQBUUIDType   5.0|us.png|  

MaxReturned

This element is used for limiting the number of objects returned in the query to the number specified in MaxReturned. It is required if you use the Iterator attribute to iterate through large or potentially large query returns. When used with the Iterator, MaxReturned specifies the number of records returned in each iteration. It can be modified during the iteration. For details on the Iterator, please refer to the QBPOS SDK Programming Guide. A less optimal, but still possible way to use this element is as follows. You can use this element by itself to chunk up data, by initially using a range filter with the desired starting (From range) and ending range (To range). Then, in subsequent queries, leave the To range alone, but change the From range to coincide with the last object from the previous query.
IQBIntType      

OwnerIDList

The list of Owner IDs in the requests. An ownerID refers to the owner of a data extension:If OwnerID is 0, this is a public data extension. For example, if you intend to use this with a custom field that is supported in the UI, you must use an owner ID of 0.If OwnerID is a GUID, for example {6B063959-81B0-4622-85D6-F548C8CCB517}, this field is a private data extension defined by an integrated application. 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.
IGUIDList      

ListID

The unique ID returned by QBPOS for this object. If supplied in a request, the ListID is a reference to an object required in the request. For example, in a SalesOrder or PurchaseOrder line item, the ListID that is required is an Item list ID.
IQBIDType      

ORTimeCreatedFilters

IORTimeCreatedFilters   1.1  

TimeCreatedFilter

Filters by the object’s time created value.
ITimeCreatedFilter      

MatchNumericCriterion

Specifies how the specified numeric value will filter the target objects, that is, specifies the the comparison that will be used.
IQBENMatchNumericCriterionType     Y

TimeCreated

The timestamp indicating the time when this object was created in QBPOS.
IQBDateTimeType     Y

TimeCreatedRangeFilter

Filters by a range of time created values.
ITimeCreatedRangeFilter      

FromTimeCreated

The beginning of the range.
IQBDateTimeType     Y

ToTimeCreated

The end of the range.
IQBDateTimeType     Y

ORTimeModifiedFilters

IORTimeModifiedFilters      

TimeModifiedFilter

Searches for objects that were modified before, at, or after the specified time.
ITimeModifiedFilter      

MatchNumericCriterion

Specifies how the specified numeric value will filter the target objects, that is, specifies the the comparison that will be used.
IQBENMatchNumericCriterionType     Y

TimeModified

The time when the object was modified by QBPOS.
IQBDateTimeType     Y

TimeModifiedRangeFilter

Searches for objects that were modified within the specified time range.
ITimeModifiedRangeFilter      

FromTimeModified

First time value possible in the range.
IQBDateTimeType     Y

ToTimeModified

Last time value of the range.
IQBDateTimeType     Y

ORDefaultMarginPercentFilters

IORDefaultMarginPercentFilters      

DefaultMarginPercentFilter

Filters by the default margin percent for the object.
IDefaultMarginPercentFilter      

MatchNumericCriterion

Specifies how the specified numeric value will filter the target objects, that is, specifies the the comparison that will be used.
IQBENMatchNumericCriterionType     Y

DefaultMarginPercent

If you want, you can enter a default margin percentage for use with a pricing formula. If you do not wish QBPOS to calculate prices for new items as they are added to inventory, leave this field and the DefaultMarkupPercent field at 0.
IQBIntType     Y

DefaultMarginPercentRangeFilter

Specifies the target range of default margin values as the filter criteria.
IDefaultMarginPercentRangeFilter      

FromDefaultMarginPercent

The starting value in the range filter.
IQBIntType     Y

ToDefaultMarginPercent

Ending value in the filter range.
IQBIntType     Y

ORDepartmentCodeFilters

IORDepartmentCodeFilters      

DepartmentCodeFilter

Filters on the department code value.
IDepartmentCodeFilter      

MatchStringCriterion

This specifies which part of the string is being looked at.
IQBENMatchStringCriterionType     Y

DepartmentCode

Enter a unique 1-3 character code, identifying the department. The first character usually indicates the broadest classification. The department code can be used when defining an item in inventory.
IQBStringType 3 chars   Y

DepartmentCodeRangeFilter

Filters on the specified range of code value strings.
IDepartmentCodeRangeFilter      

FromDepartmentCode

Starting value in the code range.
IQBStringType 3 chars   Y

ToDepartmentCode

Last value in the code range.
IQBStringType 3 chars   Y

ORDepartmentNameFilters

IORDepartmentNameFilters      

DepartmentNameFilter

Used to filter departments by name string.
IDepartmentNameFilter      

MatchStringCriterion

This specifies which part of the string is being looked at.
IQBENMatchStringCriterionType     Y

DepartmentName

The name for the department.
IQBStringType 30 chars   Y

DepartmentNameRangeFilter

Used to search within a specified range of names.
IDepartmentNameRangeFilter      

FromDepartmentName

The starting value of the string range.
IQBStringType 30 chars   Y

ToDepartmentName

The ending value in the string range to be searched.
IQBStringType 30 chars   Y

StoreExchangeStatus

In multi store configurations, if the customer’s information has changed, this information is updated at the headquarters store. This response field indicates whether the information was successfully updated or not.
IQBENStoreExchangeStatusType      

TaxCode

In the QBPOS UI, you specify sales tax behavior by creating sales tax locations and tax codes. (What the QBPOS UI calls a “tax location” is what the SDK calls a “tax category”.) The tax code and its name is shared between all tax categories (locations): that is, all tax categories will have the same set of tax codes. However, the actual tax rate(s) that are used in a given tax code can vary from one tax category to the next. The tax code rates that are actually applied at transaction time are those that are in the tax category that is currently specified as the default tax category (location) in sales tax preferences. You create and modify tax categories and tax codes using the TaxCategoryAdd/Mod and TaxCodeAdd/Mod requests respectively. You assign tax code rates to a tax code within a tax category using the TaxRecordMod request. You query for the tax preference information (tax rate information for each tax code under each tax category) using the CompanyQuery. However, currently the default tax category (location) can be specified only within the QBPOS UI. When you create or modify an inventory item in QBPOS, you apply a tax code to it, but not a tax category. At sales transaction time, the actual sales tax is calculated for each item, based on the tax code assigned to that item and the tax code rate(s) for that tax code under the tax category currently specified as the default tax category (location).
IQBStringType      

IncludeRetElementList

You can use the IncludeRetElement feature to restrict the data returned in the response to the specified qbposXML field here. If you do this, only those elements specified will be returned. To use this feature, you simply add the qbposXML element name to the IncludeRetElementList. The following example shows how to do this, specifying that only the CreatedBy and ClockOutTime elements are to be returned in the TimeEntryAdd response: Dim MyTimeEntry As ITimeEntryAdd Set MyTimeEntry = requestMsgSet.AppendTimeEntryAddRq MyTimeEntry.IncludeRetElementList.Add “CreatedBy” MyTimeEntry.IncludeRetElementList.Add “ClockOutTime” ‘ set the other properties as desired…
IBSTRList 50 chars 2.0  
Tag Type Max length Implementation Required

IResponse

Retrieves the departments specified in the query filter criteria.
       

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

retCount

The retCount is returned in a query if in the query request you specified the metaData attribute with a value of MetaDataOnly (in which case the retCount is the only data returned in the query response) or MetaDataAndResponseData (the query response contains object data AND the approximate count). The retCount value contains the approximate count of the objects that could be expected to be returned from the query. A common use of this feature is to specify a count with no data in order to determine how many objects to expect from the actual query. You should be aware that the count returned in retCount is not guaranteed to be exact: it could be off slightly due to new object creation or deletions.
IQBIntType   4.0|us.png| Y

iteratorRemainingCount

This attribute is provided in the response in a query using iterators, indicating the number of objects remaining in the iteration. This can help you specify a MaxReturn value tailored to the number of objects still to be iterated through in your query.
IQBIntType   5.0|us.png| Y

iteratorID

The iterator query attribute is provided with most query types to allow you to break down query results into smaller and more manageable chunks of data. An iterator results in responses that contain only the specified number of objects. The iterator is created when a query contains the iterator attribute set to Start, along with a MaxReturn value specifying how many records are to be returned in each iteration. The response to that first query iteration contains, along with the response data, an IteratorID value that uniquely identifies that iterator. This is important because you can have many iterators active at the same time. Accordingly, in subsequent iterations of that query, you need to supply that returned iteratorID so the SDK knows where to resume the iteration.
IQBUUIDType   5.0|us.png| Y

Detail

IDepartmentRetList      

(List of IDepartmentRet Objects)

       

ListID

The unique ID returned by QBPOS for this object. If supplied in a request, the ListID is a reference to an object required in the request. For example, in a SalesOrder or PurchaseOrder line item, the ListID that is required is an Item list ID.
IQBIDType      

TimeCreated

The timestamp indicating the time when this object was created in QBPOS.
IQBDateTimeType   1.1  

TimeModified

The time when the object was modified by QBPOS.
IQBDateTimeType      

DefaultMarginPercent

If you want, you can enter a default margin percentage for use with a pricing formula. If you do not wish QBPOS to calculate prices for new items as they are added to inventory, leave this field and the DefaultMarkupPercent field at 0.
IQBIntType      

DefaultMarkupPercent

Instead of the default margin, you can use the markup percentage as an alternate way to display your desired profit margin, by marking up from item cost. Entering either a margin or a markup will display an automatic calculation in the other field.
IQBIntType      

DepartmentCode

Enter a unique 1-3 character code, identifying the department. The first character usually indicates the broadest classification. The department code can be used when defining an item in inventory.
IQBStringType 3 chars    

DepartmentName

The name for the department.
IQBStringType 30 chars    

StoreExchangeStatus

In multi store configurations, if the customer’s information has changed, this information is updated at the headquarters store. This response field indicates whether the information was successfully updated or not.
IQBENStoreExchangeStatusType      

TaxCode

In the QBPOS UI, you specify sales tax behavior by creating sales tax locations and tax codes. (What the QBPOS UI calls a “tax location” is what the SDK calls a “tax category”.) The tax code and its name is shared between all tax categories (locations): that is, all tax categories will have the same set of tax codes. However, the actual tax rate(s) that are used in a given tax code can vary from one tax category to the next. The tax code rates that are actually applied at transaction time are those that are in the tax category that is currently specified as the default tax category (location) in sales tax preferences. You create and modify tax categories and tax codes using the TaxCategoryAdd/Mod and TaxCodeAdd/Mod requests respectively. You assign tax code rates to a tax code within a tax category using the TaxRecordMod request. You query for the tax preference information (tax rate information for each tax code under each tax category) using the CompanyQuery. However, currently the default tax category (location) can be specified only within the QBPOS UI. When you create or modify an inventory item in QBPOS, you apply a tax code to it, but not a tax category. At sales transaction time, the actual sales tax is calculated for each item, based on the tax code assigned to that item and the tax code rate(s) for that tax code under the tax category currently specified as the default tax category (location).
IQBStringType      

DataExtRetList

If you specify any custom fields/private data extensions to be returned in the query request (in the OwnerIDList), then this Ret List will contain all of the data extensions that belong to each specified OwnerID. For example, if you specify an OwnerID value of 0 (custom fields), then the query will return all custom data for the returned records.
IDataExtRetList   1.2  

(List of IDataExtRet Objects)

       

OwnerID

OwnerID refers to the owner of a data extension, and must be 0 or a valid GUID. (Custom fields, which are visible in the QuickBooks UI, always have an OwnerID of 0. ) Usually you would keep your application’s GUID confidential to prevent other applications from accessing your data extensions. But if you want to share data extensions with another application, the applications need to use the same GUID. In this case, each application could use two GUIDs, one for shared data extensions and one for confidential data extensions. (An application can have any number of GUIDs.) When you share a 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     Y

DataExtName

The name of the data extension. If this is a custom field, DataExtName will be visible as a label in the QuickBooks user interface. Also because OwnerID and DataExtName together make the data extension unique, and because custom fields all have the same OwnerID of zero, the DataExtName must be a unique value among existing custom fields. In contrast, the DataExtName for private data extensions must be unique only for the specified OwnerID GUID.
IQBStringType     Y

DataExtType

b>DataExtType The type of the data extension.
IQBENDataExtTypeType     Y

DataExtValue

The data in this field. The maximum length of DataExtValue will depend on the DataExtType of this data extension. For example, if DataExtType is STR255TYPE, the maximum length of DataExtValue is 255 characters. If DataExtType is STR1024TYPE, the maximum size of DataExtValue is 1KB.
IQBStringType     Y

 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
<?xml version="1.0" encoding="utf-8"?>
<?qbposxml version="4.0"?>
<QBPOSXML>
        <QBPOSXMLMsgsRq onError="stopOnError">
                <DepartmentQueryRq metaData="ENUMTYPE" iterator="ENUMTYPE" iteratorID="UUIDTYPE">
                        <MaxReturned >INTTYPE</MaxReturned> <!-- optional -->
                        <OwnerID >GUIDTYPE</OwnerID> <!-- optional, may repeat -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <!-- BEGIN OR -->
                                <TimeCreatedFilter> <!-- optional -->
                                        <!-- MatchNumericCriterion may have one of the following values: LessThan, LessThanEqual, Equal, GreaterThan, GreaterThanEqual -->
                                        <MatchNumericCriterion >ENUMTYPE</MatchNumericCriterion> <!-- required -->
                                        <TimeCreated >DATETIMETYPE</TimeCreated> <!-- required -->
                                </TimeCreatedFilter>
                        <!-- OR -->
                                <TimeCreatedRangeFilter> <!-- optional -->
                                        <FromTimeCreated >DATETIMETYPE</FromTimeCreated> <!-- required -->
                                        <ToTimeCreated >DATETIMETYPE</ToTimeCreated> <!-- required -->
                                </TimeCreatedRangeFilter>
                        <!-- END OR -->
                        <!-- BEGIN OR -->
                                <TimeModifiedFilter> <!-- optional -->
                                        <!-- MatchNumericCriterion may have one of the following values: LessThan, LessThanEqual, Equal, GreaterThan, GreaterThanEqual -->
                                        <MatchNumericCriterion >ENUMTYPE</MatchNumericCriterion> <!-- required -->
                                        <TimeModified >DATETIMETYPE</TimeModified> <!-- required -->
                                </TimeModifiedFilter>
                        <!-- OR -->
                                <TimeModifiedRangeFilter> <!-- optional -->
                                        <FromTimeModified >DATETIMETYPE</FromTimeModified> <!-- required -->
                                        <ToTimeModified >DATETIMETYPE</ToTimeModified> <!-- required -->
                                </TimeModifiedRangeFilter>
                        <!-- END OR -->
                        <!-- BEGIN OR -->
                                <DefaultMarginPercentFilter> <!-- optional -->
                                        <!-- MatchNumericCriterion may have one of the following values: LessThan, LessThanEqual, Equal, GreaterThan, GreaterThanEqual -->
                                        <MatchNumericCriterion >ENUMTYPE</MatchNumericCriterion> <!-- required -->
                                        <DefaultMarginPercent >INTTYPE</DefaultMarginPercent> <!-- required -->
                                </DefaultMarginPercentFilter>
                        <!-- OR -->
                                <DefaultMarginPercentRangeFilter> <!-- optional -->
                                        <FromDefaultMarginPercent >INTTYPE</FromDefaultMarginPercent> <!-- required -->
                                        <ToDefaultMarginPercent >INTTYPE</ToDefaultMarginPercent> <!-- required -->
                                </DefaultMarginPercentRangeFilter>
                        <!-- END OR -->
                        <!-- BEGIN OR -->
                                <DepartmentCodeFilter> <!-- optional -->
                                        <!-- MatchStringCriterion may have one of the following values: Equal, StartsWith, Contains, EndsWith -->
                                        <MatchStringCriterion >ENUMTYPE</MatchStringCriterion> <!-- required -->
                                        <DepartmentCode >STRTYPE</DepartmentCode> <!-- required -->
                                </DepartmentCodeFilter>
                        <!-- OR -->
                                <DepartmentCodeRangeFilter> <!-- optional -->
                                        <FromDepartmentCode >STRTYPE</FromDepartmentCode> <!-- required -->
                                        <ToDepartmentCode >STRTYPE</ToDepartmentCode> <!-- required -->
                                </DepartmentCodeRangeFilter>
                        <!-- END OR -->
                        <!-- BEGIN OR -->
                                <DepartmentNameFilter> <!-- optional -->
                                        <!-- MatchStringCriterion may have one of the following values: Equal, StartsWith, Contains, EndsWith -->
                                        <MatchStringCriterion >ENUMTYPE</MatchStringCriterion> <!-- required -->
                                        <DepartmentName >STRTYPE</DepartmentName> <!-- required -->
                                </DepartmentNameFilter>
                        <!-- OR -->
                                <DepartmentNameRangeFilter> <!-- optional -->
                                        <FromDepartmentName >STRTYPE</FromDepartmentName> <!-- required -->
                                        <ToDepartmentName >STRTYPE</ToDepartmentName> <!-- required -->
                                </DepartmentNameRangeFilter>
                        <!-- END OR -->
                        <!-- StoreExchangeStatus may have one of the following values: Modified, Sent, Acknowledged -->
                        <StoreExchangeStatus >ENUMTYPE</StoreExchangeStatus> <!-- optional -->
                        <TaxCode >STRTYPE</TaxCode> <!-- optional -->
                        <IncludeRetElement >STRTYPE</IncludeRetElement> <!-- optional, may repeat -->
                </DepartmentQueryRq>

                <DepartmentQueryRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE" retCount="INTTYPE" iteratorRemainingCount="INTTYPE" iteratorID="UUIDTYPE">
                        <DepartmentRet> <!-- optional, may repeat -->
                                <ListID >IDTYPE</ListID> <!-- optional -->
                                <TimeCreated >DATETIMETYPE</TimeCreated> <!-- optional -->
                                <TimeModified >DATETIMETYPE</TimeModified> <!-- optional -->
                                <DefaultMarginPercent >INTTYPE</DefaultMarginPercent> <!-- optional -->
                                <DefaultMarkupPercent >INTTYPE</DefaultMarkupPercent> <!-- optional -->
                                <DepartmentCode >STRTYPE</DepartmentCode> <!-- optional -->
                                <DepartmentName >STRTYPE</DepartmentName> <!-- optional -->
                                <!-- StoreExchangeStatus may have one of the following values: Modified, Sent, Acknowledged -->
                                <StoreExchangeStatus >ENUMTYPE</StoreExchangeStatus> <!-- optional -->
                                <TaxCode >STRTYPE</TaxCode> <!-- optional -->
                                <DataExtRet> <!-- optional, may repeat -->
                                        <OwnerID >GUIDTYPE</OwnerID> <!-- required -->
                                        <DataExtName >STRTYPE</DataExtName> <!-- required -->
                                        <!-- DataExtType may have one of the following values: INTTYPE, AMTTYPE, PRICETYPE, QUANTYPE, PERCENTTYPE, DATETIMETYPE, STR255TYPE, STR1024TYPE -->
                                        <DataExtType >ENUMTYPE</DataExtType> <!-- required -->
                                        <DataExtValue >STRTYPE</DataExtValue> <!-- required -->
                                </DataExtRet>
                        </DepartmentRet>
                </DepartmentQueryRs>
        </QBPOSXMLMsgsRq>
</QBPOSXML>

  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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
'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.qbposfc4

        Public Class SampleDepartmentQuery
                Public Sub  DoDepartmentQuery()
                        Dim sessionBegun as Boolean
                        sessionBegun = False
                        Dim connectionOpen as Boolean
                        connectionOpen = False
                        Dim sessionManager as QBPOSSessionManager
                        sessionManager = nothing

                        Try
                                'Create the session Manager object
                                sessionManager = new QBPOSSessionManager

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

                                BuildDepartmentQueryRq(requestMsgSet)

                                'Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR")
                                connectionOpen = True
                                sessionManager.BeginSession("")
                                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

                                WalkDepartmentQueryRs(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 BuildDepartmentQueryRq(requestMsgSet as IMsgSetRequest)
                        Dim DepartmentQueryRq as IDepartmentQuery
                        DepartmentQueryRq= requestMsgSet.AppendDepartmentQueryRq()
                        'Set field value for MaxReturned
                        DepartmentQueryRq.MaxReturned.SetValue(6)
                        'Set field value for OwnerIDList
                        'May create more than one of these if needed
                        DepartmentQueryRq.OwnerIDList.Add(System.Guid.NewGuid().ToString())
                        'Set field value for ListID
                        DepartmentQueryRq.ListID.SetValue("200000-1011023419")
                        Dim ORTimeCreatedFiltersElementType659 as String
                        ORTimeCreatedFiltersElementType659 = "TimeCreatedFilter"
                        if (ORTimeCreatedFiltersElementType659 = "TimeCreatedFilter") then
                                'Set field value for MatchNumericCriterion
                                DepartmentQueryRq.ORTimeCreatedFilters.TimeCreatedFilter.MatchNumericCriterion.SetValue(ENMatchNumericCriterion.mncLessThan)
                                'Set field value for TimeCreated
                                DepartmentQueryRq.ORTimeCreatedFilters.TimeCreatedFilter.TimeCreated.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                        End If
                        if (ORTimeCreatedFiltersElementType659 = "TimeCreatedRangeFilter") then
                                'Set field value for FromTimeCreated
                                DepartmentQueryRq.ORTimeCreatedFilters.TimeCreatedRangeFilter.FromTimeCreated.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                                'Set field value for ToTimeCreated
                                DepartmentQueryRq.ORTimeCreatedFilters.TimeCreatedRangeFilter.ToTimeCreated.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                        End If
                        Dim ORTimeModifiedFiltersElementType660 as String
                        ORTimeModifiedFiltersElementType660 = "TimeModifiedFilter"
                        if (ORTimeModifiedFiltersElementType660 = "TimeModifiedFilter") then
                                'Set field value for MatchNumericCriterion
                                DepartmentQueryRq.ORTimeModifiedFilters.TimeModifiedFilter.MatchNumericCriterion.SetValue(ENMatchNumericCriterion.mncLessThan)
                                'Set field value for TimeModified
                                DepartmentQueryRq.ORTimeModifiedFilters.TimeModifiedFilter.TimeModified.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                        End If
                        if (ORTimeModifiedFiltersElementType660 = "TimeModifiedRangeFilter") then
                                'Set field value for FromTimeModified
                                DepartmentQueryRq.ORTimeModifiedFilters.TimeModifiedRangeFilter.FromTimeModified.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                                'Set field value for ToTimeModified
                                DepartmentQueryRq.ORTimeModifiedFilters.TimeModifiedRangeFilter.ToTimeModified.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                        End If
                        Dim ORDefaultMarginPercentFiltersElementType661 as String
                        ORDefaultMarginPercentFiltersElementType661 = "DefaultMarginPercentFilter"
                        if (ORDefaultMarginPercentFiltersElementType661 = "DefaultMarginPercentFilter") then
                                'Set field value for MatchNumericCriterion
                                DepartmentQueryRq.ORDefaultMarginPercentFilters.DefaultMarginPercentFilter.MatchNumericCriterion.SetValue(ENMatchNumericCriterion.mncLessThan)
                                'Set field value for DefaultMarginPercent
                                DepartmentQueryRq.ORDefaultMarginPercentFilters.DefaultMarginPercentFilter.DefaultMarginPercent.SetValue(6)
                        End If
                        if (ORDefaultMarginPercentFiltersElementType661 = "DefaultMarginPercentRangeFilter") then
                                'Set field value for FromDefaultMarginPercent
                                DepartmentQueryRq.ORDefaultMarginPercentFilters.DefaultMarginPercentRangeFilter.FromDefaultMarginPercent.SetValue(6)
                                'Set field value for ToDefaultMarginPercent
                                DepartmentQueryRq.ORDefaultMarginPercentFilters.DefaultMarginPercentRangeFilter.ToDefaultMarginPercent.SetValue(6)
                        End If
                        Dim ORDepartmentCodeFiltersElementType662 as String
                        ORDepartmentCodeFiltersElementType662 = "DepartmentCodeFilter"
                        if (ORDepartmentCodeFiltersElementType662 = "DepartmentCodeFilter") then
                                'Set field value for MatchStringCriterion
                                DepartmentQueryRq.ORDepartmentCodeFilters.DepartmentCodeFilter.MatchStringCriterion.SetValue(ENMatchStringCriterion.mscEqual)
                                'Set field value for DepartmentCode
                                DepartmentQueryRq.ORDepartmentCodeFilters.DepartmentCodeFilter.DepartmentCode.SetValue("ab")
                        End If
                        if (ORDepartmentCodeFiltersElementType662 = "DepartmentCodeRangeFilter") then
                                'Set field value for FromDepartmentCode
                                DepartmentQueryRq.ORDepartmentCodeFilters.DepartmentCodeRangeFilter.FromDepartmentCode.SetValue("ab")
                                'Set field value for ToDepartmentCode
                                DepartmentQueryRq.ORDepartmentCodeFilters.DepartmentCodeRangeFilter.ToDepartmentCode.SetValue("ab")
                        End If
                        Dim ORDepartmentNameFiltersElementType663 as String
                        ORDepartmentNameFiltersElementType663 = "DepartmentNameFilter"
                        if (ORDepartmentNameFiltersElementType663 = "DepartmentNameFilter") then
                                'Set field value for MatchStringCriterion
                                DepartmentQueryRq.ORDepartmentNameFilters.DepartmentNameFilter.MatchStringCriterion.SetValue(ENMatchStringCriterion.mscEqual)
                                'Set field value for DepartmentName
                                DepartmentQueryRq.ORDepartmentNameFilters.DepartmentNameFilter.DepartmentName.SetValue("ab")
                        End If
                        if (ORDepartmentNameFiltersElementType663 = "DepartmentNameRangeFilter") then
                                'Set field value for FromDepartmentName
                                DepartmentQueryRq.ORDepartmentNameFilters.DepartmentNameRangeFilter.FromDepartmentName.SetValue("ab")
                                'Set field value for ToDepartmentName
                                DepartmentQueryRq.ORDepartmentNameFilters.DepartmentNameRangeFilter.ToDepartmentName.SetValue("ab")
                        End If
                        'Set field value for StoreExchangeStatus
                        DepartmentQueryRq.StoreExchangeStatus.SetValue(ENStoreExchangeStatus.sesModified)
                        'Set field value for TaxCode
                        DepartmentQueryRq.TaxCode.SetValue("ab")
                        'Set field value for IncludeRetElementList
                        'May create more than one of these if needed
                        DepartmentQueryRq.IncludeRetElementList.Add("ab")
                End Sub




                Public Sub WalkDepartmentQueryRs( 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.rtDepartmentQueryRs) then
                                                        'upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        Dim DepartmentRet as IDepartmentRetList
                                                        DepartmentRet = CType(response.Detail,IDepartmentRetList)
                                                        for z=0 to DepartmentRet.Count-1
                                                                WalkDepartmentRet(DepartmentRet.GetAt(z))
                                                        Next z
                                                End If
                                        End If
                                End If
                        Next j
                End Sub




                Public Sub WalkDepartmentRet(DepartmentRet as IDepartmentRet)
                        if (DepartmentRet is nothing) then
                                Exit Sub
                        End If

                        'Go through all the elements of IDepartmentRetList
                        'Get value of ListID
                        if ( not DepartmentRet.ListID is nothing) then
                                Dim ListID664 as String
                                ListID664 = DepartmentRet.ListID.GetValue()
                        End If
                        'Get value of TimeCreated
                        if ( not DepartmentRet.TimeCreated is nothing) then
                                Dim TimeCreated665 as DateTime
                                TimeCreated665 = DepartmentRet.TimeCreated.GetValue()
                        End If
                        'Get value of TimeModified
                        if ( not DepartmentRet.TimeModified is nothing) then
                                Dim TimeModified666 as DateTime
                                TimeModified666 = DepartmentRet.TimeModified.GetValue()
                        End If
                        'Get value of DefaultMarginPercent
                        if ( not DepartmentRet.DefaultMarginPercent is nothing) then
                                Dim DefaultMarginPercent667 as Integer
                                DefaultMarginPercent667 = DepartmentRet.DefaultMarginPercent.GetValue()
                        End If
                        'Get value of DefaultMarkupPercent
                        if ( not DepartmentRet.DefaultMarkupPercent is nothing) then
                                Dim DefaultMarkupPercent668 as Integer
                                DefaultMarkupPercent668 = DepartmentRet.DefaultMarkupPercent.GetValue()
                        End If
                        'Get value of DepartmentCode
                        if ( not DepartmentRet.DepartmentCode is nothing) then
                                Dim DepartmentCode669 as String
                                DepartmentCode669 = DepartmentRet.DepartmentCode.GetValue()
                        End If
                        'Get value of DepartmentName
                        if ( not DepartmentRet.DepartmentName is nothing) then
                                Dim DepartmentName670 as String
                                DepartmentName670 = DepartmentRet.DepartmentName.GetValue()
                        End If
                        'Get value of StoreExchangeStatus
                        if ( not DepartmentRet.StoreExchangeStatus is nothing) then
                                Dim StoreExchangeStatus671 as ENStoreExchangeStatus
                                StoreExchangeStatus671 = DepartmentRet.StoreExchangeStatus.GetValue()
                        End If
                        'Get value of TaxCode
                        if ( not DepartmentRet.TaxCode is nothing) then
                                Dim TaxCode672 as String
                                TaxCode672 = DepartmentRet.TaxCode.GetValue()
                        End If
                        if (not DepartmentRet.DataExtRetList is nothing)
                                Dim i673 as Integer
                                for i673 = 0  to DepartmentRet.DataExtRetList.Count - 1
                                        Dim DataExtRet as IDataExtRet
                                        DataExtRet = DepartmentRet.DataExtRetList.GetAt(i673)
                                        'Get value of OwnerID
                                        Dim OwnerID674 as String
                                        OwnerID674 = DataExtRet.OwnerID.GetValue()
                                        'Get value of DataExtName
                                        Dim DataExtName675 as String
                                        DataExtName675 = DataExtRet.DataExtName.GetValue()
                                        'Get value of DataExtType
                                        Dim DataExtType676 as ENDataExtType
                                        DataExtType676 = DataExtRet.DataExtType.GetValue()
                                        'Get value of DataExtValue
                                        Dim DataExtValue677 as String
                                        DataExtValue677 = DataExtRet.DataExtValue.GetValue()
                                Next i673
                        End If
                End Sub




        End Class

  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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
//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.qbposfc4;

namespace com.intuit.idn.samples
{
        public class SampleDepartmentQuery
        {
                public void  DoDepartmentQuery()
                {
                        bool sessionBegun = false;
                        bool connectionOpen = false;
                        QBPOSSessionManager sessionManager = null;

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

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

                                BuildDepartmentQueryRq(requestMsgSet);

                                //Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR");
                                connectionOpen = true;
                                sessionManager.BeginSession("");
                                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;

                                WalkDepartmentQueryRs(responseMsgSet);
                        }
                        catch (Exception e)
                        {
                                MessageBox.Show(e.Message, "Error");
                                if (sessionBegun)
                                {
                                        sessionManager.EndSession();
                                }
                                if (connectionOpen)
                                {
                                        sessionManager.CloseConnection();
                                }
                        }
                }
                void BuildDepartmentQueryRq(IMsgSetRequest requestMsgSet)
                {
                        IDepartmentQuery DepartmentQueryRq= requestMsgSet.AppendDepartmentQueryRq();
                        //Set attributes
                        //Set field value for metaData
                        DepartmentQueryRq.metaData.SetValue(ENmetaData.mdMetaDataAndResponseData);
                        //Set field value for iterator
                        DepartmentQueryRq.iterator.SetValue(ENiterator.itStart);
                        //Set field value for iteratorID
                        DepartmentQueryRq.iteratorID.SetValue("{D7355385-A17B-4f5d-B34D-F34C79C3E6FC}");
                        //Set field value for MaxReturned
                        DepartmentQueryRq.MaxReturned.SetValue(6);
                        //Set field value for OwnerIDList
                        //May create more than one of these if needed
                        DepartmentQueryRq.OwnerIDList.Add(Guid.NewGuid().ToString());
                        //Set field value for ListID
                        DepartmentQueryRq.ListID.SetValue("200000-1011023419");
                        string ORTimeCreatedFiltersElementType678 = "TimeCreatedFilter";
                        if (ORTimeCreatedFiltersElementType678 == "TimeCreatedFilter")
                        {
                                //Set field value for MatchNumericCriterion
                                DepartmentQueryRq.ORTimeCreatedFilters.TimeCreatedFilter.MatchNumericCriterion.SetValue(ENMatchNumericCriterion.mncLessThan);
                                //Set field value for TimeCreated
                                DepartmentQueryRq.ORTimeCreatedFilters.TimeCreatedFilter.TimeCreated.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                        }
                        if (ORTimeCreatedFiltersElementType678 == "TimeCreatedRangeFilter")
                        {
                                //Set field value for FromTimeCreated
                                DepartmentQueryRq.ORTimeCreatedFilters.TimeCreatedRangeFilter.FromTimeCreated.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                                //Set field value for ToTimeCreated
                                DepartmentQueryRq.ORTimeCreatedFilters.TimeCreatedRangeFilter.ToTimeCreated.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                        }
                        string ORTimeModifiedFiltersElementType679 = "TimeModifiedFilter";
                        if (ORTimeModifiedFiltersElementType679 == "TimeModifiedFilter")
                        {
                                //Set field value for MatchNumericCriterion
                                DepartmentQueryRq.ORTimeModifiedFilters.TimeModifiedFilter.MatchNumericCriterion.SetValue(ENMatchNumericCriterion.mncLessThan);
                                //Set field value for TimeModified
                                DepartmentQueryRq.ORTimeModifiedFilters.TimeModifiedFilter.TimeModified.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                        }
                        if (ORTimeModifiedFiltersElementType679 == "TimeModifiedRangeFilter")
                        {
                                //Set field value for FromTimeModified
                                DepartmentQueryRq.ORTimeModifiedFilters.TimeModifiedRangeFilter.FromTimeModified.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                                //Set field value for ToTimeModified
                                DepartmentQueryRq.ORTimeModifiedFilters.TimeModifiedRangeFilter.ToTimeModified.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                        }
                        string ORDefaultMarginPercentFiltersElementType680 = "DefaultMarginPercentFilter";
                        if (ORDefaultMarginPercentFiltersElementType680 == "DefaultMarginPercentFilter")
                        {
                                //Set field value for MatchNumericCriterion
                                DepartmentQueryRq.ORDefaultMarginPercentFilters.DefaultMarginPercentFilter.MatchNumericCriterion.SetValue(ENMatchNumericCriterion.mncLessThan);
                                //Set field value for DefaultMarginPercent
                                DepartmentQueryRq.ORDefaultMarginPercentFilters.DefaultMarginPercentFilter.DefaultMarginPercent.SetValue(6);
                        }
                        if (ORDefaultMarginPercentFiltersElementType680 == "DefaultMarginPercentRangeFilter")
                        {
                                //Set field value for FromDefaultMarginPercent
                                DepartmentQueryRq.ORDefaultMarginPercentFilters.DefaultMarginPercentRangeFilter.FromDefaultMarginPercent.SetValue(6);
                                //Set field value for ToDefaultMarginPercent
                                DepartmentQueryRq.ORDefaultMarginPercentFilters.DefaultMarginPercentRangeFilter.ToDefaultMarginPercent.SetValue(6);
                        }
                        string ORDepartmentCodeFiltersElementType681 = "DepartmentCodeFilter";
                        if (ORDepartmentCodeFiltersElementType681 == "DepartmentCodeFilter")
                        {
                                //Set field value for MatchStringCriterion
                                DepartmentQueryRq.ORDepartmentCodeFilters.DepartmentCodeFilter.MatchStringCriterion.SetValue(ENMatchStringCriterion.mscEqual);
                                //Set field value for DepartmentCode
                                DepartmentQueryRq.ORDepartmentCodeFilters.DepartmentCodeFilter.DepartmentCode.SetValue("ab");
                        }
                        if (ORDepartmentCodeFiltersElementType681 == "DepartmentCodeRangeFilter")
                        {
                                //Set field value for FromDepartmentCode
                                DepartmentQueryRq.ORDepartmentCodeFilters.DepartmentCodeRangeFilter.FromDepartmentCode.SetValue("ab");
                                //Set field value for ToDepartmentCode
                                DepartmentQueryRq.ORDepartmentCodeFilters.DepartmentCodeRangeFilter.ToDepartmentCode.SetValue("ab");
                        }
                        string ORDepartmentNameFiltersElementType682 = "DepartmentNameFilter";
                        if (ORDepartmentNameFiltersElementType682 == "DepartmentNameFilter")
                        {
                                //Set field value for MatchStringCriterion
                                DepartmentQueryRq.ORDepartmentNameFilters.DepartmentNameFilter.MatchStringCriterion.SetValue(ENMatchStringCriterion.mscEqual);
                                //Set field value for DepartmentName
                                DepartmentQueryRq.ORDepartmentNameFilters.DepartmentNameFilter.DepartmentName.SetValue("ab");
                        }
                        if (ORDepartmentNameFiltersElementType682 == "DepartmentNameRangeFilter")
                        {
                                //Set field value for FromDepartmentName
                                DepartmentQueryRq.ORDepartmentNameFilters.DepartmentNameRangeFilter.FromDepartmentName.SetValue("ab");
                                //Set field value for ToDepartmentName
                                DepartmentQueryRq.ORDepartmentNameFilters.DepartmentNameRangeFilter.ToDepartmentName.SetValue("ab");
                        }
                        //Set field value for StoreExchangeStatus
                        DepartmentQueryRq.StoreExchangeStatus.SetValue(ENStoreExchangeStatus.sesModified);
                        //Set field value for TaxCode
                        DepartmentQueryRq.TaxCode.SetValue("ab");
                        //Set field value for IncludeRetElementList
                        //May create more than one of these if needed
                        DepartmentQueryRq.IncludeRetElementList.Add("ab");
                }




                void WalkDepartmentQueryRs(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.rtDepartmentQueryRs)
                                                {
                                                        //upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        IDepartmentRetList DepartmentRet = (IDepartmentRetList)response.Detail;
                                                        for(int z=0; z < DepartmentRet.Count; z++)
                                                        {
                                                                WalkDepartmentRet(DepartmentRet.GetAt(z));
                                                        }
                                                }
                                        }
                                }
                        }
                }




                void WalkDepartmentRet(IDepartmentRet DepartmentRet)
                {
                        if (DepartmentRet == null) return;
                        //Go through all the elements of IDepartmentRetList
                        //Get value of ListID
                        if (DepartmentRet.ListID != null)
                        {
                                string ListID683 = (string)DepartmentRet.ListID.GetValue();
                        }
                        //Get value of TimeCreated
                        if (DepartmentRet.TimeCreated != null)
                        {
                                DateTime TimeCreated684 = (DateTime)DepartmentRet.TimeCreated.GetValue();
                        }
                        //Get value of TimeModified
                        if (DepartmentRet.TimeModified != null)
                        {
                                DateTime TimeModified685 = (DateTime)DepartmentRet.TimeModified.GetValue();
                        }
                        //Get value of DefaultMarginPercent
                        if (DepartmentRet.DefaultMarginPercent != null)
                        {
                                int DefaultMarginPercent686 = (int)DepartmentRet.DefaultMarginPercent.GetValue();
                        }
                        //Get value of DefaultMarkupPercent
                        if (DepartmentRet.DefaultMarkupPercent != null)
                        {
                                int DefaultMarkupPercent687 = (int)DepartmentRet.DefaultMarkupPercent.GetValue();
                        }
                        //Get value of DepartmentCode
                        if (DepartmentRet.DepartmentCode != null)
                        {
                                string DepartmentCode688 = (string)DepartmentRet.DepartmentCode.GetValue();
                        }
                        //Get value of DepartmentName
                        if (DepartmentRet.DepartmentName != null)
                        {
                                string DepartmentName689 = (string)DepartmentRet.DepartmentName.GetValue();
                        }
                        //Get value of StoreExchangeStatus
                        if (DepartmentRet.StoreExchangeStatus != null)
                        {
                                ENStoreExchangeStatus StoreExchangeStatus690 = (ENStoreExchangeStatus)DepartmentRet.StoreExchangeStatus.GetValue();
                        }
                        //Get value of TaxCode
                        if (DepartmentRet.TaxCode != null)
                        {
                                string TaxCode691 = (string)DepartmentRet.TaxCode.GetValue();
                        }
                        if (DepartmentRet.DataExtRetList != null)
                        {
                                for (int i692 = 0; i692 < DepartmentRet.DataExtRetList.Count; i692++)
                                {
                                        IDataExtRet DataExtRet = DepartmentRet.DataExtRetList.GetAt(i692);
                                        //Get value of OwnerID
                                        string OwnerID693 = (string)DataExtRet.OwnerID.GetValue();
                                        //Get value of DataExtName
                                        string DataExtName694 = (string)DataExtRet.DataExtName.GetValue();
                                        //Get value of DataExtType
                                        ENDataExtType DataExtType695 = (ENDataExtType)DataExtRet.DataExtType.GetValue();
                                        //Get value of DataExtValue
                                        string DataExtValue696 = (string)DataExtRet.DataExtValue.GetValue();
                                }
                        }
                }




        }
}