ユーザーの略歴
404 経歴が見つかりません
2016年2月7日からのメンバー
投稿:
返信:
IRIS2024.1 のバージョンより、%SYS.Python クラスの ToList メソッドが日本語対応したので、記事を更新しました。
コードも、わかり易いように少し変えました。
Hashimotoさん、コメントありがとうございます。
複数ソースを指定する場合は、*(アスタリスク)が使用できます。
また、,(カンマ)区切りで指定することも可能です。
使用例:
USER>write $SYSTEM.OBJ.Export("t*.mac","c:\temp\test3.xml","/exportversion=cache2018.1")
XMLエクスポートの開始 08/22/2024 10:46:59
ルーチンをエクスポート中: test.mac
ルーチンをエクスポート中: test2.mac
ルーチンをエクスポート中: test3.mac
ルーチンをエクスポート中: test4.mac
ルーチンをエクスポート中: test5.mac
ルーチンをエクスポート中: testLoop.mac
ルーチンをエクスポート中: testLoop2.mac
ルーチンをエクスポート中: testLoop3.mac
ルーチンをエクスポート中: testStrean.mac
ルーチンをエクスポート中: testsql.mac
エクスポートが正常に完了しました。
1
USER>write $SYSTEM.OBJ.Export("test3.mac, test4.mac","c:\temp\test4.xml","/exportversion=cache2018.1")
XMLエクスポートの開始 08/22/2024 10:53:45
ルーチンをエクスポート中: test3.mac
ルーチンをエクスポート中: test4.mac
エクスポートが正常に完了しました。
1
USER>
確かに、「エクスポートしたXMLのExportタグをCache用に書き換えてインポート」の方法も使えますね。
ただ、/exportversion の場合でも、エクスポートシステムとインポートシステム間のコードの互換性は保証されませんので注意が必要です。
認定証と Credly バッジ:

Global Mastersバッジ:







フォロワー:
フォロー中:
Megumiさんはまだ誰もフォローしていません。
こちら大変便利な記事ですね。参考にされているユーザさんも多いかと思います。
実際に実装する際、アクセストークンの有効期限(60分)が切れた後、再度認可コードから取得するのはちょっと不便・・・ということがあるかと思います。
そんな時には、リフレッシュトークンを利用してアクセストークンを再発行することも可能です。一度発行されたリフレッシュトークンは、ほぼ無期限で使えます(6か月使用されないと無効化されます)。
その手順をご紹介します。
【方法】
1.Refresh Token を取得します
記事の手順の「 認可コードをもとに Google から Access Token を取得 」の箇所で、Google から戻ってきたJSONより、refresh_token を取得しておきます。
write json,!! { "access_token": "... "expires_in": 3599, "refresh_token": "1//0e-nCKyf_", <-- ここ /*----------------*/ set RefreshToken={}.%FromJSON(json)."refresh_token" ; JSON から "refresh_token" の値を取得
2.Refresh Token を使用して、新しいAccess Token を取得します
set req = ##class(%Net.HttpRequest).%New() set req.SSLConfiguration="GMAILSSL" ; 手順(4)で設定した SSL構成名 do req.SetParam("client_id","123-abc.googleusercontent.com") ; 手順(2)で入手した クライアントID do req.SetParam("client_secret","GOCSPX-xyz999") ; 手順(2)で入手した クライアントシークレット do req.SetParam("refresh_token",RefreshToken) ; 1.で取得したリフレッシュトークン do req.SetParam("redirect_uri","http://127.0.0.1/test.html") ; 手順(2)で設定した リダイレクト先 do req.SetParam("grant_type","refresh_token") do req.SetParam("access_type","offline") do req.Post("https://accounts.google.com/o/oauth2/token") ; Google から Access Token を取得するためのリクエスト set resData = req.HttpResponse.Data set json=resData.Read(10000) ; Google から戻ってきたJSON //write json,!! set AccessToken={}.%FromJSON(json)."access_token" ; JSON から "access_token" の値を取得 write AccessToken,!!
これで新しい AccessToken が取得できました。
「Access Token を指定して Gmail から送信」の手順でメールの送信ができるようになります。