Skip to Content
Product Information
Author's profile photo Ricardo Viana

SAP CPI – UPS – PLD0200 – Content-Type: Multipart/Mixed

Hello Guys,

I have received scenario to send from SAP to UPS the PLD0200  requirement does not contain any transformation/manipulation of the data, it’s just simple HTTP Plain to HTTP Plain synchronous.

Sample editable PLD0200:

POST /hapld/tos/kdwhapltos HTTP/1.1
Content-Type: multipart/mixed; boundary=------------050801040202040701030308
Host: domain
Content-Length: 658

--------------050801040202040701030308
Content-type: application/x-www-form-urlencoded
Content-length: 134

AppVersion=1.0&AcceptUPSLicenseAgreement=YES&VersionNumber=V4R1&UserId=myUser&Password=myPassword&ResponseType=application/x-ups-pld

--------------050801040202040701030308
Content-type: application/x-ups-binary
Content-length: 721

020094 2014041500000594196532600 000000001*AAV0Y203 DE 5941965326000001*BA1ZV0Y2036650001829 00001+0000000000000012 +0000000000000000KGS07COL10 3CMEUR000001*CA18TC239 AOK Bahnhofstr. Dresden 01099 DE *EAEVS+000000000000104200EUR*PA1ZV0Y2036650001829 02+0000012 +0000000+00000000+00000000+00000000*SA000005

--------------050801040202040701030308--

SAP to UPS

Result Editable PLD0200:

Content-type: text/html
Content-length: 138

<HTML>
<HEAD>
<TITLE>UPS Internet Software</TITLE>
</HEAD>
<BODY>
<P>UPS Internet Software, Copyright UPS 1998</P>
</BODY>
</HTML>

--BOUNDARY
Content-type: application/x-ups-psmpld
Content-length: 104

UPSOnLine%1.0%0000%0000Successful completion - No errors found.                                    

--BOUNDARY
Content-type: application/x-ups-pld
Content-length: 800

000200000787300000640 KDGPLCR1                   United Parcel Service                      09/06/16  Page:1                    Test PLD Control Report                     05:44 PM                                                                                  ------------------------------------------------------------------------------- Pickup Date:20030813 Sequence#:000005900000002 #of Segments:000000000000000005                                                                                                                                                                  Shipper#:0TEST0     Book/Page#:5900000002 Shipments:000001 Packages:0000000001 10000012900000000Successful completion - No errors found.                                        
!!! Test Upload !!!
File Uploaded: n/a

--BOUNDARY--

In Feb 12, 2008 an Former Member Open this Thread - Sending Data from XI to UPS(Parcel Manifest Upload PLD0200)

It’s look simple but…..

I’m faced the error describe in this thread below:

HTTP_AAE Receiver channel error – Error sending HTTP request.- Message processing failed – Thread – 1

PO 7.3.1 HTTP_AAE receiver channel error – Thread – 2

I checked these SAP Notes:

1 ) 2157425 – New Feature: Client side HTTP Tracing for HTTP_AAE adapter

2 ) 1958104 – HTTP_AAE adapter fails with exception ‘ERROR_SENDING_HTTP_REQUEST’

3 ) 1514898 – XPI Inspector for troubleshooting XI

4 ) 2051533 – Enhanced Tracing in HttpClient

SAP PI 7.5 – SAP BASIS 7.5 – SP12

XPI Inspector

After proceed with all possible steps and the trace still getting this error:

Error: ERROR_SENDING_HTTP_REQUEST-Message Processing Failed. Reason: com.sap.httpclient.execption.ProtocolException: Data is not repeatable

To solve the problem you must:

You must generate the Sender URL: SAP HELP HTTP_AEE

Don’t forget to use in the end: &qos=be (Best-Effort Synchronous)

Rest adapter Configuration

Endpoint:

Data Format:

HTTP Header:

 

But why I don’t use SOAP – Over HTTP without SOAP Envelop? it’s another solution using the module MessageTransformBean

Replay via SOAP without SOAP Envelop, this is not correct replay as you can see above, this is just the text/HTML content-type.

I hope that with this blog you can solve this problem of multipart/mixed content-type with UPS and other legacy systems and be clear also how to transfer FILE to FILE without any transformation.

Thank you

Kind regards,

Viana.

Assigned Tags

      3 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Bhargava Krishna Talasila
      Bhargava Krishna Talasila

      Appreciate your efforts.. Thanks for sharing..

      Author's profile photo Shivshankar Aklod
      Shivshankar Aklod

      Hi Recardo,

      Cant we use http_aae adapter to connect to url -https://www.pldcertify.ups.com/hapld/tos/kdwhapltos

      and then which user we need to use in payload as shown by you [

      AppVersion=1.0&AcceptUPSLicenseAgreement=YES&VersionNumber=V4R1&UserId=myUser&Password=myPassword&ResponseType=application/x-ups-pld

      ] and at channel level?

      I am able to connect to PLD, able to generate the payload, as you have shown, but getting response as

      --BOUNDARY
      Content-type: text/html
      Content-length: 138

      <HTML>
      <HEAD>
      <TITLE>UPS Internet Software</TITLE>
      </HEAD>
      <BODY>
      <P>UPS Internet Software, Copyright UPS 1998</P>
      </BODY>
      </HTML>

      --BOUNDARY
      Content-type: application/x-ups-psmpld
      Content-length: 104

      UPSOnLine%1.0%6931%6504Password is invalid.

      --BOUNDARY
      Content-type: application/x-ups-pld
      Content-length: 110

      00010000009710000008800026504Password is invalid.

      --BOUNDARY--

       

      please help.

      Author's profile photo Ricardo Viana
      Ricardo Viana
      Blog Post Author

      Hello,

       

      I don’t use as HTTP_AAE receiver, this is not works as I explained.

       

      I used as receiver REST that is able to handle Content-Type: multipart/mixed;