ServiceNow のフィールドが、sys_dictionary max_length 値より長い文字列入力を受け付けるIssue 新しい sys_dictionary レコードを作成して新しい文字列フィールドを定義する場合、max_length は必須です。HTML の input タグや textarea タグの maxlength 属性と名前が似ていますが、これはクライアントまたはサーバーにおいて制限として強制されません。 Now Platform では、最大長は強制されません。 ServiceNow のフィールドは、sys_dictionary max_length 値より長い文字列入力を受け付けます。これは製品の想定される動作です。 ServiceNow で文字列フィールドを作成すると、データベース内の基礎となる列は、指定された max_length 値に部分的に基づくデフォルトのデータ型で作成されます。 Small (40) = varchar(40)Medium (100) = varchar(100)Large (1000) = mediumtextExtra Large (4000) = mediumtext varchar(255) より大きい文字列フィールドには、mediumtext データタイプが指定されます。クライアントでは、HTML の input ではなく HTML の textarea として表されます。mediumtext の最大長は 16,777,215 バイトです。 フィールドに格納される文字数の制限については、データベースによって制御され、製品によって制限されることはありません。例えば、データベースでフィールドが varchar(45) に変更されている場合は、入力ボックスに 45 文字を入力できます。max_length が 40 に設定されたままであっても、別の値に変更されていても関係ありません。 同様に、データをインポートする場合、データベース列が max_length 値より大きい場合は、データベース列のサイズ制限まで値をインポートできます。この場合も、 max_length によってインポートされた値が切り捨てられることはありません。 タスクの comments フィールド、work_notes フィールドのいずれかまたは両方に 4000 文字の max_length を適用することについての質問がよくあります。これらのフィールドは、[code][/code] タグを使用した HTML の入力をサポートしています。 mediumtext データ型を使用し、max_length 値に基づいて切り捨てを実行しないことは、意図的な決定事項です。HTML、XML、または JavaScript を切り捨てると、データの破損や損失が発生します。 例外 これには、sc_task.short_description など、いくつかの例外があります。 デフォルトでは、このフィールドはデータベースで varchar(160) として定義されているため、デフォルトの最大長である 160 文字が適用されます。 このフィールドの最大長を 255 より大きい値に設定すると、varchar() から mediumtext に変更されます。