|
I did some tests to use QDMROUTE to add a PF member and here is a sample source.
There some differences on the parameters I explained previously. It seemes that
the parameters list is very function dependent (first param)
For a member addition the parameters list is
Parm1 - Function (or Option as IBM calls it) is X'0102' (Why not 0002 ?
I don't know)
Parm2 - SPP to CHAR(30) containing : File, Library and Member to add
Parm3 - SPP to CHAR(256 ?) or a space called DBRDEF in internal OS calls
Parm4 - SYP to the newly add mbr returned by QDMROUTE
Parm5 - SPP to CHAR(21) requested commitment info for the new member
PARM1 and PARM2 are the same as explained into my previous message.
PARM3 is defined as follows :
-----
Bytes pos ! usage
----------------------------------------------------
1 ! X'80' default SHARE(*NO), X'88'=SHARE(*YES)
2 ! X'00' default no EXPDATE, X'08'=EXPDATE specified later
5 to 6 ! Bin(2) (or Bin(4) starting at pos 3?) = TEXT length
7 to 56 ! TEXT description for the new member
70 to 76 ! EXPDATE format is CYYMMDD (Byte 2, bit 4 must be '1')
or X'00'
81 to 90 ! SRCTYPE or X'40'
PARM5
------
Byte 1 = 'N' no commitment definition ID specified ? 'Y' otherwise (I
didn't test Y)
Bytes 2 to 21 = '*CURRENT *CURRENT ' (or what ? )
Here is a sample program to test :
____________________________________________________________
ENTRY * EXT;
/* */
/* Process communication object */
/* */
DCL PTR P_PCO(96) BASPCO;
DCL SPCPTR P_SEPT DEF(P_PCO) POS(1);
DCL PTR SEPT(8000) BAS(P_SEPT);
/*-----------------------------------------------------------------*/
/* QDMROUTE Parms */
/*-----------------------------------------------------------------*/
DCL DD FILELIBMBR CHAR(30);
DCL DD DBRDEF CHAR(256) BDRY(16);
DCL DD TEXTLEN BIN(2) DEF(DBRDEF) POS( 5);
DCL DD TEXT CHAR(50) DEF(DBRDEF) POS( 7);
DCL DD EXPDATE CHAR(7 ) DEF(DBRDEF) POS(70);
DCL DD SRCTYPE CHAR(10) DEF(DBRDEF) POS(81);
DCL DD COMIT CHAR(21 );
DCL DD FUNC CHAR(2);
DCL SPCPTR P_2 INIT(FILELIBMBR);
DCL SPCPTR P_3 INIT(DBRDEF);
DCL SYSPTR P_4;
DCL SPCPTR P_5 INIT(COMIT);
DCL OL DMROUTELIST(FUNC,P_2,P_3,P_4,P_5) ARG; /* QDMROUTE OL */;
/*-----------------------------------------------------------------*/
/* ADDPFM using QDMROUTE */
/*-----------------------------------------------------------------*/
CPYBLA FUNC, X'0102' ;
CPYBLA FILELIBMBR, 'DUMMYFILE QTEMP MBR01 ' ;
CPYBLAP DBRDEF, X'8000',X'00' ;
CPYNV TEXTLEN, 29;
CPYBLAP TEXT, 'Member added by QDMROUTE call',' ' ;
CPYBREP EXPDATE, X'00' ;
CPYBREP SRCTYPE, ' ' ;
CPYBWP P_4, * ;
CPYBLA COMIT, 'N*CURRENT *CURRENT ';
;
CALLX SEPT(110),DMROUTELIST,* /* Call to QDMROUTE */;
;
DEACTPG *;
RTX *;
PEND;
____________________________________________________
to use this sample, compile it, create a PF :
CRTPF FILE(QTEMP/DUMMYFILE) RCDLEN(10) MBR(*NONE)
and call the sample
a dspfd should show you that a member called MBR01 has been added
Thanks to those which have courageously read me until now, I hope my
explanation are quite understandable, my english is so poor ...
Jean-Michel Penasse
EXPERIA Europe
jmpenasse@experia.com
+33(0)4.76.67.07.70
www.experia.com
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.