SOAP WSDL Generate Code

WageFileServicesSOAP12Binding / getWageFileStatus

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
IncludeFile "CkHttp.pb"
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkXml.pb"

Procedure ChilkatExample()

    xml.i = CkXml::ckCreate()
    If xml.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkXml::setCkTag(xml, "soap:Envelope")
    CkXml::ckAddAttribute(xml,"xmlns:soap","http://www.w3.org/2003/05/soap-envelope")
    CkXml::ckAddAttribute(xml,"xmlns:impl","urn:parameters.v3.ewr.ws.ssa.gov")
    CkXml::ckAddAttribute(xml,"xmlns:ns0","urn:skeleton.v3.ewr.ws.ssa.gov")
    CkXml::ckUpdateChildContent(xml,"soap:Header","")
    CkXml::ckUpdateChildContent(xml,"soap:Body|ns0:GetWageFileStatusRequest|impl:confirmationNumber","string")

    ; In a SOAP HTTP request, including the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) in the XML body is generally not required. 
    CkXml::setCkEmitXmlDecl(xml, 0)
    soapRequestBody.s = CkXml::ckGetXml(xml)

    endpoint.s = "https://ws.ssa.gov/ewrwsv3/services/WageFileServices"
    soapAction.s = "getWageFileStatus"
    ;  For SOAP requests, the standard Content-Type is usually set to "text/xml" or "application/soap+xml"
    contentType.s = "text/xml"

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttp::ckClearHeaders(http)
    CkHttp::ckSetRequestHeader(http,"Content-Type",contentType)
    CkHttp::ckSetRequestHeader(http,"SOAPAction",soapAction)

    resp.i = CkHttp::ckPostXml(http,endpoint,soapRequestBody,"utf-8")
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        Debug "Failed to send SOAP request."
        CkXml::ckDispose(xml)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    ; Get the XML response body.
    responseXml.i = CkXml::ckCreate()
    If responseXml.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttpResponse::ckGetBodyXml(resp,responseXml)

    statusCode.i = CkHttpResponse::ckStatusCode(resp)
    Debug "response status code: " + Str(statusCode)

    CkHttpResponse::ckDispose(resp)

    ; If the status code does not indicate succcess, then show the response XML,
    ; which probably contains error information.
    If statusCode <> 200
        Debug CkXml::ckGetXml(responseXml)
        CkXml::ckDispose(xml)
        CkHttp::ckDispose(http)
        CkXml::ckDispose(responseXml)
        ProcedureReturn
    EndIf

    Debug CkXml::ckGetXml(responseXml)

    ; 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).

    wfid.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:wfid")
    receiptYear.i = CkXml::ckGetChildIntValue(responseXml,"*:Body|*:GetWageFileStatusResponse|*:receiptYear")
    version.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:version")
    receiptDate.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:receiptDate")
    statusCode.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:statusCode")
    statusDescription.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:statusDescription")
    statusDate.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:statusDate")
    filingMethod.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:filingMethod")
    w3Count.i = CkXml::ckGetChildIntValue(responseXml,"*:Body|*:GetWageFileStatusResponse|*:w3Count")
    originalFilename.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:originalFilename")
    returnCode.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:response|*:returnCode")
    transactionTimestamp.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:response|*:transactionTimestamp")
    errorInfo.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:response|*:errorInfo")
    errorDateInfo.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:response|*:errorDateInfo")
    deprecationDate.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:response|*:deprecationDate")
    sunsetDate.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:GetWageFileStatusResponse|*:response|*:sunsetDate")


    CkXml::ckDispose(xml)
    CkHttp::ckDispose(http)
    CkXml::ckDispose(responseXml)


    ProcedureReturn
EndProcedure
Request XML
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:impl="urn:parameters.v3.ewr.ws.ssa.gov" xmlns:ns0="urn:skeleton.v3.ewr.ws.ssa.gov">
    <soap:Header/>
    <soap:Body>
        <ns0:GetWageFileStatusRequest>
            <impl:confirmationNumber>string</impl:confirmationNumber>
        </ns0:GetWageFileStatusRequest>
    </soap:Body>
</soap:Envelope>
Response XML
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns0="urn:skeleton.v3.ewr.ws.ssa.gov" xmlns:impl="urn:parameters.v3.ewr.ws.ssa.gov">
    <soap:Header/>
    <soap:Body>
        <ns0:GetWageFileStatusResponse>
            <impl:wfid>string</impl:wfid>
            <impl:receiptYear>1042</impl:receiptYear>
            <impl:version>string</impl:version>
            <impl:receiptDate>dateTime</impl:receiptDate>
            <impl:statusCode>string</impl:statusCode>
            <impl:statusDescription>string</impl:statusDescription>
            <impl:statusDate>dateTime</impl:statusDate>
            <impl:filingMethod>string</impl:filingMethod>
            <impl:w3Count>1042</impl:w3Count>
            <impl:originalFilename>string</impl:originalFilename>
            <impl:response>
                <impl:returnCode>string</impl:returnCode>
                <impl:transactionTimestamp>dateTime</impl:transactionTimestamp>
                <impl:errorInfo>string</impl:errorInfo>
                <impl:errorDateInfo>dateTime</impl:errorDateInfo>
                <impl:deprecationDate>dateTime</impl:deprecationDate>
                <impl:sunsetDate>dateTime</impl:sunsetDate>
            </impl:response>
        </ns0:GetWageFileStatusResponse>
    </soap:Body>
</soap:Envelope>