If it helps, here is the API request and response definitions
**REQUEST**
POST /6478_c29eaffe-ec17-4e73-b8ed-04a04eabb0b2/appfxwebservice.asmx HTTP/1.1
Host: altrurig04bo3.blackbaudhosting.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "Blackbaud.AppFx.WebService.API.1/AdHocQueryProcess"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AdHocQueryProcessRequest AdHocQueryID="guid" OriginalAdHocQueryID="guid" QueryViewID="guid" MaxRecords="int" DoReturnData="boolean" SuppressDuplicateRows="boolean" BypassRecordCount="boolean" SuppressPrimaryKeyField="boolean" ContextRecordID="string" Start="int" Limit="int" SearchText="string" IncludeSecuritySQL="boolean" ProcessForListBuilder="boolean" xmlns="Blackbaud.AppFx.WebService.API.1">
<SelectFields>
<f ObjectName="string" ColumnName="string" ParentPath="string" DisplayPath="string" AliasName="string" AggregateType="None or Count or Sum or Min or Max or Average" IsIDSetField="boolean" DataListFilterOperator="EqualTo or NotEqualTo or GreaterThan or GreaterThanOrEqualTo or LessThan or LessThanOrEqualTo or OneOf or NotOneOf or Between or NotBetween or IsLike or NotLike or BeginsWith or DoesNotBeginWith or Contains or DoesNotContain or SoundsLike or Under or NotUnder" SmartQueryFilterOperator="EqualTo or NotEqualTo or GreaterThan or GreaterThanOrEqualTo or LessThan or LessThanOrEqualTo or OneOf or NotOneOf or Between or NotBetween or IsLike or NotLike or BeginsWith or DoesNotBeginWith or Contains or DoesNotContain or SoundsLike or Under or NotUnder" IsHidden="boolean">
<IDSetFieldInfo>
<ID>guid</ID>
</IDSetFieldInfo>
</f>
<f ObjectName="string" ColumnName="string" ParentPath="string" DisplayPath="string" AliasName="string" AggregateType="None or Count or Sum or Min or Max or Average" IsIDSetField="boolean" DataListFilterOperator="EqualTo or NotEqualTo or GreaterThan or GreaterThanOrEqualTo or LessThan or LessThanOrEqualTo or OneOf or NotOneOf or Between or NotBetween or IsLike or NotLike or BeginsWith or DoesNotBeginWith or Contains or DoesNotContain or SoundsLike or Under or NotUnder" SmartQueryFilterOperator="EqualTo or NotEqualTo or GreaterThan or GreaterThanOrEqualTo or LessThan or LessThanOrEqualTo or OneOf or NotOneOf or Between or NotBetween or IsLike or NotLike or BeginsWith or DoesNotBeginWith or Contains or DoesNotContain or SoundsLike or Under or NotUnder" IsHidden="boolean">
<IDSetFieldInfo>
<ID>guid</ID>
</IDSetFieldInfo>
</f>
</SelectFields>
<FilterFields>
<f ObjectName="string" ColumnName="string" ParentPath="string" DisplayPath="string" IsIDSetField="boolean" FilterOperator="IsEqualTo or IsNotEqualTo or IsOneOf or IsNotOneOf or IsLessThan or IsLessThanOrEqualTo or IsGreaterThan or IsGreaterThanOrEqualTo or IsBetween or IsNotBetween or IsLike or IsNotLike or IsBlank or IsNotBlank or BeginsWith or DoesNotBeginWith or Contains or DoesNotContain or SoundsLike or Under or NotUnder" CompareType="None or And or Or" UseLeftParenthesis="boolean" UseRightParenthesis="boolean" LeftParenthesisCount="int" RightParenthesisCount="int" IncludeBlanks="boolean" ValueIsOutputField="boolean" MeetsAllCriteria="boolean" MeetsNoneOfTheCriteria="boolean" MeetsNoneOfTheCriteriaNotEqualTo="boolean" IncludeCurrentNode="boolean" DataMartLastRefresh="dateTime">
<IDSetFieldInfo>
<ID>guid</ID>
</IDSetFieldInfo>
<DateFilterTypes>
<QueryDateFilterType>SpecificDate or Today or Yesterday or Tomorrow or ThisWeek or LastWeek or NextWeek or ThisMonth or LastMonth or NextMonth or MonthToDate or ThisQuarter or LastQuarter or NextQuarter or QuarterToDate or ThisCalendarYear or LastCalendarYear or NextCalendarYear or CalendarYearToDate or RollingDate</QueryDateFilterType>
<QueryDateFilterType>SpecificDate or Today or Yesterday or Tomorrow or ThisWeek or LastWeek or NextWeek or ThisMonth or LastMonth or NextMonth or MonthToDate or ThisQuarter or LastQuarter or NextQuarter or QuarterToDate or ThisCalendarYear or LastCalendarYear or NextCalendarYear or CalendarYearToDate or RollingDate</QueryDateFilterType>
</DateFilterTypes>
<FuzzyDateFilterTypes>
<QueryFuzzyDateFilterType>FuzzyDate or ThisMonth or LastMonth or NextMonth or ThisCalendarYear or LastCalendarYear or NextCalendarYear or January or February or March or April or May or June or July or August or September or October or November or December or TodayAnyYear or YesterdayAnyYear or TomorrowAnyYear</QueryFuzzyDateFilterType>
<QueryFuzzyDateFilterType>FuzzyDate or ThisMonth or LastMonth or NextMonth or ThisCalendarYear or LastCalendarYear or NextCalendarYear or January or February or March or April or May or June or July or August or September or October or November or December or TodayAnyYear or YesterdayAnyYear or TomorrowAnyYear</QueryFuzzyDateFilterType>
</FuzzyDateFilterTypes>
<MonthDayFilterTypes>
<QueryMonthDayFilterType>MonthDay or ThisMonth or LastMonth or NextMonth or January or February or March or April or May or June or July or August or September or October or November or December</QueryMonthDayFilterType>
<QueryMonthDayFilterType>MonthDay or ThisMonth or LastMonth or NextMonth or January or February or March or April or May or June or July or August or September or October or November or December</QueryMonthDayFilterType>
</MonthDayFilterTypes>
<Values>
<v>string</v>
<v>string</v>
</Values>
<TranslatedValues>
<v>string</v>
<v>string</v>
</TranslatedValues>
<DataType>String or Integer or Long or TinyInt or Date or Money or Decimal or Boolean or Guid or XML or FuzzyDate or MonthDay or EmailAddress or WebAddress or Binary or SmallInt or HourMinute or Year or DateWithTimeOffset or Time</DataType>
</f>
<f ObjectName="string" ColumnName="string" ParentPath="string" DisplayPath="string" IsIDSetField="boolean" FilterOperator="IsEqualTo or IsNotEqualTo or IsOneOf or IsNotOneOf or IsLessThan or IsLessThanOrEqualTo or IsGreaterThan or IsGreaterThanOrEqualTo or IsBetween or IsNotBetween or IsLike or IsNotLike or IsBlank or IsNotBlank or BeginsWith or DoesNotBeginWith or Contains or DoesNotContain or SoundsLike or Under or NotUnder" CompareType="None or And or Or" UseLeftParenthesis="boolean" UseRightParenthesis="boolean" LeftParenthesisCount="int" RightParenthesisCount="int" IncludeBlanks="boolean" ValueIsOutputField="boolean" MeetsAllCriteria="boolean" MeetsNoneOfTheCriteria="boolean" MeetsNoneOfTheCriteriaNotEqualTo="boolean" IncludeCurrentNode="boolean" DataMartLastRefresh="dateTime">
<IDSetFieldInfo>
<ID>guid</ID>
</IDSetFieldInfo>
<DateFilterTypes>
<QueryDateFilterType>SpecificDate or Today or Yesterday or Tomorrow or ThisWeek or LastWeek or NextWeek or ThisMonth or LastMonth or NextMonth or MonthToDate or ThisQuarter or LastQuarter or NextQuarter or QuarterToDate or ThisCalendarYear or LastCalendarYear or NextCalendarYear or CalendarYearToDate or RollingDate</QueryDateFilterType>
<QueryDateFilterType>SpecificDate or Today or Yesterday or Tomorrow or ThisWeek or LastWeek or NextWeek or ThisMonth or LastMonth or NextMonth or MonthToDate or ThisQuarter or LastQuarter or NextQuarter or QuarterToDate or ThisCalendarYear or LastCalendarYear or NextCalendarYear or CalendarYearToDate or RollingDate</QueryDateFilterType>
</DateFilterTypes>
<FuzzyDateFilterTypes>
<QueryFuzzyDateFilterType>FuzzyDate or ThisMonth or LastMonth or NextMonth or ThisCalendarYear or LastCalendarYear or NextCalendarYear or January or February or March or April or May or June or July or August or September or October or November or December or TodayAnyYear or YesterdayAnyYear or TomorrowAnyYear</QueryFuzzyDateFilterType>
<QueryFuzzyDateFilterType>FuzzyDate or ThisMonth or LastMonth or NextMonth or ThisCalendarYear or LastCalendarYear or NextCalendarYear or January or February or March or April or May or June or July or August or September or October or November or December or TodayAnyYear or YesterdayAnyYear or TomorrowAnyYear</QueryFuzzyDateFilterType>
</FuzzyDateFilterTypes>
<MonthDayFilterTypes>
<QueryMonthDayFilterType>MonthDay or ThisMonth or LastMonth or NextMonth or January or February or March or April or May or June or July or August or September or October or November or December</QueryMonthDayFilterType>
<QueryMonthDayFilterType>MonthDay or ThisMonth or LastMonth or NextMonth or January or February or March or April or May or June or July or August or September or October or November or December</QueryMonthDayFilterType>
</MonthDayFilterTypes>
<Values>
<v>string</v>
<v>string</v>
</Values>
<TranslatedValues>
<v>string</v>
<v>string</v>
</TranslatedValues>
<DataType>String or Integer or Long or TinyInt or Date or Money or Decimal or Boolean or Guid or XML or FuzzyDate or MonthDay or EmailAddress or WebAddress or Binary or SmallInt or HourMinute or Year or DateWithTimeOffset or Time</DataType>
</f>
</FilterFields>
<SortFields>
<f AliasName="string" FieldName="string" SortOrder="Ascending or Descending" />
<f AliasName="string" FieldName="string" SortOrder="Ascending or Descending" />
</SortFields>
<GroupFilterFields>
<f AggregateType="None or Count or Sum or Min or Max or Average" />
<f AggregateType="None or Count or Sum or Min or Max or Average" />
</GroupFilterFields>
<SecurityContext>
<SecurityFeatureID>guid</SecurityFeatureID>
<SecurityFeatureType>None or Form or DataList or RecordOperation or BusinessProcess or Dashboard or SearchList or SimpleDataList or Task or SmartQuery or AdHocQueryView or BatchType or AddCodeTableEntry or UpdateCodeTableEntry or DeleteCodeTableEntry or Batch or BatchTemplate or Kpi or MergeTask or SmartField or GlobalChange or ReportParameter or SystemPrivilege or ConfigurationData or BatchTemplateCustomize or BatchProcessor or Page or MapEntity or ExportDefinition</SecurityFeatureType>
<RecordContext>
<RecordID>string</RecordID>
<RecordType>string</RecordType>
</RecordContext>
<AttributeContext>
<AttributeCategoryID>string</AttributeCategoryID>
</AttributeContext>
</SecurityContext>
<DeferredResultKey>guid</DeferredResultKey>
<Parameters>
<Values xmlns="bb_appfx_dataforms">
<fv ID="string">
<Value />
<ValueTranslation>string</ValueTranslation>
</fv>
<fv ID="string">
<Value />
<ValueTranslation>string</ValueTranslation>
</fv>
</Values>
</Parameters>
<CancelID>string</CancelID>
</AdHocQueryProcessRequest>
</soap:Body>
</soap:Envelope>
**RESPONSE**
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<ResponseErrorHeader xmlns="Blackbaud.AppFx.WebService.API.1">
<Name>string</Name>
<ErrorCode>GeneralError or AccessDenied or InvalidAppDatabaseName or InvalidRequest or BadWebConfig or DbTransactionOutOfSync or DbConnectionError or DataFormError or BadMetaData or ServiceExecutionError or BusinessProcessError or InvalidAPIUse or DatabaseRevisionMismatch or InvalidSiteInfoID or InvalidProductIsHash or ProductListNotLoaded or TimeoutError or ApplicationUserInactive or UnlinkableWSFederationClaim or AppUserAlreadyLinkedToWSFederationClaim or UnlinkableDuplicateEmailAddress</ErrorCode>
<ErrorText>string</ErrorText>
<ExceptionDetails>string</ExceptionDetails>
<RootRequestName>string</RootRequestName>
<RequestProcessorName>string</RequestProcessorName>
<DataFormErrorInfo>
<ErrorCode>GeneralError or InvalidFieldID or InsufficientFields or InvalidFieldValue or ConcurrencyViolation or RecordNotFound or BBPSGatewayProcessingFailure</ErrorCode>
<ErrorMsg>string</ErrorMsg>
<InvalidFieldID>string</InvalidFieldID>
<InvalidFieldReason>RequiredFldMissing or DataTooLong or InvalidDataFormat or ValueGreaterThanMax or ValueLessThanMin or DataNotUnique or InvalidCodeTableEntry or DBForeignKeyFailure or DBConstraintFailure or CustomException</InvalidFieldReason>
<InvalidFormID>guid</InvalidFormID>
<InvalidFieldCollectionFieldID>string</InvalidFieldCollectionFieldID>
<InvalidFieldPath>string</InvalidFieldPath>
<SQLErrorInfo WasRethrownByStandardHandler="boolean">
<ErrorMessage>string</ErrorMessage>
<ErrorNumber>int</ErrorNumber>
<Severity>int</Severity>
<State>int</State>
<Procedure>string</Procedure>
<LineNumber>int</LineNumber>
<ReThrowingProcedure>string</ReThrowingProcedure>
<IsConcurrencyError>boolean</IsConcurrencyError>
<IsRecordSecurityPermissionError>boolean</IsRecordSecurityPermissionError>
<Instance>int</Instance>
</SQLErrorInfo>
</DataFormErrorInfo>
</ResponseErrorHeader>
</soap:Header>
<soap:Body>
<AdHocQueryProcessReply RecordTypeID="guid" xmlns="Blackbaud.AppFx.WebService.API.1">
<Sql>string</Sql>
<SecuritySql>
<string>string</string>
<string>string</string>
</SecuritySql>
<Output Name="string" HadMoreResults="boolean" RowCount="int" LastUpdated="dateTime">
<Fields>
<f Name="string" DataType="String or Integer or Long or TinyInt or Date or Money or Decimal or Boolean or Guid or XML or FuzzyDate or MonthDay or EmailAddress or WebAddress or Binary or SmallInt or HourMinute or Year or DateWithTimeOffset or Time" IsPrimaryKey="boolean" AllowMonthDayOnFuzzyDate="boolean" IsHidden="boolean" Format="string" FieldID="string" CurrencyFieldID="string" UniqueName="string" IsImageKey="boolean" />
<f Name="string" DataType="String or Integer or Long or TinyInt or Date or Money or Decimal or Boolean or Guid or XML or FuzzyDate or MonthDay or EmailAddress or WebAddress or Binary or SmallInt or HourMinute or Year or DateWithTimeOffset or Time" IsPrimaryKey="boolean" AllowMonthDayOnFuzzyDate="boolean" IsHidden="boolean" Format="string" FieldID="string" CurrencyFieldID="string" UniqueName="string" IsImageKey="boolean" />
</Fields>
<Rows>
<r>
<Values xsi:nil="true" />
</r>
<r>
<Values xsi:nil="true" />
</r>
</Rows>
</Output>
<HasEncryptedFields>boolean</HasEncryptedFields>
<MartKey>string</MartKey>
<QueryWasCancelled>boolean</QueryWasCancelled>
</AdHocQueryProcessReply>
</soap:Body>
</soap:Envelope>