THE WELCH COMPANY
440 Davis Court #1602
San Francisco, CA 94111-2496
415 781 5700
rodwelch@pacbell.net


S U M M A R Y


DIARY: April 20, 2004 10:41 AM Tuesday; Rod Welch

SDS change method of linking to current diary records for other users.

1...Summary/Objective
2...Collaboration Improved Open Current Date Diary Record for Another User
3...Link Current Date Diary Records for Another User
4...Change Counter Flag to Avoid Conflict with Standard Diary Time Format
5...Look for Current Diary Record when Link Record for Another user Blank

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

1...He wants to send a current date diary record by itself, and have it

CONTACTS 

SUBJECTS
Current Date Diary Records
Link Current Diary Record for Another User Planning
Citations References Links Planning Macro 985 in 000006
Current Diary Record Maintain Time to Delete Pointers When Switching
Citations References Create Open Automatically Using Enter and Doubl
Link Current Diary Record for Another User Needed to Complement Abil

1108 -
1108 -    ..
1109 - Summary/Objective
1110 -
111001 - Follow up ref SDS 11 0000. ref SDS 9 0000.
111002 -
111003 - Developed method today for opening a link to a current date diary
111004 - record for another user.  Think this is working, and not too many
111005 - other things have been broken by creating this small incremental
111006 - advance.  At this time, the only way to create a link to a current
111007 - date diary is to get the Schedule 00 file, and open it with Executive
111008 - Services.  Another use case is to get a record by itself, independent
111009 - from the Schedule 00 file, and somehow get it integrated into the SDS
111010 - date directory structure.  May be able to do this with F1 F3 and
111011 - setting up the system profile, then use F2 for saving SDS records.
111012 - ref SDS 0 KB8G
111013 -
111014 -
111016 -  ..
1111 -
1112 -
1113 - Evaluation
1114 -
111401 - Collaboration Improved Open Current Date Diary Record for Another User
111402 -
111403 - Saved about 100 keystrokes and a lot of time and aggravation, adding
111404 - to the list on 000824, ref SDS 6 5J4J, by enabling a user with
111405 - executive priveleges to open a link to a current diary record for
111406 - another user.  This may come up more as the number of users increases
111407 - and people begin sending records to one another as Gary and I have
111408 - done the past year or so.
111410 -  ..
111411 - We already have the ability to open a current record for another user
111412 - and create links, which is part of Executive SDS, opened in the
111413 - "Manage" menu of the Schedule.  This feature complements Executive
111414 - services by maintaining ability to open a current date diary record
111415 - for another user after the current date has passed into history, which
111416 - is often the case, when using records for other users that are not
111417 - available on a network, but are transferred periodically.
111418 -
111419 -
111420 -
111421 -
111423 -  ..
1115 -
1116 - Planning
1117 -
111701 - Executive Services can be applied to open another user's Schedule
111702 - which can then be used to open a Current Date Diary record, and that
111703 - record can then be linked back to the primary user's records, per
111704 - planning on 040412. ref SDS 11 XV37  This method is generally fast and
111705 - easy enough for routine daily operations,
111707 -  ..
111708 - Here is an example linking to a current diary record Gary created the
111709 - next day on 040421, that lists Aerospace company requirements for running a
111710 - meeting. ref SDS 12 0001
111711 -
111712 -    1.  Switched to the Schedule and opened Executive Services from the
111713 -        "Manage" menu.
111715 -         ..
111716 -    2.  Executive Services presents a menu for entering specifications
111717 -        to open another User's SDS Schedule, with full user priveleges,
111718 -        except for changing the record.  In this case, opened Gary's
111719 -        SDS Schedule.
111721 -         ..
111722 -    3.  Selected a record in Gary's SDS Schedule and opened it by
111723 -        double clicking or pressing Enter.
111725 -         ..
111726 -    4.  Ctrl F6 switched back to this record and pressed F5 to turn on
111727 -        linking, since calling Executive Services seems to turn off
111728 -        linking status.
111730 -         ..
111731 -    5.  Ctrl F6 to switched back to Gary's record and pressed Enter on
111732 -        a line of interest for linking.
111734 -         ..
111735 -        This closed Gary's record and created a the link in this
111736 -        record.  I was then able to open Gary's current date diary
111737 -        record at will, even though it is a current date diary record,
111738 -        which previously could not be done.
111740 -  ..
111741 - Gary has another use case...
111743 -  ..
111744 - He wants to send a current date diary record by itself, and have it
111745 - incorporated into the directory structure apart from sending an SDS
111746 - update, which would have all SDS records.  He then wants the recipient
111747 - to be able to open the record and performing anlaysis, which requires
111748 - linking.
111750 -  ..
111751 - Questions that arise...
111752 -
111753 -    1.  Records for prior dates should be stored on the disk under the
111754 -        standard diary date structure.
111756 -         ..
111757 -    2.  Records for the current date seemingly can be placed in the 00
111758 -        directory, however, this presents a problem of access, because
111759 -        it will not be entered in the Schedule 00 file, unless the
111760 -        Schedule 00 file is already entered.
111762 -  ..
111763 - Solution...
111764 -
111765 -    Rather than send a single file, why not zip the records from the
111766 -    last submission and send it as an attachment to email?
111768 -  ..
111769 - One answer is because someone doesn't want to do that.
111771 -  ..
111772 - Another Solution...
111773 -
111774 -    If a single current date diary record is submitted, why not place
111775 -    it in the standard date directory structure for an archived diary?
111777 -  ..
111778 - When, where and how should this be created?
111779 -
111780 -    1.  Should the sender somehow archive a current date diary record
111781 -        in advance of normal archiving, in order to get this into the
111782 -        hands of someone immediately?  If so, then when the normal
111783 -        archive op occurs, it will overwrite the file on the disk with
111784 -        the content in the current date diary.
111786 -         ..
111787 -    2.  Requires function to convert a current date diary into an
111788 -        archived diary.
111790 -         ..
111791 -        Another solution would be to open a current date diary in the
111792 -        standard date directory structure for an archived diary record.
111793 -        The reason for not doing this now, is to support the use case
111794 -        when someone changes thier mind and converts a current date
111795 -        diary record back to a scheduled task.
111797 -         ..
111798 -    3.  Suppose the recipient of a current date diary record could
111799 -        somehow store the record as an archived diary, since that is
111800 -        how the record will be used for linking.
111802 -         ..
111803 -        A user could manually enter the description for a record in the
111804 -        Reference section, and then open it, and read the content of
111805 -        the current date diary into the blank file, and then press F2
111806 -        to save it, which would make it an archived diary record.
111808 -         ..
111809 -        Conceivably a new function could be created that would
111810 -        facilitate the step of entering the spec so that it is not done
111811 -        entirely manually.  Open the file and then read the record ID,
111812 -        and use that for constructing the directory structure.
111814 -         ..
111815 -        Actually, it might be possible to simply use F1 F3 Directory
111816 -        Maintenance (DMS) function to open the file, then assign the
111817 -        SDS record profile, 47 2, and assign archived diary status,
111818 -        which is 271 2000 and 272 0, and then press F2.  That will
111819 -        write the file to the disk and create the pointers.  Not sure,
111820 -        but current date status may need some additional flags for
111821 -        conditionals that avoid "current date" processing.
111823 -  ..
111824 - We want to avoid creating new anchors in another User's records,
111825 - because that is a change to the record.  The current policy is to
111826 - place anchors on nearly every para, so this avoids the need to add
111827 - anchors.
111829 -  ..
111830 - The current problem to solve is opening a link to a current diary
111831 - record that has not yet been archived.  The code in macro 99 uses ecur
111832 - 96 to open the Schedule for the current user.  This does not work for
111833 - opening the Schedule for another user.  Moreover, a current diary
111834 - record is only recognized based on comparing the date of the record to
111835 - open with the current date.  This is not effective for opening a link
111836 - to a current diary record for another user, because in that use case,
111837 - most of the time the current directory is several days earlier than
111838 - the current date.
111840 -  ..
111841 - This can be solved by looking both in the standard directory structure
111842 - for a record, and if it does not exist, then looking in the Schedule
111843 - 00 directory for another user.  It requires looking in two places,
111844 - which takes more time, but generally will be fast enough for
111845 - transparent operations, i.e., the user will not notice the extra time,
111846 - and additionally, this "dual search" is only needed when opening a
111847 - link to another user's records.
111849 -  ..
111850 - In discussions with Gary this morning, decided that if a record
111851 - happens to get edited later by the user and the link goes away, this
111852 - is very unlikley and that will be one linke out of thousands that does
111853 - not work.
111854 -
111855 -
111856 -
111857 -
111858 -
111859 -
1119 -

SUBJECTS
Link Current Diary Record for Another User
985 Macro Link References Listed Automatically, Macro 985, Macro 136

1304 -
130501 -  ..
130502 - Link Current Date Diary Records for Another User
130503 -
130504 - Follow up ref SDS 11 DU4N, ref SDS 5 9769
130505 -
130506 - Linking a current date diary record has been supported at least since
130507 - 920821, when the feature was maintained. ref SDS 2 0001
130509 -  ..
130510 - Line 1100, ref OF 9 PJ9M, -entry 136 in 000008
130511 -
130512 -    -entry 136
130513 -
130514 -        This begins the Enter and double click ops that opens a link.
130515 -
130517 -  ..
130518 - Line 1890, ref OF 9 8461, -label lSDS in 000008
130519 -
130520 -    -label lSDS
130521 -    macro 982.............................. ref SDS 0 0151
130522 -    -exit
130523 -
130524 -        macro 982 opens links.
130525 -
130526 -
130527 -
130529 -  ..
130530 - Change Counter Flag to Avoid Conflict with Standard Diary Time Format
130531 -
130532 - Line 310, ref OF 8 R43G, -entry 978 in 000006
130533 -
130534 -    -entry 978
130535 -    setcnt 1 10341
130536 -    macro 85
130537 -    loc_cur 0 58
130538 -    macro 873
130539 -
130540 -        Turns out that setcnt 1 1034 is not effective because there can
130541 -        be a time 1034 for an SDS record and this causes the code to
130542 -        fail.  Therefore, changed 1034 to 10341.
130543 -
130545 -  ..
130546 - Line 670, ref OF 8 ZY9K, -label okay8 in 000006
130547 -
130548 -    -label okay8
130549 -    -if @1 = 10341 -exit
130550 -    of 0
130551 -
130552 -        Change 1034 to 10341
130553 -
130555 -  ..
130556 - Line 170, ref OF 6 7W7O, -label dayx in 000004
130557 -
130558 -    -label dayx
130559 -    aw
130560 -    strcnt 5 2
130561 -    aw
130562 -    strcnt 3 4
130563 -    -if @1 = 10331 -exit
130564 -    -if @1 = 10341 -goto gbls
130565 -
130566 -        Change 1033 to 10331 and change 1034 to 10341
130567 -
130568 -
130570 -  ..
130571 - Line 410, ref OF 6 Y26K, -entry 90 in 000004
130572 -
130573 -    -entry 90
130574 -    strcnt 6 2
130575 -    rel_cur 0 2
130576 -    strcnt 7 2
130577 -    -if @1 = 10341 -goto gbl_hm
130578 -
130579 -        Change 1034 to 10341
130580 -
130581 -
130583 -  ..
130584 - Line 310, ref OF 1 NM6N, -label dwn in 008
130585 -
130586 -    -label dwn
130587 -    down
130588 -    chrcnt 1 0
130589 -    -if @1 = 32 -goto dwn
130590 -    linecnt 110 0
130591 -    setcnt 1 10331
130592 -    macro 85
130593 -    setcnt 1 0
130594 -
130595 -        Change 1033 to 10331
130596 -
130598 -  ..
130599 - Line 60, ref OF 2 3N7J, -label tii in 0081
130600 -
130601 -    -label tii
130602 -    up
130603 -    loc_cur 0 8
130604 -    setcnt 1 1033
130605 -    macro 85
130606 -
130607 -        Change 1033 to 10331
130608 -
130610 -  ..
130611 - Line 1760, ref OF 3 U67L, -label get29 in 04702
130612 -
130613 -    -label get29
130614 -    line 1
130615 -    setcnt 1 10341
130616 -    macro 85
130617 -
130618 -        Change 1034 to 10341
130619 -
130621 -  ..
130622 - Line 390, ref OF 5 TO4I, -label xxx in 0707
130623 -
130624 -    -label xxx
130625 -    setcnt 1 10341
130626 -    loc_cur 3 8
130627 -    macro 85
130628 -
130629 -        Change 1034 to 10341
130630 -
130632 -  ..
130633 - Line 2990, ref OF 7 QX9O, -label nxDt in 000005
130634 -
130635 -      -label nxDt
130636 -      setcnt 1 10331
130637 -      macro 85
130638 -      macro 23
130639 -      setcnt 1 10341
130640 -      macro 977
130641 -      -if @1 = 0 -exit
130643 -         ..
130644 -        Change 1033 to 10331 and change 1034 to 10341
130645 -
130646 -
130647 -
130649 -  ..
130650 - Line 1670, ref OF 8 9324, -entry 982 in 000006
130651 -
130652 -    This is where the code opens the record.  It needs to recognize
130653 -    when a record is for another user, and in that case, make a second
130654 -    check for another user ID.
130655 -
130656 -    ...debug configured here.
130657 -
130659 -  ..
130660 - Line 1900, ref OF 8 1544, -label nsdS3 in 000006
130661 -
130662 -    macro 98............................... ref SDS 0 0169
130663 -    -goto fCite
130664 -
130665 -        This is where the code in macro 982 branches to open the actual
130666 -        record.
130667 -
130668 -
130670 -  ..
130671 - Line 1160, ref OF 8 0550, -entry 98 in 000006
130672 -
130673 -    This is the code that does the actual work to open the record.
130674 -
130675 -    ...debug configured here.
130676 -
130678 -  ..
130679 - Line 1320, ref OF 8 3330, -label ndsmop in 000006
130680 -
130681 -    macro 891
130682 -
130683 -        This reads the record spec in col 171
130684 -
130685 -
130687 -  ..
130688 - Line 1390, ref OF 8 GV9L, -label ndsmop in 000006
130689 -
130690 -    macro 927
130691 -    macro 926
130692 -    -if @149 = 1249 setgbl 153 8877
130693 -    setcnt 149 0
130694 -    macro 52
130695 -
130696 -        Added code to compare the User ID captured with macro 891
130697 -        above, ref SDS 0 0175, macro 927 moves user ID captured in
130698 -        counters 285 - 289 into counters 10 - 14 for comparing with
130699 -        the session User ID.  macro 926 sets a flag to exit out of
130700 -        macro 922 after determining the User IDs don't match, and then
130701 -        macro 926 calls macro 922 to compare User IDs.  -if 149 = 1249
130702 -        as a result of macro 926 comparig User IDs, then set global
130703 -        flag 153 8877 that is evaluated in the processor file opened
130704 -        by macro 52.
130705 -
130706 -
130708 -  ..
130709 - Line 1450, ref OF 8 EX9J, -label purGJ in 000006
130710 -
130711 -    -label purGJ
130712 -    getgbl 153 153
130713 -    setgbl 153 0
130714 -    setgbl 271 1000
130715 -    -if @153 != 8877 -if @3 = @10 -if @4 = @11 -if @5 = @12 -goto 2_day
130716 -                                 ...................... ref SDS 0 0197
130717 -    setgbl 271 2000
130718 -    macro 99................................... ref SDS 0 0143
130719 -
130720 -        This is where the code recognizes a current date op is needed
130721 -        for the user.  Added code getgbl 153 153, then reset the
130722 -        global.  Added condition -if @153 != 8877, so that if the User
130723 -        ID's do not match, then processing will pass ahead to process a
130724 -        current date diary for another User in macro file 05091, per
130725 -        below. ref SDS 0 016S  macro 99 opens the record, and if it is
130726 -        blank, we can branch back to -goto 2_day
130727 -
130729 -  ..
130730 - Line 1110, ref OF 8 VR6H, -entry 99 in 000006
130731 -
130732 -    -entry 99
130733 -    --
130734 -    --
130735 -    top
130736 -    errorcnt 0 0
130737 -    linecnt 1 0
130738 -    -if @0 > 0 -goto n_FlE.................. ref SDS 0 M65G
130739 -
130740 -        This is the code that actually opens the target record, and
130741 -        runs linecnt to see if the file has any content; and -if not,
130742 -        then branches to call macro file 05091
130743 -
130744 -
130745 -
130747 -  ..
130748 - Look for Current Diary Record when Link Record for Another user Blank
130749 -
130750 -
130751 - Line 1150, ref OF 8 GR3I, -label n_FlE in 000006
130752 -
130753 -    -label n_FlE.......................... ref SDS 0 0143
130754 -    @c:\sd\03\05091
130755 -    -exit
130756 -
130757 -        When macro 982 gets here, it means that macro 98 called macro
130758 -        99 to open a record, and the record was blank, which means it
130759 -        does not exist, ref SDS 0 0183, and so macro 99 calls macro
130760 -        file 05091 to report an error message to the User.  Therefore,
130761 -        macro file 05091 can be used to open another's user's Schedule
130762 -        and look for a current diary record, before determining that
130763 -        the record really does not exist.  This constitutes a double
130764 -        look.
130765 -
130767 -  ..
130768 - Line 30, ref OF 4 F45F, in 05091
130769 -
130770 -    macro 922
130771 -    -if @149 = 1249 -goto cSchfoU
130772 -
130773 -        Add code today macro 922 that compares the current user ID with
130774 -        the session user ID, and, if they don't match, then it means
130775 -        the target record to open belongs to another user, so in that
130776 -        case, the code branches -if @149 = 1249 -goto cSchfoU to go
130777 -        open the other User's Schedule and look for an entry that would
130778 -        be a current diary record for the date and time of the target
130779 -        record.  If there is no current diary record for the
130780 -        specification derived from the link in the SDS record Reference
130781 -        field, then the code will cycle back and run the rest of the
130782 -        code telling the user that the record does not exist, and if it
130783 -        does exist, then it will be opened as a current diary record.
130784 -
130785 -
130787 -  ..
130788 - Line 330, ref OF 4 QO3O, -label cSchfoU in 05091
130789 -
130790 -    -label cSchfoU
130791 -    setcnt 86 1
130792 -    macro 1180
130793 -    e c:\sd\03\05091
130794 -    line                                                       && *%rf
130795 -
130796 -        gfname was run by the code in macro 99, per above. ref SDS 0
130797 -        016S  This places the filename with the user ID and the time of
130798 -        the record in specific counters.  setcnt 86 1 supports macro
130799 -        1180 to convert local counters captured by gfname into globals
130800 -        for opening the User's Schedule and looking for a current date
130801 -        diary.
130802 -
130803 -
130805 -  ..
130806 - Line 350, ref OF 4 FH8J,
130807 -
130808 -    e c:\sd\03\05091
130809 -    line                                                       && *%rf
130810 -    loc_cur 4 4
130811 -    setgbl 32 0
130812 -    setcnt 86 28
130813 -    macro 1181
130815 -     ..
130816 -    loc_cur 0 4
130817 -    strcnt 6 2
130818 -    rel_cur 0 2
130819 -    strcnt 7 2
130820 -    loc_cur 0 4
130821 -
130822 -
130823 -
130824 -
130825 -
130826 -
130827 -
130828 -
130829 -
130830 -
130831 -
130832 -
130833 -
130834 -
130835 -
130836 -
130837 -
130838 -
130839 -
130840 -
130841 -
130842 -
130843 -
130844 -
130845 -
130846 -
130847 -
130848 -
130849 -
130850 -
130851 -
130852 -
130853 -
130854 -
130855 -
130856 -
130857 -
130858 -
130859 -
130860 -
130861 -
130862 -
130863 -
130864 -
130865 -
130866 -
1309 -