Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

palena.sii.cl getSeed SOAP Request

See more SII Chile Examples

Demonstrates how to call getSeed SOAP request at palena.sii.cl

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Http,
  Chilkat.HttpResponse,
  Chilkat.Xml;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  http: THttp;
  responseStatusCode: Integer;
  endPoint: string;
  xml: TXml;
  resp: THttpResponse;
  xmlResp: TXml;
  embeddedXml: string;
  xml2: TXml;
  seed: string;

begin
  success := False;

  http := THttp.Create;

  //  This example requires the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  http.UncommonOptions := 'AllowEmptyHeaders';
  http.SetRequestHeader('SOAPAction','');

  //  The endpoint for this soap service is:
  endPoint := 'https://palena.sii.cl/DTEWS/CrSeed.jws';

  //  Send the following SOAP XML
  //  <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:def="http://DefaultNamespace">
  //     <soapenv:Header/>
  //     <soapenv:Body>
  //        <def:getSeed soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  //     </soapenv:Body>
  //  </soapenv:Envelope>

  xml := TXml.Create;
  xml.Tag := 'soapenv:Envelope';
  xml.AddAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
  xml.AddAttribute('xmlns:xsd','http://www.w3.org/2001/XMLSchema');
  xml.AddAttribute('xmlns:soapenv','http://schemas.xmlsoap.org/soap/envelope/');
  xml.AddAttribute('xmlns:def','http://DefaultNamespace');
  xml.UpdateChildContent('soapenv:Header','');
  xml.UpdateAttrAt('soapenv:Body|def:getSeed',True,'soapenv:encodingStyle','http://schemas.xmlsoap.org/soap/encoding/');

  resp := THttpResponse.Create;
  success := http.HttpStr('POST',endPoint,xml.GetXml(),'utf-8','text/xml',resp);
  if (success = False) then
    begin
      WriteLn(http.LastErrorText);
      Exit;
    end;

  responseStatusCode := resp.StatusCode;

  WriteLn('Response Status Code: ' + responseStatusCode);

  //  You may examine the exact HTTP header sent with the POST like this:
  WriteLn('LastHeader:');
  WriteLn(http.LastHeader);

  //  Examine the XML returned by the web service:
  WriteLn('XML Response:');
  xmlResp := TXml.Create;
  xmlResp.LoadXml(resp.BodyStr);
  WriteLn(xmlResp.GetXml());

  //  Use this online tool to generate parsing code from response XML: 
  //  Generate Parsing Code from XML

  //  The response is:

  //  <?xml version="1.0" encoding="UTF-8"?>
  //  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  //      <soapenv:Body>
  //          <ns1:getSeedResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://DefaultNamespace">
  //              <ns1:getSeedReturn xsi:type="xsd:string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;SII:RESPUESTA xmlns:SII=&quot;http://www.sii.cl/XMLSchema&quot;&gt;&lt;SII:RESP_BODY&gt;&lt;SEMILLA&gt;039159253918&lt;/SEMILLA&gt;&lt;/SII:RESP_BODY&gt;&lt;SII:RESP_HDR&gt;&lt;ESTADO&gt;00&lt;/ESTADO&gt;&lt;/SII:RESP_HDR&gt;&lt;/SII:RESPUESTA&gt;</ns1:getSeedReturn>
  //          </ns1:getSeedResponse>
  //      </soapenv:Body>
  //  </soapenv:Envelope>

  //  Get the XML contained in the getSeedReturn element:
  embeddedXml := xmlResp.GetChildContent('soapenv:Body|ns1:getSeedResponse|ns1:getSeedReturn');
  WriteLn(embeddedXml);

  //  The embedded XML is:

  //  <?xml version="1.0" encoding="UTF-8"?>
  //  <SII:RESPUESTA xmlns:SII="http://www.sii.cl/XMLSchema">
  //      <SII:RESP_BODY>
  //          <SEMILLA>039159397998</SEMILLA>
  //      </SII:RESP_BODY>
  //      <SII:RESP_HDR>
  //          <ESTADO>00</ESTADO>
  //      </SII:RESP_HDR>
  //  </SII:RESPUESTA>

  //  Get the seed:
  xml2 := TXml.Create;
  xml2.LoadXml(embeddedXml);
  seed := xml2.GetChildContent('SII:RESP_BODY|SEMILLA');
  WriteLn('seed =  ' + seed);

  //  --------------------------------------------------------------------------------
  //  Also see Chilkat's Online WSDL Code Generator
  //  to generate code and SOAP Request and Response XML for each operation in a WSDL.
  //  --------------------------------------------------------------------------------


  http.Free;
  xml.Free;
  resp.Free;
  xmlResp.Free;
  xml2.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.