/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2013 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************/ package org.pentaho.di.trans.steps.sapinput.sap; import java.util.Collection; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.trans.steps.sapinput.sap.impl.SAPRowIterator; /* Copyright (c) 2010 Aschauer EDV GmbH. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This software was developed by Aschauer EDV GmbH and is provided under the terms * of the GNU Lesser General Public License, Version 2.1. You may not use * this file except in compliance with the license. If you need a copy of the license, * please go to http://www.gnu.org/licenses/lgpl-2.1.txt. * * Software distributed under the GNU Lesser Public License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to * the license for the specific language governing your rights and limitations. * * Please contact Aschauer EDV GmbH www.aschauer-edv.at if you need additional * information or have any questions. * * @author Robert Wintner robert.wintner@aschauer-edv.at * @since PDI 4.0 */ public interface SAPConnection { /** * Open a connection to SAP ERP Note: method for init() * * * @param sapConnection * The SAP Connection to use, needs to be of type SAP ERP * @throws SAPException * in case something went wrong during the connection phase. */ void open( DatabaseMeta sapConnection ) throws SAPException; void open( SAPConnectionParams params ) throws SAPException; /** * Close the connection */ void close(); // /////////////////// // methods for UI // /////////////////// Collection<SAPFunction> getFunctions( String query ) throws SAPException; SAPFunction getFunction( String name ) throws SAPException; SAPFunctionSignature getFunctionSignature( SAPFunction function ) throws SAPException; // /////////////////// // methods for data // /////////////////// // use this for possibly large amounts of data SAPRowIterator executeFunctionCursored( SAPFunction function, Collection<SAPField> input, Collection<SAPField> output ) throws SAPException; // use this for small amounts of data (e.g. for testcases) SAPResultSet executeFunctionUncursored( SAPFunction function, Collection<SAPField> input, Collection<SAPField> output ) throws SAPException; }