ServiceNow вложения в Camel - PullRequest
       10

ServiceNow вложения в Camel

0 голосов
/ 12 июня 2018

Как скачать или загрузить вложения в servicenow из верблюжьего разъема.Проект настроен с помощью camel-servicenow (v2.21.0.fuse-000077-redhat-1) в maven.Создание, получение и обновление заявок работает нормально, однако не удается загрузить вложения с помощью ресурса Attachment.

1 Ответ

0 голосов
/ 28 июня 2018

Загрузить:

url = "https4://" 
        +  instance
        + ".service-now.com/api/now/v1/attachment?sysparm_query="
        + "table_name=" 
        + table 
        + "%5Etable_sys_id=" 
        + sysId
        + "&authenticationPreemptive=true&authUsername=" 
        + username 
        + "&authPassword="
        + password
        + "&authMethod=Basic";

В определении маршрута:

from("direct:servicenowAttachmentDownload").setHeader(Exchange.HTTP_METHOD, constant("GET")).recipientList().simple("${header.url}")

Загрузить:

url = "https4://"
        + instance
        + ".service-now.com/api/now/attachment/file?table_name="
        + table
        + "&table_sys_id="
        + sysId
        + "&file_name="
        + attachmentName
        + "&authenticationPreemptive=true&authUsername="
        + username
        + "&authPassword="
        + password
        + "&authMethod=Basic";

В определении маршрута:

from("direct:servicenowAttachmentUpload").process(new Processor() {
        public void process(Exchange exchange) throws Exception {
            MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
            multipartEntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
            multipartEntityBuilder.setContentType(ContentType.MULTIPART_FORM_DATA);

            String filename = (String) exchange.getIn().getHeader(Exchange.FILE_NAME);

            String filePath = (String) exchange.getIn().getHeader("filePath");
            String attachmentName = (String) exchange.getIn().getHeader("attachmentName");

            File file = new File(filePath);
            multipartEntityBuilder.addPart("upload",
                    new FileBody(file, ContentType.MULTIPART_FORM_DATA, attachmentName));
            exchange.getIn().setBody(multipartEntityBuilder.build());
        }
    }).removeHeaders("CamelHttp*").setHeader(Exchange.HTTP_METHOD, constant("POST")).recipientList()
            .simple("${header.url}")
...