Changed needed after recent Silverfin changes (drops->reconsiliations)

Hi,

We were informed that due to changes in Silverfin, we would need to change our templates according
to various tables posted on this forum, such as:

According to this specific table, it seems as if period.custom.mod.datum is being replaced by period.reconciliations.be_legal_company_information.results.date_directors_report.

Furthermore, I got the advice to replace these like this:

{% if period.end_date >= ‘31/12/2022’ %}
    {{ period.reconciliations.be_legal_company_information.results.date_directors_report }}
{% else %}
    {{ period.custom.mod.datum }}
{% endif %}

But, previously, we were using the period.custom.mod.datum with an input tag.

When using an input tag, I’m getting the following error from Silverfin:

Liquid error: Called .custom on an undefined value: 
period.reconciliations.be_legal_company_information.results.date_directors_report in code: 
`input period.reconciliations.be_legal_company_information.results.date_directors_report as:date placeholder:""`

Is there a document available describing how one should handle this? And more in general how one should migrate custom templates after the recent Silverfin changes?

With friendly regards,
Takis

Hi @Panagiotis_Issaris

you can indeed not use results within an input tag.
In most cases, if you used “period.custom”, that should now become “period.reconciliations.[handle].custom”.
There are however a few exceptions, such as inputs that are tied to an admin sync.

The code of the new legal templates is open source, so if you want to know if you need to transform your current customs or not you can have a look at the code.
For period.custom.mod.datum no changes are needed, as even in the new template the custom is tied to the period and not to the reconciliation.

In short: there’s no need to update your own code in regards to period.custom.mod.datum, your previous code will still work even with the new legal templates.

Kind regards,
Romy

Hi @Romy_Vermeeren

Thanks for your fast reply and my apologies for my late reaction.

Unfortunately, I am confused as to how to proceed:

  1. You state that for period.custom.mod.datum no changes are needed, but then why is it listed in the table as being replaced by period.reconciliations.be_legal_company_information.results.date_directors_report? The table specifies the former in the Old custom column and the latter in the Replaced by result column. Is the table incorrect or am I misinterpreting it?

  2. Previously one could use the input tag to enter data into those custom drops. Now that they were replaced, is it simply not possible anymore? And if so, what is the intended new way of working? Are there docs available?

  3. The period.custom.mod.datum was just an example, there are many more drops that were mentioned in the aforementioned table. Is there another table available that lists which drops need to be modified in customer template code?

This is the list of currently used by my customer:

 1.  custom.verlies_maatschappelijk_kapitaal.text
 2.  netto_actief
 3.  period.custom.artikels.commissaris
 4.  period.custom.artikels.jaarverslag
 5.  period.custom.artikels.uitstel
 6.  period.custom.av.datum
 7.  period.custom.av.minuten
 8.  period.custom.av.plaats
 9.  period.custom.av.uitsteldatum
10.  period.custom.av.uitstelminuten
11.  period.custom.av.uitsteluur
12.  period.custom.av.uur
13.  period.custom.belangenconflict.text
14.  period.custom.mod.datum
15.  period.custom.secretaris.andere_dan_zkv
16.  period.custom.secretaris.naam
17.  period.custom.stemopnemers
18.  period.custom.voorzitter.andere_dan_zkv
19.  period.custom.voorzitter.naam

With friendly regards,
Takis

Hi @Panagiotis_Issaris

I’ll try to answer your questions, hopefully more clearly now.

  1. You state that for period.custom.mod.datum no changes are needed, but then why is it listed in the table as being replaced by period.reconciliations.be_legal_company_information.results.date_directors_report? The table specifies the former in the Old custom column and the latter in the Replaced by result column. Is the table incorrect or am I misinterpreting it?

The table is correct. However, the table assumes you just want to print/show these values.
From what I understood, you want to print the actual inputs and also be able to edit them in your own template.
That cannot be achieved with results, but can only be done with custom variables.

  1. Previously one could use the input tag to enter data into those custom drops. Now that they were replaced, is it simply not possible anymore? And if so, what is the intended new way of working? Are there docs available?

You can still use the input tag to enter data in custom drops. Nothing changed in this regard. The only thing that changed is that the customs can now be tied to a reconciliation text in stead of to the period drop.
The customs that are tied to an admin sync are unchanged, they are still tied to the period drop and you still access them with period.custom .
The other customs will now be tied to the new reconciliation text. These need to be accessed as period.reconciliations.[handle].custom .

  1. The period.custom.mod.datum was just an example, there are many more drops that were mentioned in the aforementioned table. Is there another table available that lists which drops need to be modified in customer template code?

There is no table available with all the customs, but the code of the original templates is open source.
If you look at the code and it mentions period.custom, then you can still use the same name.
If it just mentions custom. without ‘period’, then it is tied to the reconciliation text.
Only in that case will you need to update your coding, and instead of
{% input period.custom.namespace.the_key %}
it needs to become
{% input period.reconciliations.[handle].custom.namespace.the_key %}

I’m going to ask a colleague who worked on these templates to have a look at the list you shared;
I can already say that the first custom is a local one, so that’s not coming from a Silverfin template and will not need to be changed.
The second item looks like it’s just a local variable, you’ll need to check its value to find out what custom it’s referring to.

We’ll give you an update on your customs soon.
Kind regards,
Romy

Hi @Romy_Vermeeren

Thanks for you elaborate answer!

I think my confusion stems from the fact that I do not have a clear view
on how the underlying database is structured.

From my viewpoint, I can only see dot-separated names, which I assume
link either directly or indirectly via an ORM to a database. But, for an outsider
it is hard to see the difference between A.B.C.D vs E.F.G.H. Of course, it is
clear that they point to different data, but it is not that clear that the underlying
types are different or have to be handled differently (as in, one can be only
read, while the other can be written to using the input tag).

Thanks in advance for helping!

With friendly regards,
Takis

Hi @Panagiotis_Issaris ,

Further to Romy’s reply I’d like to provide you with the list of new custom names for the ones requested by you:

1.  custom.verlies_maatschappelijk_kapitaal.text -> period.reconciliations.be_legal_minutes_meeting_governance_body.custom.loss_share_capital.text
 2.  netto_actief -> period.reconciliations.be_legal_company_information.results.net_assets*
 3.  period.custom.artikels.commissaris -> period.reconciliations.be_legal_company_information.results.general_meeting_agenda_points**
 4.  period.custom.artikels.jaarverslag -> period.reconciliations.be_legal_company_information.custom.directors_report.adoption_annual_report***
 5.  period.custom.artikels.uitstel -> period.reconciliations.be_legal_company_information.results.brought_forward_or_postponed*****
 6.  period.custom.av.datum -> unchanged
 7.  period.custom.av.minuten -> unchanged
 8.  period.custom.av.plaats -> unchanged
 9.  period.custom.av.uitsteldatum -> period.reconciliations.be_legal_company_information.custom.postponement_gm.meeting_date
10.  period.custom.av.uitstelminuten -> period.reconciliations.be_legal_company_information.custom.postponement_gm.minutes
11.  period.custom.av.uitsteluur -> period.reconciliations.be_legal_company_information.custom.postponement_gm.hour
12.  period.custom.av.uur -> unchanged
13.  period.custom.belangenconflict.text -> period.reconciliations.be_legal_minutes_general_meeting.custom.conflict_of_interest.text
14.  period.custom.mod.datum -> unchanged
15.  period.custom.secretaris.andere_dan_zkv -> period.reconciliations.be_legal_company_information.custom.general_meeting.secretary_id
16.  period.custom.secretaris.naam -> same as above - outcome of dropdown
17.  period.custom.stemopnemers -> Not sure if this existed in the old documents? Can't seem to find it
18.  period.custom.voorzitter.andere_dan_zkv ->  period.reconciliations.be_legal_company_information.custom.general_meeting.chairman_id
19.  period.custom.voorzitter.naam -> Same as above - outcome of dropdown

*Only a result is accessible.
**This is no longer a separate boolean but an item in the array of agenda points - so if this array contains statutory_auditor you could consider it included
***Split up in two booleans, one to indicate the annual report should be included in the agenda of the meeting and one to indicate the annual report is drawn (directors_report.annual_report_composed)
**** This no longer a single boolean but a dropdown that indicated whether the general meeting is postponed. Best to be accessed through that result. If postponed the result will indicate ‘postpone’

So for most of the above you could start using the new name if you want to use these as an input in the own template. If it is simply to print the value, the preferred option would be to use the result tag.

Hope this helps. Let us know if you need additional support!

Have a nice day,
Robin