‎2008 Nov 17 8:48 AM
hi expert's ,
i wanted to know how we can do bapi with java ...?
how we can retrive data from java.
means what will be the coding for java?
may be m not able to explain but plz help me with this...
Regards
Pankaj.
‎2008 Nov 17 9:15 AM
you can wirte code in SAP itself. you can create BAPI in sap get the data from java and upload data through bapi into SAP.
you can get data from java through file...
‎2008 Nov 17 10:13 AM
Hi
lets see if this helps.
Calling BAPIs from Java
This is an example program for calling a BAPI from the IBM development platform, Access Builder for SAP R/3.
Detailed program examples are shipped with the Access Builder for R/3.
Access Builder for SAP R/3
//Importing the required classes:
import com.sap.rfc.*;
import com.sap.rfc.exception.*;
import com.ibm.sap.bapi.*;
import com.ibm.sap.bapi.generated.*;
//Connecting to the R/3 System:
static private IRfcConnection establishConnection(MiddlewareInfo aMiddlewareInfo)
throws JRfcRemoteException
{
IRfcConnection aConnection = null ;
ConnectInfo aConnectInfo = null ;
UserInfo aUserInfo = null ;
String orbServerName = aMiddlewareInfo.getOrbServerName() ;
// Please adjust the values written in UPPERCASE LETTERS
// in the lines below so that they fit to your needs!
// If you don't know the correct values ask your system
// administrator!
// After correcting these values you should change the
// <bAdjusted> variable in the following line
// from "false" to "true".
// Then you can re-compile ("javac SampleCompanyCode.java") and
// re-run ("java SampleCompanyCode -conn JNI") this sample...
boolean bAdjusted = true;
if (!bAdjusted) {
throw (new JRfcRfcConnectionException (
"Please adjust the Connection-Parameters to your
needs! (See method \"establishConnection\")"));
}
//Connection information:
aConnectInfo = new ConnectInfo (
3, // int aRfcMode 3=R/3 or 2=R/2
null, // String aDestination
"9.7.12.7", // String aHostName YOUR HOSTNAME (e.g. IP-
//address)
0, // int aSystemNo YOUR SYSTEM-NUMBER
null, // String aGatewayHost
null, // String aGatewayService
null, // String aSystemName
null, // String aGroupName
null, // String aMsgServer
false, // Boolean isLoadBalancing
true); // Boolean isCheckAuthorization
//User information:
aUserInfo = new UserInfo (
"MUSTER", // String aUserName, YOUR USERID
"IDES", // String aPassword, YOUR PASSWORD
"800", // String aClient, YOUR CLIENT NUMBER
"e", // String aLanguage, YOUR PREFERRED
//LANGUAGE
1103); // int aCodePage YOUR REQUIRED CODEPAGE
//Technical conversion for the selected middleware;
// Open connection:
IRfcConnectionFactory aConnectionFactory = FactoryManager.getSingleInstance().getRfcConnectionFactory() ;
aConnection = aConnectionFactory.createRfcConnection(aConnectInfo, aUserInfo) ;
aConnection.open() ;
//Returning the connection:
return aConnection ;
}
//Calling the main method:
public static void main (java.lang.String[] args)
//Setting up the connection using the selected middleware:
{
MiddlewareInfo aMiddlewareInfo = new MiddlewareInfo(args) ;
FactoryManager aFactoryManager = FactoryManager.getSingleInstance() ;
aFactoryManager.setMiddlewareInfo(aMiddlewareInfo) ;
//Initializing the connection object:
IRfcConnection aConnection = null ;
try
{
aConnection = establishConnection(aMiddlewareInfo) ;
}
catch (Exception ex)
{
System.out.println("ERROR : Could not create connection : " + ex) ;
System.exit(-1) ;
}
System.out.println("Connection established.");
// --- TEST CODE (start) -
try
{
printList(aConnection) ;
//Calling the BAPI:
//Declare an empty Object ID for the Business Object
//CompanyCode:
objectId = CompanyCode.getEmptyObjectId() ;
//Entering a value in the object ID:
objectId.getKeyField("COMPANYCODEID").setString("1000") ;
//Instantiate the object CompanyCode with the object ID:
companyCode = new CompanyCode(objectId) ; // Create 2nd
CompanyCode
System.out.println ("Successfully created new CompanyCode : '" + companyCode + "'") ;
printDetails(companyCode, aConnection) ;
}
// --- TEST CODE (end) -
catch (Exception ex)
{
System.out.println ("Unexpected exception occurred:");
System.out.println (ex);
}
}
private static void printDetails(CompanyCode companyCode, IRfcConnection connection)
{
try
{
//Declare the parameters of the BAPI CompanyCode.GetDetail:
CompanyCodeGetdetailParams aCompanyCodeGetdetailParams =
new CompanyCodeGetdetailParams() ;
//Aufruf des BAPIs CompanyCode.GetDetail auf die Objektinstanz:
companyCode.getdetail(connection, aCompanyCodeGetdetailParams);
//Splitting the parameter object into its separate components
//(Struktur):
Bapi0002_2Structure struct = aCompanyCodeGetdetailParams.getCompanycodeDetail() ;
System.out.println ("The details of the companycode are : ") ;
//Splitting the structure into individual fields:
System.out.println ("CompCode : '" + struct.getCompCode() + "'" );
System.out.println ("CompName : '" + struct.getCompName() + "'" );
System.out.println ("City1 : '" + struct.getCity() + "'" );
System.out.println ("Country1 : '" + struct.getCountry() + "'" );
System.out.println ("Currency : '" + struct.getCurrency() + "'" );
System.out.println ("Langu1 : '" + struct.getLangu() + "'" );
System.out.println ("ChrtAccts : '" + struct.getChrtAccts() + "'" );
System.out.println ("FyVariant : '" + struct.getFyVariant() + "'" );
System.out.println ("VatRegNo : '" + struct.getVatRegNo() + "'" );
System.out.println ("Company : '" + struct.getCompany() + "'" );
System.out.println ("AddrNo : '" + struct.getAddrNo() + "'" );
System.out.println() ;
}
catch (Exception ex)
{
System.out.println("Exception in printDetails() : " + ex) ;
}
return;
}
private static void printList(IRfcConnection connection)
{
try
{
//Declaring the parameter object:
CompanyCodeGetlistParams aCompanyCodeGetlistParams =
new CompanyCodeGetlistParams() ;
//Actual BAPI call:
CompanyCode.getlist(connection, aCompanyCodeGetlistParams);
//Splitting the parameter objects into its separate components
//(Table):
Bapi0002_1Table table = aCompanyCodeGetlistParams.getCompanycodeList();
int rowCount = table.getRowCount() ;
System.out.println ("Returned table has " + rowCount + " lines.");
//Evaluating the table row by row:
for (int i = 0; i < rowCount; i++)
{
Bapi0002_1TableRow row = table.getRow(i) ;
System.out.println("\t" + row.getCompCode() + "\t" + row.getCompName()) ;
}
System.out.println() ;
}
catch (Exception ex)
{
System.out.println("Exception in printList() : " + ex) ;
}
return;
}
}
Regards
Neha