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