***************************************************************************** * * Transaction Logger Activation of file STUB * * Module %M% Version %I% Date %H% * * (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved * This is unpublished proprietary source code of Ardent Software Inc. * The copyright notice above does not evidence any actual or intended * publication of such source code. * ******************************************************************************* * * Maintenence log - insert most recent change descriptions at top * * Date.... GTAR# WHO Description......................................... * 10/14/98 23801 SAP Change copyrights. * 09/18/96 19269 DJD Added NT file sep. support. * 03/28/96 18212 LAG Windows NT port * 11/17/94 15270 EAP Corrected type in file header * 11/16/94 15270 EAP Moved index file handling into log_main * 10/25/94 15178 EAP More informative when activating Indexed files * 09/16/94 15016 DTM Fixed condition where file had been activated before * 07/22/94 13286 DTM Cleaned up message output... * 07/13/94 14357 EAP Modified to activate INDEX files * 04/28/93 10228 DTM Enhanced to use MOTIF style... * 02/09/93 11033 CSM Process file names containing $ * 12/19/91 8483 GMH Fixed error message from UV.ACCOUNT check * 12/16/91 8997 GMH Added uvhome path * 10/08/91 8439 GMH Added entry for multiple files per account * 09/13/91 8438 GMH Added UV.ACCOUNT check * 09/13/91 8436 GMH Removed TLprim/TLsec verification * 05/14/91 8345 KIS Changed PRINTs to TPRINTs * 04/25/91 8230 KIS Added null var for CINPUT * 03/25/91 8169 KIS Added extra arg to CHOICE.box.B * 03/11/91 7876 KIS Added args = '' * 02/24/91 7915 KIS Added prompts for acct and filename * 02/12/91 7911 KIS Changed HELP to CHOICE box for user to acknowl. * 01/07/91 7896 KIS Changed call of log.activate to "log_main 1" * 12/29/90 7791 KIS Added call to ISUSER.B * 04/06/90 - KIS Initial * ******************************************************************************* * $INCLUDE UNIVERSE.INCLUDE MTF.INCL.H $INCLUDE UNIVERSE.INCLUDE FILENAMES.H $INCLUDE UNIVERSE.INCLUDE MACHINE.NAME * ************************************** * Initializations ************************************** CLSCR = @(-1) CLLIN = @(-4) ************************************************************************* * The program is a stub in SysAdmin to run the C program log.activate ************************************************************************* title = 'Transaction Logging File Activation' args = "" temp = "" temp2 = "" b.array = "" b.array<1> = 1 b.array<2> = UVREADMSG(073029,"") sel = 1 dtype = 0 hit.return = "" hit.return = UVREADMSG(001403,"") EQU size TO 3 EQU devtype TO 4 * Get uid of user CALL *ISUSER.B(0,id2) * Display GOSUB init.form GOSUB init.menu TPRINT CLSCR CALL *DRAW.SCRN.B(title,1) msg = "This program is used to allow the administrator to activate one or " msg := "more programs for logging" CALL *PUT.FORM.B(form.size,form,"","?",1) CALL *MNU.BAR.PR.B(Menu.Bar,1) * Do work if superuser IF id2 = 1 THEN * Make certain devices are configured * Commented out for gtar 8436 * gosub VERIFY.LOG.DEVICES: * Prompt for Account name and filename * Let's first open the UV.ACCOUNT file open 'UV.ACCOUNT' to VALID.ACCOUNTS else temp = UVREADMSG(1322,"UV.ACCOUNT") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":hit.return<1>,b.array,sel,"") stop end accnam = '' CALL *HELP.PRINT.B(msg, 3) INPUT.LOOP: * Enter account name * PRINT @(10,5):CLLIN: * CALL *UVPRINTMSG(85122,""); CALL *HELP.PRINT.B(form,2) TPRINT form: inputvalue='' special = '' CALL *CINPUT.B(" ",inputvalue,special,form,form) * Verify results IF special # 0 THEN BEGIN CASE CASE special = ESCAPE TPRINT CLSCR STOP CASE special = F.1 CALL *HELP.PRINT.B(form, 3) GOTO INPUT.LOOP CASE special = F.4 BEGIN CASE CASE form.line = 1 GOSUB List.Accounts if (sel.val > 0) THEN accnam = list.array end else CALL *PUT.FORM.B(form.size,form,input.form,"?",1) GOTO INPUT.LOOP end input.form<1> = accnam form.line = 2 CASE form.line = 2 GOSUB List.Files if (ans > 0) THEN filnam = list.list end else CALL *PUT.FORM.B(form.size,form,input.form,"?",1) CALL *HELP.PRINT.B("",1) GOTO INPUT.LOOP end input.form<2> = filnam CALL *PUT.FORM.B(form.size,form,input.form,"?",1) GOTO DoFileCheck: END CASE CALL *PUT.FORM.B(form.size,form,input.form,"?",1) CASE special = F.10 action.value=1 CALL *DO.MNU.BAR.B(Menu.Bar,action.value,form.size,form,input.form) BEGIN CASE CASE action.value = 1 STOP @(-1) CASE action.value = 2 STOP @(-1) CASE action.value = 3 message=gmsg CALL *HELP.BOX.B(3,10,60,message) CASE action.value = 4 message=UVREADMSG(076001,"") CONVERT @FM TO " " IN message CALL *HELP.BOX.B(3,10,60,message) CASE action.value = 5 CALL *HELP.BOX.B(3,10,45,UVREADMSG(076000,"")) END CASE CALL *PUT.FORM.B(form.size,form,input.form,"?",1) goto INPUT.LOOP CASE special = UP.ARROW if form.line # 2 then GOTO INPUT.LOOP: form.line = 1 GOTO INPUT.LOOP: CASE 1 sel = 1 CALL *PUT.FORM.B(form.size,form,input.form,"?",1) goto INPUT.LOOP: END CASE END ELSE BEGIN CASE CASE form.line = 1 IF inputvalue = '' THEN TPRINT CLSCR;STOP accnam = inputvalue * Let's verify accname entered readv temp from VALID.ACCOUNTS,accnam,0 else temp = UVREADMSG(85001,accnam) temp := " ":hit.return<1> CALL *CHOICE.BOX.B(5,10,40,temp,b.array,sel,"") CALL *PUT.FORM.B(form.size,form,input.form,"?",1) goto INPUT.LOOP: end filnam = '' input.form<1> = accnam form.line = 2 GOTO INPUT.LOOP: CASE form.line = 2 filnam = inputvalue IF filnam = '' THEN GOTO INPUT.LOOP: input.form<2> = filnam CALL *HELP.PRINT.B(UVREADMSG(073058,""),3) DoFileCheck: * Check if DICT or PDICT part of file, then parse out. numsp = COUNT(filnam,' ') dname = "" IF numsp = 1 THEN dname = FIELD(filnam," ",1) filnam = FIELD(filnam," ",2) IF dname = 'DICT' THEN dtype = 1 END ELSE IF dname = 'PDICT' THEN dtype = 2 END ELSE temp = UVREADMSG(85130,"") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":hit.return<1>,b.array,sel,"") CALL *PUT.FORM.B(form.size,form,input.form,"?",1) goto INPUT.LOOP: END END ELSE IF numsp = 0 THEN IF filnam = 'DICT' OR filnam = 'PDICT' THEN temp = UVREADMSG(85124,"") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":hit.return<1>,b.array,sel,"") CALL *PUT.FORM.B(form.size,form,input.form,"?",1) goto INPUT.LOOP: END dtype = 0 END ELSE temp = UVREADMSG(85130,"") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":hit.return<1>,b.array,sel,"") CALL *PUT.FORM.B(form.size,form,input.form,"?",1) goto INPUT.LOOP: END GOSUB DisplayIt msg = "Account (":accnam:") - Filename (":filnam:") has been " msg :="activated. Please enter another, or hit return/ESCAPE to exit" CALL *HELP.PRINT.B(msg, 2) CALL *PUT.FORM.B(form.size,form,input.form,"?",1) END CASE END goto INPUT.LOOP: END ELSE *Must be a superuser to execute this program. temp = UVREADMSG(71000,"") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":hit.return<1>,b.array,sel,"") TPRINT CLSCR: END * End of main STOP * *Start of subroutines * VERIFY.LOG.DEVICES: *** Open &DEVICE& file to make sure that devices were configured *** OPEN '','&DEVICE&' TO fvdevice ELSE temp = UVREADMSG(1322,"&DEVICE&") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":hit.return<1>,b.array,sel,"") stop END READ TLprim FROM fvdevice, 'TLprim' ELSE args<1> = "TLprim" args<2> = "&DEVICE&" temp = UVREADMSG(20052,args) temp2 = UVREADMSG(85209,"") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":temp2<1>:" ":hit.return<1>,b.array,sel,"") stop END READ TLsec FROM fvdevice, 'TLsec' ELSE args<1> = "TLsec" args<2> = "&DEVICE&" temp = UVREADMSG(20052,args) temp2 = UVREADMSG(85209,"") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":temp2<1>:" ":hit.return<1>,b.array,sel,"") stop END *** Make sure TLprim & sec contain somewhat appropriate config. info if TLprim[1,1] # 'L' or NOT(NUM(TLprim)) then temp = UVREADMSG(85214,"TLprim") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":hit.return<1>,b.array,sel,"") stop END if TLsec[1,1] # 'L' or NOT(NUM(TLsec)) then temp = UVREADMSG(85214,"TLsec") CALL *CHOICE.BOX.B(7,7,40,temp<1>:" ":hit.return<1>,b.array,sel,"") stop END END.OF.VERIFY: RETURN init.form: form= NULL form.size = 2 form.line = 1 form<1,1> = @(3,6) form<1,2> = @(52,6) form<1,3> = "Enter account name containing file to activate:" form<1,4> = "Enter account name containing file or F4 to get a complete " form<1,4> := "list of uniVerse accounts" form<1,5> = form<1,4> form<1,6> = 25 form<1,7> = 1 form<2,1> = @(3,8) form<2,2> = @(52,8) form<2,3> = "Enter file to activate:" form<2,4> = "Enter file to be activated for logging" form<2,5> = form<1,4> form<2,6> = 25 form<2,7> = 1 input.form = "" input.form<1> = "" input.form<2> = "" return *************************************************************************** * init.menu - initializes menu bar *************************************************************************** init.menu: scratch=UVREADMSG(073087,"") Menu.Bar = NULL Menu.Bar<1,1> = 3 ;* Number of Items in Menu.Bar Menu.Bar<1,2> = 1 ;* Line # on which to print the Menu Bar * First Item Menu.Bar<2,1,1>=scratch<1> ;* SubMenu Title Menu.Bar<2,1,2>=1 ;* # of items in SubMenu * SubMenu #1 Menu.Bar<2,2,1>=scratch<6> ;* SubMenu Item Menu.Bar<2,2,2>=1 ;* Action Code (Returned to calling process) Menu.Bar<2,2,3>=scratch<7> * Second Item Menu.Bar<3,1,1>=scratch<8> ;* SubMenu Title Menu.Bar<3,1,2>=1 ;* # of items in SubMenu * SubMenu #1 Menu.Bar<3,2,1>=scratch<6> ;* SubMenu Item Menu.Bar<3,2,2>=2 ;* Action Code Menu.Bar<3,2,3>=scratch<7> scratch=UVREADMSG(073089,"") Menu.Bar<4,1,1>=scratch<1> Menu.Bar<4,1,2>=3 Menu.Bar<4,2,1>=scratch<2> Menu.Bar<4,2,2>=3 gmsg = "Transaction Logging File Activation - This applications is used " gmsg :=" to activate files for transaction logging." Menu.Bar<4,2,3>=gmsg Menu.Bar<4,3,1>=scratch<4> Menu.Bar<4,3,2>=4 Menu.Bar<4,3,3>=scratch<5> Menu.Bar<4,4,1>=scratch<6> Menu.Bar<4,4,2>=5 Menu.Bar<4,4,3>=scratch<7> RETURN List.Accounts: CALL *HELP.PRINT.B(UVREADMSG(073058,""),2) SELECT VALID.ACCOUNTS list.array="" lping = 1 uv.acct.cnt = 0 LOOP READNEXT temp ELSE lping = 0 uv.acct.cnt+=1 list.array = temp READ invar FROM VALID.ACCOUNTS,temp ELSE NULL list.array=invar<11> UNTIL lping = 0 REPEAT sel.val=1 title="" title<1>=0 title<2>="Account" title<3>="Directory" CALL *LIST.BOX.B(title,4,11,list.array,uv.acct.cnt,2,sel.val,0) CALL *HELP.PRINT.B("",3) RETURN List.Files: CALL *HELP.PRINT.B(UVREADMSG(073058,""),2) command = 'SSELECT REMOTE.VOC WITH TYPE = "F" AND WITH F2 UNLIKE ".../..."' command := ' AND WITH F2 UNLIKE "...\..."' execute "SSELECT UV.ACCOUNT ":accnam:" SAVING PATH" capturing SCREEN readlist tmp else return rvoc = "" rvoc<1> = "F" rvoc<2> = tmp:"/VOC" rvoc<3> = "D_VOC" OPEN 'VOC' to UV.VOC ELSE RETURN write rvoc on UV.VOC, "REMOTE.VOC" else temp = UVREADMSG(085624,"") RP = "" RP<1> = 1 RP<2> = UVREADMSG(073029,"") sel = 1 HR = UVREADMSG(001403,"") call *CHOICE.BOX.B(5,7,40,temp<1>:" ":HR<1>,RP,sel,"") CALL *PUT.FORM.B(form.size,form,input.form,"?",1) RETURN END execute command capturing SCREEN readlist list.list else return end list.max = DCOUNT(list.list,@fm) max.lines = if list.max > 11 then 11 else list.max ans = 1 list.list = DELETE(list.list,1) call *LIST.BOX.B("Files", 4, max.lines, list.list, list.max, 1, ans, 0) IF ans # -1 THEN filnam = list.list END RETURN DisplayIt: TPRINT CLSCR command = OS.EXEC:" '":UV.ROOT:"/bin/log_main 1" command:= " ":'"':accnam:'"':" ":dtype:" ":dname:" ":'"':filnam:'"':"'" execute command message = "Press Return to Continue" CALL *HELP.BOX.B( 9, 10,50,message ) CALL *DRAW.SCRN.B( title, 1) CALL *PUT.FORM.B(form.size,form,input.form,"?",1) CALL *MNU.BAR.PR.B(Menu.Bar, 1) RETURN * * End of program * END