Documentation Module

Bonjour,

Je n’arrive pas à générer la documentation pdf de mon module
voici mes erreurs:

2018-08-09 14:56:37,305 ERROR [com.simplicite.objects.System.Module] SIMPLICITE|http://partenor.simplicite.io:10468||ERROR|designer|com.simplicite.objects.System.Module|pdfDoc||Event: Unable to generate module’s PDF documentation
com.simplicite.util.exceptions.MethodException: Error generating module PDF documentation
at com.simplicite.objects.System.Module.buildPdfDoc(Module.java:1052)
at com.simplicite.objects.System.Module.pdfDoc(Module.java:1063)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.simplicite.util.engine.ObjectManager.invokePrint(ObjectManager.java:3512)
at com.simplicite.util.ObjectDirect.invokePrint(ObjectDirect.java:724)
at com.simplicite.util.ObjectDB.invokePrint(ObjectDB.java:1654)
at com.simplicite.util.ScriptedObjectDB.invokePrint(ScriptedObjectDB.java:985)
at com.simplicite.util.PrintTemplate.fillWithCurrentObject(PrintTemplate.java:1233)
at com.simplicite.webapp.ObjectPrint.printone(ObjectPrint.java:326)
at com.simplicite.webapp.ObjectPrint.print(ObjectPrint.java:288)
at com.simplicite.webapp.servlets.ui.BusinessObjectServlet.service(BusinessObjectServlet.java:458)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:112)
at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at com.simplicite.tomcat.valves.APISessionValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2018-08-09 14:56:37,304 ERROR [com.simplicite.util.tools.PDFTool] SIMPLICITE|http://partenor.simplicite.io:10468||ECORED0001|system|com.simplicite.util.tools.PDFTool|build||Error PDF build error
java.lang.NullPointerException
at com.simplicite.objects.System.ModuleDocGenerator.addScripts(ModuleDocGenerator.java:788)
at com.simplicite.objects.System.ModuleDocGenerator.sectionObjInternal(ModuleDocGenerator.java:650)
at com.simplicite.objects.System.ModuleDocGenerator.chapterModule(ModuleDocGenerator.java:353)
at com.simplicite.objects.System.ModuleDocGenerator.buildContent(ModuleDocGenerator.java:209)
at com.simplicite.util.tools.PDFTool.build(PDFTool.java:137)
at com.simplicite.objects.System.ModuleDocGenerator.process(ModuleDocGenerator.java:170)
at com.simplicite.objects.System.Module.buildPdfDoc(Module.java:1051)
at com.simplicite.objects.System.Module.pdfDoc(Module.java:1063)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.simplicite.util.engine.ObjectManager.invokePrint(ObjectManager.java:3512)
at com.simplicite.util.ObjectDirect.invokePrint(ObjectDirect.java:724)
at com.simplicite.util.ObjectDB.invokePrint(ObjectDB.java:1654)
at com.simplicite.util.ScriptedObjectDB.invokePrint(ScriptedObjectDB.java:985)
at com.simplicite.util.PrintTemplate.fillWithCurrentObject(PrintTemplate.java:1233)
at com.simplicite.webapp.ObjectPrint.printone(ObjectPrint.java:326)
at com.simplicite.webapp.ObjectPrint.print(ObjectPrint.java:288)
at com.simplicite.webapp.servlets.ui.BusinessObjectServlet.service(BusinessObjectServlet.java:458)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:112)
at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at com.simplicite.tomcat.valves.APISessionValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

Ok on parle de ici de la doc “legacy” en format PDF, on va regarder si on reproduit le pb mais sachez qu’il existe aujourd’hui d’autres mécanismes plus modernes et beaucoup plus flexibles basés sur Markdown qui permettent de publier une documentation en format HTML (Menu “Documentation”). Un exemple dans la démo:

Cela produit une documentation du type:

Avec un source Markdown incluant des balises de substitution du type:

![Logo](https://www.simplicite.io/resources/logos/logo250.png)
* * *

This document describes the business model of the **demo** order management application.

Business objects
================

This is the application's business model:

![]([MODEL:DemoObjects])

[OBJECTDOC:DemoSupplier]

[OBJECTDOC:DemoProduct]

[OBJECTDOC:DemoClient]

[OBJECTDOC:DemoOrder]

[OBJECTDOC:DemoContact]

State models workflows
======================

Orders
------

Orders go thru the following state model:

![]([MODEL:DemoOrderStates])

Activity workflows
==================

Order entry
-----------

The order entry workflow has the following model:

![]([MODEL:DemoWorkflow])

[PROCESSDOC:DemoOrderCreate]

Profiles
========

The application's user profiles are:

![]([MODEL:DemoUsers])

Je peux créer un document de type PDF avec un MarkDown ?

J’ai essayé d’en faire un simple en me basant sur le code du markdown de Demo
Par contre, l’URL est en read only, comment le remplir sans changer le paramétrage du champ ?
et si je clique sur View, je n’obtient rien …
Voici mon objet et mon code
md_code

Le bouton View permet d’avoir un preview du doc, exemple sur la demo:


Ca ne marche pas dans votre cas ?

Sinon vous pouvez aussi ajouter un raccourci comme dans le démo (DemoDoc)

NB: sur le module Demo la doc legacy PDF doc se génère sans erreur

Je pense qu’il y a quelque chose de particulier dans votre module qui cause le pb, pouvez vous me communiquer en message direct les infos de connexion à votre instance? Merci

Après test depuis une instance vierge, ça fonctionne sur l’instance vierge après avoir importer mon module mais pas sur mon instance …
Je ne sais pas pourquoi

Vos 2 instances sont elles sur la même branche et sur la même version de la plateforme ?

Si oui vous avez dû modifier des paramétrages système sur l’instance où ça ne marche pas, du coup on doit tomber dans un cas non prévu…

Quel type de paramètre système influe sur l’impression de la documentation ?

Par exemple l’absence de droits de votre utilisateur sur les objets système utilisés pour la publication PDF peut provoquer des erreurs. Mais il peut y avoir une infinité d’autres raisons…

J’essaye de créer la documentation depuis l’utilisateur designer, a qui je n’ai fait qu’ajouter les groupes que j’ai créer pour mon application, je n’ai pas retirer de droit déja existant
Je viens de me rendre compte que l’instance vierge est sur la master et non pas sur la release (donc en P21b)

Faites le test sur une instance vierge calée sur la même branche sinon le test n’a pas beaucoup de sens (pour info, à date d’aujourd’hui entre la release P20 et le head de la branche master il y a déjà eu pas moins de 126 commits).

Je me doute bien

Sur une release vierge P20 (comme mon instance de travail) la documentation fonctionne.
Je viens d’ailleurs de me rendre compte que sur mon instance de travail comme il n’arrive pas à faire de prévisualisation il télécharge directement un fichier pdf (qui fait 0 ko) alors que ce n’est pas ce qui se passe lorsque je crée la documentation depuis l’instance vierge.

De plus la documentation a fonctionné alors que je n’ai pas importer le module, je suppose que vous la créer depuis le fichier enregistrer sur le module ?

OK donc c’est bien un pb sur votre instance. En regardant le code à l’endroit où se produit l’erreur de votre stacktrace (PDF generation error) je ne vois guère qu’un pb de droits (notamment sur l’objet système Resource).

Par contre je ne comprends pas ce que vous voulez dire par “la documentation a fonctionné alors que je n’ai pas importer le module” ?

J’ai créer un Module avec le bon nom, j’ai ajouté dans File le fichier zip avec le module, mais je n’ai pas cliquer sur l’action “Import module”, j’ai seulement actionner “Documentation”

Dans les resource j’ai utilisé des icones pour un shortcut ou pour des field, est ce qu’il faut mettre des droits particuliers ?

OK tant que le module n’est pas importé il n’y a pas grand chose à publier dans votre PDF…

A noter que les imports/exports manuels XML ou ZIP de modules sont un peu old school, aujourd’hui on privilégie plutôt les mécanismes Git des modules, mais bon ça marche en mode manuel

Je parle bien des droits de votre user sur l’objet système Resource

Effectivement il ne fait que 3 pages dont deux “vides” (avec juste les titres), mais au moins j’ai un vrai fichier pdf, pas quelque chose qui fait 0 ko

Importez votre module et on verra s’il y a le pb… no ball no problem