仕事をよりスマートに変えて、低コストで生産性を高める必要がありました。Dell KACEはそれに最適でした。
Anthony Kennedy氏、IT運用管理者
St Laurence's College

説明の変更をアップデートして、ローカライズされたK1000アプライアンスとの互換性を維持するためのチケットルール

概要

一部の高度なチケットルールでは、従来のチケットフィールドを修正するのではなく、チケットの変更レコードを修正します。お使いのK1000アプライアンスでローカライズ版のソフトウェア(5.3 L10N以降)を使用している場合には、変更が可視化されないことがあります。HD_TICKET_CHANGE.DESCRIPTIONおよびHD_TICKET_CHANGE.OWNERS_ONLY_DESCRIPTIONフィールドを修正するこのタイプのルールはローカライズ版のK1000でも機能しますが、これらのフィールドの表示方法は旧バージョンと同じです。変更をローカライズ版のK1000でも表示させるためには、このルールを実装する必要があります。

基準

このルールが機能するためには、「説明」フィールドを以下の方法で修正する必要があります。このフィールドを別の方法で修正する場合は、テクニカルサポートにお問い合わせください。

これらのフィールドを以下の形式で修正すれば、このルールがバージョン5.3で機能することをテスト済みです。

  1. ...
  2. SET DESCRIPTION = TRIM(LEADING '\n' FROM(REPLACE (CONCAT(TRIM(BOTH '\n' FROM DESCRIPTION), '\n','チケットルール: テスト用のランダムテキスト' ,'\n'),'\n\n','\n')))
  3. ...

手順

  1. 上記の基準を満たす既存のすべてのルールについて、頻度並べ替えを調べます。例えば、頻度=チケット保存時並べ替え=100というルールがあるとします。
  2. 新しいカスタムルールを作成します。「サービスデスク」、「キュー」、「チケットルール(カスタマイズ)」、「新規追加」の順にアクセスし、「次へ」、「終了」の順にクリックします。これでルールエディタが起動されています。
  3. タイトルを「convert description and owners_only_description fields to localized(「説明」フィールドと「owners_only_description」フィールドを変換してローカライズ)」と設定します。
  4. 説明を「This rule must be run with a frequency of "on ticket save" AFTER (i.e. with a higher order number) any rules that modify the DESCRIPTION or OWNERS_ONLY_DESCRIPTION field(このルールは「チケット保存時」の頻度で、DESCRIPTIONまたはOWNERS_ONLY_DESCRIPTIONフィールドを修正するルールの後に(それらより大きい並べ替えの数で)実行されなければならない)」と設定します。
  5. 並べ替えの数をステップ1で確認した数より大きい数に設定します。例えば、1,000など、任意の大きい数に設定できます。
  6. 頻度を他のルールと同じに設定します。例えば「チケット保存時」など。
  7. 以下のようにSelectクエリを入力します。
  8. 以下のようにUpdateクエリを入力します。
  9. ルールを有効にします。
  10. 他のすべてのオプションはオフにします。
  11. 「保存」をクリックします。

Selectクエリ

  1. select C.ID
  2. from HD_TICKET_CHANGE C JOIN HD_TICKET ON C.HD_TICKET_ID=HD_TICKET.ID
  3.  select ID,
  4.   DESCRIPTION D,
  5.   LOCALIZED_DESCRIPTION LD,
  6.     FIND_IN_SET('[end]',CONCAT(REPLACE(REPLACE(REPLACE(TRIM(LEADING '\n' from CONCAT(TRIM(TRAILING '\n' from DESCRIPTION),'\n')),'\n\n','\n'),',','|'),'\n','\n,'),'[end]')) DLGTH,
  7.     FIND_IN_SET('[end]',CONCAT(REPLACE(REPLACE(REPLACE(TRIM(LEADING '\n' from CONCAT(TRIM(TRAILING '\n' from LOCALIZED_DESCRIPTION),'\n')),'\n\n','\n'),',','|'),'\n','\n,'),'[end]')) LDLGTH,
  8.   OWNERS_ONLY_DESCRIPTION OOD,
  9.   LOCALIZED_OWNERS_ONLY_DESCRIPTION LOOD,
  10.     FIND_IN_SET('[end]',CONCAT(REPLACE(REPLACE(REPLACE(TRIM(LEADING '\n' from CONCAT(TRIM(TRAILING '\n' from OWNERS_ONLY_DESCRIPTION),'\n')),'\n\n','\n'),',','|'),'\n','\n,'),'[end]')) OODLGTH ,
  11.     FIND_IN_SET('[end]',CONCAT(REPLACE(REPLACE(REPLACE(TRIM(LEADING '\n' from CONCAT(TRIM(TRAILING '\n' from LOCALIZED_OWNERS_ONLY_DESCRIPTION),'\n')),'\n\n','\n'),',','|'),'\n','\n,'),'[end]')) LOODLGTH
  12.  from HD_TICKET_CHANGE) LC ON LC.ID=C.ID
  13. C.ID=<CHANGE_ID> and
  14. (DESCRIPTION<>'' OR OWNERS_ONLY_DESCRIPTION<>'')
  15. (case when LOCALIZED_DESCRIPTION RLIKE '''(Updated|Added) resolution' then  LDLGTH+1
  16.   else DLGTH end
  17.   <>
  18.   LDLGTH
  19.  case when LOCALIZED_OWNERS_ONLY_DESCRIPTION RLIKE '''(Updated|Added) resolution' then  OODLGTH+1
  20.   else OODLGTH end
  21.   <>
  22.   LOODLGTH )

Updateクエリ

  1.  HD_TICKET_CHANGE C
  2.  select ID,
  3.   DESCRIPTION D,
  4.   LOCALIZED_DESCRIPTION LD,
  5.     FIND_IN_SET('[end]',CONCAT(REPLACE(REPLACE(REPLACE(TRIM(LEADING '\n' from CONCAT(TRIM(TRAILING '\n' from DESCRIPTION),'\n')),'\n\n','\n'),',','|'),'\n','\n,'),'[end]')) DLGTH,
  6.     FIND_IN_SET('[end]',CONCAT(REPLACE(REPLACE(REPLACE(TRIM(LEADING '\n' from CONCAT(TRIM(TRAILING '\n' from LOCALIZED_DESCRIPTION),'\n')),'\n\n','\n'),',','|'),'\n','\n,'),'[end]')) LDLGTH,
  7.   OWNERS_ONLY_DESCRIPTION OOD,
  8.   LOCALIZED_OWNERS_ONLY_DESCRIPTION LOOD,
  9.     FIND_IN_SET('[end]',CONCAT(REPLACE(REPLACE(REPLACE(TRIM(LEADING '\n' from CONCAT(TRIM(TRAILING '\n' from OWNERS_ONLY_DESCRIPTION),'\n')),'\n\n','\n'),',','|'),'\n','\n,'),'[end]')) OODLGTH ,
  10.     FIND_IN_SET('[end]',CONCAT(REPLACE(REPLACE(REPLACE(TRIM(LEADING '\n' from CONCAT(TRIM(TRAILING '\n' from LOCALIZED_OWNERS_ONLY_DESCRIPTION),'\n')),'\n\n','\n'),',','|'),'\n','\n,'),'[end]')) LOODLGTH
  11.  from HD_TICKET_CHANGE) LC ON LC.ID=C.ID
  12. LOCALIZED_DESCRIPTION = TRIM( TRAILING  'sprintf(_(stripslashes('''')), _(str_replace(":", ":", "")));\n' FROM CONCAT(LD,
  13. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH-1),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  14. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  15. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+1),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  16. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+2),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  17. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+3),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  18. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+4),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  19. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+5),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  20. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+6),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  21. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+7),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  22. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+8),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  23. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+9),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  24. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+10),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  25. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+11),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  26. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+12),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  27. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+13),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  28. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(D,'\n',DLGTH+14),'\n',-1),''')), _(str_replace("\:", ":", "")));\n' )  ),
  29.  
  30.  LOCALIZED_OWNERS_ONLY_DESCRIPTION= TRIM( TRAILING  'sprintf(_(stripslashes('''')), _(str_replace(":", ":", "")));\n' FROM CONCAT(LOOD,
  31. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH-1),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  32. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  33. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+1),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  34. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+2),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  35. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+3),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  36. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+4),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  37. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+5),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  38. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+6),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  39. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+7),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  40. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+8),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  41. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+9),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  42. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+10),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  43. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+11),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  44. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+12),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  45. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+13),'\n',-1),''')), _(str_replace("\:", ":", "")));\n',
  46. 'sprintf(_(stripslashes(''', SUBSTRING_INDEX(SUBSTRING_INDEX(OOD,'\n',OODLGTH+14),'\n',-1),''')), _(str_replace("\:", ":", "")));\n' )  )
  47. C.ID=<TICKET_IDS>

.

Updated on: 2011年12月16日