Introduction

Viva objects are similar to objects used in other programming languages in that Viva objects perform specific functions and when used in conjunction with other objects can create more complex objects and eventually form applications. The primary difference between a Viva object and an OOP-language object is that Viva objects are defined more in terms of decision paths, data flow, and parallelism. An object is responsible for performing some sort of data manipulation, decision making, or to facilitate efficient data flow. Viva objects include input parameters and output values. These parameters and values are represented as nodes.

Nodes are represented in the Viva UI as small colored squares attached to the objects. In almost all cases, input parameters are displayed as nodes on the left side of the object while output values show up as nodes on the right side; Go, Done, Busy, Wait objects are an exception: Busy, an output node, is on the left, while Wait, an input node, is on the right. The example below shows the Viva ‘AND’ object. The input nodes are the squares on the left and the output node is the one on the right.

There are two kinds of objects in Viva, primitive objects and composite objects. Primitive objects provide the basic functionality needed for the basic programming commands. Composite objects are the result of combining primitive objects, or other composite objects. Any sheet can be saved as a composite object (see Converting sheets to objects in the Viva User Guide).

Concepts common to the Viva API

Go, Done, Busy, Wait

Go, Done, Busy, Wait are parameters that help you to manage flow control used in Viva's synchronous objects. Asynchronous objects do not use the Go, Done, Busy, Wait parameters but rather process as soon as they receive the input they require.

Go is an input parameter that receives a "go" signal from the object ahead in the flow.

Done is a signal to objects following in the flow that the processing results are complete.

Busy is an output parameter that informs objects ahead in the flow that the object is busy and cannot perform a "go" command.

Wait is an input parameter that receives a signal from objects following in the flow which commands the object to "wait" before sending the processing results.

The Viva Object Reference Guide

This purpose of this guide is to provide Viva users with a reference to the Viva objects. Here you will find information for each object in the Viva core library. Included in the documentation of each object is the following:

Functional Description

The Functional Description provides a description of the objects function. It also may provide you with information about how to employ the function most effectively.

Object Path

The Object Path shows the location of the object within the Viva object tree.

Inputs and Outputs Desctriptions

The Inputs and Outputs Desctriptions show the inputs and outputs of the object and provides a description of the input and outputs function.

Timing Diagram

The timing diagram shows at what point in the clock cycle the function performs a task. Timing diagrams are provided for synchronous objects (excluding Advanced objects).

Program Notes

Program notes provide information about supported data sets, examples of input and output, and may provide additional information for programming the object.

Example Usage

Viva example sheets and projects are provided for many of the objects. Example Usage gives the name of the provided example and information about the example.

Revision History

Revision History documents changes made to the functionality of an object.

See Also

See also provides links to related objects.