Skip to content

ParcelUploadDirected

Greg Kolinski edited this page Sep 21, 2017 · 1 revision

Back To Common API Calls


Upload any format Parcel to the OutBox.

 public int ParcelUploadDirected(string SessionID, 
                                 int NetworkID, 
                                 int MailboxID, 
                                 string FileName, 
                                 int Bytes, 
                                 [XmlElementAttribute(DataType="base64Binary")] byte[] Content, 
                                 int ECGridIDFrom, 
                                 int ECGridIDTo)

Parameters:


Returns

ParcelID - The value assigned to a specific Parcel Record - Integer


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.

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;
            int ECGridIDFrom = 567;
            int ECGridIDTo = 4844;
            string FilePath = @"C:\EDI\DataFile.txt";
            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 ParcelID = ECGrid.ParcelUploadDirected(SessionID, NetworkID, MailboxID, FileName, ContentFromFile.Length, ContentFromFile, ECGridIDFrom, ECGridIDTo);
                                 
        }
        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 /v3.2/prod/ecgridos.asmx HTTP/1.1
Host: ecgridos.net
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://ecgridos.net/ParcelUploadDirected"

<?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>
    <ParcelUploadDirected xmlns="http://ecgridos.net/">
      <SessionID>string</SessionID>
      <NetworkID>int</NetworkID>
      <MailboxID>int</MailboxID>
      <FileName>string</FileName>
      <Bytes>int</Bytes>
      <Content>base64Binary</Content>
      <ECGridIDFrom>int</ECGridIDFrom>
      <ECGridIDTo>int</ECGridIDTo>
    </ParcelUploadDirected>
  </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>
    <ParcelUploadDirectedResponse xmlns="http://ecgridos.net/">
      <ParcelUploadDirectedResult>int</ParcelUploadDirectedResult>
    </ParcelUploadDirectedResponse>
  </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 /v3.2/prod/ecgridos.asmx HTTP/1.1
Host: ecgridos.net
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>
    <ParcelUploadDirected xmlns="http://ecgridos.net/">
      <SessionID>string</SessionID>
      <NetworkID>int</NetworkID>
      <MailboxID>int</MailboxID>
      <FileName>string</FileName>
      <Bytes>int</Bytes>
      <Content>base64Binary</Content>
      <ECGridIDFrom>int</ECGridIDFrom>
      <ECGridIDTo>int</ECGridIDTo>
    </ParcelUploadDirected>
  </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>
    <ParcelUploadDirectedResponse xmlns="http://ecgridos.net/">
      <ParcelUploadDirectedResult>int</ParcelUploadDirectedResult>
    </ParcelUploadDirectedResponse>
  </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 /v3.2/prod/ecgridos.asmx/ParcelUploadDirected?SessionID=string&NetworkID=string&MailboxID=string&FileName=string&Bytes=string&Content=string&Content=string&ECGridIDFrom=string&ECGridIDTo=string HTTP/1.1
Host: ecgridos.net
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://ecgridos.net/">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 /v3.2/prod/ecgridos.asmx/ParcelUploadDirected HTTP/1.1
Host: ecgridos.net
Content-Type: application/x-www-form-urlencoded
Content-Length: length

SessionID=string&NetworkID=string&MailboxID=string&FileName=string&Bytes=string&Content=string&Content=string&ECGridIDFrom=string&ECGridIDTo=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="http://ecgridos.net/">int</int>

Back To Common API Calls

Clone this wiki locally