@bonsae/node-red-salesforce 0.4.1 → 0.5.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.
@@ -1,10 +1,13 @@
1
1
  {
2
- "salesforce-apex": {
2
+ "salesforce-apex-code": {
3
3
  "configs": {
4
4
  "name": "Nombre",
5
- "connection": "Connection",
6
- "method": "Método",
7
- "path": "Ruta"
5
+ "connection": "Conexion",
6
+ "apexType": "Tipo",
7
+ "className": "Nombre de Clase",
8
+ "urlMapping": "Mapeo de URL",
9
+ "httpMethod": "Método HTTP",
10
+ "code": "Codigo Apex"
8
11
  },
9
12
  "toggles": {
10
13
  "validateInput": "Validar entrada",
@@ -14,28 +17,66 @@
14
17
  "statusPort": "Puerto de estado"
15
18
  },
16
19
  "$schema": "https://unpkg.com/@bonsae/nrg/schemas/labels.schema.json",
17
- "label": "Apex",
18
- "description": "Invoca un endpoint REST de Apex en Salesforce.",
20
+ "label": "Apex Code",
21
+ "description": "Despliega y ejecuta codigo Apex personalizado en una org de Salesforce. Soporta tipos Invocable y REST.",
22
+ "inputLabels": "Entrada",
23
+ "outputLabels": [
24
+ "Respuesta"
25
+ ],
26
+ "input": {
27
+ "payload": "Datos de entrada pasados al metodo Apex como cadena JSON"
28
+ },
29
+ "outputs": [
30
+ {
31
+ "payload": "Respuesta de la ejecucion Apex"
32
+ }
33
+ ]
34
+ },
35
+ "salesforce-apex-invocation": {
36
+ "configs": {
37
+ "name": "Nombre",
38
+ "connection": "Conexion",
39
+ "apexType": "Tipo",
40
+ "method": "Metodo",
41
+ "path": "Endpoint",
42
+ "actionName": "Accion"
43
+ },
44
+ "toggles": {
45
+ "validateInput": "Validar entrada",
46
+ "validateOutput": "Validar salida",
47
+ "errorPort": "Puerto de error",
48
+ "completePort": "Puerto de completado",
49
+ "statusPort": "Puerto de estado"
50
+ },
51
+ "$schema": "https://unpkg.com/@bonsae/nrg/schemas/labels.schema.json",
52
+ "label": "Apex Invocation",
53
+ "description": "Llama a endpoints REST Apex existentes o Invocable Actions en una org de Salesforce.",
19
54
  "inputLabels": "Solicitud",
20
55
  "outputLabels": [
21
56
  "Respuesta"
22
57
  ],
23
58
  "input": {
24
- "payload": "Cuerpo de la solicitud"
59
+ "payload": "Cuerpo de la solicitud para POST/PUT/PATCH, o ignorado para GET/DELETE"
25
60
  },
26
61
  "outputs": [
27
62
  {
28
- "payload": "Respuesta de Apex"
63
+ "payload": "Respuesta del endpoint Apex"
29
64
  }
30
65
  ]
31
66
  },
32
67
  "salesforce-bulk": {
33
68
  "configs": {
34
69
  "name": "Nombre",
35
- "connection": "Connection",
70
+ "connection": "Conexión",
36
71
  "operation": "Operación",
37
72
  "sObjectType": "Tipo de SObject",
38
- "externalIdField": "Campo de ID externo"
73
+ "query": "Consulta SOQL",
74
+ "externalIdField": "Campo de ID externo",
75
+ "assignmentRuleId": "ID de regla de asignación",
76
+ "columnDelimiter": "Delimitador de columna",
77
+ "lineEnding": "Fin de línea",
78
+ "pollInterval": "Intervalo de sondeo (ms)",
79
+ "pollTimeout": "Tiempo de espera de sondeo (ms)"
39
80
  },
40
81
  "toggles": {
41
82
  "validateInput": "Validar entrada",
@@ -53,11 +94,11 @@
53
94
  "Job Completado"
54
95
  ],
55
96
  "input": {
56
- "payload": "Arreglo de registros o consulta SOQL"
97
+ "payload": "Array de registros, cadena CSV, stream legible (ingesta) o disparador (consulta)"
57
98
  },
58
99
  "outputs": [
59
100
  {
60
- "payload": "Resultados de la operación masiva"
101
+ "payload": "Consulta: registro individual. Ingesta: { successfulResults, failedResults, unprocessedRecords }"
61
102
  }
62
103
  ]
63
104
  },
@@ -88,7 +129,7 @@
88
129
  "salesforce-describe": {
89
130
  "configs": {
90
131
  "name": "Nombre",
91
- "connection": "Connection",
132
+ "connection": "Conexion",
92
133
  "sObjectType": "Tipo de SObject"
93
134
  },
94
135
  "toggles": {
@@ -106,21 +147,22 @@
106
147
  "Metadatos del SObject"
107
148
  ],
108
149
  "input": {
109
- "payload": "Carga útil de entrada"
150
+ "payload": "Nombre de API del SObject (sustituye la configuracion si se proporciona)"
110
151
  },
111
152
  "outputs": [
112
153
  {
113
- "payload": "Metadatos de descripción del SObject"
154
+ "payload": "Resultado de descripcion del SObject con campos, relaciones secundarias e informacion de tipo de registro"
114
155
  }
115
156
  ]
116
157
  },
117
158
  "salesforce-dml": {
118
159
  "configs": {
119
160
  "name": "Nombre",
120
- "connection": "Connection",
161
+ "connection": "Conexión",
121
162
  "operation": "Operación",
122
163
  "sObjectType": "Tipo de SObject",
123
- "externalIdField": "Campo de ID externo"
164
+ "externalIdField": "Campo de ID externo",
165
+ "record": "Registro"
124
166
  },
125
167
  "toggles": {
126
168
  "validateInput": "Validar entrada",
@@ -148,7 +190,7 @@
148
190
  "salesforce-soql": {
149
191
  "configs": {
150
192
  "name": "Nombre",
151
- "connection": "Connection",
193
+ "connection": "Conexión",
152
194
  "query": "Consulta"
153
195
  },
154
196
  "toggles": {
@@ -179,7 +221,7 @@
179
221
  "salesforce-streaming": {
180
222
  "configs": {
181
223
  "name": "Nombre",
182
- "connection": "Connection",
224
+ "connection": "Conexión",
183
225
  "channelName": "Canal",
184
226
  "subscribeType": "Suscribirse desde",
185
227
  "replayId": "ID de reproducción",
@@ -32,7 +32,7 @@
32
32
  <table width="100%" style="min-width:500px">
33
33
  <thead><tr><th>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th>Par défaut</th><th style="width:35%">Description</th></tr></thead>
34
34
  <tbody>
35
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
35
+ <tr><td>Connexion</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
36
36
  <tr><td>Requête</td><td>query</td><td>TypedInput</td><td>Oui</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>Oui</td><td><code>false</code></td><td></td></tr>
38
38
  <tr><td></td><td>completePort</td><td>boolean</td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th>Par défaut</th><th style="width:35%">Description</th></tr></thead>
72
72
  <tbody>
73
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
73
+ <tr><td>Connexion</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
74
74
  <tr><td>Opération</td><td>operation</td><td></td><td>Oui</td><td><code>"create"</code></td><td></td></tr>
75
75
  <tr><td>Type de SObject</td><td>sObjectType</td><td>TypedInput</td><td>Oui</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>Oui</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
76
+ <tr><td>Enregistrement</td><td>record</td><td>TypedInput</td><td>Oui</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
77
77
  <tr><td>Champ d'ID externe</td><td>externalIdField</td><td>string</td><td>Non</td><td><code>""</code></td><td></td></tr>
78
78
  <tr><td></td><td>errorPort</td><td>boolean</td><td>Oui</td><td><code>false</code></td><td></td></tr>
79
79
  <tr><td></td><td>completePort</td><td>boolean</td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th>Par défaut</th><th style="width:35%">Description</th></tr></thead>
111
111
  <tbody>
112
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
112
+ <tr><td>Connexion</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
113
113
  <tr><td>Opération</td><td>operation</td><td></td><td>Oui</td><td><code>"insert"</code></td><td></td></tr>
114
114
  <tr><td>Type de SObject</td><td>sObjectType</td><td>TypedInput</td><td>Oui</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
115
+ <tr><td>Requête SOQL</td><td>query</td><td>TypedInput</td><td>Oui</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
115
116
  <tr><td>Champ d'ID externe</td><td>externalIdField</td><td>string</td><td>Non</td><td><code>""</code></td><td></td></tr>
116
- <tr><td></td><td>assignmentRuleId</td><td>string</td><td>Non</td><td><code>""</code></td><td></td></tr>
117
- <tr><td></td><td>columnDelimiter</td><td></td><td>Oui</td><td><code>"COMMA"</code></td><td></td></tr>
118
- <tr><td></td><td>lineEnding</td><td></td><td>Oui</td><td><code>"LF"</code></td><td></td></tr>
119
- <tr><td></td><td>pollInterval</td><td>number [min: 1000]</td><td>Oui</td><td><code>5000</code></td><td></td></tr>
120
- <tr><td></td><td>pollTimeout</td><td>number [min: 5000]</td><td>Oui</td><td><code>60000</code></td><td></td></tr>
117
+ <tr><td>ID de règle d'attribution</td><td>assignmentRuleId</td><td>string</td><td>Non</td><td><code>""</code></td><td></td></tr>
118
+ <tr><td>Délimiteur de colonne</td><td>columnDelimiter</td><td></td><td>Oui</td><td><code>"COMMA"</code></td><td></td></tr>
119
+ <tr><td>Fin de ligne</td><td>lineEnding</td><td></td><td>Oui</td><td><code>"LF"</code></td><td></td></tr>
120
+ <tr><td>Intervalle d'interrogation (ms)</td><td>pollInterval</td><td>number [min: 1000]</td><td>Oui</td><td><code>5000</code></td><td></td></tr>
121
+ <tr><td>Délai d'interrogation (ms)</td><td>pollTimeout</td><td>number [min: 5000]</td><td>Oui</td><td><code>60000</code></td><td></td></tr>
121
122
  <tr><td></td><td>errorPort</td><td>boolean</td><td>Oui</td><td><code>false</code></td><td></td></tr>
122
- <tr><td></td><td>completePort</td><td>boolean</td><td>Oui</td><td><code>true</code></td><td></td></tr>
123
+ <tr><td></td><td>completePort</td><td>boolean</td><td>Oui</td><td><code>false</code></td><td></td></tr>
123
124
  <tr><td></td><td>statusPort</td><td>boolean</td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th style="width:35%">Description</th></tr></thead>
132
133
  <tbody>
133
- <tr><td>Tableau d'enregistrements ou requête SOQL</td><td>payload</td><td></td><td>Oui</td><td></td></tr>
134
+ <tr><td>Tableau d'enregistrements, chaîne CSV, flux lisible (ingestion) ou déclencheur (requête)</td><td>payload</td><td></td><td>Oui</td><td>Records array, CSV string, readable stream (ingest) or SOQL string (query)</td></tr>
135
+ </tbody>
136
+ </table>
137
+ </div>
138
+
139
+ <h3>Sortie</h3>
140
+ <div style="overflow-x:auto">
141
+ <table width="100%" style="min-width:500px">
142
+ <thead><tr><th>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th style="width:35%">Description</th></tr></thead>
143
+ <tbody>
144
+ <tr><td>Requête : enregistrement individuel. Ingestion : { successfulResults, failedResults, unprocessedRecords }</td><td>payload</td><td></td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th>Par défaut</th><th style="width:35%">Description</th></tr></thead>
144
155
  <tbody>
145
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
156
+ <tr><td>Connexion</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
146
157
  <tr><td>Type de SObject</td><td>sObjectType</td><td>TypedInput</td><td>Oui</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>Oui</td><td><code>false</code></td><td></td></tr>
148
159
  <tr><td></td><td>completePort</td><td>boolean</td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th style="width:35%">Description</th></tr></thead>
158
169
  <tbody>
159
- <tr><td>Charge utile d'entrée</td><td>payload</td><td></td><td>Oui</td><td></td></tr>
170
+ <tr><td>Nom API du SObject (remplace la configuration si fourni)</td><td>payload</td><td></td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th style="width:35%">Description</th></tr></thead>
168
179
  <tbody>
169
- <tr><td>Métadonnées de description du SObject</td><td>payload</td><td>object</td><td>Oui</td><td></td></tr>
180
+ <tr><td>Resultat de description du SObject avec champs, relations enfants et informations de type d'enregistrement</td><td>payload</td><td>object</td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th>Par défaut</th><th style="width:35%">Description</th></tr></thead>
180
191
  <tbody>
181
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
192
+ <tr><td>Connexion</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
182
193
  <tr><td>Canal</td><td>channelName</td><td>string</td><td>Oui</td><td><code>""</code></td><td></td></tr>
183
194
  <tr><td>S'abonner depuis</td><td>subscribeType</td><td></td><td>Oui</td><td><code>"LATEST"</code></td><td></td></tr>
184
195
  <tr><td>ID de relecture</td><td>replayId</td><td>string</td><td>Non</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>Invoque un point de terminaison REST Apex de Salesforce.</p>
217
+ <script type="text/html" data-help-name="salesforce-apex-invocation">
218
+ <p>Appelle des endpoints REST Apex existants ou des Invocable Actions sur une org Salesforce.</p>
219
+ <h3>Propriétés</h3>
220
+ <div style="overflow-x:auto">
221
+ <table width="100%" style="min-width:500px">
222
+ <thead><tr><th>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th>Par défaut</th><th style="width:35%">Description</th></tr></thead>
223
+ <tbody>
224
+ <tr><td>Connexion</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
225
+ <tr><td>Type</td><td>apexType</td><td></td><td>Oui</td><td><code>"rest"</code></td><td></td></tr>
226
+ <tr><td>Methode</td><td>method</td><td></td><td>Oui</td><td><code>"POST"</code></td><td></td></tr>
227
+ <tr><td>Endpoint</td><td>path</td><td>TypedInput</td><td>Oui</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
228
+ <tr><td>Action</td><td>actionName</td><td>string</td><td>Oui</td><td><code>""</code></td><td></td></tr>
229
+ <tr><td></td><td>errorPort</td><td>boolean</td><td>Oui</td><td><code>false</code></td><td></td></tr>
230
+ <tr><td></td><td>completePort</td><td>boolean</td><td>Oui</td><td><code>false</code></td><td></td></tr>
231
+ <tr><td></td><td>statusPort</td><td>boolean</td><td>Oui</td><td><code>false</code></td><td></td></tr>
232
+ </tbody>
233
+ </table>
234
+ </div>
235
+
236
+ <h3>Entrée</h3>
237
+ <div style="overflow-x:auto">
238
+ <table width="100%" style="min-width:500px">
239
+ <thead><tr><th>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th style="width:35%">Description</th></tr></thead>
240
+ <tbody>
241
+ <tr><td>Corps de la requete pour POST/PUT/PATCH, ou ignore pour GET/DELETE</td><td>payload</td><td></td><td>Oui</td><td></td></tr>
242
+ </tbody>
243
+ </table>
244
+ </div>
245
+
246
+ <h3>Sortie</h3>
247
+ <div style="overflow-x:auto">
248
+ <table width="100%" style="min-width:500px">
249
+ <thead><tr><th>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th style="width:35%">Description</th></tr></thead>
250
+ <tbody>
251
+ <tr><td>Reponse de l'endpoint Apex</td><td>payload</td><td></td><td>Oui</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>Deploie et execute du code Apex personnalise sur une org Salesforce. Prend en charge les types Invocable et REST.</p>
208
258
  <h3>Propriétés</h3>
209
259
  <div style="overflow-x:auto">
210
260
  <table width="100%" style="min-width:500px">
211
261
  <thead><tr><th>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th>Par défaut</th><th style="width:35%">Description</th></tr></thead>
212
262
  <tbody>
213
- <tr><td>Connection</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
214
- <tr><td>Méthode</td><td>method</td><td></td><td>Oui</td><td><code>"POST"</code></td><td></td></tr>
215
- <tr><td>Chemin</td><td>path</td><td>TypedInput</td><td>Oui</td><td><code>{"type":"str","value":""}</code></td><td>Represents a Node-RED TypedInput value and its type.</td></tr>
263
+ <tr><td>Connexion</td><td>connection</td><td>NodeRef → salesforce-connection [format: node-id]</td><td>Oui</td><td></td><td>Reference to salesforce-connection</td></tr>
264
+ <tr><td>Type</td><td>apexType</td><td></td><td>Oui</td><td><code>"invocable"</code></td><td></td></tr>
265
+ <tr><td>Nom de Classe</td><td>className</td><td>string</td><td>Oui</td><td><code>""</code></td><td></td></tr>
266
+ <tr><td>Mappage d'URL</td><td>urlMapping</td><td>string</td><td>Oui</td><td><code>""</code></td><td></td></tr>
267
+ <tr><td>Méthode HTTP</td><td>httpMethod</td><td></td><td>Oui</td><td><code>"HttpPost"</code></td><td></td></tr>
268
+ <tr><td>Code Apex</td><td>code</td><td>string</td><td>Oui</td><td><code>""</code></td><td></td></tr>
216
269
  <tr><td></td><td>errorPort</td><td>boolean</td><td>Oui</td><td><code>false</code></td><td></td></tr>
217
270
  <tr><td></td><td>completePort</td><td>boolean</td><td>Oui</td><td><code>false</code></td><td></td></tr>
218
271
  <tr><td></td><td>statusPort</td><td>boolean</td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th style="width:35%">Description</th></tr></thead>
227
280
  <tbody>
228
- <tr><td>Corps de la requête</td><td>payload</td><td></td><td>Oui</td><td></td></tr>
281
+ <tr><td>Donnees d'entree transmises a la methode Apex sous forme de chaine JSON</td><td>payload</td><td></td><td>Oui</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>Libellé</th><th>Propriété</th><th>Type</th><th>Requis</th><th style="width:35%">Description</th></tr></thead>
237
290
  <tbody>
238
- <tr><td>Réponse Apex</td><td>payload</td><td></td><td>Oui</td><td></td></tr>
291
+ <tr><td>Reponse de l'execution Apex</td><td>payload</td><td></td><td>Oui</td><td></td></tr>
239
292
  </tbody>
240
293
  </table>
241
294
  </div>
@@ -1,10 +1,13 @@
1
1
  {
2
- "salesforce-apex": {
2
+ "salesforce-apex-code": {
3
3
  "configs": {
4
4
  "name": "Nom",
5
- "connection": "Connection",
6
- "method": "Méthode",
7
- "path": "Chemin"
5
+ "connection": "Connexion",
6
+ "apexType": "Type",
7
+ "className": "Nom de Classe",
8
+ "urlMapping": "Mappage d'URL",
9
+ "httpMethod": "Méthode HTTP",
10
+ "code": "Code Apex"
8
11
  },
9
12
  "toggles": {
10
13
  "validateInput": "Valider l'entrée",
@@ -14,28 +17,66 @@
14
17
  "statusPort": "Port de statut"
15
18
  },
16
19
  "$schema": "https://unpkg.com/@bonsae/nrg/schemas/labels.schema.json",
17
- "label": "Apex",
18
- "description": "Invoque un point de terminaison REST Apex de Salesforce.",
19
- "inputLabels": "Requête",
20
+ "label": "Apex Code",
21
+ "description": "Deploie et execute du code Apex personnalise sur une org Salesforce. Prend en charge les types Invocable et REST.",
22
+ "inputLabels": "Entree",
20
23
  "outputLabels": [
21
- "Réponse"
24
+ "Reponse"
22
25
  ],
23
26
  "input": {
24
- "payload": "Corps de la requête"
27
+ "payload": "Donnees d'entree transmises a la methode Apex sous forme de chaine JSON"
25
28
  },
26
29
  "outputs": [
27
30
  {
28
- "payload": "Réponse Apex"
31
+ "payload": "Reponse de l'execution Apex"
32
+ }
33
+ ]
34
+ },
35
+ "salesforce-apex-invocation": {
36
+ "configs": {
37
+ "name": "Nom",
38
+ "connection": "Connexion",
39
+ "apexType": "Type",
40
+ "method": "Methode",
41
+ "path": "Endpoint",
42
+ "actionName": "Action"
43
+ },
44
+ "toggles": {
45
+ "validateInput": "Valider l'entrée",
46
+ "validateOutput": "Valider la sortie",
47
+ "errorPort": "Port d'erreur",
48
+ "completePort": "Port de complétion",
49
+ "statusPort": "Port de statut"
50
+ },
51
+ "$schema": "https://unpkg.com/@bonsae/nrg/schemas/labels.schema.json",
52
+ "label": "Apex Invocation",
53
+ "description": "Appelle des endpoints REST Apex existants ou des Invocable Actions sur une org Salesforce.",
54
+ "inputLabels": "Requete",
55
+ "outputLabels": [
56
+ "Reponse"
57
+ ],
58
+ "input": {
59
+ "payload": "Corps de la requete pour POST/PUT/PATCH, ou ignore pour GET/DELETE"
60
+ },
61
+ "outputs": [
62
+ {
63
+ "payload": "Reponse de l'endpoint Apex"
29
64
  }
30
65
  ]
31
66
  },
32
67
  "salesforce-bulk": {
33
68
  "configs": {
34
69
  "name": "Nom",
35
- "connection": "Connection",
70
+ "connection": "Connexion",
36
71
  "operation": "Opération",
37
72
  "sObjectType": "Type de SObject",
38
- "externalIdField": "Champ d'ID externe"
73
+ "query": "Requête SOQL",
74
+ "externalIdField": "Champ d'ID externe",
75
+ "assignmentRuleId": "ID de règle d'attribution",
76
+ "columnDelimiter": "Délimiteur de colonne",
77
+ "lineEnding": "Fin de ligne",
78
+ "pollInterval": "Intervalle d'interrogation (ms)",
79
+ "pollTimeout": "Délai d'interrogation (ms)"
39
80
  },
40
81
  "toggles": {
41
82
  "validateInput": "Valider l'entrée",
@@ -53,11 +94,11 @@
53
94
  "Job Terminé"
54
95
  ],
55
96
  "input": {
56
- "payload": "Tableau d'enregistrements ou requête SOQL"
97
+ "payload": "Tableau d'enregistrements, chaîne CSV, flux lisible (ingestion) ou déclencheur (requête)"
57
98
  },
58
99
  "outputs": [
59
100
  {
60
- "payload": "Résultats de l'opération en masse"
101
+ "payload": "Requête : enregistrement individuel. Ingestion : { successfulResults, failedResults, unprocessedRecords }"
61
102
  }
62
103
  ]
63
104
  },
@@ -88,7 +129,7 @@
88
129
  "salesforce-describe": {
89
130
  "configs": {
90
131
  "name": "Nom",
91
- "connection": "Connection",
132
+ "connection": "Connexion",
92
133
  "sObjectType": "Type de SObject"
93
134
  },
94
135
  "toggles": {
@@ -106,21 +147,22 @@
106
147
  "Métadonnées du SObject"
107
148
  ],
108
149
  "input": {
109
- "payload": "Charge utile d'entrée"
150
+ "payload": "Nom API du SObject (remplace la configuration si fourni)"
110
151
  },
111
152
  "outputs": [
112
153
  {
113
- "payload": "Métadonnées de description du SObject"
154
+ "payload": "Resultat de description du SObject avec champs, relations enfants et informations de type d'enregistrement"
114
155
  }
115
156
  ]
116
157
  },
117
158
  "salesforce-dml": {
118
159
  "configs": {
119
160
  "name": "Nom",
120
- "connection": "Connection",
161
+ "connection": "Connexion",
121
162
  "operation": "Opération",
122
163
  "sObjectType": "Type de SObject",
123
- "externalIdField": "Champ d'ID externe"
164
+ "externalIdField": "Champ d'ID externe",
165
+ "record": "Enregistrement"
124
166
  },
125
167
  "toggles": {
126
168
  "validateInput": "Valider l'entrée",
@@ -148,7 +190,7 @@
148
190
  "salesforce-soql": {
149
191
  "configs": {
150
192
  "name": "Nom",
151
- "connection": "Connection",
193
+ "connection": "Connexion",
152
194
  "query": "Requête"
153
195
  },
154
196
  "toggles": {
@@ -179,7 +221,7 @@
179
221
  "salesforce-streaming": {
180
222
  "configs": {
181
223
  "name": "Nom",
182
- "connection": "Connection",
224
+ "connection": "Connexion",
183
225
  "channelName": "Canal",
184
226
  "subscribeType": "S'abonner depuis",
185
227
  "replayId": "ID de relecture",