Join The Works program to have access to the most current content, and to be able to ask questions and get answers from Revelation staff and the Revelation community

At 09 JAN 2009 05:37:11PM Mat Kelly wrote:

I have an array of file names in an Arev32 program. I've constructed a loop to poll through each file name and run UPDATE_INDEX(FILENAME,"",1). With some files I get the error:

The "FOO*APPLICATION*12:34:56 11 JAN 1992" table is not attached for i

continue flushing transactions to their appropriate.

Please attach this table and try again.

with an OK button that requires user interactivity. Because of the nature of the containing program, I would like the program to proceed without requiring user input. Is there any way to accomplish this and still run the above function?

Thanks.


At 18 JAN 2009 08:56AM Aaron Kaplan wrote:

I don't have access to ARev systems at the present time, so you'll have to do some of the work yourself, but it should be pretty simple. Dictionary names are coming from info from AREV_DIR, so it all should be good to work for you.

If you look at MAPTYPE, one of the option is C, which means the system will do a catalyst code/command combo instead of displaying the message.

Here's where it you'll need to do the work. I'm pretty sure it's @VM delimited on MAPSCRIPT (S:@VM:MYSUB). If not, then the catalyst code would go on MAPRESPCODE and the command on MAPRESPCOMMAND.

Obviously, this only works if calling the AREV style message.

If calling the OI style message, then a similar overide can be done. By setting MLITERAL$ to TRUE$, then the value in MDEFINPUT$ is used as the name of a stored procedure to execute.

From the MSG_EQUATE record:

pre.code {

 background-color: #E5E5E5;
 border: 1px solid #000000;
 width: 900px;
 padding: 5px;
 font-family: courier, verdana, arial, serif;
 margin: 0px 10px auto;

}


* if MLITERAL$ is true, the Msg() function assumes that the default value is
* the name of a function which returns the default value for the message;
* for example, if you wrote a function called CURRENTUSER which returned
* the user name of the current user, you could specify CURRENTUSER as the
* default value (MDEFINPUT$) and set MLITERAL$ to true, so that the current
* user name would be the default value for the message; parameters are
* passed to the specified function depending on the number of parameters
* that are supported by the function:
*
*   # Params   Values Passed
*   ---------  --------------
*   0          None
*   1          MsgKey
*   2 or more  MsgKey, MsgDef

So, now that you have the message set up to execute a function, you need to write a function to check the return stack or some form of flag, and simply return if the conditions warrent. Otherwise, you'll need to display the message yourself with a MSG call.

It's simpler than it sounds.

View this thread on the Works forum...

  • third_party_content/community/commentary/forums_works/1aab7235ece0492385257539007c412e.txt
  • Last modified: 2024/01/04 20:57
  • by 127.0.0.1