# SAS Viya

# Viya4でViya内からViyaのAPIを呼ぶ方法

自身のサーバ名や`localhost`を指定してもうまくいかないが、Kubernetesのコンテナ名を指定するとうまく呼ぶことができる。

<table id="bkmrk-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E5%90%8D-%E3%82%B5%E3%83%BC%E3%83%90%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AE%E4%BB%A3%E3%82%8F"><thead><tr><th>マイクロサービス名</th><th>サーバアドレスの代わりに指定する値</th><th>例</th></tr></thead><tbody><tr><td>microanalyticScore</td><td>`sas-microanalytic-score`</td><td>`https://サーバアドレス/microanalyticScore/modules/steps/execute` → `https://sas-microanalytic-score/microanalyticScore/modules/steps/execute`</td></tr></tbody></table>

基本的には、頭に`sas-`をつけた上で、マイクロサービス名をハイフンつなぎに変えるとうまくいく。

# [Intelligent Decisioning] MASへパブリッシュしたAPIを実行する

`https://{サーバアドレス}/microanalyticScore/modules/{パブリッシュ名}/steps/execute`に対し、POSTする

[https://developer.sas.com/rest-apis/microanalyticScore/createStepExecution](https://developer.sas.com/rest-apis/microanalyticScore/createStepExecution)

# [Intelligent Decisioning] ルックアップテーブルの内容をまるごと取得する

`https://サーバアドレス/referenceData/domains/{ドメインID}/contents/{コンテンツID}/entries`に対し、GETすると、"items"にリスト形式で格納されているものが取得できる。

`/referenceData/{ドメインID}/contents/{コンテンツID}`は、ルックアップテーブルの「プロパティ」タブから、オブジェクトURIとして確認できる。

[https://developer.sas.com/rest-apis/referenceData/getReferenceDataDomainEntries](https://developer.sas.com/rest-apis/referenceData/getReferenceDataDomainEntries)

# SAS Studioでルールセットを実行する

```
%DCM_EXECUTE_RULESET(
  URI = ルールセットのオブジェクトURI,
  INPUTTABLE = 入力するCASテーブル,
  OUTPUTTABLE = 実行結果を格納するCASテーブル
)

```

[https://go.documentation.sas.com/doc/jp/edmcdc/v\_056/edmmacro/n1qm5ur1pz8bn6n1kq0frf3n111d.htm](https://go.documentation.sas.com/doc/jp/edmcdc/v_056/edmmacro/n1qm5ur1pz8bn6n1kq0frf3n111d.htm)

# ログに変数を出力する（DS2言語）

```
put variable_name=;

```

[https://go.documentation.sas.com/doc/ja/pgmsascdc/v\_061/ds2ref/n1b5ndvbk83gctn1b0rjx7bokrip.htm](https://go.documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/n1b5ndvbk83gctn1b0rjx7bokrip.htm)

# 変数を定義する（DS2言語）

```
declear varchar(100) variable_name;
dcl varchar(100) variable_name2;

```

[https://go.documentation.sas.com/doc/ja/pgmsascdc/v\_061/ds2ref/n1c15oj6g6nak3n12tx7t7j3kj8e.htm](https://go.documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/n1c15oj6g6nak3n12tx7t7j3kj8e.htm)

Intelligent DecisioningのDS2コードファイルなどで記述する場合、具体的な処理の記述よりも前に`declareステートメント`を記述する必要がある。

# methodステートメントで定義した関数の返り値を設定する（DS2言語）

```
return 'return_value';

```

[https://go.documentation.sas.com/doc/ja/pgmsascdc/v\_061/ds2ref/n0i3wjydjq18nsn10zyap1n6cp4i.htm](https://go.documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/n0i3wjydjq18nsn10zyap1n6cp4i.htm)

# 文字列YYYYMMDDをSAS日付値に変換する

```
date_sasvalue = inputn('20250831', 'yymmdd8.');

```

[https://go.documentation.sas.com/doc/ja/pgmsascdc/v\_061/ds2ref/n0l4p5obkjy2ygn1o7h5a6p602zm.htm](https://go.documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/n0l4p5obkjy2ygn1o7h5a6p602zm.htm)

# データグリッド変数を使う

- 変数タブでデータグリッド変数が定義されていれば、コード上で`dg_name = _new_ datagrid()`などでコンストラクタを実行する必要がない。