Document Template状のTableで『Quote』テーブルが選択できない

MizukiNakanish
Tera Expert

今、Wordで作ったフォーマットをDocument Templateへ登録し、見積(Quote)のデータをフォーマットを使って表示させる設定を進めていますが、Document Template登録時に必須項目になっている『Table』項目でQuoteの選択ができない状態です。TableとしてはQuoteは存在しているのですが、こちらの項目からは選択できない状況です。
Document Templateの『Table』にQuoteテーブルを出す方法についてわかる方がいらっしゃいましたらご教示いただけますと幸いです。ServiceNow問い合わせ①.pngServiceNow問い合わせ②.png

3件の返信3

iwai
Giga Sage

Google翻訳で「テーブル フィールドでテーブルを選択できない」を英語に変換して「Can't select table in table field」英文を作ります。

その英文でGoogle検索します「site:servicenow.com Can't select table in table field」

site:servicenow.com Can't select table in table field - Google 検索

その検索結果、

UI アクションまたはクライアント スクリプト フォームの "テーブル" フィールド ピッカーにテーブル名が表示されない (グローバル以外のアプリケーション スコープ) - サポートとトラブルシューテ...

この情報を元に、ChatGPTに回答文を作成してもらいました。
----

ChatGPT

ご質問への回答

見積(Quote)のデータをフォーマットを使って表示させる設定について、お困りのことかと思います。Document Template登録時に『Table』項目でQuoteの選択ができない状況について、以下の手順でご確認ください。

  1. アプリケーションスコープの確認:

    • 現在のアプリケーションスコープが「Global」以外に設定されているか確認してください。「Global」以外のスコープで作業している場合、特定のテーブルが表示されないことがあります。
  2. システム定義の確認:

    • ナビゲーターから「System Definition」 > 「Tables & Columns」に移動し、「Quote」テーブルが表示されているか確認します。
  3. テーブルの編集:

    • 「Quote」テーブルを選択し、「Edit Table」ボタンをクリックします。
    • 「sys_db_object」のフォームが開きますので、「Application Access」セクションを探します。
    • 「Accessible from」フィールドが「All application scopes」になっているか確認してください。
  4. XML表示での確認:

    • フォームヘッダーを右クリックし、「Show XML」を選択します。
    • ポップアップが表示されますので、「actions_access」(UIアクションを許可)および「client_scripts_access」(クライアントスクリプトを許可)のフィールド値が「true」になっているか確認します。
    • これらのフィールドが「false」である場合、該当するテーブルがピッカーに表示されない原因となります。

この手順は、ServiceNow Supportからの公式情報に基づいており、特定のテーブルが「Table」フィールドピッカーに表示されない原因を特定するためのものです。具体的な解決策については記載がありませんので、問題が解決しない場合は、ServiceNowサポートにお問い合わせいただくことをお勧めします。

ご不明点がございましたら、どうぞお気軽にお問い合わせください。

MizukiNakanish
Tera Expert

回答ありがとうございます。
>アプリケーションスコープの確認
Globalが選択できていること確認しています

MizukiNakanish_0-1716431935625.png

 

>システム定義の確認
「Tables & Columns」に移動し、「Quote」テーブルがあること確認済み

 

>テーブルの編集

「Accessible from」フィールドが「All application scopes」になっていました

「actions_access」および「client_scripts_access」のフィールド値が「true」になっていました

>XML表示での確認

MizukiNakanish_1-1716432248543.png

 

しかし、今だDocument TemplateのTable上でQuoteの選択ができません。

 

状況を再現するためにPDI環境にContract Management Pro Pluginを入れて、Document Templateを新規作成して、Word Document Template画面を表示して、Table 項目の Dictionary 設定のAttributeを確認しました。
そこには、Table choices script : DocumentTemplateTableChoiceScript の設定がありました。
これはテーブルの選択に特別なScriptを使っている設定です。ScriptはScript includeにあります。
ふたつのScriptがあり

DocumentTemplateTableChoiceScriptはカスタマイズ用の空になっています。
DocumentTemplateTableChoiceScriptSNCには、検索条件を生成するScriptがかかれています。実物を確認してください。

そのScriptをChatGPTが解析して説明したのが以下のとおりです。この説明は何もない情報から推測しているので、誤りがあり信頼性がないと思ってください。

ChatGPT

このScriptは、Document Templateで選択できるTableリストを作成しています。以下の条件に基づいてTableリストを作成していると推測されます。

  1. Taskテーブルとその拡張テーブル:

    • GlideTableHierarchyクラスを使用して、taskテーブルの全ての拡張テーブルを取得します。これには、Taskテーブルを継承している全てのテーブルが含まれます。
  2. Install Base Itemテーブルとその拡張テーブル:

    • 同様に、sn_install_base_itemテーブルの全ての拡張テーブルも取得します。
  3. 契約テンプレートビューの処理:

    • スクリプトは、現在のビュー名を取得し、それが contract_templates であるかどうかを確認します。
    • ビュー名が contract_templates の場合、sn_cm_core.ContractTemplateTableChoices クラスを使用して、非Taskテーブルを取得し、それらを既に取得したTaskおよびInstall Base Itemテーブルのリストに追加します。

具体的には、以下の条件に基づいてテーブルリストを構成しています:

  • 通常のDocument Template:

    • Taskテーブルとその拡張テーブル
    • Install Base Itemテーブルとその拡張テーブル
  • 契約テンプレートビューの場合:

    • 上記のテーブルに加え、契約関連の非Taskテーブル

これにより、通常のDocument Templateでは、主にTask関連のテーブルが選択肢として提供され、契約テンプレートビューの場合には、追加で契約関連のテーブルも選択肢として提供されます。