View Full Version : Navigation Panel
jmartin
04-07-2010, 03:28 PM
I created a folder and moved a file maintenance into it using Navigation
Trees under Administration. I pressed F5 to refresh and now the Navigation does not show anything. I signed out and backin with the vvadmin still could not see anything in the Navigation panel.
I ran: ENDTCPSVR SERVER(*HTTP) HTTPSVR(VALENCE21J)
then: GRTOBJAUT OBJ(VALENCE21J/*ALL) OBJTYPE(*ALL) USER(JMARTIN) AUT(*ALL) REPLACE(*YES)
then: STRTCPSVR SERVER(*HTTP) HTTPSVR(VALENCE21J)
Still nothing in Navigation panel.
James
James R. Martin
J. Martin Associates
5185 Tara Ln., Bossier City, LA 71111 - 7810
Phone: (318) 752-4109 Cell Phone: ( 318) 773-9484
Personal e-mail: jmartin@jmartinassociates.net
Web Site: www.jmartinassociates.net
sean.lanktree
04-07-2010, 03:56 PM
We are going to be generating a new release/update that will include the fix to this...probably within the next 48 hours or so. In the meantime, I want to provide the code to prevent this from happening again.
The RPG program is VVNAVS, should be in the Valence21 library in QRPGLESRC. Position to procedure "SendBackNavRecord". The new lines of code are in red.
**-------------------------------------------------------------
p SendBackNavRecord...
p b
d pi
d navRecord ds likerec(ntq100) inz
d lngkey s like(Wvvkey)
d keyLength s 2 0
d writeWorkFiles s n
d copyMode s n
d count s like(vvsort)
/free
post_NavID=vvIn_num('navid');
copyMode =vvIn_char('mode')='copyNav';
if not %open(vvlck100);
open vvlck100;
endif;
if not %open(vvntq20w);
open vvntq20w;
endif;
if not %open(vvlcq20w);
open vvlcq20w;
endif;
chain ('NAVIGATIONTREE':post_NavId) vvlck100;
if %found(vvlck100) and vvlcksid <> vvSessId and not copyMode;
// it is locked, ensure that the locking session is still active...
// if not, delete the record and the related work file records and carry on...
//
if vvSecure_isLoggedIn(vvlcksid);
// send back message explaining...
//
sessionDS = vvUtility_getSessVar(VVSESSVAR:vvlcksid);
vvOut_toJsonPair('SUCCESS:0'+COMMA+'USER:'+
%trim(sessionDS.vvusername));
return;
else;
delete lck100;
Exec sql delete from vvntq20w where vvntid = : post_NavId;
Wvvkey = 'nav'+%editc(post_NavId:'X');
Exec sql delete from vvlcq20w where substr(vvkey,1,9)=:Wvvkey;
writeWorkFiles = TRUE;
endif;
elseif not %found(vvlck100) and not copyMode;
vvlcksid = vvSessId;
vvlckstmp = %timestamp();
vvlckpgm = pgmq;
vvlcktyp = 'NAVIGATIONTREE';
vvlckval = post_NavId;
write lck100;
writeWorkFiles = TRUE;
elseif %found(vvlck100) and not copyMode;
vvlckstmp = %timestamp();
update lck100;
Exec sql delete from vvntq20w where vvntid = : post_NavId;
Wvvkey = 'nav'+%editc(post_NavId:'X');
Exec sql delete from vvlcq20w where substr(vvkey,1,9)=:Wvvkey;
writeWorkFiles = TRUE;
elseif copyMode;
writeWorkFiles = TRUE;
endif;
if not %open(vvntq100);
open vvntq100;
endif;
if not %open(vvntq200);
open vvntq200;
endif;
chain(n) (post_NavID) vvntq100 navRecord;
vvOut.object ='VVNTQ100';
vvOut.encodeUTF16 ='Y';
vvOut.success ='Y';
vvOut_toJSON(vvOut:%addr(navRecord));
// copy the records into the work files...
//
if writeWorkFiles;
setll (post_NavId) vvntq200;
reade(n) (post_NavId) vvntq200;
dow not %eof(vvntq200);
if copyMode;
Wvvntid = 0;
else;
Wvvntid = vvntid;
endif;
count += 1;
Wvvsort = count;
Wvvdepth = vvdepth;
Wvvparent = vvparent;
Wvvchildfld = vvchildfld;
Wvvchildopt = vvchildopt;
Wvvtooltip = vvtooltip;
Wvviconcls = vviconcls;
Wvvsid = vvSessId;
write ntq20w;
reade(n) (post_NavId) vvntq200;
enddo;
lngkey = 'nav'+%editc(post_NavId:'X');
keyLength = %len(%trim(lngKey));
if not %open(vvlcq200);
open vvlcq200;
endif;
setll (lngKey) vvlcq200;
read(n) vvlcq200;
dow not %eof(vvlcq200);
if lngkey = %subst(Kvvkey:1:keyLength);
if copyMode;
%subst(Kvvkey:4:6)='000000';
endif;
Wvvkey = Kvvkey;
Wvvlng = Kvvlng;
Wvvkeyval = Kvvkeyval;
Wvvsid = vvSessId;
write lcq20w;
endif;
read(n) vvlcq200;
enddo;
endif;
return;
/end-free
p e
jmartin
04-07-2010, 04:56 PM
I made the changes in Red and recompile the program in VALENCE21 and VALENCE21J.
I ran: ENDTCPSVR SERVER(*HTTP) HTTPSVR(VALENCE21J)
then: STRTCPSVR SERVER(*HTTP) HTTPSVR(VALENCE21J)
signed back on with new browser still no Navigation panel for VVADMIN or JMARTIN.
in the Library VALENCE21 everything works fine but I have not made any changes to Navigation Panel using Navigation Trees but did make the changes in Red and recompile the program in VALENCE21.
James
James R. Martin
J. Martin Associates
5185 Tara Ln., Bossier City, LA 71111 - 7810
Phone: (318) 752-4109 Cell Phone: ( 318) 773-9484
Personal e-mail: jmartin@jmartinassociates.net
Web Site: www.jmartinassociates.net
sean.lanktree
04-07-2010, 05:02 PM
The changes you put in will prevent the problem from occurring again, however, it will not fix the broken tree. I assume the "*Master" tree in your Valence21J instance is broke? If so, can you copy the records from VVNTQ200 in your Valence21 to the same file in Valence21J. Only copy the records that have a VVNTID=1.
richard.milone
04-07-2010, 05:24 PM
I would suggest copying both VVNTQ200 and VVLCQ200 from your "working" instance. The VVLCQ200 holds the language translations for each option record and if you don't also copy that one the records could become out of sync.
jmartin
04-07-2010, 05:29 PM
Sean:
That worked. I also copied VVLCQ200 as Richard suggested.
Thanks.
James
James R. Martin
J. Martin Associates
5185 Tara Ln., Bossier City, LA 71111 - 7810
Phone: (318) 752-4109 Cell Phone: ( 318) 773-9484
Personal e-mail: jmartin@jmartinassociates.net
Web Site: www.jmartinassociates.net
vBulletin® v3.7.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.