VsCodeでリモートアクセスした際にSourceControlのUsernameが取得できない。
こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。
同じ現象に陥っていた方がいれば助言頂きたいのですが、
VsCodeでIRISにリモートで接続した際、SourceControlでUserNameが取得できていないようです。
{
"objectscript.conn": {
"host": "xxxx.xxxx.xxxx.xxxx",
"port": 52773,
"ns": "RKNK",
"username": "xxxx",
"password": "xxxx",
"active": true
},
"editor.formatOnType": true
}
→SourceControlクラスで..Usernameを取得しようとしても値が入っていない。
同じような現象になった方はいらっしゃらないでしょうか?
何か情報をお持ちの方がいらっしゃれば、フォローいただけますと幸いです。
Comments
SourceControlクラスは、%Studioパッケージのようなので、スタジオ専用のクラスなのではないでしょうか?
IRISへの接続中のアカウントを取得したいという事でしょうか?
コメントいただきありがとうございます!
私の方ではSourceControlをコンパイル時の静的解析のような役割で使っておりまして、
それはVSCodeからsave->import->compileの時でも動作することを確認済みです。
> IRISへの接続中のアカウントを取得したいという事でしょうか?
VsCodeのsettings.jsonで設定したアカウントが、Save等によりIRISにImportを行ったときのユーザー情報になります。
..Usernameは接続が確立したタイミングには入っているものと思ったのですが、
今取得すると空になっています。
Ohataさん
IRIS 2023.1.2を使っていますのでどこかで修正されたのかしれませんが、下記のようなOnAfterSave(内容はあまり気になさらずに...)でimportを実行してみたら下記のように保存されていました。
settings.jsonのusernameを書き換えれば、保存されるユーザ名も連動して変わりました。
USER>zw^IWA^IWA=6^IWA(1)="SuperUser"^IWA(2)="SuperUser"^IWA(3)="_SYSTEM"^IWA(4)="_SYSTEM"^IWA(5)="SuperUser"^IWA(6)="SuperUser
Method OnAfterSave(InternalName As %String, Object As %RegisteredObject = {$$$NULLOREF}) As %Status
{
if ..Debug Write "Method 'OnAfterSave' InternalName:"_InternalName_" Object: "_Object,!
//DBへの保存は成功させたいのでOKを返す
If '..IsInitialized Quit $$$OK
//default projectは保存しない
If $E(InternalName,1,$L($$$DEFAULTPRJNAME))=$$$DEFAULTPRJNAME {
Write $$$MSGNODEFAULTPRJ,!
Quit $$$OK
}
Set path=..LocalWorkspaceRoot_..GetExtraPath()
Set ..ExternalName=##class(%ZScc.Utils).ExportSingleItem(InternalName,path,..Debug)
Set ^IWA($INCREMENT(^IWA))=$USERNAME
Set ^IWA($INCREMENT(^IWA))=..Username
Quit $$$OK
}
Iwamotoさん
ご確認いただきありがとうございます!
バージョンが合えば解消するとの事で承知しました!
確認してみます。