Skip to content

Commit 2cf27bc

Browse files
committed
Added $$$TRACE. Added SeparateLines parameter.
Fixed #21 Fixed #20
1 parent 2743c19 commit 2cf27bc

File tree

4 files changed

+39
-8
lines changed

4 files changed

+39
-8
lines changed

isc/py/data/Context.cls

+1
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ Method Init()
9393
/// set sc=##class(isc.py.data.Context).SaveContext()
9494
ClassMethod SaveContext(Output context As isc.py.data.Context, verbose As %Boolean = {$$$NO}) As %Status
9595
{
96+
kill context
9697
set context = ..%New()
9798
do context.Init()
9899
//do obj.PopulateHistory()

isc/py/ens/Operation.cls

+8-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,14 @@ Method OnMessage(request As isc.py.ens.Request, Output response As isc.py.ens.Re
1414
quit:'$Listvalid(variables) $$$ERROR($$$AttributeValueMustBeList, "variables")
1515

1616
set variable = $lg(variables, 1)
17-
set value = ..Adapter.Execute(request.Code, variable)
17+
18+
if request.SeparateLines = $$$YES {
19+
set lineSeparator = $c(10)
20+
} else {
21+
set lineSeparator = ""
22+
}
23+
24+
set value = ..Adapter.Execute(request.Code, variable, lineSeparator)
1825

1926
do:variable'="" response.Variables.SetAt(value, variable)
2027

isc/py/ens/OutboundAdapter.cls

+18-7
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,27 @@ Method OnTearDown() As %Status
1010
}
1111

1212
/// Main method execute code and return variable.
13-
/// Both arguments are optional.
14-
/// code can be $c(10) or $c(13,10) delimited.
15-
Method Execute(code = "", variable = "") As %String
13+
/// All arguments are optional.
14+
/// code - Python code to execute
15+
/// variable - variable name, which value is returned
16+
/// lineSeparator - separate code into lines. Defaults to $c(10).
17+
Method Execute(code = "", variable = "", lineSeparator As %String = {$c(10)}) As %String
1618
{
17-
set codeList=$lfs(code, $c(10))
19+
if lineSeparator'="" {
20+
set codeList=$lfs(code, lineSeparator)
21+
} else {
22+
set codeList=$lb(code)
23+
}
1824

19-
for i=1:1:$ll(codeList)-1 {
20-
do ##class(isc.py.Callout).SimpleString($lg(codeList, i))
25+
for i=1:1:$ll(codeList)-1 {
26+
set line = $lg(codeList, i)
27+
$$$TRACE(line)
28+
do ##class(isc.py.Callout).SimpleString(line)
2129
}
22-
set result = ##class(isc.py.Callout).SimpleString($lg(codeList, $ll(codeList)), variable)
30+
31+
set line = $lg(codeList, $ll(codeList))
32+
$$$TRACE(line)
33+
set result = ##class(isc.py.Callout).SimpleString(line, variable)
2334
quit result
2435
}
2536

isc/py/ens/Request.cls

+12
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ Property Code As %VarString;
88
/// Comma-separated list of variables to get in response message
99
Property Variables As %String;
1010

11+
/// Separate incoming message into lines for execution.
12+
/// $c(10) is used for line separation
13+
/// Note that it's NOT recommended to process whole message at once,
14+
/// this feature is only for `def` and similar multi-line expressions processing.
15+
Property SeparateLines As %Boolean [ InitialExpression = {$$$YES} ];
16+
1117
Storage Default
1218
{
1319
<Data name="RequestDefaultData">
@@ -18,6 +24,12 @@ Storage Default
1824
<Value name="2">
1925
<Value>Variables</Value>
2026
</Value>
27+
<Value name="3">
28+
<Value>LineSeparator</Value>
29+
</Value>
30+
<Value name="4">
31+
<Value>SeparateLines</Value>
32+
</Value>
2133
</Data>
2234
<DefaultData>RequestDefaultData</DefaultData>
2335
<Type>%Library.CacheStorage</Type>

0 commit comments

Comments
 (0)