Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Accessing a Service

Draft MDC Standard

8.1.8.1 Accessing a service

A service is identified by a name, called a servicename.

    servicename::=

name
strlit


A service is accessed explicitly by means of an owservice (object with service):

    owservice::=

owmethod
owproperty


    owmethod::= object . service
    owproperty::= object . [ fservice ]
    object::= expratom V oref
    fservice::= servicename [ namedactuallist ]
    namedactuallist::= (

L actual [ . L namedactual ]
L namedactual


)
    namedactual::= actualkeyword := actual
    actualkeyword::=

name
strlit


The object specifies an object, and the fservice specifies the service to be requested of that object.

If an expratom is used in a context where an object is expected, and the expratom does not return a value of the data type OREF, an error condition will occur with ecode = "M108" (Not an Object).

If, in the context of an owmethod or an owproperty, an expratom returns a value of data type OREF that refers to an object that is not currently accessible, an error condition will occur with ecode = "M105" (Inaccessible Object).

If an fservice fails to specify a service provided by the object, or that service does not support the context of the access, an error condition will occur with ecode = "M106" (Invalid Service). In the case of a property, if no fservice is specified, the value of the default property, if any, for the object is used. If there is no default property, an error condition will occur with ecode = "M107" (No Default Value).

A namedactuallist may contain positional parameters and named parameters. An actualkeyword specifies the name of the parameter in the service being accessed that will receive the actual. An actual without an actualkeyword is a positional parameter.

Note: names of services and parameters that do not conform to the syntax of a name can be used with external objects. In these cases, the name of the service or parameter must be represented as a strlit, i.e., such names must be enclosed in quotation marks, and any quotation marks within the name must be spelled twice. A strlit that evaluates to a name is equivalent to that name when used as a servicename or an actualkeyword.

Upon completion of a service, the values of $Test and the naked indicator will be restored to their respective values prior to execution of the service.

The meaning of invoking an object’s services, either implicitly or explicitly, when the value of $TLevel is greater than 0 is reserved.

Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.

This page most recently updated on 14-Nov-2023, 21:35:37.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)