@bonsae/node-red-salesforce 0.4.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,7 @@
32
32
  <table width="100%" style="min-width:500px">
33
33
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th>기본값</th><th style="width:35%">설명</th></tr></thead>
34
34
  <tbody>
35
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
35
+ <tr><td>연결</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
36
36
  <tr><td>쿼리</td><td>query</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
37
37
  <tr><td></td><td>errorPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
38
38
  <tr><td></td><td>completePort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
@@ -70,10 +70,10 @@
70
70
  <table width="100%" style="min-width:500px">
71
71
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th>기본값</th><th style="width:35%">설명</th></tr></thead>
72
72
  <tbody>
73
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
73
+ <tr><td>연결</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
74
74
  <tr><td>작업</td><td>operation</td><td></td><td>예</td><td><code>"create"</code></td><td></td></tr>
75
75
  <tr><td>SObject 유형</td><td>sObjectType</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
76
- <tr><td></td><td>record</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
76
+ <tr><td>레코드</td><td>record</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
77
77
  <tr><td>외부 ID 필드</td><td>externalIdField</td><td>string</td><td>아니오</td><td><code>""</code></td><td></td></tr>
78
78
  <tr><td></td><td>errorPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
79
79
  <tr><td></td><td>completePort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
@@ -109,17 +109,18 @@
109
109
  <table width="100%" style="min-width:500px">
110
110
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th>기본값</th><th style="width:35%">설명</th></tr></thead>
111
111
  <tbody>
112
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
112
+ <tr><td>연결</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
113
113
  <tr><td>작업</td><td>operation</td><td></td><td>예</td><td><code>"insert"</code></td><td></td></tr>
114
114
  <tr><td>SObject 유형</td><td>sObjectType</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
115
+ <tr><td>SOQL 쿼리</td><td>query</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
115
116
  <tr><td>외부 ID 필드</td><td>externalIdField</td><td>string</td><td>아니오</td><td><code>""</code></td><td></td></tr>
116
- <tr><td></td><td>assignmentRuleId</td><td>string</td><td>아니오</td><td><code>""</code></td><td></td></tr>
117
- <tr><td></td><td>columnDelimiter</td><td></td><td>예</td><td><code>"COMMA"</code></td><td></td></tr>
118
- <tr><td></td><td>lineEnding</td><td></td><td>예</td><td><code>"LF"</code></td><td></td></tr>
119
- <tr><td></td><td>pollInterval</td><td>number [min: 1000]</td><td>예</td><td><code>5000</code></td><td></td></tr>
120
- <tr><td></td><td>pollTimeout</td><td>number [min: 5000]</td><td>예</td><td><code>60000</code></td><td></td></tr>
117
+ <tr><td>할당 규칙 ID</td><td>assignmentRuleId</td><td>string</td><td>아니오</td><td><code>""</code></td><td></td></tr>
118
+ <tr><td>열 구분자</td><td>columnDelimiter</td><td></td><td>예</td><td><code>"COMMA"</code></td><td></td></tr>
119
+ <tr><td>줄 끝</td><td>lineEnding</td><td></td><td>예</td><td><code>"LF"</code></td><td></td></tr>
120
+ <tr><td>폴링 간격 (ms)</td><td>pollInterval</td><td>number [min: 1000]</td><td>예</td><td><code>5000</code></td><td></td></tr>
121
+ <tr><td>폴링 타임아웃 (ms)</td><td>pollTimeout</td><td>number [min: 5000]</td><td>예</td><td><code>60000</code></td><td></td></tr>
121
122
  <tr><td></td><td>errorPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
122
- <tr><td></td><td>completePort</td><td>boolean</td><td>예</td><td><code>true</code></td><td></td></tr>
123
+ <tr><td></td><td>completePort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
123
124
  <tr><td></td><td>statusPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
124
125
  </tbody>
125
126
  </table>
@@ -130,7 +131,17 @@
130
131
  <table width="100%" style="min-width:500px">
131
132
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th style="width:35%">설명</th></tr></thead>
132
133
  <tbody>
133
- <tr><td>레코드 배열 또는 SOQL 쿼리</td><td>payload</td><td></td><td>예</td><td></td></tr>
134
+ <tr><td>레코드 배열, CSV 문자열, 읽기 스트림(수집) 또는 트리거(쿼리)</td><td>payload</td><td></td><td>예</td><td>Records array, CSV string, readable stream (ingest) or SOQL string (query)</td></tr>
135
+ </tbody>
136
+ </table>
137
+ </div>
138
+
139
+ <h3>출력</h3>
140
+ <div style="overflow-x:auto">
141
+ <table width="100%" style="min-width:500px">
142
+ <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th style="width:35%">설명</th></tr></thead>
143
+ <tbody>
144
+ <tr><td>쿼리: 개별 레코드. 수집: { successfulResults, failedResults, unprocessedRecords }</td><td>payload</td><td></td><td>예</td><td>Query: individual record. Ingest: { successfulResults, failedResults, unprocessedRecords }</td></tr>
134
145
  </tbody>
135
146
  </table>
136
147
  </div>
@@ -142,7 +153,7 @@
142
153
  <table width="100%" style="min-width:500px">
143
154
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th>기본값</th><th style="width:35%">설명</th></tr></thead>
144
155
  <tbody>
145
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
156
+ <tr><td>연결</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
146
157
  <tr><td>SObject 유형</td><td>sObjectType</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
147
158
  <tr><td></td><td>errorPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
148
159
  <tr><td></td><td>completePort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
@@ -156,7 +167,7 @@
156
167
  <table width="100%" style="min-width:500px">
157
168
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th style="width:35%">설명</th></tr></thead>
158
169
  <tbody>
159
- <tr><td>입력 페이로드</td><td>payload</td><td></td><td>예</td><td></td></tr>
170
+ <tr><td>SObject API 이름 (제공된 경우 구성을 재정의)</td><td>payload</td><td></td><td>예</td><td></td></tr>
160
171
  </tbody>
161
172
  </table>
162
173
  </div>
@@ -166,7 +177,7 @@
166
177
  <table width="100%" style="min-width:500px">
167
178
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th style="width:35%">설명</th></tr></thead>
168
179
  <tbody>
169
- <tr><td>SObject 설명 메타데이터</td><td>payload</td><td>object</td><td>예</td><td></td></tr>
180
+ <tr><td>필드, 하위 관계 및 레코드 유형 정보를 포함한 SObject 설명 결과</td><td>payload</td><td>object</td><td>예</td><td></td></tr>
170
181
  </tbody>
171
182
  </table>
172
183
  </div>
@@ -178,7 +189,7 @@
178
189
  <table width="100%" style="min-width:500px">
179
190
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th>기본값</th><th style="width:35%">설명</th></tr></thead>
180
191
  <tbody>
181
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
192
+ <tr><td>연결</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
182
193
  <tr><td>채널</td><td>channelName</td><td>string</td><td>예</td><td><code>""</code></td><td></td></tr>
183
194
  <tr><td>구독 시작점</td><td>subscribeType</td><td></td><td>예</td><td><code>"LATEST"</code></td><td></td></tr>
184
195
  <tr><td>리플레이 ID</td><td>replayId</td><td>string</td><td>아니오</td><td><code>""</code></td><td></td></tr>
@@ -203,16 +214,58 @@
203
214
  </table>
204
215
  </div>
205
216
  </script>
206
- <script type="text/html" data-help-name="salesforce-apex">
207
- <p>Salesforce Apex REST 엔드포인트를 호출합니다.</p>
217
+ <script type="text/html" data-help-name="salesforce-apex-invocation">
218
+ <p>Salesforce 조직의 기존 Apex REST 엔드포인트 또는 Invocable Action을 호출합니다.</p>
208
219
  <h3>속성</h3>
209
220
  <div style="overflow-x:auto">
210
221
  <table width="100%" style="min-width:500px">
211
222
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th>기본값</th><th style="width:35%">설명</th></tr></thead>
212
223
  <tbody>
213
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
224
+ <tr><td>연결</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
225
+ <tr><td>유형</td><td>apexType</td><td></td><td>예</td><td><code>"rest"</code></td><td></td></tr>
214
226
  <tr><td>메서드</td><td>method</td><td></td><td>예</td><td><code>"POST"</code></td><td></td></tr>
215
- <tr><td>경로</td><td>path</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
227
+ <tr><td>엔드포인트</td><td>path</td><td>TypedInput</td><td>예</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
228
+ <tr><td>액션</td><td>actionName</td><td>string</td><td>예</td><td><code>""</code></td><td></td></tr>
229
+ <tr><td></td><td>errorPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
230
+ <tr><td></td><td>completePort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
231
+ <tr><td></td><td>statusPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
232
+ </tbody>
233
+ </table>
234
+ </div>
235
+
236
+ <h3>입력</h3>
237
+ <div style="overflow-x:auto">
238
+ <table width="100%" style="min-width:500px">
239
+ <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th style="width:35%">설명</th></tr></thead>
240
+ <tbody>
241
+ <tr><td>POST/PUT/PATCH의 요청 본문, GET/DELETE에서는 무시됨</td><td>payload</td><td></td><td>예</td><td></td></tr>
242
+ </tbody>
243
+ </table>
244
+ </div>
245
+
246
+ <h3>출력</h3>
247
+ <div style="overflow-x:auto">
248
+ <table width="100%" style="min-width:500px">
249
+ <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th style="width:35%">설명</th></tr></thead>
250
+ <tbody>
251
+ <tr><td>Apex 엔드포인트 응답</td><td>payload</td><td></td><td>예</td><td></td></tr>
252
+ </tbody>
253
+ </table>
254
+ </div>
255
+ </script>
256
+ <script type="text/html" data-help-name="salesforce-apex-code">
257
+ <p>Salesforce 조직에 사용자 정의 Apex 코드를 배포하고 실행합니다. Invocable 및 REST 유형을 지원합니다.</p>
258
+ <h3>속성</h3>
259
+ <div style="overflow-x:auto">
260
+ <table width="100%" style="min-width:500px">
261
+ <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th>기본값</th><th style="width:35%">설명</th></tr></thead>
262
+ <tbody>
263
+ <tr><td>연결</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>예</td><td></td><td>Reference to salesforce-connection</td></tr>
264
+ <tr><td>유형</td><td>apexType</td><td></td><td>예</td><td><code>"invocable"</code></td><td></td></tr>
265
+ <tr><td>클래스 이름</td><td>className</td><td>string</td><td>예</td><td><code>""</code></td><td></td></tr>
266
+ <tr><td>URL 매핑</td><td>urlMapping</td><td>string</td><td>예</td><td><code>""</code></td><td></td></tr>
267
+ <tr><td>HTTP 메서드</td><td>httpMethod</td><td></td><td>예</td><td><code>"HttpPost"</code></td><td></td></tr>
268
+ <tr><td>Apex 코드</td><td>code</td><td>string</td><td>예</td><td><code>"private static Object run(String payload) {\n // Your code here\n return payload;\n }"</code></td><td></td></tr>
216
269
  <tr><td></td><td>errorPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
217
270
  <tr><td></td><td>completePort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
218
271
  <tr><td></td><td>statusPort</td><td>boolean</td><td>예</td><td><code>false</code></td><td></td></tr>
@@ -225,7 +278,7 @@
225
278
  <table width="100%" style="min-width:500px">
226
279
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th style="width:35%">설명</th></tr></thead>
227
280
  <tbody>
228
- <tr><td>요청 본문</td><td>payload</td><td></td><td>예</td><td></td></tr>
281
+ <tr><td>JSON 문자열로 Apex 메서드에 전달되는 입력 데이터</td><td>payload</td><td></td><td>예</td><td></td></tr>
229
282
  </tbody>
230
283
  </table>
231
284
  </div>
@@ -235,7 +288,7 @@
235
288
  <table width="100%" style="min-width:500px">
236
289
  <thead><tr><th>라벨</th><th>속성</th><th>유형</th><th>필수</th><th style="width:35%">설명</th></tr></thead>
237
290
  <tbody>
238
- <tr><td>Apex 응답</td><td>payload</td><td></td><td>예</td><td></td></tr>
291
+ <tr><td>Apex 실행 응답</td><td>payload</td><td></td><td>예</td><td></td></tr>
239
292
  </tbody>
240
293
  </table>
241
294
  </div>
@@ -1,10 +1,45 @@
1
1
  {
2
- "salesforce-apex": {
2
+ "salesforce-apex-code": {
3
3
  "configs": {
4
4
  "name": "이름",
5
- "connection": "Connection",
5
+ "connection": "연결",
6
+ "apexType": "유형",
7
+ "className": "클래스 이름",
8
+ "urlMapping": "URL 매핑",
9
+ "httpMethod": "HTTP 메서드",
10
+ "code": "Apex 코드"
11
+ },
12
+ "toggles": {
13
+ "validateInput": "입력 검증",
14
+ "validateOutput": "출력 검증",
15
+ "errorPort": "오류 포트",
16
+ "completePort": "완료 포트",
17
+ "statusPort": "상태 포트"
18
+ },
19
+ "$schema": "https://unpkg.com/@bonsae/nrg/schemas/labels.schema.json",
20
+ "label": "Apex Code",
21
+ "description": "Salesforce 조직에 사용자 정의 Apex 코드를 배포하고 실행합니다. Invocable 및 REST 유형을 지원합니다.",
22
+ "inputLabels": "입력",
23
+ "outputLabels": [
24
+ "응답"
25
+ ],
26
+ "input": {
27
+ "payload": "JSON 문자열로 Apex 메서드에 전달되는 입력 데이터"
28
+ },
29
+ "outputs": [
30
+ {
31
+ "payload": "Apex 실행 응답"
32
+ }
33
+ ]
34
+ },
35
+ "salesforce-apex-invocation": {
36
+ "configs": {
37
+ "name": "이름",
38
+ "connection": "연결",
39
+ "apexType": "유형",
6
40
  "method": "메서드",
7
- "path": "경로"
41
+ "path": "엔드포인트",
42
+ "actionName": "액션"
8
43
  },
9
44
  "toggles": {
10
45
  "validateInput": "입력 검증",
@@ -14,28 +49,34 @@
14
49
  "statusPort": "상태 포트"
15
50
  },
16
51
  "$schema": "https://unpkg.com/@bonsae/nrg/schemas/labels.schema.json",
17
- "label": "Apex",
18
- "description": "Salesforce Apex REST 엔드포인트를 호출합니다.",
52
+ "label": "Apex Invocation",
53
+ "description": "Salesforce 조직의 기존 Apex REST 엔드포인트 또는 Invocable Action을 호출합니다.",
19
54
  "inputLabels": "요청",
20
55
  "outputLabels": [
21
56
  "응답"
22
57
  ],
23
58
  "input": {
24
- "payload": "요청 본문"
59
+ "payload": "POST/PUT/PATCH의 요청 본문, GET/DELETE에서는 무시됨"
25
60
  },
26
61
  "outputs": [
27
62
  {
28
- "payload": "Apex 응답"
63
+ "payload": "Apex 엔드포인트 응답"
29
64
  }
30
65
  ]
31
66
  },
32
67
  "salesforce-bulk": {
33
68
  "configs": {
34
69
  "name": "이름",
35
- "connection": "Connection",
70
+ "connection": "연결",
36
71
  "operation": "작업",
37
72
  "sObjectType": "SObject 유형",
38
- "externalIdField": "외부 ID 필드"
73
+ "query": "SOQL 쿼리",
74
+ "externalIdField": "외부 ID 필드",
75
+ "assignmentRuleId": "할당 규칙 ID",
76
+ "columnDelimiter": "열 구분자",
77
+ "lineEnding": "줄 끝",
78
+ "pollInterval": "폴링 간격 (ms)",
79
+ "pollTimeout": "폴링 타임아웃 (ms)"
39
80
  },
40
81
  "toggles": {
41
82
  "validateInput": "입력 검증",
@@ -53,11 +94,11 @@
53
94
  "작업 완료"
54
95
  ],
55
96
  "input": {
56
- "payload": "레코드 배열 또는 SOQL 쿼리"
97
+ "payload": "레코드 배열, CSV 문자열, 읽기 스트림(수집) 또는 트리거(쿼리)"
57
98
  },
58
99
  "outputs": [
59
100
  {
60
- "payload": "대량 작업 결과"
101
+ "payload": "쿼리: 개별 레코드. 수집: { successfulResults, failedResults, unprocessedRecords }"
61
102
  }
62
103
  ]
63
104
  },
@@ -88,7 +129,7 @@
88
129
  "salesforce-describe": {
89
130
  "configs": {
90
131
  "name": "이름",
91
- "connection": "Connection",
132
+ "connection": "연결",
92
133
  "sObjectType": "SObject 유형"
93
134
  },
94
135
  "toggles": {
@@ -106,21 +147,22 @@
106
147
  "SObject 메타데이터"
107
148
  ],
108
149
  "input": {
109
- "payload": "입력 페이로드"
150
+ "payload": "SObject API 이름 (제공된 경우 구성을 재정의)"
110
151
  },
111
152
  "outputs": [
112
153
  {
113
- "payload": "SObject 설명 메타데이터"
154
+ "payload": "필드, 하위 관계 및 레코드 유형 정보를 포함한 SObject 설명 결과"
114
155
  }
115
156
  ]
116
157
  },
117
158
  "salesforce-dml": {
118
159
  "configs": {
119
160
  "name": "이름",
120
- "connection": "Connection",
161
+ "connection": "연결",
121
162
  "operation": "작업",
122
163
  "sObjectType": "SObject 유형",
123
- "externalIdField": "외부 ID 필드"
164
+ "externalIdField": "외부 ID 필드",
165
+ "record": "레코드"
124
166
  },
125
167
  "toggles": {
126
168
  "validateInput": "입력 검증",
@@ -148,7 +190,7 @@
148
190
  "salesforce-soql": {
149
191
  "configs": {
150
192
  "name": "이름",
151
- "connection": "Connection",
193
+ "connection": "연결",
152
194
  "query": "쿼리"
153
195
  },
154
196
  "toggles": {
@@ -179,7 +221,7 @@
179
221
  "salesforce-streaming": {
180
222
  "configs": {
181
223
  "name": "이름",
182
- "connection": "Connection",
224
+ "connection": "연결",
183
225
  "channelName": "채널",
184
226
  "subscribeType": "구독 시작점",
185
227
  "replayId": "리플레이 ID",
@@ -73,7 +73,7 @@
73
73
  <tr><td>Conexão</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Sim</td><td></td><td>Reference to salesforce-connection</td></tr>
74
74
  <tr><td>Operação</td><td>operation</td><td></td><td>Sim</td><td><code>"create"</code></td><td></td></tr>
75
75
  <tr><td>Tipo de SObject</td><td>sObjectType</td><td>TypedInput</td><td>Sim</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
76
- <tr><td></td><td>record</td><td>TypedInput</td><td>Sim</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
76
+ <tr><td>Registro</td><td>record</td><td>TypedInput</td><td>Sim</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
77
77
  <tr><td>Campo de ID Externo</td><td>externalIdField</td><td>string</td><td>Não</td><td><code>""</code></td><td></td></tr>
78
78
  <tr><td></td><td>errorPort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
79
79
  <tr><td></td><td>completePort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
@@ -112,14 +112,15 @@
112
112
  <tr><td>Conexão</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Sim</td><td></td><td>Reference to salesforce-connection</td></tr>
113
113
  <tr><td>Operação</td><td>operation</td><td></td><td>Sim</td><td><code>"insert"</code></td><td></td></tr>
114
114
  <tr><td>Tipo de SObject</td><td>sObjectType</td><td>TypedInput</td><td>Sim</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
115
+ <tr><td>Consulta SOQL</td><td>query</td><td>TypedInput</td><td>Sim</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
115
116
  <tr><td>Campo de ID Externo</td><td>externalIdField</td><td>string</td><td>Não</td><td><code>""</code></td><td></td></tr>
116
- <tr><td></td><td>assignmentRuleId</td><td>string</td><td>Não</td><td><code>""</code></td><td></td></tr>
117
- <tr><td></td><td>columnDelimiter</td><td></td><td>Sim</td><td><code>"COMMA"</code></td><td></td></tr>
118
- <tr><td></td><td>lineEnding</td><td></td><td>Sim</td><td><code>"LF"</code></td><td></td></tr>
119
- <tr><td></td><td>pollInterval</td><td>number [min: 1000]</td><td>Sim</td><td><code>5000</code></td><td></td></tr>
120
- <tr><td></td><td>pollTimeout</td><td>number [min: 5000]</td><td>Sim</td><td><code>60000</code></td><td></td></tr>
117
+ <tr><td>ID da Regra de Atribuição</td><td>assignmentRuleId</td><td>string</td><td>Não</td><td><code>""</code></td><td></td></tr>
118
+ <tr><td>Delimitador de Coluna</td><td>columnDelimiter</td><td></td><td>Sim</td><td><code>"COMMA"</code></td><td></td></tr>
119
+ <tr><td>Fim de Linha</td><td>lineEnding</td><td></td><td>Sim</td><td><code>"LF"</code></td><td></td></tr>
120
+ <tr><td>Intervalo de Polling (ms)</td><td>pollInterval</td><td>number [min: 1000]</td><td>Sim</td><td><code>5000</code></td><td></td></tr>
121
+ <tr><td>Timeout de Polling (ms)</td><td>pollTimeout</td><td>number [min: 5000]</td><td>Sim</td><td><code>60000</code></td><td></td></tr>
121
122
  <tr><td></td><td>errorPort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
122
- <tr><td></td><td>completePort</td><td>boolean</td><td>Sim</td><td><code>true</code></td><td></td></tr>
123
+ <tr><td></td><td>completePort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
123
124
  <tr><td></td><td>statusPort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
124
125
  </tbody>
125
126
  </table>
@@ -130,7 +131,17 @@
130
131
  <table width="100%" style="min-width:500px">
131
132
  <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th style="width:35%">Descrição</th></tr></thead>
132
133
  <tbody>
133
- <tr><td>Array de registros ou consulta SOQL</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
134
+ <tr><td>Array de registros, string CSV, stream legível (ingestão) ou gatilho (consulta)</td><td>payload</td><td></td><td>Sim</td><td>Records array, CSV string, readable stream (ingest) or SOQL string (query)</td></tr>
135
+ </tbody>
136
+ </table>
137
+ </div>
138
+
139
+ <h3>Saída</h3>
140
+ <div style="overflow-x:auto">
141
+ <table width="100%" style="min-width:500px">
142
+ <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th style="width:35%">Descrição</th></tr></thead>
143
+ <tbody>
144
+ <tr><td>Consulta: registro individual. Ingestão: { successfulResults, failedResults, unprocessedRecords }</td><td>payload</td><td></td><td>Sim</td><td>Query: individual record. Ingest: { successfulResults, failedResults, unprocessedRecords }</td></tr>
134
145
  </tbody>
135
146
  </table>
136
147
  </div>
@@ -156,7 +167,7 @@
156
167
  <table width="100%" style="min-width:500px">
157
168
  <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th style="width:35%">Descrição</th></tr></thead>
158
169
  <tbody>
159
- <tr><td>Payload de entrada</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
170
+ <tr><td>Nome da API do SObject (substitui a configuracao se fornecido)</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
160
171
  </tbody>
161
172
  </table>
162
173
  </div>
@@ -166,7 +177,7 @@
166
177
  <table width="100%" style="min-width:500px">
167
178
  <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th style="width:35%">Descrição</th></tr></thead>
168
179
  <tbody>
169
- <tr><td>Metadados do SObject</td><td>payload</td><td>object</td><td>Sim</td><td></td></tr>
180
+ <tr><td>Resultado da descricao do SObject com campos, relacionamentos filhos e informacoes de tipo de registro</td><td>payload</td><td>object</td><td>Sim</td><td></td></tr>
170
181
  </tbody>
171
182
  </table>
172
183
  </div>
@@ -203,16 +214,58 @@
203
214
  </table>
204
215
  </div>
205
216
  </script>
206
- <script type="text/html" data-help-name="salesforce-apex">
207
- <p>Invoca um endpoint Apex REST do Salesforce.</p>
217
+ <script type="text/html" data-help-name="salesforce-apex-invocation">
218
+ <p>Chama endpoints REST Apex existentes ou Invocable Actions em uma org Salesforce.</p>
208
219
  <h3>Propriedades</h3>
209
220
  <div style="overflow-x:auto">
210
221
  <table width="100%" style="min-width:500px">
211
222
  <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th>Padrão</th><th style="width:35%">Descrição</th></tr></thead>
212
223
  <tbody>
213
- <tr><td>Conexão</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Sim</td><td></td><td>Reference to salesforce-connection</td></tr>
214
- <tr><td>Método</td><td>method</td><td></td><td>Sim</td><td><code>"POST"</code></td><td></td></tr>
215
- <tr><td>Caminho</td><td>path</td><td>TypedInput</td><td>Sim</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
224
+ <tr><td>Conexao</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Sim</td><td></td><td>Reference to salesforce-connection</td></tr>
225
+ <tr><td>Tipo</td><td>apexType</td><td></td><td>Sim</td><td><code>"rest"</code></td><td></td></tr>
226
+ <tr><td>Metodo</td><td>method</td><td></td><td>Sim</td><td><code>"POST"</code></td><td></td></tr>
227
+ <tr><td>Endpoint</td><td>path</td><td>TypedInput</td><td>Sim</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
228
+ <tr><td>Acao</td><td>actionName</td><td>string</td><td>Sim</td><td><code>""</code></td><td></td></tr>
229
+ <tr><td></td><td>errorPort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
230
+ <tr><td></td><td>completePort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
231
+ <tr><td></td><td>statusPort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
232
+ </tbody>
233
+ </table>
234
+ </div>
235
+
236
+ <h3>Entrada</h3>
237
+ <div style="overflow-x:auto">
238
+ <table width="100%" style="min-width:500px">
239
+ <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th style="width:35%">Descrição</th></tr></thead>
240
+ <tbody>
241
+ <tr><td>Corpo da requisicao para POST/PUT/PATCH, ou ignorado para GET/DELETE</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
242
+ </tbody>
243
+ </table>
244
+ </div>
245
+
246
+ <h3>Saída</h3>
247
+ <div style="overflow-x:auto">
248
+ <table width="100%" style="min-width:500px">
249
+ <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th style="width:35%">Descrição</th></tr></thead>
250
+ <tbody>
251
+ <tr><td>Resposta do endpoint Apex</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
252
+ </tbody>
253
+ </table>
254
+ </div>
255
+ </script>
256
+ <script type="text/html" data-help-name="salesforce-apex-code">
257
+ <p>Implanta e executa codigo Apex personalizado em uma org Salesforce. Suporta tipos Invocable e REST.</p>
258
+ <h3>Propriedades</h3>
259
+ <div style="overflow-x:auto">
260
+ <table width="100%" style="min-width:500px">
261
+ <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th>Padrão</th><th style="width:35%">Descrição</th></tr></thead>
262
+ <tbody>
263
+ <tr><td>Conexao</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Sim</td><td></td><td>Reference to salesforce-connection</td></tr>
264
+ <tr><td>Tipo</td><td>apexType</td><td></td><td>Sim</td><td><code>"invocable"</code></td><td></td></tr>
265
+ <tr><td>Nome da Classe</td><td>className</td><td>string</td><td>Sim</td><td><code>""</code></td><td></td></tr>
266
+ <tr><td>Mapeamento de URL</td><td>urlMapping</td><td>string</td><td>Sim</td><td><code>""</code></td><td></td></tr>
267
+ <tr><td>Método HTTP</td><td>httpMethod</td><td></td><td>Sim</td><td><code>"HttpPost"</code></td><td></td></tr>
268
+ <tr><td>Codigo Apex</td><td>code</td><td>string</td><td>Sim</td><td><code>"private static Object run(String payload) {\n // Your code here\n return payload;\n }"</code></td><td></td></tr>
216
269
  <tr><td></td><td>errorPort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
217
270
  <tr><td></td><td>completePort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
218
271
  <tr><td></td><td>statusPort</td><td>boolean</td><td>Sim</td><td><code>false</code></td><td></td></tr>
@@ -225,7 +278,7 @@
225
278
  <table width="100%" style="min-width:500px">
226
279
  <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th style="width:35%">Descrição</th></tr></thead>
227
280
  <tbody>
228
- <tr><td>Corpo da requisição</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
281
+ <tr><td>Dados de entrada passados ao metodo Apex como string JSON</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
229
282
  </tbody>
230
283
  </table>
231
284
  </div>
@@ -235,7 +288,7 @@
235
288
  <table width="100%" style="min-width:500px">
236
289
  <thead><tr><th>Rótulo</th><th>Propriedade</th><th>Tipo</th><th>Obrigatório</th><th style="width:35%">Descrição</th></tr></thead>
237
290
  <tbody>
238
- <tr><td>Resposta do Apex</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
291
+ <tr><td>Resposta da execucao Apex</td><td>payload</td><td></td><td>Sim</td><td></td></tr>
239
292
  </tbody>
240
293
  </table>
241
294
  </div>