Streamline your Document Automation in Athennian with the best practice of coding documents using assignments. Instead of complex syntax, utilize single custom variables, booleans, and collections for readability. Updates become a breeze with changes applied universally.
Explore our standardized Annual Resolutions templates coded with teal-colored assignments. Access the real code in the Summary section of each document. Watch the brief video below to learn how to navigate assignments stored in the document properties' Summary section.
Note: You have the option to store assignment code in a separate Word document, similar to Athennian sub-templates. Please use the raw tag '@' syntax to ensure values and hard returns in the assignment code are not populated in the document through sub-template insertion. Please stay tuned for our next articles on how to use raw tags in Athennian document coding.
Download the coded templates and assignment code snippets below by clicking on the link for an in-depth exploration. Note that each resolution document includes signature sub-template insert code, requiring the inclusion of relevant sub-templates in the documents.
- Directors Annual Resolutions - coded with Assignments
- Shareholders Annual Resolutions - coded with Assignments
- Annual Resolutions - Financial and Auditor - coded with Assignments
- Assignments Code Snippets - Annual Compliance
Assignment Name |
Assignment Coding |
Notes |
---|---|---|
Entity (General) by Assignments |
||
entityNameASG |
{entityNameASG=(entities | grab:1:'entityName')} |
|
entityJurisRegionASG |
{entityJurisRegionASG=(entities | grab:1:'jurisdictionRegion’)} |
|
corpActCanASG |
{#(entities | grab:1:’jurisdictionRegion’)=='Canada (Federal)'} {corpActCanASG='Canada Business Corporations Act'} {corpActProvCanASG=’’} {/} {#(entities | grab:1:’jurisdictionRegion’)=='Nova Scotia'} {corpActCanASG='Companies Act’} {corpActProvCanASG=’ (‘+(entities | grab:1:’jurisdictionRegion’)+’)'} {/} {#((entities | grab:1:’jurisdictionRegion’)=='Manitoba') || ((entities | grab:1:’jurisdictionRegion’)=='Newfoundland and Labrador')} {corpActCanASG='Corporations Act'} {corpActProvCanASG=’ (‘+(entities | grab:1:’jurisdictionRegion’)+’)'} {/} {#((entities | grab:1:’jurisdictionRegion’)!='Manitoba')&&((entities | grab:1:’jurisdictionRegion’)!='Newfoundland and Labrador')&&((entities | grab:1:’jurisdictionRegion’)!='Nova Scotia')&&((entities | grab:1:’jurisdictionRegion’)!='Canada (Federal)’)} {corpActCanASG='Business Corporations Act'} {corpActProvCanASG=’ (‘+(entities | grab:1:’jurisdictionRegion’)+’)'} {/} |
In this assignment coding, it's imperative to use both corpActCanASG and corpActProvCanASG in tandem within the document coding, as demonstrated below. It's worth noting that {corpActCanASG} is formatted in italics, while {corpActProvCanASG} is directly appended without a space. This distinction arises from two key considerations:
{corpActCanASG}{corpActProvCanASG} Example 1: Canada Business Corporations Act Example 2: Companies Act (Nova Scotia)
|
corpActProvCanASG |
||
companyCorpASG |
{#(entities | grab:1:’jurisdictionRegion’)=='Nova Scotia'} {companyCorpASG='Company'} {/}{#(entities | grab:1:’jurisdictionRegion’)!='Nova Scotia'} {companyCorpASG='Corporation'} {/} |
|
waivedAuditorASG |
{waivedAuditorASG=(entities | grab:1:’waivedAuditor’)} |
A simple boolean assignment |
waivedAGMASG |
{waivedAGMASG=(entities | grab:1:’waivedAGM’)} |
A simple boolean assignment |
shareholderAgrmtUnamsASG |
{shareholderAgrmtUnamsASG=(entities | grab:1:’shareholderAgreementUnanimous’)} |
|
waivedFinancialsASG |
{waivedFinancialsASG=(entities | grab:1:’waivedFinancials’)} |
A simple boolean assignment |
fiscalYearEndASG |
{fiscalYearEndASG=(entities | grab:1:’fiscalYearEnd’)} |
|
nextAGMMASG |
{nextAGMASG=(entities | grab:1:’nextAGM’)} |
|
Directors by Assignments |
||
activeDirectorsASG |
{activeDirectorsASG=((RES_affiliations) || (affiliations | status:'!inactive') | filter:’role’:’Officer’ | uniqBy:’participant_profileID’ | except:(tasks | grab:1:’outgoingAffiliations’):'affiliationID')} |
This is a collection assignment where the name is in plural form, as opposed to single assignments, which have names in singular form. |
Officers by Assignments |
||
activeOfficersASG |
{activeOfficersASG=((RES_affiliations) || (affiliations | status:’!inactive’) | filter:'role':'Officer' | except:(tasks | grab:1:’outgoingAffiliations’):'affiliationID' | uniqBy:'participant_profileID')} |
This is a collection assignment where the name is in plural form, as opposed to single assignments, which have names in singular form. |
activeOfficersGroupASG |
{activeOfficersGroupASG=((RES_affiliations) || (affiliations | status:'!inactive') | filter:’role’:’Officer’ | except:(tasks | grab:1:’outgoingAffiliations’):'affiliationID' | orderBy_B:’rank’ | groupBy:’participant_profileID’)} |
Here‘s another recommended practice in Athennian assignment coding. As you can see, we've now created a group for all active officers. This is particularly useful because a single individual may hold multiple offices. While we don't want to repeat each person's name as many times as they are appointed to different offices, we do want to display the office titles in a concise manner. For more details, please refer to the document. |
Shareholders by Assignments |
||
votingShareholderPluralASG |
{#(RES_shareholdings || shareholdings) | filter:’totalShares’:'!0' | filter:’totalVotes’:’!0’ | uniqBy:’participantID’ | count | gt:1} {votingShareholderPluralASG='s'} {/} |
If number of voting shareholders is greater than one, the ASG code add 'S' as pluralization |
allShareholdersASG |
{allShareholdersASG=((RES_shareholdings || shareholdings) | filter:'totalShares':'!0' | uniqBy:’participantID’)} |
Collection assignment |
votingShareholdersASG |
{votingShareholdersASG=((RES_shareholdings || shareholdings) | filter:'shares':'!0' | filter:’votes’:’!0’ | uniqBy:'participantID')} |
Collection assignment |
Auditor by Assignments |
||
activeAuditorsASG |
{activeAuditorsASG=((RES_affiliations) || (affiliations | status:'!inactive') | filter:’role’:'Other Professional' | filter:’type’:’Auditor’)} |
Collection assignment |
Accountant by Assignments |
||
activeAccountantsASG |
{activeAccountantsASG=((RES_affiliations) || (affiliations | status:'!inactive') | filter:’role’:'Other Professional' | filter:’type’:’Accountant’)} |
Collection assignment |
Registered Office by Assignments |
||
regOfficeAddressASG |
{regOfficeAddressASG=(RES_affiliations) || (affiliations | status:'confirmed') | filter:’title’:’Registered Office’ | grab:1:’addresses’ | filter:’addressStatus’:’!inactive’:'!outgoing' | grab:1:’address’} |
|
Task by Assignments |
||
resignedDirectorsASG |
{resignedDirectorsASG=(tasks | grab:1:’outgoingAffiliations’ | filter:’role’:’Director’ | filter:’endReason’:’Resigned’)} |
In Annual Compliance task workflow, incoming and outgoing principals are selected automatically when you enter Annual Report date. |
resignedOfficersASG |
{resignedOfficersASG=(tasks | grab:1:’outgoingAffiliations’ | filter:’role’:’Officer’ | filter:’endReason’:’Resigned’} |
Please ensure that you set the Inactive Reason on the front-end for principals who have resigned. This is crucial because the assignment code relies on a specific filter for the inactive reason of principals who have been selected as outgoing principals in tasks. |
resignedOfficersGroupASG |
{resignedOfficersGroupASG=(resignedOfficersASG | groupBy:'participant_profileID')} |
|
removedOfficersASG |
{removedOfficersASG=(tasks | grab:1:’outgoingAffiliations’ | filter:’role’:'Officer’ | filter:’endReason’:’Removed’)} |
|
removedOfficersGroupASG |
{removedOfficersGroupASG=(removedOfficersASG | groupBy:'participant_profileID')} |
Related to