Deletes all subscriptions that (a) match the specified SubscriberID, and (b) were originally created using the same qbXML spec version as the one used to make the subscription delete request. That is, if you make a qbXML 4.0 subscription delete, you will only delete subscriptions with the specified SubscriberID that were originally made with qbXML 4.0! To delete subscriptions made with qbXML 5.0, your subscription delete must itself use qbXML 5.0.
The subscriberID you supply to this request is the one that was used to make the original event subscription, and which should have been written down by the person who made the subscription. (There is no way to get the SubscriberID if you don’t already know it.)
For details about the UI-extension feature, see Integrating with the QuickBooks UI.
This request must be invoked using the request processor method ProcessSubscription(), if you use qbXML. If you use QBFC, this request must be appended to an ISubscriptionMsgSetRequest object instantiated by the QBSessionManager method CreateSubscriptionMsgSetRequest() and invoked by the method DoSubscriptionRequests().
Request
Response
XMLOps
VB.NET
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?xml version="1.0" encoding="utf-8"?> <?qbxml version="16.0"?> <QBXML> <QBXMLSubscriptionMsgsRq onError="stopOnError"> <SubscriptionDelRq> <SubscriberID >GUIDTYPE</SubscriberID> <!-- required --> <!-- SubscriptionType may have one of the following values: Data, UI, UIExtension --> <SubscriptionType >ENUMTYPE</SubscriptionType> <!-- required --> </SubscriptionDelRq> <SubscriptionDelRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE"> </SubscriptionDelRs> </QBXMLSubscriptionMsgsRq> </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 | '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 DoSubscriptionDel() 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 ISubscriptionMsgSetRequest requestMsgSet = sessionManager.CreateSubscriptionMsgSetRequest("US",16,0) BuildSubscriptionDelRq(requestMsgSet) 'Connect to QuickBooks and begin a session sessionManager.OpenConnection("","Sample Code from OSR") connectionOpen = True ' Send subscription request to QuickBooks. ' Please note that you don't need to call BeginSession. ' The subscriptions will be propagated to all the company files ' that are opened from this computer. 'Send the request and get the response from QuickBooks Dim responseMsgSet as ISubscriptionMsgSetResponse responseMsgSet = sessionManager.DoSubscriptionRequests(requestMsgSet) 'Close the connection to QuickBooks sessionManager.CloseConnection() connectionOpen = False WalkSubscriptionDelRs(responseMsgSet) Catch e as Exception MessageBox.Show(e.Message, "Error") if (connectionOpen) then sessionManager.CloseConnection() End If End Try End Sub Public Sub BuildSubscriptionDelRq(requestMsgSet as ISubscriptionMsgSetRequest) Dim SubscriptionDelRq as ISubscriptionDel SubscriptionDelRq= requestMsgSet.AppendSubscriptionDelRq() 'Set field value for SubscriberID SubscriptionDelRq.SubscriberID.SetValue(System.Guid.NewGuid().ToString()) 'Set field value for SubscriptionType SubscriptionDelRq.SubscriptionType.SetValue(ENSubscriptionType.stData) End Sub Public Sub WalkSubscriptionDelRs( responseMsgSet as ISubscriptionMsgSetResponse) 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.rtSubscriptionDelRs) then End If End If End If Next j 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 | //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 DoSubscriptionDel() { 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 ISubscriptionMsgSetRequest requestMsgSet = sessionManager.CreateSubscriptionMsgSetRequest("US",16,0); BuildSubscriptionDelRq(requestMsgSet); //Connect to QuickBooks and begin a session sessionManager.OpenConnection("","Sample Code from OSR"); connectionOpen = true; //Send the request and get the response from QuickBooks ISubscriptionMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet); //End the session and close the connection to QuickBooks sessionManager.CloseConnection(); connectionOpen = false; WalkSubscriptionDelRs(responseMsgSet); } catch (Exception e) { MessageBox.Show(e.Message, "Error"); if (connectionOpen) { sessionManager.CloseConnection(); } } } void BuildSubscriptionDelRq(ISubscriptionMsgSetRequest requestMsgSet) { ISubscriptionDel SubscriptionDelRq= requestMsgSet.AppendSubscriptionDelRq(); //Set field value for SubscriberID SubscriptionDelRq.SubscriberID.SetValue(Guid.NewGuid().ToString()); //Set field value for SubscriptionType SubscriptionDelRq.SubscriptionType.SetValue(ENSubscriptionType.stData); } void WalkSubscriptionDelRs(ISubscriptionMsgSetResponse 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.rtSubscriptionDelRs) { } } } } } } } |