Web サービスを使用した営業時間の管理

このユース ケースでは、npc RESTful Web サービスを使用して、ビューをフィルタする営業時間定義の作成と管理を行うために、管理者が展開できる手順を示します。npc 管理者は、営業時間定義のセットを作成してレポートの機能を拡張できます。 営業時間を設定すると、ビジネス上重要な期間に発生するイベントを確認できるようになり、製品のオペレータがトラブルシューティング作業に優先順位を付けるプロセスを支援することができます。
capm250
このユース ケースでは、
NetOps Portal
RESTful Web サービスを使用して、ビューをフィルタする営業時間定義の作成と管理を行うために、管理者が展開できる手順を示します。
NetOps Portal
管理者は、営業時間の定義セットを作成して、レポートの機能を拡張できます。 営業時間を設定すると、ビジネス上重要な期間に発生するイベントを確認できるようになり、製品のオペレータがトラブルシューティング作業に優先順位を付けるプロセスを支援することができます。
サイト グループを作成するためにグループ Web サービスを使用し、営業時間定義を管理するために営業時間 Web サービスを使用します。 最初に営業時間を追加した場合、サイト グループの作成中に、サイト グループと営業時間を関連付けることができます。
複数の営業時間定義の追加や削除を行い、その定義をサイト グループに割り当てることができます。
このユース ケースでは REST クライアント(総括的な Web サービス ユーザ インターフェース アプリケーション)を使用する場合に実行する手順について説明します。 このユース ケースには、デフォルト サーバ ポート 8181 を使用して生成する URI が含まれています。
Web サービスを使用したサイト グループの作成
グループ Web サービスを使用して、デフォルトのテナントに関連付けられたサイト グループの作成および設定を行うために、任意の REST クライアントを使用します。 グループ Web サービスで、ルールを作成し、アイテムが自動的に追加されるように、サイト グループにそのルールを適用することができます。 カスタム テナント内にグループを作成する手順は、わずかに異なります。 パラメータとしてグループ ID またはグループ パスを提供できます。
グループを作成する基本的な URL を以下に示します。
http://
PC_host
:8181/pc/center/webservice/groups/useIds/allowDeletes
useIds
は、グループを識別するために
groupItemId
パラメータが使用されることを示します。 指定されたグループの ID 属性を使用してグループを識別する必要があるかどうかを示します。 グループ Web サービスで新しいグループを作成するときにグループの ID が使用されないようにするには、値「false」を指定します。 これらの ID が内部的に割り当てられると、エクスポートおよび再インポートされたグループを識別するための方法として、ID の信頼性が低下するからです。 この例では、XML にはグループ ID が含まれないため、値は「false」です。
  • allowDeletes
    作成しているグループの削除を有効にします。 グループ Web サービスで、既存のグループ内で定義されていて、この XML ドキュメントで上書きされた、任意のルールを更新できます。
http://
PC_host
:8181/pc/center/webservice/groups/false/true
以下の手順に従います。
  1. NetOps Portal
    サーバへ接続されている REST クライアントをセットアップします。
  2. REST クライアントで URL に以下の形式を使用します。
    http://
    PC_host
    :8181/pc/center/webservice/groups/false/true
  3. 「HTTP」メソッド
    POST
    を選択します。
  4. NetOps Portal
    へのグローバル管理者アクセス権があるユーザ アカウントのリクエスト ヘッダに、有効なユーザ名とパスワードを指定します。
  5. Body Content-type
    として、
    application/XML
    を選択します。
  6. [Body]テキスト セクション内に次の XML を追加して、値を新しいサイト グループに使用する値に置き換えます。
    <GroupTree path="/All Groups"> <Group name="East Coast USA" desc="This is a site group" inherit="true" type="site group" location="North America" bHourID="99990" timeZone="EST"/> </GroupTree>
    • inherit
      グループにグループ メンバの子アイテムを含めるかどうかを指定します。 たとえば、「inherit」属性を true に設定すると、デバイスがグループに追加された際に、デバイス インターフェースはグループ メンバになります。
    • type
      グループのタイプを指定します。 以下の値を受け入れます。
      • custom group
        : ユーザが作成したグループ。
      • site group
        : 物理サイトを表す、ユーザが作成したグループ。
      • system group
        : 変更または削除できない事前定義済みグループ
      • automatic group
        : Data Aggregator 以外のデータ ソースのアイテムに基づいて事前定義されたグループ。変更や削除はできません。
    • bHourID
      以前に作成した営業時間定義の内部的に割り当てられた識別子。
    • timeZone
      このサイト グループと関連付けるタイムゾーン。
    たとえば、以下の XML を提供します。
    <Group name="East Coast" desc="Site group to represent the entire United States" inherit="true" type="site group" location="North America" bHourID="99990" timeZone="EST"/>
  7. メソッドを実行します。
    新しいサイト グループ「USA」が、グループ ツリーのデフォルトの[すべてのグループ]グループの下に作成されます。
  8. 必要な数のサイト グループを作成するまで、前述の手順を繰り返します。
  9. 同様の手順を使って、サブグループを作成します。 [Body]テキスト セクション内に、以下の XML を追加します。
    <GroupTree path="/All Groups/USA"> <Group name="Raleigh" desc="This is the group for managed items in Raleigh, NC" inherit="true" type="custom group"/> </GroupTree>
  10. メソッドを実行します。
    この例では、新しいグループ「Raleigh」が、[All Groups\USA]グループのサブグループとして追加されます。
タイムゾーンの関連付けの管理
サイト グループとタイムゾーンの関連を管理するために、Web サービスを使用できます。
サイト グループにタイムゾーンを割り当てるには、PUT 操作で以下の URL を使用します。
http://
PC_host
:8181/pc/center/webservice/businesshours/assign/timezone/site/siteGroupId
PUT 操作で次の構文を使用すると、割り当てが削除されます。
unassign/timezone/site/siteGroupId
サイト グループに割り当てられたタイムゾーンの一覧を取得するには、以下の構文を使用します。
http://
PC_host
:8181/pc/center/webservice/businesshours/timezonesAssignedToSites
以下の手順に従います。
  1. NetOps Portal
    サーバへ接続されている REST クライアントをセットアップします。
  2. REST クライアントに、
    NetOps Portal
    RESTful Web サービス API の URL を入力します。 次の形式を使用します:
    http://
    PC_host
    :8181/pc/center/webservice/businesshours/assign/timezone/site/siteGroupId
  3. 「HTTP」メソッド
    PUT
    を選択します。
  4. NetOps Portal
    への管理者アクセス権を持つユーザ アカウントの有効なユーザ名およびパスワードを指定します。
  5. Body 設定内の「
    Body Content-type
    」として「
    application/xml
    」を選択します。
  6. [Body]テキスト セクション内に、以下の XML を追加します。
    <GroupTree path="/All Groups"> <Group name="East Coast USA" desc="This is a site group" inherit="true" type="site group" location="North America" bHourID="99990" timeZone="EST"/> </GroupTree>
    • bHourID
      以前に作成した営業時間定義の内部的に割り当てられた識別子。
    • timeZone
      このサイト グループと関連付けるタイムゾーン。
  7. メソッドを実行します。
    まだ存在していない場合、新しいサイト グループ「USA」が、グループ ツリーのデフォルトの[すべてのグループ]グループの下に作成されます。 東部標準タイムゾーン(EST)がこのサイト グループに割り当てられます。
  8. 営業時間を適用することを計画しているすべてのサイト グループに、タイムゾーンを関連付けるまで、前述の手順を繰り返します。
タイムゾーンの関連付けを削除するには、'unassign/timezone' 構文と同じメソッドを実行します。
営業時間定義を作成します。
営業時間 Web サービスを使用して、営業時間の定義を作成するために、任意の REST クライアントを使用します。 この手順では、グローバル管理者、またはテナント管理者としてログインできます。 グローバル管理者は、デフォルト テナント内の営業時間定義を作成し、テナント管理者は、そのテナント内の定義を作成しています。
カスタム テナント内の営業時間を作成する手順は、わずかに異なります。 パラメータとしてテナント ID を提供できます。
営業時間定義は、開始時間および終了時間から構成されます。 XML 内の startHour および endHour パラメータは、POST または PUT の操作におけるエラーを回避するため、すべての曜日で同じである必要があります。
営業時間定義を作成する基本的な URL を以下に示します。
http://
PC_host
:8181/pc/center/webservice/businesshours
複数のテナントを持つシステムの場合、URL でテナントを指定します。 テナント ID のリストを取得するには、以下の URL への GET を実行します。
http://
PC_host
:8181/pc/center/webservice/tenants/idNames
次の URL に PUT 操作を実行して、カスタム テナント内の営業時間を変更することもできます(/businesshours/tenantId/
tenant Id
/id/
id
)。ここで「id」は営業時間定義の ID です。
以下の手順に従います。
  1. NetOps Portal
    サーバへ接続されている REST クライアントをセットアップします。
  2. REST クライアントに、
    NetOps Portal
    RESTful Web サービス API の URL を入力します。 次の形式を使用します:
    • デフォルト テナント:
      http://
      PC_host
      :8181/pc/center/webservice/businesshours/
    • 特定のテナント
      http://
      PC_host
      :8181/pc/center/webservice/businesshours/tenantId/
      tenant_ID
  3. 「HTTP」メソッド
    POST
    を選択します。
  4. NetOps Portal
    へのグローバル管理者またはテナント管理者のアクセス権を持つユーザ アカウント用の有効なユーザ名およびパスワードを指定します。
  5. Body 設定内の「
    Body Content-type
    」として「
    application/xml
    」を選択します。
  6. [Body]テキスト セクション内に、以下の XML を追加します。
    <BusinessHour> <Name>Bakery</Name> <Description>HEB Bakery</Description> <Monday> <HourRange startHour="5" endHour="12"/> </Monday> <Tuesday> <HourRange startHour="5" endHour="12"/> </Tuesday> <Wednesday> <HourRange startHour="5" endHour="12"/> </Wednesday> <Thursday> <HourRange startHour="5" endHour="12"/> </Thursday> <Friday> <HourRange startHour="5" endHour="12"/> </Friday> <Saturday/> </Sunday> </BusinessHour>
    この例では、HEB Bakery という名前の営業時間定義を作成します。 営業時間は午前 5 時に開始し、正午で終了します。 土曜日および日曜日が除外されます。
  7. メソッドを実行します。
  8. 必要な数の営業時間定義を作成するまで、前述の手順を繰り返します。
営業時間の関連付けの管理
営業時間フィルタを適用するには、サイト グループと営業時間定義を関連付けます。
サイト グループに営業時間を割り当てるには、PUT 操作で以下の URL を使用します。
http://
PC_host
:8181/pc/center/webservice/businesshours/assign/businesshour/businessHourId/site/siteGroupId
: 関連するタイムゾーンのサイト グループを確認する検証が実行されます。 サイト グループにタイムゾーンが割り当てられていない場合、エラー メッセージが表示されます。
PUT 操作で次の構文を使用すると、割り当てが削除されます。
unassign/businesshour/site/siteGroupId
以下の手順に従います。
  1. NetOps Portal
    サーバへ接続されている REST クライアントをセットアップします。
  2. REST クライアントに、
    NetOps Portal
    RESTful Web サービス API の URL を入力します。 次の形式を使用します:
    http://
    PC_host
    :8181/pc/center/webservice/businesshours/assign/businesshour/
    businessHourId
    /site/siteGroupId
    • businessHourId
      以前に作成した営業時間定義の内部的に割り当てられた識別子。
  3. 「HTTP」メソッド
    PUT
    を選択します。
  4. NetOps Portal
    への管理者アクセス権を持つユーザ アカウントの有効なユーザ名およびパスワードを指定します。
  5. Body 設定内の「Body Content-type」として「application/xml」を選択します。
  6. [Body]テキスト セクション内に、以下の XML を追加します。
    <GroupTree path="/All Groups"> <Group name="East Coast USA" desc="This is a site group" inherit="true" type="site group" location="North America" bHourID="99990" timeZone="EST"/> </GroupTree>
  7. メソッドを実行します。
    まだ存在していない場合、新しいサイト グループ「USA」が、グループ ツリーのデフォルトの[すべてのグループ]グループの下に作成されます。 ID 99990 という営業時間定義が、このサイト グループに割り当てられます。
  8. 営業時間を適用することを計画しているすべてのサイト グループに、タイムゾーンを関連付けるまで、前述の手順を繰り返します。
営業時間の関連付けを削除するには、'unassignbusinesshour' 構文を指定して同じメソッドを実行します。
営業時間フィルタリングのあるビューを返すように RIB に問い合わせる
Web ブラウザにクエリを入力することで、特定のメトリックのデータを返すように RIB に問い合わせることができます。 この例は、Data Aggregator データ ソースから Top Discards データを返す
NetOps Portal
RIB クエリを示します。
すべての
NetOps Portal
RIB クエリの前に次の URL を付けます。
http://
PC_host
:8481/dm/rib/query/
プロパティ値を指定する URL パラメータを追加できます。
http://
PC_host
:8481/dm/rib/query/ribquery/?property1=value1&property2=value2
以下の RIB クエリは Data Aggregator データ ソースから Top Discards データを返します。
http://<server IP address>:port/dm/rib/query/SELECT .PollItem.ID, .PollItem.DevDisplayName, .Item.DisplayName, .Discards.Sum, .DiscardsIn.Sum, .DiscardsOut.Sum FROM CA.IM.DA.MF.NormalizedPortInfo.IFSTATS WHERE .Group.GroupID = 1039 AND .EndTime(300) > 1366208760 AND .EndTime(300) <= 1366212360 GROUPBY .PollItem.ID, .Item.DisplayName, .PollItem.DevDisplayName ORDERBY .Discards.Sum DESC LIMIT 10
: 必要に応じて、RIB クエリとパラメータをエスケープできます。 多くの Web ブラウザが以下のように RIB クエリをエスケープします。
http://
PC_host
:port/dm/rib/query/SELECT%20.PollItem.ID,%20.PollItem.DevDisplayName,%20.Item.DisplayName,%20.Discards.Sum,%20.DiscardsIn.Sum,%20.DiscardsOut.Sum%20FROM%20CA.IM.DA.MF.NormalizedPortInfo.IFSTATS%20WHERE%20.Group.GroupID%20=%201039%20AND%20.EndTime(300)%20%3E%201366208760%20AND%20.EndTime(300)%20%3C=%201366212360%20GROUPBY%20.PollItem.ID,%20.Item.DisplayName,%20.PollItem.DevDisplayName%20ORDERBY%20.Discards.Sum%20DESC%20LIMIT%2010
特定のタイム ゾーンの 1 セットの営業時間に対して Top Discards データを返すには以下の URL パラメータを追加します。 営業時間のセットは
NetOps Portal
管理者によって設定されます。
一部のクエリはタイム ゾーンと営業時間によるデータ フィルタリングをサポートしません。
  • RIB.TimeZone
    データ結果のフィルタに使用されるタイム ゾーンの文字列識別子です。
  • RIB.BusinessHours
    データ結果のフィルタに使用される営業時間定義の
    NetOps Portal
    ID です。 ID が変換されるように propertiesToTranslate 値にこのパラメータを含めます。 変換されない ID は適用可能な各データ ソースに未変更で提出されます。
  • propertiesToTranslate
    値にローカル データ ソース ID に変換する
    NetOps Portal
    ID が含まれるパラメータ名のリストです。
例 1
タイム ゾーンによりフィルタされたデータを返すには、URL にタイム ゾーン パラメータ(太字テキストで表示される)を追加します。 以下の例では、アメリカ/ニューヨーク タイム ゾーンに設定されたサイトのアイテムのデータのみを含めるようにデータがフィルタされます。
http://pchost:8481/dm/rib/query/SELECT .PollItem.ID, .PollItem.DevDisplayName, .Item.DisplayName, .Discards.Sum, .DiscardsIn.Sum, .DiscardsOut.Sum FROM CA.IM.DA.MF.NormalizedPortInfo.IFSTATS WHERE .Group.GroupID = 1039 AND .EndTime(300) > 1366208760 AND .EndTime(300) <= 1366212360 GROUPBY .PollItem.ID, .Item.DisplayName, .PollItem.DevDisplayName ORDERBY .Discards.Sum DESC LIMIT 10?RIB.TimeZone=America/New_York
例 2
タイム ゾーンおよび営業時間によってフィルタされたデータを返すには、URL にタイム ゾーンおよび営業時間パラメータ(太字テキストで表示される)を追加します。 以下の例では、アメリカ/ニューヨーク タイム ゾーンに設定されたサイトおよび ID 6434 の
NetOps Portal
定義に一致する営業時間のアイテムのデータのみを含めるようにデータがフィルタされます。
http://pchost:8481/dm/rib/query/SELECT .PollItem.ID, .PollItem.DevDisplayName, .Item.DisplayName, .Discards.Sum, .DiscardsIn.Sum, .DiscardsOut.Sum FROM CA.IM.DA.MF.NormalizedPortInfo.IFSTATS WHERE .Group.GroupID = 1039 AND .EndTime(300) > 1366208760 AND .EndTime(300) <= 1366212360 GROUPBY .PollItem.ID, .Item.DisplayName, .PollItem.DevDisplayName ORDERBY .Discards.Sum DESC LIMIT 10?RIB.TimeZone=America/New_York&RIB.BusinessHours=6434&propertiesToTranslate=RIB.BusinessHours
トラブルシューティング
構文が有効でも、定義自体が有効でない定義を起動する場合、エラーが返されます。 たとえば、サイト グループを作成しようとしたとします。 構文には、営業時間の定義が無効な businessHourId が含まれています。 このような場合、HTTP レスポンス XML には、以下のテキストのようなエラー メッセージが含まれます。
<Group bHourID="99990" desc="This is a site group" inherit="true" location="North America" name="East Coast USA" result="Error with validating business hour ID: Business hour definition with an ID of '99990' not found!" timeZone="EST" type="site group"/>
営業時間定義は、開始時間および終了時間から構成されます。 XML 内の startHour および endHour パラメータは、定義に含まれるすべての曜日で同じである必要があります。 そうでない場合、任意の POST または PUT 操作でエラーが発生します。