For journal entries, there are various alternatives.
Get My Report
There is a pre-packaged solution on Get My Report. From the menu choose: Upload boekingen . The documentation is available at how to upload journal entries
Invantive SQL
The code used by this Get My Report function can also be used for inspiration and runs on any Invantive SQL platform. It is attached as gmr-eol-upload-excel-sheet-transaction-line-entries.sql. The essential part is:
create or replace table xmlupload@inmemorystorage
as
select 'GLTransactions' topic
, division_code
, null orig_system_reference
, :orig_system_group orig_system_group
, xmlformat
( '<?xml version="1.0" encoding="utf-8"?>'
|| '<eExact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="eExact-XML.xsd">'
|| xmlcomment('For division ' || division_code)
|| xmlcomment('Original system group ' || :orig_system_group)
|| '<GLTransactions>'
|| xml
|| '</GLTransactions>'
|| '</eExact>'
)
filecontents
from ( select division_code
, listagg
( head
|| lines
|| '</GLTransaction>'
, ''
)
xml
from ( select brl.division_code
, brl.head
, listagg(brl.line, '') lines
from sourcelinesxml@inmemorystorage brl
group
by brl.head
, brl.division_code
)
group
by division_code
)
;
--
-- Upload into Exact Online.
--
insert into UploadXMLTopics@eol
( topic
, payload
, division_code
, orig_system_reference
, orig_system_group
, fragment_payload_flag
, fragment_max_size_characters
, fail_on_error
)
select topic
, filecontents
, to_char(division_code)
, orig_system_reference
, orig_system_group
--
-- Try to split into pieces of 25 KB at most.
--
, true fragment_payload_flag
, 25000 fragment_max_size_characters
--
-- Returns error through user interface, not as a HTTP 500 error.
--
, false fail_on_error
from xmlupload@inmemorystorage
order
by division_code
, orig_system_reference
, orig_system_group
The code is somewhat complex to ensure it is able to handle uploads of 100K+ entry lines per division without disturbances.
Upload from Invantive Control
You can also journal entries through two ways from Invantive Control for Excel:
- Using Invantive SQL.
- Using an Excel function I_EOL_GLTXN_POST (see Mass import Exact Online journal entries directly from within Excel).
Upload using Invantive SQL
Perform the following steps:
- Create a table with the journal entries to upload such as for example described on Get My Report manual.
- Assign it a name like ‘mylines’ using the Name Manager of Excel.
- Go to the Query Tool from the Modeller ribbon.
- Open the script attached from Get My Report.
- Replace the ‘from exceltable…’ by ‘mylines@ic’. This takes out parsing the Excel file as source and instead use the data from the mylines named range.
- Run the script using F5.
- You can also create a model by putting the script in the pre-sync trigger of the model using the model editor.
A more extensive explanation on uploading transaction entry lines based upon your original spreadsheet is available in the knowledge base.