您的位置:首页 > 编程语言 > Java开发

JAVA调用BAPI创建销售订单

2016-07-01 16:43 691 查看
创建JAVA程序

import java.io.File;     

import java.io.FileOutputStream;     

import java.util.Properties;   

import com.sap.conn.jco.JCoException;  

import com.sap.conn.jco.ext.DestinationDataProvider;  

import com.sap.conn.jco.JCoDestination;  

import com.sap.conn.jco.JCoDestinationManager;  

import com.sap.conn.jco.AbapException;  

import com.sap.conn.jco.JCoFunction;  

import com.sap.conn.jco.JCoField;  

import com.sap.conn.jco.JCoStructure;   

import com.sap.conn.jco.JCoTable;

 

public class CreateOrder {  

     static String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL";    

     static     

  {    

       Properties connectProperties = new Properties();     

        connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "192.168.00");     

        connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,  "10");     

        connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "100");     

        connectProperties.setProperty(DestinationDataProvider.JCO_USER,   "LIUWL");     

        connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "ADMIN123");     

        connectProperties.setProperty(DestinationDataProvider.JCO_LANG,   "ZH");   

        //JCO_PEAK_LIMIT -  Maximum number of idle connections kept open by the destination.  

        connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3");  

 

        //JCO_POOL_CAPACITY - Maximum number of active connections that   

        //can be created for a destination simultaneously  

        connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT,    "10");     

        createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);    

   }   

  

    static void createDataFile(String name, String suffix, Properties properties)     

     {     

         File cfg = new File(name+"."+suffix);     

         if(!cfg.exists())     

                        {     

             try     

                                  {     

                 FileOutputStream fos = new FileOutputStream(cfg, false);     

                 properties.store(fos, "for tests only !");     

                 fos.close();     

                                  }     

            catch (Exception e)     

                                {     

                 throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);     

                                 }     

                   }     

    }   

       public static void createSAPOrder() throws JCoException     

                 {     

           JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);     

           JCoFunction function = destination.getRepository().getFunction("ZRFC_SALESORDER_CREATEFROMDAT");   

           if(function == null)     

              throw new RuntimeException("BAPI_SALESORDER_CREATEFROMDAT2 not found in SAP.");     

 

        //importing parameter

        JCoStructure salehd = function.getImportParameterList().getStructure("ORDER_HEADER_IN");

        JCoStructure salehdx = function.getImportParameterList().getStructure("ORDER_HEADER_INX");

        //Tables

        JCoTable returntable = function.getTableParameterList().getTable("RETURN");

        JCoTable item = function.getTableParameterList().getTable("ORDER_ITEMS_IN");

        JCoTable itemx = function.getTableParameterList().getTable("ORDER_ITEMS_INX");

        JCoTable partner = function.getTableParameterList().getTable("ORDER_PARTNERS");

       JCoTable schedule = function.getTableParameterList().getTable("ORDER_SCHEDULES_IN");

       JCoTable schedulex = function.getTableParameterList().getTable("ORDER_SCHEDULES_INX");

    //  JCoTable condition = function.getTableParameterList().getTable("ORDER_CONDITIONS_IN");

    //  JCoTable conditionx = function.getTableParameterList().getTable("ORDER_CONDITIONS_INX");

                     

        salehd.setValue("DOC_TYPE","TA");        //订单类型

        salehd.setValue("SALES_ORG","8101");     //销售机构

        salehd.setValue("DISTR_CHAN","10");      //分销渠道

        salehd.setValue("DIVISION","10");        //产品组

        salehd.setValue("PURCH_NO_C","12");        //采购订单编号

        salehd.setValue("PRICE_DATE","20100926");//定价日期

        salehd.setValue("PMNTTRMS","0002");        //付款条款

        salehdx.setValue("DOC_TYPE","X");        //订单类型

        salehdx.setValue("SALES_ORG","X");     //销售机构

        salehdx.setValue("DISTR_CHAN","X");      //分销渠道

        salehdx.setValue("DIVISION","X");        //产品组

        salehdx.setValue("PURCH_NO_C","X");        //采购订单编号

        salehdx.setValue("PRICE_DATE","X");//定价日期

        salehdx.setValue("PMNTTRMS","X");        //付款条款

        item.appendRow();

        item.setValue("ITM_NUMBER","000010");        //项目

        item.setValue("MATERIAL","000000000000000007");        //物料编号

        itemx.appendRow();

        itemx.setValue("ITM_NUMBER","000010");        //项目

        itemx.setValue("MATERIAL","X");        //物料编号

        schedule.appendRow();

        schedule.setValue("ITM_NUMBER","000010");//项目

        schedule.setValue("SCHED_LINE","0001");//计划行

        schedule.setValue("REQ_QTY","10");//数量

        

        schedulex.appendRow();

        schedulex.setValue("ITM_NUMBER","000010");//项目

        schedulex.setValue("SCHED_LINE","0001");//计划行

        schedulex.setValue("REQ_QTY","X");//数量

        

        partner.appendRow();

        partner.setValue("PARTN_ROLE","AG");        //售达方

        partner.setValue("PARTN_NUMB","0000100043");        //售达方编号

        partner.appendRow();

        partner.setValue("PARTN_ROLE","WE");        //运达方

        partner.setValue("PARTN_NUMB","0000100043");        //运达方编号

        

        

        try     

                     {       

            function.execute(destination); 

                     }     

        catch(AbapException e)     

                    {     

           System.out.println(e.toString());     

           return;     

                    }    

       String saledocu = function.getExportParameterList().getString("SALESDOCUMENT");

       System.out.println("创建订单:"+saledocu); 

       System.out.println("返回信息数:"+returntable.getNumRows());

       for(int j = 0; j< returntable.getNumRows();j++)

                  {

          for(int i = 0; i < returntable.getMetaData().getFieldCount(); i++)      

                          {

            System.out.println(returntable.getMetaData().getName(i) + ":/t" + returntable.getString(i));     

                          }     

          returntable.nextRow();

          System.out.println();  

                  }

             }     

     

    public static void main(String[] args) throws JCoException     

         {     

        createSAPOrder();     

        }  

 } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: