Q. I have a multi-company General Ledger system. Each company has its own set of files. The record formats are the same for the different companies. I define the files externally. Some programs such as the payroll G/L entries now reference more than one G/L master file. I don't know if there is a way to eliminate multiple RPG file specifications for the different G/L master files. I thought of two approaches. One is to make each company a member in the new externally defined G/L master. I know you can specify member(*all) on the OVRDBF statement but the CL manual says that you can then only read the records sequentially. The other idea is a logical over the physical files but I'm unsure about having a logical over files with the same record format name. Does anybody have any suggestion or comments?
A. Whether you decide to use a single multiple-member file, or multiple files, you could still create a single logical over the whole shebang.
If you elect to use the multiple file approach though, you do need to have a separate record name for each physical file. A logical file record does not necessarily need to have the same name as the based-on physical file record. If it doesn't, you need to list all the fields that you want included in the record. This can be as simple as copying the field definitions from the physical file source and deleting everything except the field names. You can also rearrange or modify the definitions of the fields if you wish. You end up with something like 5.
If you elect to use the multiple file approach though, you do need to have a separate record name for each physical file. A logical file record does not necessarily need to have the same name as the based-on physical file record. If it doesn't, you need to list all the fields that you want included in the record. This can be as simple as copying the field definitions from the physical file source and deleting everything except the field names. You can also rearrange or modify the definitions of the fields if you wish. You end up with something like Figure 5.
If you go with the single multiple-member file, you can specify DTAMBRS(*ALL) (the default) on the CRTLF or ADDLFM command. I've never used this myself, but I have accidentally created this type of logical a few times when writing applications that use multiple member files. Just be sure not to specify the UNIQUE keyword for the access path.
You may have better control with the pseudo-multiple record type logical, because it allows you to use the record names to discriminate between the different physical files, but either way should work just fine.
TechTalk: File Design
Figure 5 Logical file definition for multiple PFs
Figure 5: Logical File Definition for Multiple Physical Files ... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+ A R COMPANY1 PFILE(GLMAST1) A FIELD1 A FIELD2 A FIELD3 A K FIELD1 A K FIELD2 A R COMPANY2 PFILE(GLMAST2) A FIELD1 A FIELD2 A FIELD3 A K FIELD1 A K FIELD2 ... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+
LATEST COMMENTS
MC Press Online