Auto ID Methods

Introduction

The LogicApp provides a convenient mechanism for scripts to access an, auto-incrementing identifier, e.g. for the purpose of generating unique session or call identifiers.

Before use, the Auto ID must be configured within the Logic Application’s <application> block, e.g.

    <application name="Test-Logic" module="LogicApp">
        <include>
            <lib>../apps/logic/lib</lib>
        </include>
        <parameters>
            ...
        </parameters>
        <config>
            <auto_ids>
              <auto_id key="call_id" length="10" charset="alphanum"/>
            </auto_ids>
            ...
        </config>
    </application>

Refer to the LogicApp configuration.

These methods are accessed via the “n2.n2svcd” module:

    local n2svcd = require "n2.n2svcd"

.auto_id [Synchronous]

The auto_id method requests a new value from the automatic ID generator.

These method argument list is:

Parameter Type Description
key String The key configured for the ID.

Example:

    local call_id = n2svcd.auto_id ('call_id')

The auto_id method returns the string value of the automatically incremented ID.

NOTE: The automatic incremented ID is based on a 63-bit cyclic integer.

In the case where multiple instances of the LogicApp are being executed (e.g. with the <application repeat= attribute) it is unlikely but theoretically possible that the same automatic ID may be generated for both instances.

To ensure absolute uniqueness when running multiple LogicApp instances, you may wish to consider incorporating a prefix to the ID such as the APPLICATION_PID or APPLICATION_IDX global Lua variables which are guaranteed to be unique between applications.