teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

解決方法を追加しました!

2020/10/14 08:27

投稿

salty_
salty_

スコア15

title CHANGED
File without changes
body CHANGED
@@ -41,6 +41,7 @@
41
41
  salesforce、apexともに携わって2週間ほどですが、他に分かる人がおらず大変困っております。trailheadと並行して勉強中なので、(javaでの開発もありません)基本もわかっていない部分があると思います。どなたか助言をいただけないでしょうか。よろしくお願いします。
42
42
 
43
43
  追記①:解決しました!
44
+ ```
44
45
  //元からあったクラス定義部分のgUserにbaseNo__cを追加
45
46
  gUser = [ SELECT id, Name,baseNo__c FROM User];
46
47
 
@@ -61,8 +62,10 @@
61
62
  // コール元に返す
62
63
  return result;
63
64
  }
65
+ ```
66
+ 正直まだ完全に理解できておりませんが、皆様に助言いただいたSchemaというキーワードで
67
+ 試行錯誤してたどり着きました。もっと勉強します。
64
68
 
65
-
66
69
  追記②:一番最初これで行けると思ったがこれだとガバナ制限に引っかかってテスト通らず却下。
67
70
  ```
68
71
  //クラス定義部分に追加 ここでbaseNo__cのラベルを取得

4

解決しました!

2020/10/14 08:27

投稿

salty_
salty_

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  オブジェクト「User」の中にカスタム項目「baseNo」があります。
2
- 「baseNo」はリスト型で
2
+ 「baseNo」は選択リスト型で
3
- (表示ラベル?):東京
3
+ 値:東京
4
4
  API参照名:1
5
5
  というような作りになっております。
6
6
 
@@ -40,7 +40,30 @@
40
40
 
41
41
  salesforce、apexともに携わって2週間ほどですが、他に分かる人がおらず大変困っております。trailheadと並行して勉強中なので、(javaでの開発もありません)基本もわかっていない部分があると思います。どなたか助言をいただけないでしょうか。よろしくお願いします。
42
42
 
43
+ 追記①:解決しました!
44
+ //元からあったクラス定義部分のgUserにbaseNo__cを追加
45
+ gUser = [ SELECT id, Name,baseNo__c FROM User];
46
+
47
+ //現在のレコードとgUserのIDを照合して、一致したらbaseNo__cを返す
48
+ private String getBaseName(Id uId) {
49
+ String result = null;
50
+ for (User rec : gUser) {
51
+ if (rec.Id == uId) {
52
+ Schema.DescribeFieldResult o = User.baseNo__c.getDescribe();
53
+ List<Schema.PicklistEntry> v = o.getPicklistValues(); //baseNo__cのデータを取得
54
+ for(Schema.PicklistEntry s : v){
55
+ if(rec.baseNo__c == s.getValue()){
56
+ result = s.getLabel();
57
+ }
58
+ }
59
+ }
60
+ }
61
+ // コール元に返す
62
+ return result;
63
+ }
64
+
65
+
43
- 追記」解決方法です。 さらに追記:これだとガバナ制限に引っかかってテスト通らず。
66
+ 追記一番最初これで行けると思ったがこれだとガバナ制限に引っかかってテスト通らず却下
44
67
  ```
45
68
  //クラス定義部分に追加 ここでbaseNo__cのラベルを取得
46
69
  gBaseName = [

3

解決方法がうまくいかなかったので

2020/10/14 08:25

投稿

salty_
salty_

スコア15

title CHANGED
File without changes
body CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  salesforce、apexともに携わって2週間ほどですが、他に分かる人がおらず大変困っております。trailheadと並行して勉強中なので、(javaでの開発もありません)基本もわかっていない部分があると思います。どなたか助言をいただけないでしょうか。よろしくお願いします。
42
42
 
43
- 「追記」解決方法です。
43
+ 「追記」解決方法です。 さらに追記:これだとガバナ制限に引っかかってテスト通らず。
44
44
  ```
45
45
  //クラス定義部分に追加 ここでbaseNo__cのラベルを取得
46
46
  gBaseName = [

2

解決したコードを記載しました。

2020/10/13 04:08

投稿

salty_
salty_

スコア15

title CHANGED
File without changes
body CHANGED
@@ -38,4 +38,29 @@
38
38
 
39
39
  ```
40
40
 
41
- salesforce、apexともに携わって2週間ほどですが、他に分かる人がおらず大変困っております。trailheadと並行して勉強中なので、(javaでの開発もありません)基本もわかっていない部分があると思います。どなたか助言をいただけないでしょうか。よろしくお願いします。
41
+ salesforce、apexともに携わって2週間ほどですが、他に分かる人がおらず大変困っております。trailheadと並行して勉強中なので、(javaでの開発もありません)基本もわかっていない部分があると思います。どなたか助言をいただけないでしょうか。よろしくお願いします。
42
+
43
+ 「追記」解決方法です。
44
+ ```
45
+ //クラス定義部分に追加 ここでbaseNo__cのラベルを取得
46
+ gBaseName = [
47
+ SELECT id,Name,toLabel(baseNo__c)
48
+ FROM User
49
+ ];
50
+
51
+ //現在のレコードとList gBaseNameのIDを照合して、一致したらbaseNo__cを返す
52
+ //この時、toLabel()にしなくてもラベルが返ってくる。
53
+ private String getBaseName(Id uId) {
54
+
55
+ String result = null;
56
+
57
+ for (User rec : gBaseName) {
58
+ if (rec.Id == uId) {
59
+
60
+ result = rec.baseNo__c;
61
+ }
62
+ }
63
+ // コール元に返す
64
+ return result;
65
+ }
66
+ ```

1

2020/10/12 07:49

投稿

salty_
salty_

スコア15

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  というような作りになっております。
6
6
 
7
7
  API参照名は下記のコードで取得できています(前任者が作成)
8
- ----------------------------------------------------
8
+ ```
9
9
  クラスの定義部分で
10
10
  gUser = [ SELECT id, Name FROM User];
11
11
  とuserオブジェクトからIDを取ってきて
@@ -20,10 +20,11 @@
20
20
  }
21
21
  return result;
22
22
  }
23
+
23
- -----------------------------------------------------------------
24
+ ```
24
25
  今回、このbaseNoのAPI参照名ではなく表示ラベルも取得し、画面上に表示させる改修を頼まれ、
25
26
  上記のコードを見よう見まねで作ってみたのですがうまくいきません。
26
-
27
+ ```
27
28
  private String getBaseName(Id uId) {
28
29
  String result = null;
29
30
  for (User rec : gUser) {
@@ -35,4 +36,6 @@
35
36
  return result;
36
37
  }
37
38
 
39
+ ```
40
+
38
41
  salesforce、apexともに携わって2週間ほどですが、他に分かる人がおらず大変困っております。trailheadと並行して勉強中なので、(javaでの開発もありません)基本もわかっていない部分があると思います。どなたか助言をいただけないでしょうか。よろしくお願いします。