🔍
GCX015E - Thematically Grouped Rules
A dual-persona matrix designed specifically for Development scoping. Requirements are hierarchically structured by Epic → Module Program → Business Theme.
Epic Core: GCX015E Processing
Module Tracker: GCX015E
550 Validations & RulesModule Objective: No description provided from architecture analysis.
⚙️ General Logic & Formats
53 logic blocks
R-GCX015E-cbl-00005
5:Process M10 Manifest Segment
Process Rules
📊 Business Logic Narrative
When the process '5:Process M10 Manifest Segment' is invoked, and assuming that a message table entry with id 'm10' is encountered, when the system processes the m10 segment, the desired outcome is that the m10 segment found flag is set to true and the table entry data is moved to the m10 segment structure.
💻 Technical Criteria
Given
A message table entry with ID 'M10' is encountered
When
The system processes the M10 segment
Then
The M10 segment found flag is set to true and the table entry data is moved to the M10 segment structure
R-GCX015E-cbl-00006
6:Process P4 Segment
Process Rules
📊 Business Logic Narrative
When the process '6:Process P4 Segment' is invoked, and assuming that a message table entry with id 'p4 ' is encountered, when the system processes the p4 segment, the desired outcome is that the p4 segment found flag is set to true and the table entry data is moved to the p4 segment structure.
💻 Technical Criteria
Given
A message table entry with ID 'P4 ' is encountered
When
The system processes the P4 segment
Then
The P4 segment found flag is set to true and the table entry data is moved to the P4 segment structure
R-GCX015E-cbl-00007
7:Process N10 Line Release Numbers
Process Rules
📊 Business Logic Narrative
When the process '7:Process N10 Line Release Numbers' is invoked, and assuming that a message table entry with id 'n10' is encountered, when the system processes the n10 segment, the desired outcome is that the table entry data is moved to n10 segment structure and the line release number (n10-09) is stored in working storage hold field.
💻 Technical Criteria
Given
A message table entry with ID 'N10' is encountered
When
The system processes the N10 segment
Then
The table entry data is moved to N10 segment structure and the line release number (N10-09) is stored in working storage hold field
R-GCX015E-cbl-00024
Initialize K1 Error Message Table
Process Rules
📊 Business Logic Narrative
When the process 'Initialize K1 Error Message Table' is invoked, and assuming that message processing is starting, when the system initializes processing fields, the desired outcome is that k1 counter is set to 1 and k1 table is initialized to collect error messages.
💻 Technical Criteria
Given
Message processing is starting
When
The system initializes processing fields
Then
K1 counter is set to 1 and K1 table is initialized to collect error messages
R-GCX015E-cbl-00030
Calculate Message Length Parameters
Computation Rules
📊 Business Logic Narrative
When the process 'Calculate Message Length Parameters' is invoked, and assuming that email fields are initialized, when the system calculates message parameters, the desired outcome is that message header length is set to the length of mqs message header, unused length is set to zero, and single entry length is set to the length of one mqs table entry.
💻 Technical Criteria
Given
Email fields are initialized
When
The system calculates message parameters
Then
Message header length is set to the length of MQS message header, unused length is set to zero, and single entry length is set to the length of one MQS table entry
R-GCX015E-cbl-00037
Message Too Short?
Validation Rules
📊 Business Logic Narrative
When the process 'Message Too Short?' is invoked, and assuming that a message has been successfully read from the queue, when the message contains less than one complete message entry, the desired outcome is that the system flags the message as too short and terminates processing with error gct0152e.
💻 Technical Criteria
Given
A message has been successfully read from the queue
When
The message contains less than one complete message entry
Then
The system flags the message as too short and terminates processing with error GCT0152E
R-GCX015E-cbl-00042
Is Current Line M10 Segment?
Validation Rules
📊 Business Logic Narrative
When the process 'Is Current Line M10 Segment?' is invoked, and assuming that a message line is being processed, when the system checks if the current line contains an m10 segment identifier, the desired outcome is that the system proceeds to extract m10 data if identified, otherwise continues to next segment.
💻 Technical Criteria
Given
A message line is being processed
When
The system checks if the current line contains an M10 segment identifier
Then
The system proceeds to extract M10 data if identified, otherwise continues to next segment
R-GCX015E-cbl-00045
Set Train Processing Flag
Action Rules
📊 Business Logic Narrative
When the process 'Set Train Processing Flag' is invoked, and assuming that the reference number key has been identified as 'train', when the system determines the shipment type, the desired outcome is that the train processing flag is set to true.
💻 Technical Criteria
Given
The reference number key has been identified as 'TRAIN'
When
The system determines the shipment type
Then
The train processing flag is set to true
R-GCX015E-cbl-00063
Reference Number Type?
Decision Rules
📊 Business Logic Narrative
When the process 'Reference Number Type?' is invoked, and assuming that an m10 segment is being processed with a reference number in m10-12-ref-num field, when the reference number contains the text 'train', the desired outcome is that the system sets the processing type as train.
💻 Technical Criteria
Given
An M10 segment is being processed with a reference number in M10-12-REF-NUM field
When
The reference number contains the text 'TRAIN'
Then
The system sets the processing type as TRAIN
R-GCX015E-cbl-00069
Mark M10 Segment as Found
Process Rules
📊 Business Logic Narrative
When the process 'Mark M10 Segment as Found' is invoked, and assuming that an m10 segment has been processed successfully, when all m10 segment processing is complete, the desired outcome is that the system sets ws-m10-segment-found to true.
💻 Technical Criteria
Given
An M10 segment has been processed successfully
When
All M10 segment processing is complete
Then
The system sets WS-M10-SEGMENT-FOUND to true
R-GCX015E-cbl-00070
P4 Segment Found in Message?
Decision Rules
📊 Business Logic Narrative
When the process 'P4 Segment Found in Message?' is invoked, and assuming that a message table entry is being processed, when the table id equals 'p4 ' (p4 with trailing space), the desired outcome is that the system sets p4 segment found flag to true and extracts the p4 segment data from the message table entry.
💻 Technical Criteria
Given
A message table entry is being processed
When
The table ID equals 'P4 ' (P4 with trailing space)
Then
The system sets P4 segment found flag to true and extracts the P4 segment data from the message table entry
R-GCX015E-cbl-00071
Extract P4 Segment Data from Message Table
Process Rules
📊 Business Logic Narrative
When the process 'Extract P4 Segment Data from Message Table' is invoked, and assuming that a p4 segment has been identified in the message table, when the p4 segment processing is initiated, the desired outcome is that the system moves the complete message table entry data to the p4 segment structure for processing.
💻 Technical Criteria
Given
A P4 segment has been identified in the message table
When
The P4 segment processing is initiated
Then
The system moves the complete message table entry data to the P4 segment structure for processing
R-GCX015E-cbl-00081
Extract Free Form Message Text
Process Rules
📊 Business Logic Narrative
When the process 'Extract Free Form Message Text' is invoked, and assuming that a k1 message segment is being processed, when the k1-02-free-form-message field contains text data, the desired outcome is that the system extracts the message text and adds it to the processing log (mrln-lines) and prepares it for later logging (hold-k1-message).
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1-02-FREE-FORM-MESSAGE field contains text data
Then
The system extracts the message text and adds it to the processing log (MRLN-LINES) and prepares it for later logging (HOLD-K1-MESSAGE)
R-GCX015E-cbl-00388
Trigger Email Warning Process
Action Rules
📊 Business Logic Narrative
When the process 'Trigger Email Warning Process' is invoked, and assuming that a k1 message has been classified as warning severity, when the k1-02-msg-number equals '695' or '697' or '699', the desired outcome is that the email warning process is triggered by performing c100-send-email-warning.
💻 Technical Criteria
Given
A K1 message has been classified as warning severity
When
The K1-02-MSG-NUMBER equals '695' OR '697' OR '699'
Then
The email warning process is triggered by performing C100-SEND-EMAIL-WARNING
R-GCX015E-cbl-00390
Store Message for Logging
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Store Message for Logging', assuming that a k1 message segment is being processed, when the k1-02-free-form-message is not equal to spaces, the desired outcome is that the free-form message is moved to mrln-lines for display, the line count is incremented, the message is formatted as work-log-message and stored in hold-k1-message array, and the k1-cnt counter is incremented.
💻 Technical Criteria
EXCLUDING
A K1 message segment is being processed
When
The K1-02-FREE-FORM-MESSAGE is not equal to spaces
Then
The free-form message is moved to MRLN-LINES for display, the line count is incremented, the message is formatted as WORK-LOG-MESSAGE and stored in HOLD-K1-MESSAGE array, and the K1-CNT counter is incremented
R-GCX015E-cbl-00399
Set Do Not Send Warning Flag
Process Rules
📊 Business Logic Narrative
When the process 'Set Do Not Send Warning Flag' is invoked, and assuming that warning email has been processed through merlin messaging system, when the email sending process completes regardless of success or failure, the desired outcome is that the do-not-send-warning flag should be set to prevent duplicate email attempts.
💻 Technical Criteria
Given
Warning email has been processed through Merlin messaging system
When
The email sending process completes regardless of success or failure
Then
The do-not-send-warning flag should be set to prevent duplicate email attempts
R-GCX015E-cbl-00084
Create Default K3 with Current Date/Time
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Create Default K3 with Current Date/Time', assuming that a message is being processed and k3 segment is not found, when the system needs to process accept/reject counts, the desired outcome is that create a default k3 segment using current machine date and time, set k3 segment found flag to true.
💻 Technical Criteria
EXCLUDING
A message is being processed and K3 segment is not found
When
The system needs to process accept/reject counts
Then
Create a default K3 segment using current machine date and time, set K3 segment found flag to true
R-GCX015E-cbl-00158
Format Event Date and Time
Computation Rules
📊 Business Logic Narrative
When the process 'Format Event Date and Time' is invoked, and assuming that system date and time have been captured, when the arrival message is being constructed, the desired outcome is that the date must be formatted as yymmdd and time as hhmm for the event timestamp.
💻 Technical Criteria
Given
System date and time have been captured
When
The arrival message is being constructed
Then
The date must be formatted as YYMMDD and time as HHMM for the event timestamp
R-GCX015E-cbl-00163
Write Train Arrival Message
Action Rules
📊 Business Logic Narrative
When the process 'Write Train Arrival Message' is invoked, and assuming that a train arrival message is queued in ims, when the message needs to be logged, the desired outcome is that the message must be written using writmsgl with the message code, content, length, and module name.
💻 Technical Criteria
Given
A train arrival message is queued in IMS
When
The message needs to be logged
Then
The message must be written using WRITMSGL with the message code, content, length, and module name
R-GCX015E-cbl-00182
Add CBP Warning Message
Process Rules
📊 Business Logic Narrative
When the process 'Add CBP Warning Message' is invoked, and assuming that k1 segment contains a cbp warning message, when the system formats email content, the desired outcome is that the system adds the free-form message from k1-02-free-form-message as the cbp warning message data.
💻 Technical Criteria
Given
K1 segment contains a CBP warning message
When
The system formats email content
Then
The system adds the free-form message from K1-02-FREE-FORM-MESSAGE as the CBP warning message data
R-GCX015E-cbl-00184
Add Footer Text
Process Rules
📊 Business Logic Narrative
When the process 'Add Footer Text' is invoked, and assuming that email content is being finalized, when the system completes email formatting, the desired outcome is that the system adds predefined footer text to the email content.
💻 Technical Criteria
Given
Email content is being finalized
When
The system completes email formatting
Then
The system adds predefined footer text to the email content
R-GCX015E-cbl-00188
Send Email Message
Action Rules
📊 Business Logic Narrative
When the process 'Send Email Message' is invoked, and assuming that email content is formatted and recipient is determined, when the system sends the email warning, the desired outcome is that the system calls merlin email service to send the message and sets do-not-send-warning flag to prevent duplicate sends.
💻 Technical Criteria
Given
Email content is formatted and recipient is determined
When
The system sends the email warning
Then
The system calls Merlin email service to send the message and sets do-not-send-warning flag to prevent duplicate sends
R-GCX015E-cbl-00438
Extract CBP Warning Message
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract CBP Warning Message' is invoked, and assuming that k1 segment contains a free form warning message, when the system builds email warning content, the desired outcome is that the free form message is extracted from k1-02-free-form-message field into cbp warning message data.
💻 Technical Criteria
Given
K1 segment contains a free form warning message
When
The system builds email warning content
Then
The free form message is extracted from K1-02-FREE-FORM-MESSAGE field into CBP warning message data
R-GCX015E-cbl-00439
Format Warning Message Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Warning Message Line' is invoked, and assuming that cbp warning message has been extracted, when the system formats the email content, the desired outcome is that the cbp warning message variables are placed at email text line 16.
💻 Technical Criteria
Given
CBP warning message has been extracted
When
The system formats the email content
Then
The CBP warning message variables are placed at email text line 16
R-GCX015E-cbl-00440
Format Occurrence Date/Time
Process Rules
📊 Business Logic Narrative
When the process 'Format Occurrence Date/Time' is invoked, and assuming that date and time components have been formatted, when the system builds email warning content, the desired outcome is that date formatter and time formatter are concatenated with space separator into occurrence data and placed at email text line 17.
💻 Technical Criteria
Given
Date and time components have been formatted
When
The system builds email warning content
Then
Date formatter and time formatter are concatenated with space separator into occurrence data and placed at email text line 17
R-GCX015E-cbl-00441
Add Footer Text
Process Rules
📊 Business Logic Narrative
When the process 'Add Footer Text' is invoked, and assuming that email warning content is being finalized, when the system completes the email structure, the desired outcome is that footer text is placed at email text line 20.
💻 Technical Criteria
Given
Email warning content is being finalized
When
The system completes the email structure
Then
Footer text is placed at email text line 20
R-GCX015E-cbl-00523
Combine Century and Year into WS-DATE-YEAR
Computation Rules
📊 Business Logic Narrative
When the process 'Combine Century and Year into WS-DATE-YEAR' is invoked, and assuming that century component and 2-digit year component are available, when processing email warning message formatting, the desired outcome is that the century and year are combined to form a complete 4-digit year in ws-date-year field.
💻 Technical Criteria
Given
Century component and 2-digit year component are available
When
Processing email warning message formatting
Then
The century and year are combined to form a complete 4-digit year in WS-DATE-YEAR field
R-GCX015E-cbl-00524
Format Complete Date using WS-DATE-FORMATER
Computation Rules
📊 Business Logic Narrative
When the process 'Format Complete Date using WS-DATE-FORMATER' is invoked, and assuming that year, month, and day components are extracted and available, when processing email warning message formatting, the desired outcome is that the date components are formatted into a complete readable date string using ws-date-formater.
💻 Technical Criteria
Given
Year, month, and day components are extracted and available
When
Processing email warning message formatting
Then
The date components are formatted into a complete readable date string using WS-DATE-FORMATER
R-GCX015E-cbl-00525
Format Complete Time using WS-TIME-FORMATER
Computation Rules
📊 Business Logic Narrative
When the process 'Format Complete Time using WS-TIME-FORMATER' is invoked, and assuming that hour and minutes components are extracted and available, when processing email warning message formatting, the desired outcome is that the time components are formatted into a complete readable time string using ws-time-formater.
💻 Technical Criteria
Given
Hour and minutes components are extracted and available
When
Processing email warning message formatting
Then
The time components are formatted into a complete readable time string using WS-TIME-FORMATER
R-GCX015E-cbl-00526
Combine Date and Time into WS-OCCURED-ON-DATA
Computation Rules
📊 Business Logic Narrative
When the process 'Combine Date and Time into WS-OCCURED-ON-DATA' is invoked, and assuming that formatted date string and formatted time string are available, when processing email warning message formatting, the desired outcome is that the formatted date and time are combined with a space delimiter into ws-occured-on-data field.
💻 Technical Criteria
Given
Formatted date string and formatted time string are available
When
Processing email warning message formatting
Then
The formatted date and time are combined with a space delimiter into WS-OCCURED-ON-DATA field
R-GCX015E-cbl-00208
Initialize Shipment Root Parameters
Process Rules
📊 Business Logic Narrative
When the process 'Initialize Shipment Root Parameters' is invoked, and assuming that a request to retrieve shipment root data is initiated, when the system begins the shipment root data retrieval process, the desired outcome is that the shipment root work area is cleared and initialized to spaces.
💻 Technical Criteria
Given
A request to retrieve shipment root data is initiated
When
The system begins the shipment root data retrieval process
Then
The shipment root work area is cleared and initialized to spaces
R-GCX015E-cbl-00445
Warning Message 695, 697, or 699?
Action Rules
📊 Business Logic Narrative
When the process 'Warning Message 695, 697, or 699?' is invoked, and assuming that a k1 message segment has been classified as warning severity, when the k1-02-msg-number equals '695' or '697' or '699', the desired outcome is that trigger email warning process to freight forwarder (c100-send-email-warning).
💻 Technical Criteria
Given
A K1 message segment has been classified as warning severity
When
The K1-02-MSG-NUMBER equals '695' OR '697' OR '699'
Then
Trigger email warning process to freight forwarder (C100-SEND-EMAIL-WARNING)
R-GCX015E-cbl-00447
Store Message for Logging
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Store Message for Logging', assuming that a k1 message segment is being processed, when the k1-02-free-form-message is not spaces, the desired outcome is that move the k1-02-free-form-message to display lines (mrln-lines) and store formatted message in hold array (hold-k1-message) for logging.
💻 Technical Criteria
EXCLUDING
A K1 message segment is being processed
When
The K1-02-FREE-FORM-MESSAGE is not spaces
Then
Move the K1-02-FREE-FORM-MESSAGE to display lines (MRLN-LINES) and store formatted message in hold array (HOLD-K1-MESSAGE) for logging
R-GCX015E-cbl-00257
Check Message Backout Count
Validation Rules
📊 Business Logic Narrative
When the process 'Check Message Backout Count' is invoked, and assuming that message is successfully retrieved from queue, when message backout count is checked, the desired outcome is that if backout count equals zero then message is marked as good for processing, otherwise message is marked to be skipped.
💻 Technical Criteria
Given
Message is successfully retrieved from queue
When
Message backout count is checked
Then
If backout count equals zero then message is marked as good for processing, otherwise message is marked to be skipped
R-GCX015E-cbl-00258
Calculate Number of Message Entries
Validation Rules
📊 Business Logic Narrative
When the process 'Calculate Number of Message Entries' is invoked, and assuming that message is retrieved and marked as good for processing, when system calculates maximum message entries based on message length, the desired outcome is that if calculated entries is less than 1 then system terminates with message too short error, otherwise processing continues.
💻 Technical Criteria
Given
Message is retrieved and marked as good for processing
When
System calculates maximum message entries based on message length
Then
If calculated entries is less than 1 then system terminates with message too short error, otherwise processing continues
R-GCX015E-cbl-00261
No More Messages
Decision Rules
📊 Business Logic Narrative
When the process 'No More Messages' is invoked, and assuming that system is attempting to retrieve messages from queue, when no message available reason code 2033 is returned, the desired outcome is that processing is marked as finished and system proceeds to cleanup.
💻 Technical Criteria
Given
System is attempting to retrieve messages from queue
When
No message available reason code 2033 is returned
Then
Processing is marked as finished and system proceeds to cleanup
R-GCX015E-cbl-00275
Format K1 Error Message
Process Rules
📊 Business Logic Narrative
When the process 'Format K1 Error Message' is invoked, and assuming that k1 error messages are being processed and hold-k1-message contains content, when k1 error message is being formatted, the desired outcome is that if hold-k1-message is not spaces, then the message content is moved to gcx105-message for logging.
💻 Technical Criteria
Given
K1 error messages are being processed and HOLD-K1-MESSAGE contains content
When
K1 error message is being formatted
Then
If HOLD-K1-MESSAGE is not spaces, then the message content is moved to GCX105-MESSAGE for logging
R-GCX015E-cbl-00277
Log Multiple K1 Messages
Process Rules
📊 Business Logic Narrative
When the process 'Log Multiple K1 Messages' is invoked, and assuming that multiple k1 error messages exist in hold-k1-message array, when multiple k1 messages are being logged, the desired outcome is that system processes each k1-cnt from 1 incrementing by 1 until hold-k1-message is spaces or k1-cnt exceeds 999.
💻 Technical Criteria
Given
Multiple K1 error messages exist in HOLD-K1-MESSAGE array
When
Multiple K1 messages are being logged
Then
System processes each K1-CNT from 1 incrementing by 1 until HOLD-K1-MESSAGE is spaces or K1-CNT exceeds 999
R-GCX015E-cbl-00279
M11 Segment Found
Process Rules
📊 Business Logic Narrative
When the process 'M11 Segment Found' is invoked, and assuming that an m11 segment is present in the message and the current data type is marked as unknown, when the system processes the m11 segment, the desired outcome is that the system should extract the m11 segment data and continue processing.
💻 Technical Criteria
Given
An M11 segment is present in the message and the current data type is marked as unknown
When
The system processes the M11 segment
Then
The system should extract the M11 segment data and continue processing
R-GCX015E-cbl-00310
Set Default Merlin ID as From User
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Default Merlin ID as From User' is invoked, and assuming that an email needs to be sent through the merlin system, when the email sender is being configured, the desired outcome is that the system sets the default merlin id as the from user code.
💻 Technical Criteria
Given
An email needs to be sent through the Merlin system
When
The email sender is being configured
Then
The system sets the default Merlin ID as the from user code
R-GCX015E-cbl-00314
Format Email Content
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Format Email Content', assuming that an email is being prepared for sending, when the system determines that warning emails should not be sent, the desired outcome is that the system clears the email text content to spaces.
💻 Technical Criteria
EXCLUDING
An email is being prepared for sending
When
The system determines that warning emails should not be sent
Then
The system clears the email text content to spaces
R-GCX015E-cbl-00316
Call EMCSEND3 to Send Email
Action Rules
📊 Business Logic Narrative
When the process 'Call EMCSEND3 to Send Email' is invoked, and assuming that email parameters and content have been configured, when the system needs to send the email, the desired outcome is that the system calls the emcsend3 service with all configured email parameters.
💻 Technical Criteria
Given
Email parameters and content have been configured
When
The system needs to send the email
Then
The system calls the EMCSEND3 service with all configured email parameters
R-GCX015E-cbl-00320
Log Email Send Failure
Action Rules
📊 Business Logic Narrative
When the process 'Log Email Send Failure' is invoked, and assuming that both primary and backup email send attempts have failed, when the system processes the complete delivery failure, the desired outcome is that the system logs the error message 'send to file of om01247 failed' and triggers error handling.
💻 Technical Criteria
Given
Both primary and backup email send attempts have failed
When
The system processes the complete delivery failure
Then
The system logs the error message 'SEND TO FILE OF OM01247 FAILED' and triggers error handling
R-GCX015E-cbl-00328
Mark as US Train Type
Definitional Rules
📊 Business Logic Narrative
When the process 'Mark as US Train Type' is invoked, and assuming that a train arrival event is being processed, when the system sets the train type indicator, the desired outcome is that the train should be marked as us train type.
💻 Technical Criteria
Given
A train arrival event is being processed
When
The system sets the train type indicator
Then
The train should be marked as US train type
R-GCX015E-cbl-00329
Write Train Arrival Message to Queue
Action Rules
📊 Business Logic Narrative
When the process 'Write Train Arrival Message to Queue' is invoked, and assuming that a complete train arrival message has been prepared with all required fields, when the system submits the message for processing, the desired outcome is that the message should be written to the message queue using the gct1121e message format.
💻 Technical Criteria
Given
A complete train arrival message has been prepared with all required fields
When
The system submits the message for processing
Then
The message should be written to the message queue using the GCT1121E message format
R-GCX015E-cbl-00332
Retrieve Broker Short Name from GCST2RT
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Broker Short Name from GCST2RT' is invoked, and assuming that a broker lookup key has been constructed with fw= prefix and freight forwarder name, when the system queries the gcst2rt broker master table, the desired outcome is that the broker short name is retrieved and stored in gct2-broker-name-short field.
💻 Technical Criteria
Given
A broker lookup key has been constructed with FW= prefix and freight forwarder name
When
The system queries the GCST2RT broker master table
Then
The broker short name is retrieved and stored in GCT2-BROKER-NAME-SHORT field
R-GCX015E-cbl-00345
Format Email Subject Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Email Subject Line' is invoked, and assuming that a cbp warning message needs to be sent via email, when the system formats the email subject line, the desired outcome is that the system uses the predefined email subject format for cbp warnings.
💻 Technical Criteria
Given
A CBP warning message needs to be sent via email
When
The system formats the email subject line
Then
The system uses the predefined email subject format for CBP warnings
R-GCX015E-cbl-00353
Format CBP Warning Message
Process Rules
📊 Business Logic Narrative
When the process 'Format CBP Warning Message' is invoked, and assuming that a k1 segment contains a cbp warning message, when the system formats the cbp warning message for email content, the desired outcome is that the system includes the free-form message text from the k1 segment in the formatted warning message line.
💻 Technical Criteria
Given
A K1 segment contains a CBP warning message
When
The system formats the CBP warning message for email content
Then
The system includes the free-form message text from the K1 segment in the formatted warning message line
R-GCX015E-cbl-00354
Format Occurrence Date/Time
Process Rules
📊 Business Logic Narrative
When the process 'Format Occurrence Date/Time' is invoked, and assuming that date and time components have been extracted from k3 segment, when the system formats the occurrence date and time for email content, the desired outcome is that the system concatenates formatted date with formatted time separated by space to create occurrence timestamp.
💻 Technical Criteria
Given
Date and time components have been extracted from K3 segment
When
The system formats the occurrence date and time for email content
Then
The system concatenates formatted date with formatted time separated by space to create occurrence timestamp
R-GCX015E-cbl-00371
Call MQGET to Retrieve Message
Action Rules
📊 Business Logic Narrative
When the process 'Call MQGET to Retrieve Message' is invoked, and assuming that the system is connected to the message queue, when a message retrieval request is made, the desired outcome is that the system calls mqget to retrieve the next available message from the queue.
💻 Technical Criteria
Given
The system is connected to the message queue
When
A message retrieval request is made
Then
The system calls MQGET to retrieve the next available message from the queue
R-GCX015E-cbl-00373
Message Too Short Check
Validation Rules
📊 Business Logic Narrative
When the process 'Message Too Short Check' is invoked, and assuming that a message has been successfully retrieved from the queue, when the calculated maximum message entries is less than 1, the desired outcome is that the system generates a user abend 355 error for message too short.
💻 Technical Criteria
Given
A message has been successfully retrieved from the queue
When
The calculated maximum message entries is less than 1
Then
The system generates a user abend 355 error for message too short
R-GCX015E-cbl-00374
Calculate Number of Message Entries
Computation Rules
📊 Business Logic Narrative
When the process 'Calculate Number of Message Entries' is invoked, and assuming that a message has been retrieved with valid data length, when the system processes the message structure, the desired outcome is that the maximum message entries is calculated as (data length minus header length minus unused length) divided by single entry length.
💻 Technical Criteria
Given
A message has been retrieved with valid data length
When
The system processes the message structure
Then
The maximum message entries is calculated as (data length minus header length minus unused length) divided by single entry length
R-GCX015E-cbl-00375
Message Backout Count Check
Decision Rules
📊 Business Logic Narrative
When the process 'Message Backout Count Check' is invoked, and assuming that a message has been successfully retrieved from the queue, when the message backout count equals 0, the desired outcome is that the message is marked as good for processing, otherwise it is marked to be skipped.
💻 Technical Criteria
Given
A message has been successfully retrieved from the queue
When
The message backout count equals 0
Then
The message is marked as good for processing, otherwise it is marked to be skipped
🏷️ CCN & Waybill Identification
40 logic blocks
R-GCX015E-cbl-00011
11:Retrieve Cargo Root Information
Action Rules
📊 Business Logic Narrative
When the process '11:Retrieve Cargo Root Information' is invoked, and assuming that processing type is determined as cargo, when the system attempts to retrieve cargo root data using the us ccn key, the desired outcome is that if cargo record is found, the cargo data is loaded and cargo/train found flag is set to true with equipment car number as sub-key; if cargo record is not found, cargo/train not found flag is set to true and 'this us-ccn-key was not found' message is logged.
💻 Technical Criteria
Given
Processing type is determined as CARGO
When
The system attempts to retrieve cargo root data using the US CCN key
Then
If cargo record is found, the cargo data is loaded and cargo/train found flag is set to true with equipment car number as sub-key; if cargo record is not found, cargo/train not found flag is set to true and 'THIS US-CCN-KEY WAS NOT FOUND' message is logged
R-GCX015E-cbl-00019
19:Send Email Warning Notifications
Action Rules
📊 Business Logic Narrative
When the process '19:Send Email Warning Notifications' is invoked, and assuming that k1 message number is '695', '697', or '699', when the system processes the warning message, the desired outcome is that freight forwarder information is retrieved, broker contact details are obtained if available, shipment root data is loaded, comprehensive email is formatted with ccn, equipment details, waybill information, load/empty indicator, content description, origin/destination stations, consignee information, cbp warning message, and occurrence timestamp, and email is sent to appropriate recipients.
💻 Technical Criteria
Given
K1 message number is '695', '697', or '699'
When
The system processes the warning message
Then
Freight forwarder information is retrieved, broker contact details are obtained if available, shipment root data is loaded, comprehensive email is formatted with CCN, equipment details, waybill information, load/empty indicator, content description, origin/destination stations, consignee information, CBP warning message, and occurrence timestamp, and email is sent to appropriate recipients
R-GCX015E-cbl-00020
23:Log Customs Response Information
Process Rules
📊 Business Logic Narrative
When the process '23:Log Customs Response Information' is invoked, and assuming that a customs transaction has been processed, when the system logs the transaction information, the desired outcome is that log message is prepared with train or cargo ccn, processing type flag, action code 'zzz', status message content, sending transaction code, acf2 user id, current date from k3 segment, and current time from k3 segment, and log entry is spawned via gct1051e transaction.
💻 Technical Criteria
Given
A customs transaction has been processed
When
The system logs the transaction information
Then
Log message is prepared with train or cargo CCN, processing type flag, action code 'ZZZ', status message content, sending transaction code, ACF2 user ID, current date from K3 segment, and current time from K3 segment, and log entry is spawned via GCT1051E transaction
R-GCX015E-cbl-00056
Extract M11 Segment Data
Process Rules
📊 Business Logic Narrative
When the process 'Extract M11 Segment Data' is invoked, and assuming that an m11 segment has been identified, when the system processes the m11 segment, the desired outcome is that m11 segment data is extracted including scac and bill of lading number.
💻 Technical Criteria
Given
An M11 segment has been identified
When
The system processes the M11 segment
Then
M11 segment data is extracted including SCAC and bill of lading number
R-GCX015E-cbl-00057
Build Cargo Key from M11 Data
Computation Rules
📊 Business Logic Narrative
When the process 'Build Cargo Key from M11 Data' is invoked, and assuming that m11 segment data has been extracted, when the system builds the cargo identification key, the desired outcome is that a cargo key is constructed using m11-12 scac and m11-01 bill of lading number.
💻 Technical Criteria
Given
M11 segment data has been extracted
When
The system builds the cargo identification key
Then
A cargo key is constructed using M11-12 SCAC and M11-01 bill of lading number
R-GCX015E-cbl-00396
Retrieve Shipment Root Data
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Shipment Root Data' is invoked, and assuming that warning email notification is being prepared, when the system calls shipment root retrieval using the waybill key from cargo data, the desired outcome is that shipment root data should be retrieved for inclusion in email content.
💻 Technical Criteria
Given
Warning email notification is being prepared
When
The system calls shipment root retrieval using the waybill key from cargo data
Then
Shipment root data should be retrieved for inclusion in email content
R-GCX015E-cbl-00397
Format Email Content for Warnings
Process Rules
📊 Business Logic Narrative
When the process 'Format Email Content for Warnings' is invoked, and assuming that warning message 695, 697, or 699 requires email notification and shipment data is available, when the system formats email content with equipment details, waybill information, ccn data, load/empty indicator, content description, origin/destination stations, consignee information, cbp warning message, and occurrence timestamp, the desired outcome is that a complete formatted email should be prepared with all shipment details and warning information.
💻 Technical Criteria
Given
Warning message 695, 697, or 699 requires email notification and shipment data is available
When
The system formats email content with equipment details, waybill information, CCN data, load/empty indicator, content description, origin/destination stations, consignee information, CBP warning message, and occurrence timestamp
Then
A complete formatted email should be prepared with all shipment details and warning information
R-GCX015E-cbl-00464
Set US-CCN Key for Search
Process Rules
📊 Business Logic Narrative
When the process 'Set US-CCN Key for Search' is invoked, and assuming that a valid us-ccn exists from the cargo root record, when initiating freight forwarder data retrieval, the desired outcome is that the us-ccn key is set for gcsa2rt segment search with record type '03' and sequence '0'.
💻 Technical Criteria
Given
A valid US-CCN exists from the cargo root record
When
Initiating freight forwarder data retrieval
Then
The US-CCN key is set for GCSA2RT segment search with record type '03' and sequence '0'
R-GCX015E-cbl-00465
Get First GCSA2RT Segment
Action Rules
📊 Business Logic Narrative
When the process 'Get First GCSA2RT Segment' is invoked, and assuming that us-ccn key is properly set for gcsa2rt segment search, when database retrieval is executed with 'gu' function and greater than operator, the desired outcome is that first matching gcsa2rt segment is retrieved or no record found status is returned.
💻 Technical Criteria
Given
US-CCN key is properly set for GCSA2RT segment search
When
Database retrieval is executed with 'GU' function and greater than operator
Then
First matching GCSA2RT segment is retrieved or no record found status is returned
R-GCX015E-cbl-00479
Same US-CCN Key?
Validation Rules
📊 Business Logic Narrative
When the process 'Same US-CCN Key?' is invoked, and assuming that a new gcsa2rt segment has been retrieved, when comparing the segment's us-ccn key with the original search key, the desired outcome is that us-ccn keys match indicating same shipment, or keys differ indicating end of related segments.
💻 Technical Criteria
Given
A new GCSA2RT segment has been retrieved
When
Comparing the segment's US-CCN key with the original search key
Then
US-CCN keys match indicating same shipment, or keys differ indicating end of related segments
R-GCX015E-cbl-00480
All Required Data Found?
Decision Rules
📊 Business Logic Narrative
When the process 'All Required Data Found?' is invoked, and assuming that segment processing is continuing with valid us-ccn key, when evaluating collected data completeness, the desired outcome is that freight forwarder found and segment 07 found and consignee found indicates complete data collection.
💻 Technical Criteria
Given
Segment processing is continuing with valid US-CCN key
When
Evaluating collected data completeness
Then
Freight forwarder found AND segment 07 found AND consignee found indicates complete data collection
R-GCX015E-cbl-00491
Initialize FWWWBIO Parameters
Process Rules
📊 Business Logic Narrative
When the process 'Initialize FWWWBIO Parameters' is invoked, and assuming that a request to retrieve shipment root data is initiated, when the system prepares to access the freight waybill system, the desired outcome is that the fwwwbio parameters are cleared and initialized to spaces.
💻 Technical Criteria
Given
A request to retrieve shipment root data is initiated
When
The system prepares to access the freight waybill system
Then
The FWWWBIO parameters are cleared and initialized to spaces
R-GCX015E-cbl-00492
Set Segment Type to 'SHIPROOT'
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Segment Type to 'SHIPROOT'' is invoked, and assuming that the freight waybill system parameters are initialized, when the system needs to specify what type of data to retrieve, the desired outcome is that the segment type is set to 'shiproot' to indicate shipment root data retrieval.
💻 Technical Criteria
Given
The freight waybill system parameters are initialized
When
The system needs to specify what type of data to retrieve
Then
The segment type is set to 'SHIPROOT' to indicate shipment root data retrieval
R-GCX015E-cbl-00495
Extract Waybill Key from Cargo Record
Process Rules
📊 Business Logic Narrative
When the process 'Extract Waybill Key from Cargo Record' is invoked, and assuming that a cargo record exists with waybill information, when the system needs to identify the specific shipment to retrieve, the desired outcome is that the waybill key is extracted from the cargo record field rt082-waybill-key and assigned to the root key parameter.
💻 Technical Criteria
Given
A cargo record exists with waybill information
When
The system needs to identify the specific shipment to retrieve
Then
The waybill key is extracted from the cargo record field RT082-WAYBILL-KEY and assigned to the root key parameter
R-GCX015E-cbl-00496
Call FWCWBIO to Retrieve Shipment Root
Action Rules
📊 Business Logic Narrative
When the process 'Call FWCWBIO to Retrieve Shipment Root' is invoked, and assuming that all parameters are configured with segment type 'shiproot', function 'gu', accept status 'ge', and waybill key, when the system executes the freight waybill data retrieval, the desired outcome is that the fwcwbio program is called with the configured parameters to retrieve the shipment root data.
💻 Technical Criteria
Given
All parameters are configured with segment type 'SHIPROOT', function 'GU', accept status 'GE', and waybill key
When
The system executes the freight waybill data retrieval
Then
The FWCWBIO program is called with the configured parameters to retrieve the shipment root data
R-GCX015E-cbl-00098
Use US-CCN-KEY from M10 Segment
Process Rules
📊 Business Logic Narrative
When the process 'Use US-CCN-KEY from M10 Segment' is invoked, and assuming that m10 segment data contains a us-ccn-key value, when the system prepares to query the cargo database, the desired outcome is that the us-ccn-key from the processed m10 data is used as the database query key.
💻 Technical Criteria
Given
M10 segment data contains a US-CCN-KEY value
When
The system prepares to query the cargo database
Then
The US-CCN-KEY from the processed M10 data is used as the database query key
R-GCX015E-cbl-00099
Call Database to Retrieve Cargo Record
Action Rules
📊 Business Logic Narrative
When the process 'Call Database to Retrieve Cargo Record' is invoked, and assuming that database parameters are configured with us-ccn-key and get unique function, when the system executes the database retrieval operation, the desired outcome is that the gccusio program is called with the cargo segment parameters to retrieve the cargo record.
💻 Technical Criteria
Given
Database parameters are configured with US-CCN-KEY and GET UNIQUE function
When
The system executes the database retrieval operation
Then
The GCCUSIO program is called with the cargo segment parameters to retrieve the cargo record
R-GCX015E-cbl-00105
Log Error Message - US-CCN-KEY Not Found
Validation Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Log Error Message - US-CCN-KEY Not Found', assuming that a cargo record could not be found for the specified us-ccn-key, when the system logs the error condition, the desired outcome is that an error message 'this us-ccn-key was not found: ' is written to the merlin error report and the line count is incremented.
💻 Technical Criteria
EXCLUDING
A cargo record could not be found for the specified US-CCN-KEY
When
The system logs the error condition
Then
An error message 'THIS US-CCN-KEY WAS NOT FOUND: ' is written to the Merlin error report and the line count is incremented
R-GCX015E-cbl-00171
Retrieve Shipment Root Data
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Shipment Root Data' is invoked, and assuming that cargo information is available for email warning, when the system needs shipment details for email content, the desired outcome is that the system calls fwcwbio to retrieve shiproot segment using the waybill key from cargo data.
💻 Technical Criteria
Given
Cargo information is available for email warning
When
The system needs shipment details for email content
Then
The system calls FWCWBIO to retrieve SHIPROOT segment using the waybill key from cargo data
R-GCX015E-cbl-00173
Format Email Content with Shipment Details
Process Rules
📊 Business Logic Narrative
When the process 'Format Email Content with Shipment Details' is invoked, and assuming that shipment data is available for email warning, when the system constructs email content, the desired outcome is that the system formats email with header lines, equipment details, waybill information, ccn data, load/empty indicator, content description, origin/destination stations, consignee info, cbp warning message, timestamp, and footer text.
💻 Technical Criteria
Given
Shipment data is available for email warning
When
The system constructs email content
Then
The system formats email with header lines, equipment details, waybill information, CCN data, load/empty indicator, content description, origin/destination stations, consignee info, CBP warning message, timestamp, and footer text
R-GCX015E-cbl-00175
Add Waybill Information
Process Rules
📊 Business Logic Narrative
When the process 'Add Waybill Information' is invoked, and assuming that waybill information is available from cargo data, when the system formats email content, the desired outcome is that the system concatenates road index, station index, and waybill index from gcusrt-rt072 fields into waybill line data.
💻 Technical Criteria
Given
Waybill information is available from cargo data
When
The system formats email content
Then
The system concatenates road index, station index, and waybill index from GCUSRT-RT072 fields into waybill line data
R-GCX015E-cbl-00176
Add CCN Information
Process Rules
📊 Business Logic Narrative
When the process 'Add CCN Information' is invoked, and assuming that ccn data is available from message processing, when the system formats email content, the desired outcome is that the system adds the ccn (container control number) from work-m10-12-data to the email text.
💻 Technical Criteria
Given
CCN data is available from message processing
When
The system formats email content
Then
The system adds the CCN (Container Control Number) from WORK-M10-12-DATA to the email text
R-GCX015E-cbl-00425
Extract Waybill Information
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Waybill Information' is invoked, and assuming that a cargo record contains waybill reference data, when the system builds email warning content, the desired outcome is that road index, station index, and waybill index are concatenated from rt072 fields into waybill line data.
💻 Technical Criteria
Given
A cargo record contains waybill reference data
When
The system builds email warning content
Then
Road index, station index, and waybill index are concatenated from RT072 fields into waybill line data
R-GCX015E-cbl-00426
Format Waybill Line Data
Process Rules
📊 Business Logic Narrative
When the process 'Format Waybill Line Data' is invoked, and assuming that waybill information has been extracted and concatenated, when the system formats the email content, the desired outcome is that the waybill line variables are placed at email text line 8.
💻 Technical Criteria
Given
Waybill information has been extracted and concatenated
When
The system formats the email content
Then
The waybill line variables are placed at email text line 8
R-GCX015E-cbl-00427
Format CCN Key Information
Process Rules
📊 Business Logic Narrative
When the process 'Format CCN Key Information' is invoked, and assuming that the m10-12 work data contains ccn information, when the system builds email warning content, the desired outcome is that the ccn line variables are formatted and placed at email text line 9.
💻 Technical Criteria
Given
The M10-12 work data contains CCN information
When
The system builds email warning content
Then
The CCN line variables are formatted and placed at email text line 9
R-GCX015E-cbl-00528
Get Origin Station Name from SHIPROOT
Action Rules
📊 Business Logic Narrative
When the process 'Get Origin Station Name from SHIPROOT' is invoked, and assuming that a cargo shipment record exists with waybill key information, when the system needs to extract origin station information for email notification, the desired outcome is that the origin station name should be retrieved from shiproot database using the waybill key.
💻 Technical Criteria
Given
A cargo shipment record exists with waybill key information
When
The system needs to extract origin station information for email notification
Then
The origin station name should be retrieved from SHIPROOT database using the waybill key
R-GCX015E-cbl-00529
Get Origin Province/State Code from SHIPROOT
Action Rules
📊 Business Logic Narrative
When the process 'Get Origin Province/State Code from SHIPROOT' is invoked, and assuming that a cargo shipment record exists with waybill key information, when the system needs to extract origin location details for email notification, the desired outcome is that the origin province or state code should be retrieved from shiproot database using the waybill key.
💻 Technical Criteria
Given
A cargo shipment record exists with waybill key information
When
The system needs to extract origin location details for email notification
Then
The origin province or state code should be retrieved from SHIPROOT database using the waybill key
R-GCX015E-cbl-00530
Get Destination Station Name from SHIPROOT
Action Rules
📊 Business Logic Narrative
When the process 'Get Destination Station Name from SHIPROOT' is invoked, and assuming that a cargo shipment record exists with waybill key information, when the system needs to extract destination station information for email notification, the desired outcome is that the destination station name should be retrieved from shiproot database using the waybill key.
💻 Technical Criteria
Given
A cargo shipment record exists with waybill key information
When
The system needs to extract destination station information for email notification
Then
The destination station name should be retrieved from SHIPROOT database using the waybill key
R-GCX015E-cbl-00531
Get Destination Province/State Code from SHIPROOT
Action Rules
📊 Business Logic Narrative
When the process 'Get Destination Province/State Code from SHIPROOT' is invoked, and assuming that a cargo shipment record exists with waybill key information, when the system needs to extract destination location details for email notification, the desired outcome is that the destination province or state code should be retrieved from shiproot database using the waybill key.
💻 Technical Criteria
Given
A cargo shipment record exists with waybill key information
When
The system needs to extract destination location details for email notification
Then
The destination province or state code should be retrieved from SHIPROOT database using the waybill key
R-GCX015E-cbl-00189
Initialize Search Parameters
Process Rules
📊 Business Logic Narrative
When the process 'Initialize Search Parameters' is invoked, and assuming that a us cargo ccn key is available for processing, when the system begins searching for freight forwarder information, the desired outcome is that search parameters are initialized with freight forwarder not found status, consignee not found status, and additional data segment not found status.
💻 Technical Criteria
Given
A US Cargo CCN key is available for processing
When
The system begins searching for freight forwarder information
Then
Search parameters are initialized with freight forwarder not found status, consignee not found status, and additional data segment not found status
R-GCX015E-cbl-00190
Get First US Cargo Secondary Record
Action Rules
📊 Business Logic Narrative
When the process 'Get First US Cargo Secondary Record' is invoked, and assuming that a valid us cargo ccn key exists, when the system searches for the first secondary record with record type '00' and sequence '00' using greater than operator, the desired outcome is that the first available secondary record for the ccn is retrieved or no record found status is returned.
💻 Technical Criteria
Given
A valid US Cargo CCN key exists
When
The system searches for the first secondary record with record type '00' and sequence '00' using greater than operator
Then
The first available secondary record for the CCN is retrieved or no record found status is returned
R-GCX015E-cbl-00196
Get Next US Cargo Secondary Record
Action Rules
📊 Business Logic Narrative
When the process 'Get Next US Cargo Secondary Record' is invoked, and assuming that a secondary record has been processed and more records may exist, when the system continues searching using get next function, the desired outcome is that the next secondary record for the same ccn is retrieved or end of records is indicated.
💻 Technical Criteria
Given
A secondary record has been processed and more records may exist
When
The system continues searching using get next function
Then
The next secondary record for the same CCN is retrieved or end of records is indicated
R-GCX015E-cbl-00197
More Records for Same CCN?
Validation Rules
📊 Business Logic Narrative
When the process 'More Records for Same CCN?' is invoked, and assuming that a secondary record is retrieved during the search process, when the record's ccn key is compared with the original search ccn, the desired outcome is that if the ccn keys match, continue processing; if they don't match, stop the search process.
💻 Technical Criteria
Given
A secondary record is retrieved during the search process
When
The record's CCN key is compared with the original search CCN
Then
If the CCN keys match, continue processing; if they don't match, stop the search process
R-GCX015E-cbl-00198
Both Freight Forwarder and Consignee Found?
Decision Rules
📊 Business Logic Narrative
When the process 'Both Freight Forwarder and Consignee Found?' is invoked, and assuming that the search process has completed for all secondary records of a ccn, when the system evaluates the search results, the desired outcome is that if both freight forwarder and consignee are found, or if freight forwarder is found and additional data segment 07 is found, or if consignee is found, the search is considered complete.
💻 Technical Criteria
Given
The search process has completed for all secondary records of a CCN
When
The system evaluates the search results
Then
If both freight forwarder and consignee are found, or if freight forwarder is found and additional data segment 07 is found, or if consignee is found, the search is considered complete
R-GCX015E-cbl-00212
Extract Waybill Key from Cargo Record
Process Rules
📊 Business Logic Narrative
When the process 'Extract Waybill Key from Cargo Record' is invoked, and assuming that a cargo record with waybill information exists, when the system needs to retrieve associated shipment root data, the desired outcome is that the waybill key from field gcusrt-rt082-waybill-key is extracted and used as the root key for database lookup.
💻 Technical Criteria
Given
A cargo record with waybill information exists
When
The system needs to retrieve associated shipment root data
Then
The waybill key from field GCUSRT-RT082-WAYBILL-KEY is extracted and used as the root key for database lookup
R-GCX015E-cbl-00213
Call FWCWBIO to Retrieve Shipment Root
Action Rules
📊 Business Logic Narrative
When the process 'Call FWCWBIO to Retrieve Shipment Root' is invoked, and assuming that all shipment root retrieval parameters are configured with waybill key, segment type, function code, and accept status, when the system executes the database retrieval operation, the desired outcome is that the fwcwbio program is called with the configured parameters to retrieve shipment root data from the shiproot database.
💻 Technical Criteria
Given
All shipment root retrieval parameters are configured with waybill key, segment type, function code, and accept status
When
The system executes the database retrieval operation
Then
The FWCWBIO program is called with the configured parameters to retrieve shipment root data from the SHIPROOT database
R-GCX015E-cbl-00272
Set Transaction Details
Process Rules
📊 Business Logic Narrative
When the process 'Set Transaction Details' is invoked, and assuming that audit log information is being prepared and work-m10-12-data contains the identifier, when transaction details are being set, the desired outcome is that the train or us ccn identifier is set to work-m10-12-data value.
💻 Technical Criteria
Given
Audit log information is being prepared and WORK-M10-12-DATA contains the identifier
When
Transaction details are being set
Then
The train or US CCN identifier is set to WORK-M10-12-DATA value
R-GCX015E-cbl-00282
Extract Bill/Waybill Number from M11-01
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Bill/Waybill Number from M11-01' is invoked, and assuming that an m11 segment contains cargo information, when the system extracts the bill number, the desired outcome is that the m11-01-bol-wb-num value should be moved to the work-bill-number field.
💻 Technical Criteria
Given
An M11 segment contains cargo information
When
The system extracts the bill number
Then
The M11-01-BOL-WB-NUM value should be moved to the WORK-BILL-NUMBER field
R-GCX015E-cbl-00315
Set Email Parameters
Process Rules
📊 Business Logic Narrative
When the process 'Set Email Parameters' is invoked, and assuming that an email is being prepared for sending through merlin, when email parameters are being configured, the desired outcome is that the system sets the destination filename to inbox, item width to 080, and clears copy usercode, keywords, and sequence numbers.
💻 Technical Criteria
Given
An email is being prepared for sending through Merlin
When
Email parameters are being configured
Then
The system sets the destination filename to inbox, item width to 080, and clears copy usercode, keywords, and sequence numbers
R-GCX015E-cbl-00347
Format Waybill Information Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Waybill Information Line' is invoked, and assuming that waybill information exists in the cargo record, when the system formats waybill information for email content, the desired outcome is that the system concatenates road index, station index, and waybill index into a formatted waybill line.
💻 Technical Criteria
Given
Waybill information exists in the cargo record
When
The system formats waybill information for email content
Then
The system concatenates road index, station index, and waybill index into a formatted waybill line
💰 Bond & Financial Auth
13 logic blocks
R-GCX015E-cbl-00001
1:Initialize Processing Fields
Process Rules
📊 Business Logic Narrative
When the process '1:Initialize Processing Fields' is invoked, and assuming that the customs message processing system is starting up, when the initialization process begins, the desired outcome is that all processing switches are reset to initial state, counters are set to 1, table keys are cleared, function codes are set to 'gu', table id is set to 'ad', sequence id is set to 'adminid', accept status is set to 'ge', and admin configuration data is loaded from gcstbrt-ad-segment or default value 'om01247' is used if loading fails.
💻 Technical Criteria
Given
The customs message processing system is starting up
When
The initialization process begins
Then
All processing switches are reset to initial state, counters are set to 1, table keys are cleared, function codes are set to 'GU', table ID is set to 'AD', sequence ID is set to 'ADMINID', accept status is set to 'GE', and admin configuration data is loaded from GCSTBRT-AD-SEGMENT or default value 'OM01247' is used if loading fails
R-GCX015E-cbl-00545
Use M1203 Location ID
Decision Rules
📊 Business Logic Narrative
When the process 'Use M1203 Location ID' is invoked, and assuming that a freight forwarder broker requires location-specific information lookup and both m1203 location id and p401 location id are available in the system, when the system needs to select a location identifier for broker table lookup and m1203 location id contains actual data (not spaces), the desired outcome is that the system shall use m1203 location id as the primary location identifier for the broker information lookup.
💻 Technical Criteria
Given
A freight forwarder broker requires location-specific information lookup and both M1203 Location ID and P401 Location ID are available in the system
When
The system needs to select a location identifier for broker table lookup and M1203 Location ID contains actual data (not spaces)
Then
The system shall use M1203 Location ID as the primary location identifier for the broker information lookup
R-GCX015E-cbl-00547
Create Broker Key for Table Lookup
Computation Rules
📊 Business Logic Narrative
When the process 'Create Broker Key for Table Lookup' is invoked, and assuming that a broker short name has been retrieved and a location identifier has been selected (either m1203 or p401), when the system needs to create a lookup key for accessing broker information in the table, the desired outcome is that the system shall concatenate the broker short name with the selected location identifier to form the complete broker key for table lookup operations.
💻 Technical Criteria
Given
A broker short name has been retrieved and a location identifier has been selected (either M1203 or P401)
When
The system needs to create a lookup key for accessing broker information in the table
Then
The system shall concatenate the broker short name with the selected location identifier to form the complete broker key for table lookup operations
R-GCX015E-cbl-00128
Set Customs Transaction Code to GCT1461E
Process Rules
📊 Business Logic Narrative
When the process 'Set Customs Transaction Code to GCT1461E' is invoked, and assuming that a train passes all aei eligibility checks, when the system prepares customs transaction, the desired outcome is that set transaction code to gct1461e, security to high values, customs code to 'a', and copy train identification and routing details.
💻 Technical Criteria
Given
A train passes all AEI eligibility checks
When
The system prepares customs transaction
Then
Set transaction code to GCT1461E, security to high values, customs code to 'A', and copy train identification and routing details
R-GCX015E-cbl-00160
Set Security Parameters
Authorization Rules
📊 Business Logic Narrative
When the process 'Set Security Parameters' is invoked, and assuming that a train arrival transaction is being created, when security parameters are being set, the desired outcome is that the security byte must be set to high-value and the transaction type must be marked as us-train.
💻 Technical Criteria
Given
A train arrival transaction is being created
When
Security parameters are being set
Then
The security byte must be set to HIGH-VALUE and the transaction type must be marked as US-TRAIN
R-GCX015E-cbl-00170
Get Freight Forwarder Broker Contact Information
Action Rules
📊 Business Logic Narrative
When the process 'Get Freight Forwarder Broker Contact Information' is invoked, and assuming that broker short name is available and location id exists, when the system constructs lookup keys using broker short name with either m1203 location id or p401 location id, the desired outcome is that the system retrieves broker segment (bk) and internet address segment (b1) from table, and if broker uses internet, sets email recipient to internet address.
💻 Technical Criteria
Given
Broker short name is available and location ID exists
When
The system constructs lookup keys using broker short name with either M1203 location ID or P401 location ID
Then
The system retrieves broker segment (BK) and internet address segment (B1) from table, and if broker uses internet, sets email recipient to internet address
R-GCX015E-cbl-00214
Prepare Log Information Structure
Process Rules
📊 Business Logic Narrative
When the process 'Prepare Log Information Structure' is invoked, and assuming that a customs response needs to be logged, when the system prepares the log information structure, the desired outcome is that the message field is cleared, action code is cleared, and security byte is set to high value.
💻 Technical Criteria
Given
A customs response needs to be logged
When
The system prepares the log information structure
Then
The message field is cleared, action code is cleared, and security byte is set to high value
R-GCX015E-cbl-00233
Set Security to High Values
Policy Rules
📊 Business Logic Narrative
When the process 'Set Security to High Values' is invoked, and assuming that a customs transaction is being prepared, when the system sets security parameters, the desired outcome is that the customs security must be set to high values.
💻 Technical Criteria
Given
A customs transaction is being prepared
When
The system sets security parameters
Then
The customs security must be set to high values
R-GCX015E-cbl-00267
Prepare Log Information
Process Rules
📊 Business Logic Narrative
When the process 'Prepare Log Information' is invoked, and assuming that an audit trail generation process is initiated, when the system prepares log information, the desired outcome is that the message field is cleared, action code is cleared, and security byte is set to high value.
💻 Technical Criteria
Given
An audit trail generation process is initiated
When
The system prepares log information
Then
The message field is cleared, action code is cleared, and security byte is set to high value
R-GCX015E-cbl-00301
Set Status to Current Customs Status
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Status to Current Customs Status', assuming that a train record exists with current status that is not deleted and not delete-pending and the processing type is train, when the train status update process is executed, the desired outcome is that the train status should be updated to the current customs status value and the train record should be updated with root-only replacement.
💻 Technical Criteria
EXCLUDING
A train record exists with current status that is not DELETED and not DELETE-PENDING and the processing type is TRAIN
When
The train status update process is executed
Then
The train status should be updated to the current customs status value and the train record should be updated with root-only replacement
R-GCX015E-cbl-00327
Set Security Byte to High Value
Policy Rules
📊 Business Logic Narrative
When the process 'Set Security Byte to High Value' is invoked, and assuming that a train arrival event message is being prepared, when the system sets the security classification, the desired outcome is that the security byte should be set to high value to ensure proper security handling.
💻 Technical Criteria
Given
A train arrival event message is being prepared
When
The system sets the security classification
Then
The security byte should be set to high value to ensure proper security handling
R-GCX015E-cbl-00339
Use Internet Communication?
Decision Rules
📊 Business Logic Narrative
When the process 'Use Internet Communication?' is invoked, and assuming that valid broker details exist with internet communication preference setting, when the system checks the gcstbrt-bk-use-internet field, the desired outcome is that if the value equals 'y', internet communication is enabled; otherwise, standard communication methods are used.
💻 Technical Criteria
Given
Valid broker details exist with internet communication preference setting
When
The system checks the GCSTBRT-BK-USE-INTERNET field
Then
If the value equals 'Y', internet communication is enabled; otherwise, standard communication methods are used
R-GCX015E-cbl-00363
Set Queue Name from MQTMC-QNAME
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Queue Name from MQTMC-QNAME' is invoked, and assuming that the system has a configured queue name for customs messages in mqtmc-qname, when the queue opening process requires queue identification, the desired outcome is that the queue name should be set from the mqtmc-qname configuration value.
💻 Technical Criteria
Given
The system has a configured queue name for customs messages in MQTMC-QNAME
When
The queue opening process requires queue identification
Then
The queue name should be set from the MQTMC-QNAME configuration value
📍 Routing, Border & Port
65 logic blocks
R-GCX015E-cbl-00010
10:Validate Required Segments Present
Validation Rules
📊 Business Logic Narrative
When the process '10:Validate Required Segments Present' is invoked, and assuming that a customs transaction message has been processed, when the system validates required segments, the desired outcome is that if m10 segment is not found, 'm10 segment not found on 355 transaction' is logged; if p4 segment is not found, 'p4 segment not found on 355 transaction' is logged; if k3 segment is not found, 'k3 segment not found on 355 transaction' is logged and a default k3 segment is processed.
💻 Technical Criteria
Given
A customs transaction message has been processed
When
The system validates required segments
Then
If M10 segment is not found, 'M10 SEGMENT NOT FOUND ON 355 TRANSACTION' is logged; if P4 segment is not found, 'P4 SEGMENT NOT FOUND ON 355 TRANSACTION' is logged; if K3 segment is not found, 'K3 SEGMENT NOT FOUND ON 355 TRANSACTION' is logged and a default K3 segment is processed
R-GCX015E-cbl-00029
Initialize Email Subject Fields
Process Rules
📊 Business Logic Narrative
When the process 'Initialize Email Subject Fields' is invoked, and assuming that administrative configuration is processed, when the system initializes email fields, the desired outcome is that email subject area and error report area are initialized to spaces.
💻 Technical Criteria
Given
Administrative configuration is processed
When
The system initializes email fields
Then
Email subject area and error report area are initialized to spaces
R-GCX015E-cbl-00032
Initialize Line Counter
Process Rules
📊 Business Logic Narrative
When the process 'Initialize Line Counter' is invoked, and assuming that processing status flags are set, when the system initializes the line counter, the desired outcome is that the error report line counter is set to 1 and error report area is cleared to spaces.
💻 Technical Criteria
Given
Processing status flags are set
When
The system initializes the line counter
Then
The error report line counter is set to 1 and error report area is cleared to spaces
R-GCX015E-cbl-00044
Reference Number Key = 'TRAIN'?
Decision Rules
📊 Business Logic Narrative
When the process 'Reference Number Key = 'TRAIN'?' is invoked, and assuming that an m10-12 reference number has been extracted from the segment, when the reference number key portion equals 'train', the desired outcome is that the system sets the train processing flag to true.
💻 Technical Criteria
Given
An M10-12 reference number has been extracted from the segment
When
The reference number key portion equals 'TRAIN'
Then
The system sets the train processing flag to true
R-GCX015E-cbl-00059
Set SHOULD-UPDATE-STATUS
Decision Rules
📊 Business Logic Narrative
When the process 'Set SHOULD-UPDATE-STATUS' is invoked, and assuming that a customs manifest message is being processed, when the m10 segment manifest type code is 'p' (primary), 'y' (yes), or 's' (supplemental), the desired outcome is that the system sets the record to require status update.
💻 Technical Criteria
Given
A customs manifest message is being processed
When
The M10 segment manifest type code is 'P' (Primary), 'Y' (Yes), or 'S' (Supplemental)
Then
The system sets the record to require status update
R-GCX015E-cbl-00060
Set SHOULD-DELETE-STATUS and SHOULD-UPDATE-STATUS
Decision Rules
📊 Business Logic Narrative
When the process 'Set SHOULD-DELETE-STATUS and SHOULD-UPDATE-STATUS' is invoked, and assuming that a customs manifest message is being processed and the processing type is determined as train, when the m10 segment manifest type code is 'h' (hold), the desired outcome is that the system sets the record to require both deletion and status update.
💻 Technical Criteria
Given
A customs manifest message is being processed AND the processing type is determined as train
When
The M10 segment manifest type code is 'H' (Hold)
Then
The system sets the record to require both deletion and status update
R-GCX015E-cbl-00062
Set SHOULD-NOT-UPDATE-STATUS
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set SHOULD-NOT-UPDATE-STATUS', assuming that a customs manifest message is being processed, when the m10 segment manifest type code is not 'p', 'y', 's', or 'h', the desired outcome is that the system sets the record to not require status update.
💻 Technical Criteria
EXCLUDING
A customs manifest message is being processed
When
The M10 segment manifest type code is not 'P', 'Y', 'S', or 'H'
Then
The system sets the record to not require status update
R-GCX015E-cbl-00395
Retrieve Broker Contact Information
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Broker Contact Information' is invoked, and assuming that broker short name is available and location id exists, when the system queries broker segment (bk) and internet segment (b1) using broker short name and location id, the desired outcome is that if broker uses internet communication, the internet address should be retrieved and email delivery should be enabled to freight forwarder.
💻 Technical Criteria
Given
Broker short name is available and location ID exists
When
The system queries broker segment (BK) and internet segment (B1) using broker short name and location ID
Then
If broker uses internet communication, the internet address should be retrieved and email delivery should be enabled to freight forwarder
R-GCX015E-cbl-00487
Build Broker Key with Short Name + Location ID
Process Rules
📊 Business Logic Narrative
When the process 'Build Broker Key with Short Name + Location ID' is invoked, and assuming that broker short name and location id are available, when the system builds the broker contact lookup key, the desired outcome is that concatenate broker short name with the selected location id to form the lookup key.
💻 Technical Criteria
Given
Broker short name and location ID are available
When
The system builds the broker contact lookup key
Then
Concatenate broker short name with the selected location ID to form the lookup key
R-GCX015E-cbl-00400
Total Reject Count = 0?
Validation Rules
📊 Business Logic Narrative
When the process 'Total Reject Count = 0?' is invoked, and assuming that a k3 segment is being processed for us customs response, when the total reject count in the k3 segment is greater than zero, the desired outcome is that set error status indicating the transaction has rejections.
💻 Technical Criteria
Given
A K3 segment is being processed for US Customs response
When
The total reject count in the K3 segment is greater than zero
Then
Set error status indicating the transaction has rejections
R-GCX015E-cbl-00406
Set Error Status - Has Rejects
Decision Rules
📊 Business Logic Narrative
When the process 'Set Error Status - Has Rejects' is invoked, and assuming that a k3 segment is being processed for us customs response, when the total reject count in the k3 segment is greater than zero, the desired outcome is that set error status to indicate transaction rejections.
💻 Technical Criteria
Given
A K3 segment is being processed for US Customs response
When
The total reject count in the K3 segment is greater than zero
Then
Set error status to indicate transaction rejections
R-GCX015E-cbl-00126
Train Status = Enroute Not Reported?
Validation Rules
📊 Business Logic Narrative
When the process 'Train Status = Enroute Not Reported?' is invoked, and assuming that a train has ack status and aei send flag is yes, when the system checks enroute reporting status, the desired outcome is that the train status must be 'enroute not reported' to qualify for aei processing.
💻 Technical Criteria
Given
A train has ACK status and AEI send flag is Yes
When
The system checks enroute reporting status
Then
The train status must be 'Enroute Not Reported' to qualify for AEI processing
R-GCX015E-cbl-00127
Train ID ends with 'T'?
Validation Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Train ID ends with 'T'?', assuming that a train meets ack status, aei send flag, and enroute not reported criteria, when the system validates train id format, the desired outcome is that the train id must end with character 't' at position 23 to proceed with customs transmission.
💻 Technical Criteria
EXCLUDING
A train meets ACK status, AEI send flag, and enroute not reported criteria
When
The system validates train ID format
Then
The train ID must end with character 'T' at position 23 to proceed with customs transmission
R-GCX015E-cbl-00134
Send Transaction Message via WRITMSGL
Action Rules
📊 Business Logic Narrative
When the process 'Send Transaction Message via WRITMSGL' is invoked, and assuming that customs transaction has been sent via cims, when the system logs the transaction, the desired outcome is that call writmsgl program with message code 's' to record the customs transaction.
💻 Technical Criteria
Given
Customs transaction has been sent via CIMS
When
The system logs the transaction
Then
Call WRITMSGL program with message code 'S' to record the customs transaction
R-GCX015E-cbl-00418
Enroute Not Reported?
Validation Rules
📊 Business Logic Narrative
When the process 'Enroute Not Reported?' is invoked, and assuming that a train record with ack status and aei send flag enabled is being validated, when the system checks the enroute reporting status, the desired outcome is that aei processing should only continue if enroute status is not reported, otherwise skip aei processing.
💻 Technical Criteria
Given
A train record with ACK status and AEI send flag enabled is being validated
When
The system checks the enroute reporting status
Then
AEI processing should only continue if enroute status is not reported, otherwise skip AEI processing
R-GCX015E-cbl-00419
Train ID Format Valid? Position 23 = 'T'
Validation Rules
📊 Business Logic Narrative
When the process 'Train ID Format Valid? Position 23 = 'T'' is invoked, and assuming that a train record that has passed ack status, aei send flag, and enroute status validations, when the system checks the train id format at position 23, the desired outcome is that aei processing should only continue if position 23 of the train id contains 't', otherwise skip aei processing.
💻 Technical Criteria
Given
A train record that has passed ACK status, AEI send flag, and enroute status validations
When
The system checks the train ID format at position 23
Then
AEI processing should only continue if position 23 of the train ID contains 'T', otherwise skip AEI processing
R-GCX015E-cbl-00420
Set AEI Processing Conditions Met
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set AEI Processing Conditions Met', assuming that a train record is being evaluated for aei processing eligibility, when all conditions are met: train status is ack and aei send flag is true and enroute is not reported and train id position 23 equals 't', the desired outcome is that the system should set aei processing conditions as met and proceed with customs transaction generation.
💻 Technical Criteria
EXCLUDING
A train record is being evaluated for AEI processing eligibility
When
All conditions are met: train status is ACK AND AEI send flag is true AND enroute is not reported AND train ID position 23 equals 'T'
Then
The system should set AEI processing conditions as met and proceed with customs transaction generation
R-GCX015E-cbl-00146
Get AEI Merlin ID from Database
Action Rules
📊 Business Logic Narrative
When the process 'Get AEI Merlin ID from Database' is invoked, and assuming that a train with security exchange data containing port information, when the system needs to send aei status messages, the desired outcome is that the system queries cusemail database using train port as key to retrieve email contacts.
💻 Technical Criteria
Given
A train with security exchange data containing port information
When
The system needs to send AEI status messages
Then
The system queries CUSEMAIL database using train port as key to retrieve email contacts
R-GCX015E-cbl-00151
Send Merlin Email Message
Action Rules
📊 Business Logic Narrative
When the process 'Send Merlin Email Message' is invoked, and assuming that formatted email subject, recipients, and default email settings, when the system initiates email sending process, the desired outcome is that the system calls merlin email service with specified parameters including 080 character width and inbox destination.
💻 Technical Criteria
Given
Formatted email subject, recipients, and default email settings
When
The system initiates email sending process
Then
The system calls Merlin email service with specified parameters including 080 character width and inbox destination
R-GCX015E-cbl-00180
Add Destination Station Information
Process Rules
📊 Business Logic Narrative
When the process 'Add Destination Station Information' is invoked, and assuming that destination station information is available from shipment data, when the system formats email content, the desired outcome is that the system concatenates destination station name and province/state code into destination station data for the email.
💻 Technical Criteria
Given
Destination station information is available from shipment data
When
The system formats email content
Then
The system concatenates destination station name and province/state code into destination station data for the email
R-GCX015E-cbl-00186
Set Email Recipient to Freight Forwarder Internet Address
Action Rules
📊 Business Logic Narrative
When the process 'Set Email Recipient to Freight Forwarder Internet Address' is invoked, and assuming that freight forwarder uses internet communication and has valid internet address, when the system sets email recipient, the desired outcome is that the system sets email destination to 'extmail' and includes freight forwarder internet address in email header, and sets freight forwarder email flag.
💻 Technical Criteria
Given
Freight forwarder uses internet communication and has valid internet address
When
The system sets email recipient
Then
The system sets email destination to 'EXTMAIL' and includes freight forwarder internet address in email header, and sets freight forwarder email flag
R-GCX015E-cbl-00435
Extract Destination Station Info
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Destination Station Info' is invoked, and assuming that shipment record contains destination station information, when the system builds email warning content, the desired outcome is that destination station name and province/state code are concatenated with comma separator into destination station data.
💻 Technical Criteria
Given
Shipment record contains destination station information
When
The system builds email warning content
Then
Destination station name and province/state code are concatenated with comma separator into destination station data
R-GCX015E-cbl-00436
Format Destination Station Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Destination Station Line' is invoked, and assuming that destination station information has been extracted and formatted, when the system formats the email content, the desired outcome is that the destination station variables are placed at email text line 13.
💻 Technical Criteria
Given
Destination station information has been extracted and formatted
When
The system formats the email content
Then
The destination station variables are placed at email text line 13
R-GCX015E-cbl-00532
Format Origin Station String
Computation Rules
📊 Business Logic Narrative
When the process 'Format Origin Station String' is invoked, and assuming that origin station name and province/state code are available from shiproot database, when the system needs to create a formatted origin location string for email notification, the desired outcome is that the origin station name and province/state code should be concatenated with comma separator into a readable format.
💻 Technical Criteria
Given
Origin station name and province/state code are available from SHIPROOT database
When
The system needs to create a formatted origin location string for email notification
Then
The origin station name and province/state code should be concatenated with comma separator into a readable format
R-GCX015E-cbl-00533
Format Destination Station String
Computation Rules
📊 Business Logic Narrative
When the process 'Format Destination Station String' is invoked, and assuming that destination station name and province/state code are available from shiproot database, when the system needs to create a formatted destination location string for email notification, the desired outcome is that the destination station name and province/state code should be concatenated with comma separator into a readable format.
💻 Technical Criteria
Given
Destination station name and province/state code are available from SHIPROOT database
When
The system needs to create a formatted destination location string for email notification
Then
The destination station name and province/state code should be concatenated with comma separator into a readable format
R-GCX015E-cbl-00202
Build Broker Key using Short Name and Location
Computation Rules
📊 Business Logic Narrative
When the process 'Build Broker Key using Short Name and Location' is invoked, and assuming that a freight forwarder short name exists and location information is available, when the system needs to lookup broker contact information, the desired outcome is that the system builds a broker key by concatenating the short name with the primary location id if available, otherwise uses the alternate location id.
💻 Technical Criteria
Given
A freight forwarder short name exists and location information is available
When
The system needs to lookup broker contact information
Then
The system builds a broker key by concatenating the short name with the primary location ID if available, otherwise uses the alternate location ID
R-GCX015E-cbl-00215
Capture Transaction Code
Process Rules
📊 Business Logic Narrative
When the process 'Capture Transaction Code' is invoked, and assuming that a customs response is being logged, when the system captures transaction context, the desired outcome is that the sending transaction code and acf2 user id are recorded in the log entry.
💻 Technical Criteria
Given
A customs response is being logged
When
The system captures transaction context
Then
The sending transaction code and ACF2 user ID are recorded in the log entry
R-GCX015E-cbl-00216
Format Current Date
Process Rules
📊 Business Logic Narrative
When the process 'Format Current Date' is invoked, and assuming that a customs response log entry is being created, when the system formats the timestamp, the desired outcome is that the date is formatted by concatenating machine century with k3-01-date and time is set from k3-01-time.
💻 Technical Criteria
Given
A customs response log entry is being created
When
The system formats the timestamp
Then
The date is formatted by concatenating machine century with K3-01-DATE and time is set from K3-01-TIME
R-GCX015E-cbl-00218
Set Action Code to 'ZZZ'
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Action Code to 'ZZZ'' is invoked, and assuming that a customs response log entry is being created, when the system sets the action code, the desired outcome is that the action code is set to 'zzz' to identify this as a customs response log entry.
💻 Technical Criteria
Given
A customs response log entry is being created
When
The system sets the action code
Then
The action code is set to 'ZZZ' to identify this as a customs response log entry
R-GCX015E-cbl-00220
Send Log Entry to GCT1051E
Action Rules
📊 Business Logic Narrative
When the process 'Send Log Entry to GCT1051E' is invoked, and assuming that a complete customs response log entry is prepared, when the system sends the log entry, the desired outcome is that the log entry is transmitted to gct1051e transaction via message queue for processing.
💻 Technical Criteria
Given
A complete customs response log entry is prepared
When
The system sends the log entry
Then
The log entry is transmitted to GCT1051E transaction via message queue for processing
R-GCX015E-cbl-00226
Manifest Type Code?
Decision Rules
📊 Business Logic Narrative
When the process 'Manifest Type Code?' is invoked, and assuming that current date and time have been captured and manifest type code is available, when the system evaluates the manifest type code from the message, the desired outcome is that the system routes to appropriate timestamp update based on manifest type: 'p' for 309 acknowledgment, 'h' for 353 acknowledgment, or 's' for 358 acknowledgment.
💻 Technical Criteria
Given
Current date and time have been captured and manifest type code is available
When
The system evaluates the manifest type code from the message
Then
The system routes to appropriate timestamp update based on manifest type: 'P' for 309 acknowledgment, 'H' for 353 acknowledgment, or 'S' for 358 acknowledgment
R-GCX015E-cbl-00231
Check AEI Train Send Conditions
Decision Rules
📊 Business Logic Narrative
When the process 'Check AEI Train Send Conditions' is invoked, and assuming that a train record exists in the system, when the system evaluates aei send eligibility, the desired outcome is that the train must be acknowledged, have aei send flag set, be en-route but not reported, and have a train id ending with 't' to proceed with aei processing.
💻 Technical Criteria
Given
A train record exists in the system
When
The system evaluates AEI send eligibility
Then
The train must be acknowledged, have AEI send flag set, be en-route but not reported, and have a train ID ending with 'T' to proceed with AEI processing
R-GCX015E-cbl-00232
Set Customs Transaction Code to GCT1461E
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Customs Transaction Code to GCT1461E' is invoked, and assuming that a train is eligible for aei processing, when the system prepares the customs transaction, the desired outcome is that the customs transaction code must be set to 'gct1461e'.
💻 Technical Criteria
Given
A train is eligible for AEI processing
When
The system prepares the customs transaction
Then
The customs transaction code must be set to 'GCT1461E'
R-GCX015E-cbl-00234
Set Customs Code to 'A'
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Customs Code to 'A'' is invoked, and assuming that a customs transaction is being prepared for a train, when the system assigns the customs code, the desired outcome is that the customs code must be set to 'a' for arrival processing.
💻 Technical Criteria
Given
A customs transaction is being prepared for a train
When
The system assigns the customs code
Then
The customs code must be set to 'A' for arrival processing
R-GCX015E-cbl-00235
Set Train ID from Train List
Process Rules
📊 Business Logic Narrative
When the process 'Set Train ID from Train List' is invoked, and assuming that a train record with a valid us customer train id exists, when the system prepares the customs transaction, the desired outcome is that the customs train id must be set from the train list us customer train id.
💻 Technical Criteria
Given
A train record with a valid US customer train ID exists
When
The system prepares the customs transaction
Then
The customs train ID must be set from the train list US customer train ID
R-GCX015E-cbl-00236
Set Station Information
Process Rules
📊 Business Logic Narrative
When the process 'Set Station Information' is invoked, and assuming that a train record contains station information, when the system prepares the customs transaction, the desired outcome is that both the customs to-station and from-station must be set from the train's cp train from station.
💻 Technical Criteria
Given
A train record contains station information
When
The system prepares the customs transaction
Then
Both the customs to-station and from-station must be set from the train's CP train from station
R-GCX015E-cbl-00237
Set Consist Number
Process Rules
📊 Business Logic Narrative
When the process 'Set Consist Number' is invoked, and assuming that a train record contains a consist number, when the system prepares the customs transaction, the desired outcome is that the customs consist number must be set from the train's cp train consist number.
💻 Technical Criteria
Given
A train record contains a consist number
When
The system prepares the customs transaction
Then
The customs consist number must be set from the train's CP train consist number
R-GCX015E-cbl-00238
Set Date and Time
Process Rules
📊 Business Logic Narrative
When the process 'Set Date and Time' is invoked, and assuming that a train record contains estimated arrival information, when the system prepares the customs transaction, the desired outcome is that the customs date must be set from the train's estimated date of arrival and the customs time must be set from the train's estimated time of arrival.
💻 Technical Criteria
Given
A train record contains estimated arrival information
When
The system prepares the customs transaction
Then
The customs date must be set from the train's estimated date of arrival and the customs time must be set from the train's estimated time of arrival
R-GCX015E-cbl-00245
Send Transaction via CIMS
Action Rules
📊 Business Logic Narrative
When the process 'Send Transaction via CIMS' is invoked, and assuming that a complete customs transaction has been prepared, when the system submits the transaction, the desired outcome is that the transaction must be sent via cims using the change function and alternate pcb.
💻 Technical Criteria
Given
A complete customs transaction has been prepared
When
The system submits the transaction
Then
The transaction must be sent via CIMS using the change function and alternate PCB
R-GCX015E-cbl-00246
Write Message to Queue
Action Rules
📊 Business Logic Narrative
When the process 'Write Message to Queue' is invoked, and assuming that a customs transaction has been submitted via cims, when the system writes to the message queue, the desired outcome is that the message must be written using writmsgl with the transaction message, length, and module name.
💻 Technical Criteria
Given
A customs transaction has been submitted via CIMS
When
The system writes to the message queue
Then
The message must be written using WRITMSGL with the transaction message, length, and module name
R-GCX015E-cbl-00247
Purge Transaction
Action Rules
📊 Business Logic Narrative
When the process 'Purge Transaction' is invoked, and assuming that a customs transaction has been written to the message queue, when the system completes transaction processing, the desired outcome is that the transaction must be purged using cims with the purge function and alternate pcb.
💻 Technical Criteria
Given
A customs transaction has been written to the message queue
When
The system completes transaction processing
Then
The transaction must be purged using CIMS with the purge function and alternate PCB
R-GCX015E-cbl-00254
Connect to MQ Manager
Process Rules
📊 Business Logic Narrative
When the process 'Connect to MQ Manager' is invoked, and assuming that system needs to process customs messages from message queue, when connection to mq manager is attempted, the desired outcome is that connection is established successfully or system terminates with connection error.
💻 Technical Criteria
Given
System needs to process customs messages from message queue
When
Connection to MQ manager is attempted
Then
Connection is established successfully or system terminates with connection error
R-GCX015E-cbl-00262
Check Message Length
Validation Rules
📊 Business Logic Narrative
When the process 'Check Message Length' is invoked, and assuming that a customs message has been retrieved from the message queue, when the system checks if the maximum message entries is less than 1, the desired outcome is that the system should generate a user abend with error message 'message too short' and terminate processing.
💻 Technical Criteria
Given
A customs message has been retrieved from the message queue
When
The system checks if the maximum message entries is less than 1
Then
The system should generate a user abend with error message 'MESSAGE TOO SHORT' and terminate processing
R-GCX015E-cbl-00263
Check Message Backout Count
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Check Message Backout Count', assuming that a customs message has been successfully retrieved with completion code ok, when the message backout count is not equal to 0, the desired outcome is that the system should mark the message as skip message and not process it further.
💻 Technical Criteria
EXCLUDING
A customs message has been successfully retrieved with completion code OK
When
The message backout count is not equal to 0
Then
The system should mark the message as skip message and not process it further
R-GCX015E-cbl-00264
Mark as Good Message - Valid Format
Decision Rules
📊 Business Logic Narrative
When the process 'Mark as Good Message - Valid Format' is invoked, and assuming that a customs message has been successfully retrieved with completion code ok, when the message backout count equals 0, the desired outcome is that the system should mark the message as good message and proceed with customs processing.
💻 Technical Criteria
Given
A customs message has been successfully retrieved with completion code OK
When
The message backout count equals 0
Then
The system should mark the message as good message and proceed with customs processing
R-GCX015E-cbl-00265
Check if No Messages Available
Process Rules
📊 Business Logic Narrative
When the process 'Check if No Messages Available' is invoked, and assuming that the system attempts to retrieve a message from the customs queue, when the completion code is failed and the reason code indicates no message available, the desired outcome is that the system should generate an mq error message, set transaction code to 355, and abort processing with 'mqget failed' error.
💻 Technical Criteria
Given
The system attempts to retrieve a message from the customs queue
When
The completion code is FAILED and the reason code indicates no message available
Then
The system should generate an MQ error message, set transaction code to 355, and abort processing with 'MQGET FAILED' error
R-GCX015E-cbl-00266
Set End of Queue Flag
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set End of Queue Flag', assuming that the system encounters an error while retrieving messages from the customs queue, when the completion code is not ok and the reason is not 'no message available', the desired outcome is that the system should set end of queue flag, generate mq error message, set transaction code to 355, and abort processing with 'mqget failed' error.
💻 Technical Criteria
EXCLUDING
The system encounters an error while retrieving messages from the customs queue
When
The completion code is not OK and the reason is not 'no message available'
Then
The system should set end of queue flag, generate MQ error message, set transaction code to 355, and abort processing with 'MQGET FAILED' error
R-GCX015E-cbl-00539
Check Manifest Type Code
Decision Rules
📊 Business Logic Narrative
When the process 'Check Manifest Type Code' is invoked, and assuming that a manifest message is being processed for timestamp updates, when the system checks the manifest type code from mqs-table-mani-type, the desired outcome is that route to appropriate timestamp update based on manifest type: 'p' for 309-ack, 'h' for 353-ack, 's' for 358-ack, or no update for other types.
💻 Technical Criteria
Given
A manifest message is being processed for timestamp updates
When
The system checks the manifest type code from MQS-TABLE-MANI-TYPE
Then
Route to appropriate timestamp update based on manifest type: 'P' for 309-ACK, 'H' for 353-ACK, 'S' for 358-ACK, or no update for other types
R-GCX015E-cbl-00298
Extract Line Release Number from Position 09
Process Rules
📊 Business Logic Narrative
When the process 'Extract Line Release Number from Position 09' is invoked, and assuming that a message segment is being processed during customs transaction handling, when the segment identifier equals 'n10', the desired outcome is that the system extracts the line release number from position 09 of the n10 segment and stores it in the hold area for subsequent customs processing.
💻 Technical Criteria
Given
A message segment is being processed during customs transaction handling
When
The segment identifier equals 'N10'
Then
The system extracts the line release number from position 09 of the N10 segment and stores it in the hold area for subsequent customs processing
R-GCX015E-cbl-00299
Set Status to 'DELETED'
Decision Rules
📊 Business Logic Narrative
When the process 'Set Status to 'DELETED'' is invoked, and assuming that a train record exists with current status of deleted and the processing type is train and the customs response indicates ack status, when the train status update process is executed, the desired outcome is that the train status should be set to 'deleted' and the train record should be updated with root-only replacement.
💻 Technical Criteria
Given
A train record exists with current status of DELETED and the processing type is TRAIN and the customs response indicates ACK status
When
The train status update process is executed
Then
The train status should be set to 'DELETED' and the train record should be updated with root-only replacement
R-GCX015E-cbl-00300
Set Status to 'DELETED'
Decision Rules
📊 Business Logic Narrative
When the process 'Set Status to 'DELETED'' is invoked, and assuming that a train record exists with current status of delete-pending and the processing type is train and the customs response indicates ack status, when the train status update process is executed, the desired outcome is that the train status should be changed from delete-pending to 'deleted' and the train record should be updated with root-only replacement.
💻 Technical Criteria
Given
A train record exists with current status of DELETE-PENDING and the processing type is TRAIN and the customs response indicates ACK status
When
The train status update process is executed
Then
The train status should be changed from DELETE-PENDING to 'DELETED' and the train record should be updated with root-only replacement
R-GCX015E-cbl-00311
Set Email Recipients
Action Rules
📊 Business Logic Narrative
When the process 'Set Email Recipients' is invoked, and assuming that an aei email needs to be sent and train security information is available, when the system looks up email recipients in the aei database using the train port information, the desired outcome is that if the database lookup is successful, the system uses the retrieved user ids as recipients, otherwise it uses the default merlin id as the recipient.
💻 Technical Criteria
Given
An AEI email needs to be sent and train security information is available
When
The system looks up email recipients in the AEI database using the train port information
Then
If the database lookup is successful, the system uses the retrieved user IDs as recipients, otherwise it uses the default Merlin ID as the recipient
R-GCX015E-cbl-00335
Retrieve Broker Details from BK Table
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Broker Details from BK Table' is invoked, and assuming that a broker detail lookup key has been constructed with short name and location, when the system queries the bk table with table id 'bk', the desired outcome is that the broker contact details are retrieved and stored in gcstbrt-bk-segment.
💻 Technical Criteria
Given
A broker detail lookup key has been constructed with short name and location
When
The system queries the BK table with table ID 'BK'
Then
The broker contact details are retrieved and stored in GCSTBRT-BK-SEGMENT
R-GCX015E-cbl-00340
Set Email Address for External Mail
Process Rules
📊 Business Logic Narrative
When the process 'Set Email Address for External Mail' is invoked, and assuming that broker has internet communication enabled (gcstbrt-bk-use-internet = 'y') and valid internet address exists, when the system configures email notification settings, the desired outcome is that the email text line is populated with 'internet: ' prefix followed by the broker's internet address from gcstbrt-b1-internet-address, and email destination is set to 'extmail'.
💻 Technical Criteria
Given
Broker has internet communication enabled (GCSTBRT-BK-USE-INTERNET = 'Y') and valid internet address exists
When
The system configures email notification settings
Then
The email text line is populated with 'INTERNET: ' prefix followed by the broker's internet address from GCSTBRT-B1-INTERNET-ADDRESS, and email destination is set to 'EXTMAIL'
R-GCX015E-cbl-00344
Get Broker Contact Information
Decision Rules
📊 Business Logic Narrative
When the process 'Get Broker Contact Information' is invoked, and assuming that a broker short name exists and broker contact information is available, when the system checks the broker's internet usage preference flag, the desired outcome is that if broker uses internet (flag = 'y'), system sets email destination to 'extmail', formats internet address in email text, and marks for freight forwarder email delivery, otherwise uses default contact method.
💻 Technical Criteria
Given
A broker short name exists and broker contact information is available
When
The system checks the broker's internet usage preference flag
Then
If broker uses internet (flag = 'Y'), system sets email destination to 'EXTMAIL', formats internet address in email text, and marks for freight forwarder email delivery, otherwise uses default contact method
R-GCX015E-cbl-00352
Format Destination Station Information
Process Rules
📊 Business Logic Narrative
When the process 'Format Destination Station Information' is invoked, and assuming that destination station information is available from shipment data, when the system formats destination station information for email content, the desired outcome is that the system concatenates destination station name with province/state code separated by comma and space.
💻 Technical Criteria
Given
Destination station information is available from shipment data
When
The system formats destination station information for email content
Then
The system concatenates destination station name with province/state code separated by comma and space
R-GCX015E-cbl-00355
Call MQCONNC to Connect to Message Queue Manager
Action Rules
📊 Business Logic Narrative
When the process 'Call MQCONNC to Connect to Message Queue Manager' is invoked, and assuming that the system needs to process customs messages from the message queue, when a connection request is made to the message queue manager, the desired outcome is that the system should establish a successful connection to enable message processing.
💻 Technical Criteria
Given
The system needs to process customs messages from the message queue
When
A connection request is made to the message queue manager
Then
The system should establish a successful connection to enable message processing
R-GCX015E-cbl-00361
Abort Processing with Error Message
Action Rules
📊 Business Logic Narrative
When the process 'Abort Processing with Error Message' is invoked, and assuming that message queue connection has failed and error information has been prepared, when the system determines that processing cannot continue, the desired outcome is that the system should abort processing and report the connection error.
💻 Technical Criteria
Given
Message queue connection has failed and error information has been prepared
When
The system determines that processing cannot continue
Then
The system should abort processing and report the connection error
R-GCX015E-cbl-00362
Set Queue Object Type
Process Rules
📊 Business Logic Narrative
When the process 'Set Queue Object Type' is invoked, and assuming that the system needs to access customs transaction messages from a message queue, when the queue configuration process begins, the desired outcome is that the queue object type should be set to standard queue type for message retrieval.
💻 Technical Criteria
Given
The system needs to access customs transaction messages from a message queue
When
The queue configuration process begins
Then
The queue object type should be set to standard queue type for message retrieval
R-GCX015E-cbl-00364
Set Input Options for Queue
Authorization Rules
📊 Business Logic Narrative
When the process 'Set Input Options for Queue' is invoked, and assuming that the system needs to read customs transaction messages from the queue, when queue access options are being configured, the desired outcome is that the queue options should be set to input-as-queue-defined to enable message reading.
💻 Technical Criteria
Given
The system needs to read customs transaction messages from the queue
When
Queue access options are being configured
Then
The queue options should be set to input-as-queue-defined to enable message reading
R-GCX015E-cbl-00366
Queue Not Found Error?
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Queue Not Found Error?', assuming that the system attempts to open a customs message queue, when the queue open operation fails with reason code 2085 indicating queue not found, the desired outcome is that the system should return to main processing without generating an error.
💻 Technical Criteria
EXCLUDING
The system attempts to open a customs message queue
When
The queue open operation fails with reason code 2085 indicating queue not found
Then
The system should return to main processing without generating an error
R-GCX015E-cbl-00367
Queue Open Successful?
Validation Rules
📊 Business Logic Narrative
When the process 'Queue Open Successful?' is invoked, and assuming that the system has attempted to open the customs message queue, when the queue open operation completes, the desired outcome is that if the completion code equals mqcc-ok, the queue is successfully opened, otherwise it has failed.
💻 Technical Criteria
Given
The system has attempted to open the customs message queue
When
The queue open operation completes
Then
If the completion code equals MQCC-OK, the queue is successfully opened, otherwise it has failed
R-GCX015E-cbl-00368
Generate MQ Error Message
Action Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Generate MQ Error Message', assuming that the customs message queue open operation has failed with an error other than queue not found, when error information needs to be generated, the desired outcome is that the system should call gccmqerr service to convert the reason code to descriptive error text and format it with the reason code.
💻 Technical Criteria
EXCLUDING
The customs message queue open operation has failed with an error other than queue not found
When
Error information needs to be generated
Then
The system should call GCCMQERR service to convert the reason code to descriptive error text and format it with the reason code
R-GCX015E-cbl-00369
Set Error Details
Process Rules
📊 Business Logic Narrative
When the process 'Set Error Details' is invoked, and assuming that a customs message queue error has occurred and error message has been generated, when error context needs to be established, the desired outcome is that the transaction set should be set to '355', program error text should be set to 'mqopen failed', and the complete error message should be prepared.
💻 Technical Criteria
Given
A customs message queue error has occurred and error message has been generated
When
Error context needs to be established
Then
The transaction set should be set to '355', program error text should be set to 'MQOPEN FAILED', and the complete error message should be prepared
R-GCX015E-cbl-00370
Abort Processing
Action Rules
📊 Business Logic Narrative
When the process 'Abort Processing' is invoked, and assuming that a critical customs message queue error has occurred and error details have been set, when the system cannot continue normal processing, the desired outcome is that the system should invoke the z900-abend procedure to terminate processing.
💻 Technical Criteria
Given
A critical customs message queue error has occurred and error details have been set
When
The system cannot continue normal processing
Then
The system should invoke the Z900-ABEND procedure to terminate processing
🔁 EDI, Status & Database
232 logic blocks
R-GCX015E-cbl-00002
2:Load Message Table
Validation Rules
📊 Business Logic Narrative
When the process '2:Load Message Table' is invoked, and assuming that a message is available in the queue, when the system attempts to load the message, the desired outcome is that if completion code is ok and message entries are less than 1, system abends with 'message too short' error; if completion code is ok and backout count is not 0, message is marked as skip; if completion code is ok and backout count is 0, message is marked as good; if completion code is failed and reason is no-msg-available or other, system abends with mqget failed error.
💻 Technical Criteria
Given
A message is available in the queue
When
The system attempts to load the message
Then
If completion code is OK and message entries are less than 1, system abends with 'MESSAGE TOO SHORT' error; if completion code is OK and backout count is not 0, message is marked as SKIP; if completion code is OK and backout count is 0, message is marked as GOOD; if completion code is FAILED and reason is NO-MSG-AVAILABLE or OTHER, system abends with MQGET FAILED error
R-GCX015E-cbl-00008
8:Process K1 Error Messages
Decision Rules
📊 Business Logic Narrative
When the process '8:Process K1 Error Messages' is invoked, and assuming that a message table entry with id 'k1 ' is encountered, when the system evaluates the k1-02-msg-number, the desired outcome is that if message number is '000', severity is set to informational and status to ack; if message number is '009', '017', '038', '040', '291', or '630', severity is set to fatal and status to error; if message number is '631', '632', '633', '634', '695', '696', '697', '698', or '699', severity is set to warning and status to ack; if message number is '695', '697', or '699', email warning is sent; for all other message numbers, severity is set to unknown and status to ack; free form message content is logged if present.
💻 Technical Criteria
Given
A message table entry with ID 'K1 ' is encountered
When
The system evaluates the K1-02-MSG-NUMBER
Then
If message number is '000', severity is set to Informational and status to ACK; if message number is '009', '017', '038', '040', '291', or '630', severity is set to Fatal and status to ERROR; if message number is '631', '632', '633', '634', '695', '696', '697', '698', or '699', severity is set to Warning and status to ACK; if message number is '695', '697', or '699', email warning is sent; for all other message numbers, severity is set to Unknown and status to ACK; free form message content is logged if present
R-GCX015E-cbl-00009
9:Process K3 Accept/Reject Counts
Decision Rules
📊 Business Logic Narrative
When the process '9:Process K3 Accept/Reject Counts' is invoked, and assuming that a k3 segment is being processed, when the system evaluates k3-01-total-reject and k3-01-total-accept counts, the desired outcome is that if total reject is zero and total accept is greater than zero and train is pre-arrived, status is set to pre-arrival; if total reject is zero and total accept is greater than zero and train is review complete, status is set to review-completed; if total reject is zero and total accept is greater than zero for other cases, status is set to ack; if total reject is zero and total accept is zero, 'uscs k3 record has zero counts' is logged and status is set to ack; if total reject is greater than zero, status is set to error.
💻 Technical Criteria
Given
A K3 segment is being processed
When
The system evaluates K3-01-TOTAL-REJECT and K3-01-TOTAL-ACCEPT counts
Then
If total reject is zero and total accept is greater than zero and train is pre-arrived, status is set to PRE-ARRIVAL; if total reject is zero and total accept is greater than zero and train is review complete, status is set to REVIEW-COMPLETED; if total reject is zero and total accept is greater than zero for other cases, status is set to ACK; if total reject is zero and total accept is zero, 'USCS K3 RECORD HAS ZERO COUNTS' is logged and status is set to ACK; if total reject is greater than zero, status is set to ERROR
R-GCX015E-cbl-00013
13:Update Train Status
Decision Rules
📊 Business Logic Narrative
When the process '13:Update Train Status' is invoked, and assuming that processing type is train and status update is required, when the system evaluates train status conditions, the desired outcome is that if train is deleted and status is ack, current status is set to 'deleted'; if train is delete pending and status is ack, current status is set to 'deleted'; if train is not deleted and not delete pending, current status is set to working status; after status update, aei train send conditions are checked and if train is ack and arrived pending, train arrival process is triggered.
💻 Technical Criteria
Given
Processing type is TRAIN and status update is required
When
The system evaluates train status conditions
Then
If train is deleted and status is ACK, current status is set to 'DELETED'; if train is delete pending and status is ACK, current status is set to 'DELETED'; if train is not deleted and not delete pending, current status is set to working status; after status update, AEI train send conditions are checked and if train is ACK and arrived pending, train arrival process is triggered
R-GCX015E-cbl-00017
17:Send AEI Status Message
Action Rules
📊 Business Logic Narrative
When the process '17:Send AEI Status Message' is invoked, and assuming that aei processing is required for a train, when the system sends aei status message, the desired outcome is that aei merlin id is retrieved, message subject is formatted with train id and current status, and message is sent via merlin system.
💻 Technical Criteria
Given
AEI processing is required for a train
When
The system sends AEI status message
Then
AEI Merlin ID is retrieved, message subject is formatted with train ID and current status, and message is sent via Merlin system
R-GCX015E-cbl-00018
18:Process Train Arrival
Action Rules
📊 Business Logic Narrative
When the process '18:Process Train Arrival' is invoked, and assuming that train status is ack and train is in arrived pending state, when the system processes train arrival, the desired outcome is that arrival transaction gct1121e is generated with action code 'tar', current machine date and time as event date/time, us customer train id, and train type flag set to true.
💻 Technical Criteria
Given
Train status is ACK and train is in arrived pending state
When
The system processes train arrival
Then
Arrival transaction GCT1121E is generated with action code 'TAR', current machine date and time as event date/time, US customer train ID, and train type flag set to true
R-GCX015E-cbl-00021
24:Update Manifest Type Timestamps
Process Rules
📊 Business Logic Narrative
When the process '24:Update Manifest Type Timestamps' is invoked, and assuming that a special test transaction with specific reference numbers is being processed, when the system updates manifest type timestamps, the desired outcome is that t1 control table segment is retrieved, if manifest type is 'p', 309-ack timestamp is updated with current date and time; if manifest type is 'h', 353-ack timestamp is updated with current date and time; if manifest type is 's', 358-ack timestamp is updated with current date and time; updated segment is written back to control table.
💻 Technical Criteria
Given
A special test transaction with specific reference numbers is being processed
When
The system updates manifest type timestamps
Then
T1 control table segment is retrieved, if manifest type is 'P', 309-ACK timestamp is updated with current date and time; if manifest type is 'H', 353-ACK timestamp is updated with current date and time; if manifest type is 'S', 358-ACK timestamp is updated with current date and time; updated segment is written back to control table
R-GCX015E-cbl-00025
Set Database Function Codes
Process Rules
📊 Business Logic Narrative
When the process 'Set Database Function Codes' is invoked, and assuming that message processing is starting, when the system initializes processing fields, the desired outcome is that database function code is set to 'gu', table id is set to 'ad', sequence id is set to 'adminid', and accept status is set to 'ge'.
💻 Technical Criteria
Given
Message processing is starting
When
The system initializes processing fields
Then
Database function code is set to 'GU', table ID is set to 'AD', sequence ID is set to 'ADMINID', and accept status is set to 'GE'
R-GCX015E-cbl-00026
Retrieve Admin Configuration
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Admin Configuration' is invoked, and assuming that database access parameters are configured, when the system retrieves admin configuration, the desired outcome is that the system calls the table segment retrieval function to get administrative settings.
💻 Technical Criteria
Given
Database access parameters are configured
When
The system retrieves admin configuration
Then
The system calls the table segment retrieval function to get administrative settings
R-GCX015E-cbl-00027
Load Admin Settings
Decision Rules
📊 Business Logic Narrative
When the process 'Load Admin Settings' is invoked, and assuming that administrative configuration retrieval is attempted, when the table segment return flag equals '0' indicating successful retrieval, the desired outcome is that the retrieved table segment is moved to the administrative segment working area.
💻 Technical Criteria
Given
Administrative configuration retrieval is attempted
When
The table segment return flag equals '0' indicating successful retrieval
Then
The retrieved table segment is moved to the administrative segment working area
R-GCX015E-cbl-00028
Set Default Admin ID
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Default Admin ID', assuming that administrative configuration retrieval is attempted, when the table segment return flag is not equal to '0' indicating retrieval failure, the desired outcome is that the default administrative id 'om01247' is set in the administrative configuration area.
💻 Technical Criteria
EXCLUDING
Administrative configuration retrieval is attempted
When
The table segment return flag is not equal to '0' indicating retrieval failure
Then
The default administrative ID 'OM01247' is set in the administrative configuration area
R-GCX015E-cbl-00033
Set Database Accept Status
Process Rules
📊 Business Logic Narrative
When the process 'Set Database Accept Status' is invoked, and assuming that line counter is initialized, when the system configures database status, the desired outcome is that database accept status is set to 'ge' for subsequent operations.
💻 Technical Criteria
Given
Line counter is initialized
When
The system configures database status
Then
Database accept status is set to 'GE' for subsequent operations
R-GCX015E-cbl-00034
Connect to Message Queue System
Action Rules
📊 Business Logic Narrative
When the process 'Connect to Message Queue System' is invoked, and assuming that database accept status is configured, when the system connects to message queue, the desired outcome is that message queue connection is established by calling the queue read function and mq connection function.
💻 Technical Criteria
Given
Database accept status is configured
When
The system connects to message queue
Then
Message queue connection is established by calling the queue read function and MQ connection function
R-GCX015E-cbl-00035
Open Message Queue for Reading
Action Rules
📊 Business Logic Narrative
When the process 'Open Message Queue for Reading' is invoked, and assuming that message queue connection is established, when the system opens the message queue, the desired outcome is that message queue is opened for reading by calling the mq open function.
💻 Technical Criteria
Given
Message queue connection is established
When
The system opens the message queue
Then
Message queue is opened for reading by calling the MQ open function
R-GCX015E-cbl-00036
Read Message from MQ Queue
Action Rules
📊 Business Logic Narrative
When the process 'Read Message from MQ Queue' is invoked, and assuming that the system is connected to the message queue, when a message read operation is initiated, the desired outcome is that the system attempts to retrieve the next available message from the queue.
💻 Technical Criteria
Given
The system is connected to the message queue
When
A message read operation is initiated
Then
The system attempts to retrieve the next available message from the queue
R-GCX015E-cbl-00038
Message Previously Failed?
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Message Previously Failed?', assuming that a message has been read successfully and is not too short, when the message backout count is greater than zero, the desired outcome is that the system skips the message and sets skip message flag to prevent reprocessing.
💻 Technical Criteria
EXCLUDING
A message has been read successfully and is not too short
When
The message backout count is greater than zero
Then
The system skips the message and sets skip message flag to prevent reprocessing
R-GCX015E-cbl-00039
Accept Message - Set Good Message Flag
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Accept Message - Set Good Message Flag', assuming that a message has been read successfully, is not too short, and has not previously failed, when the message backout count equals zero, the desired outcome is that the system accepts the message and sets good message flag for further processing.
💻 Technical Criteria
EXCLUDING
A message has been read successfully, is not too short, and has not previously failed
When
The message backout count equals zero
Then
The system accepts the message and sets good message flag for further processing
R-GCX015E-cbl-00041
Other MQ Error?
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Other MQ Error?', assuming that the system encounters an error while reading from the message queue, when the error is not a 'no messages available' condition and completion code indicates failure, the desired outcome is that the system sets end of queue flag and terminates processing with appropriate error message.
💻 Technical Criteria
EXCLUDING
The system encounters an error while reading from the message queue
When
The error is not a 'no messages available' condition and completion code indicates failure
Then
The system sets end of queue flag and terminates processing with appropriate error message
R-GCX015E-cbl-00043
Get M10-12 Reference Number
Process Rules
📊 Business Logic Narrative
When the process 'Get M10-12 Reference Number' is invoked, and assuming that an m10 segment has been identified in the current message line, when the system processes the m10 segment, the desired outcome is that the m10-12 reference number is extracted and stored for shipment type determination.
💻 Technical Criteria
Given
An M10 segment has been identified in the current message line
When
The system processes the M10 segment
Then
The M10-12 reference number is extracted and stored for shipment type determination
R-GCX015E-cbl-00048
Manifest Type = P/Y/S?
Decision Rules
📊 Business Logic Narrative
When the process 'Manifest Type = P/Y/S?' is invoked, and assuming that a shipment type has been determined and manifest type code is available, when the manifest type code is 'p' (preliminary), 'y' (yard), or 's' (special), the desired outcome is that the system sets the should update status flag to true.
💻 Technical Criteria
Given
A shipment type has been determined and manifest type code is available
When
The manifest type code is 'P' (Preliminary), 'Y' (Yard), or 'S' (Special)
Then
The system sets the should update status flag to true
R-GCX015E-cbl-00049
Set Should Update Status Flag
Action Rules
📊 Business Logic Narrative
When the process 'Set Should Update Status Flag' is invoked, and assuming that the manifest type is identified as p, y, or s, when the system evaluates update requirements, the desired outcome is that the should update status flag is set to true.
💻 Technical Criteria
Given
The manifest type is identified as P, Y, or S
When
The system evaluates update requirements
Then
The should update status flag is set to true
R-GCX015E-cbl-00051
Processing Train?
Decision Rules
📊 Business Logic Narrative
When the process 'Processing Train?' is invoked, and assuming that the manifest type is 'h' (hold), when the shipment is being processed as a train, the desired outcome is that the system sets both delete status and update status flags to true.
💻 Technical Criteria
Given
The manifest type is 'H' (Hold)
When
The shipment is being processed as a train
Then
The system sets both delete status and update status flags to true
R-GCX015E-cbl-00052
Set Should Delete Status Flag
Action Rules
📊 Business Logic Narrative
When the process 'Set Should Delete Status Flag' is invoked, and assuming that a hold manifest is being processed for a train shipment, when the system determines processing requirements, the desired outcome is that both should delete status and should update status flags are set to true.
💻 Technical Criteria
Given
A hold manifest is being processed for a train shipment
When
The system determines processing requirements
Then
Both should delete status and should update status flags are set to true
R-GCX015E-cbl-00381
Set SHOULD-UPDATE-STATUS Flag
Decision Rules
📊 Business Logic Narrative
When the process 'Set SHOULD-UPDATE-STATUS Flag' is invoked, and assuming that a manifest record is being processed, when the manifest type code is p (preliminary), y (yes/confirmed), or s (special), the desired outcome is that the system sets the should-update-status flag to true.
💻 Technical Criteria
Given
A manifest record is being processed
When
The manifest type code is P (Preliminary), Y (Yes/Confirmed), or S (Special)
Then
The system sets the SHOULD-UPDATE-STATUS flag to true
R-GCX015E-cbl-00382
Set SHOULD-DELETE-STATUS Flag and Set SHOULD-UPDATE-STATUS Flag
Decision Rules
📊 Business Logic Narrative
When the process 'Set SHOULD-DELETE-STATUS Flag and Set SHOULD-UPDATE-STATUS Flag' is invoked, and assuming that a train manifest record is being processed, when the manifest type code is h (hold) and the processing type is train, the desired outcome is that the system sets both should-delete-status flag and should-update-status flag to true.
💻 Technical Criteria
Given
A train manifest record is being processed
When
The manifest type code is H (Hold) and the processing type is TRAIN
Then
The system sets both SHOULD-DELETE-STATUS flag and SHOULD-UPDATE-STATUS flag to true
R-GCX015E-cbl-00384
Set SHOULD-NOT-UPDATE-STATUS Flag
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set SHOULD-NOT-UPDATE-STATUS Flag', assuming that a manifest record is being processed, when the manifest type code is not p, y, s, or h, the desired outcome is that the system sets the should-not-update-status flag to true.
💻 Technical Criteria
EXCLUDING
A manifest record is being processed
When
The manifest type code is not P, Y, S, or H
Then
The system sets the SHOULD-NOT-UPDATE-STATUS flag to true
R-GCX015E-cbl-00065
Set UPDATE Status Decision
Decision Rules
📊 Business Logic Narrative
When the process 'Set UPDATE Status Decision' is invoked, and assuming that an m10 segment is being processed with a manifest type code in m10-09-manifest-typ-cde field, when the manifest type code is 'p' or 'y' or 's', the desired outcome is that the system sets should-update-status to true.
💻 Technical Criteria
Given
An M10 segment is being processed with a manifest type code in M10-09-MANIFEST-TYP-CDE field
When
The manifest type code is 'P' or 'Y' or 'S'
Then
The system sets SHOULD-UPDATE-STATUS to true
R-GCX015E-cbl-00066
Set DELETE Status Decision
Decision Rules
📊 Business Logic Narrative
When the process 'Set DELETE Status Decision' is invoked, and assuming that an m10 segment is being processed with manifest type code 'h' and the processing type is train, when the manifest type code is 'h' and ws-train is true, the desired outcome is that the system sets both should-delete-status and should-update-status to true.
💻 Technical Criteria
Given
An M10 segment is being processed with manifest type code 'H' and the processing type is TRAIN
When
The manifest type code is 'H' and WS-TRAIN is true
Then
The system sets both SHOULD-DELETE-STATUS and SHOULD-UPDATE-STATUS to true
R-GCX015E-cbl-00068
Set NO UPDATE Status Decision
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set NO UPDATE Status Decision', assuming that an m10 segment is being processed with a manifest type code in m10-09-manifest-typ-cde field, when the manifest type code is not 'p', 'y', 's', or 'h', the desired outcome is that the system sets should-not-update-status to true.
💻 Technical Criteria
EXCLUDING
An M10 segment is being processed with a manifest type code in M10-09-MANIFEST-TYP-CDE field
When
The manifest type code is not 'P', 'Y', 'S', or 'H'
Then
The system sets SHOULD-NOT-UPDATE-STATUS to true
R-GCX015E-cbl-00072
Set P4 Segment Found Flag
Validation Rules
📊 Business Logic Narrative
When the process 'Set P4 Segment Found Flag' is invoked, and assuming that a p4 segment is being processed from the message table, when the p4 segment data extraction begins, the desired outcome is that the system sets the p4 segment found indicator to true to track successful p4 segment processing.
💻 Technical Criteria
Given
A P4 segment is being processed from the message table
When
The P4 segment data extraction begins
Then
The system sets the P4 segment found indicator to true to track successful P4 segment processing
R-GCX015E-cbl-00073
Extract Line Release Number from Position 09
Process Rules
📊 Business Logic Narrative
When the process 'Extract Line Release Number from Position 09' is invoked, and assuming that a message segment is being processed during message iteration, when the segment identifier equals 'n10', the desired outcome is that the system extracts the line release number from position 09 of the n10 segment and stores it in working storage for later use.
💻 Technical Criteria
Given
A message segment is being processed during message iteration
When
The segment identifier equals 'N10'
Then
The system extracts the line release number from position 09 of the N10 segment and stores it in working storage for later use
R-GCX015E-cbl-00074
Message Number Category?
Decision Rules
📊 Business Logic Narrative
When the process 'Message Number Category?' is invoked, and assuming that a k1 message segment is being processed with a specific message number, when the system evaluates the k1-02-msg-number field, the desired outcome is that the message is categorized as information (000), fatal (009,017,038,040,291,630), warning (631,632,633,634,695,696,697,698,699), or unknown (all other numbers).
💻 Technical Criteria
Given
A K1 message segment is being processed with a specific message number
When
The system evaluates the K1-02-MSG-NUMBER field
Then
The message is categorized as Information (000), Fatal (009,017,038,040,291,630), Warning (631,632,633,634,695,696,697,698,699), or Unknown (all other numbers)
R-GCX015E-cbl-00075
Set Information Severity Message 000
Decision Rules
📊 Business Logic Narrative
When the process 'Set Information Severity Message 000' is invoked, and assuming that a k1 message with message number '000' is being processed, when the message number equals '000', the desired outcome is that the system sets message severity to information (msg-sev-i) and sets acknowledgment status (ws-ack-status).
💻 Technical Criteria
Given
A K1 message with message number '000' is being processed
When
The message number equals '000'
Then
The system sets message severity to Information (MSG-SEV-I) and sets acknowledgment status (WS-ACK-STATUS)
R-GCX015E-cbl-00076
Set Fatal Severity Messages 009, 017, 038, 040, 291, 630
Decision Rules
📊 Business Logic Narrative
When the process 'Set Fatal Severity Messages 009, 017, 038, 040, 291, 630' is invoked, and assuming that a k1 message with message number in the critical error range is being processed, when the message number is '009' or '017' or '038' or '040' or '291' or '630', the desired outcome is that the system sets message severity to fatal (msg-sev-f) and sets error status (ws-error-status).
💻 Technical Criteria
Given
A K1 message with message number in the critical error range is being processed
When
The message number is '009' OR '017' OR '038' OR '040' OR '291' OR '630'
Then
The system sets message severity to Fatal (MSG-SEV-F) and sets error status (WS-ERROR-STATUS)
R-GCX015E-cbl-00077
Set Warning Severity Messages 631, 632, 633, 634, 695, 696, 697, 698, 699
Decision Rules
📊 Business Logic Narrative
When the process 'Set Warning Severity Messages 631, 632, 633, 634, 695, 696, 697, 698, 699' is invoked, and assuming that a k1 message with message number in the warning range is being processed, when the message number is '631' or '632' or '633' or '634' or '695' or '696' or '697' or '698' or '699', the desired outcome is that the system sets message severity to warning (msg-sev-w) and sets acknowledgment status (ws-ack-status).
💻 Technical Criteria
Given
A K1 message with message number in the warning range is being processed
When
The message number is '631' OR '632' OR '633' OR '634' OR '695' OR '696' OR '697' OR '698' OR '699'
Then
The system sets message severity to Warning (MSG-SEV-W) and sets acknowledgment status (WS-ACK-STATUS)
R-GCX015E-cbl-00078
Set Unknown Severity All Other Messages
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Unknown Severity All Other Messages', assuming that a k1 message with a message number not in any predefined category is being processed, when the message number is not '000', not in fatal range (009,017,038,040,291,630), and not in warning range (631,632,633,634,695,696,697,698,699), the desired outcome is that the system sets message severity to unknown (msg-sev-u) and sets acknowledgment status (ws-ack-status).
💻 Technical Criteria
EXCLUDING
A K1 message with a message number not in any predefined category is being processed
When
The message number is not '000', not in fatal range (009,017,038,040,291,630), and not in warning range (631,632,633,634,695,696,697,698,699)
Then
The system sets message severity to Unknown (MSG-SEV-U) and sets acknowledgment status (WS-ACK-STATUS)
R-GCX015E-cbl-00079
Warning Message 695, 697, or 699?
Decision Rules
📊 Business Logic Narrative
When the process 'Warning Message 695, 697, or 699?' is invoked, and assuming that a k1 message has been categorized as warning severity, when the message number is '695' or '697' or '699', the desired outcome is that the system triggers email warning notification process to freight forwarder.
💻 Technical Criteria
Given
A K1 message has been categorized as warning severity
When
The message number is '695' OR '697' OR '699'
Then
The system triggers email warning notification process to freight forwarder
R-GCX015E-cbl-00080
Send Email Warning to Freight Forwarder
Action Rules
📊 Business Logic Narrative
When the process 'Send Email Warning to Freight Forwarder' is invoked, and assuming that a k1 message with number '695', '697', or '699' requires email notification, when the email warning process is triggered, the desired outcome is that the system calls email warning procedure (c100-send-email-warning) to notify freight forwarder with shipment details and warning message.
💻 Technical Criteria
Given
A K1 message with number '695', '697', or '699' requires email notification
When
The email warning process is triggered
Then
The system calls email warning procedure (C100-SEND-EMAIL-WARNING) to notify freight forwarder with shipment details and warning message
R-GCX015E-cbl-00082
Message Text Available?
Validation Rules
📊 Business Logic Narrative
When the process 'Message Text Available?' is invoked, and assuming that a k1 message segment is being processed for text extraction, when the system evaluates k1-02-free-form-message field, the desired outcome is that if the field is not spaces, the message text is processed; otherwise, processing continues without text extraction.
💻 Technical Criteria
Given
A K1 message segment is being processed for text extraction
When
The system evaluates K1-02-FREE-FORM-MESSAGE field
Then
If the field is not spaces, the message text is processed; otherwise, processing continues without text extraction
R-GCX015E-cbl-00385
Set Message Severity: Information
Decision Rules
📊 Business Logic Narrative
When the process 'Set Message Severity: Information' is invoked, and assuming that a k1 message segment is being processed, when the k1-02-msg-number equals '000', the desired outcome is that the message severity is set to information (msg-sev-i) and the processing status is set to acknowledged (ws-ack-status).
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1-02-MSG-NUMBER equals '000'
Then
The message severity is set to Information (MSG-SEV-I) and the processing status is set to acknowledged (WS-ACK-STATUS)
R-GCX015E-cbl-00386
Set Message Severity: Fatal
Decision Rules
📊 Business Logic Narrative
When the process 'Set Message Severity: Fatal' is invoked, and assuming that a k1 message segment is being processed, when the k1-02-msg-number equals '009' or '017' or '038' or '040' or '291' or '630', the desired outcome is that the message severity is set to fatal (msg-sev-f) and the processing status is set to error (ws-error-status).
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1-02-MSG-NUMBER equals '009' OR '017' OR '038' OR '040' OR '291' OR '630'
Then
The message severity is set to Fatal (MSG-SEV-F) and the processing status is set to error (WS-ERROR-STATUS)
R-GCX015E-cbl-00387
Set Message Severity: Warning
Decision Rules
📊 Business Logic Narrative
When the process 'Set Message Severity: Warning' is invoked, and assuming that a k1 message segment is being processed, when the k1-02-msg-number equals '631' or '632' or '633' or '634' or '695' or '696' or '697' or '698' or '699', the desired outcome is that the message severity is set to warning (msg-sev-w) and the processing status is set to acknowledged (ws-ack-status).
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1-02-MSG-NUMBER equals '631' OR '632' OR '633' OR '634' OR '695' OR '696' OR '697' OR '698' OR '699'
Then
The message severity is set to Warning (MSG-SEV-W) and the processing status is set to acknowledged (WS-ACK-STATUS)
R-GCX015E-cbl-00389
Set Message Severity: Unknown
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Message Severity: Unknown', assuming that a k1 message segment is being processed, when the k1-02-msg-number does not equal '000' and does not equal any of '009','017','038','040','291','630' and does not equal any of '631','632','633','634','695','696','697','698','699', the desired outcome is that the message severity is set to unknown (msg-sev-u) and the processing status is set to acknowledged (ws-ack-status).
💻 Technical Criteria
EXCLUDING
A K1 message segment is being processed
When
The K1-02-MSG-NUMBER does not equal '000' AND does not equal any of '009','017','038','040','291','630' AND does not equal any of '631','632','633','634','695','696','697','698','699'
Then
The message severity is set to Unknown (MSG-SEV-U) and the processing status is set to acknowledged (WS-ACK-STATUS)
R-GCX015E-cbl-00391
Process K1 Warning Message
Decision Rules
📊 Business Logic Narrative
When the process 'Process K1 Warning Message' is invoked, and assuming that a k1 message segment is being processed, when the k1 message number is 695, 697, or 699, the desired outcome is that the system should initiate email warning notification process.
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1 message number is 695, 697, or 699
Then
The system should initiate email warning notification process
R-GCX015E-cbl-00392
Retrieve Freight Forwarder Information
Process Rules
📊 Business Logic Narrative
When the process 'Retrieve Freight Forwarder Information' is invoked, and assuming that a warning message requires email notification and shipment data exists, when the system processes secondary segments with record type 03 and entity qualifier n101 indicates forwarder, the desired outcome is that the freight forwarder information should be retrieved and marked as found.
💻 Technical Criteria
Given
A warning message requires email notification and shipment data exists
When
The system processes secondary segments with record type 03 and entity qualifier N101 indicates forwarder
Then
The freight forwarder information should be retrieved and marked as found
R-GCX015E-cbl-00393
Retrieve Freight Forwarder Information
Process Rules
📊 Business Logic Narrative
When the process 'Retrieve Freight Forwarder Information' is invoked, and assuming that shipment secondary segments are being processed, when a record type 03 segment has entity qualifier n101 indicating consignee, the desired outcome is that the consignee name should be extracted from n102 field and marked as found.
💻 Technical Criteria
Given
Shipment secondary segments are being processed
When
A record type 03 segment has entity qualifier N101 indicating consignee
Then
The consignee name should be extracted from N102 field and marked as found
R-GCX015E-cbl-00394
Get Freight Forwarder Contact Details
Action Rules
📊 Business Logic Narrative
When the process 'Get Freight Forwarder Contact Details' is invoked, and assuming that freight forwarder information has been found in shipment data, when the system queries broker name segment using freight forwarder name prefixed with 'fw=', the desired outcome is that the broker short name should be retrieved from the broker name segment if found.
💻 Technical Criteria
Given
Freight forwarder information has been found in shipment data
When
The system queries broker name segment using freight forwarder name prefixed with 'FW='
Then
The broker short name should be retrieved from the broker name segment if found
R-GCX015E-cbl-00398
Send Merlin Email Messages
Action Rules
📊 Business Logic Narrative
When the process 'Send Merlin Email Messages' is invoked, and assuming that email content is formatted and recipient information is available, when the system calls merlin email service with formatted content and recipient details, the desired outcome is that the warning email should be sent to freight forwarder if internet address is available, otherwise to default recipient.
💻 Technical Criteria
Given
Email content is formatted and recipient information is available
When
The system calls Merlin email service with formatted content and recipient details
Then
The warning email should be sent to freight forwarder if internet address is available, otherwise to default recipient
R-GCX015E-cbl-00466
Segment Found?
Decision Rules
📊 Business Logic Narrative
When the process 'Segment Found?' is invoked, and assuming that database retrieval operation has completed, when checking the database return status, the desired outcome is that return status indicates successful retrieval (spaces) or failure (non-spaces), and processing continues or terminates accordingly.
💻 Technical Criteria
Given
Database retrieval operation has completed
When
Checking the database return status
Then
Return status indicates successful retrieval (spaces) or failure (non-spaces), and processing continues or terminates accordingly
R-GCX015E-cbl-00467
Record Type = '03'?
Decision Rules
📊 Business Logic Narrative
When the process 'Record Type = '03'?' is invoked, and assuming that a gcsa2rt segment has been successfully retrieved, when examining the record type field in the segment key, the desired outcome is that record type equals '03' indicates party information record, otherwise continue to check for type '07'.
💻 Technical Criteria
Given
A GCSA2RT segment has been successfully retrieved
When
Examining the record type field in the segment key
Then
Record type equals '03' indicates party information record, otherwise continue to check for type '07'
R-GCX015E-cbl-00468
Process Type 03 Record
Process Rules
📊 Business Logic Narrative
When the process 'Process Type 03 Record' is invoked, and assuming that a type 03 gcsa2rt segment record is available, when processing the segment data, the desired outcome is that segment data is moved to gcsuss03 structure for party information analysis.
💻 Technical Criteria
Given
A type 03 GCSA2RT segment record is available
When
Processing the segment data
Then
Segment data is moved to GCSUSS03 structure for party information analysis
R-GCX015E-cbl-00469
Is Freight Forwarder?
Decision Rules
📊 Business Logic Narrative
When the process 'Is Freight Forwarder?' is invoked, and assuming that a type 03 party information record is being processed, when checking the n101 qualifier code in the party record, the desired outcome is that n101 qualifier indicates freight forwarder role and freight forwarder found flag is set to true.
💻 Technical Criteria
Given
A type 03 party information record is being processed
When
Checking the N101 qualifier code in the party record
Then
N101 qualifier indicates freight forwarder role and freight forwarder found flag is set to true
R-GCX015E-cbl-00470
Mark Freight Forwarder Found
Process Rules
📊 Business Logic Narrative
When the process 'Mark Freight Forwarder Found' is invoked, and assuming that a party record with freight forwarder n101 qualifier is identified, when processing the freight forwarder party information, the desired outcome is that freight forwarder found flag is set to true to track successful identification.
💻 Technical Criteria
Given
A party record with freight forwarder N101 qualifier is identified
When
Processing the freight forwarder party information
Then
Freight forwarder found flag is set to true to track successful identification
R-GCX015E-cbl-00471
Is Consignee?
Decision Rules
📊 Business Logic Narrative
When the process 'Is Consignee?' is invoked, and assuming that a type 03 party information record is being processed, when checking the n101 qualifier code in the party record, the desired outcome is that n101 qualifier indicates consignee role and consignee processing is initiated.
💻 Technical Criteria
Given
A type 03 party information record is being processed
When
Checking the N101 qualifier code in the party record
Then
N101 qualifier indicates consignee role and consignee processing is initiated
R-GCX015E-cbl-00472
Extract Consignee Name
Process Rules
📊 Business Logic Narrative
When the process 'Extract Consignee Name' is invoked, and assuming that a party record with consignee n101 qualifier is identified, when processing the consignee party information, the desired outcome is that n102 name field is extracted and stored as consignee data.
💻 Technical Criteria
Given
A party record with consignee N101 qualifier is identified
When
Processing the consignee party information
Then
N102 name field is extracted and stored as consignee data
R-GCX015E-cbl-00473
Mark Consignee Found
Process Rules
📊 Business Logic Narrative
When the process 'Mark Consignee Found' is invoked, and assuming that consignee name has been successfully extracted from party record, when completing consignee information processing, the desired outcome is that consignee found flag is set to true to track successful identification.
💻 Technical Criteria
Given
Consignee name has been successfully extracted from party record
When
Completing consignee information processing
Then
Consignee found flag is set to true to track successful identification
R-GCX015E-cbl-00474
Record Type = '07'?
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Record Type = '07'?', assuming that a gcsa2rt segment has been successfully retrieved and is not type 03, when examining the record type field in the segment key, the desired outcome is that record type equals '07' indicates additional shipment information record.
💻 Technical Criteria
EXCLUDING
A GCSA2RT segment has been successfully retrieved and is not type 03
When
Examining the record type field in the segment key
Then
Record type equals '07' indicates additional shipment information record
R-GCX015E-cbl-00475
Process Type 07 Record
Process Rules
📊 Business Logic Narrative
When the process 'Process Type 07 Record' is invoked, and assuming that a type 07 gcsa2rt segment record is available, when processing the segment data, the desired outcome is that segment data is moved to gcsuss07 structure for shipment information analysis.
💻 Technical Criteria
Given
A type 07 GCSA2RT segment record is available
When
Processing the segment data
Then
Segment data is moved to GCSUSS07 structure for shipment information analysis
R-GCX015E-cbl-00476
Mark Segment 07 Found
Process Rules
📊 Business Logic Narrative
When the process 'Mark Segment 07 Found' is invoked, and assuming that a type 07 segment record has been successfully processed, when completing type 07 segment processing, the desired outcome is that segment 07 found flag is set to true to track successful identification.
💻 Technical Criteria
Given
A type 07 segment record has been successfully processed
When
Completing type 07 segment processing
Then
Segment 07 found flag is set to true to track successful identification
R-GCX015E-cbl-00477
Get Next GCSA2RT Segment
Action Rules
📊 Business Logic Narrative
When the process 'Get Next GCSA2RT Segment' is invoked, and assuming that current gcsa2rt segment has been processed, when database retrieval is executed with 'gn' function for next segment, the desired outcome is that next sequential gcsa2rt segment is retrieved or end of data status is returned.
💻 Technical Criteria
Given
Current GCSA2RT segment has been processed
When
Database retrieval is executed with 'GN' function for next segment
Then
Next sequential GCSA2RT segment is retrieved or end of data status is returned
R-GCX015E-cbl-00478
More Segments Available?
Decision Rules
📊 Business Logic Narrative
When the process 'More Segments Available?' is invoked, and assuming that next segment retrieval operation has completed, when checking the database return status, the desired outcome is that return status indicates more segments available (spaces) or end of data (ge or gb), and processing continues or terminates accordingly.
💻 Technical Criteria
Given
Next segment retrieval operation has completed
When
Checking the database return status
Then
Return status indicates more segments available (spaces) or end of data (GE or GB), and processing continues or terminates accordingly
R-GCX015E-cbl-00541
Read GCSA2RT Segment with Record Type '03'
Process Rules
📊 Business Logic Narrative
When the process 'Read GCSA2RT Segment with Record Type '03'' is invoked, and assuming that a gcsa2rt segment exists with record type '03', when the system processes the segment, the desired outcome is that the segment data is moved to gcsuss03 structure for further analysis.
💻 Technical Criteria
Given
A GCSA2RT segment exists with record type '03'
When
The system processes the segment
Then
The segment data is moved to GCSUSS03 structure for further analysis
R-GCX015E-cbl-00542
Check N101 Qualifier Code
Decision Rules
📊 Business Logic Narrative
When the process 'Check N101 Qualifier Code' is invoked, and assuming that a type 03 record with n101 qualifier code indicating freight forwarder, when the n101 qualifier is evaluated as freight forwarder type, the desired outcome is that the freight forwarder found flag is set to true and the freight forwarder name is extracted.
💻 Technical Criteria
Given
A Type 03 record with N101 qualifier code indicating freight forwarder
When
The N101 qualifier is evaluated as freight forwarder type
Then
The freight forwarder found flag is set to true and the freight forwarder name is extracted
R-GCX015E-cbl-00543
Extract Consignee Name
Decision Rules
📊 Business Logic Narrative
When the process 'Extract Consignee Name' is invoked, and assuming that a type 03 record with n101 qualifier code indicating consignee, when the n101 qualifier is evaluated as consignee type, the desired outcome is that the consignee name is extracted and the consignee found flag is set to true.
💻 Technical Criteria
Given
A Type 03 record with N101 qualifier code indicating consignee
When
The N101 qualifier is evaluated as consignee type
Then
The consignee name is extracted and the consignee found flag is set to true
R-GCX015E-cbl-00544
Extract Freight Forwarder Name
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Freight Forwarder Name' is invoked, and assuming that a type 03 record identified as freight forwarder or consignee, when the entity type is confirmed, the desired outcome is that the entity name is extracted from the n102 name field and stored in appropriate business data fields.
💻 Technical Criteria
Given
A Type 03 record identified as freight forwarder or consignee
When
The entity type is confirmed
Then
The entity name is extracted from the N102 name field and stored in appropriate business data fields
R-GCX015E-cbl-00481
Initialize GCWUSIO Parameters
Process Rules
📊 Business Logic Narrative
When the process 'Initialize GCWUSIO Parameters' is invoked, and assuming that the system needs to search for freight forwarder broker information, when the freight forwarder broker search process is initiated, the desired outcome is that the system clears all search parameters and sets up the broker registry table access.
💻 Technical Criteria
Given
The system needs to search for freight forwarder broker information
When
The freight forwarder broker search process is initiated
Then
The system clears all search parameters and sets up the broker registry table access
R-GCX015E-cbl-00483
Search GCST2RT Table for Broker Record
Action Rules
📊 Business Logic Narrative
When the process 'Search GCST2RT Table for Broker Record' is invoked, and assuming that a search key has been constructed with the freight forwarder name, when the system performs a lookup in the broker registry table, the desired outcome is that the system executes a search operation against the gcst2rt table using the freight forwarder key.
💻 Technical Criteria
Given
A search key has been constructed with the freight forwarder name
When
The system performs a lookup in the broker registry table
Then
The system executes a search operation against the GCST2RT table using the freight forwarder key
R-GCX015E-cbl-00484
Retrieve Broker Short Name from GCT2 Segment
Decision Rules
📊 Business Logic Narrative
When the process 'Retrieve Broker Short Name from GCT2 Segment' is invoked, and assuming that a broker record exists in the registry table for the given freight forwarder, when the search operation successfully locates the broker record, the desired outcome is that the system retains the broker short name and related information from the found record.
💻 Technical Criteria
Given
A broker record exists in the registry table for the given freight forwarder
When
The search operation successfully locates the broker record
Then
The system retains the broker short name and related information from the found record
R-GCX015E-cbl-00490
Check Internet Usage Flag
Decision Rules
📊 Business Logic Narrative
When the process 'Check Internet Usage Flag' is invoked, and assuming that broker contact information has been retrieved from bk and b1 tables, when the system checks the internet usage preference, the desired outcome is that if bk use internet flag equals 'y', set up internet email address from b1 segment and mark email to freight forwarder flag as true.
💻 Technical Criteria
Given
Broker contact information has been retrieved from BK and B1 tables
When
The system checks the internet usage preference
Then
If BK use internet flag equals 'Y', set up internet email address from B1 segment and mark email to freight forwarder flag as true
R-GCX015E-cbl-00493
Set Function Code to 'GU' - Get Unique
Action Rules
📊 Business Logic Narrative
When the process 'Set Function Code to 'GU' - Get Unique' is invoked, and assuming that the segment type is set to shiproot, when the system needs to specify the database operation type, the desired outcome is that the function code is set to 'gu' to perform a get unique operation.
💻 Technical Criteria
Given
The segment type is set to SHIPROOT
When
The system needs to specify the database operation type
Then
The function code is set to 'GU' to perform a get unique operation
R-GCX015E-cbl-00494
Set Accept Status to 'GE'
Process Rules
📊 Business Logic Narrative
When the process 'Set Accept Status to 'GE'' is invoked, and assuming that the function code is set to 'gu' for get unique operation, when the system needs to specify acceptable return status codes, the desired outcome is that the accept status is set to 'ge' to allow successful retrieval operations.
💻 Technical Criteria
Given
The function code is set to 'GU' for get unique operation
When
The system needs to specify acceptable return status codes
Then
The accept status is set to 'GE' to allow successful retrieval operations
R-GCX015E-cbl-00083
K3 Segment Found?
Validation Rules
📊 Business Logic Narrative
When the process 'K3 Segment Found?' is invoked, and assuming that a message is being processed for accept/reject count validation, when the system checks for the presence of k3 segment in the message, the desired outcome is that if k3 segment is found, extract the segment data for processing, otherwise create a default k3 segment with current date and time.
💻 Technical Criteria
Given
A message is being processed for accept/reject count validation
When
The system checks for the presence of K3 segment in the message
Then
If K3 segment is found, extract the segment data for processing, otherwise create a default K3 segment with current date and time
R-GCX015E-cbl-00085
Total Reject Count = 0?
Decision Rules
📊 Business Logic Narrative
When the process 'Total Reject Count = 0?' is invoked, and assuming that k3 segment data is available for processing, when the system evaluates the total reject count field, the desired outcome is that if total reject count equals zero, proceed to validate accept count, otherwise set error status.
💻 Technical Criteria
Given
K3 segment data is available for processing
When
The system evaluates the total reject count field
Then
If total reject count equals zero, proceed to validate accept count, otherwise set error status
R-GCX015E-cbl-00086
Total Accept Count > 0?
Decision Rules
📊 Business Logic Narrative
When the process 'Total Accept Count > 0?' is invoked, and assuming that k3 segment has zero reject count, when the system evaluates the total accept count field, the desired outcome is that if total accept count is greater than zero, proceed to train status check, otherwise log zero counts message and set acknowledgment status.
💻 Technical Criteria
Given
K3 segment has zero reject count
When
The system evaluates the total accept count field
Then
If total accept count is greater than zero, proceed to train status check, otherwise log zero counts message and set acknowledgment status
R-GCX015E-cbl-00087
Train Status Check
Decision Rules
📊 Business Logic Narrative
When the process 'Train Status Check' is invoked, and assuming that k3 segment has zero rejects and positive accept count, when the system evaluates the current train status, the desired outcome is that if train is pre-arrived set pre-arrival status, if train is review complete set review completed status, otherwise set acknowledgment status.
💻 Technical Criteria
Given
K3 segment has zero rejects and positive accept count
When
The system evaluates the current train status
Then
If train is pre-arrived set pre-arrival status, if train is review complete set review completed status, otherwise set acknowledgment status
R-GCX015E-cbl-00088
Set Pre-Arrival Status
Action Rules
📊 Business Logic Narrative
When the process 'Set Pre-Arrival Status' is invoked, and assuming that k3 segment has valid accept counts and train is in pre-arrived state, when the system determines the final processing status, the desired outcome is that set the processing status to pre-arrival status.
💻 Technical Criteria
Given
K3 segment has valid accept counts and train is in pre-arrived state
When
The system determines the final processing status
Then
Set the processing status to pre-arrival status
R-GCX015E-cbl-00089
Set Review Completed Status
Action Rules
📊 Business Logic Narrative
When the process 'Set Review Completed Status' is invoked, and assuming that k3 segment has valid accept counts and train is in review complete state, when the system determines the final processing status, the desired outcome is that set the processing status to review completed status.
💻 Technical Criteria
Given
K3 segment has valid accept counts and train is in review complete state
When
The system determines the final processing status
Then
Set the processing status to review completed status
R-GCX015E-cbl-00090
Set Acknowledgment Status
Action Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Acknowledgment Status', assuming that k3 segment has valid accept counts and train is not in pre-arrived or review complete state, or k3 segment has zero counts, when the system determines the final processing status, the desired outcome is that set the processing status to acknowledgment status.
💻 Technical Criteria
EXCLUDING
K3 segment has valid accept counts and train is not in pre-arrived or review complete state, or K3 segment has zero counts
When
The system determines the final processing status
Then
Set the processing status to acknowledgment status
R-GCX015E-cbl-00091
Set Error Status
Action Rules
📊 Business Logic Narrative
When the process 'Set Error Status' is invoked, and assuming that k3 segment contains non-zero reject count, when the system processes the accept/reject counts, the desired outcome is that set the processing status to error status.
💻 Technical Criteria
Given
K3 segment contains non-zero reject count
When
The system processes the accept/reject counts
Then
Set the processing status to error status
R-GCX015E-cbl-00092
Add Zero Counts Message to Log
Process Rules
📊 Business Logic Narrative
When the process 'Add Zero Counts Message to Log' is invoked, and assuming that k3 segment has zero reject count and zero accept count, when the system processes the count validation, the desired outcome is that add message 'uscs k3 record has zero counts' to the log and increment log counter.
💻 Technical Criteria
Given
K3 segment has zero reject count and zero accept count
When
The system processes the count validation
Then
Add message 'USCS K3 RECORD HAS ZERO COUNTS' to the log and increment log counter
R-GCX015E-cbl-00401
Total Accept Count > 0?
Validation Rules
📊 Business Logic Narrative
When the process 'Total Accept Count > 0?' is invoked, and assuming that a k3 segment is being processed with zero reject counts, when the total accept count in the k3 segment is zero, the desired outcome is that log zero counts message and set acknowledgment status.
💻 Technical Criteria
Given
A K3 segment is being processed with zero reject counts
When
The total accept count in the K3 segment is zero
Then
Log zero counts message and set acknowledgment status
R-GCX015E-cbl-00402
Current Train Status?
Decision Rules
📊 Business Logic Narrative
When the process 'Current Train Status?' is invoked, and assuming that a k3 segment has zero rejects and positive accept counts for a train, when the train status is pre-arrived, the desired outcome is that set pre-arrival acknowledgment status.
💻 Technical Criteria
Given
A K3 segment has zero rejects and positive accept counts for a train
When
The train status is Pre-Arrived
Then
Set pre-arrival acknowledgment status
R-GCX015E-cbl-00403
Current Train Status?
Decision Rules
📊 Business Logic Narrative
When the process 'Current Train Status?' is invoked, and assuming that a k3 segment has zero rejects and positive accept counts for a train, when the train status is review complete, the desired outcome is that set review completed acknowledgment status.
💻 Technical Criteria
Given
A K3 segment has zero rejects and positive accept counts for a train
When
The train status is Review Complete
Then
Set review completed acknowledgment status
R-GCX015E-cbl-00404
Current Train Status?
Decision Rules
📊 Business Logic Narrative
When the process 'Current Train Status?' is invoked, and assuming that a k3 segment has zero rejects and positive accept counts for a train, when the train status is neither pre-arrived nor review complete, the desired outcome is that set standard acknowledgment status.
💻 Technical Criteria
Given
A K3 segment has zero rejects and positive accept counts for a train
When
The train status is neither Pre-Arrived nor Review Complete
Then
Set standard acknowledgment status
R-GCX015E-cbl-00405
Set Error Status - Zero Counts
Validation Rules
📊 Business Logic Narrative
When the process 'Set Error Status - Zero Counts' is invoked, and assuming that a k3 segment is being processed with zero reject counts, when the total accept count is also zero, the desired outcome is that log 'uscs k3 record has zero counts' message and set acknowledgment status.
💻 Technical Criteria
Given
A K3 segment is being processed with zero reject counts
When
The total accept count is also zero
Then
Log 'USCS K3 RECORD HAS ZERO COUNTS' message and set acknowledgment status
R-GCX015E-cbl-00093
M10 Segment Found?
Validation Rules
📊 Business Logic Narrative
When the process 'M10 Segment Found?' is invoked, and assuming that a message is being processed for segment validation, when the system checks for the presence of m10 segment, the desired outcome is that if m10 segment is not found, record an error message 'm10 segment not found on 355 transaction' and continue validation.
💻 Technical Criteria
Given
A message is being processed for segment validation
When
The system checks for the presence of M10 segment
Then
If M10 segment is not found, record an error message 'M10 SEGMENT NOT FOUND ON 355 TRANSACTION' and continue validation
R-GCX015E-cbl-00094
P4 Segment Found?
Validation Rules
📊 Business Logic Narrative
When the process 'P4 Segment Found?' is invoked, and assuming that a message is being processed for segment validation and m10 validation is complete, when the system checks for the presence of p4 segment, the desired outcome is that if p4 segment is not found, record an error message 'p4 segment not found on 355 transaction' and continue validation.
💻 Technical Criteria
Given
A message is being processed for segment validation and M10 validation is complete
When
The system checks for the presence of P4 segment
Then
If P4 segment is not found, record an error message 'P4 SEGMENT NOT FOUND ON 355 TRANSACTION' and continue validation
R-GCX015E-cbl-00095
K3 Segment Found?
Validation Rules
📊 Business Logic Narrative
When the process 'K3 Segment Found?' is invoked, and assuming that a message is being processed for segment validation and m10 and p4 validations are complete, when the system checks for the presence of k3 segment, the desired outcome is that if k3 segment is not found, record an error message 'k3 segment not found on 355 transaction' and create a default k3 segment using current machine date and time, then set the k3 segment found flag to true.
💻 Technical Criteria
Given
A message is being processed for segment validation and M10 and P4 validations are complete
When
The system checks for the presence of K3 segment
Then
If K3 segment is not found, record an error message 'K3 SEGMENT NOT FOUND ON 355 TRANSACTION' and create a default K3 segment using current machine date and time, then set the K3 segment found flag to true
R-GCX015E-cbl-00106
Call Database to Get Train Record
Action Rules
📊 Business Logic Narrative
When the process 'Call Database to Get Train Record' is invoked, and assuming that a us train id is available from message processing, when the system attempts to retrieve the train record from the train database, the desired outcome is that the system should call the database access function with the us train id as the search key.
💻 Technical Criteria
Given
A US Train ID is available from message processing
When
The system attempts to retrieve the train record from the train database
Then
The system should call the database access function with the US Train ID as the search key
R-GCX015E-cbl-00107
Train Record Found?
Decision Rules
📊 Business Logic Narrative
When the process 'Train Record Found?' is invoked, and assuming that a database call has been made to retrieve a train record, when the database returns a response with a status code, the desired outcome is that if the status code is blank/spaces, the train record is found, otherwise the train record is not found.
💻 Technical Criteria
Given
A database call has been made to retrieve a train record
When
The database returns a response with a status code
Then
If the status code is blank/spaces, the train record is found, otherwise the train record is not found
R-GCX015E-cbl-00108
Set Train Found Flag
Process Rules
📊 Business Logic Narrative
When the process 'Set Train Found Flag' is invoked, and assuming that a train record has been successfully found in the database, when the database status indicates successful retrieval, the desired outcome is that the system should set the train found flag to indicate successful train record retrieval.
💻 Technical Criteria
Given
A train record has been successfully found in the database
When
The database status indicates successful retrieval
Then
The system should set the train found flag to indicate successful train record retrieval
R-GCX015E-cbl-00109
Store Train ID in Processing Keys
Process Rules
📊 Business Logic Narrative
When the process 'Store Train ID in Processing Keys' is invoked, and assuming that a train record has been successfully found and the train found flag is set, when the system needs to prepare for further train processing, the desired outcome is that the system should store the us train id in the merlin-key and the train id in merlin-sub-key for processing reference.
💻 Technical Criteria
Given
A train record has been successfully found and the train found flag is set
When
The system needs to prepare for further train processing
Then
The system should store the US Train ID in the MERLIN-KEY and the train ID in MERLIN-SUB-KEY for processing reference
R-GCX015E-cbl-00110
Set Train Not Found Flag
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Train Not Found Flag', assuming that a database call has been made to retrieve a train record, when the database returns a non-blank status code indicating the record was not found, the desired outcome is that the system should set the train not found flag to indicate unsuccessful train record retrieval.
💻 Technical Criteria
EXCLUDING
A database call has been made to retrieve a train record
When
The database returns a non-blank status code indicating the record was not found
Then
The system should set the train not found flag to indicate unsuccessful train record retrieval
R-GCX015E-cbl-00111
Log Train ID Not Found Message
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Log Train ID Not Found Message', assuming that a train record was not found in the database and the train not found flag is set, when the system needs to record the failure for audit purposes, the desired outcome is that the system should log the message 'this us-train-id was not found: ' followed by the train id that was searched.
💻 Technical Criteria
EXCLUDING
A train record was not found in the database and the train not found flag is set
When
The system needs to record the failure for audit purposes
Then
The system should log the message 'THIS US-TRAIN-ID WAS NOT FOUND: ' followed by the train ID that was searched
R-GCX015E-cbl-00112
Train Status: DELETED Acknowledgment Received
Decision Rules
📊 Business Logic Narrative
When the process 'Train Status: DELETED Acknowledgment Received' is invoked, and assuming that a train record exists with deleted status and acknowledgment status is received, when the system processes the train status update, the desired outcome is that the train current status is set to 'deleted', security information is cleared, and the train record is updated in the database.
💻 Technical Criteria
Given
A train record exists with DELETED status and acknowledgment status is received
When
The system processes the train status update
Then
The train current status is set to 'DELETED', security information is cleared, and the train record is updated in the database
R-GCX015E-cbl-00113
Train Status: DELETE-PENDING Acknowledgment Received
Decision Rules
📊 Business Logic Narrative
When the process 'Train Status: DELETE-PENDING Acknowledgment Received' is invoked, and assuming that a train record exists with delete-pending status and acknowledgment status is received, when the system processes the train status update, the desired outcome is that the train current status is set to 'deleted', security information is cleared, and the train record is updated in the database.
💻 Technical Criteria
Given
A train record exists with DELETE-PENDING status and acknowledgment status is received
When
The system processes the train status update
Then
The train current status is set to 'DELETED', security information is cleared, and the train record is updated in the database
R-GCX015E-cbl-00114
Train Status: Other Not Deleted/Delete-Pending
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Train Status: Other Not Deleted/Delete-Pending', assuming that a train record exists that is not in deleted status and not in delete-pending status, when the system processes the train status update, the desired outcome is that the train current status is set to the current response status and the train record is updated in the database.
💻 Technical Criteria
EXCLUDING
A train record exists that is not in DELETED status and not in DELETE-PENDING status
When
The system processes the train status update
Then
The train current status is set to the current response status and the train record is updated in the database
R-GCX015E-cbl-00115
Check AEI Train Send Conditions
Action Rules
📊 Business Logic Narrative
When the process 'Check AEI Train Send Conditions' is invoked, and assuming that a train record has been updated with new status, when the system evaluates aei send requirements, the desired outcome is that the system performs aei train send check to determine if additional processing is needed.
💻 Technical Criteria
Given
A train record has been updated with new status
When
The system evaluates AEI send requirements
Then
The system performs AEI train send check to determine if additional processing is needed
R-GCX015E-cbl-00116
Process Train Arrival
Decision Rules
📊 Business Logic Narrative
When the process 'Process Train Arrival' is invoked, and assuming that a train record has acknowledgment status and is in arrived-pending state, when the system checks for train arrival processing requirements, the desired outcome is that the system triggers the train arrival process.
💻 Technical Criteria
Given
A train record has acknowledgment status and is in arrived-pending state
When
The system checks for train arrival processing requirements
Then
The system triggers the train arrival process
R-GCX015E-cbl-00407
Set Train Status to 'DELETED'
Decision Rules
📊 Business Logic Narrative
When the process 'Set Train Status to 'DELETED'' is invoked, and assuming that a train record exists with current status as deleted and acknowledgment status is received, when the system processes the train status update logic, the desired outcome is that the train current status should be set to 'deleted', security context should be cleared, and the train record should be updated with root-only replacement.
💻 Technical Criteria
Given
A train record exists with current status as DELETED and acknowledgment status is received
When
The system processes the train status update logic
Then
The train current status should be set to 'DELETED', security context should be cleared, and the train record should be updated with root-only replacement
R-GCX015E-cbl-00408
Set Train Status to 'DELETED'
Decision Rules
📊 Business Logic Narrative
When the process 'Set Train Status to 'DELETED'' is invoked, and assuming that a train record exists with current status as delete-pending and acknowledgment status is received, when the system processes the train status update logic, the desired outcome is that the train current status should be set to 'deleted', security context should be cleared, and the train record should be updated with root-only replacement.
💻 Technical Criteria
Given
A train record exists with current status as DELETE-PENDING and acknowledgment status is received
When
The system processes the train status update logic
Then
The train current status should be set to 'DELETED', security context should be cleared, and the train record should be updated with root-only replacement
R-GCX015E-cbl-00409
Set Train Status to Current WS-STATUS
Decision Rules
📊 Business Logic Narrative
When the process 'Set Train Status to Current WS-STATUS' is invoked, and assuming that a train record exists with status that is neither deleted nor delete-pending, when the system processes the train status update logic, the desired outcome is that the train current status should be set to the current working status, the train record should be updated with root-only replacement, aei train send check should be performed, and if the train is acknowledged and has arrived-pending status, the train arrival process should be triggered.
💻 Technical Criteria
Given
A train record exists with status that is neither DELETED nor DELETE-PENDING
When
The system processes the train status update logic
Then
The train current status should be set to the current working status, the train record should be updated with root-only replacement, AEI train send check should be performed, and if the train is acknowledged and has arrived-pending status, the train arrival process should be triggered
R-GCX015E-cbl-00124
Train Status = ACK?
Validation Rules
📊 Business Logic Narrative
When the process 'Train Status = ACK?' is invoked, and assuming that a train record exists in the system, when the system checks aei send eligibility, the desired outcome is that the train must have ack status to proceed with aei processing.
💻 Technical Criteria
Given
A train record exists in the system
When
The system checks AEI send eligibility
Then
The train must have ACK status to proceed with AEI processing
R-GCX015E-cbl-00125
AEI Send Flag = Yes?
Validation Rules
📊 Business Logic Narrative
When the process 'AEI Send Flag = Yes?' is invoked, and assuming that a train has ack status, when the system evaluates aei send requirements, the desired outcome is that the aei send flag must be set to yes to continue processing.
💻 Technical Criteria
Given
A train has ACK status
When
The system evaluates AEI send requirements
Then
The AEI send flag must be set to Yes to continue processing
R-GCX015E-cbl-00135
Purge Transaction via CIMS
Action Rules
📊 Business Logic Narrative
When the process 'Purge Transaction via CIMS' is invoked, and assuming that transaction message has been logged, when the system performs cleanup, the desired outcome is that call cims program with purg function to purge transaction resources.
💻 Technical Criteria
Given
Transaction message has been logged
When
The system performs cleanup
Then
Call CIMS program with PURG function to purge transaction resources
R-GCX015E-cbl-00136
Send AEI Status Message
Action Rules
📊 Business Logic Narrative
When the process 'Send AEI Status Message' is invoked, and assuming that aei processing has been attempted or aei send flag is set, when the system completes aei processing, the desired outcome is that send aei status message notification.
💻 Technical Criteria
Given
AEI processing has been attempted or AEI send flag is set
When
The system completes AEI processing
Then
Send AEI status message notification
R-GCX015E-cbl-00416
Train Status = ACK?
Validation Rules
📊 Business Logic Narrative
When the process 'Train Status = ACK?' is invoked, and assuming that a train record is being processed for aei send validation, when the system checks the train status, the desired outcome is that aei processing should only continue if the train status is ack, otherwise skip aei processing.
💻 Technical Criteria
Given
A train record is being processed for AEI send validation
When
The system checks the train status
Then
AEI processing should only continue if the train status is ACK, otherwise skip AEI processing
R-GCX015E-cbl-00417
AEI Send Flag = True?
Validation Rules
📊 Business Logic Narrative
When the process 'AEI Send Flag = True?' is invoked, and assuming that a train record with ack status is being validated for aei processing, when the system checks the aei send flag, the desired outcome is that aei processing should only continue if the aei send flag is true, otherwise skip aei processing.
💻 Technical Criteria
Given
A train record with ACK status is being validated for AEI processing
When
The system checks the AEI send flag
Then
AEI processing should only continue if the AEI send flag is true, otherwise skip AEI processing
R-GCX015E-cbl-00147
AEI Contact Found?
Decision Rules
📊 Business Logic Narrative
When the process 'AEI Contact Found?' is invoked, and assuming that aei email contact lookup returns no entry found status, when the system attempts to retrieve email contacts from database, the desired outcome is that the system uses default merlin id for email recipient.
💻 Technical Criteria
Given
AEI email contact lookup returns no entry found status
When
The system attempts to retrieve email contacts from database
Then
The system uses default Merlin ID for email recipient
R-GCX015E-cbl-00148
Use Default Merlin ID
Action Rules
📊 Business Logic Narrative
When the process 'Use Default Merlin ID' is invoked, and assuming that database lookup for aei contacts fails or returns no entry, when the system needs to determine email recipients, the desired outcome is that the system assigns default merlin id as the email recipient.
💻 Technical Criteria
Given
Database lookup for AEI contacts fails or returns no entry
When
The system needs to determine email recipients
Then
The system assigns default Merlin ID as the email recipient
R-GCX015E-cbl-00150
Format Train Status Message
Computation Rules
📊 Business Logic Narrative
When the process 'Format Train Status Message' is invoked, and assuming that a train with customer train id and current status information, when the system prepares aei status email message, the desired outcome is that the system formats email subject as 'train: [train_id] status: [current_status]'.
💻 Technical Criteria
Given
A train with customer train ID and current status information
When
The system prepares AEI status email message
Then
The system formats email subject as 'TRAIN: [train_id] STATUS: [current_status]'
R-GCX015E-cbl-00152
Email Send Successful?
Decision Rules
📊 Business Logic Narrative
When the process 'Email Send Successful?' is invoked, and assuming that email send operation completed with return status, when the system checks email send result, the desired outcome is that if email send failed, the system initiates resend process to default recipients.
💻 Technical Criteria
Given
Email send operation completed with return status
When
The system checks email send result
Then
If email send failed, the system initiates resend process to default recipients
R-GCX015E-cbl-00153
Resend to Default Recipients
Action Rules
📊 Business Logic Narrative
When the process 'Resend to Default Recipients' is invoked, and assuming that primary email send operation failed, when the system executes retry mechanism, the desired outcome is that the system sends email to default recipients aei9999 and om01247 with same message content.
💻 Technical Criteria
Given
Primary email send operation failed
When
The system executes retry mechanism
Then
The system sends email to default recipients AEI9999 and OM01247 with same message content
R-GCX015E-cbl-00154
Log Email Send Failure
Action Rules
📊 Business Logic Narrative
When the process 'Log Email Send Failure' is invoked, and assuming that both primary and retry email send operations failed, when the system completes all retry attempts, the desired outcome is that the system logs 'send to file of om01247 failed' error message.
💻 Technical Criteria
Given
Both primary and retry email send operations failed
When
The system completes all retry attempts
Then
The system logs 'SEND TO FILE OF OM01247 FAILED' error message
R-GCX015E-cbl-00155
Check Train Status Conditions
Decision Rules
📊 Business Logic Narrative
When the process 'Check Train Status Conditions' is invoked, and assuming that a train record exists in the system, when the system checks train arrival processing eligibility, the desired outcome is that the train must be acknowledged and have arrived-pending status to proceed with arrival processing.
💻 Technical Criteria
Given
A train record exists in the system
When
The system checks train arrival processing eligibility
Then
The train must be acknowledged AND have arrived-pending status to proceed with arrival processing
R-GCX015E-cbl-00156
Set Action Code to 'TAR'
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Action Code to 'TAR'' is invoked, and assuming that a train arrival message is being prepared, when the system sets up the transaction parameters, the desired outcome is that the action code must be set to 'tar' to identify this as a train arrival transaction.
💻 Technical Criteria
Given
A train arrival message is being prepared
When
The system sets up the transaction parameters
Then
The action code must be set to 'TAR' to identify this as a train arrival transaction
R-GCX015E-cbl-00157
Get Current System Date/Time
Process Rules
📊 Business Logic Narrative
When the process 'Get Current System Date/Time' is invoked, and assuming that a train arrival is being processed, when the system needs to record the arrival timestamp, the desired outcome is that the current system date and time must be captured and formatted for the arrival event.
💻 Technical Criteria
Given
A train arrival is being processed
When
The system needs to record the arrival timestamp
Then
The current system date and time must be captured and formatted for the arrival event
R-GCX015E-cbl-00159
Set Train ID from US Custom Train ID
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Train ID from US Custom Train ID' is invoked, and assuming that a train arrival message is being prepared, when the system assigns train identification, the desired outcome is that the us custom train id from the train record must be used as the train identifier in the arrival message.
💻 Technical Criteria
Given
A train arrival message is being prepared
When
The system assigns train identification
Then
The US Custom Train ID from the train record must be used as the train identifier in the arrival message
R-GCX015E-cbl-00161
Create Train Arrival Transaction Message
Action Rules
📊 Business Logic Narrative
When the process 'Create Train Arrival Transaction Message' is invoked, and assuming that all train arrival parameters have been set, when the system creates the transaction message, the desired outcome is that a complete gct1121e message must be generated with action code, event date/time, train id, and security parameters.
💻 Technical Criteria
Given
All train arrival parameters have been set
When
The system creates the transaction message
Then
A complete GCT1121E message must be generated with action code, event date/time, train ID, and security parameters
R-GCX015E-cbl-00162
Send Message to IMS Queue
Action Rules
📊 Business Logic Narrative
When the process 'Send Message to IMS Queue' is invoked, and assuming that a train arrival message has been created, when the message needs to be queued for processing, the desired outcome is that the message must be sent to the ims queue using cims with chng operation and alt-pcb.
💻 Technical Criteria
Given
A train arrival message has been created
When
The message needs to be queued for processing
Then
The message must be sent to the IMS queue using CIMS with CHNG operation and ALT-PCB
R-GCX015E-cbl-00164
Purge IMS Message
Process Rules
📊 Business Logic Narrative
When the process 'Purge IMS Message' is invoked, and assuming that a train arrival message has been written to the log, when message processing is complete, the desired outcome is that the ims message queue must be purged using cims with purg operation.
💻 Technical Criteria
Given
A train arrival message has been written to the log
When
Message processing is complete
Then
The IMS message queue must be purged using CIMS with PURG operation
R-GCX015E-cbl-00169
Broker Short Name Available?
Validation Rules
📊 Business Logic Narrative
When the process 'Broker Short Name Available?' is invoked, and assuming that freight forwarder broker lookup has been performed, when the system evaluates the retrieved broker information, the desired outcome is that if gct2-broker-name-short is not spaces, proceed to get detailed broker contact information.
💻 Technical Criteria
Given
Freight forwarder broker lookup has been performed
When
The system evaluates the retrieved broker information
Then
If GCT2-BROKER-NAME-SHORT is not spaces, proceed to get detailed broker contact information
R-GCX015E-cbl-00172
Format Email Subject Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Email Subject Line' is invoked, and assuming that email warning notification needs to be sent, when the system prepares the email subject, the desired outcome is that the system sets the email subject to the predefined warning email subject format.
💻 Technical Criteria
Given
Email warning notification needs to be sent
When
The system prepares the email subject
Then
The system sets the email subject to the predefined warning email subject format
R-GCX015E-cbl-00179
Add Origin Station Information
Process Rules
📊 Business Logic Narrative
When the process 'Add Origin Station Information' is invoked, and assuming that origin station information is available from shipment data, when the system formats email content, the desired outcome is that the system concatenates origin station name and province/state code into origin station data for the email.
💻 Technical Criteria
Given
Origin station information is available from shipment data
When
The system formats email content
Then
The system concatenates origin station name and province/state code into origin station data for the email
R-GCX015E-cbl-00183
Add Date and Time Information
Process Rules
📊 Business Logic Narrative
When the process 'Add Date and Time Information' is invoked, and assuming that k3 segment contains date and time information, when the system formats email content, the desired outcome is that the system formats date from machine century, k3-01-date, and time from k3-01-time into a readable timestamp and adds it to the email.
💻 Technical Criteria
Given
K3 segment contains date and time information
When
The system formats email content
Then
The system formats date from machine century, K3-01-DATE, and time from K3-01-TIME into a readable timestamp and adds it to the email
R-GCX015E-cbl-00185
Send to Freight Forwarder?
Decision Rules
📊 Business Logic Narrative
When the process 'Send to Freight Forwarder?' is invoked, and assuming that broker contact information has been retrieved, when the system determines email recipient, the desired outcome is that if broker uses internet (gcstbrt-bk-use-internet = 'y'), set email recipient to freight forwarder internet address, otherwise use default system address.
💻 Technical Criteria
Given
Broker contact information has been retrieved
When
The system determines email recipient
Then
If broker uses internet (GCSTBRT-BK-USE-INTERNET = 'Y'), set email recipient to freight forwarder internet address, otherwise use default system address
R-GCX015E-cbl-00187
Set Email Recipient to Default System Address
Action Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Email Recipient to Default System Address', assuming that freight forwarder does not use internet communication or internet address is not available, when the system sets email recipient, the desired outcome is that the system sets email recipient to default system merlin id.
💻 Technical Criteria
EXCLUDING
Freight forwarder does not use internet communication or internet address is not available
When
The system sets email recipient
Then
The system sets email recipient to default system Merlin ID
R-GCX015E-cbl-00421
Set Email Subject Line
Action Rules
📊 Business Logic Narrative
When the process 'Set Email Subject Line' is invoked, and assuming that a cbp warning message needs to be sent via email, when the system prepares the email notification, the desired outcome is that the email subject line is set to the predefined warning subject format.
💻 Technical Criteria
Given
A CBP warning message needs to be sent via email
When
The system prepares the email notification
Then
The email subject line is set to the predefined warning subject format
R-GCX015E-cbl-00422
Format Email Header Lines
Process Rules
📊 Business Logic Narrative
When the process 'Format Email Header Lines' is invoked, and assuming that an email warning is being constructed, when the system builds the email content structure, the desired outcome is that three header lines are formatted and positioned in the email body at lines 2, 3, and 5.
💻 Technical Criteria
Given
An email warning is being constructed
When
The system builds the email content structure
Then
Three header lines are formatted and positioned in the email body at lines 2, 3, and 5
R-GCX015E-cbl-00431
Format Content Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Content Line' is invoked, and assuming that content description has been extracted, when the system formats the email content, the desired outcome is that the content variables are placed at email text line 11.
💻 Technical Criteria
Given
Content description has been extracted
When
The system formats the email content
Then
The content variables are placed at email text line 11
R-GCX015E-cbl-00432
Format Date and Time
Computation Rules
📊 Business Logic Narrative
When the process 'Format Date and Time' is invoked, and assuming that k3 segment contains date and time information, when the system builds email warning content, the desired outcome is that machine century is combined with k3-01-date to form year, month and day are extracted, and hour and minute are extracted from k3-01-time.
💻 Technical Criteria
Given
K3 segment contains date and time information
When
The system builds email warning content
Then
Machine century is combined with K3-01-DATE to form year, month and day are extracted, and hour and minute are extracted from K3-01-TIME
R-GCX015E-cbl-00433
Extract Origin Station Info
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Origin Station Info' is invoked, and assuming that shipment record contains origin station information, when the system builds email warning content, the desired outcome is that origin station name and province/state code are concatenated with comma separator into origin station data.
💻 Technical Criteria
Given
Shipment record contains origin station information
When
The system builds email warning content
Then
Origin station name and province/state code are concatenated with comma separator into origin station data
R-GCX015E-cbl-00434
Format Origin Station Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Origin Station Line' is invoked, and assuming that origin station information has been extracted and formatted, when the system formats the email content, the desired outcome is that the origin station variables are placed at email text line 12.
💻 Technical Criteria
Given
Origin station information has been extracted and formatted
When
The system formats the email content
Then
The origin station variables are placed at email text line 12
R-GCX015E-cbl-00437
Format Consignee Information
Process Rules
📊 Business Logic Narrative
When the process 'Format Consignee Information' is invoked, and assuming that consignee information has been previously extracted and stored, when the system formats the email content, the desired outcome is that the consignee variables are placed at email text line 14.
💻 Technical Criteria
Given
Consignee information has been previously extracted and stored
When
The system formats the email content
Then
The consignee variables are placed at email text line 14
R-GCX015E-cbl-00517
Extract Century from CC-MACHINE-CENTURY
Computation Rules
📊 Business Logic Narrative
When the process 'Extract Century from CC-MACHINE-CENTURY' is invoked, and assuming that the system has access to machine century information, when processing email warning message formatting, the desired outcome is that the century component is extracted and stored in the first 2 positions of the date year field.
💻 Technical Criteria
Given
The system has access to machine century information
When
Processing email warning message formatting
Then
The century component is extracted and stored in the first 2 positions of the date year field
R-GCX015E-cbl-00518
Extract Year from K3-01-DATE positions 1-2
Computation Rules
📊 Business Logic Narrative
When the process 'Extract Year from K3-01-DATE positions 1-2' is invoked, and assuming that a k3 segment contains date information in k3-01-date field, when processing email warning message formatting, the desired outcome is that the year component from positions 1-2 of k3-01-date is extracted and stored in positions 3-4 of the date year field.
💻 Technical Criteria
Given
A K3 segment contains date information in K3-01-DATE field
When
Processing email warning message formatting
Then
The year component from positions 1-2 of K3-01-DATE is extracted and stored in positions 3-4 of the date year field
R-GCX015E-cbl-00519
Extract Month from K3-01-DATE positions 3-2
Computation Rules
📊 Business Logic Narrative
When the process 'Extract Month from K3-01-DATE positions 3-2' is invoked, and assuming that a k3 segment contains date information in k3-01-date field, when processing email warning message formatting, the desired outcome is that the month component from positions 3-4 of k3-01-date is extracted and stored in the date month field.
💻 Technical Criteria
Given
A K3 segment contains date information in K3-01-DATE field
When
Processing email warning message formatting
Then
The month component from positions 3-4 of K3-01-DATE is extracted and stored in the date month field
R-GCX015E-cbl-00520
Extract Day from K3-01-DATE positions 5-2
Computation Rules
📊 Business Logic Narrative
When the process 'Extract Day from K3-01-DATE positions 5-2' is invoked, and assuming that a k3 segment contains date information in k3-01-date field, when processing email warning message formatting, the desired outcome is that the day component from positions 5-6 of k3-01-date is extracted and stored in the date day field.
💻 Technical Criteria
Given
A K3 segment contains date information in K3-01-DATE field
When
Processing email warning message formatting
Then
The day component from positions 5-6 of K3-01-DATE is extracted and stored in the date day field
R-GCX015E-cbl-00521
Extract Hour from K3-01-TIME positions 1-2
Computation Rules
📊 Business Logic Narrative
When the process 'Extract Hour from K3-01-TIME positions 1-2' is invoked, and assuming that a k3 segment contains time information in k3-01-time field, when processing email warning message formatting, the desired outcome is that the hour component from positions 1-2 of k3-01-time is extracted and stored in the time hour field.
💻 Technical Criteria
Given
A K3 segment contains time information in K3-01-TIME field
When
Processing email warning message formatting
Then
The hour component from positions 1-2 of K3-01-TIME is extracted and stored in the time hour field
R-GCX015E-cbl-00522
Extract Minutes from K3-01-TIME positions 3-2
Computation Rules
📊 Business Logic Narrative
When the process 'Extract Minutes from K3-01-TIME positions 3-2' is invoked, and assuming that a k3 segment contains time information in k3-01-time field, when processing email warning message formatting, the desired outcome is that the minutes component from positions 3-4 of k3-01-time is extracted and stored in the time minutes field.
💻 Technical Criteria
Given
A K3 segment contains time information in K3-01-TIME field
When
Processing email warning message formatting
Then
The minutes component from positions 3-4 of K3-01-TIME is extracted and stored in the time minutes field
R-GCX015E-cbl-00527
Move Formatted DateTime to Email Line for Display
Process Rules
📊 Business Logic Narrative
When the process 'Move Formatted DateTime to Email Line for Display' is invoked, and assuming that complete formatted date-time occurrence information is available in ws-occured-on-data, when processing email warning message formatting, the desired outcome is that the formatted occurrence timestamp is moved to ws-occured-on-vars and assigned to email text line 17 for display.
💻 Technical Criteria
Given
Complete formatted date-time occurrence information is available in WS-OCCURED-ON-DATA
When
Processing email warning message formatting
Then
The formatted occurrence timestamp is moved to WS-OCCURED-ON-VARS and assigned to email text line 17 for display
R-GCX015E-cbl-00548
Combine Station Name and Province/State with Comma Delimiter
Process Rules
📊 Business Logic Narrative
When the process 'Combine Station Name and Province/State with Comma Delimiter' is invoked, and assuming that origin station name exists in orig-stn-nm and province/state code exists in orig-prov-state-cde, when the system formats origin station information for email display, the desired outcome is that the system combines the origin station name and province/state code with a comma and space delimiter and stores the formatted string in the origin station data field.
💻 Technical Criteria
Given
Origin station name exists in ORIG-STN-NM and province/state code exists in ORIG-PROV-STATE-CDE
When
The system formats origin station information for email display
Then
The system combines the origin station name and province/state code with a comma and space delimiter and stores the formatted string in the origin station data field
R-GCX015E-cbl-00191
Check Record Type
Decision Rules
📊 Business Logic Narrative
When the process 'Check Record Type' is invoked, and assuming that a secondary record with type '03' is retrieved, when the n101 qualifier code is evaluated for forwarder identification, the desired outcome is that if the n101 qualifier indicates forwarder, the freight forwarder found status is set to true.
💻 Technical Criteria
Given
A secondary record with type '03' is retrieved
When
The N101 qualifier code is evaluated for forwarder identification
Then
If the N101 qualifier indicates forwarder, the freight forwarder found status is set to true
R-GCX015E-cbl-00192
Extract Freight Forwarder Name
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Freight Forwarder Name' is invoked, and assuming that a record type 03 with forwarder n101 qualifier is found, when the freight forwarder information is being extracted, the desired outcome is that the n102 name field is captured and the freight forwarder found indicator is set.
💻 Technical Criteria
Given
A record type 03 with forwarder N101 qualifier is found
When
The freight forwarder information is being extracted
Then
The N102 name field is captured and the freight forwarder found indicator is set
R-GCX015E-cbl-00193
Check Record Type
Decision Rules
📊 Business Logic Narrative
When the process 'Check Record Type' is invoked, and assuming that a secondary record with type '03' is retrieved, when the n101 qualifier code is evaluated for consignee identification, the desired outcome is that if the n101 qualifier indicates consignee, the consignee name is extracted from n102 field and consignee found status is set to true.
💻 Technical Criteria
Given
A secondary record with type '03' is retrieved
When
The N101 qualifier code is evaluated for consignee identification
Then
If the N101 qualifier indicates consignee, the consignee name is extracted from N102 field and consignee found status is set to true
R-GCX015E-cbl-00194
Extract Consignee Name
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Consignee Name' is invoked, and assuming that a record type 03 with consignee n101 qualifier is found, when the consignee information is being extracted, the desired outcome is that the n102 name field is stored as consignee data and the consignee found indicator is set.
💻 Technical Criteria
Given
A record type 03 with consignee N101 qualifier is found
When
The consignee information is being extracted
Then
The N102 name field is stored as consignee data and the consignee found indicator is set
R-GCX015E-cbl-00195
Mark Additional Data Found
Decision Rules
📊 Business Logic Narrative
When the process 'Mark Additional Data Found' is invoked, and assuming that a secondary record is being processed, when the record type is '07', the desired outcome is that the additional data segment found indicator is set to true.
💻 Technical Criteria
Given
A secondary record is being processed
When
The record type is '07'
Then
The additional data segment found indicator is set to true
R-GCX015E-cbl-00207
Set Email Address for Freight Forwarder
Decision Rules
📊 Business Logic Narrative
When the process 'Set Email Address for Freight Forwarder' is invoked, and assuming that broker contact information indicates internet usage is enabled ('y') and valid internet address exists, when the system evaluates email delivery options for the freight forwarder, the desired outcome is that the system sets the email text line with internet address, configures external mail delivery, and enables freight forwarder email flag.
💻 Technical Criteria
Given
Broker contact information indicates internet usage is enabled ('Y') and valid internet address exists
When
The system evaluates email delivery options for the freight forwarder
Then
The system sets the email text line with internet address, configures external mail delivery, and enables freight forwarder email flag
R-GCX015E-cbl-00209
Set Segment Type to SHIPROOT
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Segment Type to SHIPROOT' is invoked, and assuming that shipment root parameters are being configured, when the system sets up the database query parameters, the desired outcome is that the segment type is set to 'shiproot' to specify the data type being requested.
💻 Technical Criteria
Given
Shipment root parameters are being configured
When
The system sets up the database query parameters
Then
The segment type is set to 'SHIPROOT' to specify the data type being requested
R-GCX015E-cbl-00210
Set Function Code to GU - Get Unique
Action Rules
📊 Business Logic Narrative
When the process 'Set Function Code to GU - Get Unique' is invoked, and assuming that database query parameters are being established, when the system prepares to retrieve shipment root data, the desired outcome is that the function code is set to 'gu' to perform a get unique operation.
💻 Technical Criteria
Given
Database query parameters are being established
When
The system prepares to retrieve shipment root data
Then
The function code is set to 'GU' to perform a get unique operation
R-GCX015E-cbl-00211
Set Accept Status to GE - Get Equal
Action Rules
📊 Business Logic Narrative
When the process 'Set Accept Status to GE - Get Equal' is invoked, and assuming that database retrieval parameters are being configured, when the system establishes query criteria, the desired outcome is that the accept status is set to 'ge' to retrieve records with exact key match.
💻 Technical Criteria
Given
Database retrieval parameters are being configured
When
The system establishes query criteria
Then
The accept status is set to 'GE' to retrieve records with exact key match
R-GCX015E-cbl-00224
T1 Table Entry Found?
Validation Rules
📊 Business Logic Narrative
When the process 'T1 Table Entry Found?' is invoked, and assuming that a request to retrieve t1 table entry has been made, when the table lookup operation completes, the desired outcome is that if the t1 table entry is not found, the system terminates processing with error message 't1 check table entry not found'.
💻 Technical Criteria
Given
A request to retrieve T1 table entry has been made
When
The table lookup operation completes
Then
If the T1 table entry is not found, the system terminates processing with error message 'T1 CHECK TABLE ENTRY NOT FOUND'
R-GCX015E-cbl-00225
Get Current Date and Time
Computation Rules
📊 Business Logic Narrative
When the process 'Get Current Date and Time' is invoked, and assuming that t1 table entry exists and timestamp update is required, when the system prepares to update acknowledgment timestamps, the desired outcome is that current machine date, century, and time are captured from the system.
💻 Technical Criteria
Given
T1 table entry exists and timestamp update is required
When
The system prepares to update acknowledgment timestamps
Then
Current machine date, century, and time are captured from the system
R-GCX015E-cbl-00227
Update 309 Acknowledgment Timestamp Type P - Manifest
Process Rules
📊 Business Logic Narrative
When the process 'Update 309 Acknowledgment Timestamp Type P - Manifest' is invoked, and assuming that manifest type code is 'p' and current date/time are available, when the system processes the manifest acknowledgment, the desired outcome is that the 309 acknowledgment timestamp is updated with current machine date (yymmdd format starting at position 3), century (positions 1-2), and time (hhmm format starting at position 9).
💻 Technical Criteria
Given
Manifest type code is 'P' and current date/time are available
When
The system processes the manifest acknowledgment
Then
The 309 acknowledgment timestamp is updated with current machine date (YYMMDD format starting at position 3), century (positions 1-2), and time (HHMM format starting at position 9)
R-GCX015E-cbl-00228
Update 353 Acknowledgment Timestamp Type H - Delete Manifest
Process Rules
📊 Business Logic Narrative
When the process 'Update 353 Acknowledgment Timestamp Type H - Delete Manifest' is invoked, and assuming that manifest type code is 'h' and current date/time are available, when the system processes the delete manifest acknowledgment, the desired outcome is that the 353 acknowledgment timestamp is updated with current machine date (yymmdd format starting at position 3), century (positions 1-2), and time (hhmm format starting at position 9).
💻 Technical Criteria
Given
Manifest type code is 'H' and current date/time are available
When
The system processes the delete manifest acknowledgment
Then
The 353 acknowledgment timestamp is updated with current machine date (YYMMDD format starting at position 3), century (positions 1-2), and time (HHMM format starting at position 9)
R-GCX015E-cbl-00229
Update 358 Acknowledgment Timestamp Type S - Status Manifest
Process Rules
📊 Business Logic Narrative
When the process 'Update 358 Acknowledgment Timestamp Type S - Status Manifest' is invoked, and assuming that manifest type code is 's' and current date/time are available, when the system processes the status manifest acknowledgment, the desired outcome is that the 358 acknowledgment timestamp is updated with current machine date (yymmdd format starting at position 3), century (positions 1-2), and time (hhmm format starting at position 9).
💻 Technical Criteria
Given
Manifest type code is 'S' and current date/time are available
When
The system processes the status manifest acknowledgment
Then
The 358 acknowledgment timestamp is updated with current machine date (YYMMDD format starting at position 3), century (positions 1-2), and time (HHMM format starting at position 9)
R-GCX015E-cbl-00230
Save Updated T1 Table Entry
Action Rules
📊 Business Logic Narrative
When the process 'Save Updated T1 Table Entry' is invoked, and assuming that the appropriate acknowledgment timestamp has been updated in the t1 table entry, when the timestamp update is complete, the desired outcome is that the updated t1 table entry is saved back to the table using replace function.
💻 Technical Criteria
Given
The appropriate acknowledgment timestamp has been updated in the T1 table entry
When
The timestamp update is complete
Then
The updated T1 table entry is saved back to the table using replace function
R-GCX015E-cbl-00248
Set Severity: Information
Decision Rules
📊 Business Logic Narrative
When the process 'Set Severity: Information' is invoked, and assuming that a k1 message segment is being processed, when the k1 message number equals '000', the desired outcome is that the message severity is set to information and the processing status is set to acknowledged.
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1 message number equals '000'
Then
The message severity is set to Information and the processing status is set to Acknowledged
R-GCX015E-cbl-00249
Set Severity: Fatal
Decision Rules
📊 Business Logic Narrative
When the process 'Set Severity: Fatal' is invoked, and assuming that a k1 message segment is being processed, when the k1 message number equals '009' or '017' or '038' or '040' or '291' or '630', the desired outcome is that the message severity is set to fatal and the processing status is set to error.
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1 message number equals '009' OR '017' OR '038' OR '040' OR '291' OR '630'
Then
The message severity is set to Fatal and the processing status is set to Error
R-GCX015E-cbl-00250
Set Severity: Warning
Decision Rules
📊 Business Logic Narrative
When the process 'Set Severity: Warning' is invoked, and assuming that a k1 message segment is being processed, when the k1 message number equals '631' or '632' or '633' or '634' or '695' or '696' or '697' or '698' or '699', the desired outcome is that the message severity is set to warning and the processing status is set to acknowledged.
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1 message number equals '631' OR '632' OR '633' OR '634' OR '695' OR '696' OR '697' OR '698' OR '699'
Then
The message severity is set to Warning and the processing status is set to Acknowledged
R-GCX015E-cbl-00251
Trigger Email Warning Process
Action Rules
📊 Business Logic Narrative
When the process 'Trigger Email Warning Process' is invoked, and assuming that a k1 message segment has been classified as warning severity, when the k1 message number equals '695' or '697' or '699', the desired outcome is that an email warning process is triggered to send notifications to freight forwarders and brokers.
💻 Technical Criteria
Given
A K1 message segment has been classified as Warning severity
When
The K1 message number equals '695' OR '697' OR '699'
Then
An email warning process is triggered to send notifications to freight forwarders and brokers
R-GCX015E-cbl-00252
Set Severity: Unknown
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Severity: Unknown', assuming that a k1 message segment is being processed, when the k1 message number does not equal '000' and does not equal any of the fatal error numbers ('009', '017', '038', '040', '291', '630') and does not equal any of the warning numbers ('631', '632', '633', '634', '695', '696', '697', '698', '699'), the desired outcome is that the message severity is set to unknown and the processing status is set to acknowledged.
💻 Technical Criteria
EXCLUDING
A K1 message segment is being processed
When
The K1 message number does not equal '000' AND does not equal any of the fatal error numbers ('009', '017', '038', '040', '291', '630') AND does not equal any of the warning numbers ('631', '632', '633', '634', '695', '696', '697', '698', '699')
Then
The message severity is set to Unknown and the processing status is set to Acknowledged
R-GCX015E-cbl-00442
Message Number = '000'?
Decision Rules
📊 Business Logic Narrative
When the process 'Message Number = '000'?' is invoked, and assuming that a k1 message segment is being processed, when the k1-02-msg-number equals '000', the desired outcome is that set message severity to information (msg-sev-i) and set processing status to acknowledged (ws-ack-status).
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1-02-MSG-NUMBER equals '000'
Then
Set message severity to Information (MSG-SEV-I) and set processing status to acknowledged (WS-ACK-STATUS)
R-GCX015E-cbl-00443
Message Number in Fatal Category? 009, 017, 038, 040, 291, 630
Decision Rules
📊 Business Logic Narrative
When the process 'Message Number in Fatal Category? 009, 017, 038, 040, 291, 630' is invoked, and assuming that a k1 message segment is being processed, when the k1-02-msg-number equals '009' or '017' or '038' or '040' or '291' or '630', the desired outcome is that set message severity to fatal (msg-sev-f) and set processing status to error (ws-error-status).
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1-02-MSG-NUMBER equals '009' OR '017' OR '038' OR '040' OR '291' OR '630'
Then
Set message severity to Fatal (MSG-SEV-F) and set processing status to error (WS-ERROR-STATUS)
R-GCX015E-cbl-00444
Message Number in Warning Category? 631, 632, 633, 634, 695, 696, 697, 698, 699
Decision Rules
📊 Business Logic Narrative
When the process 'Message Number in Warning Category? 631, 632, 633, 634, 695, 696, 697, 698, 699' is invoked, and assuming that a k1 message segment is being processed, when the k1-02-msg-number equals '631' or '632' or '633' or '634' or '695' or '696' or '697' or '698' or '699', the desired outcome is that set message severity to warning (msg-sev-w) and set processing status to acknowledged (ws-ack-status).
💻 Technical Criteria
Given
A K1 message segment is being processed
When
The K1-02-MSG-NUMBER equals '631' OR '632' OR '633' OR '634' OR '695' OR '696' OR '697' OR '698' OR '699'
Then
Set message severity to Warning (MSG-SEV-W) and set processing status to acknowledged (WS-ACK-STATUS)
R-GCX015E-cbl-00446
Set Severity: Unknown Set Status: Acknowledged
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Severity: Unknown Set Status: Acknowledged', assuming that a k1 message segment is being processed, when the k1-02-msg-number does not equal '000' and does not match any fatal error numbers (009, 017, 038, 040, 291, 630) and does not match any warning numbers (631, 632, 633, 634, 695, 696, 697, 698, 699), the desired outcome is that set message severity to unknown (msg-sev-u) and set processing status to acknowledged (ws-ack-status).
💻 Technical Criteria
EXCLUDING
A K1 message segment is being processed
When
The K1-02-MSG-NUMBER does not equal '000' AND does not match any fatal error numbers (009, 017, 038, 040, 291, 630) AND does not match any warning numbers (631, 632, 633, 634, 695, 696, 697, 698, 699)
Then
Set message severity to Unknown (MSG-SEV-U) and set processing status to acknowledged (WS-ACK-STATUS)
R-GCX015E-cbl-00255
Open Message Queue for Reading
Process Rules
📊 Business Logic Narrative
When the process 'Open Message Queue for Reading' is invoked, and assuming that mq manager connection is established, when message queue is opened for reading with input-as-queue-defined options, the desired outcome is that queue is opened successfully for message retrieval or system handles queue unavailable condition.
💻 Technical Criteria
Given
MQ manager connection is established
When
Message queue is opened for reading with input-as-queue-defined options
Then
Queue is opened successfully for message retrieval or system handles queue unavailable condition
R-GCX015E-cbl-00256
Read Message from Queue
Process Rules
📊 Business Logic Narrative
When the process 'Read Message from Queue' is invoked, and assuming that message queue is open for reading, when system attempts to get message from queue, the desired outcome is that message is retrieved successfully, or no message available condition is handled, or system terminates on retrieval failure.
💻 Technical Criteria
Given
Message queue is open for reading
When
System attempts to get message from queue
Then
Message is retrieved successfully, or no message available condition is handled, or system terminates on retrieval failure
R-GCX015E-cbl-00259
Close Message Queue
Process Rules
📊 Business Logic Narrative
When the process 'Close Message Queue' is invoked, and assuming that message processing is complete or terminated, when queue close operation is performed, the desired outcome is that message queue is closed successfully or system terminates with close failure error.
💻 Technical Criteria
Given
Message processing is complete or terminated
When
Queue close operation is performed
Then
Message queue is closed successfully or system terminates with close failure error
R-GCX015E-cbl-00260
Disconnect from MQ Manager
Process Rules
📊 Business Logic Narrative
When the process 'Disconnect from MQ Manager' is invoked, and assuming that message queue is closed, when disconnection from mq manager is performed, the desired outcome is that mq manager connection is terminated successfully or system terminates with disconnection failure error.
💻 Technical Criteria
Given
Message queue is closed
When
Disconnection from MQ manager is performed
Then
MQ manager connection is terminated successfully or system terminates with disconnection failure error
R-GCX015E-cbl-00268
Set Transaction Details
Process Rules
📊 Business Logic Narrative
When the process 'Set Transaction Details' is invoked, and assuming that audit log information is being prepared, when transaction details are being set, the desired outcome is that the sending transaction is set to the current transaction code from cccom.
💻 Technical Criteria
Given
Audit log information is being prepared
When
Transaction details are being set
Then
The sending transaction is set to the current transaction code from CCCOM
R-GCX015E-cbl-00269
Set User ID Information
Process Rules
📊 Business Logic Narrative
When the process 'Set User ID Information' is invoked, and assuming that audit log information is being prepared, when user id information is being set, the desired outcome is that the acf2 user id from cccom is recorded in the audit log.
💻 Technical Criteria
Given
Audit log information is being prepared
When
User ID information is being set
Then
The ACF2 user ID from CCCOM is recorded in the audit log
R-GCX015E-cbl-00270
Set Date and Time Stamps
Process Rules
📊 Business Logic Narrative
When the process 'Set Date and Time Stamps' is invoked, and assuming that audit log information is being prepared and k3 segment data is available, when date and time stamps are being set, the desired outcome is that the date is set by concatenating machine century with k3-01-date and time is set to k3-01-time.
💻 Technical Criteria
Given
Audit log information is being prepared and K3 segment data is available
When
Date and time stamps are being set
Then
The date is set by concatenating machine century with K3-01-DATE and time is set to K3-01-TIME
R-GCX015E-cbl-00273
Format Main Status Message
Process Rules
📊 Business Logic Narrative
When the process 'Format Main Status Message' is invoked, and assuming that a main status message is being formatted for audit logging, when action code is being set, the desired outcome is that the action code is set to 'zzz'.
💻 Technical Criteria
Given
A main status message is being formatted for audit logging
When
Action code is being set
Then
The action code is set to 'ZZZ'
R-GCX015E-cbl-00276
Send Log Message to GCT1051E
Action Rules
📊 Business Logic Narrative
When the process 'Send Log Message to GCT1051E' is invoked, and assuming that audit log information has been formatted in gcx105-input, when log message is being sent to transaction logger, the desired outcome is that gct1051e transaction logging service is invoked with the formatted message.
💻 Technical Criteria
Given
Audit log information has been formatted in GCX105-INPUT
When
Log message is being sent to transaction logger
Then
GCT1051E transaction logging service is invoked with the formatted message
R-GCX015E-cbl-00285
Get T1 Table Entry
Action Rules
📊 Business Logic Narrative
When the process 'Get T1 Table Entry' is invoked, and assuming that a manifest processing request is initiated, when the system needs to update acknowledgment timestamps, the desired outcome is that the t1 table entry must be retrieved from the configuration database.
💻 Technical Criteria
Given
A manifest processing request is initiated
When
The system needs to update acknowledgment timestamps
Then
The T1 table entry must be retrieved from the configuration database
R-GCX015E-cbl-00286
T1 Table Entry Found?
Validation Rules
📊 Business Logic Narrative
When the process 'T1 Table Entry Found?' is invoked, and assuming that a request to retrieve t1 table entry has been made, when the t1 table entry retrieval operation completes, the desired outcome is that if the t1 table entry is not found, the system must terminate processing with an error message 't1 check table entry not found'.
💻 Technical Criteria
Given
A request to retrieve T1 table entry has been made
When
The T1 table entry retrieval operation completes
Then
If the T1 table entry is not found, the system must terminate processing with an error message 'T1 CHECK TABLE ENTRY NOT FOUND'
R-GCX015E-cbl-00287
Check Manifest Type Code
Decision Rules
📊 Business Logic Narrative
When the process 'Check Manifest Type Code' is invoked, and assuming that a valid t1 table entry exists and a manifest message is being processed, when the system needs to update acknowledgment timestamps, the desired outcome is that the manifest type code from the message queue entry must be evaluated to determine the appropriate timestamp field.
💻 Technical Criteria
Given
A valid T1 table entry exists and a manifest message is being processed
When
The system needs to update acknowledgment timestamps
Then
The manifest type code from the message queue entry must be evaluated to determine the appropriate timestamp field
R-GCX015E-cbl-00288
Update 309 Acknowledgment Timestamp
Process Rules
📊 Business Logic Narrative
When the process 'Update 309 Acknowledgment Timestamp' is invoked, and assuming that a t1 table entry exists and a manifest message is being processed, when the manifest type code equals 'p', the desired outcome is that the system must update the t1-309-ack field with current machine date (ccyymmdd format) and current machine time (hhmm format).
💻 Technical Criteria
Given
A T1 table entry exists and a manifest message is being processed
When
The manifest type code equals 'P'
Then
The system must update the T1-309-ACK field with current machine date (CCYYMMDD format) and current machine time (HHMM format)
R-GCX015E-cbl-00289
Update 353 Acknowledgment Timestamp
Process Rules
📊 Business Logic Narrative
When the process 'Update 353 Acknowledgment Timestamp' is invoked, and assuming that a t1 table entry exists and a manifest message is being processed, when the manifest type code equals 'h', the desired outcome is that the system must update the t1-353-ack field with current machine date (ccyymmdd format) and current machine time (hhmm format).
💻 Technical Criteria
Given
A T1 table entry exists and a manifest message is being processed
When
The manifest type code equals 'H'
Then
The system must update the T1-353-ACK field with current machine date (CCYYMMDD format) and current machine time (HHMM format)
R-GCX015E-cbl-00290
Update 358 Acknowledgment Timestamp
Process Rules
📊 Business Logic Narrative
When the process 'Update 358 Acknowledgment Timestamp' is invoked, and assuming that a t1 table entry exists and a manifest message is being processed, when the manifest type code equals 's', the desired outcome is that the system must update the t1-358-ack field with current machine date (ccyymmdd format) and current machine time (hhmm format).
💻 Technical Criteria
Given
A T1 table entry exists and a manifest message is being processed
When
The manifest type code equals 'S'
Then
The system must update the T1-358-ACK field with current machine date (CCYYMMDD format) and current machine time (HHMM format)
R-GCX015E-cbl-00291
Save Updated T1 Table Entry
Action Rules
📊 Business Logic Narrative
When the process 'Save Updated T1 Table Entry' is invoked, and assuming that a t1 table entry has been updated with acknowledgment timestamp, when the timestamp update is complete, the desired outcome is that the updated t1 table entry must be saved back to the configuration database using replace function.
💻 Technical Criteria
Given
A T1 table entry has been updated with acknowledgment timestamp
When
The timestamp update is complete
Then
The updated T1 table entry must be saved back to the configuration database using replace function
R-GCX015E-cbl-00293
Clear Message Array
Action Rules
📊 Business Logic Narrative
When the process 'Clear Message Array' is invoked, and assuming that a special test message has been identified, when the system processes the test message, the desired outcome is that the message array is cleared to spaces and the end processing flag is set to true and processing returns immediately.
💻 Technical Criteria
Given
A special test message has been identified
When
The system processes the test message
Then
The message array is cleared to spaces AND the end processing flag is set to true AND processing returns immediately
R-GCX015E-cbl-00294
Update 309 Acknowledgment Timestamp
Process Rules
📊 Business Logic Narrative
When the process 'Update 309 Acknowledgment Timestamp' is invoked, and assuming that a special test message is being processed and t1 table segment is retrieved, when the manifest type code is 'p', the desired outcome is that the t1-309-ack field is updated with current machine date (century + date) and time.
💻 Technical Criteria
Given
A special test message is being processed AND T1 table segment is retrieved
When
The manifest type code is 'P'
Then
The T1-309-ACK field is updated with current machine date (century + date) and time
R-GCX015E-cbl-00295
Update 353 Acknowledgment Timestamp
Process Rules
📊 Business Logic Narrative
When the process 'Update 353 Acknowledgment Timestamp' is invoked, and assuming that a special test message is being processed and t1 table segment is retrieved, when the manifest type code is 'h', the desired outcome is that the t1-353-ack field is updated with current machine date (century + date) and time.
💻 Technical Criteria
Given
A special test message is being processed AND T1 table segment is retrieved
When
The manifest type code is 'H'
Then
The T1-353-ACK field is updated with current machine date (century + date) and time
R-GCX015E-cbl-00296
Update 358 Acknowledgment Timestamp
Process Rules
📊 Business Logic Narrative
When the process 'Update 358 Acknowledgment Timestamp' is invoked, and assuming that a special test message is being processed and t1 table segment is retrieved, when the manifest type code is 's', the desired outcome is that the t1-358-ack field is updated with current machine date (century + date) and time.
💻 Technical Criteria
Given
A special test message is being processed AND T1 table segment is retrieved
When
The manifest type code is 'S'
Then
The T1-358-ACK field is updated with current machine date (century + date) and time
R-GCX015E-cbl-00450
Handle Table Not Found Error
Validation Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Handle Table Not Found Error', assuming that the system is attempting to retrieve t1 table configuration, when the t1 table entry is not found (return flag is not '0'), the desired outcome is that the system generates error message 't1 check table entry not found' and terminates processing.
💻 Technical Criteria
EXCLUDING
The system is attempting to retrieve T1 table configuration
When
The T1 table entry is not found (return flag is not '0')
Then
The system generates error message 'T1 CHECK TABLE ENTRY NOT FOUND' and terminates processing
R-GCX015E-cbl-00451
Update 309 Acknowledgment Timestamp Manifest Type = P
Process Rules
📊 Business Logic Narrative
When the process 'Update 309 Acknowledgment Timestamp Manifest Type = P' is invoked, and assuming that a test message is being processed and t1 table configuration is available, when the manifest type in the message is 'p', the desired outcome is that the system updates t1-309-ack field with current machine date (century + date) and time (first 4 digits).
💻 Technical Criteria
Given
A test message is being processed and T1 table configuration is available
When
The manifest type in the message is 'P'
Then
The system updates T1-309-ACK field with current machine date (century + date) and time (first 4 digits)
R-GCX015E-cbl-00452
Update 353 Acknowledgment Timestamp Manifest Type = H
Process Rules
📊 Business Logic Narrative
When the process 'Update 353 Acknowledgment Timestamp Manifest Type = H' is invoked, and assuming that a test message is being processed and t1 table configuration is available, when the manifest type in the message is 'h', the desired outcome is that the system updates t1-353-ack field with current machine date (century + date) and time (first 4 digits).
💻 Technical Criteria
Given
A test message is being processed and T1 table configuration is available
When
The manifest type in the message is 'H'
Then
The system updates T1-353-ACK field with current machine date (century + date) and time (first 4 digits)
R-GCX015E-cbl-00453
Update 358 Acknowledgment Timestamp Manifest Type = S
Process Rules
📊 Business Logic Narrative
When the process 'Update 358 Acknowledgment Timestamp Manifest Type = S' is invoked, and assuming that a test message is being processed and t1 table configuration is available, when the manifest type in the message is 's', the desired outcome is that the system updates t1-358-ack field with current machine date (century + date) and time (first 4 digits).
💻 Technical Criteria
Given
A test message is being processed and T1 table configuration is available
When
The manifest type in the message is 'S'
Then
The system updates T1-358-ACK field with current machine date (century + date) and time (first 4 digits)
R-GCX015E-cbl-00454
Save Updated T1 Table
Action Rules
📊 Business Logic Narrative
When the process 'Save Updated T1 Table' is invoked, and assuming that t1 table acknowledgment timestamps have been updated, when the timestamp update is complete, the desired outcome is that the system saves the updated t1 table segment using repl function code.
💻 Technical Criteria
Given
T1 table acknowledgment timestamps have been updated
When
The timestamp update is complete
Then
The system saves the updated T1 table segment using REPL function code
R-GCX015E-cbl-00455
Clear Message Array
Process Rules
📊 Business Logic Narrative
When the process 'Clear Message Array' is invoked, and assuming that test message acknowledgment processing is complete, when t1 table has been updated and saved, the desired outcome is that the system clears the message array to spaces, sets end processing flag to true, and exits the special processing.
💻 Technical Criteria
Given
Test message acknowledgment processing is complete
When
T1 table has been updated and saved
Then
The system clears the message array to spaces, sets end processing flag to true, and exits the special processing
R-GCX015E-cbl-00535
T1 Table Found?
Validation Rules
📊 Business Logic Narrative
When the process 'T1 Table Found?' is invoked, and assuming that a request to update manifest acknowledgment timestamps, when the t1 table retrieval operation is completed, the desired outcome is that if t1 table is not found, log error 't1 check table entry not found' and terminate processing, otherwise proceed with timestamp updates.
💻 Technical Criteria
Given
A request to update manifest acknowledgment timestamps
When
The T1 table retrieval operation is completed
Then
If T1 table is not found, log error 'T1 CHECK TABLE ENTRY NOT FOUND' and terminate processing, otherwise proceed with timestamp updates
R-GCX015E-cbl-00536
Update 309-ACK Timestamp with Current Date/Time
Process Rules
📊 Business Logic Narrative
When the process 'Update 309-ACK Timestamp with Current Date/Time' is invoked, and assuming that a manifest with type code 'p' (preliminary) is being processed, when the system updates acknowledgment timestamps, the desired outcome is that set t1-309-ack field with current machine century (positions 1-2), current machine date (positions 3-8), and current machine time first 4 digits (positions 9-12).
💻 Technical Criteria
Given
A manifest with type code 'P' (Preliminary) is being processed
When
The system updates acknowledgment timestamps
Then
Set T1-309-ACK field with current machine century (positions 1-2), current machine date (positions 3-8), and current machine time first 4 digits (positions 9-12)
R-GCX015E-cbl-00537
Update 353-ACK Timestamp with Current Date/Time
Process Rules
📊 Business Logic Narrative
When the process 'Update 353-ACK Timestamp with Current Date/Time' is invoked, and assuming that a manifest with type code 'h' (hold) is being processed, when the system updates acknowledgment timestamps, the desired outcome is that set t1-353-ack field with current machine century (positions 1-2), current machine date (positions 3-8), and current machine time first 4 digits (positions 9-12).
💻 Technical Criteria
Given
A manifest with type code 'H' (Hold) is being processed
When
The system updates acknowledgment timestamps
Then
Set T1-353-ACK field with current machine century (positions 1-2), current machine date (positions 3-8), and current machine time first 4 digits (positions 9-12)
R-GCX015E-cbl-00538
Update 358-ACK Timestamp with Current Date/Time
Process Rules
📊 Business Logic Narrative
When the process 'Update 358-ACK Timestamp with Current Date/Time' is invoked, and assuming that a manifest with type code 's' (supplemental) is being processed, when the system updates acknowledgment timestamps, the desired outcome is that set t1-358-ack field with current machine century (positions 1-2), current machine date (positions 3-8), and current machine time first 4 digits (positions 9-12).
💻 Technical Criteria
Given
A manifest with type code 'S' (Supplemental) is being processed
When
The system updates acknowledgment timestamps
Then
Set T1-358-ACK field with current machine century (positions 1-2), current machine date (positions 3-8), and current machine time first 4 digits (positions 9-12)
R-GCX015E-cbl-00540
Write Updated T1 Segment
Action Rules
📊 Business Logic Narrative
When the process 'Write Updated T1 Segment' is invoked, and assuming that t1 table segment has been updated with new acknowledgment timestamp, when the timestamp update process is completed, the desired outcome is that write the modified t1 segment back to table storage using repl function code.
💻 Technical Criteria
Given
T1 table segment has been updated with new acknowledgment timestamp
When
The timestamp update process is completed
Then
Write the modified T1 segment back to table storage using REPL function code
R-GCX015E-cbl-00456
Update different timestamp fields (309, 353, 358) in T1 table based on manifest type code (P, H, S)
Decision Rules
📊 Business Logic Narrative
When the process 'Update different timestamp fields (309, 353, 358) in T1 table based on manifest type code (P, H, S)' is invoked, and assuming that a manifest message is being processed and the t1 table entry exists, when the manifest type code is p (manifest), h (delete manifest), or s (status manifest), the desired outcome is that the system updates the corresponding acknowledgment timestamp field (309-ack for p, 353-ack for h, 358-ack for s) with current date and time.
💻 Technical Criteria
Given
A manifest message is being processed and the T1 table entry exists
When
The manifest type code is P (Manifest), H (Delete Manifest), or S (Status Manifest)
Then
The system updates the corresponding acknowledgment timestamp field (309-ACK for P, 353-ACK for H, 358-ACK for S) with current date and time
R-GCX015E-cbl-00458
T1 Entry Found?
Validation Rules
📊 Business Logic Narrative
When the process 'T1 Entry Found?' is invoked, and assuming that a request to update manifest acknowledgment timestamps, when the t1 table entry retrieval is attempted, the desired outcome is that if the t1 table entry is not found, the system generates an error message 't1 check table entry not found' and terminates processing.
💻 Technical Criteria
Given
A request to update manifest acknowledgment timestamps
When
The T1 table entry retrieval is attempted
Then
If the T1 table entry is not found, the system generates an error message 'T1 CHECK TABLE ENTRY NOT FOUND' and terminates processing
R-GCX015E-cbl-00459
Update 309-ACK Timestamp Type P - Manifest
Process Rules
📊 Business Logic Narrative
When the process 'Update 309-ACK Timestamp Type P - Manifest' is invoked, and assuming that a manifest message with type code 'p' is being processed and t1 table entry exists, when the manifest type code is 'p', the desired outcome is that the system updates the t1-309-ack field with current machine date (century + date) and time (first 4 digits).
💻 Technical Criteria
Given
A manifest message with type code 'P' is being processed and T1 table entry exists
When
The manifest type code is 'P'
Then
The system updates the T1-309-ACK field with current machine date (century + date) and time (first 4 digits)
R-GCX015E-cbl-00460
Update 353-ACK Timestamp Type H - Delete Manifest
Process Rules
📊 Business Logic Narrative
When the process 'Update 353-ACK Timestamp Type H - Delete Manifest' is invoked, and assuming that a manifest message with type code 'h' is being processed and t1 table entry exists, when the manifest type code is 'h', the desired outcome is that the system updates the t1-353-ack field with current machine date (century + date) and time (first 4 digits).
💻 Technical Criteria
Given
A manifest message with type code 'H' is being processed and T1 table entry exists
When
The manifest type code is 'H'
Then
The system updates the T1-353-ACK field with current machine date (century + date) and time (first 4 digits)
R-GCX015E-cbl-00461
Update 358-ACK Timestamp Type S - Status Manifest
Process Rules
📊 Business Logic Narrative
When the process 'Update 358-ACK Timestamp Type S - Status Manifest' is invoked, and assuming that a manifest message with type code 's' is being processed and t1 table entry exists, when the manifest type code is 's', the desired outcome is that the system updates the t1-358-ack field with current machine date (century + date) and time (first 4 digits).
💻 Technical Criteria
Given
A manifest message with type code 'S' is being processed and T1 table entry exists
When
The manifest type code is 'S'
Then
The system updates the T1-358-ACK field with current machine date (century + date) and time (first 4 digits)
R-GCX015E-cbl-00462
Save Updated T1 Entry
Action Rules
📊 Business Logic Narrative
When the process 'Save Updated T1 Entry' is invoked, and assuming that the t1 table entry has been updated with new acknowledgment timestamp, when the timestamp update is complete, the desired outcome is that the system saves the updated t1 segment back to the table using repl function code.
💻 Technical Criteria
Given
The T1 table entry has been updated with new acknowledgment timestamp
When
The timestamp update is complete
Then
The system saves the updated T1 segment back to the table using REPL function code
R-GCX015E-cbl-00302
Update Train Record
Action Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Update Train Record', assuming that a train record has been updated with status that is not deleted and not delete-pending, when the train record update is completed, the desired outcome is that the system should perform aei train send check processing.
💻 Technical Criteria
EXCLUDING
A train record has been updated with status that is not DELETED and not DELETE-PENDING
When
The train record update is completed
Then
The system should perform AEI train send check processing
R-GCX015E-cbl-00303
Update Train Record
Action Rules
📊 Business Logic Narrative
When the process 'Update Train Record' is invoked, and assuming that a train record has been updated and the train has ack status and the train is in arrived-pending state, when the train record update is completed, the desired outcome is that the system should trigger the train arrival process.
💻 Technical Criteria
Given
A train record has been updated and the train has ACK status and the train is in ARRIVED-PENDING state
When
The train record update is completed
Then
The system should trigger the train arrival process
R-GCX015E-cbl-00312
Set Email Recipients
Action Rules
📊 Business Logic Narrative
When the process 'Set Email Recipients' is invoked, and assuming that the system attempts to retrieve email recipients from the aei database, when the database lookup fails with an error other than 'no entry found', the desired outcome is that the system triggers a database error notification process.
💻 Technical Criteria
Given
The system attempts to retrieve email recipients from the AEI database
When
The database lookup fails with an error other than 'no entry found'
Then
The system triggers a database error notification process
R-GCX015E-cbl-00313
Format Email Subject
Process Rules
📊 Business Logic Narrative
When the process 'Format Email Subject' is invoked, and assuming that a train status email needs to be sent, when the email subject is being formatted, the desired outcome is that the system creates a subject line containing 'train: [train_id] status: [current_status]'.
💻 Technical Criteria
Given
A train status email needs to be sent
When
The email subject is being formatted
Then
The system creates a subject line containing 'TRAIN: [train_id] STATUS: [current_status]'
R-GCX015E-cbl-00317
Email Send Successful?
Validation Rules
📊 Business Logic Narrative
When the process 'Email Send Successful?' is invoked, and assuming that an email send operation has been attempted through merlin, when the system checks the email send result, the desired outcome is that if no errors are returned, the email is considered successfully sent, otherwise it requires retry processing.
💻 Technical Criteria
Given
An email send operation has been attempted through Merlin
When
The system checks the email send result
Then
If no errors are returned, the email is considered successfully sent, otherwise it requires retry processing
R-GCX015E-cbl-00318
Set Backup Recipients - AEI9999, OM01247
Process Rules
📊 Business Logic Narrative
When the process 'Set Backup Recipients - AEI9999, OM01247' is invoked, and assuming that the primary email send operation has failed, when the system prepares to resend the email, the desired outcome is that the system sets aei9999 as the first backup recipient and om01247 as the second backup recipient.
💻 Technical Criteria
Given
The primary email send operation has failed
When
The system prepares to resend the email
Then
The system sets AEI9999 as the first backup recipient and OM01247 as the second backup recipient
R-GCX015E-cbl-00319
Call EMCSEND3 for Backup Send
Action Rules
📊 Business Logic Narrative
When the process 'Call EMCSEND3 for Backup Send' is invoked, and assuming that the primary email send has failed and backup recipients have been configured, when the system attempts backup email delivery, the desired outcome is that the system calls emcsend3 again with the backup recipient configuration.
💻 Technical Criteria
Given
The primary email send has failed and backup recipients have been configured
When
The system attempts backup email delivery
Then
The system calls EMCSEND3 again with the backup recipient configuration
R-GCX015E-cbl-00321
Purge Message Queue
Process Rules
📊 Business Logic Narrative
When the process 'Purge Message Queue' is invoked, and assuming that email processing has completed either successfully or with failure, when the system performs cleanup operations, the desired outcome is that the system purges the message queue and resets the accept status.
💻 Technical Criteria
Given
Email processing has completed either successfully or with failure
When
The system performs cleanup operations
Then
The system purges the message queue and resets the accept status
R-GCX015E-cbl-00322
Check Train Status Conditions
Decision Rules
📊 Business Logic Narrative
When the process 'Check Train Status Conditions' is invoked, and assuming that a train record exists with status indicators for acknowledgment and arrival pending, when the system checks if the train is both acknowledged and has arrived-pending status, the desired outcome is that the system should proceed with arrival processing only if both conditions are met, otherwise skip arrival processing.
💻 Technical Criteria
Given
A train record exists with status indicators for acknowledgment and arrival pending
When
The system checks if the train is both acknowledged AND has arrived-pending status
Then
The system should proceed with arrival processing only if both conditions are met, otherwise skip arrival processing
R-GCX015E-cbl-00323
Set Action Code to 'TAR'
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Action Code to 'TAR'' is invoked, and assuming that a train arrival event is being processed, when the system prepares the arrival transaction message, the desired outcome is that the action code should be set to 'tar' to indicate train arrival.
💻 Technical Criteria
Given
A train arrival event is being processed
When
The system prepares the arrival transaction message
Then
The action code should be set to 'TAR' to indicate train arrival
R-GCX015E-cbl-00324
Set Event Date from Machine Date
Computation Rules
📊 Business Logic Narrative
When the process 'Set Event Date from Machine Date' is invoked, and assuming that a train arrival event is being recorded, when the system sets the event date, the desired outcome is that the event date should be populated with the current machine date including century.
💻 Technical Criteria
Given
A train arrival event is being recorded
When
The system sets the event date
Then
The event date should be populated with the current machine date including century
R-GCX015E-cbl-00325
Set Event Time from Machine Time
Computation Rules
📊 Business Logic Narrative
When the process 'Set Event Time from Machine Time' is invoked, and assuming that a train arrival event is being recorded, when the system sets the event time, the desired outcome is that the event time should be populated with the first 4 digits of the current machine time.
💻 Technical Criteria
Given
A train arrival event is being recorded
When
The system sets the event time
Then
The event time should be populated with the first 4 digits of the current machine time
R-GCX015E-cbl-00326
Set Train ID from US Customer Train ID
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Train ID from US Customer Train ID' is invoked, and assuming that a train arrival event is being processed for a specific train, when the system populates the train identifier in the arrival message, the desired outcome is that the train id should be set to the us customer train id from the train record.
💻 Technical Criteria
Given
A train arrival event is being processed for a specific train
When
The system populates the train identifier in the arrival message
Then
The train ID should be set to the US customer train ID from the train record
R-GCX015E-cbl-00337
Retrieve Internet Address from B1 Table
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Internet Address from B1 Table' is invoked, and assuming that valid broker contact details exist in gcstbrt-bk-segment, when the system queries the b1 table with table id 'b1' using the same lookup key, the desired outcome is that the internet address information is retrieved and stored in gcstbrt-b1-segment.
💻 Technical Criteria
Given
Valid broker contact details exist in GCSTBRT-BK-SEGMENT
When
The system queries the B1 table with table ID 'B1' using the same lookup key
Then
The internet address information is retrieved and stored in GCSTBRT-B1-SEGMENT
R-GCX015E-cbl-00341
Set Freight Forwarder Email Flag
Process Rules
📊 Business Logic Narrative
When the process 'Set Freight Forwarder Email Flag' is invoked, and assuming that internet communication has been successfully configured for the broker, when the system finalizes email notification setup, the desired outcome is that the ws-email-to-freight-frwdr flag is set to true to indicate freight forwarder email notifications are enabled.
💻 Technical Criteria
Given
Internet communication has been successfully configured for the broker
When
The system finalizes email notification setup
Then
The WS-EMAIL-TO-FREIGHT-FRWDR flag is set to TRUE to indicate freight forwarder email notifications are enabled
R-GCX015E-cbl-00350
Format Date and Time Information
Process Rules
📊 Business Logic Narrative
When the process 'Format Date and Time Information' is invoked, and assuming that k3 segment contains date and time information, when the system formats date and time for email display, the desired outcome is that the system combines machine century with k3 date to create full year, extracts month and day from k3 date, and extracts hour and minute from k3 time.
💻 Technical Criteria
Given
K3 segment contains date and time information
When
The system formats date and time for email display
Then
The system combines machine century with K3 date to create full year, extracts month and day from K3 date, and extracts hour and minute from K3 time
R-GCX015E-cbl-00351
Format Origin Station Information
Process Rules
📊 Business Logic Narrative
When the process 'Format Origin Station Information' is invoked, and assuming that origin station information is available from shipment data, when the system formats origin station information for email content, the desired outcome is that the system concatenates origin station name with province/state code separated by comma and space.
💻 Technical Criteria
Given
Origin station information is available from shipment data
When
The system formats origin station information for email content
Then
The system concatenates origin station name with province/state code separated by comma and space
R-GCX015E-cbl-00356
Connection Successful?
Validation Rules
📊 Business Logic Narrative
When the process 'Connection Successful?' is invoked, and assuming that a connection attempt has been made to the message queue manager, when the connection completion code is evaluated, the desired outcome is that the system should determine if the connection was successful or failed.
💻 Technical Criteria
Given
A connection attempt has been made to the message queue manager
When
The connection completion code is evaluated
Then
The system should determine if the connection was successful or failed
R-GCX015E-cbl-00357
Get Error Reason Code
Process Rules
📊 Business Logic Narrative
When the process 'Get Error Reason Code' is invoked, and assuming that the message queue connection attempt has failed, when the connection completion code indicates failure, the desired outcome is that the system should capture the specific reason code for the connection failure.
💻 Technical Criteria
Given
The message queue connection attempt has failed
When
The connection completion code indicates failure
Then
The system should capture the specific reason code for the connection failure
R-GCX015E-cbl-00358
Format Error Message with Reason Code
Process Rules
📊 Business Logic Narrative
When the process 'Format Error Message with Reason Code' is invoked, and assuming that a message queue connection failure has occurred with a specific reason code, when an error message needs to be formatted, the desired outcome is that the system should create a formatted error message that includes the reason code and descriptive text.
💻 Technical Criteria
Given
A message queue connection failure has occurred with a specific reason code
When
An error message needs to be formatted
Then
The system should create a formatted error message that includes the reason code and descriptive text
R-GCX015E-cbl-00359
Set Transaction Set to '355'
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Transaction Set to '355'' is invoked, and assuming that a message queue connection error has occurred, when error information is being prepared for logging, the desired outcome is that the system should set the transaction set identifier to '355'.
💻 Technical Criteria
Given
A message queue connection error has occurred
When
Error information is being prepared for logging
Then
The system should set the transaction set identifier to '355'
R-GCX015E-cbl-00360
Set Error Text to 'MQCONN FAILED'
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Error Text to 'MQCONN FAILED'' is invoked, and assuming that a message queue connection error has occurred, when error description is being set, the desired outcome is that the system should set the program error text to 'mqconn failed'.
💻 Technical Criteria
Given
A message queue connection error has occurred
When
Error description is being set
Then
The system should set the program error text to 'MQCONN FAILED'
R-GCX015E-cbl-00365
Call MQOPEN to Open Queue
Action Rules
📊 Business Logic Narrative
When the process 'Call MQOPEN to Open Queue' is invoked, and assuming that the queue type, name, and access options are configured, when the system attempts to open the message queue connection, the desired outcome is that the mqopen service should be invoked with the connection handle, queue descriptor, options, and response parameters.
💻 Technical Criteria
Given
The queue type, name, and access options are configured
When
The system attempts to open the message queue connection
Then
The MQOPEN service should be invoked with the connection handle, queue descriptor, options, and response parameters
R-GCX015E-cbl-00372
Message Successfully Retrieved
Validation Rules
📊 Business Logic Narrative
When the process 'Message Successfully Retrieved' is invoked, and assuming that a message retrieval attempt has been made, when the message queue completion code equals mqcc-ok, the desired outcome is that the message is considered successfully retrieved for processing.
💻 Technical Criteria
Given
A message retrieval attempt has been made
When
The message queue completion code equals MQCC-OK
Then
The message is considered successfully retrieved for processing
R-GCX015E-cbl-00376
Set Good Message Found Flag
Process Rules
📊 Business Logic Narrative
When the process 'Set Good Message Found Flag' is invoked, and assuming that a message has been retrieved with completion code mqcc-ok and backout count of 0, when the message passes all initial validations, the desired outcome is that the system sets the good message found flag to true.
💻 Technical Criteria
Given
A message has been retrieved with completion code MQCC-OK and backout count of 0
When
The message passes all initial validations
Then
The system sets the good message found flag to true
R-GCX015E-cbl-00377
Set Skip Message Flag
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Skip Message Flag', assuming that a message has been retrieved with completion code mqcc-ok, when the message backout count is not equal to 0, the desired outcome is that the system sets the skip message flag to true.
💻 Technical Criteria
EXCLUDING
A message has been retrieved with completion code MQCC-OK
When
The message backout count is not equal to 0
Then
The system sets the skip message flag to true
R-GCX015E-cbl-00378
Set End of Queue Flag
Decision Rules
📊 Business Logic Narrative
When the process 'Set End of Queue Flag' is invoked, and assuming that a message retrieval attempt has been made, when the completion code is mqcc-failed and the reason code is mqrc-no-msg-available, the desired outcome is that the system sets the end of message queue flag to true.
💻 Technical Criteria
Given
A message retrieval attempt has been made
When
The completion code is MQCC-FAILED and the reason code is MQRC-NO-MSG-AVAILABLE
Then
The system sets the end of message queue flag to true
R-GCX015E-cbl-00379
Generate MQ Error Message
Action Rules
📊 Business Logic Narrative
When the process 'Generate MQ Error Message' is invoked, and assuming that a message retrieval attempt has failed, when the completion code indicates an error other than no messages available, the desired outcome is that the system generates an mq error message with reason code and description, sets transaction code to 355, and prepares for abend.
💻 Technical Criteria
Given
A message retrieval attempt has failed
When
The completion code indicates an error other than no messages available
Then
The system generates an MQ error message with reason code and description, sets transaction code to 355, and prepares for abend
R-GCX015E-cbl-00380
Set Error Status and Abend
Action Rules
📊 Business Logic Narrative
When the process 'Set Error Status and Abend' is invoked, and assuming that a critical error has occurred during message processing, when either the message is too short or a message queue error has occurred, the desired outcome is that the system performs an abend to terminate processing.
💻 Technical Criteria
Given
A critical error has occurred during message processing
When
Either the message is too short or a message queue error has occurred
Then
The system performs an abend to terminate processing
🚂 Equipment & Cargo Specs
147 logic blocks
R-GCX015E-cbl-00003
3:Determine Train or Cargo Processing
Decision Rules
📊 Business Logic Narrative
When the process '3:Determine Train or Cargo Processing' is invoked, and assuming that an m10 segment is present in the message, when the system examines the m10-12-ref-num field, the desired outcome is that if reference number key equals 'train', processing type is set to train; if reference number key equals 'cargo', processing type is set to cargo; if neither condition is met and m11 segment exists, processing type is set to cargo using m11 data; otherwise processing type remains unknown.
💻 Technical Criteria
Given
An M10 segment is present in the message
When
The system examines the M10-12-REF-NUM field
Then
If reference number key equals 'TRAIN', processing type is set to TRAIN; if reference number key equals 'CARGO', processing type is set to CARGO; if neither condition is met and M11 segment exists, processing type is set to CARGO using M11 data; otherwise processing type remains UNKNOWN
R-GCX015E-cbl-00004
4:Set Status Update Decision
Decision Rules
📊 Business Logic Narrative
When the process '4:Set Status Update Decision' is invoked, and assuming that an m10 segment with manifest type code is being processed, when the system evaluates the m10-09-manifest-typ-cde, the desired outcome is that if manifest type is 'p' or 'y' or 's', status should be updated; if manifest type is 'h' and processing type is train, status should be deleted and updated; if manifest type is 'h' and processing type is cargo, status should not be updated; otherwise status should not be updated.
💻 Technical Criteria
Given
An M10 segment with manifest type code is being processed
When
The system evaluates the M10-09-MANIFEST-TYP-CDE
Then
If manifest type is 'P' or 'Y' or 'S', status should be updated; if manifest type is 'H' and processing type is TRAIN, status should be deleted and updated; if manifest type is 'H' and processing type is CARGO, status should not be updated; otherwise status should not be updated
R-GCX015E-cbl-00012
12:Retrieve Train Root Information
Action Rules
📊 Business Logic Narrative
When the process '12:Retrieve Train Root Information' is invoked, and assuming that processing type is determined as train, when the system attempts to retrieve train root data using the us customer train id, the desired outcome is that if train record is found, the train data is loaded and cargo/train found flag is set to true with us train id as sub-key; if train record is not found, cargo/train not found flag is set to true and 'this us-train-id was not found' message is logged.
💻 Technical Criteria
Given
Processing type is determined as TRAIN
When
The system attempts to retrieve train root data using the US customer train ID
Then
If train record is found, the train data is loaded and cargo/train found flag is set to true with US train ID as sub-key; if train record is not found, cargo/train not found flag is set to true and 'THIS US-TRAIN-ID WAS NOT FOUND' message is logged
R-GCX015E-cbl-00014
14:Update Cargo Status
Decision Rules
📊 Business Logic Narrative
When the process '14:Update Cargo Status' is invoked, and assuming that processing type is cargo and status update is required, when the system evaluates cargo status conditions, the desired outcome is that if status is ack and no saved status description exists, uscargo status is set to ack; if status is ack and saved status description exists, saved status and description are restored; if status is error and current status is not error/ack/ack-r, current status is saved and uscargo status is set to error; if status is error and cargo is not deleted, cpcargo status is set to error.
💻 Technical Criteria
Given
Processing type is CARGO and status update is required
When
The system evaluates cargo status conditions
Then
If status is ACK and no saved status description exists, USCARGO status is set to ACK; if status is ACK and saved status description exists, saved status and description are restored; if status is ERROR and current status is not ERROR/ACK/ACK-R, current status is saved and USCARGO status is set to ERROR; if status is ERROR and cargo is not deleted, CPCARGO status is set to ERROR
R-GCX015E-cbl-00015
15:Check AEI Train Send Conditions
Decision Rules
📊 Business Logic Narrative
When the process '15:Check AEI Train Send Conditions' is invoked, and assuming that a train status has been updated, when the system checks aei send conditions, the desired outcome is that if train status is ack and aei send flag is set and enroute is not reported and train id ends with 't', customs transaction gct1461e is generated, car information is loaded, and customs system is notified; if aei send flag is set, aei status message is sent.
💻 Technical Criteria
Given
A train status has been updated
When
The system checks AEI send conditions
Then
If train status is ACK and AEI send flag is set and enroute is not reported and train ID ends with 'T', customs transaction GCT1461E is generated, car information is loaded, and customs system is notified; if AEI send flag is set, AEI status message is sent
R-GCX015E-cbl-00016
16:Load Car Information for Customs
Process Rules
📊 Business Logic Narrative
When the process '16:Load Car Information for Customs' is invoked, and assuming that aei customs transaction needs to be sent, when the system loads car information from train equipment list, the desired outcome is that for each equipment item, if container indicator is not 'c', car initial and number are loaded, car length/empty indicator is determined based on next equipment or current equipment container status, car kind is set to 'l' for lo type or 'e' for et type or spaces for others; containers are excluded from the customs output.
💻 Technical Criteria
Given
AEI customs transaction needs to be sent
When
The system loads car information from train equipment list
Then
For each equipment item, if container indicator is not 'C', car initial and number are loaded, car length/empty indicator is determined based on next equipment or current equipment container status, car kind is set to 'L' for LO type or 'E' for ET type or spaces for others; containers are excluded from the customs output
R-GCX015E-cbl-00022
25:Send Customs Transaction
Action Rules
📊 Business Logic Narrative
When the process '25:Send Customs Transaction' is invoked, and assuming that a customs transaction has been prepared with car information, when the system sends the transaction to customs system, the desired outcome is that transaction is sent via cims call with customs transaction code, message is written using writmsgl with customs message length and module name, and transaction is purged after sending.
💻 Technical Criteria
Given
A customs transaction has been prepared with car information
When
The system sends the transaction to customs system
Then
Transaction is sent via CIMS call with customs transaction code, message is written using WRITMSGL with customs message length and module name, and transaction is purged after sending
R-GCX015E-cbl-00023
Clear Working Variables
Process Rules
📊 Business Logic Narrative
When the process 'Clear Working Variables' is invoked, and assuming that message processing is starting, when the system initializes processing fields, the desired outcome is that all working variables for train/cargo switches and hold areas are cleared to spaces.
💻 Technical Criteria
Given
Message processing is starting
When
The system initializes processing fields
Then
All working variables for train/cargo switches and hold areas are cleared to spaces
R-GCX015E-cbl-00031
Set Processing Status Flags
Process Rules
📊 Business Logic Narrative
When the process 'Set Processing Status Flags' is invoked, and assuming that message length parameters are calculated, when the system sets processing status flags, the desired outcome is that us cargo/train not found flag is set to true, m10/p4/k3 segment not found flags are set to true, end not found flag is set to true.
💻 Technical Criteria
Given
Message length parameters are calculated
When
The system sets processing status flags
Then
US cargo/train not found flag is set to true, M10/P4/K3 segment not found flags are set to true, end not found flag is set to true
R-GCX015E-cbl-00040
MQ Queue Empty?
Process Rules
📊 Business Logic Narrative
When the process 'MQ Queue Empty?' is invoked, and assuming that the system attempts to read from the message queue, when the queue returns reason code 2033 indicating no messages available, the desired outcome is that the system sets finished processing flag and completes the load operation.
💻 Technical Criteria
Given
The system attempts to read from the message queue
When
The queue returns reason code 2033 indicating no messages available
Then
The system sets finished processing flag and completes the load operation
R-GCX015E-cbl-00046
Reference Number Key = 'CARGO'?
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Reference Number Key = 'CARGO'?', assuming that an m10-12 reference number has been extracted and does not contain 'train', when the reference number key portion equals 'cargo', the desired outcome is that the system sets the cargo processing flag to true.
💻 Technical Criteria
EXCLUDING
An M10-12 reference number has been extracted and does not contain 'TRAIN'
When
The reference number key portion equals 'CARGO'
Then
The system sets the cargo processing flag to true
R-GCX015E-cbl-00047
Set Cargo Processing Flag
Action Rules
📊 Business Logic Narrative
When the process 'Set Cargo Processing Flag' is invoked, and assuming that the reference number key has been identified as 'cargo', when the system determines the shipment type, the desired outcome is that the cargo processing flag is set to true.
💻 Technical Criteria
Given
The reference number key has been identified as 'CARGO'
When
The system determines the shipment type
Then
The cargo processing flag is set to true
R-GCX015E-cbl-00050
Manifest Type = H?
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Manifest Type = H?', assuming that the manifest type is not p, y, or s, when the manifest type code is 'h' (hold), the desired outcome is that the system proceeds to evaluate train versus cargo processing for hold manifests.
💻 Technical Criteria
EXCLUDING
The manifest type is not P, Y, or S
When
The manifest type code is 'H' (Hold)
Then
The system proceeds to evaluate train versus cargo processing for hold manifests
R-GCX015E-cbl-00053
Set Should Not Update Status Flag
Action Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Should Not Update Status Flag', assuming that the manifest type is 'h' for cargo shipments or the manifest type is not p, y, s, or h, when the system evaluates update requirements, the desired outcome is that the should not update status flag is set to true.
💻 Technical Criteria
EXCLUDING
The manifest type is 'H' for cargo shipments or the manifest type is not P, Y, S, or H
When
The system evaluates update requirements
Then
The should not update status flag is set to true
R-GCX015E-cbl-00054
Type Still Unknown?
Validation Rules
📊 Business Logic Narrative
When the process 'Type Still Unknown?' is invoked, and assuming that m10 segment processing is complete, when neither train nor cargo flags have been set, the desired outcome is that the system proceeds to check for m11 segment as alternative data source.
💻 Technical Criteria
Given
M10 segment processing is complete
When
Neither train nor cargo flags have been set
Then
The system proceeds to check for M11 segment as alternative data source
R-GCX015E-cbl-00055
Is Current Line M11 Segment?
Validation Rules
📊 Business Logic Narrative
When the process 'Is Current Line M11 Segment?' is invoked, and assuming that shipment type remains unknown after m10 processing, when the current line contains an m11 segment identifier, the desired outcome is that the system extracts m11 segment data for cargo identification.
💻 Technical Criteria
Given
Shipment type remains unknown after M10 processing
When
The current line contains an M11 segment identifier
Then
The system extracts M11 segment data for cargo identification
R-GCX015E-cbl-00058
Set Cargo Processing Flag
Action Rules
📊 Business Logic Narrative
When the process 'Set Cargo Processing Flag' is invoked, and assuming that a cargo key has been successfully built from m11 data, when the system finalizes shipment type determination, the desired outcome is that the cargo processing flag is set to true.
💻 Technical Criteria
Given
A cargo key has been successfully built from M11 data
When
The system finalizes shipment type determination
Then
The cargo processing flag is set to true
R-GCX015E-cbl-00383
Set SHOULD-NOT-UPDATE-STATUS Flag
Decision Rules
📊 Business Logic Narrative
When the process 'Set SHOULD-NOT-UPDATE-STATUS Flag' is invoked, and assuming that a cargo manifest record is being processed, when the manifest type code is h (hold) and the processing type is cargo, the desired outcome is that the system sets the should-not-update-status flag to true.
💻 Technical Criteria
Given
A cargo manifest record is being processed
When
The manifest type code is H (Hold) and the processing type is CARGO
Then
The system sets the SHOULD-NOT-UPDATE-STATUS flag to true
R-GCX015E-cbl-00061
Set SHOULD-NOT-UPDATE-STATUS
Decision Rules
📊 Business Logic Narrative
When the process 'Set SHOULD-NOT-UPDATE-STATUS' is invoked, and assuming that a customs manifest message is being processed and the processing type is determined as cargo, when the m10 segment manifest type code is 'h' (hold), the desired outcome is that the system sets the record to not require status update.
💻 Technical Criteria
Given
A customs manifest message is being processed AND the processing type is determined as cargo
When
The M10 segment manifest type code is 'H' (Hold)
Then
The system sets the record to not require status update
R-GCX015E-cbl-00064
Reference Number Type?
Decision Rules
📊 Business Logic Narrative
When the process 'Reference Number Type?' is invoked, and assuming that an m10 segment is being processed with a reference number in m10-12-ref-num field, when the reference number contains the text 'cargo', the desired outcome is that the system sets the processing type as cargo.
💻 Technical Criteria
Given
An M10 segment is being processed with a reference number in M10-12-REF-NUM field
When
The reference number contains the text 'CARGO'
Then
The system sets the processing type as CARGO
R-GCX015E-cbl-00067
Set NO UPDATE Status Decision
Decision Rules
📊 Business Logic Narrative
When the process 'Set NO UPDATE Status Decision' is invoked, and assuming that an m10 segment is being processed with manifest type code 'h' and the processing type is cargo, when the manifest type code is 'h' and ws-train is false, the desired outcome is that the system sets should-not-update-status to true.
💻 Technical Criteria
Given
An M10 segment is being processed with manifest type code 'H' and the processing type is CARGO
When
The manifest type code is 'H' and WS-TRAIN is false
Then
The system sets SHOULD-NOT-UPDATE-STATUS to true
R-GCX015E-cbl-00463
Initialize Search Parameters
Process Rules
📊 Business Logic Narrative
When the process 'Initialize Search Parameters' is invoked, and assuming that a cargo shipment processing request is initiated, when the system begins freight forwarder information retrieval, the desired outcome is that search flags are reset to not found state and segment type indicators are cleared.
💻 Technical Criteria
Given
A cargo shipment processing request is initiated
When
The system begins freight forwarder information retrieval
Then
Search flags are reset to not found state and segment type indicators are cleared
R-GCX015E-cbl-00482
Build Search Key with Freight Forwarder Name
Computation Rules
📊 Business Logic Narrative
When the process 'Build Search Key with Freight Forwarder Name' is invoked, and assuming that a freight forwarder name is available from the cargo shipment data, when the system needs to search for the associated broker information, the desired outcome is that the system creates a search key by concatenating 'fw=' with the freight forwarder name.
💻 Technical Criteria
Given
A freight forwarder name is available from the cargo shipment data
When
The system needs to search for the associated broker information
Then
The system creates a search key by concatenating 'FW=' with the freight forwarder name
R-GCX015E-cbl-00485
Initialize Empty Broker Name Segment
Decision Rules
📊 Business Logic Narrative
When the process 'Initialize Empty Broker Name Segment' is invoked, and assuming that no broker record exists in the registry table for the given freight forwarder, when the search operation fails to locate a matching broker record, the desired outcome is that the system initializes the broker name segment with empty values.
💻 Technical Criteria
Given
No broker record exists in the registry table for the given freight forwarder
When
The search operation fails to locate a matching broker record
Then
The system initializes the broker name segment with empty values
R-GCX015E-cbl-00486
Determine Location ID to Use
Decision Rules
📊 Business Logic Narrative
When the process 'Determine Location ID to Use' is invoked, and assuming that a cargo shipment requires broker contact information retrieval, when the system needs to determine the location id for broker lookup, the desired outcome is that if m1203 location id is available and not spaces, use m1203 location id, otherwise use p401 location id.
💻 Technical Criteria
Given
A cargo shipment requires broker contact information retrieval
When
The system needs to determine the location ID for broker lookup
Then
If M1203 location ID is available and not spaces, use M1203 location ID, otherwise use P401 location ID
R-GCX015E-cbl-00488
Retrieve BK Table Segment
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve BK Table Segment' is invoked, and assuming that a broker lookup key has been constructed, when the system attempts to retrieve broker basic information from bk table, the desired outcome is that if bk segment is not found or retrieval fails, initialize empty bk segment, otherwise use retrieved bk segment data.
💻 Technical Criteria
Given
A broker lookup key has been constructed
When
The system attempts to retrieve broker basic information from BK table
Then
If BK segment is not found or retrieval fails, initialize empty BK segment, otherwise use retrieved BK segment data
R-GCX015E-cbl-00489
Retrieve B1 Table Segment
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve B1 Table Segment' is invoked, and assuming that broker basic information retrieval has been attempted, when the system attempts to retrieve broker contact details from b1 table, the desired outcome is that if b1 segment is not found or retrieval fails, initialize empty b1 segment, otherwise use retrieved b1 segment data.
💻 Technical Criteria
Given
Broker basic information retrieval has been attempted
When
The system attempts to retrieve broker contact details from B1 table
Then
If B1 segment is not found or retrieval fails, initialize empty B1 segment, otherwise use retrieved B1 segment data
R-GCX015E-cbl-00546
Use P401 Location ID as Default
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Use P401 Location ID as Default', assuming that a freight forwarder broker requires location-specific information lookup and m1203 location id is not available (contains spaces), when the system needs to select a location identifier for broker table lookup and m1203 location id is empty or contains only spaces, the desired outcome is that the system shall use p401 location id as the default location identifier for the broker information lookup.
💻 Technical Criteria
EXCLUDING
A freight forwarder broker requires location-specific information lookup and M1203 Location ID is not available (contains spaces)
When
The system needs to select a location identifier for broker table lookup and M1203 Location ID is empty or contains only spaces
Then
The system shall use P401 Location ID as the default location identifier for the broker information lookup
R-GCX015E-cbl-00096
Initialize Cargo Segment
Process Rules
📊 Business Logic Narrative
When the process 'Initialize Cargo Segment' is invoked, and assuming that a cargo retrieval operation is initiated, when the system prepares to query the cargo database, the desired outcome is that the cargo segment data structure is cleared to spaces.
💻 Technical Criteria
Given
A cargo retrieval operation is initiated
When
The system prepares to query the cargo database
Then
The cargo segment data structure is cleared to spaces
R-GCX015E-cbl-00097
Set Database Function to GET UNIQUE
Action Rules
📊 Business Logic Narrative
When the process 'Set Database Function to GET UNIQUE' is invoked, and assuming that a cargo record needs to be retrieved from the database, when the system configures the database operation parameters, the desired outcome is that the database function is set to get unique and the segment type is set to gcsusrt.
💻 Technical Criteria
Given
A cargo record needs to be retrieved from the database
When
The system configures the database operation parameters
Then
The database function is set to GET UNIQUE and the segment type is set to GCSUSRT
R-GCX015E-cbl-00100
Cargo Record Found?
Decision Rules
📊 Business Logic Narrative
When the process 'Cargo Record Found?' is invoked, and assuming that a database retrieval operation has been executed for a cargo record, when the system checks the database operation status code, the desired outcome is that if the status code is spaces (successful), the cargo record is considered found, otherwise it is not found.
💻 Technical Criteria
Given
A database retrieval operation has been executed for a cargo record
When
The system checks the database operation status code
Then
If the status code is spaces (successful), the cargo record is considered found, otherwise it is not found
R-GCX015E-cbl-00101
Set Cargo Found Flag
Process Rules
📊 Business Logic Narrative
When the process 'Set Cargo Found Flag' is invoked, and assuming that a cargo record has been successfully retrieved from the database, when the system updates the cargo processing status, the desired outcome is that the cargo found flag (88-uscargo-train-found) is set to true.
💻 Technical Criteria
Given
A cargo record has been successfully retrieved from the database
When
The system updates the cargo processing status
Then
The cargo found flag (88-USCARGO-TRAIN-FOUND) is set to true
R-GCX015E-cbl-00102
Store Equipment/Car Information
Process Rules
📊 Business Logic Narrative
When the process 'Store Equipment/Car Information' is invoked, and assuming that a cargo record has been successfully retrieved from the database, when the system processes the cargo record data, the desired outcome is that the equipment car id (gcusrt-rt081-equipment-car) is stored as the merlin sub-key.
💻 Technical Criteria
Given
A cargo record has been successfully retrieved from the database
When
The system processes the cargo record data
Then
The equipment car ID (GCUSRT-RT081-EQUIPMENT-CAR) is stored as the Merlin sub-key
R-GCX015E-cbl-00103
Set Merlin Key and Sub-Key
Process Rules
📊 Business Logic Narrative
When the process 'Set Merlin Key and Sub-Key' is invoked, and assuming that cargo record data has been successfully retrieved and equipment information extracted, when the system sets up merlin identification keys, the desired outcome is that the merlin key is set to the processed m10 data and the merlin sub-key is set to the equipment car id.
💻 Technical Criteria
Given
Cargo record data has been successfully retrieved and equipment information extracted
When
The system sets up Merlin identification keys
Then
The Merlin key is set to the processed M10 data and the Merlin sub-key is set to the equipment car ID
R-GCX015E-cbl-00104
Set Cargo Not Found Flag
Process Rules
📊 Business Logic Narrative
When the process 'Set Cargo Not Found Flag' is invoked, and assuming that a cargo database retrieval operation has failed to find a matching record, when the system updates the cargo processing status, the desired outcome is that the cargo not found flag (88-uscargo-train-notfnd) is set to true.
💻 Technical Criteria
Given
A cargo database retrieval operation has failed to find a matching record
When
The system updates the cargo processing status
Then
The cargo not found flag (88-USCARGO-TRAIN-NOTFND) is set to true
R-GCX015E-cbl-00117
Restore Previous Cargo Status
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Restore Previous Cargo Status', assuming that a cargo record exists with acknowledgment status and saved status description is not spaces, when the system processes the cargo status update, the desired outcome is that the saved cargo status is moved to current cargo status and saved status description is moved to current cargo short description.
💻 Technical Criteria
EXCLUDING
A cargo record exists with acknowledgment status and saved status description is not spaces
When
The system processes the cargo status update
Then
The saved cargo status is moved to current cargo status and saved status description is moved to current cargo short description
R-GCX015E-cbl-00118
Set Status to Acknowledged
Decision Rules
📊 Business Logic Narrative
When the process 'Set Status to Acknowledged' is invoked, and assuming that a cargo record exists with acknowledgment status and saved status description is spaces, when the system processes the cargo status update, the desired outcome is that the cargo status is set to uscargo-ack and cargo short description is set to uscargo-ack.
💻 Technical Criteria
Given
A cargo record exists with acknowledgment status and saved status description is spaces
When
The system processes the cargo status update
Then
The cargo status is set to USCARGO-ACK and cargo short description is set to USCARGO-ACK
R-GCX015E-cbl-00119
Current Status is Error/Ack?
Decision Rules
📊 Business Logic Narrative
When the process 'Current Status is Error/Ack?' is invoked, and assuming that a cargo record exists with error status and current cargo short description is uscargo-error or uscargo-ack or uscargo-ack-r, when the system processes the cargo status update, the desired outcome is that the system continues processing without saving the current status.
💻 Technical Criteria
Given
A cargo record exists with error status and current cargo short description is USCARGO-ERROR or USCARGO-ACK or USCARGO-ACK-R
When
The system processes the cargo status update
Then
The system continues processing without saving the current status
R-GCX015E-cbl-00120
Save Current Status for Future Restoration
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Save Current Status for Future Restoration', assuming that a cargo record exists with error status and current cargo short description is not uscargo-error and not uscargo-ack and not uscargo-ack-r, when the system processes the cargo status update, the desired outcome is that the current cargo status is saved to saved status field and current cargo short description is saved to saved status description field.
💻 Technical Criteria
EXCLUDING
A cargo record exists with error status and current cargo short description is not USCARGO-ERROR and not USCARGO-ACK and not USCARGO-ACK-R
When
The system processes the cargo status update
Then
The current cargo status is saved to saved status field and current cargo short description is saved to saved status description field
R-GCX015E-cbl-00121
Set Cargo Status to Error
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Cargo Status to Error', assuming that a cargo record exists with error status and cp cargo status is not cpcargo-deleted, when the system processes the cargo status update, the desired outcome is that the cp cargo status is set to cpcargo-error.
💻 Technical Criteria
EXCLUDING
A cargo record exists with error status and CP cargo status is not CPCARGO-DELETED
When
The system processes the cargo status update
Then
The CP cargo status is set to CPCARGO-ERROR
R-GCX015E-cbl-00122
Set US Cargo Status to Error
Decision Rules
📊 Business Logic Narrative
When the process 'Set US Cargo Status to Error' is invoked, and assuming that a cargo record exists with error status, when the system processes the cargo status update, the desired outcome is that the us cargo status is set to uscargo-error and us cargo short description is set to uscargo-error.
💻 Technical Criteria
Given
A cargo record exists with error status
When
The system processes the cargo status update
Then
The US cargo status is set to USCARGO-ERROR and US cargo short description is set to USCARGO-ERROR
R-GCX015E-cbl-00123
Update Cargo Record in Database
Action Rules
📊 Business Logic Narrative
When the process 'Update Cargo Record in Database' is invoked, and assuming that cargo status changes have been determined, when the system needs to persist the cargo status updates, the desired outcome is that the cargo segment is updated in the database using gccusio service with replace function for gcsusrt segment.
💻 Technical Criteria
Given
Cargo status changes have been determined
When
The system needs to persist the cargo status updates
Then
The cargo segment is updated in the database using GCCUSIO service with replace function for GCSUSRT segment
R-GCX015E-cbl-00410
Restore Previous Cargo Status from Save Fields
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Restore Previous Cargo Status from Save Fields', assuming that a cargo shipment has acknowledgment status and previous status description save field is not empty, when the cargo status update process is executed, the desired outcome is that the cargo status is restored from the saved status field and the cargo description is restored from the saved description field.
💻 Technical Criteria
EXCLUDING
A cargo shipment has acknowledgment status AND previous status description save field is not empty
When
The cargo status update process is executed
Then
The cargo status is restored from the saved status field AND the cargo description is restored from the saved description field
R-GCX015E-cbl-00411
Set Cargo Status to Acknowledged
Decision Rules
📊 Business Logic Narrative
When the process 'Set Cargo Status to Acknowledged' is invoked, and assuming that a cargo shipment has acknowledgment status and previous status description save field is empty, when the cargo status update process is executed, the desired outcome is that the cargo status is set to acknowledged and the cargo description is set to acknowledged.
💻 Technical Criteria
Given
A cargo shipment has acknowledgment status AND previous status description save field is empty
When
The cargo status update process is executed
Then
The cargo status is set to acknowledged AND the cargo description is set to acknowledged
R-GCX015E-cbl-00412
Save Current Status to Save Fields
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Save Current Status to Save Fields', assuming that a cargo shipment has error status and current cargo status is not error and current cargo status is not acknowledgment and current cargo status is not acknowledgment-revised, when the cargo status update process is executed, the desired outcome is that the current cargo status is saved to the save status field and the current cargo description is saved to the save description field.
💻 Technical Criteria
EXCLUDING
A cargo shipment has error status AND current cargo status is not error AND current cargo status is not acknowledgment AND current cargo status is not acknowledgment-revised
When
The cargo status update process is executed
Then
The current cargo status is saved to the save status field AND the current cargo description is saved to the save description field
R-GCX015E-cbl-00413
Skip Saving Current Status
Decision Rules
📊 Business Logic Narrative
When the process 'Skip Saving Current Status' is invoked, and assuming that a cargo shipment has error status and (current cargo status is error or current cargo status is acknowledgment or current cargo status is acknowledgment-revised), when the cargo status update process is executed, the desired outcome is that no changes are made to the save status field and no changes are made to the save description field.
💻 Technical Criteria
Given
A cargo shipment has error status AND (current cargo status is error OR current cargo status is acknowledgment OR current cargo status is acknowledgment-revised)
When
The cargo status update process is executed
Then
No changes are made to the save status field AND no changes are made to the save description field
R-GCX015E-cbl-00414
Set Cargo Status to Error
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Cargo Status to Error', assuming that a cargo shipment has error status and cargo is not marked as deleted, when the cargo status update process is executed, the desired outcome is that the cp cargo status is set to error and the us cargo status is set to error and the us cargo description is set to error.
💻 Technical Criteria
EXCLUDING
A cargo shipment has error status AND cargo is not marked as deleted
When
The cargo status update process is executed
Then
The CP cargo status is set to error AND the US cargo status is set to error AND the US cargo description is set to error
R-GCX015E-cbl-00415
Update Cargo Record in Database
Action Rules
📊 Business Logic Narrative
When the process 'Update Cargo Record in Database' is invoked, and assuming that cargo status fields have been updated with new values, when the cargo database update is executed, the desired outcome is that the cargo segment is updated in the database with the new status information.
💻 Technical Criteria
Given
Cargo status fields have been updated with new values
When
The cargo database update is executed
Then
The cargo segment is updated in the database with the new status information
R-GCX015E-cbl-00497
Check Cargo Processing Status
Decision Rules
📊 Business Logic Narrative
When the process 'Check Cargo Processing Status' is invoked, and assuming that a cargo transaction is being processed with a current status, when the system receives an acknowledgment status response, the desired outcome is that the system should either set cargo to acknowledged status or restore previous status from save fields.
💻 Technical Criteria
Given
A cargo transaction is being processed with a current status
When
The system receives an acknowledgment status response
Then
The system should either set cargo to acknowledged status or restore previous status from save fields
R-GCX015E-cbl-00498
Set Cargo to Acknowledged Status
Action Rules
📊 Business Logic Narrative
When the process 'Set Cargo to Acknowledged Status' is invoked, and assuming that cargo processing has acknowledgment status and save status description fields are empty, when the system processes the cargo status update, the desired outcome is that the system should set both cargo status indicators to acknowledged state.
💻 Technical Criteria
Given
Cargo processing has acknowledgment status AND save status description fields are empty
When
The system processes the cargo status update
Then
The system should set both cargo status indicators to acknowledged state
R-GCX015E-cbl-00499
Restore Previous Status from Save Fields
Action Rules
📊 Business Logic Narrative
When the process 'Restore Previous Status from Save Fields' is invoked, and assuming that cargo processing has acknowledgment status and save status description fields contain data, when the system processes the cargo status update, the desired outcome is that the system should restore the saved status to current status field and restore the saved description to current description field.
💻 Technical Criteria
Given
Cargo processing has acknowledgment status AND save status description fields contain data
When
The system processes the cargo status update
Then
The system should restore the saved status to current status field AND restore the saved description to current description field
R-GCX015E-cbl-00500
Current Status is Error/Ack?
Decision Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Current Status is Error/Ack?', assuming that cargo processing does not have acknowledgment status, when the current cargo status is error or acknowledgment or acknowledgment-revised, the desired outcome is that the system should continue without saving current status information.
💻 Technical Criteria
EXCLUDING
Cargo processing does not have acknowledgment status
When
The current cargo status is error OR acknowledgment OR acknowledgment-revised
Then
The system should continue without saving current status information
R-GCX015E-cbl-00501
Save Current Status to Save Fields
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Save Current Status to Save Fields', assuming that cargo processing does not have acknowledgment status and current status is not error, acknowledgment, or acknowledgment-revised, when the system prepares to update cargo status to error, the desired outcome is that the system should move current cargo status to save status field and move current cargo description to save description field.
💻 Technical Criteria
EXCLUDING
Cargo processing does not have acknowledgment status AND current status is not error, acknowledgment, or acknowledgment-revised
When
The system prepares to update cargo status to error
Then
The system should move current cargo status to save status field AND move current cargo description to save description field
R-GCX015E-cbl-00502
Set Cargo to Error Status
Action Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Cargo to Error Status', assuming that cargo processing does not have acknowledgment status, when the system processes cargo status update for error condition and cargo is not marked as deleted, the desired outcome is that the system should set canadian cargo status to error and set us cargo status to error and set us cargo description to error.
💻 Technical Criteria
EXCLUDING
Cargo processing does not have acknowledgment status
When
The system processes cargo status update for error condition AND cargo is not marked as deleted
Then
The system should set Canadian cargo status to error AND set US cargo status to error AND set US cargo description to error
R-GCX015E-cbl-00503
Is Acknowledgment Status?
Decision Rules
📊 Business Logic Narrative
When the process 'Is Acknowledgment Status?' is invoked, and assuming that a cargo record is being processed with acknowledgment status, when the system checks for previously saved status information, the desired outcome is that if no saved status exists, set status to acknowledgment; if saved status exists, restore the saved status and description.
💻 Technical Criteria
Given
A cargo record is being processed with acknowledgment status
When
The system checks for previously saved status information
Then
If no saved status exists, set status to acknowledgment; if saved status exists, restore the saved status and description
R-GCX015E-cbl-00504
Set Status to ACK
Action Rules
📊 Business Logic Narrative
When the process 'Set Status to ACK' is invoked, and assuming that a cargo record is being processed with acknowledgment status and no previously saved status information exists, when the save status description field is empty, the desired outcome is that set both rt11 and rt21 cargo status fields to acknowledgment status.
💻 Technical Criteria
Given
A cargo record is being processed with acknowledgment status and no previously saved status information exists
When
The save status description field is empty
Then
Set both RT11 and RT21 cargo status fields to acknowledgment status
R-GCX015E-cbl-00505
Restore Status from Save Field
Action Rules
📊 Business Logic Narrative
When the process 'Restore Status from Save Field' is invoked, and assuming that a cargo record is being processed with acknowledgment status and previously saved status information exists, when the save status description field contains data, the desired outcome is that restore the cargo status from rt44 save field to rt11 status field and restore the status description from rt45 save field to rt21 description field.
💻 Technical Criteria
Given
A cargo record is being processed with acknowledgment status and previously saved status information exists
When
The save status description field contains data
Then
Restore the cargo status from RT44 save field to RT11 status field and restore the status description from RT45 save field to RT21 description field
R-GCX015E-cbl-00506
Update Cargo Record
Action Rules
📊 Business Logic Narrative
When the process 'Update Cargo Record' is invoked, and assuming that cargo status has been determined (either default acknowledgment or restored from saved fields), when the cargo status processing is complete, the desired outcome is that update the cargo segment record in the database with the new status information.
💻 Technical Criteria
Given
Cargo status has been determined (either default acknowledgment or restored from saved fields)
When
The cargo status processing is complete
Then
Update the cargo segment record in the database with the new status information
R-GCX015E-cbl-00129
Equipment Type is Container?
Decision Rules
📊 Business Logic Narrative
When the process 'Equipment Type is Container?' is invoked, and assuming that the system is processing train equipment for aei transmission, when an equipment item has container indicator set to 'c', the desired outcome is that skip the container equipment and do not include it in the customs car data.
💻 Technical Criteria
Given
The system is processing train equipment for AEI transmission
When
An equipment item has container indicator set to 'C'
Then
Skip the container equipment and do not include it in the customs car data
R-GCX015E-cbl-00130
Load Car Initial and Number
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Load Car Initial and Number', assuming that equipment is not a container type, when the system loads car information, the desired outcome is that copy equipment initial and convert equipment number to 6-digit format for customs car data.
💻 Technical Criteria
EXCLUDING
Equipment is not a container type
When
The system loads car information
Then
Copy equipment initial and convert equipment number to 6-digit format for customs car data
R-GCX015E-cbl-00131
Set Car Load/Empty Indicator
Decision Rules
📊 Business Logic Narrative
When the process 'Set Car Load/Empty Indicator' is invoked, and assuming that car identification has been loaded, when the system sets load/empty indicator, the desired outcome is that if next equipment is container, set indicator to 'l', otherwise use the equipment's load/empty code.
💻 Technical Criteria
Given
Car identification has been loaded
When
The system sets load/empty indicator
Then
If next equipment is container, set indicator to 'L', otherwise use the equipment's load/empty code
R-GCX015E-cbl-00132
Set Car Kind Based on Equipment Type
Decision Rules
📊 Business Logic Narrative
When the process 'Set Car Kind Based on Equipment Type' is invoked, and assuming that car load/empty indicator has been set, when the system determines car kind, the desired outcome is that if equipment type is 'lo' set kind to 'l', if 'et' set to 'e', otherwise leave blank.
💻 Technical Criteria
Given
Car load/empty indicator has been set
When
The system determines car kind
Then
If equipment type is 'LO' set kind to 'L', if 'ET' set to 'E', otherwise leave blank
R-GCX015E-cbl-00133
Send Customs Transaction via CIMS
Action Rules
📊 Business Logic Narrative
When the process 'Send Customs Transaction via CIMS' is invoked, and assuming that all car information has been loaded and formatted, when the system sends customs transaction, the desired outcome is that call cims program to transmit the customs transaction data.
💻 Technical Criteria
Given
All car information has been loaded and formatted
When
The system sends customs transaction
Then
Call CIMS program to transmit the customs transaction data
R-GCX015E-cbl-00507
Is Equipment a Container?
Decision Rules
📊 Business Logic Narrative
When the process 'Is Equipment a Container?' is invoked, and assuming that equipment information is being processed for customs reporting, when the equipment container indicator is 'c', the desired outcome is that skip the equipment and do not include it in customs car information.
💻 Technical Criteria
Given
Equipment information is being processed for customs reporting
When
The equipment container indicator is 'C'
Then
Skip the equipment and do not include it in customs car information
R-GCX015E-cbl-00508
Extract Equipment Initial
Process Rules
📊 Business Logic Narrative
When the process 'Extract Equipment Initial' is invoked, and assuming that non-container equipment is being processed, when equipment initial information is available, the desired outcome is that copy the equipment initial to the customs car initial field.
💻 Technical Criteria
Given
Non-container equipment is being processed
When
Equipment initial information is available
Then
Copy the equipment initial to the customs car initial field
R-GCX015E-cbl-00509
Extract Equipment Number
Process Rules
📊 Business Logic Narrative
When the process 'Extract Equipment Number' is invoked, and assuming that non-container equipment is being processed, when equipment number information is available, the desired outcome is that extract the equipment number for further processing.
💻 Technical Criteria
Given
Non-container equipment is being processed
When
Equipment number information is available
Then
Extract the equipment number for further processing
R-GCX015E-cbl-00510
Convert to 6-Digit Car Number
Computation Rules
📊 Business Logic Narrative
When the process 'Convert to 6-Digit Car Number' is invoked, and assuming that equipment number has been extracted, when the equipment number needs to be formatted for customs, the desired outcome is that convert the equipment number to 6-digit car number format.
💻 Technical Criteria
Given
Equipment number has been extracted
When
The equipment number needs to be formatted for customs
Then
Convert the equipment number to 6-digit car number format
R-GCX015E-cbl-00511
Set Load/Empty Indicator to 'L'
Decision Rules
📊 Business Logic Narrative
When the process 'Set Load/Empty Indicator to 'L'' is invoked, and assuming that current equipment is being processed and there is a next equipment in the sequence, when the next equipment's container indicator is 'c', the desired outcome is that set the current equipment's load/empty indicator to 'l'.
💻 Technical Criteria
Given
Current equipment is being processed and there is a next equipment in the sequence
When
The next equipment's container indicator is 'C'
Then
Set the current equipment's load/empty indicator to 'L'
R-GCX015E-cbl-00512
Copy Load/Empty from Equipment
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Copy Load/Empty from Equipment', assuming that current equipment is being processed, when the next equipment is not a container or there is no next equipment, the desired outcome is that copy the load/empty indicator from the current equipment data.
💻 Technical Criteria
EXCLUDING
Current equipment is being processed
When
The next equipment is not a container or there is no next equipment
Then
Copy the load/empty indicator from the current equipment data
R-GCX015E-cbl-00513
Set Car Kind to 'L' - Locomotive
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Car Kind to 'L' - Locomotive' is invoked, and assuming that equipment type information is available, when the equipment type is 'lo', the desired outcome is that set the car kind to 'l' indicating locomotive.
💻 Technical Criteria
Given
Equipment type information is available
When
The equipment type is 'LO'
Then
Set the car kind to 'L' indicating locomotive
R-GCX015E-cbl-00514
Set Car Kind to 'E' - Engine
Definitional Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Car Kind to 'E' - Engine', assuming that equipment type information is available and it is not 'lo', when the equipment type is 'et', the desired outcome is that set the car kind to 'e' indicating engine.
💻 Technical Criteria
EXCLUDING
Equipment type information is available and it is not 'LO'
When
The equipment type is 'ET'
Then
Set the car kind to 'E' indicating engine
R-GCX015E-cbl-00515
Set Car Kind to Spaces
Definitional Rules
📊 Business Logic Narrative
When the process 'Set Car Kind to Spaces' is invoked, and assuming that equipment type information is available, when the equipment type is neither 'lo' nor 'et', the desired outcome is that set the car kind to spaces indicating standard railcar.
💻 Technical Criteria
Given
Equipment type information is available
When
The equipment type is neither 'LO' nor 'ET'
Then
Set the car kind to spaces indicating standard railcar
R-GCX015E-cbl-00516
Store Car Information in Customs Table
Process Rules
📊 Business Logic Narrative
When the process 'Store Car Information in Customs Table' is invoked, and assuming that car information has been processed and classified, when all car details are ready for customs reporting, the desired outcome is that store the car initial, number, load/empty indicator, and car kind in the customs table.
💻 Technical Criteria
Given
Car information has been processed and classified
When
All car details are ready for customs reporting
Then
Store the car initial, number, load/empty indicator, and car kind in the customs table
R-GCX015E-cbl-00137
Is Equipment a Container?
Decision Rules
📊 Business Logic Narrative
When the process 'Is Equipment a Container?' is invoked, and assuming that a train equipment item is being processed for customs car loading, when the equipment container indicator is 'c', the desired outcome is that the equipment should be skipped and not included in the customs car output table.
💻 Technical Criteria
Given
A train equipment item is being processed for customs car loading
When
The equipment container indicator is 'C'
Then
The equipment should be skipped and not included in the customs car output table
R-GCX015E-cbl-00138
Extract Car Initial from Train Equipment
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Extract Car Initial from Train Equipment', assuming that a train equipment item is not a container, when processing the equipment for customs car loading, the desired outcome is that the equipment initial should be moved to customs car initial and the equipment number should be moved to car number field.
💻 Technical Criteria
EXCLUDING
A train equipment item is not a container
When
Processing the equipment for customs car loading
Then
The equipment initial should be moved to customs car initial and the equipment number should be moved to car number field
R-GCX015E-cbl-00139
Format Car Number to 6 Digits
Validation Rules
📊 Business Logic Narrative
When the process 'Format Car Number to 6 Digits' is invoked, and assuming that a car number has been extracted from equipment data, when preparing the car information for customs output, the desired outcome is that the car number should be formatted as a 6-digit number in the customs car number field.
💻 Technical Criteria
Given
A car number has been extracted from equipment data
When
Preparing the car information for customs output
Then
The car number should be formatted as a 6-digit number in the customs car number field
R-GCX015E-cbl-00140
Is Next Equipment Container?
Decision Rules
📊 Business Logic Narrative
When the process 'Is Next Equipment Container?' is invoked, and assuming that a car is being processed and there is a next equipment item in the sequence, when the next equipment item is a container (indicator 'c'), the desired outcome is that the current car's load/empty indicator should be set to 'l', otherwise use the car's own load/empty indicator.
💻 Technical Criteria
Given
A car is being processed and there is a next equipment item in the sequence
When
The next equipment item is a container (indicator 'C')
Then
The current car's load/empty indicator should be set to 'L', otherwise use the car's own load/empty indicator
R-GCX015E-cbl-00141
Equipment Type = 'LO'?
Definitional Rules
📊 Business Logic Narrative
When the process 'Equipment Type = 'LO'?' is invoked, and assuming that an equipment item has been identified as non-container, when the equipment type is 'lo', the desired outcome is that the car kind should be set to 'l' for locomotive.
💻 Technical Criteria
Given
An equipment item has been identified as non-container
When
The equipment type is 'LO'
Then
The car kind should be set to 'L' for locomotive
R-GCX015E-cbl-00142
Equipment Type = 'ET'?
Definitional Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Equipment Type = 'ET'?', assuming that an equipment item is not a locomotive (type not 'lo'), when the equipment type is 'et', the desired outcome is that the car kind should be set to 'e' for end of train device.
💻 Technical Criteria
EXCLUDING
An equipment item is not a locomotive (type not 'LO')
When
The equipment type is 'ET'
Then
The car kind should be set to 'E' for end of train device
R-GCX015E-cbl-00143
Set Car Kind as Spaces
Definitional Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Set Car Kind as Spaces', assuming that an equipment item is not a locomotive and not an end of train device, when the equipment type is neither 'lo' nor 'et', the desired outcome is that the car kind should be set to spaces (no classification).
💻 Technical Criteria
EXCLUDING
An equipment item is not a locomotive and not an end of train device
When
The equipment type is neither 'LO' nor 'ET'
Then
The car kind should be set to spaces (no classification)
R-GCX015E-cbl-00144
Add Car to Customs Output Table
Process Rules
📊 Business Logic Narrative
When the process 'Add Car to Customs Output Table' is invoked, and assuming that a car's details have been fully processed including initial, number, load/empty indicator, and car kind, when all car information is ready for customs reporting, the desired outcome is that the car counter should be incremented by 1 and the equipment sequence counter should be incremented by 1.
💻 Technical Criteria
Given
A car's details have been fully processed including initial, number, load/empty indicator, and car kind
When
All car information is ready for customs reporting
Then
The car counter should be incremented by 1 and the equipment sequence counter should be incremented by 1
R-GCX015E-cbl-00145
More Equipment to Process?
Process Rules
📊 Business Logic Narrative
When the process 'More Equipment to Process?' is invoked, and assuming that car loading is in progress for a train, when the current equipment counter is less than or equal to the total equipment quantity and the car counter is less than or equal to 500, the desired outcome is that processing should continue to the next equipment item, otherwise car loading should end.
💻 Technical Criteria
Given
Car loading is in progress for a train
When
The current equipment counter is less than or equal to the total equipment quantity and the car counter is less than or equal to 500
Then
Processing should continue to the next equipment item, otherwise car loading should end
R-GCX015E-cbl-00149
Set Multiple Recipients from Database
Process Rules
📊 Business Logic Narrative
When the process 'Set Multiple Recipients from Database' is invoked, and assuming that database lookup successfully returns aei email contacts, when the system processes the retrieved contact information, the desired outcome is that the system assigns up to 10 user ids from database as email recipients until empty entry is found.
💻 Technical Criteria
Given
Database lookup successfully returns AEI email contacts
When
The system processes the retrieved contact information
Then
The system assigns up to 10 user IDs from database as email recipients until empty entry is found
R-GCX015E-cbl-00165
Retrieve Cargo Segment Data
Process Rules
📊 Business Logic Narrative
When the process 'Retrieve Cargo Segment Data' is invoked, and assuming that a cargo shipment requires email warning notification, when the system processes cargo segment data retrieval, the desired outcome is that the system searches through cargo secondary segments to find freight forwarder (n101 type) and consignee (n101 type) information, and identifies segment 07 data.
💻 Technical Criteria
Given
A cargo shipment requires email warning notification
When
The system processes cargo segment data retrieval
Then
The system searches through cargo secondary segments to find freight forwarder (N101 type) and consignee (N101 type) information, and identifies segment 07 data
R-GCX015E-cbl-00166
Freight Forwarder Found?
Decision Rules
📊 Business Logic Narrative
When the process 'Freight Forwarder Found?' is invoked, and assuming that cargo segment data is being processed for email notifications, when the system examines segment type 03 records, the desired outcome is that if gcus-n101 field indicates forwarder type, set freight forwarder found flag to true.
💻 Technical Criteria
Given
Cargo segment data is being processed for email notifications
When
The system examines segment type 03 records
Then
If GCUS-N101 field indicates forwarder type, set freight forwarder found flag to true
R-GCX015E-cbl-00167
Retrieve Cargo Segment Data
Definitional Rules
📊 Business Logic Narrative
When the process 'Retrieve Cargo Segment Data' is invoked, and assuming that cargo segment data contains consignee information, when the system processes segment type 03 records with n101 consignee type, the desired outcome is that the system captures the consignee name from gcus-n102-name field and sets consignee found flag.
💻 Technical Criteria
Given
Cargo segment data contains consignee information
When
The system processes segment type 03 records with N101 consignee type
Then
The system captures the consignee name from GCUS-N102-NAME field and sets consignee found flag
R-GCX015E-cbl-00168
Get Freight Forwarder Broker Short Name
Action Rules
📊 Business Logic Narrative
When the process 'Get Freight Forwarder Broker Short Name' is invoked, and assuming that a freight forwarder name is available from cargo segments, when the system constructs a lookup key with 'fw=' prefix and freight forwarder name, the desired outcome is that the system retrieves broker short name from gcst2rt table, or initializes empty broker name segment if not found.
💻 Technical Criteria
Given
A freight forwarder name is available from cargo segments
When
The system constructs a lookup key with 'FW=' prefix and freight forwarder name
Then
The system retrieves broker short name from GCST2RT table, or initializes empty broker name segment if not found
R-GCX015E-cbl-00174
Add Equipment Information
Process Rules
📊 Business Logic Narrative
When the process 'Add Equipment Information' is invoked, and assuming that cargo equipment information is available, when the system formats email content, the desired outcome is that the system adds equipment id number from gcusrt-rt071-car-id-num-index to the email text.
💻 Technical Criteria
Given
Cargo equipment information is available
When
The system formats email content
Then
The system adds equipment ID number from GCUSRT-RT071-CAR-ID-NUM-INDEX to the email text
R-GCX015E-cbl-00177
Add Load/Empty Indicator
Process Rules
📊 Business Logic Narrative
When the process 'Add Load/Empty Indicator' is invoked, and assuming that load/empty indicator is available from cargo data, when the system formats email content, the desired outcome is that the system adds the load/empty code from gcusrt-vid10-load-empty-cde to the email text.
💻 Technical Criteria
Given
Load/empty indicator is available from cargo data
When
The system formats email content
Then
The system adds the load/empty code from GCUSRT-VID10-LOAD-EMPTY-CDE to the email text
R-GCX015E-cbl-00178
Add Content Description
Process Rules
📊 Business Logic Narrative
When the process 'Add Content Description' is invoked, and assuming that content description is available from cargo data, when the system formats email content, the desired outcome is that the system adds the long description from gcus-n1002-long-desc to the email text.
💻 Technical Criteria
Given
Content description is available from cargo data
When
The system formats email content
Then
The system adds the long description from GCUS-N1002-LONG-DESC to the email text
R-GCX015E-cbl-00181
Add Consignee Information
Process Rules
📊 Business Logic Narrative
When the process 'Add Consignee Information' is invoked, and assuming that consignee information was found in cargo segments, when the system formats email content, the desired outcome is that the system adds the consignee name to the email text.
💻 Technical Criteria
Given
Consignee information was found in cargo segments
When
The system formats email content
Then
The system adds the consignee name to the email text
R-GCX015E-cbl-00423
Extract Equipment Information
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Equipment Information' is invoked, and assuming that a cargo record with equipment information exists, when the system builds email warning content, the desired outcome is that the equipment identification number is extracted from the cargo record field rt071-car-id-num-index.
💻 Technical Criteria
Given
A cargo record with equipment information exists
When
The system builds email warning content
Then
The equipment identification number is extracted from the cargo record field RT071-CAR-ID-NUM-INDEX
R-GCX015E-cbl-00424
Format Equipment Line Data
Process Rules
📊 Business Logic Narrative
When the process 'Format Equipment Line Data' is invoked, and assuming that equipment identification information has been extracted, when the system formats the email content, the desired outcome is that the equipment data is formatted into equipment line variables and placed at email text line 7.
💻 Technical Criteria
Given
Equipment identification information has been extracted
When
The system formats the email content
Then
The equipment data is formatted into equipment line variables and placed at email text line 7
R-GCX015E-cbl-00428
Extract Load/Empty Indicator
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Load/Empty Indicator' is invoked, and assuming that a cargo record contains equipment load/empty status, when the system builds email warning content, the desired outcome is that the load/empty code is extracted from vid10-load-empty-cde field.
💻 Technical Criteria
Given
A cargo record contains equipment load/empty status
When
The system builds email warning content
Then
The load/empty code is extracted from VID10-LOAD-EMPTY-CDE field
R-GCX015E-cbl-00429
Format Load/Empty Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Load/Empty Line' is invoked, and assuming that load/empty indicator has been extracted, when the system formats the email content, the desired outcome is that the load/empty indicator variables are placed at email text line 10.
💻 Technical Criteria
Given
Load/empty indicator has been extracted
When
The system formats the email content
Then
The load/empty indicator variables are placed at email text line 10
R-GCX015E-cbl-00430
Extract Content Description
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract Content Description' is invoked, and assuming that a cargo record contains content description information, when the system builds email warning content, the desired outcome is that the long description is extracted from gcus-n1002-long-desc field.
💻 Technical Criteria
Given
A cargo record contains content description information
When
The system builds email warning content
Then
The long description is extracted from GCUS-N1002-LONG-DESC field
R-GCX015E-cbl-00549
Move Formatted Origin Station to Email Text Line
Action Rules
📊 Business Logic Narrative
When the process 'Move Formatted Origin Station to Email Text Line' is invoked, and assuming that origin station information has been formatted and stored in ws-origin-stn-vars, when the system prepares email content for cargo warning notifications, the desired outcome is that the system assigns the formatted origin station information to email text line 12.
💻 Technical Criteria
Given
Origin station information has been formatted and stored in WS-ORIGIN-STN-VARS
When
The system prepares email content for cargo warning notifications
Then
The system assigns the formatted origin station information to email text line 12
R-GCX015E-cbl-00550
Combine Station Name and Province/State with Comma Delimiter
Process Rules
📊 Business Logic Narrative
When the process 'Combine Station Name and Province/State with Comma Delimiter' is invoked, and assuming that a cargo shipment has destination station name and province/state code available, when the system prepares an email warning notification, the desired outcome is that the destination station string should be formatted by combining the destination station name, a comma delimiter, and the province/state code, then stored in the email text line.
💻 Technical Criteria
Given
A cargo shipment has destination station name and province/state code available
When
The system prepares an email warning notification
Then
The destination station string should be formatted by combining the destination station name, a comma delimiter, and the province/state code, then stored in the email text line
R-GCX015E-cbl-00199
Build Freight Forwarder Key from Name
Computation Rules
📊 Business Logic Narrative
When the process 'Build Freight Forwarder Key from Name' is invoked, and assuming that a freight forwarder name exists in the cargo segment, when the system needs to lookup freight forwarder contact details, the desired outcome is that the system builds a lookup key by concatenating 'fw=' prefix with the freight forwarder name.
💻 Technical Criteria
Given
A freight forwarder name exists in the cargo segment
When
The system needs to lookup freight forwarder contact details
Then
The system builds a lookup key by concatenating 'FW=' prefix with the freight forwarder name
R-GCX015E-cbl-00200
Retrieve Freight Forwarder Short Name from GCST2RT
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Freight Forwarder Short Name from GCST2RT' is invoked, and assuming that a freight forwarder lookup key has been constructed, when the system queries the gcst2rt table with the lookup key, the desired outcome is that the system retrieves the freight forwarder's short name if found, otherwise initializes empty broker information.
💻 Technical Criteria
Given
A freight forwarder lookup key has been constructed
When
The system queries the GCST2RT table with the lookup key
Then
The system retrieves the freight forwarder's short name if found, otherwise initializes empty broker information
R-GCX015E-cbl-00201
Initialize Empty Broker Information
Validation Rules
📊 Business Logic Narrative
When the process 'Initialize Empty Broker Information' is invoked, and assuming that the freight forwarder lookup in gcst2rt table returns no results, when the system cannot find a matching freight forwarder short name, the desired outcome is that the system initializes the broker name segment to empty values.
💻 Technical Criteria
Given
The freight forwarder lookup in GCST2RT table returns no results
When
The system cannot find a matching freight forwarder short name
Then
The system initializes the broker name segment to empty values
R-GCX015E-cbl-00203
Retrieve Broker Contact Information from BK Table
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Broker Contact Information from BK Table' is invoked, and assuming that a broker lookup key has been constructed with short name and location, when the system queries the bk table segment with the broker key, the desired outcome is that the system retrieves broker contact information if found, otherwise initializes empty broker contact data.
💻 Technical Criteria
Given
A broker lookup key has been constructed with short name and location
When
The system queries the BK table segment with the broker key
Then
The system retrieves broker contact information if found, otherwise initializes empty broker contact data
R-GCX015E-cbl-00204
Initialize Empty Broker Contact
Validation Rules
📊 Business Logic Narrative
When the process 'Initialize Empty Broker Contact' is invoked, and assuming that the broker contact lookup in bk table returns no results, when the system cannot find matching broker contact information, the desired outcome is that the system initializes the bk segment to empty values and skips further processing.
💻 Technical Criteria
Given
The broker contact lookup in BK table returns no results
When
The system cannot find matching broker contact information
Then
The system initializes the BK segment to empty values and skips further processing
R-GCX015E-cbl-00205
Retrieve Internet Address from B1 Table
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve Internet Address from B1 Table' is invoked, and assuming that broker contact information exists in the bk segment, when the system queries the b1 table for internet address information, the desired outcome is that the system retrieves internet address data if found, otherwise initializes empty internet address information.
💻 Technical Criteria
Given
Broker contact information exists in the BK segment
When
The system queries the B1 table for internet address information
Then
The system retrieves internet address data if found, otherwise initializes empty internet address information
R-GCX015E-cbl-00206
Initialize Empty Internet Address
Validation Rules
📊 Business Logic Narrative
When the process 'Initialize Empty Internet Address' is invoked, and assuming that the internet address lookup in b1 table returns no results, when the system cannot find matching internet address information, the desired outcome is that the system initializes the b1 segment to empty values and skips email configuration.
💻 Technical Criteria
Given
The internet address lookup in B1 table returns no results
When
The system cannot find matching internet address information
Then
The system initializes the B1 segment to empty values and skips email configuration
R-GCX015E-cbl-00217
Set Train or Cargo Indicator
Decision Rules
📊 Business Logic Narrative
When the process 'Set Train or Cargo Indicator' is invoked, and assuming that a customs response is being logged for either train or cargo, when the system sets the entity type indicator, the desired outcome is that if processing train data then train indicator is set, otherwise cargo indicator is set.
💻 Technical Criteria
Given
A customs response is being logged for either train or cargo
When
The system sets the entity type indicator
Then
If processing train data then train indicator is set, otherwise cargo indicator is set
R-GCX015E-cbl-00219
Add Status Message
Decision Rules
📊 Business Logic Narrative
When the process 'Add Status Message' is invoked, and assuming that a customs response log entry needs a status message, when the system adds the status message, the desired outcome is that if entity is cargo then cargo log message is used, else if entity is train then train log message is used, else if status should not be updated then no-update log message is used.
💻 Technical Criteria
Given
A customs response log entry needs a status message
When
The system adds the status message
Then
If entity is cargo then cargo log message is used, else if entity is train then train log message is used, else if status should not be updated then no-update log message is used
R-GCX015E-cbl-00221
Process Next K1 Message
Process Rules
📊 Business Logic Narrative
When the process 'Process Next K1 Message' is invoked, and assuming that multiple k1 messages exist for logging, when the system processes additional k1 messages, the desired outcome is that for each k1 message that is not empty and counter is less than or equal to 999, a separate log entry is created and sent.
💻 Technical Criteria
Given
Multiple K1 messages exist for logging
When
The system processes additional K1 messages
Then
For each K1 message that is not empty and counter is less than or equal to 999, a separate log entry is created and sent
R-GCX015E-cbl-00222
Create Additional Log Entry
Process Rules
📊 Business Logic Narrative
When the process 'Create Additional Log Entry' is invoked, and assuming that a non-empty k1 message needs to be logged, when the system creates an individual k1 log entry, the desired outcome is that the log entry contains the same transaction context with train/cargo identifier, action code 'zzz', and the specific k1 message content.
💻 Technical Criteria
Given
A non-empty K1 message needs to be logged
When
The system creates an individual K1 log entry
Then
The log entry contains the same transaction context with train/cargo identifier, action code 'ZZZ', and the specific K1 message content
R-GCX015E-cbl-00223
Retrieve T1 Table Entry
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve T1 Table Entry' is invoked, and assuming that a manifest processing request is initiated, when the system needs to update manifest acknowledgment timestamps, the desired outcome is that the t1 table entry is retrieved using table id 't1' and empty sequence id.
💻 Technical Criteria
Given
A manifest processing request is initiated
When
The system needs to update manifest acknowledgment timestamps
Then
The T1 table entry is retrieved using table ID 'T1' and empty sequence ID
R-GCX015E-cbl-00239
Initialize Car Counter
Process Rules
📊 Business Logic Narrative
When the process 'Initialize Car Counter' is invoked, and assuming that the system is preparing to load car information, when car processing begins, the desired outcome is that the car counter must be initialized to 1 and the secondary counter must be initialized to 2.
💻 Technical Criteria
Given
The system is preparing to load car information
When
Car processing begins
Then
The car counter must be initialized to 1 and the secondary counter must be initialized to 2
R-GCX015E-cbl-00240
Skip Container Car
Validation Rules
📊 Business Logic Narrative
When the process 'Skip Container Car' is invoked, and assuming that a car in the train has a container indicator, when the system processes car information for customs, the desired outcome is that cars with container indicator 'c' must be skipped and not included in the customs transaction.
💻 Technical Criteria
Given
A car in the train has a container indicator
When
The system processes car information for customs
Then
Cars with container indicator 'C' must be skipped and not included in the customs transaction
R-GCX015E-cbl-00241
Load Car Initial and Number
Process Rules
📊 Business Logic Narrative
When the process 'Load Car Initial and Number' is invoked, and assuming that a non-container car exists in the train, when the system loads car information, the desired outcome is that the car initial must be loaded from the equipment initial and the car number must be loaded from the equipment number converted to 6-digit format.
💻 Technical Criteria
Given
A non-container car exists in the train
When
The system loads car information
Then
The car initial must be loaded from the equipment initial and the car number must be loaded from the equipment number converted to 6-digit format
R-GCX015E-cbl-00242
Set Car Load/Empty Indicator
Decision Rules
📊 Business Logic Narrative
When the process 'Set Car Load/Empty Indicator' is invoked, and assuming that a car is being processed for customs transaction, when the system determines the load/empty indicator, the desired outcome is that if the car position exceeds the total equipment quantity, use the car's load/empty code; otherwise, if the next car is a container, set indicator to 'l', else use the current car's load/empty code.
💻 Technical Criteria
Given
A car is being processed for customs transaction
When
The system determines the load/empty indicator
Then
If the car position exceeds the total equipment quantity, use the car's load/empty code; otherwise, if the next car is a container, set indicator to 'L', else use the current car's load/empty code
R-GCX015E-cbl-00243
Set Car Type Information
Decision Rules
📊 Business Logic Narrative
When the process 'Set Car Type Information' is invoked, and assuming that a car has an equipment type designation, when the system sets car type information, the desired outcome is that if equipment type is 'lo', set car kind to 'l'; if equipment type is 'et', set car kind to 'e'; otherwise, set car kind to spaces.
💻 Technical Criteria
Given
A car has an equipment type designation
When
The system sets car type information
Then
If equipment type is 'LO', set car kind to 'L'; if equipment type is 'ET', set car kind to 'E'; otherwise, set car kind to spaces
R-GCX015E-cbl-00244
More Cars to Process?
Process Rules
📊 Business Logic Narrative
When the process 'More Cars to Process?' is invoked, and assuming that the system is processing cars in a train, when the system checks for more cars to process, the desired outcome is that continue processing while the car counter is less than or equal to the equipment quantity and the secondary counter is less than or equal to 500.
💻 Technical Criteria
Given
The system is processing cars in a train
When
The system checks for more cars to process
Then
Continue processing while the car counter is less than or equal to the equipment quantity and the secondary counter is less than or equal to 500
R-GCX015E-cbl-00253
Store Message for Logging
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Store Message for Logging', assuming that a k1 message segment is being processed, when the k1 free form message text field is not empty, the desired outcome is that the message text is stored in the logging array and the message counter is incremented.
💻 Technical Criteria
EXCLUDING
A K1 message segment is being processed
When
The K1 free form message text field is not empty
Then
The message text is stored in the logging array and the message counter is incremented
R-GCX015E-cbl-00271
Determine Message Type
Decision Rules
📊 Business Logic Narrative
When the process 'Determine Message Type' is invoked, and assuming that audit log information is being prepared and processing type has been determined, when message type is being determined for logging, the desired outcome is that if ws-train flag is set, then gcx105-us-train is set to true, otherwise gcx105-us-cargo is set to true.
💻 Technical Criteria
Given
Audit log information is being prepared and processing type has been determined
When
Message type is being determined for logging
Then
If WS-TRAIN flag is set, then GCX105-US-TRAIN is set to true, otherwise GCX105-US-CARGO is set to true
R-GCX015E-cbl-00274
Format Main Status Message
Decision Rules
📊 Business Logic Narrative
When the process 'Format Main Status Message' is invoked, and assuming that a main status message is being formatted and processing type is determined, when status message is being formatted, the desired outcome is that if processing cargo, then uscs-log-message1 is used; if processing train, then uscs-log-message2 is used; if should not update status, then uscs-log-message3 is used.
💻 Technical Criteria
Given
A main status message is being formatted and processing type is determined
When
Status message is being formatted
Then
If processing cargo, then USCS-LOG-MESSAGE1 is used; if processing train, then USCS-LOG-MESSAGE2 is used; if should not update status, then USCS-LOG-MESSAGE3 is used
R-GCX015E-cbl-00278
Format Main Status Message
Process Rules
📊 Business Logic Narrative
When the process 'Format Main Status Message' is invoked, and assuming that a system abend condition has occurred and error message exists in cccom, when abend audit log entry is being generated, the desired outcome is that the message is set to the error message, train/cargo identifier is set to 'gcx015er-abend', cargo type is set, action code is set to 'zzz', and current date/time information is captured.
💻 Technical Criteria
Given
A system abend condition has occurred and error message exists in CCCOM
When
Abend audit log entry is being generated
Then
The message is set to the error message, train/cargo identifier is set to 'GCX015ER-ABEND', cargo type is set, action code is set to 'ZZZ', and current date/time information is captured
R-GCX015E-cbl-00280
Initialize Cargo Key Structure
Process Rules
📊 Business Logic Narrative
When the process 'Initialize Cargo Key Structure' is invoked, and assuming that an m11 segment needs to be processed for cargo identification, when the system begins extracting cargo key information, the desired outcome is that the cargo key work area should be initialized to spaces.
💻 Technical Criteria
Given
An M11 segment needs to be processed for cargo identification
When
The system begins extracting cargo key information
Then
The cargo key work area should be initialized to spaces
R-GCX015E-cbl-00281
Extract SCAC Code from M11-12
Definitional Rules
📊 Business Logic Narrative
When the process 'Extract SCAC Code from M11-12' is invoked, and assuming that an m11 segment contains cargo information, when the system extracts the scac code, the desired outcome is that the m11-12-scac value should be moved to the work-scac field.
💻 Technical Criteria
Given
An M11 segment contains cargo information
When
The system extracts the SCAC code
Then
The M11-12-SCAC value should be moved to the WORK-SCAC field
R-GCX015E-cbl-00283
Build Complete Cargo Key
Computation Rules
📊 Business Logic Narrative
When the process 'Build Complete Cargo Key' is invoked, and assuming that scac code and bill number have been extracted from m11 segment, when the system builds the complete cargo key, the desired outcome is that the work-cargo-key should be moved to work-m10-12-data for further processing.
💻 Technical Criteria
Given
SCAC code and bill number have been extracted from M11 segment
When
The system builds the complete cargo key
Then
The WORK-CARGO-KEY should be moved to WORK-M10-12-DATA for further processing
R-GCX015E-cbl-00284
Set Processing Type to Cargo
Decision Rules
📊 Business Logic Narrative
When the process 'Set Processing Type to Cargo' is invoked, and assuming that m11 segment has been successfully processed and cargo key has been built, when the system determines the processing type, the desired outcome is that the processing type should be set to cargo (ws-cargo).
💻 Technical Criteria
Given
M11 segment has been successfully processed and cargo key has been built
When
The system determines the processing type
Then
The processing type should be set to cargo (WS-CARGO)
R-GCX015E-cbl-00292
Check M10 Reference Number
Decision Rules
📊 Business Logic Narrative
When the process 'Check M10 Reference Number' is invoked, and assuming that a message with m10 segment is being processed, when the m10 table reference number equals 'traincprstesttrain0000000000' or 'cargocprs940000000000', the desired outcome is that the message is identified as a special test message.
💻 Technical Criteria
Given
A message with M10 segment is being processed
When
The M10 table reference number equals 'TRAINCPRSTESTTRAIN0000000000' OR 'CARGOCPRS940000000000'
Then
The message is identified as a special test message
R-GCX015E-cbl-00297
Update T1 Table Timestamps
Action Rules
📊 Business Logic Narrative
When the process 'Update T1 Table Timestamps' is invoked, and assuming that a special test message requires t1 table updates, when the system needs to access t1 table data, the desired outcome is that t1 table segment is retrieved using table id 't1' with empty sequence id and if retrieval fails then system abends with error message 't1 check table entry not found'.
💻 Technical Criteria
Given
A special test message requires T1 table updates
When
The system needs to access T1 table data
Then
T1 table segment is retrieved using table ID 'T1' with empty sequence ID AND if retrieval fails then system abends with error message 'T1 CHECK TABLE ENTRY NOT FOUND'
R-GCX015E-cbl-00448
Check M10 Reference Number
Decision Rules
📊 Business Logic Narrative
When the process 'Check M10 Reference Number' is invoked, and assuming that a message with m10 segment is being processed, when the m10 reference number matches 'traincprstesttrain0000000000' or 'cargocprs940000000000' patterns, the desired outcome is that the system triggers special test processing workflow.
💻 Technical Criteria
Given
A message with M10 segment is being processed
When
The M10 reference number matches 'TRAINCPRSTESTTRAIN0000000000' OR 'CARGOCPRS940000000000' patterns
Then
The system triggers special test processing workflow
R-GCX015E-cbl-00449
Retrieve T1 Table Configuration
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve T1 Table Configuration' is invoked, and assuming that a test message pattern has been detected, when the system needs to update acknowledgment timestamps, the desired outcome is that the system retrieves t1 table configuration using table id 't1' and empty sequence id.
💻 Technical Criteria
Given
A test message pattern has been detected
When
The system needs to update acknowledgment timestamps
Then
The system retrieves T1 table configuration using table ID 'T1' and empty sequence ID
R-GCX015E-cbl-00534
Retrieve T1 Table Segment
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve T1 Table Segment' is invoked, and assuming that a manifest processing request is initiated, when the system needs to access t1 table configuration data, the desired outcome is that the system retrieves the t1 table segment using table id 't1' with empty sequence id.
💻 Technical Criteria
Given
A manifest processing request is initiated
When
The system needs to access T1 table configuration data
Then
The system retrieves the T1 table segment using table ID 'T1' with empty sequence ID
R-GCX015E-cbl-00457
Retrieve T1 Table Entry
Action Rules
📊 Business Logic Narrative
When the process 'Retrieve T1 Table Entry' is invoked, and assuming that a manifest processing request is initiated, when the system needs to update acknowledgment timestamps, the desired outcome is that the system retrieves the t1 table entry using table id 't1' and empty sequence id.
💻 Technical Criteria
Given
A manifest processing request is initiated
When
The system needs to update acknowledgment timestamps
Then
The system retrieves the T1 table entry using table ID 'T1' and empty sequence ID
R-GCX015E-cbl-00304
Restore Previous Status from Save Fields
Decision Rules
📊 Business Logic Narrative
When the process 'Restore Previous Status from Save Fields' is invoked, and assuming that a cargo record is being processed with acknowledgment status, when the system checks for previously saved status information, the desired outcome is that if saved status description exists, restore the saved status and description to current fields, otherwise set cargo status to acknowledgment.
💻 Technical Criteria
Given
A cargo record is being processed with acknowledgment status
When
The system checks for previously saved status information
Then
If saved status description exists, restore the saved status and description to current fields, otherwise set cargo status to acknowledgment
R-GCX015E-cbl-00305
Set Cargo Status to ACK
Action Rules
📊 Business Logic Narrative
When the process 'Set Cargo Status to ACK' is invoked, and assuming that a cargo record is being processed with acknowledgment status and saved status description is empty, when the system processes the status update, the desired outcome is that set both uscargo status fields to acknowledgment status.
💻 Technical Criteria
Given
A cargo record is being processed with acknowledgment status and saved status description is empty
When
The system processes the status update
Then
Set both USCARGO status fields to acknowledgment status
R-GCX015E-cbl-00306
Move Saved Status to Current Status
Action Rules
📊 Business Logic Narrative
When the process 'Move Saved Status to Current Status' is invoked, and assuming that a cargo record has saved status and description information available, when the system processes status restoration, the desired outcome is that move saved status to current uscargo status field and move saved description to current uscargo description field.
💻 Technical Criteria
Given
A cargo record has saved status and description information available
When
The system processes status restoration
Then
Move saved status to current USCARGO status field and move saved description to current USCARGO description field
R-GCX015E-cbl-00307
Save Current Status to RT44-US-SAVE-STATUS
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Save Current Status to RT44-US-SAVE-STATUS', assuming that a cargo record exists with current status and description, when an error status is being set and the current status is not already error, ack, or ack-r, the desired outcome is that save the current status to rt44-us-save-status field.
💻 Technical Criteria
EXCLUDING
A cargo record exists with current status and description
When
An error status is being set AND the current status is not already ERROR, ACK, or ACK-R
Then
Save the current status to RT44-US-SAVE-STATUS field
R-GCX015E-cbl-00308
Save Current Description to RT45-US-SAVE-STAT-DESC
Process Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Save Current Description to RT45-US-SAVE-STAT-DESC', assuming that a cargo record exists with current status description, when an error status is being set and the current status is not already error, ack, or ack-r, the desired outcome is that save the current status description to rt45-us-save-stat-desc field.
💻 Technical Criteria
EXCLUDING
A cargo record exists with current status description
When
An error status is being set AND the current status is not already ERROR, ACK, or ACK-R
Then
Save the current status description to RT45-US-SAVE-STAT-DESC field
R-GCX015E-cbl-00309
Skip Save - Status Already Error/ACK
Decision Rules
📊 Business Logic Narrative
When the process 'Skip Save - Status Already Error/ACK' is invoked, and assuming that a cargo record has current status of error, ack, or ack-r, when an error status update is being processed, the desired outcome is that skip saving the current status and description to preserve previously saved values.
💻 Technical Criteria
Given
A cargo record has current status of ERROR, ACK, or ACK-R
When
An error status update is being processed
Then
Skip saving the current status and description to preserve previously saved values
R-GCX015E-cbl-00330
Get Freight Forwarder Name from Cargo Data
Action Rules
📊 Business Logic Narrative
When the process 'Get Freight Forwarder Name from Cargo Data' is invoked, and assuming that a cargo shipment record exists with freight forwarder information in gcus-n102-name field, when the system needs to retrieve broker contact information for the freight forwarder, the desired outcome is that the freight forwarder name is extracted from gcus-n102-name and used to build the broker lookup key.
💻 Technical Criteria
Given
A cargo shipment record exists with freight forwarder information in GCUS-N102-NAME field
When
The system needs to retrieve broker contact information for the freight forwarder
Then
The freight forwarder name is extracted from GCUS-N102-NAME and used to build the broker lookup key
R-GCX015E-cbl-00331
Build Broker Key with FW= Prefix
Definitional Rules
📊 Business Logic Narrative
When the process 'Build Broker Key with FW= Prefix' is invoked, and assuming that a freight forwarder name is available from the cargo data, when the system builds a broker lookup key for database retrieval, the desired outcome is that the key is constructed by concatenating 'fw=' prefix with the freight forwarder name and stored in gcwusio-gcst2rt-key.
💻 Technical Criteria
Given
A freight forwarder name is available from the cargo data
When
The system builds a broker lookup key for database retrieval
Then
The key is constructed by concatenating 'FW=' prefix with the freight forwarder name and stored in GCWUSIO-GCST2RT-KEY
R-GCX015E-cbl-00333
Broker Short Name Found?
Validation Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Broker Short Name Found?', assuming that a broker lookup has been performed on the gcst2rt table, when the database query returns a status code indicating the broker was not found, the desired outcome is that the broker name segment is initialized to empty values and processing continues.
💻 Technical Criteria
EXCLUDING
A broker lookup has been performed on the GCST2RT table
When
The database query returns a status code indicating the broker was not found
Then
The broker name segment is initialized to empty values and processing continues
R-GCX015E-cbl-00334
Build Broker Info Key with Short Name and Location
Definitional Rules
📊 Business Logic Narrative
When the process 'Build Broker Info Key with Short Name and Location' is invoked, and assuming that a valid broker short name exists and location information is available from cargo data, when the system needs to retrieve detailed broker contact information, the desired outcome is that a lookup key is built by concatenating broker short name with either m1203-location-id1 or p401-location-id and stored in gcstbrt-key-seqid.
💻 Technical Criteria
Given
A valid broker short name exists and location information is available from cargo data
When
The system needs to retrieve detailed broker contact information
Then
A lookup key is built by concatenating broker short name with either M1203-LOCATION-ID1 or P401-LOCATION-ID and stored in GCSTBRT-KEY-SEQID
R-GCX015E-cbl-00336
Broker Details Found?
Validation Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Broker Details Found?', assuming that a broker details lookup has been performed on the bk table, when the database query returns a non-zero status code indicating broker details were not found, the desired outcome is that the broker details segment is initialized to empty values and processing terminates.
💻 Technical Criteria
EXCLUDING
A broker details lookup has been performed on the BK table
When
The database query returns a non-zero status code indicating broker details were not found
Then
The broker details segment is initialized to empty values and processing terminates
R-GCX015E-cbl-00338
Internet Address Found?
Validation Rules
📊 Business Logic Narrative
<EXCLUSION LOGIC> For the process 'Internet Address Found?', assuming that an internet address lookup has been performed on the b1 table, when the database query returns a non-zero status code indicating internet address was not found, the desired outcome is that the internet address segment is initialized to empty values and processing terminates.
💻 Technical Criteria
EXCLUDING
An internet address lookup has been performed on the B1 table
When
The database query returns a non-zero status code indicating internet address was not found
Then
The internet address segment is initialized to empty values and processing terminates
R-GCX015E-cbl-00342
Get Freight Forwarder Data
Process Rules
📊 Business Logic Narrative
When the process 'Get Freight Forwarder Data' is invoked, and assuming that a cargo record exists with secondary segments containing party information, when the system processes secondary segments with record type '03' for freight forwarder (n101 code) and consignee information, the desired outcome is that the system identifies freight forwarder when n101 code indicates forwarder role and captures consignee name when n101 code indicates consignee role.
💻 Technical Criteria
Given
A cargo record exists with secondary segments containing party information
When
The system processes secondary segments with record type '03' for freight forwarder (N101 code) and consignee information
Then
The system identifies freight forwarder when N101 code indicates forwarder role and captures consignee name when N101 code indicates consignee role
R-GCX015E-cbl-00343
Get Broker Short Name
Action Rules
📊 Business Logic Narrative
When the process 'Get Broker Short Name' is invoked, and assuming that a freight forwarder name has been identified from cargo segments, when the system searches the broker name table using 'fw=' prefix concatenated with the freight forwarder name, the desired outcome is that the system retrieves the corresponding broker short name if found, otherwise initializes empty broker name segment.
💻 Technical Criteria
Given
A freight forwarder name has been identified from cargo segments
When
The system searches the broker name table using 'FW=' prefix concatenated with the freight forwarder name
Then
The system retrieves the corresponding broker short name if found, otherwise initializes empty broker name segment
R-GCX015E-cbl-00346
Format Equipment Information Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Equipment Information Line' is invoked, and assuming that cargo equipment information is available from the cargo record, when the system formats equipment information for email content, the desired outcome is that the system includes the car identification number in the formatted equipment line.
💻 Technical Criteria
Given
Cargo equipment information is available from the cargo record
When
The system formats equipment information for email content
Then
The system includes the car identification number in the formatted equipment line
R-GCX015E-cbl-00348
Format Load/Empty Indicator Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Load/Empty Indicator Line' is invoked, and assuming that equipment load/empty status is available in the cargo record, when the system formats load/empty indicator for email content, the desired outcome is that the system includes the load/empty code in the formatted indicator line.
💻 Technical Criteria
Given
Equipment load/empty status is available in the cargo record
When
The system formats load/empty indicator for email content
Then
The system includes the load/empty code in the formatted indicator line
R-GCX015E-cbl-00349
Format Content Description Line
Process Rules
📊 Business Logic Narrative
When the process 'Format Content Description Line' is invoked, and assuming that cargo content description is available in the system, when the system formats content description for email content, the desired outcome is that the system includes the long description of the cargo content in the formatted content line.
💻 Technical Criteria
Given
Cargo content description is available in the system
When
The system formats content description for email content
Then
The system includes the long description of the cargo content in the formatted content line