Include Patterns
How to use include patterns to include additional control blocks.
When using Wildcards, include patterns MUST end with the wildcard.
❌ ✅ **.ascbcvt.*cvt.*.ascbcvt.asvt.***.asvt.**cvt.**.ascb**
When using the CLI Interface for CBXP, ensure that Include Patterns that contain Wildcards are surrounded with quotes.
❌
cbxp extract -i cvt.* psa
✅
cbxp extract -i "cvt.*" psa
Include Patterns provide a method for including Additional Control Blocks that can be found from the Root Control Block being extracted when extracting control block data from Live Memory.
Include Pattern Basics
Include Patterns are specified as Dot Delimited patterns describing control blocks to include starting from the Root Control Block being extracted.
In the following example, psa is the Root Control Block and cvt.ecvt is the Include Pattern.
The following example extracts the PSA control block from Live Memory, includes the CVT control block, and includes the ECVT control block with the CVT control block.
Python Script
from cbxp import cbxp
cbdata = cbxp.extract("psa", includes=["cvt.ecvt"])
Shell Script
cbxp extract -i cvt.ecvt psa
flowchart LR
PSA
PSA--> CVT
CVT--> ECVT
Using Multiple Include Patterns
Multiple Include Patterns can be specified.
The following example extracts the CVT control block from Live Memory, and includes the ECVT control block and the ASVT control block.
Python Script
from cbxp import cbxp
cbdata = cbxp("cvt", includes=["ecvt", "asvt"])
Shell Script
cbxp -i ecvt -i asvt cvt
flowchart LR
CVT
CVT--> ECVT
CVT--> ASVT
Using Wildcards
CBXP also supports Wildcarding. Coding * at the very end of your include pattern tells CBXP to include all Known Control Blocks pointed to directly by the Preceding Dot Delimited Control Block Name or the Root Control Block in the case where the include pattern is just *.
The following example extracts the CVT control block from Live Memory and includes all Known Control Blocks that are pointed to directly by it. Additionally, asvt.* causes the ASVT control block and all Known Control Blocks that are pointed to directly by the ASVT to also be included.
Python Script
from cbxp import cbxp
cbdata = cbxp.extract("cvt", includes=["*", "asvt.*"])
Shell Script
cbxp extract -i "*" -i "asvt.*" cvt
flowchart LR
CVT
CVT--> ECVT
CVT--> ASVT
ASVT--> ASCBs
subgraph ASCBs["ASCB Array"]
ASCB1["ASCB"]
ASCB2["ASCB"]
ASCB3["ASCB"]
end
Using Recursive Wildcards
Recursive Wildcarding is also supported. Coding ** at the very end of your include pattern tells CBXP to include all Known Control Blocks that can be found starting from the Preceding Dot Delimited Control Block Name or the Root Control Block in the case where the include pattern is just **.
The following example extracts the PSA control block from Live Memory, includes the CVT control block, and includes All Known Control Blocks that can be found starting from the CVT control block.
Python Script
from cbxp import cbxp
cbdata = cbxp.extract("psa", includes=["cvt.**"])
Shell Script
cbxp extract -i "cvt.**" psa
flowchart TD
PSA
PSA--> CVT
CVT--> ECVT
CVT--> ASVT
ASVT--> ASCBs
subgraph ASCBs["ASCB Array"]
ASCB1["ASCB"]
ASCB1--> ASSB1["ASSB"]
ASSB1--> LDAX1["LDAX"]
ASCB1--> OUCB1["OUCB"]
ASCB2["ASCB"]
ASCB2--> ASSB2["ASSB"]
ASSB2--> LDAX2["LDAX"]
ASCB2--> OUCB2["OUCB"]
ASCB3["ASCB"]
ASCB3--> ASSB3["ASSB"]
ASSB3--> LDAX3["LDAX"]
ASCB3--> OUCB3["OUCB"]
end