4 デフォルト・テンプレートの使用
この章では、ServiceNowコネクタに付属のデフォルト・チケッティング・テンプレートについて詳しく説明します。チケット・テンプレートでは、Enterprise Managerのインシデントおよび基になるイベントの属性と、ServiceNowチケットの属性とのマッピングを指定します。
テンプレート・プロセス
即時利用可能なテンプレートのいずれを使用した場合も、インシデントに対してチケットが作成されると、次のアクションが実行されます。
-
Description
(ServiceNowチケットの説明)にインシデント情報を書き込みます。 -
インシデント・メッセージに基づいてServiceNowチケットの短い説明を設定します。
あらかじめ用意されているテンプレートは次のとおりです。
-
serviceNowIncidentCreateAndUpdate.xsl
-
serviceNowIncidentCreateUpdateAndClose.xsl
-
serviceNowIncidentCreateUpdateAndResolve.xsl
serviceNowIncidentCreateAndUpdate.xsl
このテンプレートは、ServiceNowでOracle Enterpriseインシデントをインシデント・チケットとして作成します。Oracle Enterprise Managerで重大度が明確な場合、ServiceNowチケット・ノートは更新されますが、ステータスは更新されません。
serviceNowIncidentCreateUpdateAndClose.xsl
このテンプレートは、ServiceNowでOracle Enterpriseインシデントをインシデント・チケットとして作成します。Oracle Enterprise Managerで重大度が明確な場合、ServiceNowチケット・ノートは更新され、ステータスはクローズに設定されます。
serviceNowIncidentCreateUpdateAndResolve.xsl
このテンプレートは、ServiceNowでOracle Enterpriseインシデントをインシデント・チケットとして作成します。Oracle Enterprise Managerで重大度が明確な場合、ServiceNowチケット・ノートは更新され、ステータスは解決済に設定されます。
チケット・テンプレートの読取り
次の表に、serviceNowCreateUpdateAndClose.xsl
を使用したチケット作成の例を示します。この表は、チケット・テンプレートの内容の解釈に役立ちます。表内の*は、リテラル文字列を表し、**はif the attribute applies
を示します。また、この表は、チケット作成マッピングについて、ServiceNowチケット属性とそれに対応するEnterprise Managerのインシデント値も示しています。
チケット作成マッピングは、serviceNowCreateAndUpdate.xsl
とserviceNowCreateUpdateAndResolve.xsl
で同じものです
ノート:
値が不要なServiceNowチケット属性は、この表には記載されていません。
ServiceNowチケット属性 | Enterprise Managerインシデントの属性 | 値 |
---|---|---|
Impact | $severity | これは、影響を受けるサービスのビジネス上の重要性を示す指標です。これは、Oracle Enterprise Managerインシデントの重大度に直接対応します。 |
urgency | $priority | これは、インシデントの解決が遅れても許容できる程度です。これは、Oracle Enterprise Managerインシデントの重大度に直接対応します。 |
short_description | Summary | サマリー – 発行されたインシデントについての詳細 |
description |
Summary 重大度コード Priority 通知ルール名 通知ルール所有者 ターゲット・タイプ ターゲット名 オブジェクト所有者 ターゲット・プロパティ 最終更新日 インシデントURL |
サマリー – 発行されたインシデントについての詳細 重大度コード - Oracle Enterprise Managerでのインシデントの重大度 優先度 - Oracle Enterprise Managerでのインシデントの優先度 通知ルール名 - チケットを作成したルールの名前(自動チケットのみ) 通知ルール所有者 - チケットを作成したルールを所有するユーザーの名前(自動チケットのみ) ターゲット・タイプ - インシデントが発行されたターゲットのタイプ ターゲット名 – インシデントが発行されたターゲットの名前 オブジェクト所有者 - インシデントが発行されたオブジェクトを所有するユーザーの名前 ターゲット・プロパティ - インシデントに関する追加の名前と値。ホスト、バージョン、OS、プラットフォームなど 最終更新日 - インシデントがOracle Enterprise Managerで作成された日付 インシデントURL - ユーザーをOracle Enterprise Managerインシデントに誘導するURLリンク |
このマッピング表を参照として使用し、次のXSLTファイルを読み取ります。
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:emcf="http://xmlns.oracle.com/sysman/connector" version="1.0"> <xsl:template match="emcf:EMIncident"> <!-- Please remember to backup all files before editing --> <!-- This area is where variables are set to be used in the rest of the template. By default, there are three variables set: * Action: Used to figure out if the connector is 'creating' or 'updating' or 'closing' the ServiceNow Ticket. * Severity: Used to set the Impact of the ServiceNow ticket. * Priority: Used to set the Urgency of the ServiceNow ticket. If you want to add or change variables, do so below. --> <xsl:variable name="action"> <xsl:choose> <xsl:when test="normalize-space(emcf:TicketID) = ''">CREATE</xsl:when> <xsl:when test="(emcf:SystemAttributes/emcf:SeverityCode = 'CLEAR')">CLOSE</xsl:when> <xsl:otherwise>UPDATE</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="severity"> <xsl:choose> <xsl:when test="emcf:SystemAttributes/emcf:SeverityCode = 'FATAL'">1</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:SeverityCode = 'CRITICAL'">1</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:SeverityCode = 'WARNING'">2</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:SeverityCode = 'ADVISORY'">2</xsl:when> <xsl:otherwise>3</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="priority"> <xsl:choose> <xsl:when test="emcf:SystemAttributes/emcf:Priority = 'Urgent'">1</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:Priority = 'Very High'">2</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:Priority = 'High'">2</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:Priority = 'Medium'">3</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:Priority = 'Low'">3</xsl:when> <xsl:otherwise>3</xsl:otherwise> </xsl:choose> </xsl:variable> <Message> <!-- The following areas (Method, Variables, and Headers) should not be edited. They are used to make communication work between Oracle Enterprise Manager and ServiceNow. --> <Method> <xsl:choose> <xsl:when test="$action = 'CREATE'">POST</xsl:when> <xsl:when test="$action = 'UPDATE'">PUT</xsl:when> <xsl:when test="$action = 'CLOSE'">PUT</xsl:when> <xsl:otherwise>ERROR</xsl:otherwise> </xsl:choose> </Method> <Variables> <Variable> <Name>TKT_KEY</Name> <Value> <xsl:value-of select="translate(substring-after(substring-before(emcf:TicketID, ')'), '(' ) ,'ABCDEF','abcdef')" /> </Value> </Variable> </Variables> <Headers></Headers> <!-- The body is used to send data to ServiceNow. By default, the connector sends data either 'On Create', 'On Update', or 'On Close'. Fields that are sent when the ticket is created are found under the following header: <xsl:if test="$action = 'CREATE'"> Fields that are sent when the ticket is updated are found under the following header: <xsl:if test="$action = 'UPDATE'"> Fields that are sent when the ticket is closed are found under the following header: <xsl:if test="$action = 'CLOSE'"> There are a number of fields that are sent by default, but there are also a number of fields that are not. These fields require manual configuration and are commented out below. To enable these fields, fill in the data required, and remove the comment brackets. Example: If you wanted to add a "Caller" of "John Smith" who has an ID of "john.smith" you would uncomment that line and replace "CALLER-ID" with "john.smith". The new line would look like this: <string name="caller_id">john.smith</string> --> <Body> <object> <xsl:if test="$action = 'CREATE'"> <!-- Priority in ServiceNow is calculated based on impact and urgency (the following two fields). This is how they are mapped: Impact 1 (High) & Urgency 1 (High) = Priority 1 (Critical) Impact 1 (High) & Urgency 2 (Medium) = Priority 2 (High) Impact 1 (High) & Urgency 3 (Low) = Priority 3 (Moderate) Impact 2 (Medium) & Urgency 1 (High) = Priority 2 (High) Impact 2 (Medium) & Urgency 2 (Medium) = Priority 3 (Moderate) Impact 2 (Medium) & Urgency 3 (Low) = Priority 4 (Low) Impact 3 (Low) & Urgency 1 (High) = Priority 3 (Moderate) Impact 3 (Low) & Urgency 2 (Medium) = Priority 4 (Low) Impact 3 (Low) & Urgency 3 (Low) = Priority 5 (Planning) The default mappings of "impact" are based on the severity of the Oracle Enterprise Manager incident. They are set in the severity variable above. The default mappings of "urgency" are based on the priority of the Oracle Enterprise Manager incident. They are set in the priority variable above. --> <!-- This is the measure of the business criticality of the affected service. This maps directly to the "severity" of the Oracle Enterprise Manager incident. --> <string name="impact"> <xsl:value-of select="$severity" /> </string> <!-- This is the extent to which resolution of the incident can bear delay. This maps directly to the "priority" of the Oracle Enterprise Manager incident. --> <string name="urgency"> <xsl:value-of select="$priority" /> </string> <!-- This is a brief description of the incident in Oracle Enterprise Manager. --> <string name="short_description"> <xsl:value-of select="emcf:SystemAttributes/emcf:Summary" /> </string> <!-- This is a detailed description of the incident in Oracle Enterprise Manager. --> <string name="description">Incident created in Oracle Enterprise Manager: <xsl:value-of select="emcf:SystemAttributes/emcf:Summary" /> Original Severity: <xsl:value-of select="emcf:SystemAttributes/emcf:SeverityCode" /> Original Priority: <xsl:value-of select="emcf:SystemAttributes/emcf:Priority" /> <xsl:choose> <xsl:when test="normalize-space(emcf:NotificationRuleName) != ''"> Incident trigged by the following rule: <xsl:value-of select="emcf:NotificationRuleName" /> </xsl:when> </xsl:choose> <xsl:choose> <xsl:when test="normalize-space(emcf:NotificationRuleOwner) != ''"> Rule is owned by: <xsl:value-of select="emcf:NotificationRuleOwner" /> </xsl:when> </xsl:choose> Target Type: <xsl:value-of select="emcf:SystemAttributes/emcf:SourceInfo/emcf:TargetInfo/emcf:TargetType" /> Target Name: <xsl:value-of select="emcf:SystemAttributes/emcf:SourceInfo/emcf:TargetInfo/emcf:TargetName" /> Original Owner: <xsl:value-of select="emcf:SystemAttributes/emcf:SourceInfo/emcf:SourceObjInfo/emcf:ObjOwner" /> Additional Properties: <xsl:for-each select="emcf:SystemAttributes/emcf:SourceInfo/emcf:TargetInfo/emcf:TargetProperty"> * <xsl:value-of select="./emcf:Name" />: <xsl:value-of select="./emcf:Value" /> </xsl:for-each> This incident was created at: <xsl:value-of select="emcf:SystemAttributes/emcf:LastUpdatedDate" /> To manage the incident in Oracle Enterprise Manager, navigate to the following URL: <xsl:value-of select="emcf:SystemAttributes/emcf:IncidentURL" /></string> <!-- Uncomment category below if you have created a custom category for EM Incidents in ServiceNow. Change the text "EM Incident" to the name of your custom category if you have created your own. To create a category in ServiceNow, create a new incident or click on an existing incident. Right click the label "Category" (not the drop-down box), then select "Configure Choices." Enter the name of the new category, then click "Add." --> <!-- <string name="category">EM Incident</string> --> <!-- This is the person who reported or is affected by the incident. To lookup a user ID enter ServiceNow, go to System Security > Users and select the user you want. Copy the "User ID" field and replace "CALLER-ID" below. --> <!-- <string name="caller_id">CALLER-ID</string> --> <!-- This is the subcategory the incident will be filed under. Ensure the subcategory is a valid subcategory of "category" listed above. Replace "SUBCATEGORY-NAME" with the name of the subcategory. --> <!-- <string name="subcategory">SUBCATEGORY-NAME</string> --> <!-- This is the service affected by the incident. Replace "SERVICE-NAME" with the name of the service. --> <!-- <string name="business_service">SERVICE-NAME</string> --> <!-- This is the item or service affected by the incident. In ServiceNow this is labeled as "Configuration Item". Replace "CONFIGURATION-ITEM-NAME" with the name of the configuration item. --> <!-- <string name="cmdb_ci">CONFIGURATION-ITEM-NAME</string> --> <!-- This describes how the incident was reported. Replace "CONTACT-TYPE" with the type of contact used. --> <!-- <string name="contact_type">CONTACT-TYPE</string> --> <!-- This is the group that the incident is assigned to. Replace "ASSIGNMENT-GROUP-NAME" with the name of the assignment group. --> <!-- <string name="assignment_group">ASSIGNMENT-GROUP-NAME</string> --> <!-- This is the user the incident is assigned to. To lookup a user ID enter ServiceNow, go to System Security > Users and select the user you want. Copy the "User ID" field and replace "CALLER-ID" below. --> <!-- <string name="assigned_to">USER-ID</string> --> <!-- This is the ID of the parent incident (if one exists). Parent incidents can be used to collect incidents for the same root issue. Replace "PARENT-ISSUE-ID" with the ID of the parent incident. --> <!-- <string name="parent_incident">PARENT-ISSUE-ID</string> --> <!-- This is the ID of the related problem (if one exists). A problem is a cause of more than one incident. Replace "PROBLEM-ID" with the ID of the related problem. --> <!-- <string name="problem_id">PROBLEM-ID</string> --> <!-- This is the ID of the related change request (if one exists). Replace "CHANGE-REQUEST-ID" with the ID of the related change request. --> <!-- <string name="rfc">CHANGE-REQUEST-ID</string> --> <!-- This is the ID of the change request that caused the incident (if one exists). Replace "CHANGE-REQUEST-ID" with the ID of the related change request that caused the incident. --> <!-- <string name="caused_by">CHANGE-REQUEST-ID</string> --> <!-- If set to true, this field will automatically create a draft of a knowledge article when the incident is closed. Uncomment to enable. --> <!-- <string name="knowledge">true</string> --> <!-- This is where the caller or service is located. Replace "LOCATION" with the string related with the location of the incident. --> <!-- <string name="location">LOCATION</string> --> </xsl:if> <xsl:if test="$action = 'UPDATE'"> <!-- Priority in ServiceNow is calculated based on impact and urgency (the following two fields). This is how they are mapped: Impact 1 (High) & Urgency 1 (High) = Priority 1 (Critical) Impact 1 (High) & Urgency 2 (Medium) = Priority 2 (High) Impact 1 (High) & Urgency 3 (Low) = Priority 3 (Moderate) Impact 2 (Medium) & Urgency 1 (High) = Priority 2 (High) Impact 2 (Medium) & Urgency 2 (Medium) = Priority 3 (Moderate) Impact 2 (Medium) & Urgency 3 (Low) = Priority 4 (Low) Impact 3 (Low) & Urgency 1 (High) = Priority 3 (Moderate) Impact 3 (Low) & Urgency 2 (Medium) = Priority 4 (Low) Impact 3 (Low) & Urgency 3 (Low) = Priority 5 (Planning) The default mappings of "impact" are based on the severity of the Oracle Enterprise Manager incident. They are set in the severity variable above. The default mappings of "urgency" are based on the priority of the Oracle Enterprise Manager incident. They are set in the priority variable above. --> <!-- This is the measure of the business criticality of the affected service. This maps directly to the "severity" of the Oracle Enterprise Manager incident. --> <string name="impact"> <xsl:value-of select="$severity" /> </string> <!-- This is the extent to which resolution of the incident can bear delay. This maps directly to the "priority" of the Oracle Enterprise Manager incident. --> <string name="urgency"> <xsl:value-of select="$priority" /> </string> <!-- <string name="work_notes">This leaves a note on the ticket to give more details of work done.</string> --> <string name="work_notes">The incident was updated in Oracle Enterprise Manager. <xsl:value-of select="emcf:SystemAttributes/emcf:Summary" /> Severity in Oracle Enterprise Manager is currently: <xsl:value-of select="emcf:SystemAttributes/emcf:SeverityCode" />. Impact is now <xsl:value-of select="$severity" />. Priority in Oracle Enterprise Manager is currently: <xsl:value-of select="emcf:SystemAttributes/emcf:Priority" />. Urgency is now <xsl:value-of select="$priority" />. Owner in Oracle Enterprise Manager is currently: <xsl:value-of select="emcf:SystemAttributes/emcf:SourceInfo/emcf:SourceObjInfo/emcf:ObjOwner" /> This incident was updated in Oracle Enterprise Manager at: <xsl:value-of select="emcf:SystemAttributes/emcf:LastUpdatedDate" /></string> </xsl:if> <xsl:if test="$action = 'CLOSE'"> <!-- This is the state of the ticket. By default, this is "7" which is equivalent to closed. --> <number name="state">7</number> <!-- This is the code used to described why the ticket was resolved or closed. --> <string name="close_code">Closed/Resolved by Caller</string> <!-- This leaves a note on the ticket to give more details of why the ticket was resolved or closed. --> <string name="close_notes">Ticket has been closed by Oracle Enterprise Manager.</string> <!-- This leaves a note on the ticket to give more details of work done. --> <string name="work_notes">The incident was updated in Oracle Enterprise Manager. <xsl:value-of select="emcf:SystemAttributes/emcf:Summary" /> Severity in Oracle Enterprise Manager is currently: <xsl:value-of select="emcf:SystemAttributes/emcf:SeverityCode" /> Priority in Oracle Enterprise Manager is currently: <xsl:value-of select="emcf:SystemAttributes/emcf:Priority" /> Owner in Oracle Enterprise Manager is currently: <xsl:value-of select="emcf:SystemAttributes/emcf:SourceInfo/emcf:SourceObjInfo/emcf:ObjOwner" /> This incident was updated in Oracle Enterprise Manager at: <xsl:value-of select="emcf:SystemAttributes/emcf:LastUpdatedDate" /> Ticket has been closed by Oracle Enterprise Manager.</string> <!-- This is the person who closed or resolved the ticket. To lookup a user ID enter ServiceNow, go to System Security > Users and select the user you want. Copy the "User ID" field and replace "USER-ID" below. --> <!-- <string name="resolved_by">USER-ID</string> --> </xsl:if> </object> </Body> </Message> </xsl:template> </xsl:stylesheet>
チケット・テンプレートのカスタマイズ
即時利用可能なチケット・テンプレートで要件を満たせない場合は、テンプレートを変更できます。変更するには、既存のテンプレートのいずれかを基本テンプレートとして使用することをお薦めします。そのチケット・テンプレートを新しいファイルにコピーし、変更を加えた後、新しいチケット・テンプレートとして登録してください。
テンプレートは、EM CLIコマンドを使用するかわりに、Enterprise Managerで直接編集することもできます。詳細は、「テンプレートの編集」と「テンプレートのリストア」を参照してください。
ほとんどの場合、チケット・テンプレートを変更するときには、マッピングのみを変更します。次の例では、このコンセプトについて説明しています。
例4-1 クローズ済ServiceNowチケットに対するナレッジ・ベース記事の作成
ServiceNowでは、チケットがクローズされると、ナレッジベース記事を作成できます。Oracle Enterprise Managerにより作成されたすべてのチケットに対してこれを可能にするには、テンプレートで次のコードを見つけてコメント・ブラケット(<!-- および -->)を削除し、日付を設定します。
<!-- <string name="knowledge">true</string> -->
例4-2 警告チケットを「影響大」に変更
ServiceNowは、影響度(Oracle Enterprise Managerの重大度に基づく)と優先度(Oracle Enterprise Managerの緊急度に基づく)の値に基づいて優先度を計算します。この例では、Oracle Enterprise Managerの「警告」はServiceNowでは「高」の影響であるとして、優先度を強調します。デフォルトでは「中」に設定されています。
そのためには、テンプレートの一番上にある重大度の変数を見つける必要があります。次のコードを見つけます。
<xsl:variable name="severity"> <xsl:choose> <xsl:when test="emcf:SystemAttributes/emcf:SeverityCode = 'FATAL'">1</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:SeverityCode = 'CRITICAL'">1</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:SeverityCode = 'WARNING'">2</xsl:when> <xsl:when test="emcf:SystemAttributes/emcf:SeverityCode = 'ADVISORY'">2</xsl:when> <xsl:otherwise>3</xsl:otherwise> </xsl:choose> </xsl:variable>
現在、警告の重大度が2に設定されていることに注意してください。つまり、ServiceNowで影響度は「中」です。その影響力を高める場合は、単にその2を1に変更するのみです。これにより、すべての警告チケットの影響度が高くなり、ServiceNowでの優先度に影響が出ます。
新規テンプレートの定義
すぐに使用できるテンプレートは、デフォルトのフォームに基づきます。新たに定義するチケット・テンプレートがこれらのフォームに基づく場合、「チケット・テンプレートのカスタマイズ」の内容が適用されます。
ただし、別のフォームを使用する場合は、新たにチケット・テンプレートを定義する必要があります。
Enterprise Manager属性
表4-1は、ServiceNowの使用時にマップできるEnterprise Managerのフィールドを示しています。
表4-1 Enterprise Manager属性
データ・フィールド | 説明 |
---|---|
SystemAttributes/Owner |
自動チケット発行の場合、これはインシデント・ルール所有者です。 |
TicketID |
現在のインシデントに関連付けられているチケットを識別します(チケット作成後に使用可能)。 |
TargetType |
インシデントが関連付けられているターゲットのタイプ( |
TargetName |
インシデントが関連付けられているターゲットの名前。たとえば、 |
TargetProperties |
TargetPropertiesには、ターゲットに固有の環境または使用コンテキストの情報が格納されます。たとえば、ホスト・ターゲットの場合、TargetPropertiesの名前/値ペアは次のとおりです。
これらは、即時利用可能なユーザー定義のターゲット・プロパティです。追加のターゲット・プロパティが追加されている場合は、チケット情報とともに表示されます。 |
SystemAttributes/Summary |
インシデントの説明。たとえば: CPU使用率が100%で、警告(80)またはクリティカル(95)のしきい値を超えています。 |
Priority |
「低い」から「緊急」までのインシデントの優先度 |
SystemAttributes/Severity |
このインシデントの重大度: |
CollectionTime |
インシデント発生時のタイムスタンプ。 |
SystemAttributes/IncidentURL |
インシデントのインシデント詳細ページへのURL。 |
NotificationRuleName |
自動チケット発行中に通知を作成したインシデント・ルールの名前。 |
TargetTimezone |
インシデントに関連付けられているターゲットのタイムゾーン。 |
SystemAttributes/Acknowledge |
インシデントが確認されたかどうかを示すフラグ。 |
SystemAttributes/AutoClose |
インシデントがシステムによって自動クローズされたか、ユーザーが手動でクローズする必要があるかを示すフラグ。 |
SystemAttributes/Category |
インシデントのカテゴリのオプションのリスト。 |
SystemAttributes/CreationDate |
イベントをインシデントに関連付けることによってインシデントが作成される時間。 |
SystemAttributes/Escalated |
インシデントがエスカレートされたかどうかを示すフラグ。 |
SystemAttributes/EscalationLevel |
このインシデントに対して行われたエスカレーションの階層レベル。 |
SystemAttributes/IncidentID |
インシデントのID。 |
SystemAttributes/LastModifiedBy |
最後にインシデントを変更したユーザー。 |
SystemAttributes/LastUpdatedDate |
インシデントの最終更新時間 |
SystemAttributes/Priority |
問題を解決する優先順位。 |
SystemAttributes/ResolutionState |
インシデントが解決の観点からどこにあるかを追跡するために使用する属性。 |
SystemAttributes/SeverityCode |
現在のイベントの内部重大度の値。 |
SystemAttributes/TicketStatus |
外部チケットがインシデントに関連付けられている場合は、外部ヘルプ・デスク・システムで割り当てられたチケットのステータスで、EMで更新されます。 |
SystemAttributes/UpdatedAttributes |
インシデントの更新された属性。 |
チケット・テンプレート作成用の書式
カスタムServiceNowフォームのチケット・テンプレートを作成するには、次の書式に従います。
例4-3 カスタムServiceNowフォームのテンプレート書式
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:emcf="http://xmlns.oracle.com/sysman/connector" version="1.0"> <xsl:template match="emcf:EMIncident"> * [Insert any variables needed here] <Message> <Method> <xsl:choose> <xsl:when test="$action = 'CREATE'">POST</xsl:when> <xsl:when test="$action = 'UPDATE'">PUT</xsl:when> <xsl:when test="$action = 'CLOSE'">PUT</xsl:when> <xsl:otherwise>ERROR</xsl:otherwise> </xsl:choose> </Method> <Variables> <Variable> <Name>TKT_KEY</Name> <Value> <xsl:value-of select="translate(substring-after(substring- before(emcf:TicketID, ')'), '(' ) ,'ABCDEF','abcdef')" /> </Value> </Variable> </Variables> <Headers></Headers> <Body> * [Insert body changes (details you are sending to ServiceNow) here] </Body> </Message> </xsl:template> </xsl:stylesheet>