{"id":21311,"date":"2022-04-11T13:56:08","date_gmt":"2022-04-11T11:56:08","guid":{"rendered":"https:\/\/help.openbee.com\/open-bee-scan-capture\/knowledge-base\/how-to-guides\/scripts-in-capture\/case-studies\/writing\/export-writes-write-file-via-script-with-extra-write-in-file\/"},"modified":"2026-05-13T09:36:48","modified_gmt":"2026-05-13T07:36:48","slug":"export-writes-write-file-via-script-with-extra-write-in-file","status":"publish","type":"page","link":"https:\/\/help.openbee.com\/en\/open-bee-scan-capture\/knowledge-base\/how-to-guides\/scripts-in-capture\/case-studies\/writing\/export-writes-write-file-via-script-with-extra-write-in-file\/","title":{"rendered":"Export Writes: Write file via Script with extra Write-in file"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"Export&#xE9;critures:Fichierd'&#xE9;critureviaScriptavecextrafichierd'&#xE9;critures-Principe\">Principle<\/h1>\n\n<p>The purpose of this script is to generate an accounting entry file when exporting a batch. A second file (_extra) will also be generated with only the EUR entries<\/p>\n\n<h1 class=\"wp-block-heading\" id=\"Export&#xE9;critures:Fichierd'&#xE9;critureviaScriptavecextrafichierd'&#xE9;critures-Script\">Script<\/h1>\n\n<pre class=\"wp-block-code\"><code>\/*********************************************************\n* Variables to configure\n*********************************************************\/\nvar idxMultiOutput = \"DEVISE_INDEX\";\nvar value_multiOutput = \"EUR\";\nvar folderAEAlwaysExport = \"C:test\";\nvar folderAEExtraExport = \"C:test\";\nvar fileAEAlwaysExport = ACCOUNT_ENTRY.bundleId+'.csv';\nvar fileAEExtraExport = ACCOUNT_ENTRY.bundleId+'_extra.csv';\n\/*********************************************************\n*********************************************************\/\nvar getAccountType = function(line){\n    if(line.accountNumber != null &amp;&amp; line.accountNumber != \"\" &amp;&amp; line.genericAccountNumber != null &amp;&amp; line.genericAccountNumber != \"\")\n        return \"PersonalLine\";\n    if(line.accountNumber != null &amp;&amp; line.accountNumber != \"\"){\n        if(line.accountNumber.lastIndexOf(\"445\", 0) === 0)\n            return \"VATLine\";\n        return \"ChargeLine\";\n    }\n    return \"\";\n};\nvar buildLine = function(line, pParameters, ventilatedPlan, ventilatedLine){\n     \n    var result = \"\";\n     \n\tif(ACCOUNT_ENTRY.ledger != null)\n        result += ACCOUNT_ENTRY.ledger.code;\n\t\n    result += \";\";\n\t\n\tif(line.genericAccountNumber != null &amp;&amp; line.genericAccountNumber != \"\")\n        result += line.genericAccountNumber + \";\" + line.accountNumber;\n    else\n        result += line.accountNumber + \";\";\n\tresult += \";\";\n\tresult += ACCOUNT_ENTRY.date;\n\tresult += \";\";\n\tresult += getTextFromIndexInfo(getFirstIndexFromID(pParameters, \"DUE_DATE_INDEX\"));\n\tresult += \";\";\n\tresult += line.labelLine;\n\tresult += \";\";\n\tresult += getTextFromIndexInfo(getFirstIndexFromID(pParameters, \"MODE_DE_PAIEMENT_INDEX\"));\n\t\n\tif(ventilatedPlan != null &amp;&amp; ventilatedLine != null)\n\t\tresult += parseFloat(ventilatedLine.allocatedAmount).toFixed(2).replace('.', ',');\n\telse\n\t\tresult += parseFloat(line.amount).toFixed(2).replace('.', ',');\n\tresult += \";\";\n\tresult += getTextFromIndexInfo(getFirstIndexFromID(pParameters, \"DEVISE_INDEX\"));\n\tresult += \";\";\n\tresult += line.meaning == \"CREDIT\" ? \"C\" : \"D\";\n\tresult += \";\";\n\t\n\tif(ventilatedPlan != null &amp;&amp; ventilatedLine != null)\n\t\tresult += ventilatedPlan.code + \";\" + ventilatedLine.section.code + \";\"\/*Axe2*\/+\";\"\/*SectionanalytiqueAxe2*\/+\"\";\n\telse\n\t\tresult += \/*Axe1*\/\";\"\/*SectionanalytiqueAxe1*\/+\";\"\/*Axe2*\/+\";\"\/*SectionanalytiqueAxe2*\/+\"\";\n\t\n\tresult += \";\";\n\t\n\tif(ventilatedPlan != null &amp;&amp; ventilatedLine != null)\n\t\tresult += \"A\";\n\telse if(getAccountType(line) == \"PersonalLine\")\n\t\tresult += \"X\";\n\telse\n\t\tresult += \"G\";\n\t\n\tresult += \";\";\n\tresult += \"FF\";\n\tresult += \";\";\n\tresult += getTextFromIndexInfo(getFirstIndexFromID(pParameters, \"INVOICE_NUMBER_INDEX\"));\n\tresult += \";\";\n\tresult += \"http:\/\/127.0.0.1\/previewDocument\/idDocument\/11171\" + ID_DMS;\n    result +=\"n\";\n    return result;\n};\nvar buildAnalyticLinesLine = function(line, pParameters){\n\tif(line.analyticalBreakdown == null \n\t\t|| line.analyticalBreakdown.ventilatedPlanList == null \n\t\t|| line.analyticalBreakdown.ventilatedPlanList.length &lt;= 0)\n\t\treturn \"\";\n\t\n\tvar generatedLine = \"\";\n\t\n\tfor(var p=0;p &lt; line.analyticalBreakdown.ventilatedPlanList.length;p++){\n\t\t\n\t\tvar ventilatedPlan = line.analyticalBreakdown.ventilatedPlanList&#91;p];\n\t\t\n\t\tif(ventilatedPlan.lines != null &amp;&amp; ventilatedPlan.lines.length &gt; 0){\n\t\t\t\n\t\t\tfor(var l=0;l &lt; ventilatedPlan.lines.length;l++){\n\t\t\t\t\n\t\t\t\tvar abLine = ventilatedPlan.lines&#91;l];\n\t\t\t\t\n\t\t\t\tif(abLine.section != null)\n\t\t\t\t\tgeneratedLine += buildLine(line, pParameters, ventilatedPlan.plan , abLine);\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn generatedLine;\n};\nvar buildLineWrapper = function(line, pParameters){\n\treturn buildLine(line, pParameters, null, null)\n\t\t+ buildAnalyticLinesLine(line, pParameters);\n};\nvar exportFile = function(exportFolder, finalFileName, aeExport, writeExport){\n    var finalPathFile = exportFolder + \"\" + finalFileName;\n\t\n\tif(ACCOUNT_ENTRY_NUMBER == 1)\/\/ delete file in case of reexport\n\t\tJSE_File.deleteFile(finalPathFile);\n\t\n\tif(!writeExport)\n\t\treturn;\n\t\n\tvar existingFiles = JSE_File.getFiles(exportFolder);\n\tvar nFileContent;\n\t\n\tif(existingFiles.indexOf(finalPathFile) == -1)\n        nFileContent = \"Journal;CompteGeneral;CompteTiers;DateComptable;Dateecheance;Libelle;Modepaiement;Montant;Devise;Sens;Axe1;SectionanalytiqueAxe1;Axe2;SectionanalytiqueAxe2;Typeecriture;Typepiece;Rerefencepiece;UrlDMSn\";\n    else\n\t\tnFileContent = JSE_File.readFile(finalPathFile);\n\t\n\tnFileContent += aeExport;\n\t\n    JSE_File.writeFile(finalPathFile, nFileContent);\n\t\n\tJSE_File.addLogMessage(\"Ecriture export\u00e9 : \" + finalPathFile);\n};\n\/*********************************************************************************\n*********************************************************************************\/\nif(ACCOUNT_ENTRY != null &amp;&amp; ACCOUNT_ENTRY.lines != null){\n\t\n    var aeExport = \"\";\n    for(var i=0;i&lt;ACCOUNT_ENTRY.lines.length;i++)\n\t\taeExport += buildLineWrapper(ACCOUNT_ENTRY.lines&#91;i], pParameters);\n\t\n\t\/\/ Standard Export\n\texportFile(folderAEAlwaysExport, fileAEAlwaysExport, aeExport, true);\n\t\n\t\/\/ Extra Export\n\tvar doExtraExport = getTextFromIndexInfo(getFirstIndexFromID(pParameters, idxMultiOutput)) == value_multiOutput;\n\texportFile(folderAEExtraExport, fileAEExtraExport, aeExport, doExtraExport);\n\t\n    return true;\n}\nreturn false;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Principle The purpose of this script is to generate an accounting entry file when exporting a batch. A second file (_extra) will also be generated with only the EUR entries Script<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":21274,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/ob-help-products.php","meta":{"footnotes":""},"class_list":["post-21311","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages\/21311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/comments?post=21311"}],"version-history":[{"count":1,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages\/21311\/revisions"}],"predecessor-version":[{"id":21312,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages\/21311\/revisions\/21312"}],"up":[{"embeddable":true,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages\/21274"}],"wp:attachment":[{"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/media?parent=21311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}