Java + SAP

4 respostas
W

Olá.

Estou trabalhando em um sistema que se conecta com o SAP. O lance é que eu preciso enviar parâmetros para o SAP, e gostaria de saber se alguém tem idéia de como se faz isso...

Encontrei este código na internet... mas não sei se ele funciona da forma que eu preciso (enviar dados para o SAP).

//package ws; //Replace with name of your package 

import com.sap.mw.jco.*;

public class CallFunction extends Object {

	public static void main(String args[]) {
		CallFunction app = new CallFunction();
	}
	int count;
	JCO.Client mConnection;
	JCO.Repository mRepository;
	String[] SAPInterfaces;
	public CallFunction() {
		try {
			// Logon info
				mConnection = JCO.createClient("500", // SAP client
	 	                                    "username", // userid
		                                     "password", // password
		                                        null, // language
		                               "server name", // application server host name
	                                           "00"); // system number
			mConnection.connect();
			mRepository = new JCO.Repository("ARAsoft", mConnection);
		} catch (Exception ex) {
			ex.printStackTrace();
			System.exit(1);
		}

		JCO.Function function = null;
		JCO.Table codes = null;
		//		codes.firstRow();

		try {
			function = this.createFunction("BAPI_MATERIAL_GETLIST");
			
			if (function == null) {
				System.out.println(
					"BAPI_MATERIAL_GETLIST" + " not found in SAP.");
				System.exit(1);
			}

			codes = function.getTableParameterList().getTable("MATNRSELECTION");

			codes.appendRows(2); // Add two rows to internal table
			codes.setValue("I", "SIGN");
			codes.setValue("EQ", "OPTION");
			codes.setValue("P1001087", "MATNR_LOW");
			codes.setValue("", "MATNR_HIGH");

			codes.nextRow(); // Move onto next row
			codes.setValue("I", "SIGN");
			codes.setValue("EQ", "OPTION");
			codes.setValue("P1001088", "MATNR_LOW");
			codes.setValue("", "MATNR_HIGH");

			mConnection.execute(function);

//			JCO.Table returnTable1 = 
//				function.getTableParameterList().getTable("MATERIALSHORTDESCSEL");
//			System.out.println(returnTable1);

//			JCO.Table returnTable2 = 
//				function.getTableParameterList().getTable("MATNRLIST");
//			System.out.println(returnTable2);

			// Output result Material list table
			System.out.println(
				function.getTableParameterList().getValue("MATNRLIST"));
			System.out.println(
				function.getTableParameterList().getString("MATNRLIST"));

//			System.out.println(
//				function.getTableParameterList().getValue("MATERIALSHORTDESCSEL"));
//
//			System.out.println(
//				function.getTableParameterList().getString("MATERIALSHORTDESCSEL"));

			// Output Selection table
			System.out.println(
				function.getTableParameterList().getValue("MATNRSELECTION"));
			System.out.println(
				function.getTableParameterList().getString("MATNRSELECTION"));

		} catch (Exception ex) {
			ex.printStackTrace();
			System.exit(1);
		}
	}

	public JCO.Function createFunction(String name) throws Exception {
		try {
			IFunctionTemplate ft =
				mRepository.getFunctionTemplate(name.toUpperCase());
			if (ft == null)
				return null;
			return ft.getFunction();
		} catch (Exception ex) {
			throw new Exception("Problem retrieving JCO.Function object.");
		}
	}
}

Desde já agradeço.

Valeu pessoal!

:D

4 Respostas

luistiagos

so uma pergunta pra que diabos vc quer se conectar a um SAP?

W

sistema legado + SAP = cliente feliz!

nbluis

Busque suporte deles…

Não tente adivinhar que tipo de interface eles tem lá pra ti que tu vai passar semanas tentando.

T

nbluis:
Busque suporte deles…

Não tente adivinhar que tipo de interface eles tem lá pra ti que tu vai passar semanas tentando.

Isso mesmo… Devem haver interfaces para isso… Se não consegue visualizar na documentação, procure o suporte.
[]s

Criado 16 de julho de 2007
Ultima resposta 16 de jul. de 2007
Respostas 4
Participantes 4