質問編集履歴

5

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

2020/10/14 08:27

投稿

salty_
salty_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -84,6 +84,8 @@
84
84
 
85
85
  追記①:解決しました!
86
86
 
87
+ ```
88
+
87
89
  //元からあったクラス定義部分のgUserにbaseNo__cを追加
88
90
 
89
91
  gUser = [ SELECT id, Name,baseNo__c FROM User];
@@ -124,7 +126,11 @@
124
126
 
125
127
  }
126
128
 
129
+ ```
127
130
 
131
+ 正直まだ完全に理解できておりませんが、皆様に助言いただいたSchemaというキーワードで
132
+
133
+ 試行錯誤してたどり着きました。もっと勉強します。
128
134
 
129
135
 
130
136
 

4

解決しました!

2020/10/14 08:27

投稿

salty_
salty_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
1
  オブジェクト「User」の中にカスタム項目「baseNo」があります。
2
2
 
3
- 「baseNo」はリスト型で
3
+ 「baseNo」は選択リスト型で
4
4
 
5
- (表示ラベル?):東京
5
+ 値:東京
6
6
 
7
7
  API参照名:1
8
8
 
@@ -82,7 +82,53 @@
82
82
 
83
83
 
84
84
 
85
+ 追記①:解決しました!
86
+
87
+ //元からあったクラス定義部分のgUserにbaseNo__cを追加
88
+
89
+ gUser = [ SELECT id, Name,baseNo__c FROM User];
90
+
91
+
92
+
93
+ //現在のレコードとgUserのIDを照合して、一致したらbaseNo__cを返す
94
+
95
+ private String getBaseName(Id uId) {
96
+
97
+ String result = null;
98
+
99
+ for (User rec : gUser) {
100
+
101
+ if (rec.Id == uId) {
102
+
103
+ Schema.DescribeFieldResult o = User.baseNo__c.getDescribe();
104
+
105
+ List<Schema.PicklistEntry> v = o.getPicklistValues(); //baseNo__cのデータを取得
106
+
107
+ for(Schema.PicklistEntry s : v){
108
+
109
+ if(rec.baseNo__c == s.getValue()){
110
+
111
+ result = s.getLabel();
112
+
113
+ }
114
+
115
+ }
116
+
117
+ }
118
+
119
+ }
120
+
121
+ // コール元に返す
122
+
123
+ return result;
124
+
125
+ }
126
+
127
+
128
+
129
+
130
+
85
- 追記」解決方法です。 さらに追記:これだとガバナ制限に引っかかってテスト通らず。
131
+ 追記一番最初これで行けると思ったがこれだとガバナ制限に引っかかってテスト通らず却下
86
132
 
87
133
  ```
88
134
 

3

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

2020/10/14 08:25

投稿

salty_
salty_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -82,7 +82,7 @@
82
82
 
83
83
 
84
84
 
85
- 「追記」解決方法です。
85
+ 「追記」解決方法です。 さらに追記:これだとガバナ制限に引っかかってテスト通らず。
86
86
 
87
87
  ```
88
88
 

2

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

2020/10/13 04:08

投稿

salty_
salty_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -79,3 +79,53 @@
79
79
 
80
80
 
81
81
  salesforce、apexともに携わって2週間ほどですが、他に分かる人がおらず大変困っております。trailheadと並行して勉強中なので、(javaでの開発もありません)基本もわかっていない部分があると思います。どなたか助言をいただけないでしょうか。よろしくお願いします。
82
+
83
+
84
+
85
+ 「追記」解決方法です。
86
+
87
+ ```
88
+
89
+ //クラス定義部分に追加 ここでbaseNo__cのラベルを取得
90
+
91
+ gBaseName = [
92
+
93
+ SELECT id,Name,toLabel(baseNo__c)
94
+
95
+ FROM User
96
+
97
+ ];
98
+
99
+
100
+
101
+ //現在のレコードとList gBaseNameのIDを照合して、一致したらbaseNo__cを返す
102
+
103
+ //この時、toLabel()にしなくてもラベルが返ってくる。
104
+
105
+ private String getBaseName(Id uId) {
106
+
107
+
108
+
109
+ String result = null;
110
+
111
+
112
+
113
+ for (User rec : gBaseName) {
114
+
115
+ if (rec.Id == uId) {
116
+
117
+
118
+
119
+ result = rec.baseNo__c;
120
+
121
+ }
122
+
123
+ }
124
+
125
+ // コール元に返す
126
+
127
+ return result;
128
+
129
+ }
130
+
131
+ ```

1

2020/10/12 07:49

投稿

salty_
salty_

スコア15

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  API参照名は下記のコードで取得できています(前任者が作成)
14
14
 
15
- ----------------------------------------------------
15
+ ```
16
16
 
17
17
  クラスの定義部分で
18
18
 
@@ -42,13 +42,15 @@
42
42
 
43
43
  }
44
44
 
45
+
46
+
45
- -----------------------------------------------------------------
47
+ ```
46
48
 
47
49
  今回、このbaseNoのAPI参照名ではなく表示ラベルも取得し、画面上に表示させる改修を頼まれ、
48
50
 
49
51
  上記のコードを見よう見まねで作ってみたのですがうまくいきません。
50
52
 
51
-
53
+ ```
52
54
 
53
55
  private String getBaseName(Id uId) {
54
56
 
@@ -72,4 +74,8 @@
72
74
 
73
75
 
74
76
 
77
+ ```
78
+
79
+
80
+
75
81
  salesforce、apexともに携わって2週間ほどですが、他に分かる人がおらず大変困っております。trailheadと並行して勉強中なので、(javaでの開発もありません)基本もわかっていない部分があると思います。どなたか助言をいただけないでしょうか。よろしくお願いします。