Skip to content

ParcelDownload

Lee Bolgatz edited this page Oct 28, 2022 · 2 revisions

Back To Common API Calls


Download Parcel from InBox or Archive as Base64Array.

  public long ParcelDownload(string SessionID,
                             long ParcelID)

Parameters


Returns

long


Remarks

Downloads a complete Parcel from ECGrid as long as it has not been archived.

Once a Parcel has been successfully downloaded from the InBox the first time, ParcelDownloadConfirm() should be called to remove it from the pending download list.

If the payload is non-EDI data, uploaded with ParcelUploadEx() or ParcelUploadGZipEx(), then ParcelDownload() will automatically strip the envelope and restore the original file name.


Code Example

C#

using System.Xml;
using System.Web.Services.Protocols;
using ECGridService = <ProjectName>.net.ecgridos;

try
{
    using (ECGridService.ECGridOSAPIv3 ECGrid = new ECGridService.ECGridOSAPIv3())
    {
        try
        {
            string SessionID = "00000000-0000-0000-0000-000000000000";
            long ParcelID = 46446847;

            ECGridService.FileInfo ParcelDownloadFile = ECGrid.ParcelDownload(SessionID, ParcelID);

            // Write to String
            string ParcelString = Encoding.ASCII.GetString(ParcelDownloadFile.Content);

            // Write to File
            string LocalFilePath = Path.Combine(@"C:\EDI", ParcelDownloadFile.FileName);
            File.WriteAllBytes(LocalFilePath, ParcelDownloadFile.Content);

            // Or using FileStream
            using (FileStream fs = new FileStream(LocalFilePath, FileMode.Create, FileAccess.Write))
            {
                fs.Write(ParcelDownloadFile.Content, 0, ParcelDownloadFile.Bytes);
            }

        }
        catch (SoapException SoapEx)
        {
            // See SOAP Exceptions in the Appendix
            var ECG_Ex = CatchException(SoapEx);
            Console.WriteLine($"ECGridOS Soap Exception: {ECG_Ex.ErrorCode} , Item: {ECG_Ex.ErrorItem}, Message: {ECG_Ex.ErrorMessage}, String: {ECG_Ex.ErrorString}");
        }
    } // END USING
}
catch (Exception ex){ Console.WriteLine("Unhandled Exception: " + ex.ToString()); }

SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

POST /v4.1/prod/ECGridOS.asmx HTTP/1.1
Host: os.ecgrid.io
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "https://os.ecgrid.io/ParcelDownload"

<?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>
    <ParcelDownload xmlns="https://os.ecgrid.io/">
      <SessionID>string</SessionID>
      <ParcelID>long</ParcelID>
    </ParcelDownload>
  </soap:Body>
</soap:Envelope>
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:Body>
    <ParcelDownloadResponse xmlns="https://os.ecgrid.io/">
      <ParcelDownloadResult>
        <ParcelID>long</ParcelID>
        <FileName>string</FileName>
        <FileDate>dateTime</FileDate>
        <Bytes>int</Bytes>
        <Standard>X12 or EDIFACT or TRADACOMS or VDA or XML or TXT or PDF or Binary or PEPPOL</Standard>
        <Content>base64Binary</Content>
        <ContentBase64String>string</ContentBase64String>
        <routerArchive>boolean</routerArchive>
      </ParcelDownloadResult>
    </ParcelDownloadResponse>
  </soap:Body>
</soap:Envelope>

SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.

POST /v4.1/prod/ECGridOS.asmx HTTP/1.1
Host: os.ecgrid.io
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ParcelDownload xmlns="https://os.ecgrid.io/">
      <SessionID>string</SessionID>
      <ParcelID>long</ParcelID>
    </ParcelDownload>
  </soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ParcelDownloadResponse xmlns="https://os.ecgrid.io/">
      <ParcelDownloadResult>
        <ParcelID>long</ParcelID>
        <FileName>string</FileName>
        <FileDate>dateTime</FileDate>
        <Bytes>int</Bytes>
        <Standard>X12 or EDIFACT or TRADACOMS or VDA or XML or TXT or PDF or Binary or PEPPOL</Standard>
        <Content>base64Binary</Content>
        <ContentBase64String>string</ContentBase64String>
        <routerArchive>boolean</routerArchive>
      </ParcelDownloadResult>
    </ParcelDownloadResponse>
  </soap12:Body>
</soap12:Envelope>

HTTP GET

The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.

GET /v4.1/prod/ECGridOS.asmx/ParcelDownload?SessionID=string&ParcelID=string HTTP/1.1
Host: os.ecgrid.io
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<FileInfo xmlns="https://os.ecgrid.io/">
  <ParcelID>long</ParcelID>
  <FileName>string</FileName>
  <FileDate>dateTime</FileDate>
  <Bytes>int</Bytes>
  <Standard>X12 or EDIFACT or TRADACOMS or VDA or XML or TXT or PDF or Binary or PEPPOL</Standard>
  <Content>base64Binary</Content>
  <ContentBase64String>string</ContentBase64String>
  <routerArchive>boolean</routerArchive>
</FileInfo>

HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.

POST /v4.1/prod/ECGridOS.asmx/ParcelDownload HTTP/1.1
Host: os.ecgrid.io
Content-Type: application/x-www-form-urlencoded
Content-Length: length

SessionID=string&ParcelID=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<FileInfo xmlns="https://os.ecgrid.io/">
  <ParcelID>long</ParcelID>
  <FileName>string</FileName>
  <FileDate>dateTime</FileDate>
  <Bytes>int</Bytes>
  <Standard>X12 or EDIFACT or TRADACOMS or VDA or XML or TXT or PDF or Binary or PEPPOL</Standard>
  <Content>base64Binary</Content>
  <ContentBase64String>string</ContentBase64String>
  <routerArchive>boolean</routerArchive>
</FileInfo>

Back To Common API Calls

Clone this wiki locally