Skip to content

Commit 134ef0d

Browse files
author
rwintner
committed
SAP Connecor from Aschauer EDV
git-svn-id: svn://source.pentaho.org/svnkettleroot/Kettle/trunk@12424 5fb7f6ec-07c1-534a-b4ca-9155e429e800
1 parent 4841f75 commit 134ef0d

File tree

4 files changed

+42
-11
lines changed

4 files changed

+42
-11
lines changed

src-ui/org/pentaho/di/ui/trans/steps/sapinput/SapInputDialog.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919

2020
import java.util.ArrayList;
2121
import java.util.Arrays;
22+
import java.util.HashSet;
2223
import java.util.List;
24+
import java.util.Set;
2325

2426
import org.eclipse.swt.SWT;
2527
import org.eclipse.swt.custom.CCombo;
@@ -479,7 +481,23 @@ private void ok()
479481
if (answer==SWT.CANCEL) {
480482
return;
481483
}
482-
}
484+
}
485+
486+
// check tablecount
487+
Set<String> tables = new HashSet<String>();
488+
int nrParameters = wOutput.nrNonEmpty();
489+
for (int i=0;i<nrParameters;i++) {
490+
TableItem item = wOutput.getNonEmpty(i);
491+
String tableName = item.getText(3);
492+
tables.add(tableName);
493+
}
494+
if (tables.size() > 1)
495+
{
496+
int answer = showMultipleOutputTablesWarning(true);
497+
if (answer==SWT.CANCEL) {
498+
return;
499+
}
500+
}
483501

484502
getInfo(input);
485503

@@ -489,14 +507,21 @@ private void ok()
489507
private void about() {
490508
new SapInputAboutDialog(SapInputDialog.this.shell).open();
491509
}
492-
510+
493511
private int showDatabaseWarning(boolean includeCancel) {
494512
MessageBox mb = new MessageBox(shell, SWT.OK | ( includeCancel ? SWT.CANCEL : SWT.NONE ) | SWT.ICON_ERROR );
495513
mb.setMessage(BaseMessages.getString(PKG, "SapInputDialog.InvalidConnection.DialogMessage")); //$NON-NLS-1$
496514
mb.setText(BaseMessages.getString(PKG, "SapInputDialog.InvalidConnection.DialogTitle")); //$NON-NLS-1$
497515
return mb.open();
498516
}
499517

518+
private int showMultipleOutputTablesWarning(boolean includeCancel) {
519+
MessageBox mb = new MessageBox(shell, SWT.OK | ( includeCancel ? SWT.CANCEL : SWT.NONE ) | SWT.ICON_ERROR );
520+
mb.setMessage(BaseMessages.getString(PKG, "SapInputDialog.MultipleOutputTables.DialogMessage")); //$NON-NLS-1$
521+
mb.setText(BaseMessages.getString(PKG, "SapInputDialog.MultipleOutputTables.DialogTitle")); //$NON-NLS-1$
522+
return mb.open();
523+
}
524+
500525
private void getInfo(SapInputMeta meta) {
501526
meta.setDatabaseMeta( transMeta.findDatabase(wConnection.getText()) );
502527
meta.setFunction(function);

src/org/pentaho/di/trans/steps/sapinput/messages/messages_en_US.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ SapInputDialog.FindFunctionButton.Label=Find it...
1414
SapInputDialog.DoMapping.UnableToFindInput=Unable to find input
1515
SapInputDialog.Function.Label=Function
1616
SapInputDialog.InvalidConnection.DialogTitle=Invallid connection\!
17+
SapInputDialog.MultipleOutputTables.DialogTitle=Multiple output structures or tables\!
1718
SapInputDialog.shell.Title=SAP Input
1819
SapFunctionBrowser.ResultView.Name.Column=Name
1920
SapInputDialog.ColumnInfo.SAPType=SAP Type
@@ -29,6 +30,7 @@ SapFunctionBrowser.ExceptionDialog.ErrorDuringSearch.Title=Search error\!
2930
SapInput.Exception.FunctionIsNeeded=A function is needed to make this step operate properly.
3031
SapInput.Exception.DatabaseConnectionsIsNeeded=An SAP database connection is needed to make this step function properly\!
3132
SapInputDialog.InvalidConnection.DialogMessage=An invalid connection is specified\:
33+
SapInputDialog.MultipleOutputTables.DialogMessage=You can only have one output structure or table. Please remove some output fields\!
3234
SapInputDialog.ClearInputOutput.DialogMessage=Are you sure you want to replace the input and output lines with new data?
3335
^SapInputDialog.StepName=Step name
3436
^SapInputDialog.LimitSize=Limit size

src/org/pentaho/di/trans/steps/sapinput/mock/SAPConnectionFactory.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,12 @@ public String getConnectionTestReport(DatabaseMeta databaseMeta)
4141

4242
StringBuffer report = new StringBuffer();
4343

44-
SAPConnection sc = create();
44+
SAPConnection sc = null;
4545

4646
try {
47+
48+
sc = create();
49+
4750
sc.open(databaseMeta);
4851

4952
// If the connection was successful

testfiles/blackbox/tests/trans/steps/sapinput/sapinput-test1.ktr

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<extended_description/>
77
<trans_version/>
88
<trans_type>Normal</trans_type>
9+
<trans_status>0</trans_status>
910
<directory>&#47;</directory>
1011
<parameters>
1112
</parameters>
@@ -166,8 +167,8 @@
166167
<field><field_name>CURRENCY</field_name><sap_type>STRUCTURE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>CURRENCY</new_name><target_type>String</target_type> </field>
167168
<field><field_name>CURRENCY_ISO</field_name><sap_type>STRUCTURE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>CURRENCY_ISO</new_name><target_type>String</target_type> </field>
168169
<field><field_name>ACCTSTATUS</field_name><sap_type>STRUCTURE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>ACCTSTATUS</new_name><target_type>String</target_type> </field>
169-
<field><field_name>NET_VALUE</field_name><sap_type>STRUCTURE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>NET_VALUE</new_name><target_type>BigNumber</target_type> </field>
170-
<field><field_name>TAX_VALUE</field_name><sap_type>STRUCTURE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>TAX_VALUE</new_name><target_type>BigNumber</target_type> </field>
170+
<field><field_name>NET_VALUE</field_name><sap_type>STRUCTURE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>NET_VALUE</new_name><target_type>String</target_type> </field>
171+
<field><field_name>TAX_VALUE</field_name><sap_type>STRUCTURE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>TAX_VALUE</new_name><target_type>String</target_type> </field>
171172
<field><field_name>CANCELLED</field_name><sap_type>STRUCTURE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>CANCELLED</new_name><target_type>String</target_type> </field>
172173
</fields>
173174
<cluster_schema/>
@@ -199,8 +200,8 @@
199200
<parameters>
200201
<parameter><field_name>SIGN</field_name><sap_type>STRUCTURE</sap_type><table_name>REFDOCRANGE</table_name><parameter_name>SIGN</parameter_name> </parameter>
201202
<parameter><field_name>OPTION</field_name><sap_type>STRUCTURE</sap_type><table_name>REFDOCRANGE</table_name><parameter_name>OPTION</parameter_name> </parameter>
202-
<parameter><field_name>REF_DOC_LOW1</field_name><sap_type>STRUCTURE</sap_type><table_name>REFDOCRANGE</table_name><parameter_name>REF_DOC_LOW</parameter_name> </parameter>
203-
<parameter><field_name>REF_DOC_HIGH1</field_name><sap_type>STRUCTURE</sap_type><table_name>REFDOCRANGE</table_name><parameter_name>REF_DOC_HIGH</parameter_name> </parameter>
203+
<parameter><field_name>REF_DOC_LOW</field_name><sap_type>STRUCTURE</sap_type><table_name>REFDOCRANGE</table_name><parameter_name>REF_DOC_LOW</parameter_name> </parameter>
204+
<parameter><field_name>REF_DOC_HIGH</field_name><sap_type>STRUCTURE</sap_type><table_name>REFDOCRANGE</table_name><parameter_name>REF_DOC_HIGH</parameter_name> </parameter>
204205
</parameters>
205206
<fields>
206207
<field><field_name>BILLINGDOC</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>BILLINGDOC</new_name><target_type>String</target_type> </field>
@@ -210,8 +211,8 @@
210211
<field><field_name>CURRENCY</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>CURRENCY</new_name><target_type>String</target_type> </field>
211212
<field><field_name>CURRENCY_ISO</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>CURRENCY_ISO</new_name><target_type>String</target_type> </field>
212213
<field><field_name>ACCTSTATUS</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>ACCTSTATUS</new_name><target_type>String</target_type> </field>
213-
<field><field_name>NET_VALUE</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>NET_VALUE</new_name><target_type>BigNumber</target_type> </field>
214-
<field><field_name>TAX_VALUE</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>TAX_VALUE</new_name><target_type>BigNumber</target_type> </field>
214+
<field><field_name>NET_VALUE</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>NET_VALUE</new_name><target_type>String</target_type> </field>
215+
<field><field_name>TAX_VALUE</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>TAX_VALUE</new_name><target_type>String</target_type> </field>
215216
<field><field_name>CANCELLED</field_name><sap_type>TABLE</sap_type><table_name>BILLINGDOCUMENTDETAIL</table_name><new_name>CANCELLED</new_name><target_type>String</target_type> </field>
216217
</fields>
217218
<cluster_schema/>
@@ -364,7 +365,7 @@
364365
<precision>-1</precision>
365366
</field>
366367
<field>
367-
<name>REF_DOC_LOW1</name>
368+
<name>REF_DOC_LOW</name>
368369
<type>String</type>
369370
<format/>
370371
<currency/>
@@ -375,7 +376,7 @@
375376
<precision>-1</precision>
376377
</field>
377378
<field>
378-
<name>REF_DOC_HIGH1</name>
379+
<name>REF_DOC_HIGH</name>
379380
<type>String</type>
380381
<format/>
381382
<currency/>

0 commit comments

Comments
 (0)