I have read through this entire thread, and I believe that the confusion is that you are saying linked
list (in the subject), but the data is really a tree structure with a root and branches. Parents,
children, and siblings. I would go with encapsulating all the processing and the datastore within a
service program with sub-procedures such as CreateTree(handle), AddBranch(handle, ...)
GetParent(handle, ...), GetChildren(handle, ...), GetSiblings(handle, ...). Trees are far more
complex than linked lists, but linked lists can only give you element A links to element B links to
element C etc..
Or you could try an array which would be of about the same use as a linked list for this data.
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Lim Hock-Chai
Sent: Wednesday, March 12, 2008 10:45 AM
To: RPG programming on the AS400 / iSeries
Subject: RE: link list returned from service program
Not sure how I can implement your suggestion yet.
As mentioned, our Customer Master file has a Customer Number field and a
Parent Customer Number Field. Our shop refers this as parent and child
relationship. It is very likely for a child to also have a child.
For Example:
Customer Number Parent Number
1234 9234
1234 9235
9234 7811
9234 7812
9235 6811
9235 6812
7811 5833
In some of our application, we need to be able to allow user to perform
action on parent and the process auto apply the action to all its
descendants.
From above example, I'm not sure how I can easily control the
getNextCustomer(), GerParentCustomer(). It is possible, but it will
limit it to only allow one tree request at a time.
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Wilt, Charles
Sent: Wednesday, March 12, 2008 7:17 AM
To: RPG programming on the AS400 / iSeries
Subject: RE: link list returned from service program
Actually, I take back what I said a minute ago about your idea being
reasonable.
Is there any reason for actually passing back the linked list?
You could easily keep the link list implementation hidden, and just
expose procedures like GetNextCustomer(), GetParentCustomer() that would
allow the callers of the service program access to the data while hiding
the fact you're using a linked list.
Encapsulation is a good thing.
Charles Wilt
Software Engineer
CINTAS Corporation - IT 92B
513.701.1307
wiltc@xxxxxxxxxx
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Lim Hock-Chai
Sent: Tuesday, March 11, 2008 6:00 PM
To: RPG programming on the AS400 / iSeries
Subject: RE: link list returned from service program
To create customer family tree. Our customer master file has customer
number field and parent customer number field. Every now and then, we
need to know all the descendants of a customer number. So..., I
created a export procedure that accept a customer number as a
parameter. It will return the caller a link list that represent the
customer's family tree.
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Alan Campin
Sent: Tuesday, March 11, 2008 4:48 PM
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: link list returned from service program
<snip>
Lim Hock-Chai wrote:
I'm just curious to know if I've an export procedure that returns a
link list to the caller, how safe is it to continue to use the link
list after the service program is destroyed from the activation
group?
</snip>
I have to ask. Why are you returning a linked list from a service
program?
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/rpg400-l.
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/rpg400-l.
This e-mail transmission contains information that is intended to be
confidential and privileged. If you receive this e-mail and you are not
a named addressee you are hereby notified that you are not authorized to
read, print, retain, copy or disseminate this communication without the
consent of the sender and that doing so is prohibited and may be
unlawful. Please reply to the message immediately by informing the
sender that the message was misdirected. After replying, please delete
and otherwise erase it and any attachments from your computer system.
Your assistance in correcting this error is appreciated.
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.