THE WELCH COMPANY
440 Davis Court #1602
San Francisco, CA 94111-2496
415 781 5700


S U M M A R Y


DIARY: November 10, 2002 08:44 AM Sunday; Rod Welch

Fix Subject reports and revise error message.

1...Summary/Objective
2...06112 Reports for Multiple Users Needs Correction
3...000007 Macro 120 Manage User ID
4...061122 Configure Report Specification

ACTION ITEMS.................. Click here to comment!

1...We need a code revision that compares User IDs and checks
2...What about short term reprots?

CONTACTS 

SUBJECTS
Subject Reports User ID

0503 -    ..
0504 - Summary/Objective
0505 -
050501 - Follow up ref SDS 7 0000, ref SDS 6 0000.
050502 -
050503 - Yesterday Gary Johnson reported a problem with the subject report not
050504 - handling the User ID correctly.  Review shows why this occurred, and
050505 - we make a preliminary correction today, so that code can be issued to
050506 - Gary that permits continuing to work. ref SDS 0 1W9O  Set action item
050507 - to revise the SDS code so it supports drawing reports for multiple
050508 - Users to enable collaboration, and it protects privacy by omitting
050509 - records that are marked confidential. ref SDS 0 IZ8H
050510 -
050511 -     [...in another record today, notified Gary. ref SDS 10 0001
050512 -
050513 -
050514 -
050515 -
050516 -
050517 -  ..
0506 -
0507 -
0508 - Problem
0509 -
050901 - This feature calls 061121 from 06112.
050902 -
050903 - Work on Gary's records reported yesterday, ref SDS 9 VY5F, show that
050904 - we need to revise the error message system so we get a report on
050905 - something, rather than stop everything because one record is missing.
050906 - ref SDS 9 HR5O
050907 -
050908 -  ..
050909 - There is a specific problem that the code is not using the specified
050910 - User ID for creating a report spec. ref SDS 9 P69N  The specified User
050911 - ID is used to create lists of the records, but is not reading the User
050912 - ID to get the actual records, as reported on 021109. ref SDS 9 P655
050913 -
050914 -  ..
050915 - Analysis shows the code is using the user specified User ID to find
050916 - the right records, but the code is not using the User ID field in the
050917 - file specification of the records that have been assembled to read
050918 - into the User's report the actual records. ref SDS 0 VG3F
050919 -
050920 - This results in an incorrect error message.  So, set action item to
050921 - revise the code to both enable collaboration and supprerss
050922 - confidential records. ref SDS 0 IZ8H
050923 -
050924 -
050925 -
050926 -
050927 -  ..
0510 -
0511 -
0512 - Progress
0513 -
051301 - 06112  Reports for Multiple Users Needs Correction
051302 -
051303 - Line 230, ref OF 1 6612, -label xyz8 in 06112
051304 -
051305 -    macro 120
051306 -
051307 -       This is a call to compiled code in 000007.
051308 -
051309 -
051310 - Line 280, ref OF 1 J49L, -label cOsUm in 06112
051311 -    ..
051312 -    This code is called macro macro 120 in 000007 to execute q1
051313 -    #32 after building a list of files with target records, per below.
051314 -    ref SDS 0 416M
051315 -
051316 -    line 250       && G d:\
051317 -       ..
051318 -       This looks like we are loading the get command and should
051319 -       be where the User ID has been messed up.
051320 -
051321 -  ..
051322 - Line 340, ref OF 1 855K, -label X_week in 06112 about 30 lines below
051323 -
051324 -      setcnt 1 999
051325 -    macro 891
051326 -
051327 -       Set flag to avoid User ID globals being set, then read the file
051328 -       spec, which is applied below to read in an actual record that
051329 -       builds the report. ref SDS 0 VG3F
051330 -
051331 -        ..
051332 -       Why are the User ID globals not being set?
051333 -
051334 -       Macro 891 calls macro 851 in 000004, per below. ref SDS 0 VF3G
051335 -
051336 -       It seems to me that we need to capture User ID in globals
051337 -       because there is no other way to get the right records?
051338 -
051339 -       Per below, tried disconnecting setcnt 1 999 and ran the same
051340 -       report. ref SDS 0 IZ7F
051341 -
051342 -       It worked correctly.
051343 -
051344 -
051345 -
051346 -  ..
051347 - Line 500, ref OF 1 8K4O, -label cO_s_W in 06112 about 40 lines below
051348 -
051349 -    macro 91
051350 -
051351 -       Get globals that define where the file is located on the disk.
051352 -
051353 -    loc_cur 3 12
051354 -    macro 841
051355 -
051356 -       We are back in 06112 and are loading the User ID
051357 -
051358 -       We seem to be fouled up because the routine that reads the file
051359 -       spec in the 1y output file is not moving the locals to globals
051360 -       for the User ID part of the file ID, as a result of the flag set
051361 -       to prevent this, per above. ref SDS 0 N75G  So, when the globals
051362 -       are read at this point, it is getting the system defaults, which
051363 -       is Gary's User ID, rather than the User ID in the output file.
051364 -
051365 -        ..
051366 -       This is an easy correction, but one wonders why the code is
051367 -       doing this.  Often there is something that needs to be
051368 -       accomplished.
051369 -
051370 -       Is there a privacy issue?  We want to provide confidentiality
051371 -       but without eliminating collaboration that includes sharing
051372 -       information in SDS records.
051373 -
051374 -          Seems to me that confidentiality is achieved by a User
051375 -          marking a record as confidential, and by having separate
051376 -          Subject Index accounts.
051377 -
051378 -           ..
051379 -          To test this unplugged code above. ref SDS 0 N75G
051380 -
051381 -          Now the report runs correctly in Gary's records.
051382 -
051383 -          Tried setting a confidential/privacy flag in the record on
051384 -          021027. ref SDS 8 0001
051385 -
051386 -           ..
051387 -          Ran the report again and it shows up in a report for Gary.
051388 -
051389 -             We need a code revision that compares User IDs and checks
051390 -             for a confidential flag.  If the User IDs are different
051391 -             and there is a confidential flag, then the flagged record
051392 -             should not appear in the report.
051393 -
051394 -             We have all the stuff to do this, just need to get the
051395 -             rigging setup correctly.
051396 -
051397 -             Now that we understand this, will issue preliminary
051398 -             revised code so Gary can operate and issue an update later
051399 -             after we fix this problem.
051400 -
051401 -
051402 -
051403 -  ..
051404 - Line 200, ref OF 4 HG4O, -entry 851 in 000004
051405 -
051406 -   -if @1 = 999 -exit
051407 -
051408 -      There is a note saying so we can capture local numbers to compare
051409 -      User ID in report, e.g., 06112 -label cO_sa without changing
051410 -      globals.
051411 -
051412 -
051413 -
051414 -  ..
051415 - 000007  Macro 120 Manage User ID
051416 -
051417 - Line 1340, ref OF 5 AM6I, -entry 120 in 000007 about 50 lines below
051418 -
051419 -    savescr 8
051420 -
051421 -       Begin op to set up common spec for all SDS reports, including
051422 -       handle the User ID.
051423 -
051424 -  ..
051425 - Line 1510, ref OF 5 6290, -label cOOKay in 000007
051426 -
051427 -    @c:\sd\03\061122
051428 -
051429 -       Code is calling 061122 to configure the selection specification
051430 -       based on what User has entered in the report screen.
051431 -
051432 -       Does seem to apply to the current situation, per analysis below.
051433 -       per below. ref SDS 0 V75O
051434 -
051435 -  ..
051436 - Line 1750, ref OF 5 XJ6I, -label cOlp_Us in 000007
051437 -
051438 -    -if @35 = 1 -if @95 = 95 -goto cO_n_U
051439 -    -gosub mu_nXT
051440 -
051441 -       This code processes the User ID, and so should be where the
051442 -       problem is occurring. ref SDS 0 WH3G
051443 -
051444 -     ..
051445 -    loc_cur 17 19
051446 -    -gosub mlt_u
051447 -
051448 -       Put cursor on User ID field in the selection spec, and run
051449 -       routine to enter the User ID captured from the User's data
051450 -       entry field.
051451 -
051452 -  ..
051453 - Line 1800, ref OF 5 3583, -label cO_n_U in 000007
051454 -
051455 -       Code does some stuff that builds the output filename, and...
051456 -
051457 -    @q1 #24
051458 -
051459 -       Executes the selection spec.
051460 -
051461 -  ..
051462 - Line 1830, ref OF 5 V44G, -label cO_n_U in 000007 about 40 lines
051463 - below
051464 -
051465 -    -if @35 = 1 -if @95 = 95 -goto nOrst
051466 -
051467 -       If there is only one User specified, then jump code that cycles
051468 -       through multiple users and starts over with User #1, and jump
051469 -       ahead to immediately process the next week.
051470 -
051471 -  ..
051472 - Line 1850, ref OF 5 W75J, -label nOrst in 000007
051473 -
051474 -    addcnt 6 1
051475 -
051476 -       Increment the week number, and processes all of the weeks
051477 -       relfected by the report date spec, then begins loading the
051478 -       output into a file. ref SDS 0 HN4M
051479 -
051480 -
051481 -
051482 -  ..
051483 - Line 1900, ref OF 5 1M4O, -label mu_nXT in 000007
051484 -
051485 -    loc_cur 3 36
051486 -
051487 -       We are now processing User, move to User ID field.
051488 -
051489 -     ..
051490 -    setcnt 36 @35
051491 -    addcnt 35 1
051492 -
051493 -       What is counter 35, where is it set?
051494 -
051495 -     ..
051496 -    addcnt 37 1
051497 -    mulcnt 36 6
051498 -    rel_cur 0 @36
051499 -
051500 -       What is counter 37, where is it set?
051501 -
051502 -       Looks like a routine to scroll through multiple users, can't
051503 -       wait to see how it works?
051504 -
051505 -  ..
051506 - Line 1920, ref OF 5 YS3J, -label mu_nXT in 000007 about 30 lines
051507 - below
051508 -
051509 -    macro 118
051510 -
051511 -       Why macro 118, rather than 1182 that transfers the string to
051512 -       globals?
051513 -
051514 -       We don't need globals because the User ID is only entered in the
051515 -       report screen, which is current.
051516 -
051517 -
051518 -  ..
051519 - Line 2140, ref OF 5 UN4N, -label get_1y
051520 -
051521 -       This code loads the get command.
051522 -
051523 -
051524 -  ..
051525 - Line 2180, ref OF 5 JR8M, -label GEXt in 000007 about 30 lines below
051526 -
051527 -    -if @14 <= @89 -goto get_1y
051528 -
051529 -       If all weekly pointers for the specified period have been
051530 -       processed, then start loading the actual records.
051531 -
051532 -  ..
051533 - Line 2210, ref OF 5 JV5K, -label GEXt in 000007 about 50 lines below
051534 -
051535 -    -if @39 > 0 -goto cO_rcds
051536 -
051537 -       If there are records found in the selection process, then
051538 -       continue and process those records by building a User report.
051539 -
051540 -  ..
051541 - Line 2410, ref OF 5 H36M, -label refcnS in 000007
051542 -
051543 -    @q1 #32
051544 -
051545 -       We do a bunch of set up stuff then execute code in 06112, per
051546 -       above.
051547 -
051548 -
051549 -
051550 -  ..
051551 - 061122  Configure Report Specification
051552 -
051553 - Line 290, ref OF 3 EU9K, -label subspc in 061122 about 70 lines below
051554 -
051555 -    e Q1
051556 -    -if @47 < 13 loc_cur 12 36
051557 -    -if @47 = 13 loc_cur 12 32
051558 -
051559 -       Code opens user's report screen and captures User ID from the
051560 -       correct field for long term reports.
051561 -
051562 -       What about short term reprots?
051563 -
051564 -       This does not apply to the current issue.
051565 -
051566 -
051567 -
051568 -
051569 -
051570 -
051571 -
051572 -
0516 -

SUBJECTS
Subject
Error Messages

070401 -
070402 -
070403 -
070404 -
070405 -
0705 -
0706 -
0707 - 061121
0708 -   ..
070801 - Line 235, ref OF 2 684G, -label cPn_R_fP
070802 -
070803 - Line 350, ref OF 2 4Q6H, -label cPn_R_fP about 140 lines below
070804 -
070805 -     We have a problem here.
070806 -
070807 -     The code is entering the year directory as a 2 place number,
070808 -     however, for the year 2000 + until 2010, the year will be only a
070809 -     single digit.  Changed code to enter a 0 if the year is less than
070810 -     10.
070811 -
070812 -
070813 -
070814 -
070815 -
070816 -
070817 -
070818 -
070819 -