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



Yes you put the name of the binding directory but it does you no good with
multiple modules. It does not use the binding directory to get the modules
names or at least it didn't in 6.1. I don't have a machine to test on
again. You have to list all the modules in the modules list or you can
enter *ALL but when you do it searches the entire system looking for
modules to bind to and every time I tried it, it would fail. You can do a
generic like XVERRH* but you still have to do it manually.

Much simpler to just use the make tool. Put the instructions in the header
and it creates the object. Simple.


On Mon, Feb 4, 2013 at 12:21 PM, Anderson, Kurt <KAnderson@xxxxxxxxxxxx>wrote:

Hi Alan,

One of us is confused, so let's see who it is. The reason I say that is
because what you're saying you can't do on a CRT* command, I say you can.
In case it's a difference in version, I'm at IBM i 7.1.

On CRTPGM, there is the BNDDIR option where you can reference a binding
directory. It's not module or service program specific. It will bind in
whatever you have listed in the binding directory (I believe it will only
bind in service programs that are referenced, I'm not sure if that
stipulation occurs with modules or not).
CRTPGM PGM(X) BNDDIR(MYLIB/TESTBNDDIR)
CRTSRVPGM SRVPGM(X) BNDDIR(MYLIB/TESTBNDDIR)

We have a general purpose binding directory that houses quite a few of our
service programs. We call it GENSRVPGMB. By default (template), our RPG
programs include this in the H-Spec, and our CL programs include it in the
(our) initialization section of the CL.


If we have a service program that binds in 3 modules, and those 3 modules
are only for the service program, we would either list out those modules on
the CRTSRVPGM command, or create a binding directory specific to the
service program and have that binding directory pulled in in the H-specs of
the program.

-Kurt

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Alan Campin
Sent: Thursday, January 31, 2013 5:26 PM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: RPG - Software Architecture / Best practices

OK, what does you CRTPGM or CRTSRVPGM look like? You have to specify the
modules or put *ALL and the system searches through every module in the
system. I have not quite figured out the purpose of having modules in
binding directories if you have to specify them on the CRT command. There
is no *BNDDIR option on the module name in the CRT command. That is why I
have always used a make tool. Everything is specified in the header of the
source.


On Thu, Jan 31, 2013 at 1:58 PM, Anderson, Kurt <KAnderson@xxxxxxxxxxxx
wrote:

Why aren't binding directories going to deal with multiple modules?

Copied this from a binding directory of ours:
DATEUTIL *MODULE *LIBL 11/12/09 13:14:33
GET_QUIRKS *MODULE *LIBL 11/12/09 13:14:41

-Kurt

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Alan Campin
Sent: Friday, January 25, 2013 10:49 AM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: RPG - Software Architecture / Best practices

But what about multiple modules? You need a make tool(See
www.think400.dk/downloads.htm and look for compile). Binding
directories are not going to deal with a multiple modules.


On Fri, Jan 25, 2013 at 10:44 AM, Buck Calabro <kc2hiz@xxxxxxxxx> wrote:

On 1/25/2013 9:46 AM, Charles MARTIN wrote:

I am a french software architect, in dotnet mainly.
I am not used to program in RPG, but I am working in it.

I have been asked to help RPG programmers to work in a different
way,
using best practices, design patterns, etc.
I am looking for advices, which could help me to get in the right
direction.

-snip-

What I would like to achieve is :

* Use a layered architecture (
https://en.wikipedia.org/wiki/Multitier_architecture)

o Presentation Layer
o Business Layer
o Data Layer

* Do TDD (
https://en.wikipedia.org/wiki/Test-driven_development)
o And later, BDD (
https://en.wikipedia.org/wiki/Behavior_driven_development)


I am doing a Proof of Concept with my colleagues, using the
"Service
programs" to do the layering.
That would be a good start.
I could not find something similar on the net.
Does that seems a good idea to you, the RPG experts ?
How would you do that ?

Sounds like a magnificent idea! To help your colleagues adapt, add
the service program to a binding directory, and put the binding
directory in your standard H-specification. Then your colleagues
can compile easily with PDM option 14 rather than a two step process
of creating a module, then a program. What has helped me is to tell
my colleagues that sub-procedures are nothing more than user-written
BIFs (built-in functions).

There is an open source RPGUnit service program available for TDD.
http://rpgunit.sourceforge.net/ It's not integrated into Eclipse,
but it's a start. A larger issue is how to create and maintain a
representative database - one that will exercise the edge cases
properly.

Bonne chance!
--buck
--
This is the RPG programming on the IBM i (AS/400 and 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 IBM i (AS/400 and 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 IBM i (AS/400 and 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 IBM i (AS/400 and 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 IBM i (AS/400 and 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.

This thread ...

Follow-Ups:
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.