免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2602 | 回复: 0
打印 上一主题 下一主题

通过JCO获取SAP R/3物料主数据信息 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-30 16:08 |只看该作者 |倒序浏览
通过JCO获取SAP R/3物料主数据信息

物料主数据系统的开发,大概完毕.但是在开发过程中,在WEB方式下获取SAP R/3系统中的数据还存在问题,所以改用Java应用程序开了其子系统来获取,这样将获取的数据暂存于数据库中,然后进行凭证数据提取,合并,导入,最终形成物料主数据系统中可用的凭证,这样减少了模板差导问题.

1、查询界面,输入条件如:工厂,创建时间所得到的数据;形成凭证A002080716002;

2、提取数据,对凭证A002080716002进行数据提取;在[原数据]处选择需要的数据并保存,如果要更改已选择的数据,只要在[新数据]处取消,点更改;

3、合并凭证,如果将多次提取的数据合成一张凭证,可以通过已做好的程序来实现。当然可以单独将一张凭证合为一张;从[取出凭证]栏选择凭证到[接收凭证],点合并凭证.

4、导入凭证,刚刚在子系统中将凭证A002080716002合并后形成了母系统中的凭证A002080716001,导入凭证后将在母系统;

5、通过IE浏览器,输入网址可以看到刚导入的凭证;只待一次审批即可。

通过子系统来处理数据,最终工程部不必在SAP R/3系统中导出数据,然后又导入物料主数据系统来对数据进行处理,这一过程序存在模板问题.

程序处理:
1、首先在SAP R/3系统中创建一个RFC函数类,用来做外部接口通过传入参数,获取物料主数据。(Z_DYG_MATERIAL_GETITEM2)
2、java程序代码处理,通过调用上面写的接口,获取数据,最终将数据存入数据库。

public List getInfo(String werks,String matnr,String mtart,String dispo,String ekgrp,String erdal,String erdah,String oper){
  List list=null;
  
  String group=System_config.group;
  String user=System_config.user;
  String pwd=System_config.pwd;
  String language=System_config.language;
  String ipaddress=System_config.ipaddress;
  String numbee=System_config.numbe;
// Object conn=(Object)"

[email=com.sap.mw.jco.JCO$Client@12ac982]com.sap.mw.jco.JCO$Client@12ac982[/email]
";
  
  System.out.println("集团:"+group);
  System.out.println("账户:"+user);
  System.out.println("密码:********");
  System.out.println("语言:"+language);
  
  System.out.println("正在登陆SAP系统...");
  System.out.println("工厂:"+werks);
  System.out.println("MRP控制者:"+dispo);
  System.out.println("创建日期:从"+erdal+" 到 "+erdah);
  
   try{
   
    mConnection = JCO.createClient(group,user,pwd,language,ipaddress,numbee);
   // System.out.println("连接:"+mConnection);
             mConnection.connect();

             mRepository = new JCO.Repository("string",mConnection);                              
         }catch(Exception ex){
             ex.printStackTrace();
         }
  JCO.Function function = null;
        JCO.Table codes = null;
        try{

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

            codes = function.getTableParameterList().getTable("VERFY");
            JCO.ParameterList input=function.getImportParameterList();
            
            input.setValue(werks, "WERKS");
            input.setValue(matnr, "MATNR");
            input.setValue(mtart, "MTART");
            input.setValue(dispo, "DISPO");            
            input.setValue(ekgrp, "EKGRP");
            
            input.setValue(erdal, "KUNNL");
            input.setValue(erdah, "KUNNH");
            mConnection.execute(function);
            System.out.println("获取数据总长度:"+codes.getNumRows());
            HibernateDao dao=new HibernateDao();
            NumbeDocu nd=new NumbeDocu();
         //   String sql="delete from Ztem where apply='"+oper+"'";
          //  dao.deleteTem(sql);//删除临时表
            
       //     SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
   String nname=nd.CreateNumbs();
      String docu=oper+nname;
      SimpleDateFormat sdff = new SimpleDateFormat("yyyy-MM-dd");
        String appday=(String)sdff.format(new Date());
      
        System.out.println("正在将数据写入数据库...:");
            for(int i=0;i


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/50618/showart_1097072.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP