セッションメソッド アクションセット: 例
セッション情報を表示し、セッションを管理するアクションを提供します
セッションのアクションキューにあるアクションのリスト
この例では、listactionqアクションを実行して、UUIDで識別されるセッションMysessのキューに現在あるアクションをリストします。この例では、セッションMysessがSAS Cloud Analytic Servicesで実行されており、ACTIONステートメントのASYNC=パラメーターを使用して実行のためにキューに入れられた1つ以上のアクションがあることを前提としています。ASYNC=パラメーターの詳細については、xisError - link not found - The element n0w3x61bw2s5a3n1i2oywybloafc was not found in the link database を参照してください。
/*options cashost="cloud.example.com" casport=5570;*/
cas casauto; /* 1 */
proc cas;
session casauto;
uuid = uuid("mysess"); /* 2 */
if uuid != "" then
do;
session.listactionq result=res / uuid=uuid; /* 3 */
print res;
end;
run;
quit;
-
必要に応じて、セッションCasautoを作成します。システムオプションCASHOST=とCASPORT=をサイトで有効なホストとポートに設定します。
-
関数UUIDを使用してセッションMysessのUUIDを取得し、その結果を変数Uuidに割り当てます。
-
セッションMysessのUUIDが正常に取得された場合は、listactionq UUID=パラメーターのUUIDを使用して、セッションMysessの現在のアクションキューを取得します。結果を出力します。
結果
次の結果は例です。

この例では、listactionqアクションを実行して、UUIDで識別されるセッションMysessのキューに現在あるアクションをリストします。この例では、セッションMysessがSAS Cloud Analytic Servicesで実行されており、ACTIONステートメントのASYNC=パラメーターを使用して実行のためにキューに入れられた1つ以上のアクションがあることを前提としています。ASYNC=パラメーターの詳細については、xisError - link not found - The element n0w3x61bw2s5a3n1i2oywybloafc was not found in the link database を参照してください。
import swat # 1
s = swat.CAS("cloud.example.com", 5570) # 2
s.sessionName(name="casauto")
def getUUID(s, sessname): # 3
actstat = 0
uuid = ""
lst = s.session.listSessions() # 4
tab = lst.pop("Session")
ucname = sessname.upper()
for i in range(len(tab.index)):
row = tab.iloc[i,0]
name = row[:row.find(":")].upper()
if name == ucname:
uuid = tab.iloc[i,1]
break
return uuid
uuid = getUUID(s, "mysess") # 5
if uuid == "":
print("Session MYSESS was not found.")
else:
res = s.session.listactionq(uuid = uuid)
display(res)
-
必要に応じて、セッションCasautoを作成します。システムオプションCASHOST=とCASPORT=をサイトで有効なホストとポートに設定します。
-
任意のセッションのUUIDを取得するために使用するCASL関数getUUIDを作成します。この関数は、セッションの名前を受け入れ、指定されたセッションのUUIDを返すか、指定されたセッションが見つからない場合は空の文字列を返す必要があります。この単純な例では必須ではありませんが、このステップでは、1つ以上のセッションのUUIDを頻繁に取得する必要がある場合に、CASL関数でこのアクションを使用する方法を示します。
-
listSessionsアクションを使用して、サーバーで現在実行されているすべてのセッションのリストを取得し、結果を変数Resに割り当てます。指定されたセッションの結果を検索し、見つかった場合は、セッションのUUIDを返します。それ以外の場合は、空の文字列を返します。
注: デモンストレーションの目的で、この例では、セッションのUUIDを見つけるための簡単なアプローチを使用しています。同じ名前のセッションを区別する試みは行われません。このアプローチでは、指定された名前のセッションが複数存在する場合、listSessionsアクションの結果で最初に見つかったものが使用されます。 -
関数getUUIDを使用してセッションMysessのUUIDを取得し、その結果を変数Uuidに割り当てます。
-
セッションMysessのUUIDが正常に取得された場合は、listactionq UUID=パラメーターのUUIDを使用して、セッションMysessの現在のアクションキューを取得します。結果を出力します。
結果
次の結果は例です。

この例では、listactionqアクションを実行して、UUIDで識別されるセッションMysessのキューに現在あるアクションをリストします。この例では、セッションMysessがSAS Cloud Analytic Servicesで実行されており、ACTIONステートメントのASYNC=パラメーターを使用して実行のためにキューに入れられた1つ以上のアクションがあることを前提としています。ASYNC=パラメーターの詳細については、xisError - link not found - The element n0w3x61bw2s5a3n1i2oywybloafc was not found in the link database を参照してください。
swat = require "swat" -- 1
s = swat.CAS("cloud.example.com", 5770) -- 2
s:sessionName{name="casauto"}
function getUUID(s, sessname) -- 3
uuid = ""
lst = s:session_listSessions{}; -- 4
idx = 1
while lst.Session.columns["SessionName"][idx] ~= nil do
fullname = string.upper(lst.Session.columns["SessionName"][idx])
name = string.sub(fullname, 1, (string.len(sessname)+1))
if name == string.upper(sessname) .. ":" then
uuid = lst.Session.columns["UUID"][idx]
break
end
idx = idx + 1
end;
return uuid;
end
uuid = getUUID(s, "mysess"); -- 5
if uuid == "" then
print("Session MYSESS was not found.")
else
actqueue = s:session_listactionq{uuid=uuid} -- 6
print(actqueue)
end
-
SAS Scripting Wrapper for Analytics Transferパッケージをインポートします。
-
必要に応じて、セッションCasautoを作成します。システムオプションCASHOST=とCASPORT=をサイトで有効なホストとポートに設定します。
-
任意のセッションのUUIDを取得するために使用するCASL関数getUUIDを作成します。この関数は、セッションの名前を受け入れ、指定されたセッションのUUIDを返すか、指定されたセッションが見つからない場合は空の文字列を返す必要があります。この単純な例では必須ではありませんが、このステップでは、1つ以上のセッションのUUIDを頻繁に取得する必要がある場合に、CASL関数でこのアクションを使用する方法を示します。
-
listSessionsアクションを使用して、サーバーで現在実行されているすべてのセッションのリストを取得し、結果を変数Resに割り当てます。指定されたセッションの結果を検索し、見つかった場合は、セッションのUUIDを返します。それ以外の場合は、空の文字列を返します。
注: デモンストレーションの目的で、この例では、セッションのUUIDを見つけるための簡単なアプローチを使用しています。同じ名前のセッションを区別する試みは行われません。このアプローチでは、指定された名前のセッションが複数存在する場合、listSessionsアクションの結果で最初に見つかったものが使用されます。 -
関数getUUIDを使用してセッションMysessのUUIDを取得し、その結果を変数Uuidに割り当てます。
-
セッションMysessのUUIDが正常に取得された場合は、listactionq UUID=パラメーターのUUIDを使用して、セッションMysessの現在のアクションキューを取得します。結果を出力します。
結果
次の結果は例です。
[Queued Results]
Actions Queue
Connection ID Sequence Number Timestamp Action
18 12 1.8815E15 myActionSet.prepareData
18 13 1.8815E15 sessionProp.addFmtLib
18 14 1.8815E15 simple.summary
Actions Queue
Action Parameter Count Action Tag Action is Active
1 data_prep Running
3 load_formats Active
3 summarize Active
この例では、listactionqアクションを実行して、UUIDで識別されるセッションMysessのキューに現在あるアクションをリストします。この例では、セッションMysessがSAS Cloud Analytic Servicesで実行されており、ACTIONステートメントのASYNC=パラメーターを使用して実行のためにキューに入れられた1つ以上のアクションがあることを前提としています。ASYNC=パラメーターの詳細については、xisError - link not found - The element n0w3x61bw2s5a3n1i2oywybloafc was not found in the link database を参照してください。
library("swat") # 1
s <- CAS("cloud.example.com", 5770) # 2
cas.session.sessionName(s, name = "casauto")
getUUID <- function(s, sessname) { # 3
uuid <- ""
ucname <- toupper(sessname)
lst <- cas.session.listSessions(s) # 4
for (row in 1:nrow(lst$Session)) {
fullname = lst$Session[row,1]
name <- toupper(substr(fullname, 1,
(regexpr(":", fullname)[1] - 1)))
if (name == ucname) {
uuid = lst$Session[row,2]
break
}
}
return(uuid);
}
uuid <- getUUID(s, "mysess") # 5
if (uuid == "") {
print("Session MYSESS was not found.")
} else {
res <- cas.session.listactionq(s, uuid=uuid)
print(res)
}
-
必要に応じて、セッションCasautoを作成します。システムオプションCASHOST=とCASPORT=をサイトで有効なホストとポートに設定します。
-
任意のセッションのUUIDを取得するために使用するCASL関数getUUIDを作成します。この関数は、セッションの名前を受け入れ、指定されたセッションのUUIDを返すか、指定されたセッションが見つからない場合は空の文字列を返す必要があります。この単純な例では必須ではありませんが、このステップでは、1つ以上のセッションのUUIDを頻繁に取得する必要がある場合に、CASL関数でこのアクションを使用する方法を示します。
-
listSessionsアクションを使用して、サーバーで現在実行されているすべてのセッションのリストを取得し、結果を変数Resに割り当てます。指定されたセッションの結果を検索し、見つかった場合は、セッションのUUIDを返します。それ以外の場合は、空の文字列を返します。
注: デモンストレーションの目的で、この例では、セッションのUUIDを見つけるための簡単なアプローチを使用しています。同じ名前のセッションを区別する試みは行われません。このアプローチでは、指定された名前のセッションが複数存在する場合、listSessionsアクションの結果で最初に見つかったものが使用されます。 -
関数getUUIDを使用してセッションMysessのUUIDを取得し、その結果を変数Uuidに割り当てます。
-
セッションMysessのUUIDが正常に取得された場合は、listactionq UUID=パラメーターのUUIDを使用して、セッションMysessの現在のアクションキューを取得します。結果を出力します。
結果
次の結果は例です。
$`Queued Results` connid seqid timestamp action parameterCount actiontag state 1 38 12 1566581502 myActionSet.prepareData 1 data_prep Running 2 38 13 1566581502 sessionProp.addFmtLib 3 load_formats Active 3 38 14 1566581502 simple.summary 3 summarize Active