2021-10-05 11:40 AM
2021-10-05 05:22 PM 2021-10-05 07:16 PM 更新
こんにちは。
ECMAScript / JavaScriptの仕様としては、
Date.getHours()などはローカルタイムの値を返す仕様なので、
現象見る限りは不具合だと思います。
開発チームには連絡や確認はしておきます。
回避策に関しては、現在の暫定修正方法だと、この事象が不具合認定されて修正されたあとに、
再度9時間ズレることになるので、以下のような方式にすると、
修正後も動作する可能性が高まると思います(完ぺきではありません)。
■ 方法1
UTCベースで実装する方法です。
now.getHours()などを、すべてUTCベースの、
now.getUTCHours()/getUTCMinutes()/getUTCSeconds()などに置き換えます。
const disconnectTime = "17:30"
の部分をUTCベースの時刻で指定することになります。
※ この方法と現在のアルゴリズムの組み合わせでは、重大な欠点があって、
日本時間(もしくはUTC+9のタイムゾーン)に限定した場合、日本時間の09:00(UTCの00:00)以前に指定すると期待しない動作になります。
運用上このケースがないことが期待できるのであれば、使える実装かなと思います。
■ 方法2
端末側の時刻取得APIを利用する方法です。
https://roomos.cisco.com/xapi/Status.Time.SystemTime/
マクロ上は、以下のような感じでデバイスの時刻が取得できます。
xapi.Status.Time.SystemTime.get().then((value) => { console.log('SystemTime: ' + value) })
文字列として取得できる情報なので、これをパースする必要があるのが課題になります。
現状、Date自体の動作に問題がありそうで、new Date(取得した文字列)などを行っても、期待した動作にはなりませんので、
独自にパースするなどの必要が出てくると思います。
以上、よろしくお願いします。
2021-10-05 07:10 PM
本件、さきほどの投稿のアップデートになります。
開発チームと話して、不具合としてケースは作成してもらいました。
今後修正されると思いますが、現時点で時期等は未定となります。
まだ調査始まったばかりですが、内部的なUTCからのオフセット値が期待した値になっていないので、
このあたりが根本原因かもしれません。
DateにはgetTimeZoneOffset()メソッドがありますが、こちらもUTCとズレたタイムゾーンであっても
期待した値は返さず、常に0を返すような問題がある動作になっています。
2021-10-06 10:04 AM
返信いただきありがとうございます。
不具合登録されたとのこと承知しました。
回避方法については共有いただいたサンプルを参考に検討してみます。
今後、開発部門から情報が出てくるのかもしれませんが
本件は端末バージョンアップに起因するJavaScript の不具合ものなのでしょうか。
端末のバージョンアップは特に関係なくJavaScript 側だけの不具合なのでしょうか。
基本的な質問になるかもしれませんが、VC端末のバージョンとマクロを実装するJavaScript の仕様(バージョン?)の
関係性がよく理解できていません。
お客様に説明するにあたり、ご教示いただけますと幸いです。
2021-10-06 11:51 AM 2021-10-06 12:48 PM 更新
こんにちは。
本問題は、RoomOSのアップグレードに伴う、
RoomOS内部に標準的に組み込まれているマクロのランタイム(マクロ関連のJavaScript実行エンジン)関連の不具合となります。
マクロ関連の機能自体はRoomOSの標準機能なので、RoomOS上で動作するように標準的に組み込まれており、
今回はご指摘のあったRoomOSバージョンに組み込まれていたマクロのランタイムに不具合があったということになります。
今回の問題に関しては、マクロのランタイムの改修で解決する見込みではありますが、
現在個別コンポーネント単位でのパッチ形式のような提供は行っていないと思うので、
今後のRoomOSのアップグレードにて修正も提供されることになると思います。
以上、よろしくお願いいたします。
2021-10-07 02:22 PM
マクロのランタイムに不具合があったとのこと、承知しました。
不具合改修後も影響を受けない形でマクロの修正を行ってみます。
今回のBug IDが分かれば教えてください。経過を確認しておこうと思います。
2021-10-07 04:19 PM
こんにちは。
提示した方法は、UTCベースの実装で、getUTCXyz()はマクロエンジン修正後もUTCベースの情報を返すことが期待されるため、
マクロエンジン修正版を適用後も同じ動きをすることは期待できます。
ただ、時刻の設定部分もUTCベースになってメンテナンス性は劣ると思うので、
タイミング見てコードはもとに戻すことを考えたほうがいいかもしれません。
不具合のIDに関してですが、現時点では、開発チーム側のシステムに登録している状態で、
公開されている不具合のIDがありません。
現状は担当者はアサインされている状態で優先度に関する評価を行っている状況です。
開発側のシステムに登録されているのでこのまま最適な形で進むと思います。
私は状況確認できるので情報のアップデートはできると思いますが、
コミュニティ対応となるので、ベストエフォートになる点ご了承いただければと思います。
以上、よろしくお願いします。
2021-10-07 05:35 PM
時刻指定はJSTで指定し、時刻比較の際に、指定した時刻と現在時刻の両方をUTCに変換するようにマクロを修正してみましたので、こちらを適用し様子をみてみます。
ベストエフォートで結構ですので、改修完了しましたらこちらにUpdateいただけますと幸いです。
2021-10-14 02:48 PM
こんにちは。
本件、内部での修正は完了しました。
今後のリリースにて修正適用済みとなる見込みです。
予定では、2021年11月のリリースになると思います。
原因に関して細かい実装内容等は開示できませんが、
簡単に説明すると、
マクロのランタイム内部でタイムゾーン情報の取得に失敗する状態になっており、
その際にUTCにフォールバックする実装であったため、
UTCとして処理されていたことになります。
以上、よろしくお願いします。
エキスパートの回答、ステップバイステップガイド、最新のトピックなどお気に入りのアイデアを見つけたら、あとで参照できるように保存しましょう。
コミュニティは初めてですか?これらのヒントを活用してスタートしましょう。 コミュニティの活用方法 新メンバーガイド
下記より関連するコンテンツにアクセスできます