Parts Subroutines
Part/Product master data - part info, descriptions, search
Subroutine count: 17
Table of Contents
VB_MATCHDESCVB_PART.REV1VB_PART_ALLOCATION_INQUIRYVB_PART_ALLOCATION_INQUIRY.REV2VB_PART_ALLOCATION_INQUIRY.REV3VB_PART_ALLOCATION_INQUIRY.REV4VB_PART_ALLOCATION_INQUIRY.REV5VB_PART_ALLOCATION_INQUIRY.REV5.20211207VB_PART_ALLOCATION_INQUIRY.REV5.20211214VB_PART_ALLOCATION_INQUIRY.REV6VB_PART_ALLOCATION_INQUIRY.REV6.20211214VB_PRODUCT.REV1VB_PRODUCT.REV1_DOTNETVB_PRODUCT_DBVB_PRODUCT_DB_2VB_PRODUCT_LISTVB_PRODUCT1287.REV1
VB_MATCHDESC
Signature: SUBROUTINE VB_MATCHDESC(CO,KEYWORD,PARTLIST,NEWLIST,NOTFLAG,ERRMSG)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_MATCHDESC
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [SAFE] safe |
| Pattern | Utility |
| Args | 6 |
| Description | Filters a list of part numbers by matching a keyword against part descriptions, secondary descriptions, and GT codes from PRODUCT and ITEMMANF tables. Supports inclusive and exclusive (NOT) matching. |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | Company number |
| 1 | KEYWORD | in | Search keyword to match against part descriptions |
| 2 | PARTLIST | in | Value-mark delimited list of part numbers to search within |
| 3 | NEWLIST | out | Filtered list of matching (or non-matching if NOTFLAG) part numbers |
| 4 | NOTFLAG | in | If true, returns parts that do NOT match the keyword (exclusion mode) |
| 5 | ERRMSG | out | Error message or filtered result list (NEWLIST is also copied here) |
Tables Referenced: ITEMMANF, PRODUCT
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_MATCHDESC",
"args": {
"0": "",
"1": "",
"2": "",
"4": ""
}
}VB_PART.REV1
Signature: SUBROUTINE VB_PRODUCT1287(CO,REQTYPE,PRODUCT1287NO,PRODUCT1287REC,ADDFLAG,MESSAGE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART.REV1
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [WARN] dangerous |
| Pattern | CRUD |
| Args | 6 |
| Description | Saves or deletes PRODUCT1287 records based on REQTYPE. Writes the record with MATWRITE and logs changes to the TRANSREG audit trail via S0912. |
| Dangerous REQTYPE | DELETE, ADD, UPDATE |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | Company number |
| 1 | REQTYPE | in | Request type: ‘DELETE’ to remove record, any other value to add/update |
| 2 | PRODUCT1287NO | in | Product 1287 record key/ID |
| 3 | PRODUCT1287REC | inout | Dynamic array of the PRODUCT1287 record data to write |
| 4 | ADDFLAG | in | Flag indicating add (true) vs update (false) for audit logging |
| 5 | MESSAGE | out | Status message: ‘WRITE SUCCEEDED’ or ‘DELETE SUCCEEDED’ |
Tables Referenced: PRODUCT1287, TRANSREG, PASSWORDS
Tables Written: PRODUCT1287
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART.REV1",
"args": {
"0": "",
"1": "",
"2": "",
"4": ""
}
}VB_PART_ALLOCATION_INQUIRY
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY(CO,PARTNO,DATA)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [SAFE] safe |
| Pattern | Inquiry |
| Args | 3 |
| Description | Returns part allocation data including on-hand qty, qty needed, work orders, jobs, sales orders, and allocated quantities for a given part number. Read-only inquiry that collects demand pegging from gross requirements. |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | Company number |
| 1 | PARTNO | in | Part number to inquire on |
| 2 | DATA | out | Multi-valued allocation data array: <1>=OH qty, <2>=needed qty, <3,X>=WO, <4,X>=job, <5,X>=status, <6,X>=SO, <7,X>=SO line, <8,X>=part, <9,X>=alloc qty |
Tables Referenced: GROSSXREF, GROSSREQ, JOBMASTER.1287, OPENWO, OPENWO.1287, ITEMQTY, OPEN.ORD.LINE, WIPBMF, PRODUCT
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY",
"args": {
"0": "",
"1": ""
}
}VB_PART_ALLOCATION_INQUIRY.REV2
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY.REV2(CO,PARTNO,DATA)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY.REV2
| Property | Value |
|---|---|
| Status | [X] deprecated |
| Args | 3 |
| Superseded By | VB_PART_ALLOCATION_INQUIRY.REV6 |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | |
| 1 | PARTNO | in | |
| 2 | DATA | out |
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY.REV2",
"args": {
"0": "",
"1": ""
}
}VB_PART_ALLOCATION_INQUIRY.REV3
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY.REV3(CO,PARTNO,DATA,JOBQTYREC)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY.REV3
| Property | Value |
|---|---|
| Status | [X] deprecated |
| Args | 4 |
| Superseded By | VB_PART_ALLOCATION_INQUIRY.REV6 |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | |
| 1 | PARTNO | in | |
| 2 | DATA | out | |
| 3 | JOBQTYREC | out |
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY.REV3",
"args": {
"0": "",
"1": ""
}
}VB_PART_ALLOCATION_INQUIRY.REV4
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY.REV4(CO,PARTNO,DATA,JOBQTYREC,REQTYPE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY.REV4
| Property | Value |
|---|---|
| Status | [X] deprecated |
| Args | 5 |
| Superseded By | VB_PART_ALLOCATION_INQUIRY.REV6 |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | |
| 1 | PARTNO | in | |
| 2 | DATA | out | |
| 3 | JOBQTYREC | out | |
| 4 | REQTYPE | in |
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY.REV4",
"args": {
"0": "",
"1": "",
"4": ""
}
}VB_PART_ALLOCATION_INQUIRY.REV5
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY.REV5(CO,PARTNO,DATA,JOBQTYREC,REQTYPE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY.REV5
| Property | Value |
|---|---|
| Status | [X] deprecated |
| Args | 5 |
| Superseded By | VB_PART_ALLOCATION_INQUIRY.REV6 |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | |
| 1 | PARTNO | in | |
| 2 | DATA | out | |
| 3 | JOBQTYREC | out | |
| 4 | REQTYPE | in |
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY.REV5",
"args": {
"0": "",
"1": "",
"4": ""
}
}VB_PART_ALLOCATION_INQUIRY.REV5.20211207
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY.REV5(CO,PARTNO,DATA,JOBQTYREC,REQTYPE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY.REV5.20211207
| Property | Value |
|---|---|
| Status | [X] deprecated |
| Args | 5 |
| Superseded By | VB_PART_ALLOCATION_INQUIRY.REV5 |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | |
| 1 | PARTNO | in | |
| 2 | DATA | out | |
| 3 | JOBQTYREC | out | |
| 4 | REQTYPE | in |
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY.REV5.20211207",
"args": {
"0": "",
"1": "",
"4": ""
}
}VB_PART_ALLOCATION_INQUIRY.REV5.20211214
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY.REV5(CO,PARTNO,DATA,JOBQTYREC,REQTYPE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY.REV5.20211214
| Property | Value |
|---|---|
| Status | [X] deprecated |
| Args | 5 |
| Superseded By | VB_PART_ALLOCATION_INQUIRY.REV5 |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | |
| 1 | PARTNO | in | |
| 2 | DATA | out | |
| 3 | JOBQTYREC | out | |
| 4 | REQTYPE | in |
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY.REV5.20211214",
"args": {
"0": "",
"1": "",
"4": ""
}
}VB_PART_ALLOCATION_INQUIRY.REV6
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY.REV6(CO,PARTNO,DATA,JOBQTYREC,REQTYPE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY.REV6
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [COND] conditional |
| Pattern | Inquiry |
| Args | 5 |
| Description | Comprehensive part allocation inquiry with time-phased component availability. Returns on-hand, allocated qty, work orders, sales orders, peg types, priority, schedule dates, and availability codes. REQTYPE controls whether work files are updated for component availability reporting. |
| Safe REQTYPE | READONLY, READ |
| Dangerous REQTYPE | WRITE |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | Company number |
| 1 | PARTNO | in | Part number to inquire on |
| 2 | DATA | out | Multi-valued allocation data: <1>=OH, <2>=needed, <3>=WO, <4>=job, <5>=status, <6>=SO, <7>=SO line, <8>=peg part, <9>=alloc qty, <10-13>=avail qtys, <14>=priority, <15>=peg type, <16>=sched date, <17>=avail code, <18>=ref, <19>=ref date |
| 3 | JOBQTYREC | out | Job quantity record: <1>=jobs, <2>=alloc, <3>=OH, <4>=OO, <5-8>=PO/WO detail, <9>=ord avail, <10>=planned ord, <11>=first due date, <12>=first priority |
| 4 | REQTYPE | in | Request type: ‘READONLY’ returns data only; ‘WRITE’ also updates work files for component availability; ‘READ’ computes availability without work file updates |
Tables Referenced: GROSSXREF2, GROSSREQ2, JOBMASTER.1287, OPENWO, OPENWO.1287, ITEMORD, ITEMQTY, OPEN.ORD.LINE, WIPBMF, PRODUCT, JOBPARTS.1287, BINXREF, BIN
Tables Written: WORKJ7272A.1287, WORKJ7272B.1287, WORKJ7272C.1287, HOLD
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY.REV6",
"args": {
"0": "",
"1": "",
"4": ""
}
}VB_PART_ALLOCATION_INQUIRY.REV6.20211214
Signature: SUBROUTINE VB_PART_ALLOCATION_INQUIRY.REV5(CO,PARTNO,DATA,JOBQTYREC,REQTYPE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PART_ALLOCATION_INQUIRY.REV6.20211214
| Property | Value |
|---|---|
| Status | [X] deprecated |
| Args | 5 |
| Superseded By | VB_PART_ALLOCATION_INQUIRY.REV6 |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | |
| 1 | PARTNO | in | |
| 2 | DATA | out | |
| 3 | JOBQTYREC | out | |
| 4 | REQTYPE | in |
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PART_ALLOCATION_INQUIRY.REV6.20211214",
"args": {
"0": "",
"1": "",
"4": ""
}
}VB_PRODUCT.REV1
Signature: SUBROUTINE VB_PRODUCT.REV1(CO,REQTYPE,PRODUCTNO,PREC,P1287REC,PNOTES,ADDFLAG,MESSAGE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PRODUCT.REV1
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [WARN] dangerous |
| Pattern | CRUD |
| Args | 8 |
| Description | Saves PRODUCT, PRODUCT.1287, and PRODUCT.NOTES records via MATWRITE. Logs changes to the TRANSREG audit trail. Note: contains a sunset date check (09/30/22) that returns an obsolete message after that date. |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | Company number |
| 1 | REQTYPE | in | Request type (not branched on in code; all calls perform add/update) |
| 2 | PRODUCTNO | in | Product number (record key) |
| 3 | PREC | inout | Dynamic array of PRODUCT record fields to write |
| 4 | P1287REC | inout | Dynamic array of PRODUCT.1287 record fields to write |
| 5 | PNOTES | inout | Dynamic array of PRODUCT.NOTES record fields to write |
| 6 | ADDFLAG | in | Flag indicating add (true) vs update (false) for audit logging |
| 7 | MESSAGE | out | Status message: ‘WRITE SUCCEEDED’ or ‘OBSOLETE, PLS USE NEW VERSION OF PRODUCT MANAGER’ |
Tables Referenced: PRODUCT, PRODUCT.1287, PRODUCT.NOTES, TRANSREG, PASSWORDS
Tables Written: PRODUCT, PRODUCT.1287, PRODUCT.NOTES
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PRODUCT.REV1",
"args": {
"0": "",
"1": "",
"2": "",
"6": ""
}
}VB_PRODUCT.REV1_DOTNET
Signature: SUBROUTINE VB_PRODUCT.REV1(CO,REQTYPE,PRODUCTNO,PREC,P1287REC,PNOTES,ADDFLAG,MESSAGE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PRODUCT.REV1_DOTNET
| Property | Value |
|---|---|
| Status | [X] deprecated |
| Args | 8 |
| Superseded By | VB_PRODUCT.REV1 |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | |
| 1 | REQTYPE | in | |
| 2 | PRODUCTNO | in | |
| 3 | PREC | out | |
| 4 | P1287REC | out | |
| 5 | PNOTES | in | |
| 6 | ADDFLAG | in | |
| 7 | MESSAGE | out |
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PRODUCT.REV1_DOTNET",
"args": {
"0": "",
"1": "",
"2": "",
"5": "",
"6": ""
}
}VB_PRODUCT_DB
Signature: SUBROUTINE VB_PRODUCT_DB(DATA,MESSAGE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PRODUCT_DB
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [SAFE] safe |
| Pattern | List |
| Args | 2 |
| Description | Reads all non-obsolete products from ITEMMANF (GT code = ‘PRODUCT’) and returns an array with part number, engineering status, physical number, descriptions. Designed to export product data to an Access database. |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | DATA | out | Multi-valued product data array: <N,1>=part, <N,2>=eng status, <N,3>=phys no, <N,4>=phys eng status, <N,5>=desc2, <N,6>=desc1 |
| 1 | MESSAGE | out | Error/status message |
Tables Referenced: ITEMMANF, PRODUCT, PRODUCT.1287
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PRODUCT_DB",
"args": {
}
}VB_PRODUCT_DB_2
Signature: SUBROUTINE VB_PRODUCT_DB(REQTYPE,DATAIN,DATAOUT,MESSAGE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PRODUCT_DB_2
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [SAFE] safe |
| Pattern | List |
| Args | 4 |
| Description | Enhanced version of product DB export. Supports REQTYPE ‘LIST’ to return data for a specific list of part numbers passed via DATAIN, or returns all non-obsolete products. Returns part number, engineering status, physical number, and descriptions. |
| Safe REQTYPE | LIST |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | REQTYPE | in | Request type: ‘LIST’ to query specific parts from DATAIN, any other value returns all non-obsolete products |
| 1 | DATAIN | in | Input part number list (value-mark delimited in <1,N>) when REQTYPE=‘LIST’ |
| 2 | DATAOUT | out | Product data array: <1,N>=part, <2,N>=eng status, <3,N>=phys no, <4,N>=phys eng status, <5,N>=desc2, <6,N>=desc1 |
| 3 | MESSAGE | out | Error/status message |
Tables Referenced: PRODUCT, PRODUCT.1287
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PRODUCT_DB_2",
"args": {
"0": "",
"1": ""
}
}VB_PRODUCT_LIST
Signature: SUBROUTINE VB_PRODUCT_LIST(DATA,MESSAGE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PRODUCT_LIST
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [SAFE] safe |
| Pattern | List |
| Args | 2 |
| Description | Returns a simplified list of all non-obsolete products (GT code = ‘PRODUCT’) with part number, secondary description, and primary description. Lighter-weight alternative to VB_PRODUCT_DB. |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | DATA | out | Product list array: <N,1>=part number, <N,2>=secondary description, <N,3>=primary description |
| 1 | MESSAGE | out | Error/status message |
Tables Referenced: ITEMMANF, PRODUCT
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PRODUCT_LIST",
"args": {
}
}VB_PRODUCT1287.REV1
Signature: SUBROUTINE VB_PRODUCT1287(CO,REQTYPE,PRODUCT1287NO,PRODUCT1287REC,ADDFLAG,MESSAGE)
Source: S:\LinuxShare\pro3prog\VBBASE\VB_PRODUCT1287.REV1
| Property | Value |
|---|---|
| Status | [+] analyzed |
| Safety | [WARN] dangerous |
| Pattern | CRUD |
| Args | 6 |
| Description | Saves or deletes PRODUCT1287 custom extension records based on REQTYPE. Performs MATWRITE for add/update and logs all changes (add, change, delete) to the TRANSREG audit trail via S0912. |
| Dangerous REQTYPE | DELETE, ADD, UPDATE |
Arguments:
| Index | Name | Direction | Description |
|---|---|---|---|
| 0 | CO | in | Company number |
| 1 | REQTYPE | in | Request type: ‘DELETE’ to remove record, any other value to add/update |
| 2 | PRODUCT1287NO | in | PRODUCT1287 record key/ID |
| 3 | PRODUCT1287REC | inout | Dynamic array of the PRODUCT1287 record data to write |
| 4 | ADDFLAG | in | Flag indicating add (true) vs update (false) for audit logging |
| 5 | MESSAGE | out | Status message: ‘WRITE SUCCEEDED’ or ‘DELETE SUCCEEDED’ |
Tables Referenced: PRODUCT1287, TRANSREG, PASSWORDS
Tables Written: PRODUCT1287
API Call Example:
POST /api/admin/subroutine/call
{
"name": "VB_PRODUCT1287.REV1",
"args": {
"0": "",
"1": "",
"2": "",
"4": ""
}
}Last updated: 2026-02-05 11:29 PM