camel-cmis:检索从filenet传递元数据的文档

时间:2016-04-02 09:16:53

标签: apache-camel metadata cmis filenet-content-engine

自从一周以来,我一直在努力创建一条符合要求的驼峰路线。

  1. 使用Request键,路由查看filenet
  2. 如果在filenet中有密钥文档 - 它将被检索并发送到Portal
  3. 如果没有 - 请求将被发送到Outside WS,检索到的文档将存储在filenet中。
  4. 对于下一个相同的请求密钥,将根据元数据从文件网络检索文档并将其作为响应发送
  5. 以下是用于从文件网络中进行检索和存储的2个接口/驼峰路由

    存储文件

    from("activemq:queue:STORE_DOCUMENT_QUEUE")
    .process(new Processor() {
        public void process(Exchange exchange) throws Exception {
            exchange.getIn().getHeaders().put(PropertyIds.CONTENT_STREAM_MIME_TYPE, "application/pdf; charset=UTF-8");
            exchange.getIn().getHeaders().put(PropertyIds.NAME, exchange.getIn().getHeader(Exchange.FILE_NAME));
            exchange.getIn().getHeaders().put(CamelCMISConstants.CMIS_FOLDER_PATH, "/TEST");
        }
    })
    .to("cmis://${header.cmisUrl}");
    

    检索文档

    from("activemq:queue:RETRIEVE_DOCUMENT_QUEUE")
    .setBody(constant("SELECT * FROM cmis:document WHERE cmis:name LIKE '%requestkey%'"))
    .to("cmis://${header.cmisUrl}")
    .split(body())
    .process(new Processor() {
        public void process(Exchange exchange) throws Exception {
            Map<String, Object> body = (Map<String, Object>)exchange.getIn().getBody();
            exchange.getIn().getHeaders().put(Exchange.FILE_NAME, body.get(PropertyIds.NAME));
            exchange.getIn().setBody(body.get(CamelCMISConstants.CAMEL_CMIS_CONTENT_STREAM));
        }
    })
    .to("file:src/test");
    

    在上述路线中,没有/非常少的元数据信息...... 如果我需要按元数据搜索文档或使用元数据作为密钥存储到filenet文档。 示例:将包含以下键的文档存储为元数据并使用相同的方法进行检索 1.身份证号码 2.文件类型 3.收据日期

    有人可以告诉我在camel exchange中设置元数据的知识,或者使用元数据来存储和撤回文档吗?

0 个答案:

没有答案