ロボットの Python 3.11 へのアップグレード

重要

2024 年 10 月 26 日をもって、Robots による Python 3.8 以前のバージョンの関連ライブラリのサポートが終了しました。

自動化プロセスの中断を避けるために、スケジュールされたすべての本番スクリプトが Robots Python 3.11 環境で実行され、正しい出力を生成することを確認する必要があります。

Python 3.11 に移行されていない本番スクリプトまたは開発スクリプトは引き続き実行できますが、実行は保証されません。または、実行されても正しくない出力が生成される場合があります。

Diligent では、ロボットが使用する Python のバージョンを段階的にアップグレードしています。クラウドベースのロボット エージェントが Python 3.8.x から Python 3.11.x にアップグレードされます。移行期間中は、どちらのバージョンの Python もロボットでサポートされます。詳細については、ロボットでの段階的なアップグレード スケジュールを参照してください。

このアップグレードには、Pandas(バージョン 1.2.4 から 2.2.0 へ)や Requests(バージョン 2.26.0 から 2.31.0 へ)など、Python に関連付けられた多数のライブラリの更新も含まれています。ロボットで更新されたライブラリのリストについては、 Python と関連ライブラリの新しいバージョン を参照してください。

組織で HighBond ロボットまたはワークフロー ロボットを使用している場合は、このトピックをお読みいただき、アップグレードの影響についてよく理解するようにしてください。ロボットのお客様は Python のアップグレードをオプトアウトできません。

Python Software Foundation は、Python 3.8 が 2024 年 10 月 14 日に正式にサポート終了になると発表しました。

お客様への影響

重要

2024 年 10 月 26 日までに十分な時間をとって、お使いのすべての Python/HCL スクリプトをテストしてください。この日以降、Python 3.8 はロボットで使用できなくなります。スケジュールされたロボットのタスクの中断を避けるため、必要なスクリプトの更新は期限よりも十分前に行ってください。

互換性のないスクリプト ロジックの可能性

1 つ以上の Python/HCL スクリプトが、Python 3.11 へのアップグレードの影響を受ける可能性があります。Python 3.8 で実行されるスクリプト ロジックが Python 3.11 で実行されなくなった場合や、実行されても間違った出力結果を生成する場合には、スクリプト ロジックを更新する必要があります。

既存のスクリプトが Python 3.11 で問題なく実行されるかどうかを確認する最も簡単な方法は、ロボットスクリプト エディターでスクリプトを開いて実行してみることです。詳細については、「既存の Python/HCL スクリプトをテストして再コミットする」を参照してください。

古いスクリプト ヘッダー情報

Python/HCL スクリプトのヘッダー情報では、HCL パッケージ(HighBond コマンド言語)、Python、およびスクリプトがロボット スクリプト エディターでコミット(保存)された時点でロボットによって使用される関連ライブラリのバージョン番号を指定します。任意のスクリプトをダウンロードしてテキスト エディターで開き、ヘッダー情報を確認できます。

以下の例は、以前および現在の HCL パッケージと Python ランタイム環境でコミットされたスクリプトのヘッダー情報を示しています。

以前:HCL 1.0 および Python 3.8

"environment": {
    "runtime": "python3.8",
    "requirements": ["boxsdk==3.0.1", "openpyxl==3.0.9", "Jinja2==3.0.3", "simple-salesforce==1.11.5", "jira==3.1.1", "hcl==1.0.*"]
}

現在:HCL 3.0 および Python 3.11

"environment": {
    "runtime": "python3.11",
    "requirements": ["boxsdk==3.9.2", "openpyxl==3.1.2", "Jinja2==3.1.3", "simple-salesforce==1.12.5", "jira==3.8.0", "hcl==3.0.*"],
    "showCommitToastMessage": true
}

古いスクリプトの問題

古いヘッダー情報を持つスクリプトは、HCL 3.0 および Python 3.11 ランタイム環境での実行を禁止されていません。ただし、次の問題を回避するために、できるだけ早くスクリプトを更新する必要があります。

  • スクリプトが失敗に終わる場合がある Python 3.8 および古いバージョンの関連ライブラリでコミットされたスクリプトには、Python 3.11 でスクリプトが失敗する原因となる非推奨のコードが含まれている場合があります。

  • スクリプトが間違った出力を生成する場合がある スクリプトは実行できるものの、出力が Python 3.8 ランタイム環境で生成された出力と一致しない場合があります。

  • 警告通知が表示される スクリプトのヘッダー情報が更新されるまで、ロボット ユーザー インターフェイスでの警告通知が、スクリプトとスクリプトを含むロボットとともに表示されます。詳細については、「ロボット ユーザー インターフェイスの警告通知」を参照してください。

  • アクティブ化が禁止される スクリプトのヘッダー情報が更新されるまで、開発モードから本番モードへのスクリプトのアクティブ化は禁止されます。

スクリプトを更新する方法

スクリプトを HCL と Python の現行バージョンに更新するには、以下のプロセスに従います。

  1. ロボット スクリプト エディターでスクリプトを開き、実行します。

  2. スクリプトのロジックに必要な更新を行い、変更を保存します。

  3. スクリプトを保存してコミットします。

    スクリプトをコミットすると、スクリプト ヘッダーが HCL、Python、および関連ライブラリーの現在のバージョンに更新されます。

  4. スクリプトが本番ロボットで使用されている場合は、スクリプトをアクティブにして本番モードで更新します。

詳細な手順については、既存の Python/HCL スクリプトをテストして再コミットするを参照してください。.

ロボット ユーザー インターフェイスの警告通知

ロボット ユーザー インターフェイスには、Python 3.8 にまだ関連付けられているロボットとスクリプトのバージョンを警告するいくつかの警告通知が表示されます。

Python 3.11 ランタイム環境でスクリプトを再コミットして再アクティブ化すると、ロボットとスクリプト バージョンの警告通知は表示されなくなります。

  • ロボット ダッシュボード ロボット ダッシュボードにアクセスすると、Python 3.8 ランタイム環境でコミットおよびアクティブ化された現在の本番スクリプトを持つすべてのロボットを一覧表示するテーブルが表示されます。

  • ダッシュボード上の個々のロボット Python 3.8 ランタイム環境でコミットおよびアクティブ化された現在の本番スクリプトを持つ個々の HighBond ロボットまたはワークフロー ロボットに、警告アイコンが表示されます。

  • 個々のスクリプト バージョン 開発モードでは、Python 3.8 ランタイム環境でコミットされたスクリプト バージョンに警告メッセージが表示されます。

既存の Python/HCL スクリプトをテストして再コミットする

組織の既存の Python/HCL スクリプトが Python 3.11 に移行する準備ができていることを確認するには、ロボット スクリプト エディターでテストして再コミットします。

スクリプト エディターで既存のスクリプトを開く

  1. Launchpad ホームページ (www.highbond.com) からロボット アプリを選択して開きます。

    すでに Diligent One を使用している場合は、左側のナビゲーション メニューを使用してロボット アプリに切り替えることができます。

  2. ロボットのダッシュボードから、該当するロボットの種類のタブを選択します。

    • HighBond ロボット

    • ワークフロー ロボット

  3. ロボットに移動し、そのロボットを選択して開きます。

  4. ロボットの右上隅で、[開発]をクリックし、開発モードに切り替えます。

  5. [スクリプトバージョン] タブで、テストしたいスクリプトのバージョンを選択します。

    通常は、本番モードでアクティブ化されたスクリプトのバージョンを選択する必要があります。アクティブ化されたバージョンがない場合は、別のバージョンを選択する理由がない限り、最新のスクリプトバージョンを選択します。

  6. バージョンの詳細]パネルで、[スクリプト編集]または[編集]をクリックします。

    ロボットスクリプト エディターは起動プロセスを開始し、Python 3.11 ランタイム環境を読み込みます。

スクリプトを実行してテストする

スクリプトを実行して、Python 3.11 ランタイム環境と互換性があるかどうかをテストします。

  1. スクリプト エディターの起動プロセスが完了したら、スクリプトを実行してテストします。

  2. スクリプトが正常に実行された場合は、出力結果が正しいことを確認します。

    スクリプトが正常に実行され、出力結果が正しければ、スクリプトは Python 3.11 およびそれに関連するライブラリと互換性があります。スクリプトのそれ以上のテストは必要ありません。スクリプトを保存およびコミットし、HCL 3.0 および Python 3.11 ランタイム環境に関連付けることができます。スクリプトの保存とコミットを参照してください。

  3. スクリプトが失敗した場合、または出力結果が正しくない場合は、スクリプト ロジックを更新して問題に対処します。

    メモ

    スクリプトの失敗や誤った出力は、ロボットでの Python アップグレードに関連している場合も関連していない場合もあります。詳細については、「ロボット スクリプト開発者向けのガイダンス」を参照してください。

スクリプトの保存とコミット

  1. スクリプト エディターのツールバーで[保存してコミット]をクリックします。

  2. 変更内容を説明するわかりやすいコミットメッセージを入力します。

    ヒント

    コミットメッセージに「Python 3.11 で実行します」を追加すると役に立つ場合があります。

  3. 省略可能。[タスクの実行ログファイルにスクリプト出力を保存]を選択します。

    ロボットのタスクを使用してスクリプトを実行する場合、このオプションはスクリプトの出力をすべてログファイルに保存します。保存された出力は、スクリプトの開発時やトラブルシューティング時に確認するのに役立ちます。詳細については、「ログファイルへのスクリプト出力の保存」を参照してください。

  4. コミット]をクリックして、スクリプトを保存して、コミットします。

    スクリプトは正常にコミットされました]メッセージが表示されます。

  5. ページヘッダーでロボット名をクリックします。

    ロボットの[スクリプトバージョン]タブに戻ります。スクリプトを保存してコミットするたびに、保存されたバージョンがこのタブに追加されます。

  6. 省略可能。スクリプトが Python 3.11 ランタイム環境に関連付けられていることを確認します。

    1. 直前に保存したスクリプトのバージョンを選択します。

    2. バージョンの詳細]パネルで、[スクリプトをダウンロード]をクリックします。

      スクリプトがコンピューターにダウンロードされます。

    3. テキストエディターでスクリプトを開きます。

      関連付けられた Pythonランタイム環境がスクリプトの先頭に表示されます。

      "runtime":"python3.11"
  7. スクリプトが本番ロボットで使用されている場合は、スクリプトを再アクティブにして本番モードで更新します。

    1. 直前に保存したスクリプトのバージョンを選択します。

    2. バージョンの詳細]パネルで、[アクティブ化]をクリックします。

    3. バージョン履歴にコメントを入力し、スクリプトを再アクティブ化する理由を説明します。

    4. アクティブ化 versionNumber]をクリックします。

      スクリプト バージョンは、本番モードでアクティブ化および更新されます。

ロボットでの段階的なアップグレード スケジュール

次の表は、ロボットでの Python および関連ライブラリの段階的なアップグレードの日付と詳細を示しています。

予定日 影響を受ける領域 詳細

2024 年 10 月 26 日

HighBond ロボット

ワークフローロボット

すべてのスクリプト

(スケジュールされたタスク内の未編集スクリプトを含む)

  • 新しいライブラリ(Pandas 2.2.0、Requests 2.31.0、その他の更新されたライブラリ)を使用して Python 3.11 で実行します。他の選択肢はありません。

重要

Python 3.11 に移行されていない本番スクリプトまたは開発スクリプトは引き続き実行できますが、実行は保証されません。または、実行されても正しくない出力が生成される場合があります。

これらのスクリプトは、Python 3.11 に関連付けるために、ロボット スクリプト エディターでテストして再コミットする必要があります。本番スクリプトは、本番モードに再アクティブ化する必要があります。詳細については、「既存の Python/HCL スクリプトをテストして再コミットする」を参照してください。

2024 年 10 月 14 日 python3.8

Python Software Foundation は、Python 3.8 が 2024 年 10 月 14 日に正式にサポート終了になると発表しました。「Python バージョンの状態」を参照してください。

Python のバージョンがサポート終了になると、Python 開発チームはそのバージョンで報告された新しいセキュリティ バグを修正しなくなります。

2024 年 7 月 12 日

HighBond ロボット

ワークフローロボット

ロボットで Python のアップグレード前に作成された既存のスクリプト

  • 以前に本番モードにアクティブ化された場合は、Python 3.8 本番スクリプトを持つすべてのロボットをリストするロボット ダッシュボードのテーブルに表示されます。

  • 警告アイコンが、Python 3.8 本番スクリプトを持つ個々のロボットに表示されます。Python 3.11 ランタイム環境でスクリプトを再コミットして再アクティブ化すると、アイコンは表示されなくなります。

  • スケジュールされたタスクでは、スクリプトが編集されない限り、Python 3.8 でも実行を継続します。

2024 年 7 月 4 日

HighBond ロボット

ワークフローロボット

すべてのスクリプト

  • 古いライブラリ(Pandas 1.2.4、Requests 2.26.0)に関連付けられている Python 3.8 または 3.11 のスクリプトを手動でダウングレード、アップロード、またはアクティブ化することはできません。さらに、Python 3.11 または HCL 3.0 と互換性のないスクリプトを、API やツールキットでアップロードまたはアクティブ化することはできません。

ロボットで Python のアップグレード前に作成された既存のスクリプト

  • スケジュールされたタスクでは、スクリプトが編集されない限り、Python 3.8 でも実行を継続します。

2024 年 4 月 4 日 ワークフローロボット
  • Python 3.11 への初期アップグレード

新しく作成されたスクリプト

  • 対応するライブラリを使用する最新の Python バージョン(Python 3.11、Pandas 2.2.0、Requests 2.31.0)で実行されます。他の選択肢はありません。

ロボットで Python のアップグレード前に作成された既存のスクリプト

  • スケジュールされたタスクでは、スクリプトが編集されない限り、Python 3.8 でも実行を継続します。

  • ロボットのスクリプト エディターで開いた場合は、デフォルトでは、Python 3.11 で実行されます。2024 年 6 月末までは、既存のスクリプトをダウングレードして Python 3.8 で実行されるようにするオプションがスクリプト エディターで提供されます。

2024 年 4 月 4 日 HighBond ロボット

新しく作成されたスクリプト

  • 対応するライブラリを使用する最新の Python バージョン(Python 3.11、Pandas 2.2.0、Requests 2.31.0)で実行されます。他の選択肢はありません。

ロボットで Python のアップグレード前に作成された既存のスクリプト

  • スケジュールされたタスクでは、スクリプトが編集されない限り、Python 3.8 でも実行を継続します。

  • ロボットのスクリプト エディターで開いた場合は、デフォルトでは、対応するライブラリを使用する最新の Python バージョン(Python 3.11、Pandas 2.2.0、Requests 2.31.0)で実行されます。2024 年 6 月末までは、既存のスクリプトをダウングレードして Python 3.8 で実行されるようにするオプションがスクリプト エディターで提供されます。

2023 年 12 月以降に Python 3.11 にアップグレードされたスクリプト

  • スケジュールされたタスクでは、スクリプトは編集されない限り引き続き古いライブラリ(Pandas 1.2.4、Requests 2.26.0)を使用する Python 3.11 で実行されます。

  • ロボットのスクリプト エディターで開いた場合は、デフォルトでは、対応するライブラリを使用する最新の Python バージョン(Python 3.11、Pandas 2.2.0、Requests 2.31.0)で実行されます。2024 年 6 月末までは、既存のスクリプトを手動でダウングレードして古いライブラリ(Pandas 1.2.4、Requests 2.26.0)を使用する Python 3.11 で実行されるようにするオプションがスクリプト エディターで提供されます。

2023 年 12 月半ば HighBond ロボット
  • Python 3.11 への初期アップグレード

新しく作成されたスクリプト

  • Python 3.11、Pandas 1.2.4、Requests 2.26.0 で実行されます。他の選択肢はありません。

ロボットで Python のアップグレード前に作成された既存のスクリプト

  • スケジュールされたタスクでは、スクリプトが編集されない限り、Python 3.8 でも実行を継続します。

  • ロボットのスクリプト エディターで開いた場合は、デフォルトでは、Python 3.11 で実行されます。期間限定で、既存のスクリプトを手動でダウングレードして Python 3.8 で実行されるようにするオプションがスクリプト エディターで提供されます。

Python と関連ライブラリの新しいバージョン

次の表に、現在の Python と以前のバージョン、およびロボットでサポートされている関連ライブラリを示します。新しいバージョンの特定の変更点については、リンクされたリソースを参照してください。

現在サポートされているバージョン 以前にサポートされていたバージョン

Python 3.11

Python 3.11 の新機能

python3.8

Pandas 2.2.0

Pandas 2.2.0 の新機能

Pandas 1.2.4

Requests 2.31.0

Requests 2.31.0 のリリース ノート

Requests 2.26.0

NumPy >= 1.23.3

NumPy 1.23.3 のリリース ノート

NumPy 1.16.5

Cryptography >= 39.0.0

Cryptography 39.0.0 の変更ログ

Cryptography 3.4.7

Boxsdk 3.9.2

Boxsdk 3.9.2 のリリース ノート

Boxsdk 3.0.1

Openpyxl 3.1.2

Openpyxl 3.1.2 のリリース ノート

Openpyxl 3.0.9

Jinja 3.1.3

Jinja 3.1.3 のリリース ノート

Jinja 3.0.3

Simple-salesforce 1.12.5

Simple-Salesforce 1.12.5 のリリース ノート

Simple-salesforce 1.11.5

Jira 3.8.0

Jira 3.8.0 のリリース ノート

Jira 3.1.1

ロボット スクリプト開発者向けのガイダンス

HCL 3.0 の Python および関連ライブラリーのバージョンの変更に関する詳細な情報は、このヘルプ トピックの範囲外です。いくつかの一般的なガイダンスを以下に示します。詳細については、まず上記のリンク先のリソースを参照してください。

Python のアップグレードに関連していないスクリプトの失敗

ロボット スクリプトの失敗は、ロボットの Python をバージョン 3.8 から 3.11 にアップグレードしたことが原因である場合もそうでない場合もあります。例:

  • 401 ステータス コード(許可されていない)でスクリプトが失敗した場合、最も可能性が高い原因は、スクリプトで指定した Diligent One アクセス トークンに問題があることです。詳細については、「アクセス トークンを管理する」を参照してください。

  • 404 ステータス コード(見つからない)は、スクリプトの変数割り当てが欠落しているか、正しくないことが原因である可能性があります。詳細については、「Python/HCL スクリプトの変数の使用」を参照してください。

スクリプトの失敗や誤った出力は、Python アップグレードに関連している可能性があります

スケジュールされたスクリプトが正常に実行されていたのに、2024 年 10 月の最終週に失敗した場合、その失敗はおそらく Python とそれに関連するライブラリのアップグレードに関連しています。スクリプトが引き続き正常に実行されるにもかかわらず、正しくない結果や予期しない結果を出力し始めた場合も同様です。

  • 非推奨の関数とメソッド Python、Pandas、またはその他の関連ライブラリのいずれかで非推奨の関数またはメソッドが問題の根本原因である可能性があります。失敗したスクリプトをロボット スクリプト エディターで実行し、スクリプトから返されたエラー メッセージを慎重に調べます。トラブルシューティング中に AI スクリプト アシスタントを使用してみてください。

  • 複数の中間バージョン Python、Pandas、およびその他の関連ライブラリの多数の中間バージョンが、HCL 1.0 パッケージと HCL 3.0 パッケージで使用されるバージョンの間にリリースされました。問題の原因を特定するために、ライブラリの複数のバージョンに関連付けられている情報を確認する必要がある場合があります。

  • Pandas の破断的変更 Pandas ライブラリの連続するバージョンによって導入された変更の一部は、ロボットで HCL 1.0 スクリプトが失敗する原因となる可能性があります。破断的な変更には、以下の変更が含まれますが、これらに限定されません。

    • append() – 非推奨のメソッド

    • astype() – 動作の変更

    • groupby() – 操作の挙動の変更

    • read_csv() – パラメーターの変更

    • split() – パラメーターの変更

    • str.replace() – パラメーターの変更