TimeEntryMod

Modifies the specified time entry record for an employee.


Request

Response

XMLOPS

VB.NET

C#

Tag Type Max length Implementation Required

ITimeEntryMod

Modifies the specified time entry record for an employee.
    2.0  

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     Y

useMacro

You use a macro in a request message set if you need to create some object in one request, then refer to it in a subsequent request within that same message set. For example, you could create an inventory item and then include that item as a line item in a sales order all in one request message set, rather than create the item, query for it, then include it in a separate SalesOrderAdd request. In this latter case, you are accessing QBPOS three times, versus only once, using macros. The item to be referenced is specified via the defmacro. The actual reference to that item in the succeeding request is done via the use macro, as follows: ItemInventoryAdd defMacro=”ListID:Inv1” In the above line, you simply replace Inv1 with the name you want to give the macro. When you reference this macro in another request (one that requires that object’s listID) in the same message set, you use this syntax: ListID useMacro=”ListID:Inv1” This is covered in more detail in the Programming Guide.
IQBStringType   2.0  

ClockInTime

The date and time at which the employee clocked-in.
IQBDateTimeType      

ClockOutTime

The date and time at which the employee clocked out.
IQBDateTimeType      

CreatedBy

The person who created this time entry. It can be any value: QBPOS does not check this name against a list of employees or QBPOS user logins.
IQBStringType 40 chars    

EmployeeListID

The listID of the employee whose time is being tracked in this time entry. It must be either the list ID of a currently valid employee in the QBPOS company or the macro representing an employee that is being added to the QBPOS company in the current message set.
IQBIDType      

useMacro

You use a macro in a request message set if you need to create some object in one request, then refer to it in a subsequent request within that same message set. For example, you could create an inventory item and then include that item as a line item in a sales order all in one request message set, rather than create the item, query for it, then include it in a separate SalesOrderAdd request. In this latter case, you are accessing QBPOS three times, versus only once, using macros. The item to be referenced is specified via the defmacro. The actual reference to that item in the succeeding request is done via the use macro, as follows: ItemInventoryAdd defMacro=”ListID:Inv1” In the above line, you simply replace Inv1 with the name you want to give the macro. When you reference this macro in another request (one that requires that object’s listID) in the same message set, you use this syntax: ListID useMacro=”ListID:Inv1” This is covered in more detail in the Programming Guide.
IQBStringType   2.0  

StoreNumber

This is used only for multi-store versions of QBPOS. The value is between 1 and 10, since a maximum of 10 stores are currently supported.
IQBIntType      

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

Modifies the specified time entry record for an employee.
    2.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

ITimeEntryRet      

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      

ClockInTime

The date and time at which the employee clocked-in.
IQBDateTimeType      

ClockOutTime

The date and time at which the employee clocked out.
IQBDateTimeType      

CreatedBy

The person who created this time entry. It can be any value: QBPOS does not check this name against a list of employees or QBPOS user logins.
IQBStringType 40 chars    

EmployeeListID

The listID of the employee whose time is being tracked in this time entry. It must be either the list ID of a currently valid employee in the QBPOS company or the macro representing an employee that is being added to the QBPOS company in the current message set.
IQBIDType      

EmployeeLoginName

The name used by the employee to log into the QBPOS company.
IQBStringType 20 chars    

FirstName

The first name.
IQBStringType 30 chars    

LastName

The last name.
IQBStringType 30 chars    

StoreNumber

This is used only for multi-store versions of QBPOS. The value is between 1 and 10, since a maximum of 10 stores are currently supported.
IQBIntType      

QuickBooksFlag

This element is used only if QBPOS is being used with QuickBooks Financial Software. The value here displays the status of data export for a memo: NOT POSTED (not yet sent to QuickBooks), COMPLETE (sent to QuickBooks), or ERROR (attempting to send the memo to QuickBooks resulted in an error). Values: NotPosted, Completed, Error, UnbilledPurchases No default value.
IQBENQuickBooksFlagType   2.5  

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      

(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
<?xml version="1.0" encoding="utf-8"?>
<?qbposxml version="4.0"?>
<QBPOSXML>
        <QBPOSXMLMsgsRq onError="stopOnError">
                <TimeEntryModRq>
                        <TimeEntryMod> <!-- required -->
                                <ListID  useMacro="MACROTYPE">IDTYPE</ListID> <!-- required -->
                                <ClockInTime >DATETIMETYPE</ClockInTime> <!-- optional -->
                                <ClockOutTime >DATETIMETYPE</ClockOutTime> <!-- optional -->
                                <CreatedBy >STRTYPE</CreatedBy> <!-- optional -->
                                <EmployeeListID  useMacro="MACROTYPE">IDTYPE</EmployeeListID> <!-- optional -->
                                <StoreNumber >INTTYPE</StoreNumber> <!-- optional -->
                        </TimeEntryMod>
                        <IncludeRetElement >STRTYPE</IncludeRetElement> <!-- optional, may repeat -->
                </TimeEntryModRq>

                <TimeEntryModRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE">
                        <TimeEntryRet> <!-- optional -->
                                <ListID >IDTYPE</ListID> <!-- optional -->
                                <ClockInTime >DATETIMETYPE</ClockInTime> <!-- optional -->
                                <ClockOutTime >DATETIMETYPE</ClockOutTime> <!-- optional -->
                                <CreatedBy >STRTYPE</CreatedBy> <!-- optional -->
                                <EmployeeListID >IDTYPE</EmployeeListID> <!-- optional -->
                                <EmployeeLoginName >STRTYPE</EmployeeLoginName> <!-- optional -->
                                <FirstName >STRTYPE</FirstName> <!-- optional -->
                                <LastName >STRTYPE</LastName> <!-- optional -->
                                <StoreNumber >INTTYPE</StoreNumber> <!-- optional -->
                                <!-- QuickBooksFlag may have one of the following values: NotPosted, Completed, Error, UnbilledPurchases -->
                                <QuickBooksFlag >ENUMTYPE</QuickBooksFlag> <!-- 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>
                        </TimeEntryRet>
                </TimeEntryModRs>
        </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
'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 SampleTimeEntryMod
                Public Sub  DoTimeEntryMod()
                        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

                                BuildTimeEntryModRq(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

                                WalkTimeEntryModRs(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 BuildTimeEntryModRq(requestMsgSet as IMsgSetRequest)
                        Dim TimeEntryModRq as ITimeEntryMod
                        TimeEntryModRq= requestMsgSet.AppendTimeEntryModRq()
                        'Set field value for ListID
                        TimeEntryModRq.ListID.SetValue("200000-1011023419")
                        'Set attributes
                        'Set field value for ListID to use Macro
                        TimeEntryModRq.ListID.SetValueUseMacro("200000-1011023419")
                        'Set field value for ClockInTime
                        TimeEntryModRq.ClockInTime.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                        'Set field value for ClockOutTime
                        TimeEntryModRq.ClockOutTime.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                        'Set field value for CreatedBy
                        TimeEntryModRq.CreatedBy.SetValue("ab")
                        'Set field value for EmployeeListID
                        TimeEntryModRq.EmployeeListID.SetValue("200000-1011023419")
                        'Set attributes
                        'Set field value for EmployeeListID to use Macro
                        TimeEntryModRq.EmployeeListID.SetValueUseMacro("200000-1011023419")
                        'Set field value for StoreNumber
                        TimeEntryModRq.StoreNumber.SetValue(6)
                        'Set field value for IncludeRetElementList
                        'May create more than one of these if needed
                        TimeEntryModRq.IncludeRetElementList.Add("ab")
                End Sub




                Public Sub WalkTimeEntryModRs( 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.rtTimeEntryModRs) then
                                                        'upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        Dim TimeEntryRet as ITimeEntryRet
                                                        TimeEntryRet = CType(response.Detail,ITimeEntryRet)
                                                                WalkTimeEntryRet(TimeEntryRet)
                                                End If
                                        End If
                                End If
                        Next j
                End Sub




                Public Sub WalkTimeEntryRet(TimeEntryRet as ITimeEntryRet)
                        if (TimeEntryRet is nothing) then
                                Exit Sub
                        End If

                        'Go through all the elements of ITimeEntryRet
                        'Get value of ListID
                        if ( not TimeEntryRet.ListID is nothing) then
                                Dim ListID4267 as String
                                ListID4267 = TimeEntryRet.ListID.GetValue()
                        End If
                        'Get value of ClockInTime
                        if ( not TimeEntryRet.ClockInTime is nothing) then
                                Dim ClockInTime4268 as DateTime
                                ClockInTime4268 = TimeEntryRet.ClockInTime.GetValue()
                        End If
                        'Get value of ClockOutTime
                        if ( not TimeEntryRet.ClockOutTime is nothing) then
                                Dim ClockOutTime4269 as DateTime
                                ClockOutTime4269 = TimeEntryRet.ClockOutTime.GetValue()
                        End If
                        'Get value of CreatedBy
                        if ( not TimeEntryRet.CreatedBy is nothing) then
                                Dim CreatedBy4270 as String
                                CreatedBy4270 = TimeEntryRet.CreatedBy.GetValue()
                        End If
                        'Get value of EmployeeListID
                        if ( not TimeEntryRet.EmployeeListID is nothing) then
                                Dim EmployeeListID4271 as String
                                EmployeeListID4271 = TimeEntryRet.EmployeeListID.GetValue()
                        End If
                        'Get value of EmployeeLoginName
                        if ( not TimeEntryRet.EmployeeLoginName is nothing) then
                                Dim EmployeeLoginName4272 as String
                                EmployeeLoginName4272 = TimeEntryRet.EmployeeLoginName.GetValue()
                        End If
                        'Get value of FirstName
                        if ( not TimeEntryRet.FirstName is nothing) then
                                Dim FirstName4273 as String
                                FirstName4273 = TimeEntryRet.FirstName.GetValue()
                        End If
                        'Get value of LastName
                        if ( not TimeEntryRet.LastName is nothing) then
                                Dim LastName4274 as String
                                LastName4274 = TimeEntryRet.LastName.GetValue()
                        End If
                        'Get value of StoreNumber
                        if ( not TimeEntryRet.StoreNumber is nothing) then
                                Dim StoreNumber4275 as Integer
                                StoreNumber4275 = TimeEntryRet.StoreNumber.GetValue()
                        End If
                        'Get value of QuickBooksFlag
                        if ( not TimeEntryRet.QuickBooksFlag is nothing) then
                                Dim QuickBooksFlag4276 as ENQuickBooksFlag
                                QuickBooksFlag4276 = TimeEntryRet.QuickBooksFlag.GetValue()
                        End If
                        if (not TimeEntryRet.DataExtRetList is nothing)
                                Dim i4277 as Integer
                                for i4277 = 0  to TimeEntryRet.DataExtRetList.Count - 1
                                        Dim DataExtRet as IDataExtRet
                                        DataExtRet = TimeEntryRet.DataExtRetList.GetAt(i4277)
                                        'Get value of OwnerID
                                        Dim OwnerID4278 as String
                                        OwnerID4278 = DataExtRet.OwnerID.GetValue()
                                        'Get value of DataExtName
                                        Dim DataExtName4279 as String
                                        DataExtName4279 = DataExtRet.DataExtName.GetValue()
                                        'Get value of DataExtType
                                        Dim DataExtType4280 as ENDataExtType
                                        DataExtType4280 = DataExtRet.DataExtType.GetValue()
                                        'Get value of DataExtValue
                                        Dim DataExtValue4281 as String
                                        DataExtValue4281 = DataExtRet.DataExtValue.GetValue()
                                Next i4277
                        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
//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 SampleTimeEntryMod
        {
                public void  DoTimeEntryMod()
                {
                        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;

                                BuildTimeEntryModRq(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;

                                WalkTimeEntryModRs(responseMsgSet);
                        }
                        catch (Exception e)
                        {
                                MessageBox.Show(e.Message, "Error");
                                if (sessionBegun)
                                {
                                        sessionManager.EndSession();
                                }
                                if (connectionOpen)
                                {
                                        sessionManager.CloseConnection();
                                }
                        }
                }
                void BuildTimeEntryModRq(IMsgSetRequest requestMsgSet)
                {
                        ITimeEntryMod TimeEntryModRq= requestMsgSet.AppendTimeEntryModRq();
                        //Set field value for ListID
                        TimeEntryModRq.ListID.SetValue("200000-1011023419");
                        //Set attributes
                        //Set field value for ListID to use Macro
                        TimeEntryModRq.ListID.SetValueUseMacro("200000-1011023419");
                        //Set field value for ClockInTime
                        TimeEntryModRq.ClockInTime.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                        //Set field value for ClockOutTime
                        TimeEntryModRq.ClockOutTime.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                        //Set field value for CreatedBy
                        TimeEntryModRq.CreatedBy.SetValue("ab");
                        //Set field value for EmployeeListID
                        TimeEntryModRq.EmployeeListID.SetValue("200000-1011023419");
                        //Set attributes
                        //Set field value for EmployeeListID to use Macro
                        TimeEntryModRq.EmployeeListID.SetValueUseMacro("200000-1011023419");
                        //Set field value for StoreNumber
                        TimeEntryModRq.StoreNumber.SetValue(6);
                        //Set field value for IncludeRetElementList
                        //May create more than one of these if needed
                        TimeEntryModRq.IncludeRetElementList.Add("ab");
                }




                void WalkTimeEntryModRs(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.rtTimeEntryModRs)
                                                {
                                                        //upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        ITimeEntryRet TimeEntryRet = (ITimeEntryRet)response.Detail;
                                                                WalkTimeEntryRet(TimeEntryRet);
                                                }
                                        }
                                }
                        }
                }




                void WalkTimeEntryRet(ITimeEntryRet TimeEntryRet)
                {
                        if (TimeEntryRet == null) return;
                        //Go through all the elements of ITimeEntryRet
                        //Get value of ListID
                        if (TimeEntryRet.ListID != null)
                        {
                                string ListID4282 = (string)TimeEntryRet.ListID.GetValue();
                        }
                        //Get value of ClockInTime
                        if (TimeEntryRet.ClockInTime != null)
                        {
                                DateTime ClockInTime4283 = (DateTime)TimeEntryRet.ClockInTime.GetValue();
                        }
                        //Get value of ClockOutTime
                        if (TimeEntryRet.ClockOutTime != null)
                        {
                                DateTime ClockOutTime4284 = (DateTime)TimeEntryRet.ClockOutTime.GetValue();
                        }
                        //Get value of CreatedBy
                        if (TimeEntryRet.CreatedBy != null)
                        {
                                string CreatedBy4285 = (string)TimeEntryRet.CreatedBy.GetValue();
                        }
                        //Get value of EmployeeListID
                        if (TimeEntryRet.EmployeeListID != null)
                        {
                                string EmployeeListID4286 = (string)TimeEntryRet.EmployeeListID.GetValue();
                        }
                        //Get value of EmployeeLoginName
                        if (TimeEntryRet.EmployeeLoginName != null)
                        {
                                string EmployeeLoginName4287 = (string)TimeEntryRet.EmployeeLoginName.GetValue();
                        }
                        //Get value of FirstName
                        if (TimeEntryRet.FirstName != null)
                        {
                                string FirstName4288 = (string)TimeEntryRet.FirstName.GetValue();
                        }
                        //Get value of LastName
                        if (TimeEntryRet.LastName != null)
                        {
                                string LastName4289 = (string)TimeEntryRet.LastName.GetValue();
                        }
                        //Get value of StoreNumber
                        if (TimeEntryRet.StoreNumber != null)
                        {
                                int StoreNumber4290 = (int)TimeEntryRet.StoreNumber.GetValue();
                        }
                        //Get value of QuickBooksFlag
                        if (TimeEntryRet.QuickBooksFlag != null)
                        {
                                ENQuickBooksFlag QuickBooksFlag4291 = (ENQuickBooksFlag)TimeEntryRet.QuickBooksFlag.GetValue();
                        }
                        if (TimeEntryRet.DataExtRetList != null)
                        {
                                for (int i4292 = 0; i4292 < TimeEntryRet.DataExtRetList.Count; i4292++)
                                {
                                        IDataExtRet DataExtRet = TimeEntryRet.DataExtRetList.GetAt(i4292);
                                        //Get value of OwnerID
                                        string OwnerID4293 = (string)DataExtRet.OwnerID.GetValue();
                                        //Get value of DataExtName
                                        string DataExtName4294 = (string)DataExtRet.DataExtName.GetValue();
                                        //Get value of DataExtType
                                        ENDataExtType DataExtType4295 = (ENDataExtType)DataExtRet.DataExtType.GetValue();
                                        //Get value of DataExtValue
                                        string DataExtValue4296 = (string)DataExtRet.DataExtValue.GetValue();
                                }
                        }
                }




        }
}