[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference iosg::all-in-1_v30

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

591.0. "Another CAL$SCROLL_ATTENDEES question" by WPOPTH::OPWA01::emmanuel () Wed Apr 29 1992 02:31

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.RTitleUserPersonal
Name
DateLines
591.1Some questionsSHALOT::NICODEMWho told you I&#039;m paranoid???Wed Apr 29 1992 15:0422
	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.2WPOPTH::OPWA01::BeesonDown Under in the bottom left cornerThu Apr 30 1992 02:0051
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