× 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.



You could have a single service program that accesses a file or data area to get the next available sequence number. (This is assuming you don't reuse numbers that were requested but never used, or are no longer on the system.) However you'll have multiple instances running (one per user/job), so it would need to be able to handle file locking - although this should be ok b/c if this srvpgm is the only one to touch this particular file/data area, you can guarantee (unless the srvpgm has a major bug) that the lock would only remain for a split second. The procedure call could be something like: invNum = getNextInvoiceNumber();

To have one instance of it, you could have it running as a job (so in this case it wouldn't be a service program, but a normal program), and it could handle data passing through data queue transactions (receive request, send invoice number). It could probably be done via another method in place of data queues as well, but that's what comes to mind.

Kurt Anderson
Sr Programmer/Analyst
CustomCall Data Systems


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Kim Spears
Sent: Monday, June 22, 2009 4:59 PM
To: RPG programming on the IBM i / System i
Subject: Sequential numbering service program +ILE architecture

I have two sets of programs/files that can generate invoices, one for
parts and one for tooling. They exist as two separate systems. It
appears that one of the reasons for making them separate is that they
could both be run at the same time by different users. The way the
invoice programs are written, if both systems used the same invoice
numbering storage, duplicate numbers could result.

I wish to more closely integrate these separate systems, however to do
so I need an invoice numbering routine that would ensure that no matter
how many invoicing programs were in use each program cycle would get the
next unique sequential number and not cause record locks.

It seems that a service program would be in order. The question is, how
do I make sure only one instance of the procedure can run?

Or, maybe I'm asking the wrong question. How can I make sure to
programs that run simultaneously can be guaranteed a unique sequential
number?


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-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.