native-api-command-line-extension

Downloads5
Subscribe
1
Bookmark
0
This application is not supported by InterSystems Corporation. Please be notified that you use it at your own responsibility.
Details
Releases
Reviews
Issues
Articles

What's new in this version

  • fix IPM install
  • add demo global

Native API for IRIS is missing an option to run a simple
Command in ObjectScript as you do from the console or a terminal.
This add-on allows to submit some command line and receive a reply.

The NativeAPI function always requires to have a reply value
So take care to terminate your line with any QUIT
to serve the underlying method. Even if it makes no sense.
e.g. SET ^MyGlobal="I was here" QUIT 1

NativAPI Connection opens a partition as a terminal or a console will do.
So once connected you can deposit there also all kinds of
local variables or PPG as you would in a terminal or console session.

Prerequisites for demo

Make sure you have git and Docker desktop installed.

Installation in docker using IPM

Clone/git pull the repo into any local directory
git https://github.com/rcemper/native-api-command-line-extention.git Run the IRIS container with your project: docker-compose up -d --build

Installation using SQL

Enter Management Portal / System Explorer / SQL
Define this procedure

CREATE PROCEDURE %Zrcc.X()    
LANGUAGE OBJECTSCRIPT     
{     
 set %rcc=##class(%Routine).%New("%ZX.int")    
 set %rccline="x(%rcc) try {return $xecute(%rcc)} catch %rcc {return %rcc.DisplayString()}"    
 do %rcc.WriteLine(%rccline)     
 do %rcc.Save()   
 quit %rcc.Compile()   
}

and execute it

CALL %Zrcc.X()

Installation using API

WARNING: This is a rather dirty hack if there is no other chance
see special description

How to Test it

Use the related client demo for testing

Article in DC

IPM installation
zpm "install nacl-server"
Rating
5 (1)
Category
Technology Example
Works with
InterSystems IRISInterSystems IRIS for Health
Tags
Info
Version
0.0.2
Last updated
2023-08-14
Repository
Open
Documentation
Open
License
Link