As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.
Join the TIBCO Community TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.
From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
Request access to the private WebFOCUS User Group (login required) to network with fellow members.
Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.
I am consuming a web service that returns an array of arrays. I've heard something about everything coming back as a single column that required multiple defines and computes just to assemble a report.
That service returns an array of info about the files in a directory on the reporting server.
Basically, in this case, it's a multi-segmented structure, and I create a counter that's associated with the 1-level-higher segment.
DEFINE FILE WSWF_WEBFOCUSLISTFEXS
-* Create a counter 1 level above the VALUESENTRY segment level in
-* order to determine the array value being returned.
COUNTER/I9 WITH STRINGARRAY=COUNTER + 1;
-* Create a counter at the VALUESENTRY level to sequentially number
-* the complete records coming back.
CTR2/I9 WITH VALUESENTRY=IF COUNTER EQ LAST COUNTER THEN CTR2 + 1 ELSE 1;
END
TABLE FILE WSWF_WEBFOCUSLISTFEXS
-* VALUESENTRY contains the actual data being returned form the WS Function.
SUM VALUESENTRY AS 'FLD'
BY CTR2
ACROSS COUNTER
-* This statement is always required.
WHERE TIME EQ 0 AND DOSIGNON EQ 'true'
-* Designate the application with files to be listed
WHERE APP EQ 'ibisamp'
ON TABLE SET ASNAMES ON AND HOLDLIST PRINTONLY
ON TABLE HOLD
END
-* Now that we've held the file, each column should be uniquely named
-* ie. FLD1 FLD2 FLD3, etc and we can reference individual columns as needed.
TABLE FILE HOLD
PRINT
FLD1 AS 'File Type'
FLD4 AS 'Date'
FLD5 AS 'Time'
FLD6 AS 'Internal Time'
FLD7 AS 'Size in Bytes'
BY FLD3 AS 'File Extension'
BY FLD2 AS 'File Name'
END
Posts: 21 | Location: Texas | Registered: October 24, 2006
Thanks so much for responding to this. However, I am consuming a web service that is provided by a different application that is outside of Webfocus. An adapter was created that can successfully connect to the external web service but isn't returning the entire results.
The sample code looks like it is a web service function provided by Webfocus, so unfortunatly, it's not applicable.
If you are consuming a Web Service using the Web Services Adapter, proper metadata is created. So Arrays within Arrays are supported. The metadata is based on the WSDL file. So if the WSDL file is incorrect, it might only define one Segment in the Master for the Response.
Posts: 229 | Location: New York | Registered: July 27, 2004