RoomOS マクロの JavaScript コードの変更

RoomOS でマクロを実行する仕組みを更新しました。この更新の結果、一部の JavaScript 規則と関数がマクロで使用できなくなります。 特に、 CommonJS 関連の機能は利用できなくなりました。 書き換えが必要なコードの一般的な例は次のとおりです。

  1. require() には以下が含まれます:
    • require('xapi') - 標準の ECMAScript インポートに書き換える必要があります。 例: const xapi = require('xapi') changed to import xapi from 'xapi'
    • 要求.main
  2. モジュールには以下が含まれます。
    • module.exports - 標準の ECMAScript エクスポートに書き直す必要があります
    • module.name - は _main_module_name() に置き換える必要があります

これはどうやってオンとオフを切り替えるのですか?

これらの変更は、 xConfiguration Macros EvaluateTranspiledTrue から False に切り替えられると有効になります。 この設定は長期間存在しており、新しいリリースではデフォルト値が True から False に変更されることによって変更が展開されています。

この変更によってマクロが機能しなくなった場合は、トグルを明示的に元に戻す (xConfiguration Macros EvaluateTranspiled: True) ことが、マクロが以前と同じように機能するための短期的な修正です。 ただし、これは一時的な解決策にすぎないことに注意してください。このトグルは、移行期間後に 消えます

同様に、古いバージョンの RoomOS では、トグルを False に設定することで、アップグレードせずにこの変更をテストできます。

注意: トグルが False の状態でマクロがデバイスに保存され、後でトグルを TURN して True に戻す場合は、マクロ エディターでそれらのマクロを再度保存する必要がある場合があります。

これらの変更はいつ有効になりますか?

EvaluateTranspiled トグルのデフォルト値は、RoomOS May 2025 (11.28) 以降、 False に変更されました。つまり、デバイスはアップグレード時にデフォルトで切り替わります。 同じバージョンでは、XAPI を介してマクロを保存する際のトランスパイル手順がデフォルトでオフになっています。 XAPI によるトランスパイルが必要な場合は、transpile コマンド オプションを明示的に true に設定する必要があります。

RoomOS 7 月 2025 (11.30) 以降、トグルが True に設定されていると診断が表示されます。 これまで通り動作します。

今後、トグルは完全に削除され、デバイスは False に設定されているかのように動作します。 この変更は 2025 年 11 月に展開される予定です。 この日付は、マクロを更新できる顧客の数に応じて変更される可能性がありますが、タイムラインは年単位ではなく月単位で測定されます。 正確な日付は、ここで公開されるほか、関連する RoomOS リリースのリリース ノートにも掲載されます。

変更について通知および案内するために当社が最大限の努力を払ったにもかかわらず、変更が RoomOS に永続的に適用されたときにマクロが失敗するお客様は、クラウド登録済みデバイスに対して Control Hub を通じて提供される (最大) 6 か月延期されたソフトウェア アップデートを使用して、変更を延期することができます。

なぜこれが必要なのでしょうか? 技術的な詳細

この変更の主な理由は、組み込みシステム向けの最新の JavaScript ランタイムとして機能する QuickJS を使用するように JavaScript エンジンを更新したことです。 その後、最新の JavaScript エンジンでは必要なくなったため、JavaScript のトランスパイルのサポートを削除することにしました。 すべてのコードをトランスパイルする余分な手順を削除すると、コードの展開および実行時の読み込み時間が短縮され、プラットフォームの複雑さも軽減されます。

JavaScript エンジンの切り替えは、 xConfiguration Macros QuickJSEngine: Off から On に変更されて制御されます。 この変更は RoomOS 12 月 (2023 (11.11) で展開され、 EvaluateTranspiled と同じタイムラインでこの構成トグルを削除する予定です。

これらの変更は、RoomOS のパフォーマンスを最大限に高め、JavaScript 拡張機能の展開を効率的かつ安全な方法で拡張できるようにするために行っています。

マクロの詳細については、 roomos.cisco.com をご覧ください。