12-14-2016 07:45 AM
Hi,
I have alfresco-5.0.a installed on a Ubuntu VPS. Now I want to transform various documents (e.g. docx, .xlsx) to PDF, but I get errors like
Transformer for 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' source mime type and 'application/pdf' target mime type was not found. Operation can't be performed
When I look at Available transform options | Alfresco Documentation it says application/vnd.openxmlformats-officedocument.spreadsheetml.sheet should be convertible to application/pdf.
/opt/alfresco-5.0.a/libreoffice/program/.soffice.bin is running on the VPS.
alfresco-global.properties contains following:
###############################
## Common Alfresco Properties #
###############################dir.root=/opt/Alfresco/alf_data
alfresco.context=alfresco
alfresco.host=127.0.0.1
alfresco.port=8080
alfresco.protocol=httpshare.context=share
share.host=127.0.0.1
share.port=8080
share.protocol=http### database connection properties ###
db.driver=org.postgresql.Driver
db.username=alfresco
db.password=XXX
db.name=alfresco
db.url=jdbcostgresql://localhost:5432/${db.name}# The server mode. Set value here
# UNKNOWN | TEST | BACKUP | PRODUCTION
system.serverMode=UNKNOWN### FTP Server Configuration ###
ftp.enabled=true
ftp.port=23### RMI service ports ###
alfresco.rmi.services.port=50500
avm.rmi.service.port=0
avmsync.rmi.service.port=0
attribute.rmi.service.port=0
authentication.rmi.service.port=0
repo.rmi.service.port=0
action.rmi.service.port=0
deployment.rmi.service.port=0### External executable locations ###
ooo.exe=/opt/Alfresco/libreoffice/program/soffice.bin
ooo.enabled=true
ooo.port=8100
img.root=/opt/alfresco-5.0.a/common
img.dyn=${img.root}/lib
img.exe=${img.root}/bin/convert
swf.exe=/opt/Alfresco/common/bin/pdf2swf
swf.languagedir=/opt/Alfresco/common/japanesejodconverter.enabled=true
jodconverter.officeHome=/opt/Alfresco/libreoffice
jodconverter.portNumbers=8100### Initial admin password ###
alfresco_user_store.adminpassword=XXX### E-mail site invitation setting ###
notification.email.siteinvite=false### License location ###
dir.license.external=/opt/alfresco-5.0.a### Solr indexing ###
index.subsystem.name=solr
dir.keystore=${dir.root}/keystore
solr.port.ssl=8443### BPM Engine ###
system.workflow.engine.jbpm.enabled=false### Allow extended ResultSet processing
security.anyDenyDenies=false
Thanks for your help!
03-22-2017 09:28 AM
these are the defaults (taken from https://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/projects/repository/config/al... 😞
content.transformer.OpenOffice.extensions.docx.pdf.maxSourceSizeKBytes=768
content.transformer.OpenOffice.extensions.doc.pdf.maxSourceSizeKBytes=10240
application/msword = .doc
!=
application/vnd.openxmlformats-officedocument.wordprocessingml.document = .docx
try adding
content.transformer.OpenOffice.extensions.docx.pdf.maxSourceSizeKBytes=10240
12-14-2016 05:52 PM
Hi
It is not recommended that you have both OOO and jodconverter enabled. Please try by disabling OOO.
Refer Configuring LibreOffice | Alfresco Documentation
Good luck.
Michael
12-14-2016 06:09 PM
Also, just a quick side-note: It looks like you are running 5.0.a. That is not a stable release. If you are just testing things out, okay, otherwise, you should upgrade. If you want/need to stay on 5.0.x, upgrade to 5.0.d.
12-15-2016 04:56 AM
Thanks for this information.
12-15-2016 02:42 AM
I wanted to send this in private but it appears there is no option of doing that, so I have trimmed some information from this post (think script kiddies).
If you are only using this server for proof of concept development and testing, then you can probably stop reading and ignore the rest of this post.
But if there is *any* chance of this machine becoming a live production system in future (or being used as the basis for one), then I would strongly recommend some security work and post edits are performed sooner rather than later (in my experience, later never happens, because security costs money).
1) Suggest remove your public IP address from your post - that information is 'need to know' generally.
2) Having 8080 on the end infers direct tomcat access since that is the default for alfresco (not to mention what you see if you go to the bare hostnameort - the default tomcat page). However, Tomcat is not a robust web server - not like apache or nginx - suggest you proxy through either of those as soon as possible. You can solve this and #3 and #4 below with a proxy web server config. [No flame wars, thanks - tomcat is fine as the app server but it definitely is not a robust web server in the security sense]
3) It appears that solr is enabled on that public interface (it prompted me to login and gave me access to your solr instance with the default client certificate...). Solr should be limited to localhost connections (tunnelling over ssh works fine, I do it often). Unless you have a cluster, I am not aware of any reason for solr to accept connections from anywhere but the local machine itself.
4) 'Plain text' (not SSL encrypted) port 8080 logins will expose the userid and password to every device between you and that server - suggest switch to forced https to limit who can see the logon details. In some countries the ISP may store this information indefinitely. In some (possible the same) countries, the ISP's are required by Law to store it *and* provide it to government upon request (and yes Australia is one of them, and yes, they share it).
5) Hopefully a firewall (at worst, ufw) is protecting the 'other tomcat ports', and/or you have changed the shutdown command to something new. If your alfresco instance stops 'randomly', this may explain why - it is trivial to do.
6) Maybe copy the service mimetype information here rather than provide a link directly to your alfresco server. I see there is Basic Auth logon in front of it so we are not able to see what is there anyway.
12-15-2016 04:56 AM
It's a development server and just for testing, but you are right. I removed the IP address.
12-15-2016 02:06 PM
Hey Brian - You should be able to send private messages to anyone who you follow (and follows you back). Just make that connection, and then you'll see the option.
12-15-2016 05:19 AM
For ooo.enabled=false / jodconverter.enabled=true I get following transformations at alfresco/service/mimetypes
Transformable From:
- application/vnd.apple.keynote = org.alfresco.repo.content.transform.AppleIWorksContentTransformer
- application/vnd.apple.numbers = org.alfresco.repo.content.transform.AppleIWorksContentTransformer
- application/vnd.apple.pages = org.alfresco.repo.content.transform.AppleIWorksContentTransformer
- image/tiff = Proxy via: com.sun.proxy.$Proxy18 (Version: ImageMagick 6.8.6-6 2014-01-08 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC Features: DPC Modules Delegates: freetype jng jpeg png ps tiff wmf zlib)
- text/csv = org.alfresco.repo.content.transform.TextToPdfContentTransformer
- text/xml = org.alfresco.repo.content.transform.TextToPdfContentTransformer
For ooo.enabled=true / jodconverter.enabled=false I achieve following transformations.
Transformable From:
- application/msword = Using a Direct Open Office Connection
- application/rtf = Using a Direct Open Office Connection
- application/vnd.apple.keynote = org.alfresco.repo.content.transform.AppleIWorksContentTransformer
- application/vnd.apple.numbers = org.alfresco.repo.content.transform.AppleIWorksContentTransformer
- application/vnd.apple.pages = org.alfresco.repo.content.transform.AppleIWorksContentTransformer
- application/vnd.ms-excel = Using a Direct Open Office Connection
- application/vnd.ms-excel.sheet.binary.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.ms-excel.sheet.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.ms-excel.template.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.ms-outlook = Complex via: text/plain
- application/vnd.ms-powerpoint = Using a Direct Open Office Connection
- application/vnd.ms-powerpoint.addin.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.ms-powerpoint.presentation.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.ms-powerpoint.slide.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.ms-powerpoint.template.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.ms-word.document.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.ms-word.template.macroenabled.12 = Using a Direct Open Office Connection
- application/vnd.oasis.opendocument.graphics = Using a Direct Open Office Connection
- application/vnd.oasis.opendocument.presentation = Using a Direct Open Office Connection
- application/vnd.oasis.opendocument.presentation-template = Using a Direct Open Office Connection
- application/vnd.oasis.opendocument.spreadsheet = Using a Direct Open Office Connection
- application/vnd.oasis.opendocument.spreadsheet-template = Using a Direct Open Office Connection
- application/vnd.oasis.opendocument.text = Using a Direct Open Office Connection
- application/vnd.oasis.opendocument.text-template = Using a Direct Open Office Connection
- application/vnd.openxmlformats-officedocument.presentationml.presentation = Using a Direct Open Office Connection
- application/vnd.openxmlformats-officedocument.presentationml.slide = Using a Direct Open Office Connection
- application/vnd.openxmlformats-officedocument.presentationml.template = Using a Direct Open Office Connection
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet = Using a Direct Open Office Connection
- application/vnd.openxmlformats-officedocument.spreadsheetml.template = Using a Direct Open Office Connection
- application/vnd.openxmlformats-officedocument.wordprocessingml.document = Using a Direct Open Office Connection
- application/vnd.openxmlformats-officedocument.wordprocessingml.template = Using a Direct Open Office Connection
- application/vnd.sun.xml.calc = Using a Direct Open Office Connection
- application/vnd.sun.xml.calc.template = Using a Direct Open Office Connection
- application/vnd.sun.xml.impress = Using a Direct Open Office Connection
- application/vnd.sun.xml.impress.template = Using a Direct Open Office Connection
- application/vnd.sun.xml.writer = Using a Direct Open Office Connection
- application/vnd.sun.xml.writer.template = Using a Direct Open Office Connection
- application/vnd.visio = Using a Direct Open Office Connection
- application/wordperfect = Using a Direct Open Office Connection
- image/tiff = Proxy via: com.sun.proxy.$Proxy18 (Version: ImageMagick 6.8.6-6 2014-01-08 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC Features: DPC Modules Delegates: freetype jng jpeg png ps tiff wmf zlib)
- text/csv = org.alfresco.repo.content.transform.TextToPdfContentTransformer
- text/html = Complex via: application/vnd.oasis.opendocument.text
- text/plain = Using a Direct Open Office Connection
- text/xml = org.alfresco.repo.content.transform.TextToPdfContentTransformer
Looks much better and most documents can be converted. But I still have troubles converting a "application/vnd.openxmlformats-officedocument.wordprocessingml.document" document to PDF:
11:15:47,866 ERROR [org.alfresco.web.ui.common.Utils] [http-apr-8080-exec-4] Failed to create content due to error: 11150094 Transformer for 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' source mime type and 'application/pdf' target mime type was not found. Operation can't be performed
org.alfresco.service.cmr.rule.RuleServiceException: 11150094 Transformer for 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' source mime type and 'application/pdf' target mime type was not found. Operation can't be performed
at org.alfresco.repo.action.executer.TransformActionExecuter.executeImpl(TransformActionExecuter.java:186)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:265)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:839)
at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl(CompositeActionExecuter.java:66)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:265)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:839)
at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:739)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:573)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:158)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy45.executeAction(Unknown Source)
at org.alfresco.repo.rule.RuleServiceImpl.executeAction(RuleServiceImpl.java:1250)
at org.alfresco.repo.rule.RuleServiceImpl.executeRule(RuleServiceImpl.java:1244)
at org.alfresco.repo.rule.RuleServiceImpl.executePendingRule(RuleServiceImpl.java:1190)
at org.alfresco.repo.rule.RuleServiceImpl.executePendingRulesImpl(RuleServiceImpl.java:1119)
at org.alfresco.repo.rule.RuleServiceImpl.executePendingRules(RuleServiceImpl.java:1092)
at org.alfresco.repo.rule.RuleTransactionListener.beforeCommit(RuleTransactionListener.java:57)
at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.doBeforeCommit(AlfrescoTransactionSupport.java:737)
at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.doBeforeCommit(AlfrescoTransactionSupport.java:717)
at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.beforeCommit(AlfrescoTransactionSupport.java:683)
at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:927)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:737)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:481)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:476)
at org.alfresco.web.bean.dialog.BaseDialogBean.finish(BaseDialogBean.java:129)
at org.alfresco.web.bean.dialog.DialogManager.finish(DialogManager.java:528)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
at javax.faces.component.UICommand.broadcast(UICommand.java:151)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:115)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:191)
at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:105)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:80)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:143)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.alfresco.repo.web.filter.beans.SessionSynchronizedFilter.doFilter(SessionSynchronizedFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:105)
at sun.reflect.GeneratedMethodAccessor535.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:125)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy300.doFilter(Unknown Source)
at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
at sun.reflect.GeneratedMethodAccessor535.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:125)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy300.doFilter(Unknown Source)
at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2378)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Unfortunately, I cannot upload this document due to NDA. It has 163 pages, contains text and images and is 6mb in size.
12-15-2016 11:11 AM
A complex document for a dev machine. Using sysinternals process explorer, how much memory does Word use when it has that same document open, as I would expect LO will need that much in addition to what alfresco needs, before swap becomes an issue.
Do you have a LibreOffice desktop machine to try opening the document and then see what memory it is using - or whether it can open such a complex document.
Or since it is a VPS maybe just double the memory and test again. And again if it still fails, complex docs take a mountain of ram.
I too have (funnily enough) a 160+ page complex engineering report (also NDA sorry everyone) that required me to up the conversion timeout (and file size limit) on my lowly atom server, but giving it more RAM helped.
Details here: https://community.alfresco.com/docs/DOC-6111-content-transformation-limits#w_transformerlimits
That said, it doesn't sound like you are getting a timeout - the log doesn't indicate that. And if memory was truly an issue then I would expect it to swap, leading to a timeout...
Have you altered the java commandline opts for Mx, Ms, etc? I would expect you will need to for such docs.
Does LO sit at 100% cpu for a while when this is happening? Are you able to time it or monitor it's memory use during that time? Especially any swap use of the machine at all.
One last thing: if you tail the logfile, how long after the document is uploaded before the log message is generated?
If instantaneous then it (maybe) infers an issue with alfresco, but if after a big delay with LO at 100% cpu then other factors are likely at play.
I'd start with doubling your RAM, or for your extremely complex documents, perhaps double it again, at least for testing. That, and ensuring the jvm can use it by checking the commandline Xmx values to start with.
Some info on that here JVM settings | Alfresco Documentation
Edit: typos, corrected link to the right JVM tuning guide for the OP alfresco version.
12-16-2016 02:45 AM
Memory can't be an issue, the VPS has 32GB and more than enough is free while converting. My LO at my desktop machine converts the document without problems.
When I save the document as application/msword it also gets converted without problems on the VPS.
The document is not that problematic, I am allowed to publish it: AAFALL 20161212 iD Research NEDERMAN.docx - Google Drive
Edit: Is there a LibreOffice specific log anywhere?
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.