ParcelUploadDirected - LorenData/ECGrid-API GitHub Wiki
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)
- SessionID - String - GUID
- NetworkID - Integer
- MailboxID - Integer
- FileName - String
- Bytes - Integer
- Content - byte[]
- ECGridIDFrom - Integer
- ECGridIDTo - Integer
ParcelID - The value assigned to a specific Parcel Record - Integer
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.
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()); }
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>
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>
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>
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>