AllowFieldTruncationHeader
AllowFieldTruncationHeader ヘッダーは、文字列を含む次の項目データ型の切り捨て動作を指定します。
- anyType (ここにリストされていないデータ型のいずれかを示す場合)
- encryptedstring
- mulitpicklist
- phone
- picklist
- string
- textarea
バージョン 15.0 より前の API では、一覧表示されたデータ型の 1 つである項目に値を指定し、その値が大きすぎる場合、値は切り捨てられます。API バージョン 15.0 以降では、大きすぎる値が指定されると、操作は失敗し、失敗コード STRING_TOO_LONG が返されます。AllowFieldTruncationHeader ヘッダーを使用すると、API バージョン 15.0 以降の新しい動作ではなく、以前の動作である切り捨てを使用するように指定できます。このヘッダーはバージョン 14.0 以前の製品には無効です。
API コール
convertLead()、create()、merge()、process()、undelete()、update()、および upsert()
Apex: executeanonymous()
項目
| 要素名 | 型 | 説明 |
|---|---|---|
| allowFieldTruncation | boolean |
true の場合、長すぎる項目値を切り捨てます。これは API バージョン 14.0 以前の動作です。 デフォルトは false です (変更は行われません)。string 値および textarea が大きすぎる場合、操作は失敗し、失敗コード STRING_TOO_LONG が返されます。 次のリストには、切り捨ておよびこのヘッダーの影響を受ける項目のデータ型を示しています。
|
サンプルコード — Java
このサンプルでは、最大項目の長さを超える名前を使用する取引先の作成を許可するために項目の切り捨てをオンにする方法を示します。255 文字の項目制限を超える名前を使用して取引先 sObject を作成します。その後、create コールの実行を試行しますが、名前項目の長さが原因で失敗します。次に、AllowFieldTruncationHeader を true に設定し、取引先の作成を再試行すると、今度は成功します。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public void allowFieldTruncationSample() {
18 try {
19 Account account = new Account();
20 // Construct a string that is 256 characters long.
21 // Account.Name's limit is 255 characters.
22 String accName = "";
23 for (int i = 0; i < 256; i++) {
24 accName += "a";
25 }
26 account.setName(accName);
27 // Construct an array of SObjects to hold the accounts.
28 SObject[] sObjects = new SObject[1];
29 sObjects[0] = account;
30 // Attempt to create the account. It will fail in API version 15.0
31 // and above because the account name is too long.
32 SaveResult[] results = connection.create(sObjects);
33 System.out.println("The call failed because: "
34 + results[0].getErrors()[0].getMessage());
35 // Now set the SOAP header to allow field truncation.
36 connection.setAllowFieldTruncationHeader(true);
37 // Attempt to create the account now.
38 results = connection.create(sObjects);
39 System.out.println("The call: " + results[0].isSuccess());
40 } catch (ConnectionException ce) {
41 ce.printStackTrace();
42 }
43}
44