General Ledger Processor Environment Variables

You can configure environment variables for breakage accounts to recognize unearned deferred revenue, accounts for deferred revenue transactions, general messaging and Postgres database properties, and General Ledger posting.

General Environment Variables describes the environment variables that configure General Ledger Processor. All the environment variables can be used together, but some may be applied before others.

Table 1. General Environment Variables
Environment Variable Name Description Default Value
quarkus.datasource.db-kind The PostgreSQL database where you send GL information. postgresql
quarkus.datasource.username The username for your data source. This is a required value that must be set by the database administrator.
quarkus.datasource.password The password for your data source. This is a required value that must be set by the database administrator.
quarkus.datasource.reactive.url The datasource URL. postgresql://postgresql.application2:5432/postgres
quarkus.datasource.reactive.max-size The datasource pool maximum size. 20
quarkus.hibernate-orm.database.generation Select whether the database schema is generated or not. Values are: none, create, drop-and-create, drop, update, and validate. update
mp.messaging.incoming.mtx-event-in.connector Indicates the channel managed by the connector. smallrye-kafka
mp.messaging.incoming.mtx-event-in.enabled Enables Kafka Consumer to consume MATRIXX events from Kafka. Values are true or false. false
mp.messaging.incoming.mtx-event-in.topic Configure the topic name here. mdc-event
mp.messaging.incoming.mtx-event-in.key.deserializer The key deserializer that receives the bytes from Kafka and recreates business objects. org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.mtx-event-in.value.deserializer The value deserializer that instructs how to turn the key and value objects into bytes. org.apache.kafka.common.serialization.StringDeserializer
kafka.bootstrap.servers The addresses of the Kafka brokers in a bootstrap Kafka cluster that a Kafka client connects to initially to bootstrap itself. kafka:29092
quarkus.http.limits.max-body-size The maximum MEF file size calling from rest end point processing in GL Processor. 1024M (1 GB)
Revenue Recognition Environment Variables describes the environment variables that configure revenue recognition in General Ledger Processor. The GL processor uses GL configuration file breakage revenue properties (BreakageRevenue.x) to generate journal entries to debit the deferred/unearned revenue account and credit the breakage revenue account.
Table 2. Revenue Recognition Environment Variables
Environment Variable Name Description Default Value
glConfiguration.breakageRevenueTxn.211 Indicates the BreakageAccountToCredit followed by the BreakageTxnType; uses one line for each revenue recognition due to breakage. A200211,101
glConfiguration.breakageRevenueTxn.212 Indicates the BreakageAccountToCredit followed by the BreakageTxnType; uses one line for each revenue recognition due to breakage. A200212,102
glConfiguration.breakageRevenueTxn.213 Indicates the BreakageAccountToCredit followed by the BreakageTxnType; uses one line for each revenue recognition due to breakage. A200213,103
Deferred Revenue Recognition Environment Variables describes the environment variables that configure deferred revenue recognition in General Ledger Processor.
Table 3. Deferred Revenue Recognition Environment Variables
Environment Variable Name Description Default Value
glConfiguration.deferredRevenueTxn.111 Indicates the LiabilityAcountToDebit followed by the PurchaseTxnType; uses one line for each deferred revenue transaction. A100211,991
glConfiguration.deferredRevenueTxn.112 Indicates the LiabilityAcountToDebit followed by the PurchaseTxnType; uses one line for each deferred revenue transaction. A100211,992
glConfiguration.deferredRevenueTxn.113 Indicates the LiabilityAcountToDebit followed by the PurchaseTxnType; uses one line for each deferred revenue transaction. A100211,993
GL Posting Environment Variables describes the GL Posting environment variables for General Ledger Processor.
Table 4. GL Posting Environment Variables
Environment Variable Name Description Default Value
glPosting.aggregateByFields Specifies a comma-separated list of fields to group the journal entries when posting in aggregate mode. Only fields that have been copied to journal entries can be specified in the list.

If required, you can specify the optional "ConsumptionRecords" field, which aggregates the consumption amounts of the liability assets in each group of journal entries, and reports the aggregated amount in the output posting.

Account1,Account2,TxnType,GlCenter,Status,ConsumptionRecords,IsTaxIncluded,InitiatorExternalId,ExternalId,EventTypeArray,ProductOfferId,ProductOfferResourceId,City,PhoneNumber,CatalogItemId,CatalogItemExternalId
glPosting.exportFields Used with the aggregateFlag URL parameter (non aggregate mode). Specifies a comma-separated list of fields to include in the output posting.

Only fields that have been copied to journal entries can be specified in the list.

One special field that could be exported is "ConsumptionRecords". When it is specified, the consumption amount of the liability assets for which deferred revenue is recognized, is included in the posting.

Account1,Account2,TxnType,GlCenter,Status,Amount,ConsumptionRecords,IsTaxIncluded,InitiatorExternalId,ExternalId,EventTypeArray,ProductOfferId,ProductOfferResourceId,City,PhoneNumber,CatalogItemId,CatalogItemExternalId
glPosting.numEntryPerFile This property limits the size of the posting files by specifying a maximum number of journal entries each file can contain. 2000

Sample Helm Values File Configuration

The following Helm values file excerpt shows the name-value pairs for GL Processor configuration.
configuration:
  # A list of environment variables that will be set in the container
  env:
    - name: quarkus.datasource.db-kind
      value: postgresql
    - name: quarkus.datasource.username
      value: postgres
    - name: quarkus.datasource.password
      value: KijGc74DYY
    - name: quarkus.datasource.reactive.url
      value: postgresql://postgresql.application2:5432/postgres
    - name: quarkus.datasource.reactive.max-size
      value: "20"
    - name: quarkus.hibernate-orm.database.generation
      value: update
    - name: mp.messaging.incoming.mtx-event-in.connector
      value: smallrye-kafka
    - name: mp.messaging.incoming.mtx-event-in.enabled
      value: 'false'
    - name: mp.messaging.incoming.mtx-event-in.topic
      value: mdc-event # Configure Topic Name here
    - name: mp.messaging.incoming.mtx-event-in.key.deserializer
      value: org.apache.kafka.common.serialization.StringDeserializer
    - name: mp.messaging.incoming.mtx-event-in.value.deserializer
      value: org.apache.kafka.common.serialization.StringDeserializer
    - name: kafka.bootstrap.servers
      value: kafka:29092
    - name: quarkus.http.limits.max-body-size
      value: 1024M  

      ## One line for each revenue recognition due to breakage in the following format.
      ## - DeferredRevenueTxnType: BreakageAccountToCredit,BreakageTxnType
    - name: glConfiguration.breakageRevenueTxn.211
      value: A200211,101
    - name: glConfiguration.breakageRevenueTxn.212
      value: A200212,102
    - name: glConfiguration.breakageRevenueTxn.213
      value: A200213,103

      ## One line for each deferred revenue transaction in the following format.
      ## - DeferredRevenueTxnType: LiabilityAccountToDebit,PurchaseTxnType
    - name: glConfiguration.deferredRevenueTxn.111
      value: A100211,991
    - name: glConfiguration.deferredRevenueTxn.112
      value: A100211,992
    - name: glConfiguration.deferredRevenueTxn.113
      value: A100211,993

    - name: glPosting.aggregateByFields
      value: Account1,Account2,TxnType,GlCenter,Status,ConsumptionRecords,IsTaxIncluded,InitiatorExternalId,ExternalId,EventTypeArray,ProductOfferId,ProductOfferResourceId,City,PhoneNumber,CatalogItemId,CatalogItemExternalId
    - name: glPosting.exportFields
      value: Account1,Account2,TxnType,GlCenter,Status,Amount,ConsumptionRecords,IsTaxIncluded,InitiatorExternalId,ExternalId,EventTypeArray,ProductOfferId,ProductOfferResourceId,City,PhoneNumber,CatalogItemId,CatalogItemExternalId
    - name: glPosting.numEntryPerFile
      value: "2000"