This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new 678337b790 fixes Salesforce get fields and MDI issues #6054 #6121
(#6124)
678337b790 is described below
commit 678337b790a50cf931146e88398fc2127b8ffd47
Author: Bart Maertens <[email protected]>
AuthorDate: Fri Dec 5 13:56:36 2025 +0100
fixes Salesforce get fields and MDI issues #6054 #6121 (#6124)
* get fields, edit mapping and other connection dialog fixes. #6121
* MDI and i18n fixes. #6054
---
.../salesforce/SalesforceTransformMeta.java | 4 +-
.../salesforcedelete/SalesforceDeleteDialog.java | 35 +++++++---
.../salesforceinput/SalesforceInputDialog.java | 65 ++++++++++++++----
.../salesforceinput/SalesforceInputField.java | 19 ++++--
.../salesforceinsert/SalesforceInsertDialog.java | 40 ++++++++---
.../salesforceupdate/SalesforceUpdateDialog.java | 78 +++++++++++++++------
.../salesforceupsert/SalesforceUpsertDialog.java | 79 +++++++++++++++++-----
.../messages/messages_en_US.properties | 2 +
8 files changed, 250 insertions(+), 72 deletions(-)
diff --git
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransformMeta.java
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransformMeta.java
index 4b9cf6b9d4..94d101476d 100644
---
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransformMeta.java
+++
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransformMeta.java
@@ -58,7 +58,7 @@ public abstract class SalesforceTransformMeta<
@HopMetadataProperty(
key = "password",
injectionKey = "SALESFORCE_PASSWOR",
- injectionKeyDescription =
"SalesforceInputMeta.Injection.SALESFORCE_PASSWOR",
+ injectionKeyDescription =
"SalesforceInputMeta.Injection.SALESFORCE_PASSWORD",
password = true)
private String password;
@@ -87,7 +87,7 @@ public abstract class SalesforceTransformMeta<
@HopMetadataProperty(
key = "salesforce_connection",
injectionKey = "SALESFORCE_CONNECTION",
- injectionKeyDescription = "SalesforceInputMeta.SALESFORCE_CONNECTION")
+ injectionKeyDescription =
"SalesforceInputMeta.Injection.SALESFORCE_CONNECTION")
private String salesforceConnection;
@Override
diff --git
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforcedelete/SalesforceDeleteDialog.java
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforcedelete/SalesforceDeleteDialog.java
index 7ec6db4943..bfc0c865cd 100644
---
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforcedelete/SalesforceDeleteDialog.java
+++
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforcedelete/SalesforceDeleteDialog.java
@@ -581,19 +581,38 @@ public class SalesforceDeleteDialog extends
SalesforceTransformDialog {
try {
SalesforceDeleteMeta meta = new SalesforceDeleteMeta();
getInfo(meta);
- String url = variables.resolve(meta.getTargetUrl());
String selectedField = wModule.getText();
wModule.removeAll();
- // Define a new Salesforce connection
- connection =
- new SalesforceConnection(
- log,
- url,
- variables.resolve(meta.getUsername()),
- Utils.resolvePassword(variables, meta.getPassword()));
int realTimeOut = Const.toInt(variables.resolve(meta.getTimeout()), 0);
+
+ // Check if a Salesforce Connection metadata is selected
+ String connectionName =
variables.resolve(meta.getSalesforceConnection());
+ if (!Utils.isEmpty(connectionName)) {
+ // Use Salesforce Connection metadata
+ org.apache.hop.metadata.salesforce.SalesforceConnection
connectionMeta =
+ metadataProvider
+
.getSerializer(org.apache.hop.metadata.salesforce.SalesforceConnection.class)
+ .load(connectionName);
+
+ if (connectionMeta == null) {
+ throw new HopException(
+ "Salesforce Connection '" + connectionName + "' not found in
metadata");
+ }
+
+ // Create connection using metadata
+ connection = connectionMeta.createConnection(variables, log);
+ } else {
+ // Use inline username/password configuration (backward
compatibility)
+ String url = variables.resolve(meta.getTargetUrl());
+ connection =
+ new SalesforceConnection(
+ log,
+ url,
+ variables.resolve(meta.getUsername()),
+ Utils.resolvePassword(variables, meta.getPassword()));
+ }
connection.setTimeOut(realTimeOut);
// connect to Salesforce
connection.connect();
diff --git
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinput/SalesforceInputDialog.java
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinput/SalesforceInputDialog.java
index 66d71c0bcb..bbc175025f 100644
---
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinput/SalesforceInputDialog.java
+++
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinput/SalesforceInputDialog.java
@@ -1471,14 +1471,33 @@ public class SalesforceInputDialog extends
SalesforceTransformDialog {
// get real values
String realModule = variables.resolve(meta.getModule());
- String realURL = variables.resolve(meta.getTargetUrl());
int realTimeOut = Const.toInt(variables.resolve(meta.getTimeout()), 0);
- // Username/Password connection
- String realUsername = variables.resolve(meta.getUsername());
- String realPassword = Utils.resolvePassword(variables,
meta.getPassword());
+ // Check if a Salesforce Connection metadata is selected
+ String connectionName =
variables.resolve(meta.getSalesforceConnection());
+ if (!Utils.isEmpty(connectionName)) {
+ // Use Salesforce Connection metadata
+ org.apache.hop.metadata.salesforce.SalesforceConnection connectionMeta
=
+ metadataProvider
+
.getSerializer(org.apache.hop.metadata.salesforce.SalesforceConnection.class)
+ .load(connectionName);
+
+ if (connectionMeta == null) {
+ throw new HopException(
+ "Salesforce Connection '" + connectionName + "' not found in
metadata");
+ }
+
+ // Create connection using metadata
+ connection = connectionMeta.createConnection(variables, log);
+ } else {
+ // Use inline username/password configuration (backward compatibility)
+ String realURL = variables.resolve(meta.getTargetUrl());
+ String realUsername = variables.resolve(meta.getUsername());
+ String realPassword = Utils.resolvePassword(variables,
meta.getPassword());
+
+ connection = new SalesforceConnection(log, realURL, realUsername,
realPassword);
+ }
- connection = new SalesforceConnection(log, realURL, realUsername,
realPassword);
connection.setTimeOut(realTimeOut);
String[] fieldsName = null;
if (meta.isSpecifyQuery()) {
@@ -1996,15 +2015,33 @@ public class SalesforceInputDialog extends
SalesforceTransformDialog {
try {
SalesforceInputMeta meta = new SalesforceInputMeta();
getInfo(meta);
- String url = variables.resolve(meta.getTargetUrl());
-
- // Define a new Salesforce connection
- connection =
- new SalesforceConnection(
- log,
- url,
- variables.resolve(meta.getUsername()),
- Utils.resolvePassword(variables, meta.getPassword()));
+
+ // Check if a Salesforce Connection metadata is selected
+ String connectionName =
variables.resolve(meta.getSalesforceConnection());
+ if (!Utils.isEmpty(connectionName)) {
+ // Use Salesforce Connection metadata
+ org.apache.hop.metadata.salesforce.SalesforceConnection
connectionMeta =
+ metadataProvider
+
.getSerializer(org.apache.hop.metadata.salesforce.SalesforceConnection.class)
+ .load(connectionName);
+
+ if (connectionMeta == null) {
+ throw new HopException(
+ "Salesforce Connection '" + connectionName + "' not found in
metadata");
+ }
+
+ // Create connection using metadata
+ connection = connectionMeta.createConnection(variables, log);
+ } else {
+ // Use inline username/password configuration (backward
compatibility)
+ String url = variables.resolve(meta.getTargetUrl());
+ connection =
+ new SalesforceConnection(
+ log,
+ url,
+ variables.resolve(meta.getUsername()),
+ Utils.resolvePassword(variables, meta.getPassword()));
+ }
// connect to Salesforce
connection.connect();
diff --git
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinput/SalesforceInputField.java
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinput/SalesforceInputField.java
index 1680065ec7..7f360517b7 100644
---
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinput/SalesforceInputField.java
+++
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinput/SalesforceInputField.java
@@ -19,7 +19,6 @@ package org.apache.hop.pipeline.transforms.salesforceinput;
import lombok.Getter;
import lombok.Setter;
-import org.apache.hop.core.injection.Injection;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.i18n.BaseMessages;
@@ -62,7 +61,7 @@ public class SalesforceInputField implements Cloneable {
@HopMetadataProperty(
key = "type",
injectionKey = "TYPE",
- injectionKeyDescription = "SalesforceInputMeta.Injection.FIELD")
+ injectionKeyDescription = "SalesforceInputMeta.Injection.TYPE")
private String type;
private int typeCode;
@@ -118,7 +117,7 @@ public class SalesforceInputField implements Cloneable {
@HopMetadataProperty(
key = "idlookup",
injectionKey = "ISIDLOOKUP",
- injectionKeyDescription = "SalesforceInputMeta.Injection.ISLOOKUP")
+ injectionKeyDescription = "SalesforceInputMeta.Injection.ISIDLOOKUP")
private boolean idLookup;
@HopMetadataProperty(key = "samples")
@@ -200,11 +199,21 @@ public class SalesforceInputField implements Cloneable {
this.typeCode = typeCode;
}
- @Injection(name = "TYPE", group = "FIELDS")
+ // @Injection(name = "TYPE", group = "FIELDS")
public void setTypeCode(String typeDesc) {
this.typeCode = ValueMetaFactory.getIdForValueMeta(typeDesc);
}
+ // Override Lombok-generated setType to also update typeCode when type is
set via metadata
+ // injection
+ public void setType(String type) {
+ this.type = type;
+ // Also update typeCode when type is set via metadata injection
+ if (type != null && !type.isEmpty()) {
+ this.typeCode = ValueMetaFactory.getIdForValueMeta(type);
+ }
+ }
+
public void setSamples(String[] samples) {
this.samples = samples;
}
@@ -221,7 +230,7 @@ public class SalesforceInputField implements Cloneable {
return getTrimTypeDesc(trimType);
}
- @Injection(name = "TRIM_TYPE", group = "FIELDS")
+ // @Injection(name = "TRIM_TYPE", group = "FIELDS")
public void setTrimTypeDesc(String trimTypeDesc) {
this.trimType = SalesforceInputField.getTrimTypeByDesc(trimTypeDesc);
}
diff --git
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinsert/SalesforceInsertDialog.java
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinsert/SalesforceInsertDialog.java
index fae5f71be4..5c267e1346 100644
---
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinsert/SalesforceInsertDialog.java
+++
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinsert/SalesforceInsertDialog.java
@@ -803,6 +803,10 @@ public class SalesforceInsertDialog extends
SalesforceTransformDialog {
// check if module, username is given
private boolean checkUser() {
+ // If a metadata connection is selected, username is not required
+ if (!Utils.isEmpty(wSalesforceConnection.getText())) {
+ return true;
+ }
if (Utils.isEmpty(wUserName.getText())) {
MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR);
@@ -817,15 +821,35 @@ public class SalesforceInsertDialog extends
SalesforceTransformDialog {
}
private SalesforceConnection getConnection() throws HopException {
- String url = variables.resolve(wURL.getText());
- // Define a new Salesforce connection
- SalesforceConnection connection =
- new SalesforceConnection(
- log,
- url,
- variables.resolve(wUserName.getText()),
- Utils.resolvePassword(variables, wPassword.getText()));
int realTimeOut = Const.toInt(variables.resolve(wTimeOut.getText()), 0);
+
+ // Check if a Salesforce Connection metadata is selected
+ String connectionName = variables.resolve(wSalesforceConnection.getText());
+ SalesforceConnection connection;
+ if (!Utils.isEmpty(connectionName)) {
+ // Use Salesforce Connection metadata
+ org.apache.hop.metadata.salesforce.SalesforceConnection connectionMeta =
+ metadataProvider
+
.getSerializer(org.apache.hop.metadata.salesforce.SalesforceConnection.class)
+ .load(connectionName);
+
+ if (connectionMeta == null) {
+ throw new HopException(
+ "Salesforce Connection '" + connectionName + "' not found in
metadata");
+ }
+
+ // Create connection using metadata
+ connection = connectionMeta.createConnection(variables, log);
+ } else {
+ // Use inline username/password configuration (backward compatibility)
+ String url = variables.resolve(wURL.getText());
+ connection =
+ new SalesforceConnection(
+ log,
+ url,
+ variables.resolve(wUserName.getText()),
+ Utils.resolvePassword(variables, wPassword.getText()));
+ }
connection.setTimeOut(realTimeOut);
// connect to Salesforce
connection.connect();
diff --git
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateDialog.java
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateDialog.java
index 4ce4dcd522..f73ca7a21a 100644
---
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateDialog.java
+++
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateDialog.java
@@ -722,6 +722,10 @@ public class SalesforceUpdateDialog extends
SalesforceTransformDialog {
// check if module, username is given
private boolean checkUser() {
+ // If a metadata connection is selected, username is not required
+ if (!Utils.isEmpty(wSalesforceConnection.getText())) {
+ return true;
+ }
if (Utils.isEmpty(wUserName.getText())) {
MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR);
@@ -740,25 +744,43 @@ public class SalesforceUpdateDialog extends
SalesforceTransformDialog {
getInfo(meta);
SalesforceConnection connection = null;
- String url = variables.resolve(meta.getTargetUrl());
+ String selectedModule = variables.resolve(meta.getModule());
try {
- String selectedModule = variables.resolve(meta.getModule());
-
- // Define a new Salesforce connection
- connection =
- new SalesforceConnection(
- log,
- url,
- variables.resolve(meta.getUsername()),
- Utils.resolvePassword(variables, meta.getPassword()));
int realTimeOut = Const.toInt(variables.resolve(meta.getTimeout()), 0);
+
+ // Check if a Salesforce Connection metadata is selected
+ String connectionName =
variables.resolve(meta.getSalesforceConnection());
+ if (!Utils.isEmpty(connectionName)) {
+ // Use Salesforce Connection metadata
+ org.apache.hop.metadata.salesforce.SalesforceConnection connectionMeta
=
+ metadataProvider
+
.getSerializer(org.apache.hop.metadata.salesforce.SalesforceConnection.class)
+ .load(connectionName);
+
+ if (connectionMeta == null) {
+ throw new HopException(
+ "Salesforce Connection '" + connectionName + "' not found in
metadata");
+ }
+
+ // Create connection using metadata
+ connection = connectionMeta.createConnection(variables, log);
+ } else {
+ // Use inline username/password configuration (backward compatibility)
+ String url = variables.resolve(meta.getTargetUrl());
+ connection =
+ new SalesforceConnection(
+ log,
+ url,
+ variables.resolve(meta.getUsername()),
+ Utils.resolvePassword(variables, meta.getPassword()));
+ }
connection.setTimeOut(realTimeOut);
// connect to Salesforce
connection.connect();
// return fieldsname for the module
return connection.getFields(selectedModule);
} catch (Exception e) {
- throw new HopException("Error getting fields from module [" + url +
"]!", e);
+ throw new HopException("Error getting fields from module [" +
selectedModule + "]!", e);
} finally {
if (connection != null) {
try {
@@ -939,18 +961,36 @@ public class SalesforceUpdateDialog extends
SalesforceTransformDialog {
try {
SalesforceUpdateMeta meta = new SalesforceUpdateMeta();
getInfo(meta);
- String url = variables.resolve(meta.getTargetUrl());
String selectedField = meta.getModule();
wModule.removeAll();
- // Define a new Salesforce connection
- connection =
- new SalesforceConnection(
- log,
- url,
- variables.resolve(meta.getUsername()),
- Utils.resolvePassword(variables, meta.getPassword()));
+ // Check if a Salesforce Connection metadata is selected
+ String connectionName =
variables.resolve(meta.getSalesforceConnection());
+ if (!Utils.isEmpty(connectionName)) {
+ // Use Salesforce Connection metadata
+ org.apache.hop.metadata.salesforce.SalesforceConnection
connectionMeta =
+ metadataProvider
+
.getSerializer(org.apache.hop.metadata.salesforce.SalesforceConnection.class)
+ .load(connectionName);
+
+ if (connectionMeta == null) {
+ throw new HopException(
+ "Salesforce Connection '" + connectionName + "' not found in
metadata");
+ }
+
+ // Create connection using metadata
+ connection = connectionMeta.createConnection(variables, log);
+ } else {
+ // Use inline username/password configuration (backward
compatibility)
+ String url = variables.resolve(meta.getTargetUrl());
+ connection =
+ new SalesforceConnection(
+ log,
+ url,
+ variables.resolve(meta.getUsername()),
+ Utils.resolvePassword(variables, meta.getPassword()));
+ }
// connect to Salesforce
connection.connect();
// return
diff --git
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertDialog.java
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertDialog.java
index e3c7aeb54b..1423be523e 100644
---
a/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertDialog.java
+++
b/plugins/tech/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertDialog.java
@@ -877,6 +877,10 @@ public class SalesforceUpsertDialog extends
SalesforceTransformDialog {
// check if module, username is given
private boolean checkUser() {
+ // If a metadata connection is selected, username is not required
+ if (!Utils.isEmpty(wSalesforceConnection.getText())) {
+ return true;
+ }
if (Utils.isEmpty(wUserName.getText())) {
MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR);
@@ -901,16 +905,36 @@ public class SalesforceUpsertDialog extends
SalesforceTransformDialog {
getModulesListError = true;
SalesforceUpsertMeta meta = new SalesforceUpsertMeta();
getInfo(meta);
- String url = variables.resolve(meta.getTargetUrl());
String selectedModule = variables.resolve(meta.getModule());
- // Define a new Salesforce connection
- SalesforceConnection connection =
- new SalesforceConnection(
- log,
- url,
- variables.resolve(meta.getUsername()),
- Utils.resolvePassword(variables, meta.getPassword()));
int realTimeOut = Const.toInt(variables.resolve(meta.getTimeout()), 0);
+
+ // Check if a Salesforce Connection metadata is selected
+ String connectionName = variables.resolve(meta.getSalesforceConnection());
+ SalesforceConnection connection;
+ if (!Utils.isEmpty(connectionName)) {
+ // Use Salesforce Connection metadata
+ org.apache.hop.metadata.salesforce.SalesforceConnection connectionMeta =
+ metadataProvider
+
.getSerializer(org.apache.hop.metadata.salesforce.SalesforceConnection.class)
+ .load(connectionName);
+
+ if (connectionMeta == null) {
+ throw new HopException(
+ "Salesforce Connection '" + connectionName + "' not found in
metadata");
+ }
+
+ // Create connection using metadata
+ connection = connectionMeta.createConnection(variables, log);
+ } else {
+ // Use inline username/password configuration (backward compatibility)
+ String url = variables.resolve(meta.getTargetUrl());
+ connection =
+ new SalesforceConnection(
+ log,
+ url,
+ variables.resolve(meta.getUsername()),
+ Utils.resolvePassword(variables, meta.getPassword()));
+ }
connection.setTimeOut(realTimeOut);
Cursor busy = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
try {
@@ -936,6 +960,11 @@ public class SalesforceUpsertDialog extends
SalesforceTransformDialog {
}
private boolean skipFetchModules() {
+ // If a metadata connection is selected, don't skip based on
username/password fields
+ if (!Utils.isEmpty(wSalesforceConnection.getText())) {
+ return getModulesListError;
+ }
+ // Otherwise, check for username/password fields
return Utils.isEmpty(wURL.getText())
|| Utils.isEmpty(wUserName.getText())
|| Utils.isEmpty(wPassword.getText())
@@ -1109,18 +1138,36 @@ public class SalesforceUpsertDialog extends
SalesforceTransformDialog {
try {
SalesforceUpsertMeta meta = new SalesforceUpsertMeta();
getInfo(meta);
- String url = variables.resolve(meta.getTargetUrl());
String selectedField = wModule.getText();
wModule.removeAll();
- // Define a new Salesforce connection
- connection =
- new SalesforceConnection(
- log,
- url,
- variables.resolve(meta.getUsername()),
- Utils.resolvePassword(variables, meta.getPassword()));
+ // Check if a Salesforce Connection metadata is selected
+ String connectionName =
variables.resolve(meta.getSalesforceConnection());
+ if (!Utils.isEmpty(connectionName)) {
+ // Use Salesforce Connection metadata
+ org.apache.hop.metadata.salesforce.SalesforceConnection
connectionMeta =
+ metadataProvider
+
.getSerializer(org.apache.hop.metadata.salesforce.SalesforceConnection.class)
+ .load(connectionName);
+
+ if (connectionMeta == null) {
+ throw new HopException(
+ "Salesforce Connection '" + connectionName + "' not found in
metadata");
+ }
+
+ // Create connection using metadata
+ connection = connectionMeta.createConnection(variables, log);
+ } else {
+ // Use inline username/password configuration (backward
compatibility)
+ String url = variables.resolve(meta.getTargetUrl());
+ connection =
+ new SalesforceConnection(
+ log,
+ url,
+ variables.resolve(meta.getUsername()),
+ Utils.resolvePassword(variables, meta.getPassword()));
+ }
// connect to Salesforce
connection.connect();
// return
diff --git
a/plugins/tech/salesforce/src/main/resources/org/apache/hop/pipeline/transforms/salesforceinput/messages/messages_en_US.properties
b/plugins/tech/salesforce/src/main/resources/org/apache/hop/pipeline/transforms/salesforceinput/messages/messages_en_US.properties
index 4589676351..96b0305122 100644
---
a/plugins/tech/salesforce/src/main/resources/org/apache/hop/pipeline/transforms/salesforceinput/messages/messages_en_US.properties
+++
b/plugins/tech/salesforce/src/main/resources/org/apache/hop/pipeline/transforms/salesforceinput/messages/messages_en_US.properties
@@ -198,6 +198,8 @@ SalesforceInputMeta.Injection.TYPE=The data type of the
field
SalesforceInputMeta.Injection.URL_FIELDNAME=Specify the field to use when
including the URL in your output.
SalesforceInputMeta.Injection.USE_COMPRESSION=Select this option to compress
data in .gzip format when connecting between Apache Hop and Salesforce.
SalesforceInputMeta.Injection.USE_SPECIFIED_QUERY=Select this option to
manually execute a query based on your own Salesforce Object Query Language
(SOQL) statements.
+SalesforceInputMeta.Injection.USE_FIELD_API_NAMES=Use field API names
+SalesforceInputMeta.Injection.SALESFORCE_CONNECTION=The Salesforce connection
name to use
SalesforceInputMeta.keyword=SalesForce,input
SalesforceInputMeta.recordsFilter.All=All
SalesforceInputMeta.recordsFilter.Deleted=Deleted