×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Which bit would you struggle with in SQL? You can easily control how many elements there are in the array using JSON_ARRAYAGG and the grouping criteria for each set (or derive one if one doesn't exist).

Not sure I understand the issue writing files with dynamic names either. Easily done with and SQL BLOB_FILE/CLOB_FILE type in RPG.

Tim



Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Greg Wilburn <gwilburn@xxxxxxxxxxxxxxxxxxxxxxx>
Sent: Wednesday, February 2, 2022 2:03:58 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: YAJLDTAGEN with SQL into DS

I knew this was coming.. lol.

I need to be more granular. I need to control how many elements are in each json file and name the files accordingly. This isn't a case where the app is responding to a web service. Rather, creating JSON data files for a batch process to get data into another system.

The job below is easy with native access, but becomes difficult when using SQL.

-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Tim Fathers
Sent: Wednesday, February 2, 2022 4:30 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: YAJLDTAGEN with SQL into DS

Why would you not just use SQL to create the JSON directly?

Tim

________________________________
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Greg Wilburn <gwilburn@xxxxxxxxxxxxxxxxxxxxxxx>
Sent: 01 February 2022 22:03
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: YAJLDTAGEN with SQL into DS

So I have a working application where I've used SQL data access to load a Data structure.

dcl-ds Customers qualified dim(50) inz;
addr_line1 varchar(40) inz('');
addr_line2 varchar(40) inz('');
city varchar(40) inz('');
state varchar(3) inz('');
zip varchar(10) inz('');
phone varchar(22) inz('');
email varchar(50) inz('');
end-ds;

I then use YAJLDTAGEN to create the JSON file:
DATA-GEN %SUBARR(customers:1:sqlRows)
%DATA(inStmf: 'doc=file output=clear')
%GEN('YAJLDTAGEN');

Output looks like this:
[
{
"addr_line1": "64a N Williams St",
"addr_line2": "",
"city": "Crystal Lake",
"state": "IL",
"zip": "60014",
"phone": "7792204179",
"email": "marvinstoys@xxxxxxxxx"
},
{
"addr_line1": "267 Main St",
"addr_line2": "",
"city": "Huntington",
"state": "NY",
"zip": "11743",
"phone": "6315498743",
"email": "lsdolls@xxxxxxx"
}
]


The endpoint has asked for this:
{
"Customers": [
{
"addr_line1": "64a N Williams St",
"addr_line2": "",
"city": "Crystal Lake",
"state": "IL",
"zip": "60014",
"phone": "7792204179",
"email": "marvinstoys@xxxxxxxxx"
},
{
"addr_line1": "267 Main St",
"addr_line2": "",
"city": "Huntington",
"state": "NY",
"zip": "11743",
"phone": "6315498743",
"email": "lsdolls@xxxxxxx"
}
]
}

I know how to create the DS... but then I'm not sure how to do Exec SQL INTO that DS.
I'm pretty sure the "into variable" cannot be "json.Customers".

What am I missing?

TIA,
Greg


[Logo]<https://www.totalbizfulfillment.com/> Greg Wilburn
Director of IT
301.895.3792 ext. 1231
301.895.3895 direct
gwilburn@xxxxxxxxxxxxxxxxxxxxxxx<mailto:gwilburn@xxxxxxxxxxxxxxxxxxxxxxx>
1 Corporate Dr
Grantsville, MD 21536
www.totalbizfulfillment.com<http://www.totalbizfulfillment.com><http://www.totalbizfulfillment.com<http://www.totalbizfulfillment.com>><http://www.totalbizfulfillment.com<http://www.totalbizfulfillment.com><http://www.totalbizfulfillment.com<http://www.totalbizfulfillment.com>>>
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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

This mailing list archive is Copyright 1997-2026 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.