+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
- <process id="prociXbusDossier" name="Transmission d'actes à iXbus" isExecutable="true">
- <startEvent id="startiXbusDossier" name="Démarrage workflow iXbus dossier">
- <extensionElements>
- <activiti:formProperty id="nodeRef" name="Référence document principal à envoyer" type="string" required="true"></activiti:formProperty>
- <activiti:formProperty id="refDossier" name="Référence dossier Alfresco à envoyer" type="string" required="true"></activiti:formProperty>
- <activiti:formProperty id="typeGed" name="Type Alfresco" type="string" required="true"></activiti:formProperty>
- </extensionElements>
- </startEvent>
- <scriptTask id="scriptEnvoyer" name="Envoi vers iXbus" scriptFormat="javascript" activiti:autoStoreVariables="false">
- <script>logger.info("scriptEnvoyer IN");
-var lst = java.util.ArrayList();
-var xmlAtt = utils.createXmlAttachment(actID, actNature, matiere, subject);
-xmlAtt.setName(utils.replaceFileExtension(uniqueFileName, ".xml"));
-pjAttachment.setName(utils.replaceFileExtension(uniqueFileName, ".pj"));
-lst.add(xmlAtt);
-lst.add(pjAttachment);
-logger.info("-> fichier n° 1 : " + xmlAtt.getName());
-logger.info("-> fichier n° 2 : " + pjAttachment.getName());
-//TODO enregistrement suivant à enlever
-utils.saveAttachment(xmlAtt);
-//TODO enregistrement suivant à enlever
-utils.saveAttachment(pjAttachment);
-ixbus.envoyer(lst);
-execution.setVariable("xmlAttachment", xmlAtt);
-execution.setVariable("dateEnvoi", new java.util.GregorianCalendar());
-logger.info("scriptEnvoyer OUT");
- </script>
- </scriptTask>
- <endEvent id="endeventiXbusDossier" name="Fin workflow iXbus dossier"></endEvent>
- <scriptTask id="scriptRecevoirAck" name="Reception AR iXbus" scriptFormat="javascript" activiti:autoStoreVariables="false">
- <script>logger.info("scriptRecevoirAck IN");
-logger.info("Reception AR fichier " + xmlAttachment.getName());
-ixbus.setUp();
-var varAck = ixbus.recevoirAck(xmlAttachment.getName());
-if (varAck.isRecu()) {
- logger.info("Reception AR OK");
-} else {
- logger.info("AR ou anomalie non disponible");
-}
-execution.setVariable("ack", varAck);
-logger.info("scriptRecevoirAck OUT");
-</script>
- </scriptTask>
- <sequenceFlow id="flowEnd" name="AR disponible" sourceRef="scriptRecevoirAck" targetRef="scriptVisuelReception">
- <conditionExpression xsi:type="tFormalExpression"><![CDATA[${ack.isRecu()}]]></conditionExpression>
- </sequenceFlow>
- <scriptTask id="scriptTest" name="Test connexion iXbus" scriptFormat="javascript" activiti:autoStoreVariables="false">
- <script>logger.info("scriptTest IN");
-ixbus.setUp();
-ixbus.test();
-logger.info("scriptTest OUT");</script>
- </scriptTask>
- <sequenceFlow id="flow10" sourceRef="scriptTest" targetRef="scriptEnvoyer"></sequenceFlow>
- <scriptTask id="scriptGetCmisFolder" name="Chargement dossier CMIS" scriptFormat="javascript" activiti:autoStoreVariables="false">
- <script>logger.info("scriptGetCmisFolder IN");
-logger.info("Chargement document CMIS " + url);
-serviceCMIS.createSession();
-var doc = serviceCMIS.getDocument(url);
-//Si le document a l'aspect "archiveRm", il est possible d'envoyer l'original en module RM au TdT ou bien le visuel PDF
-if(doc.hasAspect("P:mbdx:archiveRm") && typeGed == "delib" && serviceDelib.isSendOriginalToTDT()) {
- var refArchiveRmString = doc.getProperty("mbdx:refArchiveRmString").getValue();
- doc = serviceCMIS.getDocument(refArchiveRmString);
-}
-var contentStream = doc.getContentStream();
-var varMimetype = contentStream.getMimeType();
-execution.setVariable("mimetype", varMimetype);
-var inputStream = contentStream.getStream();
-var filename = contentStream.getFileName();
-var uniqueFileName = utils.getUniqueFileName(filename);
-var xmlFilename = utils.replaceFileExtension(uniqueFileName, ".xml")
-logger.info("Création pièce jointe " + uniqueFileName);
-var pjAttachment = utils.createPjFromStream(inputStream, uniqueFileName);
-logger.info("Pièce jointe OK");
-execution.setVariable("filename", filename);
-execution.setVariable("uniqueFileName", xmlFilename);
-execution.setVariable("pjAttachment", pjAttachment);
-execution.setVariable("docId", url);
-
-// AJOUT BULL 20131007 - Si le document n'a pas l'aspect "mbdx:accuseReceptionTdT", on l'ajoute...
-if(!doc.hasAspect("P:mbdx:accuseReceptionTdT")) {
- serviceCMIS.addAspect(doc, "P:mbdx:accuseReceptionTdT");
-
- // ... et on positionne les métadonnées statut, date d'envoi et id du doc transmis.
- var dateEnvoi = new java.util.GregorianCalendar();
- var prop = new java.util.HashMap();
- prop.put("mbdx:statutTDT", "En cours");
- prop.put("mbdx:dateEnvoi", dateEnvoi);
- prop.put("mbdx:idDocTransmis", actID);
- serviceCMIS.updateProperties(doc, prop);
- logger.info("Document CMIS en cours d'envoi au TdT");
-}
-logger.info("scriptGetCmisFolder OUT");
-</script>
- </scriptTask>
- <sequenceFlow id="flow12" sourceRef="scriptGetCmisFolder" targetRef="scriptTest"></sequenceFlow>
- <intermediateCatchEvent id="timerRecevoirAck" name="Timer d'interrogation iXbus">
- <timerEventDefinition>
- <timeDuration>PT30S</timeDuration>
- </timerEventDefinition>
- </intermediateCatchEvent>
- <sequenceFlow id="flow19" sourceRef="scriptEnvoyer" targetRef="scriptVisuelEnvoi"></sequenceFlow>
- <sequenceFlow id="flowRecevoirAck" sourceRef="timerRecevoirAck" targetRef="scriptRecevoirAck"></sequenceFlow>
- <sequenceFlow id="flowTimerRecevoirAck" name="AR non disponible" sourceRef="scriptRecevoirAck" targetRef="timerRecevoirAck">
- <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!ack.isRecu()}]]></conditionExpression>
- </sequenceFlow>
- <scriptTask id="scriptArchiveAR" name="Archivage AR iXbus" scriptFormat="javascript" activiti:autoStoreVariables="false">
- <script>logger.info("scriptArchiveAR IN");
-logger.info("Archivage AR iXbus dans le dossier Alfresco " + refDossier);
-//TODO enregistrement suivant à enlever (uniquement destiné au débogage)
-utils.saveAttachment(ack.getAttachment());
-var idRetour = utils.getIDActe(ack.getAttachment());
-serviceCMIS.createSession();
-var folder = serviceCMIS.getFolder(refDossier);
-if (docId == undefined || docId == null) {
- var content = utils.unzipAttachment(pjAttachment);
- var doc = serviceCMIS.createDocument(folder, filename, content, mimetype);
- var docId = doc.getId();
-} else {
- var doc = serviceCMIS.getDocument(docId);
-}
-var name = utils.replaceFileExtension(filename, ".xml");
-var statut = ack.getStatut().value();
-if (statut == "ACK") {
- name = "AR TdT " + name;
- var statutTDT = "AccuseReceptionRecu";
-} else {
- name = "Anomalie TdT " + name;
- var statutTDT = "Anomalie";
-}
-var dateReception = new java.util.GregorianCalendar();
-var ackContent = utils.removeZeroBytes(ack.getAttachment().getContent());
-var prop = new java.util.HashMap();
-prop.put("cmis:objectTypeId", "D:mbdx:documentMDB,P:mbdx:accuseReceptionTdT,P:mbdx:statutAspect,P:mbdx:ducGed");
-prop.put("cmis:name", name);
-var docAR = serviceCMIS.createDocument(folder, name, ackContent, "text/xml", prop);
-prop.clear();
-prop.put("mbdx:statutDocument", "A archiver");
-prop.put("mbdx:typeDocument", "Annexe");
-prop.put("mbdx:communicabilite", "Oui");
-prop.put("mbdx:idDocTransmis", actID);
-prop.put("mbdx:statutTDT", statutTDT);
-prop.put("mbdx:dateEnvoi", tableauRecapitulatif.getDateEnvoi());
-prop.put("mbdx:dateReception", tableauRecapitulatif.getDateReception());
-prop.put("mbdx:idRetour", tableauRecapitulatif.getIdAR());
-serviceCMIS.updateProperties(docAR, prop);
-logger.info("AR TdT enregistré");
-serviceCMIS.addAspect(doc, "P:mbdx:accuseReceptionTdT");
-prop.clear();
-prop.put("mbdx:idDocTransmis", actID);
-prop.put("mbdx:statutTDT", statutTDT);
-prop.put("mbdx:dateEnvoi", tableauRecapitulatif.getDateEnvoi());
-prop.put("mbdx:dateReception", tableauRecapitulatif.getDateReception());
-prop.put("mbdx:idRetour", tableauRecapitulatif.getIdAR());
-prop.put("mbdx:executoire", "Retour Préfecture");
-serviceCMIS.updateProperties(doc, prop);
-logger.info("scriptArchiveAR OUT");</script>
- </scriptTask>
- <sequenceFlow id="flow20" sourceRef="scriptArchiveAR" targetRef="endeventiXbusDossier"></sequenceFlow>
- <scriptTask id="scriptVisuelEnvoi" name="Mise à jour visuel PDF suite à l'envoi" scriptFormat="javascript" activiti:autoStoreVariables="false">
- <script>logger.info("scriptVisuelEnvoi IN");
-logger.debug("Pour le moment on ne gère que le cas des délibérations");
-if (typeGed.equals("delib") && docId != undefined && docId != null) {
- serviceCMIS.createSession();
- var doc = serviceCMIS.getDocument(docId);
- var tableauRecapitulatifLocal = servicePDF.createTableau();
- serviceCMIS.remplirTableauEnvoiTdT(tableauRecapitulatifLocal, doc);
- tableauRecapitulatifLocal.setDateEnvoi(new java.util.GregorianCalendar());
- var signature = parapheurService.getImageSignature(tableauRecapitulatifLocal.getNomSignataire());
- tableauRecapitulatifLocal.setSignature(signature);
- execution.setVariable("tableauRecapitulatif", tableauRecapitulatifLocal);
- logger.debug("On génère le nouveau document PDF");
- var pjContent = utils.unzipAttachment(pjAttachment);
- var newContent = servicePDF.ecrireTableauRecapitulatif(pjContent, tableauRecapitulatifLocal, false);
- execution.setVariable("content", newContent);
- logger.debug("Enregistrement du nouveau visuel PDF");
- var stream = new java.io.ByteArrayInputStream(newContent);
- var contentStream = serviceCMIS.createContentStream(filename, newContent.length, mimetype, stream);
- doc.setContentStream(contentStream, true);
-}
-logger.info("scriptVisuelEnvoi OUT");
-</script>
- </scriptTask>
- <sequenceFlow id="flow22" sourceRef="scriptVisuelEnvoi" targetRef="timerRecevoirAck"></sequenceFlow>
- <scriptTask id="scriptVisuelReception" name="Mise à jour visuel PDF suite à l'AR" scriptFormat="javascript" activiti:autoStoreVariables="false">
- <script>logger.info("scriptVisuelReception IN");
-logger.debug("Pour le moment on ne gère que le cas des délibérations");
-if (typeGed.equals("delib") && ack.getStatut().value() == "ACK") {
- tableauRecapitulatif.setDateReception(new java.util.GregorianCalendar());
- tableauRecapitulatif.setIdAR(utils.getIDActe(ack.getAttachment()));
- logger.debug("On génère le nouveau document PDF");
- var newContent = servicePDF.ecrireTableauRecapitulatif(content, tableauRecapitulatif, false);
- logger.debug("Enregistrement du nouveau visuel PDF");
- serviceCMIS.createSession();
- var doc = serviceCMIS.getDocument(docId);
- var stream = new java.io.ByteArrayInputStream(newContent);
- var contentStream = serviceCMIS.createContentStream(filename, newContent.length, mimetype, stream);
- doc.setContentStream(contentStream, true);
-}
-logger.info("scriptVisuelReception OUT");
-</script>
- </scriptTask>
- <sequenceFlow id="flow23" sourceRef="scriptVisuelReception" targetRef="scriptArchiveAR"></sequenceFlow>
- <sequenceFlow id="flow24" sourceRef="startiXbusDossier" targetRef="scriptGetCmisFolder"></sequenceFlow>
- </process>
- <bpmndi:BPMNDiagram id="BPMNDiagram_prociXbusDossier">
- <bpmndi:BPMNPlane bpmnElement="prociXbusDossier" id="BPMNPlane_prociXbusDossier">
- <bpmndi:BPMNShape bpmnElement="scriptRecevoirAck" id="BPMNShape_scriptRecevoirAck">
- <omgdc:Bounds height="55.0" width="121.0" x="508.0" y="242.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="scriptEnvoyer" id="BPMNShape_scriptEnvoyer">
- <omgdc:Bounds height="55.0" width="122.0" x="448.0" y="40.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="scriptTest" id="BPMNShape_scriptTest">
- <omgdc:Bounds height="55.0" width="124.0" x="288.0" y="40.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="timerRecevoirAck" id="BPMNShape_timerRecevoirAck">
- <omgdc:Bounds height="35.0" width="35.0" x="645.0" y="162.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="scriptArchiveAR" id="BPMNShape_scriptArchiveAR">
- <omgdc:Bounds height="55.0" width="121.0" x="131.0" y="242.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="scriptVisuelEnvoi" id="BPMNShape_scriptVisuelEnvoi">
- <omgdc:Bounds height="55.0" width="122.0" x="601.0" y="40.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="scriptVisuelReception" id="BPMNShape_scriptVisuelReception">
- <omgdc:Bounds height="55.0" width="122.0" x="292.0" y="242.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="scriptGetCmisFolder" id="BPMNShape_scriptGetCmisFolder">
- <omgdc:Bounds height="55.0" width="121.0" x="130.0" y="40.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="startiXbusDossier" id="BPMNShape_startiXbusDossier">
- <omgdc:Bounds height="35.0" width="35.0" x="50.0" y="50.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="endeventiXbusDossier" id="BPMNShape_endeventiXbusDossier">
- <omgdc:Bounds height="35.0" width="35.0" x="50.0" y="252.0"></omgdc:Bounds>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10">
- <omgdi:waypoint x="412.0" y="67.0"></omgdi:waypoint>
- <omgdi:waypoint x="448.0" y="67.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
- <omgdi:waypoint x="251.0" y="67.0"></omgdi:waypoint>
- <omgdi:waypoint x="288.0" y="67.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow19" id="BPMNEdge_flow19">
- <omgdi:waypoint x="570.0" y="67.0"></omgdi:waypoint>
- <omgdi:waypoint x="583.0" y="69.0"></omgdi:waypoint>
- <omgdi:waypoint x="601.0" y="67.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flowRecevoirAck" id="BPMNEdge_flowRecevoirAck">
- <omgdi:waypoint x="662.0" y="197.0"></omgdi:waypoint>
- <omgdi:waypoint x="662.0" y="269.0"></omgdi:waypoint>
- <omgdi:waypoint x="629.0" y="269.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flowTimerRecevoirAck" id="BPMNEdge_flowTimerRecevoirAck">
- <omgdi:waypoint x="568.0" y="242.0"></omgdi:waypoint>
- <omgdi:waypoint x="568.0" y="179.0"></omgdi:waypoint>
- <omgdi:waypoint x="645.0" y="179.0"></omgdi:waypoint>
- <bpmndi:BPMNLabel>
- <omgdc:Bounds height="14.0" width="87.0" x="-26.0" y="-21.0"></omgdc:Bounds>
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flowEnd" id="BPMNEdge_flowEnd">
- <omgdi:waypoint x="508.0" y="269.0"></omgdi:waypoint>
- <omgdi:waypoint x="414.0" y="269.0"></omgdi:waypoint>
- <bpmndi:BPMNLabel>
- <omgdc:Bounds height="14.0" width="66.0" x="-34.0" y="-23.0"></omgdc:Bounds>
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow20" id="BPMNEdge_flow20">
- <omgdi:waypoint x="131.0" y="269.0"></omgdi:waypoint>
- <omgdi:waypoint x="85.0" y="269.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow22" id="BPMNEdge_flow22">
- <omgdi:waypoint x="662.0" y="95.0"></omgdi:waypoint>
- <omgdi:waypoint x="662.0" y="162.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow23" id="BPMNEdge_flow23">
- <omgdi:waypoint x="292.0" y="269.0"></omgdi:waypoint>
- <omgdi:waypoint x="252.0" y="269.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24">
- <omgdi:waypoint x="85.0" y="67.0"></omgdi:waypoint>
- <omgdi:waypoint x="130.0" y="67.0"></omgdi:waypoint>
- </bpmndi:BPMNEdge>
- </bpmndi:BPMNPlane>
- </bpmndi:BPMNDiagram>
-</definitions>
\ No newline at end of file