Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A CustomerTypeRef aggregate refers to one of the types on the CustomerType list. In a request, if a CustomerTypeRef aggregate includes both FullName and ListID, FullName will be ignored.
Request
Response
XMLOps
VB.NET
C#
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 | <?xml version="1.0" encoding="utf-8"?> <?qbxml version="16.0"?> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <CustomerTypeAddRq> <CustomerTypeAdd> <!-- required --> <Name >STRTYPE</Name> <!-- required --> <IsActive >BOOLTYPE</IsActive> <!-- optional --> <ParentRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </ParentRef> </CustomerTypeAdd> <IncludeRetElement >STRTYPE</IncludeRetElement> <!-- optional, may repeat --> </CustomerTypeAddRq> <CustomerTypeAddRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE"> <CustomerTypeRet> <!-- optional --> <ListID >IDTYPE</ListID> <!-- required --> <TimeCreated >DATETIMETYPE</TimeCreated> <!-- required --> <TimeModified >DATETIMETYPE</TimeModified> <!-- required --> <EditSequence >STRTYPE</EditSequence> <!-- required --> <Name >STRTYPE</Name> <!-- required --> <FullName >STRTYPE</FullName> <!-- required --> <IsActive >BOOLTYPE</IsActive> <!-- optional --> <ParentRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </ParentRef> <Sublevel >INTTYPE</Sublevel> <!-- required --> </CustomerTypeRet> <ErrorRecovery> <!-- optional --> <!-- BEGIN OR --> <ListID >IDTYPE</ListID> <!-- optional --> <!-- OR --> <OwnerID >GUIDTYPE</OwnerID> <!-- optional --> <!-- OR --> <TxnID >IDTYPE</TxnID> <!-- optional --> <!-- END OR --> <TxnNumber >INTTYPE</TxnNumber> <!-- optional --> <EditSequence >STRTYPE</EditSequence> <!-- optional --> <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional --> </ErrorRecovery> </CustomerTypeAddRs> </QBXMLMsgsRq> </QBXML> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | 'The following sample code is generated as an illustration of 'Creating requests and parsing responses ONLY 'This code is NOT intended to show best practices or ideal code 'Use at your most careful discretion imports System imports System.Net imports System.Drawing imports System.Collections imports System.ComponentModel imports System.Windows.Forms imports System.Data imports System.IO imports Interop.QBFC16 Module com.intuit.idn.samples Public Class Sample Public Sub DoCustomerTypeAdd() Dim sessionBegun as Boolean sessionBegun = False Dim connectionOpen as Boolean connectionOpen = False Dim sessionManager as QBSessionManager sessionManager = nothing Try 'Create the session Manager object sessionManager = new QBSessionManager 'Create the message set request object to hold our request Dim requestMsgSet as IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US",16,0) requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue BuildCustomerTypeAddRq(requestMsgSet) 'Connect to QuickBooks and begin a session sessionManager.OpenConnection("","Sample Code from OSR") connectionOpen = True sessionManager.BeginSession("", ENOpenMode.omDontCare) sessionBegun = True 'Send the request and get the response from QuickBooks Dim responseMsgSet as IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet) 'End the session and close the connection to QuickBooks sessionManager.EndSession() sessionBegun = False sessionManager.CloseConnection() connectionOpen = False WalkCustomerTypeAddRs(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 BuildCustomerTypeAddRq(requestMsgSet as IMsgSetRequest) Dim CustomerTypeAddRq as ICustomerTypeAdd CustomerTypeAddRq= requestMsgSet.AppendCustomerTypeAddRq() 'Set field value for Name CustomerTypeAddRq.Name.SetValue("ab") 'Set field value for IsActive CustomerTypeAddRq.IsActive.SetValue(True) 'Set field value for ListID CustomerTypeAddRq.ParentRef.ListID.SetValue("200000-1011023419") 'Set field value for FullName CustomerTypeAddRq.ParentRef.FullName.SetValue("ab") 'Set field value for IncludeRetElementList 'May create more than one of these if needed CustomerTypeAddRq.IncludeRetElementList.Add("ab") End Sub Public Sub WalkCustomerTypeAddRs( 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.rtCustomerTypeAddRs) then 'upcast to more specific type here, this is safe because we checked with response.Type check above Dim CustomerTypeRet as ICustomerTypeRet CustomerTypeRet = CType(response.Detail,ICustomerTypeRet) WalkCustomerTypeRet(CustomerTypeRet) End If End If End If Next j End Sub Public Sub WalkCustomerTypeRet(CustomerTypeRet as ICustomerTypeRet) if (CustomerTypeRet is nothing) then Exit Sub End If 'Go through all the elements of ICustomerTypeRet 'Get value of ListID Dim ListID7777 as String ListID7777 = CustomerTypeRet.ListID.GetValue() 'Get value of TimeCreated Dim TimeCreated7778 as DateTime TimeCreated7778 = CustomerTypeRet.TimeCreated.GetValue() 'Get value of TimeModified Dim TimeModified7779 as DateTime TimeModified7779 = CustomerTypeRet.TimeModified.GetValue() 'Get value of EditSequence Dim EditSequence7780 as String EditSequence7780 = CustomerTypeRet.EditSequence.GetValue() 'Get value of Name Dim Name7781 as String Name7781 = CustomerTypeRet.Name.GetValue() 'Get value of FullName Dim FullName7782 as String FullName7782 = CustomerTypeRet.FullName.GetValue() 'Get value of IsActive if ( not CustomerTypeRet.IsActive is nothing) then Dim IsActive7783 as Boolean IsActive7783 = CustomerTypeRet.IsActive.GetValue() End If if (not CustomerTypeRet.ParentRef. is nothing) then 'Get value of ListID if ( not CustomerTypeRet.ParentRef.ListID is nothing) then Dim ListID7784 as String ListID7784 = CustomerTypeRet.ParentRef.ListID.GetValue() End If 'Get value of FullName if ( not CustomerTypeRet.ParentRef.FullName is nothing) then Dim FullName7785 as String FullName7785 = CustomerTypeRet.ParentRef.FullName.GetValue() End If End If 'Get value of Sublevel Dim Sublevel7786 as Integer Sublevel7786 = CustomerTypeRet.Sublevel.GetValue() End Sub End Class End Module |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | //The following sample code is generated as an illustration of //Creating requests and parsing responses ONLY //This code is NOT intended to show best practices or ideal code //Use at your most careful discretion using System; using System.Net; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; using Interop.QBFC16; namespace com.intuit.idn.samples { public class Sample { public void DoCustomerTypeAdd() { bool sessionBegun = false; bool connectionOpen = false; QBSessionManager sessionManager = null; try { //Create the session Manager object sessionManager = new QBSessionManager(); //Create the message set request object to hold our request IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US",16,0); requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue; BuildCustomerTypeAddRq(requestMsgSet); //Connect to QuickBooks and begin a session sessionManager.OpenConnection("","Sample Code from OSR"); connectionOpen = true; sessionManager.BeginSession("", ENOpenMode.omDontCare); sessionBegun = true; //Send the request and get the response from QuickBooks IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet); //End the session and close the connection to QuickBooks sessionManager.EndSession(); sessionBegun = false; sessionManager.CloseConnection(); connectionOpen = false; WalkCustomerTypeAddRs(responseMsgSet); } catch (Exception e) { MessageBox.Show(e.Message, "Error"); if (sessionBegun) { sessionManager.EndSession(); } if (connectionOpen) { sessionManager.CloseConnection(); } } } void BuildCustomerTypeAddRq(IMsgSetRequest requestMsgSet) { ICustomerTypeAdd CustomerTypeAddRq= requestMsgSet.AppendCustomerTypeAddRq(); //Set field value for Name CustomerTypeAddRq.Name.SetValue("ab"); //Set field value for IsActive CustomerTypeAddRq.IsActive.SetValue(true); //Set field value for ListID CustomerTypeAddRq.ParentRef.ListID.SetValue("200000-1011023419"); //Set field value for FullName CustomerTypeAddRq.ParentRef.FullName.SetValue("ab"); //Set field value for IncludeRetElementList //May create more than one of these if needed CustomerTypeAddRq.IncludeRetElementList.Add("ab"); } void WalkCustomerTypeAddRs(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.rtCustomerTypeAddRs) { //upcast to more specific type here, this is safe because we checked with response.Type check above ICustomerTypeRet CustomerTypeRet = (ICustomerTypeRet)response.Detail; WalkCustomerTypeRet(CustomerTypeRet); } } } } } void WalkCustomerTypeRet(ICustomerTypeRet CustomerTypeRet) { if (CustomerTypeRet == null) return; //Go through all the elements of ICustomerTypeRet //Get value of ListID string ListID7767 = (string)CustomerTypeRet.ListID.GetValue(); //Get value of TimeCreated DateTime TimeCreated7768 = (DateTime)CustomerTypeRet.TimeCreated.GetValue(); //Get value of TimeModified DateTime TimeModified7769 = (DateTime)CustomerTypeRet.TimeModified.GetValue(); //Get value of EditSequence string EditSequence7770 = (string)CustomerTypeRet.EditSequence.GetValue(); //Get value of Name string Name7771 = (string)CustomerTypeRet.Name.GetValue(); //Get value of FullName string FullName7772 = (string)CustomerTypeRet.FullName.GetValue(); //Get value of IsActive if (CustomerTypeRet.IsActive != null) { bool IsActive7773 = (bool)CustomerTypeRet.IsActive.GetValue(); } if (CustomerTypeRet.ParentRef != null) { //Get value of ListID if (CustomerTypeRet.ParentRef.ListID != null) { string ListID7774 = (string)CustomerTypeRet.ParentRef.ListID.GetValue(); } //Get value of FullName if (CustomerTypeRet.ParentRef.FullName != null) { string FullName7775 = (string)CustomerTypeRet.ParentRef.FullName.GetValue(); } } //Get value of Sublevel int Sublevel7776 = (int)CustomerTypeRet.Sublevel.GetValue(); } } } |