com.sap.conn.jco.ConversionException:(122)JCO_ERROR_CONVERSION:String to Date字段

时间:2016-12-23 05:56:12

标签: java sap jco

我正在研究SAP JCo。并在设置DATE '12 .16.2016'

时获得异常

例外:     com.sap.conn.jco.ConversionException:(122)JCO_ERROR_CONVERSION:无法将字段java.lang.String中的'12 .16.2016'值转换为字段DATE的STRUCTURE。

我的代码是

  public static void YP_ECA_VIN(String date, String plant) throws Exception    {
    try {
        JCoDestination destination;
        JCoRepository sapRepository;
   destination = JCoDestinationManager.getDestination(DST1);
   JCoDestinationManager.getDestination(DST1);     
   JCoContext.begin(destination);
   sapRepository = destination.getRepository();        
   if (sapRepository == null) {
        System.out.println("Couldn't get repository!");
        JCoContext.end(destination);
        System.exit(0);
    } 
    JCoFunctionTemplate template =     sapRepository.getFunctionTemplate("YP_ECA_VIN");     
    if (template == null) {
        System.out.println("Couldn't get template for YP_ECA_VIN!");
    } else {
        JCoFunction function = template.getFunction();
        function.getImportParameterList().setValue("DATE", "12.16.2016");
        function.getImportParameterList().setValue("PLANT", plant);
        function.execute(destination);
        int numTRows = 0;
        int numTCoulmns = 0;
        JCoTable table =    function.getExportParameterList().getTable("OUTPUT");
      // some code
    }

2 个答案:

答案 0 :(得分:0)

JCO.Functions 中的所有参数都应为字符串。尝试将日期值设置为字符串。在SAP中,日期字符串的格式为“yyyyMMdd”,如“20161223”。

答案 1 :(得分:0)

名为DATE的RFM导入参数显然不是日期类型,而是结构类型。在这种情况下,您必须在JCo端使用JCoStructure实例而不是String。

但我宁愿假设您在ABAP端定义远程功能模块接口YP_ECA_VIN时犯了一个错误,并且您希望此导入参数DATE实际上是ABAP日期类型。