cancel
Showing results for 
Search instead for 
Did you mean: 

Problema transformación OCR y ejecución regla.

magarcia_sm
Star Contributor
Star Contributor

Hola a todos,

Os cuento, tengo un proceso el cual consiste en digitalizar ciertos documentos que guardo en un espacio "subir_documentos" en formato TIFF, cuando un documento entra en ese espacio salta una regla que lo transforma a través de ABBYYOCR11 en un pdf, se guarda en "subir_documentos", se extraen algunos datos,  se guardan como metados y se borra el TIFF. Una vez hecho esto se firma el pdf y se mueve al espacio "revisar".

Ahora el problema. Esto estaba funcionando perfectamente con ABBYOCR9. Pero hemos adquirido una nueva licencia y con ABBYYOCR11 se dan los siguientes casos.

1. Después del proceso OCR sube un pdf vacío (0 KB) al espacio "subir_documentos".

2. Después del proceso OCR no sube nada al espacio "subir_documentos" (O si lo sube no se ejecuta la regla, pero no aparece ningún pdf)

3. En ocasiones realiza todo el proceso correctamente.

Estos casos ocurren aleatoria-mente. ¿Se deberá a algo relacionado con ABBYY y su configuración o más bien con Alfresco?

El comando que envío a ABBYYOCR es el más básico y funciona correctamente por que lo he probado directamente en la máquina.

     abbyyocr11 -if test.tiff -rl Spanish -f PDF -of test.pdf

Cuando el proceso falla no salta ningún error en el log.

¿Alguna idea que puede ser lo que está ocurriendo?

Muchas gracias!

1 ACCEPTED ANSWER

magarcia_sm
Star Contributor
Star Contributor

Buenos días,

Después de haber intentado todas las opciones y no dar con una solución, para no perder más tiempo hemos optado por migrar de Alfresco 3.0 a Alfresco 4.2, donde ya habíamos hecho pruebas y confirmado que todo funcionaba correctamente.

De todas formas muchas gracias por vuestra ayuda y consejos.

Un saludo.

View answer in original post

13 REPLIES 13

angelborroy
Community Manager Community Manager
Community Manager

Supongo que abbyocr11 tendrá algún parámetro para que sea más "verboso": hay algún problema con la ejecución de ese proceso.

Si estáis en Alfresco 5.0 (creo recordar que estabais en 4.2), quizá merezca la pena que te pases nuestro addon GitHub - keensoft/alfresco-simple-ocr: Simple OCR action for Alfresco

No requiere software licenciado y, cuando falla el proceso de OCR, escribe el detalle del error en el log.

En cualquier caso, el código fuente también te puede servir de referencia para 4.2

Hyland Developer Evangelist

Muchas gracias Angel,

Le echaré un vistazo al addon que me comentas. De todas formas en seguido peleando un poco con ABBYY y he conseguido sacar por pantalla el proceso y lo realiza correctamente. De lo que no me había dado cuenta es de un error que me estaba saliendo por la consola de Java que imagino que tendrá que ver.

{http://www.alfresco.org/ws/service/content/1.0}ContentFault:<ns1:errorCode>0</ns1:errorCode><ns1:message>Transaction silently rolled back because it has been marked as rollback-only</ns1:message>

  {http://xml.apache.org/axis/}exceptionNameSmiley Surprisedrg.alfresco.repo.webservice.content.ContentFault

  {http://xml.apache.org/axis/}stackTrace:

  at org.alfresco.repo.webservice.content.ContentWebService.write(ContentWebService.java:233)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)

  at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)

  at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)

  at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

  at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

  at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

  at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)

  at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)

  at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)

  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

  at java.lang.Thread.run(Unknown Source)

¿Y no hay un "caused by"?

Obviamente esto es un problema, pero ha sido provocado por otro.

Hyland Developer Evangelist

Adjunto el log completo.

¿Entonces estáis utilizando un applet para realizar el escaneo y el OCR?

Parece que lo único relevante es:

java.io.FileNotFoundException: http://52.49.78.232:8080/delagro/applets/META-INF/services/org.apache.xerces.xni.parser.XMLParserCon...

A lo mejor no está encontrando la configuración...

Hyland Developer Evangelist

Lo que me extraña es que a veces realice todo el proceso correctamente y otra veces no.

El escaneo lo realizamos con una applet, una vez subido el tiff a Alfresco en el espacio existe una regla que lanza un proceso, y uno de los pasos de ese proceso es transformar el tiff a pdf con ABBYYOCR.

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

        <bean id="transformer.Ocr.Tiff2Pdf" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformer" parent="baseContentTransformer">

                <property name="checkCommand">

                        <bean class="org.alfresco.util.exec.RuntimeExec">

                                <property name="commandMap">

                                        <map>

                                                <entry key=".*">

                                                        <value>/usr/local/bin/abbyyocr11</value>

                                                </entry>

                                        </map>

                                </property>

                                <property name="errorCodes">

                                        <value>1,2</value>

                                </property>

                        </bean>

                </property>

                <property name="transformCommand">

                        <bean class="org.alfresco.util.exec.RuntimeExec">

                                <property name="commandMap">

                                        <map>

                                                <entry key=".*">

                                                        <value>/usr/local/bin/abbyyocr11 -c -pi -if ${source} -f PDF -of ${target}</value>

                                                </entry>

                                        </map>

                                </property>

                                <property name="errorCodes">

                                        <value>1,2</value>

                                </property>

                        </bean>

                </property>

                <property name="explicitTransformations">

                        <list>

                                <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails" >

                                        <property name="sourceMimetype"><value>image/tiff</value></property>

                                        <property name="targetMimetype"><value>application/pdf</value></property>

                                </bean>

                        </list>

                </property>

        </bean>

</beans>

Échale un vistazo a esto Developing repo actions in Alfresco 5.1 | Programming and So

Creo que pueden ir por ahí los tiros.

Hyland Developer Evangelist

No creo que sea problema del código implementado, ya que con la versión 9 de AbbyyOCR funcionaba correctamente. Sobre lo que comentabas de que igual no está encontrado la configuración, estamos poniendo el archivo donde configuramos la transformación en ".../tomcat/shared/classes/alfresco/extension/ocr-transforms-context.xml", ¿Debería tal vez estar en ".../tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/ocr-transforms-context.xml"? Decir que la versión que estamos utilizando para esto es Alfresco 3 ya que es con la que tenemos la integración para el cliente y no la podemos cambiar.

Si estáis en Alfresco 3, todas las respuestas que hay arriba, en efecto, pueden no ser acertadas.

En cuanto a la configuración, las dos rutas que indicas son correctas, pero la primera es la recomendada. Así que yo descartaría también este supuesto.

Hyland Developer Evangelist