How to create header texts using "BAPI_PO_CREATE"

Question:
Hello,
I am using PurchaseOrder.CreateFromData(BAPI_PO_CREATE) to create a PO(SAP version 4.6C) from a web based Application using JAVA and SAP JCO.
How can we create Header Texts using this BAPI?
I need to create "Header Text, Header Notes , Terms of Delivery and
Shipping instructions" as part of the PO creation process.
Are there any other alternatives to achieve the same?
Any help appreciated at the earliest.
Thanks in advance.
Mala
Answer:
Hai,
Please Try this code
If any doubts Send mail to [url]sapsns@yahoo.com[/url]
import com.sap.mw.jco.*;
import java.lang.*;
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class BAPITip extends Frame implements ActionListener
{
//Global Declarations
int i = 0;
char flag = 'a';
Label doc_type,co_code,purch_org,pur_group,vendor;
Label po_item,pur_mat,plant,unit,net_price,deliv_date,quantity;
TextField DOC_TYPE,CO_CODE,PURCH_ORG,PUR_GROUP,VENDOR;
TextField PO_ITEM[],PUR_MAT[],PLANT[],UNIT[],NET_PRICE[],DELIV_DATE[],QUANTITY[];
Panel pan_hdr,pan_itm,pan_bs,pan_st;
Button bt = null,bc = null,br = null,bd = null;
TextArea status = null;
JCO.Client mConnection = null;
JCO.Pool pool = null;
static final String POOL_NAME = "MyPool";
static JCO.Repository mRepository;
String msg = "";
public BAPITip()
{
setLocation(0,0);
setSize(800,800);
setVisible(true);
bt = new Button("Submit");
bc = new Button("Connect");
br = new Button("Reset");
bd = new Button("Disconnect");
bt.addActionListener(this);
bc.addActionListener(this);
br.addActionListener(this);
bd.addActionListener(this);
status = new TextArea("Status",4,30);
status.setEditable(false);
//Instantiating header labels
doc_type = new Label("Document Type");
co_code = new Label("Company Code");
purch_org = new Label("Purchasing Organization");
pur_group = new Label("Purchasing Group");
vendor = new Label("Vendor");
//Instantiating line item labels
po_item = new Label("Item number");
pur_mat = new Label("Material");
plant = new Label("Plant");
unit = new Label("Unit");
net_price = new Label("Net price");
deliv_date = new Label("Delivery date");
quantity = new Label("Quantity");
//Instantiating header text fields
DOC_TYPE = new TextField();
CO_CODE = new TextField();
PURCH_ORG = new TextField();
PUR_GROUP = new TextField();
VENDOR = new TextField();
//Instantiating line item textfields
PO_ITEM = new TextField[5];
PUR_MAT = new TextField[5];
PLANT = new TextField[5];
UNIT = new TextField[5];
NET_PRICE = new TextField[5];
DELIV_DATE = new TextField[5];
QUANTITY = new TextField[5];
//Instantiating panels
pan_hdr = new Panel();
pan_itm = new Panel();
//Setting layout for applet and adding component-panels to applet
setLayout(new GridLayout(4,1));
//Setting layout for header panel and adding components
GridLayout gl1 = new GridLayout(5,2);
pan_hdr.setLayout(gl1);
pan_hdr.add(doc_type);
pan_hdr.add(DOC_TYPE);
pan_hdr.add(co_code);
pan_hdr.add(CO_CODE);
pan_hdr.add(purch_org);
pan_hdr.add(PURCH_ORG);
pan_hdr.add(pur_group);
pan_hdr.add(PUR_GROUP);
pan_hdr.add(vendor);
pan_hdr.add(VENDOR);
add(pan_hdr);
//Setting layout for line item panel and adding components
GridLayout gl2 = new GridLayout(7,7);
pan_itm.setLayout(gl2);
pan_itm.add(po_item);
pan_itm.add(pur_mat);
pan_itm.add(plant);
pan_itm.add(unit);
pan_itm.add(net_price);
pan_itm.add(deliv_date);
pan_itm.add(quantity);
for(i = 0; i < 5; i++)
{
PO_ITEM[i] = new TextField();
PUR_MAT[i] = new TextField();
PLANT[i] = new TextField();
UNIT[i] = new TextField();
NET_PRICE[i] = new TextField();
DELIV_DATE[i] = new TextField();
QUANTITY[i] = new TextField();
pan_itm.add(PO_ITEM[i]);
pan_itm.add(PUR_MAT[i]);
pan_itm.add(PLANT[i]);
pan_itm.add(UNIT[i]);
pan_itm.add(NET_PRICE[i]);
pan_itm.add(DELIV_DATE[i]);
pan_itm.add(QUANTITY[i]);
}
pan_itm.add(bc);
pan_itm.add(bt);
pan_itm.add(br);
pan_itm.add(bd);
add(pan_itm);
add(status);
}
public void actionPerformed(ActionEvent ae)
{
msg = "";
if (ae.getSource() == bt)
this.submitToSAP();
else if (ae.getSource() == bc)
this.connectDirectToSAP();
else if (ae.getSource() == br)
this.resetValues();
else if (ae.getSource() == bd)
this.disconnectFromSAP();
}
private void connectDirectToSAP()
{
// Change the logon information to your own system/user
mConnection =
JCO.createClient("210", // SAP client
"sarvana", // userid
"SAP", // password
"EN", // language (null for the default language)
"sapsrv", // application server host name
"00"); // system number
try {
mConnection.connect();
msg = "Connection successfully established";
this.setStatus();
System.out.println("Connection successfully established");
}
catch (Exception ex) {
msg = ex.getMessage();
this.setStatus();
System.exit(1);
}
}
private void resetValues()
{
DOC_TYPE.setText("");
PURCH_ORG.setText("");
PUR_GROUP.setText("");
CO_CODE.setText("");
VENDOR.setText("");
status.setText("");
for (int i = 0; i < 5; i++)
{
PO_ITEM[i].setText("");
PUR_MAT[i].setText("");
PLANT[i].setText("");
UNIT[i].setText("");
NET_PRICE[i].setText("");
DELIV_DATE[i].setText("");
QUANTITY[i].setText("");
}
}
private void submitToSAP()
{
msg = "Please wait...";
this.setStatus();
System.out.println("Please wait...");
//creation of Repository object and object for the BAPI
if(mConnection == null)
{
msg = "Please conect first to the SAP system";
this.setStatus();
System.out.println(msg);
//System.exit(0);
}
mRepository = new JCO.Repository("ARAsoft", mConnection);
JCO.Function function = null;
function = BAPITip.createFunction("BAPI_PO_CREATE");
//setting the import parameters
JCO.Structure PO_HDR = function.getImportParameterList()
.getStructure("PO_HEADER");
JCO.Table PO_LITEMS = function.getTableParameterList().getTable("PO_ITEMS");
JCO.Table PO_ITM_SCH = function.getTableParameterList().getTable("PO_ITEM_SCHEDULES");
PO_HDR.setValue(DOC_TYPE.getText(),"DOC_TYPE");
PO_HDR.setValue(CO_CODE.getText(),"CO_CODE");
PO_HDR.setValue(PURCH_ORG.getText(),"PURCH_ORG");
PO_HDR.setValue(PUR_GROUP.getText(),"PUR_GROUP");
PO_HDR.setValue(VENDOR.getText(),"VENDOR");
for(int i = 0; i < 5; i++)
{
;
if (PO_ITEM[i].getText() != "")
{
PO_LITEMS.appendRow();
PO_LITEMS.setValue(PO_ITEM[i].getText(),"PO_ITEM");
PO_LITEMS.setValue(PUR_MAT[i].getText(),"PUR_MAT");
PO_LITEMS.setValue(PLANT[i].getText(),"PLANT");
PO_LITEMS.setValue(UNIT[i].getText(),"UNIT");
PO_LITEMS.setValue(NET_PRICE[i].getText(),"NET_PRICE");
PO_ITM_SCH.appendRow();
PO_ITM_SCH.setValue(PO_ITEM[i].getText(),"PO_ITEM");
PO_ITM_SCH.setValue(new Date(),"DELIV_DATE");
PO_ITM_SCH.setValue(QUANTITY[i].getText(),"QUANTITY");
}
}
//executing the BAPI
mConnection.execute(function);
//accessing export parameters
JCO.Table returnTable =
function.getTableParameterList().getTable("RETURN");
if(returnTable.getNumRows() != 0)
{
for (int i = 0; i < returnTable.getNumRows(); i++)
{
returnTable.setRow(i);
if (! (returnTable.getString("TYPE").equals("") ||
returnTable.getString("TYPE").equals("S") ||
returnTable.getString("TYPE").equals("W")) )
{
if (i == 0)
status.setText("");
msg = returnTable.getString("MESSAGE");
System.out.println(returnTable.getString("MESSAGE"));
}
}
}
String PO_NUM = function.getExportParameterList().
getString("PURCHASEORDER");
if (PO_NUM != null)
{
flag = 'a';
msg = "Purchase order " + PO_NUM + " created successfully!";
this.setStatus();
System.out.println(msg);
}
}
private void disconnectFromSAP()
{
mConnection.disconnect();
msg = "Disconnected from SAP system...";
this.setStatus();
System.out.println("Disconnected from SAP system...");
}
public static JCO.Function createFunction(String name)
{
IFunctionTemplate ft =
mRepository.getFunctionTemplate(name.toUpperCase());
if (ft == null)
return null;
return ft.getFunction();
}
private void setStatus()
{
status.setText("");
status.setText(msg);
}
private void appendStatus()
{
status.append(" " + msg);
}
public static void main(String args[])
{
BAPITip fb = new BAPITip();
}
}
Bye
Sathvik.
Answer:
Thanks for sending the sample code.
Mala

More Articles:

only list display is getting displayed in SAPGUI for Java?
Table maintance problem very Urgent?
How can i read values changed in alv with input on?
RadioButton / Event?
Testing BAPI FM - How to do the commit?
What effect on screen,when applying Patch?