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 11, 2003 10:48 AM Friday; Rod Welch

Gary reported problem with Aerospace company contact record.

1...Summary/Objective
2...0705051 F2 Save Contact Record
3...0705051 Provide multiple alphabetical listings for Contacts

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

1...We should bite the bullet and change the old contact foramts

CONTACTS 
0201 - Boeing                                                                                                                                                             O-00000816 0505
020101 - Mr. Garold L. Johnson
020103 - Modeling and Simulation                                                                                                                                          O-00000816 0505

SUBJECTS
Contacts Save Failing in Aerospace company Record
Save Contact Record, F2 0705051

0704 -
0704 -    ..
0705 - Summary/Objective
0706 -
070601 - Follow up ref SDS 3 0900,
070602 -
070603 - Gary reports a problem today with the function that "saves" a contact
070604 - record.  Investigation showed that the feature for listing individuals
070605 - separately in organization contact summaries, which is executed with
070606 - the "save" function (F2), exceeded the capacity of the list originally
070607 - allocated. ref SDS 0 HV67  Solution was to change the location of the
070608 - stack to increase the number of alternate listings from 12 to 50.
070609 - ref SDS 0 YH4F
070611 -  ..
070612 - Submitted email to Gary notifying of correction, and that updated code
070613 - and SDS records, including this record explaining what was done, can
070614 - be downloaded from the Internet to supplement the SDS program transfer
070615 - on 030408. ref SDS 4 NE6M
070616 -
070617 -     Made note of review and our telecon last night on a few format
070618 -     issues using SDS. ref SDS 5 RP9L
070619 -
070620 -
070621 -
070622 -
070624 -  ..
0707 -
0708 -
0709 - Problem
0710 -
071001 - Gary called and said the Aerospace company contact record crashed when he tried
071002 - to add another name and then save it.
071004 -  ..
071005 - We did some work online together.
071007 -  ..
071008 - When F2 is used in the Aerospace company contact record, the record process
071009 - counter runs, which updates the diagnostics and saves the record, but
071010 - the save op does not restore the screen and the alphabetical listing
071011 - loses entries for the record.
071012 -
071013 -
071014 -
071016 -  ..
0711 -
0712 -
0713 - Progress
0714 -
071401 - 0705051  F2 Save Contact Record
071402 - 0705051  Provide multiple alphabetical listings for Contacts
071403 -
071404 - Follow up ref SDS 3 0900, ref SDS 2 4Y7M.
071405 -
071406 - On 910317 general discussion of system. ref SDS 1 0001
071408 -  ..
071409 - I think the problem might be a memory issue arising from the multiple
071410 - listings we are using for Aerospace company.  On 980601 developed feature for
071411 - alternate listings in the alphabetical lists. ref SDS 3 5376  This
071412 - seems to be what is failing.  After talking to Gary, I opened the same
071413 - record using the numerical listing, which is constructed each pass,
071414 - and so always lists something.  I deleted the multiple listings.  Then
071415 - verified the structure is the same as for the same record on the
071416 - notebook computer, c12.  The record on c12 saves correctly.  Got the
071417 - record to save also on c13.
071419 -  ..
071420 - Read back the record with the alternate name listings and tried F2.
071422 -  ..
071423 - This save correctly.
071425 -  ..
071426 - Tried F2 again, and it crashed.
071428 -  ..
071429 - This suggests that a memory problem may occur from multiple passes, or
071430 - that something is amiss when the code replaces multiple listings, but
071431 - it works on the first pass when the multiple listings are created on
071432 - the first pass.
071433 -
071435 -  ..
071436 - Line 40, ref OF 1 3340, -label lpsnl in 0705051
071438 -  ..
071439 - Line 290, ref OF 1 5623, -label lpa in 0705051
071440 -
071441 -    This is the loop that gets each user identified with an asterisk
071442 -    for display in the alphabetical summary under the primary
071443 -    organization name.
071445 -  ..
071446 - Line 670, ref OF 1 2284, -label dKaAaz in 0705051
071447 -
071448 -    After names of contacts to be listed for an organization in an
071449 -    alphabetical summary are extracted, update the alphabetical summary
071450 -    files.
071452 -  ..
071453 - Line 690, ref OF 1 9T4M, -label macsl2 in 0705051
071454 -
071455 -    Repetitive dates process.
071457 -  ..
071458 - Line 770, ref OF 1 UY7N, -label tjF
071459 -
071460 -    Repetitive dates process over,
071461 -
071462 -    There is a note here that says...
071463 -
071464 -         Get value for alphabetical Summary file
071466 -          ..
071467 -         These values are captured in 000009 under -entry 1808 that
071468 -         opens a record and they are stored in counters 161+
071470 -          ..
071471 -         Counter 172 is set to 160 at the beginning of this 0705051 op
071472 -
071474 -  ..
071475 - Line 800, ref OF 1 V44N, -label jmpv3 in 0705051
071476 -
071477 -    Open 0705051 processor and load params to update alphabetical
071478 -    summary files.
071479 -
071480 -    This is where the thing crashes.
071482 -     ..
071483 -    The problem is that the code is creating a stack in memory using
071484 -    counters 160+, per above, that save the file id correlated to the
071485 -    alphabetical summary lists 1 - 26.  So, for example if there are 8
071486 -    alternate listings, then, if, say, the first one begins with the
071487 -    letter C, counter 161 will have the value 3, and counter 168 will
071488 -    have counter 5 if the 8th alternate listing begins with letter E,
071489 -    and so forth.
071491 -     ..
071492 -    In this case, there 14 or 15 alternate listings, which is something
071493 -    we have never done before.  We have tested the code for 3 or 4
071494 -    alternate listings, typically, they are different ways of thinking
071495 -    of the organization, and not the names of individuals in the
071496 -    organization, since they are listed under the primary heading.  But
071497 -    in this case, we decided to be fancy.  So, it turns out that
071498 -    counter 172 is used elsewhere in the code as a processing element,
071499 -    so when the stack gets to this level, it crashes the party.
071501 -     ..
071502 -    The solution is to change the code for macro 1808 in 000009 to
071503 -    start the stack from counter 161 to counter 231, since counters
071504 -    above 220 are not assigned to this operation.
071505 -
071507 -  ..
071508 - Line 40, ref OF 1 YG5H, in 0705051
071509 -
071510 -    setcnt 172 230
071511 -
071512 -        Per above, changed this from setcnt 172 160, ref SDS 0 HV67, so
071513 -        that counter 172 will increment values beginning at counter
071514 -        230, which is also changed today in macro 1808 in 000009.
071516 -         ..
071517 -        Counter 230 is clear until about counter 270.  This expands the
071518 -        number of people in a contact record that can listed for
071519 -        individual lookup in a contact record from 10 to 40.  Since
071520 -        these are globals, when the number exceeds 40, counter 271 is
071521 -        affected which is where the SDS user ID is stored.
071522 -
071524 -  ..
071525 - Line 4110, ref OF 2 5L6J, -label modrec in 000009
071526 -
071527 -    setcnt 2 231
071528 -
071529 -        Change this from setcnt 2 161, per above. ref SDS 0 YH4F
071530 -
071531 -
071533 -  ..
071534 - Line 2420, ref OF 2 5040, -label mnLtrd in 000009 about 110 lines
071535 - below.
071536 -
071537 -    z 10 20
071538 -    fr /Title/
071539 -    -if @0 = 0 -if @47 = 1 -goto aQd1
071540 -
071541 -        Code has entered the contact person's name, and has looked for
071542 -        a title.  This last line was failing because counter 47 lost
071543 -        the assigment to the profile level, in this case 1.
071544 -
071546 -  ..
071547 - Line 1480, ref OF 2 S29F, -label edlA in 000009 about 50 lines below
071548 -
071549 -    loc_cur 3 4
071550 -      -if @74 > 32 loc_cur 0 6
071551 -    strcnt 103 1
071552 -    -if @74 = 32 -if @103 = 4 -goto suefA
071553 -      -if @103 = 0 -goto suefA
071555 -        ..
071556 -       This code was causing the problem with the counter 47 getting
071557 -       messed up.  It is only legacy support for the prior format of
071558 -       putting the address on a 4 place number based on "0103" being
071559 -       the end of the date field.   This has been changed, but today we
071560 -       caught up in a situation with the cursor on a number "0000103"
071561 -       and this was read as the end of the date field, and so caused
071562 -       double processing of this line to caputre the state and zip
071563 -       field, and it started the counter at the end of the prior string
071564 -       which was counter 47.
071566 -        ..
071567 -       We should bite the bullet and change the old contact foramts
071568 -       over, then we can eliminate the legacy code and pick up some
071569 -       compiler space.
071570 -
071571 -
071572 -
071573 -
071574 -
071575 -
071576 -
071577 -
071578 -
071579 -
071580 -
071581 -
071582 -
071583 -
0716 -
Distribution. . . . See "CONTACTS"