× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



(this is cross-posted at midrange-L as well)

Running iOS 7.1 (TR8, I think).



I'll be using the Integrated Web Services wizard to generate a web service that provides data to a business partner. I need to send data in the form of multiple arrays. I am able to do this by having the service program function return data structures shown in D-specs similar to below (simplified a bit here), but the actual number of array rows used will vary, up to the dim limits.



D GetEBPPdata3...

D PR Extproc('EBPPTEST3')

D likeDS(rtnDS) RTNPARM

D Account 7a const

D Phone 13a const

D EmailIn 64a const



D rtnDS ds qualified

D Account likeDS(Set1)

D PhonesCount 10i 0

D Phone likeDS(Set2) dim(32)

D PaymentsCount 10i 0

D Payment likeDS(Set3) dim(16)



* fields that pertain to Account

d Set1 ds qualified inz

d Success n inz

d MsgText 128a

d DateDue 10a

d NextAutoPayDate...

d 10a



* fields that pertain to each phone on account

d Set2 ds qualified inz

d PhoneNumber 10 0 inz

d AmtDue 8 2 inz

d BankRouting 9 0 inz

d BankAccount 16a



* fields that pertain to each prior payment

d Set3 ds qualified inz

d PhoneNumber 10 0 inz

d Amount 8 2 inz

d PaidDate 10a

d Status 16a



When I test the web service, the resulting XML is pretty close to perfect, except that I need to find a way to restrict the output from including all the "empty" array rows. For the "Set2" stuff, I get XML for all 32 rows, when only 2 rows are used:



...<PHONESCOUNT>2</PHONESCOUNT>

<PHONE>

<PHONENUMBER>5290001</PHONENUMBER>

<AMTDUE>25.11</AMTDUE>

<BANKROUTING>987654321</BANKROUTING>

<BANKACCOUNT>1234567890</BANKACCOUNT>

</PHONE>

<PHONE>

<PHONENUMBER>5290002</PHONENUMBER>

<AMTDUE>50.05</AMTDUE>

<BANKROUTING>456987123</BANKROUTING>

<BANKACCOUNT>98745612</BANKACCOUNT>

</PHONE>

<PHONE>

<PHONENUMBER>0</PHONENUMBER>

<AMTDUE>0.00</AMTDUE>

<BANKROUTING>0</BANKROUTING>

<BANKACCOUNT></BANKACCOUNT>

</PHONE>

<PHONE>

<PHONENUMBER>0</PHONENUMBER>

<AMTDUE>0.00</AMTDUE>

<BANKROUTING>0</BANKROUTING>

<BANKACCOUNT></BANKACCOUNT>

</PHONE>

<PHONE>

<PHONENUMBER>0</PHONENUMBER>

<AMTDUE>0.00</AMTDUE>

<BANKROUTING>0</BANKROUTING>

<BANKACCOUNT></BANKACCOUNT>

</PHONE>

<PHONE>

<PHONENUMBER>0</PHONENUMBER>

<AMTDUE>0.00</AMTDUE>

<BANKROUTING>0</BANKROUTING>

<BANKACCOUNT></BANKACCOUNT>

</PHONE>

<PHONE>

<PHONENUMBER>0</PHONENUMBER>

... [for all 32 rows. Same issue with the <Payment> array for 16 rows.]



If my output was a single array, my understanding is that I might have an opportunity in the wizard to define the output structure count to be a run-time variable instead of the dim default. My output, as a "structure of structures" does not appear to allow me any chance at fixing the counts.



Is there a way to specify PhonesCount and PaymentsCount someplace as the runtime values of array rows to return?



Many thanks.



Michael Koester

Programmer/Analyst



Michael Koester
Programmer/Analyst

DataEast

(603) 529-6278


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.