2016-12-23 11 views
0

SAP JCo에서 작업하고 있습니다. 및 DATE '12 .16.2016 설정하는 동안 예외를 받고 'com.sap.conn.jco.ConversionException : (122) JCO_ERROR_CONVERSION : 문자열을 날짜 필드

예외 : com.sap.conn.jco.ConversionException : (122) JCO_ERROR_CONVERSION : '12 .16.2016의 값을 변환 할 수 없습니다'java.lang.String 타입에서 DATE 필드에서 STRUCTURE로 이동합니다.

내 코드 JCO.Functions해야 문자열의

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 
    } 
+1

기능 모듈의 서명도 게시합니다. – vwegert

답변

0

모든 매개 변수입니다. 날짜 값을 문자열로 설정하십시오. SAP에서 날짜 문자열의 형식은 "yyyyMMdd"이며 "20161223"과 같습니다.

+0

지금 가져 오는 중 : com.sap.conn.jco.ConversionException : (122) JCO_ERROR_CONVERSION : 값이 '20161223'이고 java.lang.String 유형이 STRUCTURE 필드 인 DATE – dinesh

+0

일 수 있습니다. 필드를 확인해야합니다. .. 이런 종류의 오류를 줄 수있는 테이블을 구조로 고려하지 않도록하십시오. – Pritam

0

DATE이라는 RFM 가져 오기 매개 변수는 분명히 날짜 유형이 아니라 구조 유형입니다. 이 경우 String이 아닌 JCo 측에서 JCoStructure 인스턴스를 사용해야합니다.

그러나 나는 ABAP 측에서 원격 함수 모듈 인터페이스 YP_ECA_VIN을 정의 할 때 실수를 범한 것으로 생각하고이 가져 오기 매개 변수 DATE가 실제로 ABAP 날짜 유형이되도록하고 싶습니다.