I don't want to publish the complete WSDL on an open forum, but the relevant fragment is:
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="cubaPrevLetterBinaryReq" type="previewLetterReq"/>
<xsd:element name="cubaPrevLetterBinaryResp" type="previewLetterResp"/>
<xsd:complexType name="previewLetterReq">
<xsd:sequence>
<xsd:element name="OMEGA" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="previewLetterResp">
<xsd:sequence>
<xsd:element name="base64Binary" type="xsd:base64Binary" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
this works 100% using SoapUI.
Are there any PTFs that could be relevant here ...
Original Message:
Sent: 04-20-2021 12:10 PM
From: Kim Peelman
Subject: Re: How to receive a BLOB data from web service to action block?
Jonathan,
Amit is correct. As of now we do not have a plan to support BLOB on z/OS. I'm told it was considered years back, but there was not enough demand.
I recommend submitting a
Community Idea. Votes for the idea help us see who else would benefit from this.
------------------------------
Kim Peelman
Product Owner, CA Gen
Broadcom
Plano,TX
Original Message:
Sent: 04-19-2021 07:12 AM
From: Jonathan Hardy
Subject: Re: How to receive a BLOB data from web service to action block?
one final question (hopfully) ... when will BLOBs be supported on the MVS platform ?
I'm getting the following build error:
ABG generating Encyid: 1357347352
os MVS
lang COBOL
dbms DB2 z/OS
compiler VSCOB
tpmon CICS
MBCS set code page ID: 1252.
Starting Action Block Generator
BLOB attributes are not supported by the targeting platform / language: MVS/COBOL
Original Message:
Sent: 04-18-2021 06:33 PM
From: Jonathan Hardy
Subject: Re: How to receive a BLOB data from web service to action block?
and thanks for the info about exception handling. This will enable me to provide a much more robust solution
Original Message:
Sent: 04-18-2021 06:31 PM
From: Jonathan Hardy
Subject: Re: How to receive a BLOB data from web service to action block?
hi Lynn,
When I get a chance I'll revert back to 4MB and see if the problem manifests itself again.
I suspect however it was the fact that I deleted the views - and then remapped fresh views - that cleared the issue ...
Out of interest, is there a way to get a pointer to the underlying BLOB data ?
Original Message:
Sent: 04-15-2021 07:45 PM
From: Lynn Williams
Subject: Re: How to receive a BLOB data from web service to action block?
@Jonathan Hardy
Thanks for providing your resolution details. So it seems the root cause was that your views were defined for a 2MB BLOB but the actual size of 4MB was exceeding that?
------------------------------
Lynn Williams
Senior Principal Support Engineer
Broadcom
Australia
Original Message:
Sent: 04-15-2021 06:37 PM
From: Jonathan Hardy
Subject: Re: How to receive a BLOB data from web service to action block?
had to downsize output message size from 4mb to 2mb.
also, noticed that the intrinsic concat blob function was not available from my toolset. Was able to get it working eventually, but prior to this had to use some inline as a work-around :
// append blob to blob
int rc = 0;
TIRLOB_HANDLE* srclob = &##IN_SRC.WS_BLOB.GENERIC_2MB##;
TIRLOB_HANDLE* dstlob = &##OUT_DEST.WS_BLOB.GENERIC_2MB##;
rc = TIRLBAP(
dstlob,
2097152,
srclob);
##OUT_RC.CSA_GENERIC_WORK_SET.GENERIC_NUMERIC_11## = rc;
and ... as an aside, is there a way to override the error handling (eg user exit) so that I can manage exceptions more gracefully ? I feel that this feature (calling external web service) is volatile, and subject to a number of points of failure end-to-end. We really don't want an abend in a production environment - i'd rather pop up a message like 'contact system support' or similar ...
Original Message:
Sent: 04-15-2021 05:49 PM
From: Jonathan Hardy
Subject: Re: How to receive a BLOB data from web service to action block?
update - managed to get it working.
I'll post my analysis later today ...
Original Message:
Sent: 04-15-2021 05:12 PM
From: Jonathan Hardy
Subject: Re: How to receive a BLOB data from web service to action block?
hi Lynn,
EAB_PREVIEW_OMEGA_BIN is not a true 'external', but an action block with a single statement that invokes the CALL WEBSERVICE
1 +- EAB_PREVIEW_OMEGA_BIN
2 | IMPORTS:
3 | Work View in ws_blob (mandatory,transient,import only)
4 | generic_2mb (mandatory)
5 | EXPORTS:
6 | Work View out ws_retrievedocumentresult (transient,export only)
7 | image
8 | LOCALS:
9 | ENTITY ACTIONS:
10 |
11 | CALL EXTERNAL Web Service "cubaPrevLetterBinary"
- in and out views are both defined as BLOB 2MB.
- In view has b64 content (ie, binary encoded as string); output is expected to be binary pdf.
- after call to this AB, the output BLOB is written directly to a file, which is then opened in a pdf viewer.
curiously, we have a similar AB (EAB_VIEW_OMEGA_BIN) which actually works - ie, it produces valid pdf data which we are able to save and view. The only difference I can see is that EAB_VIEW_OMEGA_BIN has input var text (not BLOB)
Original Message:
Sent: 04-15-2021 02:22 AM
From: Lynn Williams
Subject: Re: How to receive a BLOB data from web service to action block?
Hi @Jonathan Hardy,
I notice your error refers to an EAB/External Action Block. So you are not using the Gen CALL EXTERNAL statement and are just calling a web service from your EAB from which you are passing back BLOB data to the caller CAB/PStep which is when the error occurs?
Anyway, the solution to the previous user's problem was that the BLOB was in (PDF) file format.
BLOB data needs to be in binary format to work with CA Gen 8.5 or 8.6. The below information can be found under the topic "BLOBs" within the CA Gen 8.5 Release Notes BLOBS section:
+++
With CA Gen Release 8.5, the second phase of BLOB support provides the ability to store BLOBs in a database, fetch BLOBs from a database, and to include BLOBs in views so that they can be passed around in the generated application (including external action blocks). This functionality does not include presenting or collecting BLOB data at the user interface, the file system interface, or any other system interface.
+++
You say you have a binary image so the above may not be relevant for you. In that case please open a support ticket so we can research your problem in more detail.
Thanks
Lynn
------------------------------
Lynn Williams
Senior Principal Support Engineer
Broadcom
Australia
Original Message:
Sent: 04-15-2021 01:50 AM
From: Jonathan Hardy
Subject: Re: How to receive a BLOB data from web service to action block?
hi Lynn,
I have an identical problem to that reported above. Getting the following error on return from a web service (which returns a binary image):
TIRM030E: Application failed - Updates have been backed out
TIRM031E: Failing procedure exit data follows:
TIRM032E: Last or current action block id = 0022020120
TIRM033E: Last or current action block name = EAB_PREVIEW_OMEGA_BIN
TIRM034E: Last or current database statement = 0
TIRM035E: Current statement being processed = 0000000001
TIRM037E: ** Fatal Error was encountered ***
TIRM149E: Error occurred in CA Gen supplied function: TIRXMGLB
TIRM305E: Error could not locate value trying to perform external call
TIRM046E: *** Processing terminated ***
TIRM044E: *** Press OK to continue ***
I've tried remapping views, using defaults, etc. Nothing.
Any help appreciated !
Original Message:
Sent: 07-18-2016 03:01 AM
From: Lynn Williams
Subject: Re: How to receive a BLOB data from web service to action block?
Hi Vijayakumar,
As you have a support case 00452266 open I have emailed you to request data from that case & we will troubleshoot this problem there.
Thanks
Lynn
00452266