ESS Job의 로그를 WebAPI로 취득하는 Java 프로그램

ERP 통합 서비스



ERP Integration Service는 ERP 데이터 인바운드 및 아웃바운드 API와 관련 작업의 상태 확인 및 로깅을 위한 API를 제공합니다.
이 중 downloadESSJobExecutionDetails은 ESS 작업의 프로세스 ID를 지정하여 해당 작업의 로그 및 출력 파일을 검색하는 API입니다.



Java 프로그램



API 서비스 취득 및 액세스 권한 취득



서비스를 얻으려면 WSDL과 서비스 이름을 인수로 호출합니다.
URL wsdl = new URL(
        "https://〇〇〇.oraclecloud.com/publicFinancialCommonErpIntegration/ErpIntegrationService?WSDL");
QName serviceName = new QName(
        "http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/",
        "ErpIntegrationService");
erpIntegrationServiceService = new ErpIntegrationService_Service(wsdl, serviceName);

SecurityPoliciesFeature securityFeatures = new SecurityPoliciesFeature(
        new String[] { "oracle/wss_username_token_over_ssl_client_policy" });
erpIntegrationService = erpIntegrationServiceService.getErpIntegrationServiceSoapHttpPort(securityFeatures);

액세스 권한을 얻기 위해 사용자 이름과 암호를 설정합니다.
Map<String, Object> reqContext = ((BindingProvider) erpIntegrationService).getRequestContext();

reqContext.put(BindingProvider.USERNAME_PROPERTY, jobUser);
reqContext.put(BindingProvider.PASSWORD_PROPERTY, jobPass);

로그 획득



downloadESSJobExecutionDetails의 인수에 대상 작업의 프로세스 ID와 "log"를 지정합니다.
※출력 파일을 취득하고 싶은 경우는 "out"을 지정합니다.
※응답의 데이터는 Zip 파일 형식이므로 Zip 파일에 씁니다.
try (BufferedOutputStream bos = new BufferedOutputStream(
        new FileOutputStream(new File(logDir + "\\" + logFilename + ".zip")))) {

    List<DocumentDetails> docList = erpIntegrationService
            .downloadESSJobExecutionDetails(essProcId, "log");

    for (DocumentDetails docDetail : docList) {
        bos.write(docDetail.getContent());
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

좋은 웹페이지 즐겨찾기