Skip to content

ParcelUploadExA

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

Back To Common API Calls


Upload an X12, EDIFACT, Tradacoms or VDA Parcel to the Specified Network/Mailbox OutBox with Base64String.

  public int ParcelUploadExA(string SessionID,
                             int NetworkID,
                             int MailboxID,
                             string FileName,
                             string ContentBase64)

Parameters


Returns

int


Remarks

This method allows Parcels to be directly uploaded to ECGrid through the ECGridOS interface. Other communication channels are available such as FTP or AS2.

The content must be X12 or EDIFACT in order to be processed and routed by ECGrid. To send non-EDI data, use ParcelUploadDirected().

FileName must be a valid Windows filename, invalid FileNames will generate SOAP Exception.

Bytes must equal the Content length, or a SOAP Exception will be raised.


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";
            int NetworkID = 56845;
            int MailboxID = 5684456;
            string FilePath = @"C:\EDI\X12_856.edi";
            FileInfo X12FileInfo = new FileInfo(FilePath);
            string FileName = X12FileInfo.Name;
            byte[] ContentFromFile = File.ReadAllBytes(FilePath);

            using (FileStream fs = new FileStream(FilePath,FileMode.Open))
            {
                using (var memoryStream = new MemoryStream())
                {
                    fs.CopyTo(memoryStream);
                    ContentFromFile = memoryStream.ToArray();
                }
            }

            /* .Net will Auto Convert byte[] to Base64 on Transport. 
               Below is the explicit Conversion for your reference

            string Base64FileString = Convert.ToBase64String(ContentFromFile);
            byte[] ContentBase64EncodedBytes = Convert.FromBase64String(Base64FileString);
            */

            int ParcelUploadResults = ECGrid.ParcelUploadExA(SessionID, NetworkID, MailboxID, FileName, ContentFromFile.Length, ContentFromFile);

        }
        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/ParcelUploadExA"

<?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>
    <ParcelUploadExA xmlns="https://os.ecgrid.io/">
      <SessionID>string</SessionID>
      <NetworkID>int</NetworkID>
      <MailboxID>int</MailboxID>
      <FileName>string</FileName>
      <ContentBase64>string</ContentBase64>
    </ParcelUploadExA>
  </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>
    <ParcelUploadExAResponse xmlns="https://os.ecgrid.io/">
      <ParcelUploadExAResult>int</ParcelUploadExAResult>
    </ParcelUploadExAResponse>
  </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>
    <ParcelUploadExA xmlns="https://os.ecgrid.io/">
      <SessionID>string</SessionID>
      <NetworkID>int</NetworkID>
      <MailboxID>int</MailboxID>
      <FileName>string</FileName>
      <ContentBase64>string</ContentBase64>
    </ParcelUploadExA>
  </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>
    <ParcelUploadExAResponse xmlns="https://os.ecgrid.io/">
      <ParcelUploadExAResult>int</ParcelUploadExAResult>
    </ParcelUploadExAResponse>
  </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/ParcelUploadExA?SessionID=string&NetworkID=string&MailboxID=string&FileName=string&ContentBase64=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"?>
<int xmlns="https://os.ecgrid.io/">int</int>

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/ParcelUploadExA HTTP/1.1
Host: os.ecgrid.io
Content-Type: application/x-www-form-urlencoded
Content-Length: length

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

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="https://os.ecgrid.io/">int</int>

Back To Common API Calls

Clone this wiki locally