SpringCMServiceSoap / DocumentSearch
ASP AutoIt C C (Unicode) C++ C++ (Unicode) C# DataFlex Delphi Foxpro Go Java Node.js Objective-C Perl PHP Extension PowerBuilder Powershell PureBasic Python CkPython Ruby SQL Server Swift TCL VB.NET VB6 VBScript Xojo
#include <CkXml.h>
#include <CkHttp.h>
#include <CkHttpResponse.h>
void ChilkatSample(void)
{
CkXml xml;
xml.put_Tag("soapenv:Envelope");
xml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/");
xml.AddAttribute("xmlns:spr","http://www.springcm.com/atlas/webservices/v201308/scm/");
xml.UpdateChildContent("soapenv:Header","");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:token","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:AtLeastOneWord","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:WithAllWords","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:WithoutWords","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:WithPhrase","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:StartDate","dateTime");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:EndDate","dateTime");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:LimitFolderId","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:LimitIncludeSubfolders","true");
xml.UpdateChildContentInt("soapenv:Body|spr:DocumentSearch|spr:search|spr:StartHitIndex",1042);
xml.UpdateChildContentInt("soapenv:Body|spr:DocumentSearch|spr:search|spr:MaxHits",1042);
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Body","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Extensions|spr:string","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Description","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Metadata|spr:SCMMetadata|spr:GroupName","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Metadata|spr:SCMMetadata|spr:FieldName","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Metadata|spr:SCMMetadata|spr:Value","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Metadata|spr:SCMMetadata|spr:HighValue","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Metadata|spr:SCMMetadata|spr:ExcludeFromSearch","true");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Metadata|spr:SCMMetadata|spr:SetName","string");
xml.UpdateChildContentInt("soapenv:Body|spr:DocumentSearch|spr:search|spr:Metadata|spr:SCMMetadata|spr:SetNumber",1042);
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Metadata|spr:SCMMetadata|spr:DataType","String");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:ReceivedFrom","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:ShowRevisions","true");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:Title","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:search|spr:InAnyAttributeField","string");
xml.UpdateChildContent("soapenv:Body|spr:DocumentSearch|spr:loadExtendedMetadata","true");
// In a SOAP HTTP request, including the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) in the XML body is generally not required.
xml.put_EmitXmlDecl(false);
const char *soapRequestBody = xml.getXml();
const char *endpoint = "https://soapna11.springcm.com/atlas/webservices/v201308/springcmservice.asmx";
const char *soapAction = "http://www.springcm.com/atlas/webservices/v201308/scm/DocumentSearch";
// For SOAP requests, the standard Content-Type is usually set to "text/xml" or "application/soap+xml"
const char *contentType = "text/xml";
CkHttp http;
http.ClearHeaders();
http.SetRequestHeader("Content-Type",contentType);
http.SetRequestHeader("SOAPAction",soapAction);
CkHttpResponse *resp = http.PostXml(endpoint,soapRequestBody,"utf-8");
if (http.get_LastMethodSuccess() == false) {
std::cout << http.lastErrorText() << "\r\n";
std::cout << "Failed to send SOAP request." << "\r\n";
return;
}
// Get the XML response body.
CkXml responseXml;
resp->GetBodyXml(responseXml);
int statusCode = resp->get_StatusCode();
std::cout << "response status code: " << statusCode << "\r\n";
delete resp;
// If the status code does not indicate succcess, then show the response XML,
// which probably contains error information.
if (statusCode != 200) {
std::cout << responseXml.getXml() << "\r\n";
return;
}
std::cout << responseXml.getXml() << "\r\n";
// Parse the successful SOAP response XML.
// This is a sample of the response XML, but the namespace prefixes will be different.
// We can parse the result using "*" for the namespace prefixes (see below).
const char *Id = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Id");
const char *Name = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Name");
const char *ObjectType = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:ObjectType");
const char *ParentFolderId = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:ParentFolderId");
const char *CreatedBy = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:CreatedBy");
const char *CreatedDate = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:CreatedDate");
const char *UpdatedBy = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:UpdatedBy");
const char *UpdatedDate = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:UpdatedDate");
const char *Security = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Security");
const char *Description = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Description");
const char *GroupName = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Metadata|*:SCMMetadata|*:GroupName");
const char *FieldName = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Metadata|*:SCMMetadata|*:FieldName");
const char *Value = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Metadata|*:SCMMetadata|*:Value");
const char *HighValue = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Metadata|*:SCMMetadata|*:HighValue");
const char *ExcludeFromSearch = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Metadata|*:SCMMetadata|*:ExcludeFromSearch");
const char *SetName = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Metadata|*:SCMMetadata|*:SetName");
int SetNumber = responseXml.GetChildIntValue("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Metadata|*:SCMMetadata|*:SetNumber");
const char *DataType = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Metadata|*:SCMMetadata|*:DataType");
const char *CheckedOutUserId = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:CheckedOutUserId");
const char *CheckedOutUserName = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:CheckedOutUserName");
const char *ExpirationDate = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:ExpirationDate");
int FileSize = responseXml.GetChildIntValue("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:FileSize");
int PDFFileSize = responseXml.GetChildIntValue("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:PDFFileSize");
const char *PDFConversion = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:PDFConversion");
int PDFPageCount = responseXml.GetChildIntValue("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:PDFPageCount");
const char *IsFormDocument = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:IsFormDocument");
const char *Key = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:CustomFormFields|*:SCMFormField|*:Key");
Value = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:CustomFormFields|*:SCMFormField|*:Value");
SetName = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:CustomFormFields|*:SCMFormField|*:SetName");
const char *strSetNumber = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:CustomFormFields|*:SCMFormField|*:SetNumber");
const char *MIMEType = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:MIMEType");
const char *Version = responseXml.getChildContent("*:Body|*:DocumentSearchResponse|*:DocumentSearchResult|*:SCMDocument|*:Version");
}
Request XML
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:spr="http://www.springcm.com/atlas/webservices/v201308/scm/">
<soapenv:Header/>
<soapenv:Body>
<spr:DocumentSearch>
<spr:token>string</spr:token>
<spr:search>
<spr:AtLeastOneWord>string</spr:AtLeastOneWord>
<spr:WithAllWords>string</spr:WithAllWords>
<spr:WithoutWords>string</spr:WithoutWords>
<spr:WithPhrase>string</spr:WithPhrase>
<spr:StartDate>dateTime</spr:StartDate>
<spr:EndDate>dateTime</spr:EndDate>
<spr:LimitFolderId>string</spr:LimitFolderId>
<spr:LimitIncludeSubfolders>true</spr:LimitIncludeSubfolders>
<spr:StartHitIndex>1042</spr:StartHitIndex>
<spr:MaxHits>1042</spr:MaxHits>
<spr:Body>string</spr:Body>
<spr:Extensions>
<spr:string>string</spr:string>
</spr:Extensions>
<spr:Description>string</spr:Description>
<spr:Metadata>
<spr:SCMMetadata>
<spr:GroupName>string</spr:GroupName>
<spr:FieldName>string</spr:FieldName>
<spr:Value>string</spr:Value>
<spr:HighValue>string</spr:HighValue>
<spr:ExcludeFromSearch>true</spr:ExcludeFromSearch>
<spr:SetName>string</spr:SetName>
<spr:SetNumber>1042</spr:SetNumber>
<spr:DataType>String</spr:DataType>
</spr:SCMMetadata>
</spr:Metadata>
<spr:ReceivedFrom>string</spr:ReceivedFrom>
<spr:ShowRevisions>true</spr:ShowRevisions>
<spr:Title>string</spr:Title>
<spr:InAnyAttributeField>string</spr:InAnyAttributeField>
</spr:search>
<spr:loadExtendedMetadata>true</spr:loadExtendedMetadata>
</spr:DocumentSearch>
</soapenv:Body>
</soapenv:Envelope>
Response XML
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:spr="http://www.springcm.com/atlas/webservices/v201308/scm/">
<soapenv:Header/>
<soapenv:Body>
<spr:DocumentSearchResponse>
<spr:DocumentSearchResult>
<spr:SCMDocument>
<spr:Id>string</spr:Id>
<spr:Name>string</spr:Name>
<spr:ObjectType>Document</spr:ObjectType>
<spr:ParentFolderId>string</spr:ParentFolderId>
<spr:CreatedBy>string</spr:CreatedBy>
<spr:CreatedDate>dateTime</spr:CreatedDate>
<spr:UpdatedBy>string</spr:UpdatedBy>
<spr:UpdatedDate>dateTime</spr:UpdatedDate>
<spr:Security>list of enumerated string values</spr:Security>
<spr:Description>string</spr:Description>
<spr:Metadata>
<spr:SCMMetadata>
<spr:GroupName>string</spr:GroupName>
<spr:FieldName>string</spr:FieldName>
<spr:Value>string</spr:Value>
<spr:HighValue>string</spr:HighValue>
<spr:ExcludeFromSearch>true</spr:ExcludeFromSearch>
<spr:SetName>string</spr:SetName>
<spr:SetNumber>1042</spr:SetNumber>
<spr:DataType>String</spr:DataType>
</spr:SCMMetadata>
</spr:Metadata>
<spr:CheckedOutUserId>string</spr:CheckedOutUserId>
<spr:CheckedOutUserName>string</spr:CheckedOutUserName>
<spr:ExpirationDate>dateTime</spr:ExpirationDate>
<spr:FileSize>123456</spr:FileSize>
<spr:PDFFileSize>123456</spr:PDFFileSize>
<spr:PDFConversion>true</spr:PDFConversion>
<spr:PDFPageCount>1042</spr:PDFPageCount>
<spr:IsFormDocument>true</spr:IsFormDocument>
<spr:CustomFormFields>
<spr:SCMFormField>
<spr:Key>string</spr:Key>
<spr:Value>string</spr:Value>
<spr:SetName>string</spr:SetName>
<spr:SetNumber>string</spr:SetNumber>
</spr:SCMFormField>
</spr:CustomFormFields>
<spr:MIMEType>string</spr:MIMEType>
<spr:Version>string</spr:Version>
</spr:SCMDocument>
</spr:DocumentSearchResult>
</spr:DocumentSearchResponse>
</soapenv:Body>
</soapenv:Envelope>