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



Like I said, I don't have a machine to work on so I will have to wait to
test this but based on what I read you still would need to specify the
entrance module which would gain you nothing much. The examples in the
article are not clear. He says use ENTMOD but uses MODULE to put the put
the main. Not clear if this is how you are to do this. Since *PGM is the
default on CRTPGM, if you used ENTMOD *PGM would attempt to use just the
program name for the module so not sure how this would work.


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

The company I'm at was using a binding directory to bind modules before I
was hired, and they were at v5r4 when I was hired.

I just googled 'ibm bnddir introduced' and came across an article from Bob
Cozzi back in 2002 on just this sort of thing. His article may be a bit
more clear than my emails.

http://www.mcpressonline.com/rpg/binding-directories-the-easy-way-to-link-your-modules-and-service-programs.html

I don't mean to discredit your Make tool, but it seems like your
replicating something that can be done very easily on the system. Then
again, I'm really busy and can't afford to go download the tool and check
it out to see if it provides additional benefits beyond the capabilities of
the IBM i.

-Kurt

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

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.


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