Title: | *OLD* ALL-IN-1 (tm) Support Conference |
Notice: | Closed - See Note 4331.l to move to IOSG::ALL-IN-1 |
Moderator: | IOSG::PYE |
Created: | Thu Jan 30 1992 |
Last Modified: | Tue Jan 23 1996 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 4343 |
Total number of notes: | 18308 |
Hi, I'm in the progress of writing an application that starts by getting a list of users and groups that the user wishes to process. This list is placed in the SCROLL dataset. The groups are then expanded and duplicates removed and the resultant list placed in the CAL$SCROLL_ATTENDEES dataset. All works fine until the OA$SCL_RETURN event occurs, at which time the argument form hangs. Pressing CTRL-C breaks out of the infinite loop back to the calling form as if nothing wrong has happened. I ran a trace against it and it looks as if it is doing exactly as I request, no problem at all. I have included the named data below. Any ideas or pointers on where to look next? Regards, ajb FREESCAN$SELECT: ;;.TYPE;; ARG /OVERLAY /PRE='XOP "~~PRE_FUNCTION~~"' /POST='XOP "~~POST_FUNCTION~~"' /HARD=OA$_TM_HRD_ENTER_ATTENDEE ;;~~PRE_FUNCTION~~;; DECIMAL I \ GET LOG$SCROLL = "" \ FOR SCROLL DO WRITE DELETE SCROLL NUMBER = .NUMBER \ .IF #FREESCAN_EDIT NES "" THEN FOR CAL$SCROLL_ATTENDEES DO WRITE ADD SCROLL NUMBER=.NUMBER, TEXT=.TEXT ;;~~POST_FUNCTION~~;; IFEXIT \ FOR CAL$SCROLL_ATTENDEES DO WRITE DELETE CAL$SCROLL_ATTENDEES NUMBER=.NUMBER \ COMPUTE #KEY = 1 \ GET #USERLIST="" \ FOR SCROLL DO GET #ATTE=.TEXT:30 \\ .IF (#ATTE NES "") AND (FN$LOCATE(#USERLIST, "~" #ATTE) EQS FN$LENGTH(#USERLIST)) THEN XOP "~~PROCESS_ATTENDEE~~" ;;~~PROCESS_ATTENDEE~~;; .IF (PROFIL.USER[#ATTE] NES "") THEN WRITE ADD CAL$SCROLL_ATTENDEES NUMBER=#KEY, TEXT=#ATTE \\ COMPUTE #KEY = #KEY + 1 \\ GET #USERLIST = #USERLIST "~" #ATTE ELSE FOR GROUP$:#ATTE DO GET #VMSUSR=.VMSUSR \\\\ GET #USER=PROFIL:VMSUSR.USER[#VMSUSR] \\\\ WRITE ADD CAL$SCROLL_ATTENDEES NUMBER=#KEY, TEXT=#USER \\\\ COMPUTE #KEY = #KEY + 1 \\\\ GET #USERLIST = #USERLIST "~" #USER ;;ATENDE;; /VALID=<XOP "~~VALIDATE_ATTENDEE~~" /SCROLL=,,,SCROLL /RSE_RECOG=PROFIL WITH .USER = ATENDE /OPTIONAL /HARD=OA$_TM_HRD_ATTENDEE /SHOW='.USER:30 "( " .FULNAM:35 " ) "' /USE_FORM=EMSREC ;;~~VALIDATE_ATTENDEE~~;; .IF (PROFIL.%KEY[ATENDE] NES "") OR (GROUP$MASTER.%KEY[ATENDE]) THEN OA$VAL_SET_VALID ;;.TAB;; OA$SCL_DOWN ;;.BS;; OA$SCL_UP ;;~~FIND_EMPTY_FIELD~~;; .IF ATENDE EQS "" THEN GET OA$STATUS = 0 ELSE GET OA$STATUS = 1\ IFSTATUS\ OA$SCL_DOWN\ REPEAT
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
591.1 | Some questions | SHALOT::NICODEM | Who told you I'm paranoid??? | Wed Apr 29 1992 15:04 | 22 |
This is a V3.0 system, so my initial question was 'Why CAL$SCROLL_ATTENDEES again?'; however, since this is for scanning and not scheduling, we'll bypass that for the moment. You indicate that you do some processing of the SCROLL dataset to expand dist. lists, etc. Are you aware that CAL$SCROLL_ATTENDEES does that automatically for you? In other words, you may be making extra work for yourself by putting things into SCROLL, and then moving them to CAL$SCROLL_ATTENDEES. Do we have all of the Named Data? For instance, just based on what I can see, you are a) moving whatever is in CAL$SCROLL_ATTENDEES into SCROLL, b) processing the ATENDE field to add/remove other names, and c) moving everything back into CAL$SCROLL_ATTENDEES. But there are no other scrolling functions (other than UP and DOWN) in this Named Data. How are you calling this form? And where is the OA$SCL_RETURN you're referring to? In the calling form? Have you tried tracing from the point this form is called? Even when you get into an infinite loop, you can have tracing turned on, and then after pressing Ctrl-C, you can look at the trace log file. That's often the quickest way to find out why something is "hanging". | |||||
591.2 | WPOPTH::OPWA01::Beeson | Down Under in the bottom left corner | Thu Apr 30 1992 02:00 | 51 | |
Hi, In answer to your questions: Why CAL$SCROLL_ATTENDEES again? Because I'm running out of time and I couldn't be bothered changing it. Are you aware that CAL$SCROLL_ATTENDEES does that [expand dist. lists, etc] automatically for you? No I wasn't, but I am expanding groups (via GROUP$), does it do this as well? Do we have all of the Named Data? Yes you have. How are you calling this form? From the pre-function of an index form. The code is: FORM FREESCAN$SELECT Calling the form from the command line exhibits the same behaviour though. And where is the OA$SCL_RETURN you're referring to? In the calling form? As I understand it the OA$SCL_RETURN event is tied to the .RETURN key by the /SCROLL qualifier on the ATTE field. Have you tried tracing from the point this form is called? I have traced completely through the calling form and back to the calling form from which I exited via the OA$FLD_EXIT event. There was no indication of my pressing CTRL-C in the log, nor of any loop. Unfortunately the code is out on site and I'm here in the office. I will get the named data of the calling form and the trace and post it today. Thanks for your time, Frank, ajb |