Salesforce

Does the OpenEdge Web Service client support MTOM?

« Go Back

Information

 
TitleDoes the OpenEdge Web Service client support MTOM?
URL NameP148513
Article Number000135031
EnvironmentProduct: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Question/Problem Description
Does the OpenEdge Web Service client support the SOAP Message Transmission Optimization Mechanism functionality?

Does the OpenEdge Web Service client support MTOM?
Steps to Reproduce
Clarifying Information
Error Message
Defect NumberEnhancement
Enhancement Number
Cause
Resolution

Currently the OpenEdge Web Service client supports SOAP 1.1 and SOAP 1.2 with no support for MTOM. There are currently no imminent plans to support MTOM.

It was determined that the Progress Product is functioning as designed.
An enhancement to the product can be requested through the Progress Community via an Ideas submission. Customer feedback is valuable and Idea submissions are monitored by our Product Management team. Enhancement requests are reviewed during the planning phase of each new product release and a list of the enhancements chosen for implementation can be found in the Release Notes documents that accompany each release. Once an Idea is submitted the Progress Software Community will have the opportunity to comment on and vote for the Idea.

An enhancement request has been submitted as an Idea on the Progress Community. To promote the Idea, click on this link: https://community.progress.com/community_groups/products_enhancements/i/community/native_support_in_the_4gl_of_soap_with_attachements__mtom.

For detailed information on how to submit an Idea, please refer to Knowledge Base article How to submit an idea for a Progress product enhancement.
 
Workaround
In OpenEdge 11.5.1 or later, use the HTTP client . The ABL programmer is responsible for coding the HTTP request, and for parsing the HTTP response if it contains a multipart message.
BLOCK-LEVEL ON ERROR UNDO, THROW.
USING OpenEdge.Net.HTTP.ClientBuilder.
USING OpenEdge.Net.HTTP.IHttpRequest.
USING OpenEdge.Net.HTTP.IHttpResponse.
USING OpenEdge.Net.HTTP.RequestBuilder.
USING OpenEdge.Core.WidgetHandle.
USING OpenEdge.Net.MessagePart.
USING OpenEdge.Net.MultipartEntity.
USING OpenEdge.Core.Memptr.
 
DEF VAR mData        AS MEMPTR.
DEF VAR hXmlDocument AS HANDLE.
DEF VAR oReq         AS IHttpRequest.
DEF VAR oResp        AS IHttpResponse.
DEF VAR mpEntity     AS MultipartEntity.
DEF VAR msgPart      AS MessagePart.

mpEntity  = NEW MultipartEntity().
mpEntity:Boundary = 'MIME_boundary'.
CREATE X-DOCUMENT hXmlDocument.
hXmlDocument:LOAD('file', SESSION:TEMP-DIR + 'soap.xml', FALSE).

// first part
msgPart = NEW MessagePart('application/soap+xml; charset=UTF-8', NEW WidgetHandle(hXmlDocument)).
msgPart:ContentID = '<image@insurance.com>'.
mpEntity:AddPart(msgPart).

// second part
COPY-LOB FILE SESSION:TEMP-DIR + 'smileyface.jpg' TO mData.
msgPart = NEW MessagePart('image/jpeg', NEW MEMPTR(mData)).
msgPart:ContentID = '<image@insurance.com>'.
mpEntity:AddPart(msgPart).
  
oReq = RequestBuilder:Post('http://mtom.url', mpEntity)
            :ContentType('Multipart/Related; boundary=MIME_boundary; type="application/soap+xml"; start="<claim@insurance.com>"')
            :Request.
            
oResp = ClientBuilder:Build():Client:Execute(oReq).

MESSAGE 
    oResp:StatusCode
    VIEW-AS ALERT-BOX.
 
 
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:23 AM

Powered by