Openo

Use Openo to open and close a sequential file in write-only mode on one of the available servers from the Sage X3 application server.

Syntax

 OpenoOpeno Using [ABBREVIATION]Openo FILE_EXPROpeno FILE_EXPR Using [ABBREVIATION]Openo FILE_EXPR, SIZE_EXPROpeno FILE_EXPR, SIZE_EXPR Using [ABBREVIATION]

Examples

 # Let's open a file on the server to appen data to itOpeno "C:\Temp\my_file.txt",-1...# Close the last file opened to readOpeno# Opening a file on the "distrib" server with truncationOpeno "distrib@"+[L]NOMFIC# Open two files located in the TMP sub-directory of the folder directory on the application server# Both files will be truncated to 1024 sizeOpeno filpath('TMP','rdfile1',''),1024 Using [YYY]Openo filpath('TMP','rdfile2',''),1024 Using [ZZZ]# Close the two previously opened filesOpeno Using [YYY]Openo Using [ZZZ]

Description and comments

Use Openo to open a file for writing data with Wrseq and Putseq.

The first parameter is the file path that has to open:

The value in the 2nd parameter is used to position the write position (in bytes) in the file:

When a unique file is opened, there is no need to give an abbreviation. If several file can be opened, it is preferable to use an abbreviation that can be freely chosen and used later to identify the channel used.
* The maximum number of sequential files that can be opened simultaneously is given by the value of the adxmso system variable.
* For a given abbreviation (or without abbreviation), only one sequential file can be opened by Openo or Openio at a given moment. Opening a file in write mode closes any file that may have been previously opened with Openo or Openio with this abbreviation (or with no abbreviation).

The current read/write position can be known:
* By adxseek(1) if the file is opened without abbreviation.
* By adxseek("ABREV") if the [ABREV] abbreviation is used.

Comments

Note that Openo does not manage the write conflicts that can happen when two users try to access the same file. It is recommended to position a Lock on a predefined symbol. The data written in sequential files is not included in database transactions. Therefore, Trbegin, Commit, and Rollback have no interaction with the files written by Openo.

The data write operations are buffered by the system and are completely done only after the file is closed by Openo. If it is necessary to ensure that the data is written, use the instruction Seek 0 on the abbreviation. This instruction flushes the write buffers.

Execution restriction in Clouds environment

For obvious security reasons, the execution of this instruction is controlled on Clouds environments:

If the conditions defined by the sandbox are not fulfilled, an error 27 will be raised.

For more information, look at the sandbox configuration page.

Associated errors

Error codeDescription
10FILE_EXPR is not a Char type or SEEK_EXPR is not numeric.
20Nonexistent file or path folder.
25System error when connecting to a remote server.
27Access not possible, permission denied.
44No more disk space.
50exp_depl is not an integer value.
57No seek operation allowed on the file.
60Too many channels used.
65Size limit exceeded for the file.

See also

Openi, Openio, Seek, Getseq, Rdseq, Putseq, Wrseq, adxifs, adxirs, adxium, adxmso, adxseek.