Oracle® Fusion Middleware Developer's Guide for Imaging and Process Management 11g Release 1 (11.1.1) Part Number E12784-01 |
|
|
View PDF |
The following sample demonstrates the basic concepts discussed in this section:
Example 7-1 Sample Document Update
package devguidesamples; import java.io.FileOutputStream; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import javax.activation.DataHandler; import javax.activation.FileDataSource; import oracle.imaging.BasicUserToken; import oracle.imaging.Document; import oracle.imaging.DocumentContentService; import oracle.imaging.DocumentService; import oracle.imaging.ImagingException; import oracle.imaging.NameId; import oracle.imaging.RenderOptions; import oracle.imaging.RenderPage; import oracle.imaging.RenderResult; import oracle.imaging.Rendition; import oracle.imaging.Search; import oracle.imaging.SearchArgument; import oracle.imaging.SearchService; import oracle.imaging.SearchValue; import oracle.imaging.ServicesFactory; import oracle.imaging.TypedValue; import oracle.imaging.UserToken; public class UpdateDocumentSample { public static void main(String[] args) throws IOException { try { // try-catch UserToken credentials = new BasicUserToken("ipmuser", "ipmuserpwd"); ServicesFactory servicesFactory = ServicesFactory.login(credentials, Locale.US, "http://ipmhost:16000/imaging/ws"); try { // try-finally to ensure logout SearchService searchService = servicesFactory.getSearchService(); DocumentService docService = servicesFactory.getDocumentService(); DocumentContentService docContentService = servicesFactory.getDocumentContentService(); // The find the document with invoice number 1234 using the Invoices search List<SearchArgument> searchArguments = new ArrayList<SearchArgument>(); SearchValue searchValue = new SearchValue(SearchValue.Type.NUMBER, 1234); SearchArgument searchArgument = new SearchArgument("Invoice Number", searchValue); searchArgument.setOperatorValue(Search.Operator.EQUAL); searchArguments.add(searchArgument); Search.ResultSet resultSet = searchService.executeSavedSearch(new NameId("Invoices"), searchArguments); if (resultSet.getTotalResults() == 0) { System.out.println("Document not found"); } String documentId = resultSet.getResults().get(0).getDocumentId(); // update field values only. List<Document.FieldValue> fieldValues = new ArrayList<Document.FieldValue>(); fieldValues.add(new Document.FieldValue("Amount", new BigDecimal("99.95"))); docService.updateDocument(documentId, null, fieldValues, false); // update document content String fileName = "C:/PathToImages/NewInvoice1234.tif"; DataHandler fileData = new DataHandler(new FileDataSource(fileName)); String uploadToken = docContentService.uploadDocument(fileData, "invoice1234.tif"); docService.updateDocument(uploadToken, documentId, null, false); // update field values and document content at once fieldValues = new ArrayList<Document.FieldValue>(); fieldValues.add(new Document.FieldValue("Receive Date", new Date())); //now fileName = "C:/PathToImages/AnotherNewInvoice1234.tif"; fileData = new DataHandler(new FileDataSource(fileName)); uploadToken = docContentService.uploadDocument(fileData, "invoice1234.tif"); docService.updateDocument(uploadToken, documentId, fieldValues, false); } finally { if (servicesFactory != null) { servicesFactory.logout(); } } } catch (ImagingException e) { System.out.println(e.getMessage()); } } }