Professional Documents
Culture Documents
The following is intended to outline our general product direction. It is intended for information
purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in making purchasing decisions. The
development, release, timing, and pricing of any features or functionality described for Oracle’s
products may change and remains at the sole discretion of Oracle Corporation.
1 Storable classes
2 Flists
3 Fields
4 Database Mapping
5 Tools
• A storable class defines the structure for a set of data to be stored in the BRM database.
• The fields in a storable class can span more than one database table.
/account
PIN_FLD_POID
PIN_FLD_ACCOUNT_NO
PIN_FLD_NAMEINFO
PIN_FLD_LAST_NAME
PIN_FLD_ADDRESS
/service/ip /service/fax
PIN_FLD_PROTOCOL PIN_FLDT_STR
5 Copyright © 2020, Oracle and/or its affiliates
Storable Class Extensions
/service
PIN_FLD_POID PIN_FLDT_POID
• A subclass inherits the parent class PIN_FLD_ACCOUNT_OBJ PIN_FLDT_POID
PIN_FLD_IPADDR
PIN_FLD_PROTOCOL
PIN_FLD_COMPRESSION
The data model is fully documented in the BRM documentation which is publicly available.
1 Storable classes
2 Flists
3 Fields
4 Database Mapping
5 Tools
• Attributes of an Flist:
Flists are used to pass input data to and output from BRM functions (opcodes).
storable objects.
0 PIN_FLD_MOD_T TSTAMP [0] (1162303292) Tue Oct 31 15:01:32 2006
0 PIN_FLD_ACCOUNT_OBJ POID [0] 0.0.0.1 /account 1 0
0 PIN_FLD_HOSTNAME STR [0] "-"
0 PIN_FLD_NAME STR [0] "pin_beid"
0 PIN_FLD_PROGRAM_NAME STR [0] "-"
0 PIN_FLD_BALANCES ARRAY [36] allocated 20, used 10
1 PIN_FLD_BEID_STR_CODE STR [0] "A$"
1 PIN_FLD_CONSUMPTION_RULE ENUM [0] 0
1 PIN_FLD_NAME STR [0] "Australian Dollar"
1 PIN_FLD_STATUS ENUM [0] 1
1 PIN_FLD_SYMBOL STR [0] " $ "
1 PIN_FLD_RULES ARRAY [5] allocated 20, used 7
2 PIN_FLD_EVENT_TYPE STR [0] "*"
2 PIN_FLD_PROCESSING_STAGE ENUM [0] 0
2 PIN_FLD_ROUNDING INT [0] 2
2 PIN_FLD_ROUNDING_MODE ENUM [0] 0
2 PIN_FLD_TOLERANCE_AMOUNT_MAX DECIMAL [0] 0.05
2 PIN_FLD_TOLERANCE_AMOUNT_MIN DECIMAL [0] 0.01
2 PIN_FLD_TOLERANCE_PERCENT DECIMAL [0] 0.04
0 NAME string M
0 ADDRESS string O
• Storable classes
1 Storable classes
2 Flists
3 Fields
4 Database Mapping
5 Tools
pin_flds.h
#define PIN_FLD_POID PIN_MAKE_FLD(PIN_FLDT_POID, 16)
Examples:
- POID ( Portal Object ID)
- Array
- Substruct
- Buffer
PIN_FLDT_TSTAMP Timestamp
A POID:
• Uniquely identifies a set of data (storable object) in the BRM database
• Value contains four pieces of information:
- Database number
- Object type (storable class name)
- Object ID
- Revision level
0.0.0.1 /account 12345 0
Revision increments
Storable class name as object is modified
PIN_FLD_DUE 19.95
A substruct is:
PIN_FLD_POID PIN_FLDT_POID
PIN_FLD_ACCOUNT_OBJ PIN_FLDT_POID
PIN_FLD_LOGIN PIN_FLDT_STR
PIN_FLD_PASSWD PIN_FLDT_STR
PIN_FLD_SERVICE_IP PIN_FLDT_SUBSTRUCT
PIN_FLD_IPADDR PIN_FLDT_STR
PIN_FLD_PROTOCOL PIN_FLDT_STR
PIN_FLD_COMPRESSION PIN_FLDT_STR
28 Copyright © 2020, Oracle and/or its affiliates
PIN_FLDT_ARRAY Data Type
PIN_FLD_POID PIN_FLDT_POID
PIN_FLD_ACCOUNT_OBJ PIN_FLDT_POID
PIN_FLD_LOGIN PIN_FLDT_STR
PIN_FLD_PASSWD PIN_FLDT_STR
PIN_FLD_ARGS PIN_FLDT_ARRAY[element ID]
PIN_FLD_NAME PIN_FLDT_STR
PIN_FLD_VALUE PIN_FLDT_STR
30 Copyright © 2020, Oracle and/or its affiliates
Substruct Versus Array
PIN_FLD_POID PIN_FLDT_POID PIN_FLD_POID PIN_FLDT_POID
PIN_FLD_ACCOUNT_OBJ PIN_FLDT_POID PIN_FLD_ACCOUNT_OBJ PIN_FLDT_POID
PIN_FLD_LOGIN PIN_FLDT_STR PIN_FLD_LOGIN PIN_FLDT_STR
PIN_FLD_PASSWD PIN_FLDT_STR PIN_FLD_PASSWD PIN_FLDT_STR
PIN_FLD_SERVICE_IP PIN_FLDT_SUBSTRUCT PIN_FLD_ARGS PIN_FLDT_ARRAY[ ]
PIN_FLD_POID PIN_FLDT_POID
PIN_FLD_BILL_OBJ PIN_FLDT_POID
PIN_FLD_STATUS PIN_FLDT_ENUM
PIN_FLD_ACCOUNT_NO PIN_FLDT_STR
PIN_FLD_INTERNAL_NOTES PIN_FLDT_BUF
BLOB
1 Storable classes
2 Flists
3 Fields
4 Database Mapping
5 Tools
• Most fields translate to one column name except for the following data
types:
- POIDs translate to four columns
- A substruct table has an extra column for the object ID from the POID
- An array table has two extra columns for the object ID from the POID and the
element ID
service_ip_args_t
PIN_FLD_IPADDR “156.151.1.1”
obj_id0 rec_id name value
PIN_FLD_PROTOCOL “PPP”
PIN_FLD_COMPRESSION “OFF” 1234 100 “first” “one”
1234 200 “second” “two”
1234 300 “third” “three”
[300] PIN_FLD_NAME “third”
PIN_FLD_NAME “second” 5678 100 “pop” “timbuktu”
PIN_FLD_VALUE “tyioew”
[200] PIN_FLD_NAME “first”
PIN_FLD_VALUE “tyioew” 5678 200 “speed” “28.8K”
[100] PIN_FLD_VALUE “one”
5678 300 “drop line credit” “no”
35 Copyright © 2020, Oracle and/or its affiliates
Database Storage Model
account_t
• The storage model in the BRM database consists
of the relational tables and the data dictionary. POID_DB POID_TYPE POID_ID0 REV AccNum
- Field definitions: Field name, data type, and field ID 456 Smith 456 Blarney Ct
number /account
1 Storable classes
2 Flists
3 Fields
4 Database Mapping
5 Tools
• Use the pin_deploy utility to create, read and export storable class
definitions.
• Extract class and field definitions from the BRM database, as in the
following examples:
> pin_deploy field –c > fields.txt
> pin_deploy class –mn /service/webhosting > class.txt