πŸ”
← Back to Categories

CCISCOM Sequence (Canada Cargo/Train Manifest response - EDI350)

Objective: This COBOL program serves as a data conversion utility that transforms communication areas between two different system interface table (SIT) versions - CCCOM and ISCOM formats. The program provides bidirectional conversion functionality, allowing calls to and from SIT V1 modules by mapping database PCB (Program Communication Block) addresses and common area data between the two interface formats.
πŸ—ΊοΈ High-Level Visual Map
flowchart TD
    A[Program Start]:::start
    B{ISCOM Version Already Set?}:::decision
    C[1:Version Check and Data Transfer]:::process
    D[2:ISCOM Initialization]:::process
    E[3:Cross-Reference Address Setup]:::process
    F[4:PCB Transfer]:::process
    G[5:Database Name Scanning]:::process
    H[6:PCB Number Processing]:::process
    I[7:Database Name Matching]:::process
    J[8:PCB Counter Management]:::process
    K[9:PCB Address Mapping]:::process
    L[Program End - Forward Conversion]:::final
    
    M[Reverse Conversion Entry Point]:::start
    N{CCCOM Version Already Set?}:::decision
    O[10:Reverse Conversion Version Check]:::process
    P[11:Reverse Data Transfer]:::process
    Q[12:Reverse PCB Transfer]:::process
    R[13:Active PCB Identification]:::process
    S[14:PCB Sequence Numbering]:::process
    T[15:Database Entry Creation]:::process
    U[16:Reverse PCB Address Mapping]:::process
    V[17:Database Number Assignment]:::process
    W[Program End - Reverse Conversion]:::final
    
    CCCOM[(CCCOM Structure)]:::datasource
    ISCOM[(ISCOM Structure)]:::datasource
    
    A --> B
    B -->|Yes| C
    B -->|No| D
    C --> L
    D --> E
    E --> F
    F --> G
    G --> H
    H --> I
    I --> J
    J --> K
    K --> L
    
    M --> N
    N -->|Yes| O
    N -->|No| P
    O --> W
    P --> Q
    Q --> R
    R --> S
    S --> T
    T --> U
    U --> V
    V --> W
    
    CCCOM -.->|Read Data| C
    CCCOM -.->|Read Data| D
    CCCOM -.->|Read PCB Info| F
    CCCOM -.->|Read DB Names| G
    CCCOM -.->|Read PCB Numbers| H
    CCCOM -.->|Read DB Names| I
    CCCOM -.->|Read PCB Addresses| K
    
    ISCOM -.->|Write Data| C
    ISCOM -.->|Initialize| D
    ISCOM -.->|Write PCB Info| F
    ISCOM -.->|Write DB Names| I
    ISCOM -.->|Write PCB Counter| J
    ISCOM -.->|Write PCB Addresses| K
    
    ISCOM -.->|Read Data| O
    ISCOM -.->|Read Data| P
    ISCOM -.->|Read PCB Info| Q
    ISCOM -.->|Read PCB Addresses| R
    ISCOM -.->|Read DB Names| S
    ISCOM -.->|Read PCB Addresses| U
    
    CCCOM -.->|Write Data| O
    CCCOM -.->|Write Data| P
    CCCOM -.->|Write PCB Info| Q
    CCCOM -.->|Write DB Names| T
    CCCOM -.->|Write PCB Addresses| U
    CCCOM -.->|Write DB Numbers| V

    classDef start fill:#67A353
    classDef process fill:#08AAD2
    classDef decision fill:#FFE347
    classDef datasource fill:#2EA597
    classDef final fill:#D13313
                
πŸ“‹ Step-by-Step Logic Trace
βœ“ Consolidated Acceptance Criteria
  • The SIT version in ISCOM matches the working storage ISCOM version → copy common area from CCCOM to ISCOM and update ISCOM SIT version to working storage version
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_1VersionCheckandDataTransfer(["Start Step"]) E_1VersionCheckandDataTransfer(["End Step"]) N_1VersionCheckandDataTransfer_Node0{"The SIT version in ISCOM matches
the working storage ISCOM version"}:::decision N_1VersionCheckandDataTransfer_Node0_action["Copy common area from CCCOM to
ISCOM and update ISCOM SIT version
to working storage version"]:::main N_1VersionCheckandDataTransfer_Node0 -- Yes --> N_1VersionCheckandDataTransfer_Node0_action N_1VersionCheckandDataTransfer_Node0_action --> E_1VersionCheckandDataTransfer S_1VersionCheckandDataTransfer --> N_1VersionCheckandDataTransfer_Node0 N_1VersionCheckandDataTransfer_Node0 -- No --> E_1VersionCheckandDataTransfer
File: CCISCOM.cbl
GIVEN: ISCOM structure exists with a SIT version field and CCCOM structure contains common area data
WHEN: The SIT version in ISCOM matches the working storage ISCOM version
THEN:
  • Copy common area from cccom to iscom
  • Update iscom sit version to working storage version
βœ“ Consolidated Acceptance Criteria
  • The SIT version in ISCOM does not match the working storage ISCOM version → initialize ISCOM with default values from ISCOMVAL, copy common area from CCCOM, and update SIT version
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_2ISCOMInitialization(["Start Step"]) E_2ISCOMInitialization(["End Step"]) N_2ISCOMInitialization_Node0{"The SIT version in ISCOM does not
match the working storage ISCOM
version"}:::decision N_2ISCOMInitialization_Node0_action["Initialize ISCOM with default
values from ISCOMVAL, copy common
area from CCCOM, and update SIT
version"]:::main N_2ISCOMInitialization_Node0 -- Yes --> N_2ISCOMInitialization_Node0_action N_2ISCOMInitialization_Node0_action --> E_2ISCOMInitialization S_2ISCOMInitialization --> N_2ISCOMInitialization_Node0 N_2ISCOMInitialization_Node0 -- No --> E_2ISCOMInitialization
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: ISCOM structure exists with incompatible SIT version and CCCOM structure contains source data
WHEN: The SIT version in ISCOM does not match the working storage ISCOM version
THEN: Initialize ISCOM with default values from ISCOMVAL, copy common area from CCCOM, and update SIT version
βœ“ Consolidated Acceptance Criteria
  • ISCOM version mismatch triggers full initialization process → set CCCOM address in ISCOM structure and set ISCOM address in CCCOM structure
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_3CrossReferenceAddressSetup(["Start Step"]) E_3CrossReferenceAddressSetup(["End Step"]) N_3CrossReferenceAddressSetup_Node0{"ISCOM version mismatch triggers
full initialization process"}:::decision N_3CrossReferenceAddressSetup_Node0_action["Set CCCOM address in ISCOM
structure and set ISCOM address in
CCCOM structure"]:::main N_3CrossReferenceAddressSetup_Node0 -- Yes --> N_3CrossReferenceAddressSetup_Node0_action N_3CrossReferenceAddressSetup_Node0_action --> E_3CrossReferenceAddressSetup S_3CrossReferenceAddressSetup --> N_3CrossReferenceAddressSetup_Node0 N_3CrossReferenceAddressSetup_Node0 -- No --> E_3CrossReferenceAddressSetup
File: CCISCOM.cbl
GIVEN: CCCOM and ISCOM structures require cross-referencing for communication
WHEN: ISCOM version mismatch triggers full initialization process
THEN:
  • Set cccom address in iscom structure
  • Set iscom address in cccom structure
βœ“ Consolidated Acceptance Criteria
  • Full ISCOM initialization is required due to version mismatch → copy LT-PCBS data from CCCOM to ISCOM structure
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_4PCBTransfer(["Start Step"]) E_4PCBTransfer(["End Step"]) N_4PCBTransfer_Node0{"Full ISCOM initialization is
required due to version mismatch"}:::decision N_4PCBTransfer_Node0_action["Copy LT-PCBS data from CCCOM to
ISCOM structure"]:::main N_4PCBTransfer_Node0 -- Yes --> N_4PCBTransfer_Node0_action N_4PCBTransfer_Node0_action --> E_4PCBTransfer S_4PCBTransfer --> N_4PCBTransfer_Node0 N_4PCBTransfer_Node0 -- No --> E_4PCBTransfer
File: CCISCOM.cbl
GIVEN: CCCOM contains LT-PCBS information and ISCOM requires PCB data
WHEN: Full ISCOM initialization is required due to version mismatch
THEN: Copy LT-PCBS data from CCCOM to ISCOM structure
βœ“ Consolidated Acceptance Criteria
  • Database address scanning is initiated during ISCOM initialization → process each CCCOM entry from position 1 until reaching table size limit or finding empty database name
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_5DatabaseNameScanning(["Start Step"]) E_5DatabaseNameScanning(["End Step"]) N_5DatabaseNameScanning_Node0{"Database address scanning is
initiated during ISCOM
initialization"}:::decision N_5DatabaseNameScanning_Node0_action["Process each CCCOM entry from
position 1 until reaching table size
limit or finding empty database name"]:::main N_5DatabaseNameScanning_Node0 -- Yes --> N_5DatabaseNameScanning_Node0_action N_5DatabaseNameScanning_Node0_action --> E_5DatabaseNameScanning S_5DatabaseNameScanning --> N_5DatabaseNameScanning_Node0 N_5DatabaseNameScanning_Node0 -- No --> E_5DatabaseNameScanning
File: CCISCOM.cbl
GIVEN: CCCOM table contains database entries with names and CCCOM-TABLE-SIZE defines maximum entries
WHEN: Database address scanning is initiated during ISCOM initialization
THEN: Process each CCCOM entry from position 1 until reaching table size limit or finding empty database name
βœ“ Consolidated Acceptance Criteria
  • Processing a CCCOM database entry during scanning → initialize ISCOM PCB number to zero, copy database number from CCCOM, and if database number is spaces then set CCCOM PCB number to '1'
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_6PCBNumberProcessing(["Start Step"]) E_6PCBNumberProcessing(["End Step"]) N_6PCBNumberProcessing_Node0{"Processing a CCCOM database entry
during scanning"}:::decision N_6PCBNumberProcessing_Node0_action["Initialize ISCOM PCB number to
zero, copy database number from
CCCOM, and if database number is
spaces then set CCCOM PCB number to
1"]:::main N_6PCBNumberProcessing_Node0 -- Yes --> N_6PCBNumberProcessing_Node0_action N_6PCBNumberProcessing_Node0_action --> E_6PCBNumberProcessing S_6PCBNumberProcessing --> N_6PCBNumberProcessing_Node0 N_6PCBNumberProcessing_Node0 -- No --> E_6PCBNumberProcessing
File: CCISCOM.cbl
GIVEN: CCCOM entry contains database number field that may be empty or contain spaces
WHEN: Processing a CCCOM database entry during scanning
THEN: Initialize ISCOM PCB number to zero, copy database number from CCCOM, and if database number is spaces then set CCCOM PCB number to '1'
βœ“ Consolidated Acceptance Criteria
  • Scanning ISCOM table for matching database names during address mapping → process each ISCOM entry from position 1 until reaching table size limit or finding empty database name
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_7DatabaseNameMatching(["Start Step"]) E_7DatabaseNameMatching(["End Step"]) N_7DatabaseNameMatching_Node0{"Scanning ISCOM table for matching
database names during address
mapping"}:::decision N_7DatabaseNameMatching_Node0_action["Process each ISCOM entry from
position 1 until reaching table size
limit or finding empty database name"]:::main N_7DatabaseNameMatching_Node0 -- Yes --> N_7DatabaseNameMatching_Node0_action N_7DatabaseNameMatching_Node0_action --> E_7DatabaseNameMatching S_7DatabaseNameMatching --> N_7DatabaseNameMatching_Node0 N_7DatabaseNameMatching_Node0 -- No --> E_7DatabaseNameMatching
File: CCISCOM.cbl
GIVEN: CCCOM entry has database name and ISCOM table contains database entries with names
WHEN: Scanning ISCOM table for matching database names during address mapping
THEN: Process each ISCOM entry from position 1 until reaching table size limit or finding empty database name
βœ“ Consolidated Acceptance Criteria
  • Database names are identical between CCCOM entry and ISCOM entry → increment ISCOM PCB number by 1
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_8PCBCounterManagement(["Start Step"]) E_8PCBCounterManagement(["End Step"]) N_8PCBCounterManagement_Node0{"Database names are identical
between CCCOM entry and ISCOM entry"}:::decision N_8PCBCounterManagement_Node0_action["Increment ISCOM PCB number by 1"]:::main N_8PCBCounterManagement_Node0 -- Yes --> N_8PCBCounterManagement_Node0_action N_8PCBCounterManagement_Node0_action --> E_8PCBCounterManagement S_8PCBCounterManagement --> N_8PCBCounterManagement_Node0 N_8PCBCounterManagement_Node0 -- No --> E_8PCBCounterManagement
File: CCISCOM.cbl
GIVEN: CCCOM database name matches ISCOM database name during scanning process
WHEN:
  • Database names are identical between cccom entry
  • Iscom entry
THEN: Increment ISCOM PCB number by 1
βœ“ Consolidated Acceptance Criteria
  • PCB numbers match after incrementing ISCOM PCB counter → set PCB address in ISCOM entry to match PCB address from corresponding CCCOM entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_9PCBAddressMapping(["Start Step"]) E_9PCBAddressMapping(["End Step"]) N_9PCBAddressMapping_Node0{"PCB numbers match after
incrementing ISCOM PCB counter"}:::decision N_9PCBAddressMapping_Node0_action["Set PCB address in ISCOM entry to
match PCB address from corresponding
CCCOM entry"]:::main N_9PCBAddressMapping_Node0 -- Yes --> N_9PCBAddressMapping_Node0_action N_9PCBAddressMapping_Node0_action --> E_9PCBAddressMapping S_9PCBAddressMapping --> N_9PCBAddressMapping_Node0 N_9PCBAddressMapping_Node0 -- No --> E_9PCBAddressMapping
File: CCISCOM.cbl
GIVEN: ISCOM PCB number equals CCCOM PCB number for matching database names
WHEN: PCB numbers match after incrementing ISCOM PCB counter
THEN: Set PCB address in ISCOM entry to match PCB address from corresponding CCCOM entry
βœ“ Consolidated Acceptance Criteria
  • Reverse conversion entry point is accessed and CCCOM SIT version matches working storage CCCOM version → copy common area from ISCOM to CCCOM and update CCCOM SIT version to working storage version
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_10ReverseConversionVersionCheck(["Start Step"]) E_10ReverseConversionVersionCheck(["End Step"]) N_10ReverseConversionVersionCheck_Node0{"Reverse conversion entry point is
accessed and CCCOM SIT version
matches working storage CCCOM
version"}:::decision N_10ReverseConversionVersionCheck_Node0_action["Copy common area from ISCOM to
CCCOM and update CCCOM SIT version
to working storage version"]:::main N_10ReverseConversionVersionCheck_Node0 -- Yes --> N_10ReverseConversionVersionCheck_Node0_action N_10ReverseConversionVersionCheck_Node0_action --> E_10ReverseConversionVersionCheck S_10ReverseConversionVersionCheck --> N_10ReverseConversionVersionCheck_Node0 N_10ReverseConversionVersionCheck_Node0 -- No --> E_10ReverseConversionVersionCheck
File: CCISCOM.cbl
GIVEN: CCCOM structure exists with SIT version field and ISCOM structure contains source data
WHEN:
  • Reverse conversion entry point is accessed
  • Cccom sit version matches working storage cccom version
THEN:
  • Copy common area from iscom to cccom
  • Update cccom sit version to working storage version
βœ“ Consolidated Acceptance Criteria
  • Reverse conversion is initiated with version mismatch → copy common area from ISCOM to CCCOM and update CCCOM SIT version to working storage version
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_11ReverseDataTransfer(["Start Step"]) E_11ReverseDataTransfer(["End Step"]) N_11ReverseDataTransfer_Node0{"Reverse conversion is initiated
with version mismatch"}:::decision N_11ReverseDataTransfer_Node0_action["Copy common area from ISCOM to
CCCOM and update CCCOM SIT version
to working storage version"]:::main N_11ReverseDataTransfer_Node0 -- Yes --> N_11ReverseDataTransfer_Node0_action N_11ReverseDataTransfer_Node0_action --> E_11ReverseDataTransfer S_11ReverseDataTransfer --> N_11ReverseDataTransfer_Node0 N_11ReverseDataTransfer_Node0 -- No --> E_11ReverseDataTransfer
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: CCCOM SIT version does not match working storage version and ISCOM contains source data
WHEN: Reverse conversion is initiated with version mismatch
THEN:
  • Copy common area from iscom to cccom
  • Update cccom sit version to working storage version
βœ“ Consolidated Acceptance Criteria
  • CCCOM version mismatch triggers full reverse initialization → copy LT-PCBS data from ISCOM to CCCOM structure and set up cross-reference addresses
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_12ReversePCBTransfer(["Start Step"]) E_12ReversePCBTransfer(["End Step"]) N_12ReversePCBTransfer_Node0{"CCCOM version mismatch triggers
full reverse initialization"}:::decision N_12ReversePCBTransfer_Node0_action["Copy LT-PCBS data from ISCOM to
CCCOM structure and set up
cross-reference addresses"]:::main N_12ReversePCBTransfer_Node0 -- Yes --> N_12ReversePCBTransfer_Node0_action N_12ReversePCBTransfer_Node0_action --> E_12ReversePCBTransfer S_12ReversePCBTransfer --> N_12ReversePCBTransfer_Node0 N_12ReversePCBTransfer_Node0 -- No --> E_12ReversePCBTransfer
File: CCISCOM.cbl
GIVEN: ISCOM contains LT-PCBS information and CCCOM requires PCB data during reverse conversion
WHEN: CCCOM version mismatch triggers full reverse initialization
THEN:
  • Copy lt-pcbs data from iscom to cccom structure
  • Set up cross-reference addresses
βœ“ Consolidated Acceptance Criteria
  • Scanning ISCOM entries during reverse conversion process → process only entries where PCB address is not equal to zero
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_13ActivePCBIdentification(["Start Step"]) E_13ActivePCBIdentification(["End Step"]) N_13ActivePCBIdentification_Node0{"Scanning ISCOM entries during
reverse conversion process"}:::decision N_13ActivePCBIdentification_Node0_action["Process only entries where PCB
address is not equal to zero"]:::main N_13ActivePCBIdentification_Node0 -- Yes --> N_13ActivePCBIdentification_Node0_action N_13ActivePCBIdentification_Node0_action --> E_13ActivePCBIdentification S_13ActivePCBIdentification --> N_13ActivePCBIdentification_Node0 N_13ActivePCBIdentification_Node0 -- No --> E_13ActivePCBIdentification
File: CCISCOM.cbl
GIVEN: ISCOM table contains entries with PCB address fields that may be zero or non-zero
WHEN: Scanning ISCOM entries during reverse conversion process
THEN: Process only entries where PCB address is not equal to zero
βœ“ Consolidated Acceptance Criteria
  • Processing active ISCOM entry during reverse conversion → initialize ISCOM PCB number to 1 and count matching database names in previous entries to determine sequence number
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_14PCBSequenceNumbering(["Start Step"]) E_14PCBSequenceNumbering(["End Step"]) N_14PCBSequenceNumbering_Node0{"Processing active ISCOM entry
during reverse conversion"}:::decision N_14PCBSequenceNumbering_Node0_action["Initialize ISCOM PCB number to 1
and count matching database names in
previous entries to determine
sequence number"]:::main N_14PCBSequenceNumbering_Node0 -- Yes --> N_14PCBSequenceNumbering_Node0_action N_14PCBSequenceNumbering_Node0_action --> E_14PCBSequenceNumbering S_14PCBSequenceNumbering --> N_14PCBSequenceNumbering_Node0 N_14PCBSequenceNumbering_Node0 -- No --> E_14PCBSequenceNumbering
File: CCISCOM.cbl
GIVEN: ISCOM entry has non-zero PCB address and database name
WHEN: Processing active ISCOM entry during reverse conversion
THEN:
  • Initialize iscom pcb number to 1
  • Count matching database names in previous entries to determine sequence number
βœ“ Consolidated Acceptance Criteria
  • Processing ISCOM entry with non-zero PCB address during reverse conversion → increment CCCOM entry counter and copy database name from ISCOM to CCCOM entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_15DatabaseEntryCreation(["Start Step"]) E_15DatabaseEntryCreation(["End Step"]) N_15DatabaseEntryCreation_Node0{"Processing ISCOM entry with
non-zero PCB address during reverse
conversion"}:::decision N_15DatabaseEntryCreation_Node0_action["Increment CCCOM entry counter and
copy database name from ISCOM to
CCCOM entry"]:::main N_15DatabaseEntryCreation_Node0 -- Yes --> N_15DatabaseEntryCreation_Node0_action N_15DatabaseEntryCreation_Node0_action --> E_15DatabaseEntryCreation S_15DatabaseEntryCreation --> N_15DatabaseEntryCreation_Node0 N_15DatabaseEntryCreation_Node0 -- No --> E_15DatabaseEntryCreation
File: CCISCOM.cbl
GIVEN: Active ISCOM entry contains database name and PCB information
WHEN: Processing ISCOM entry with non-zero PCB address during reverse conversion
THEN:
  • Increment cccom entry counter
  • Copy database name from iscom to cccom entry
βœ“ Consolidated Acceptance Criteria
  • Creating CCCOM database entry from active ISCOM entry → set PCB address in CCCOM entry to match PCB address from ISCOM entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_16ReversePCBAddressMapping(["Start Step"]) E_16ReversePCBAddressMapping(["End Step"]) N_16ReversePCBAddressMapping_Node0{"Creating CCCOM database entry from
active ISCOM entry"}:::decision N_16ReversePCBAddressMapping_Node0_action["Set PCB address in CCCOM entry to
match PCB address from ISCOM entry"]:::main N_16ReversePCBAddressMapping_Node0 -- Yes --> N_16ReversePCBAddressMapping_Node0_action N_16ReversePCBAddressMapping_Node0_action --> E_16ReversePCBAddressMapping S_16ReversePCBAddressMapping --> N_16ReversePCBAddressMapping_Node0 N_16ReversePCBAddressMapping_Node0 -- No --> E_16ReversePCBAddressMapping
File: CCISCOM.cbl
GIVEN: ISCOM entry contains PCB address and corresponding CCCOM entry has been created
WHEN: Creating CCCOM database entry from active ISCOM entry
THEN: Set PCB address in CCCOM entry to match PCB address from ISCOM entry
βœ“ Consolidated Acceptance Criteria
  • Finalizing CCCOM database entry creation during reverse conversion → if ISCOM PCB number equals '1' then set CCCOM database number to spaces, otherwise set CCCOM database number to ISCOM PCB number value
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_17DatabaseNumberAssignment(["Start Step"]) E_17DatabaseNumberAssignment(["End Step"]) N_17DatabaseNumberAssignment_Node0{"Finalizing CCCOM database entry
creation during reverse conversion"}:::decision N_17DatabaseNumberAssignment_Node0_action["If ISCOM PCB number equals 1 then
set CCCOM database number to spaces,
otherwise set CCCOM database number
to ISCOM PCB number value"]:::main N_17DatabaseNumberAssignment_Node0 -- Yes --> N_17DatabaseNumberAssignment_Node0_action N_17DatabaseNumberAssignment_Node0_action --> E_17DatabaseNumberAssignment S_17DatabaseNumberAssignment --> N_17DatabaseNumberAssignment_Node0 N_17DatabaseNumberAssignment_Node0 -- No --> E_17DatabaseNumberAssignment
File: CCISCOM.cbl
GIVEN: ISCOM PCB number has been calculated for database entry and CCCOM entry requires database number
WHEN: Finalizing CCCOM database entry creation during reverse conversion
THEN: If ISCOM PCB number equals '1' then set CCCOM database number to spaces, otherwise set CCCOM database number to ISCOM PCB number value
βœ“ Consolidated Acceptance Criteria
  • The system compares CC-SIT-VERSION of ISCOM with WS-ISCOM-VERSION → if versions match, proceed with simple data transfer; if versions don't match, proceed with full initialization
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_IsISCOMVersionAlreadySet(["Start Step"]) E_IsISCOMVersionAlreadySet(["End Step"]) N_IsISCOMVersionAlreadySet_Node0{"The system compares CC-SIT-VERSION
of ISCOM with WS-ISCOM-VERSION"}:::decision N_IsISCOMVersionAlreadySet_Node0_action["If versions match, proceed with
simple data transfer if versions don
t match, proceed with full
initialization"]:::main N_IsISCOMVersionAlreadySet_Node0 -- Yes --> N_IsISCOMVersionAlreadySet_Node0_action N_IsISCOMVersionAlreadySet_Node0_action --> E_IsISCOMVersionAlreadySet S_IsISCOMVersionAlreadySet --> N_IsISCOMVersionAlreadySet_Node0 N_IsISCOMVersionAlreadySet_Node0 -- No --> E_IsISCOMVersionAlreadySet
File: CCISCOM.cbl
GIVEN: ISCOM communication area exists with a SIT version field and WS-ISCOM-VERSION contains the expected version
WHEN: The system compares CC-SIT-VERSION of ISCOM with WS-ISCOM-VERSION
THEN: If versions match, proceed with simple data transfer; if versions don't match, proceed with full initialization
βœ“ Consolidated Acceptance Criteria
  • Version compatibility check passes → copy CC-COMMON-AREA from CCCOM to CC-COMMON-AREA of ISCOM
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_TransferCommonAreaDatafromCCCOMtoISCOM(["Start Step"]) E_TransferCommonAreaDatafromCCCOMtoISCOM(["End Step"]) N_TransferCommonAreaDatafromCCCOMtoISCOM_Node0{"Version compatibility check passes"}:::decision N_TransferCommonAreaDatafromCCCOMtoISCOM_Node0_action["Copy CC-COMMON-AREA from CCCOM to
CC-COMMON-AREA of ISCOM"]:::main N_TransferCommonAreaDatafromCCCOMtoISCOM_Node0 -- Yes --> N_TransferCommonAreaDatafromCCCOMtoISCOM_Node0_action N_TransferCommonAreaDatafromCCCOMtoISCOM_Node0_action --> E_TransferCommonAreaDatafromCCCOMtoISCOM S_TransferCommonAreaDatafromCCCOMtoISCOM --> N_TransferCommonAreaDatafromCCCOMtoISCOM_Node0 N_TransferCommonAreaDatafromCCCOMtoISCOM_Node0 -- No --> E_TransferCommonAreaDatafromCCCOMtoISCOM
File: CCISCOM.cbl
GIVEN: CCCOM and ISCOM communication areas exist with CC-COMMON-AREA fields
WHEN: Version compatibility check passes
THEN: Copy CC-COMMON-AREA from CCCOM to CC-COMMON-AREA of ISCOM
βœ“ Consolidated Acceptance Criteria
  • Common area data transfer is completed → set CC-SIT-VERSION of ISCOM to WS-ISCOM-VERSION
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_SetISCOMVersion(["Start Step"]) E_SetISCOMVersion(["End Step"]) N_SetISCOMVersion_Node0{"Common area data transfer is
completed"}:::decision N_SetISCOMVersion_Node0_action["Set CC-SIT-VERSION of ISCOM to
WS-ISCOM-VERSION"]:::main N_SetISCOMVersion_Node0 -- Yes --> N_SetISCOMVersion_Node0_action N_SetISCOMVersion_Node0_action --> E_SetISCOMVersion S_SetISCOMVersion --> N_SetISCOMVersion_Node0 N_SetISCOMVersion_Node0 -- No --> E_SetISCOMVersion
File: CCISCOM.cbl
GIVEN: WS-ISCOM-VERSION contains the current version and ISCOM has CC-SIT-VERSION field
WHEN: Common area data transfer is completed
THEN: Set CC-SIT-VERSION of ISCOM to WS-ISCOM-VERSION
βœ“ Consolidated Acceptance Criteria
  • The system processes ISCOM initialization → iSCOM structure is populated with default values from ISCOMVAL
  • The system processes LT-PCBS data transfer → lT-PCBS data (CC-LT-PCBS) is copied from CCCOM to ISCOM
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_InitializeISCOMwithDefaultValues(["Start Step"]) E_InitializeISCOMwithDefaultValues(["End Step"]) N_InitializeISCOMwithDefaultValues_Node0{"The system processes ISCOM
initialization"}:::decision N_InitializeISCOMwithDefaultValues_Node0_action["ISCOM structure is populated with
default values from ISCOMVAL"]:::main N_InitializeISCOMwithDefaultValues_Node0 -- Yes --> N_InitializeISCOMwithDefaultValues_Node0_action N_InitializeISCOMwithDefaultValues_Node0_action --> E_InitializeISCOMwithDefaultValues S_InitializeISCOMwithDefaultValues --> N_InitializeISCOMwithDefaultValues_Node0 N_InitializeISCOMwithDefaultValues_Node1{"The system processes LT-PCBS data
transfer"}:::decision N_InitializeISCOMwithDefaultValues_Node1_action["LT-PCBS data CC-LT-PCBS is copied
from CCCOM to ISCOM"]:::main N_InitializeISCOMwithDefaultValues_Node1 -- Yes --> N_InitializeISCOMwithDefaultValues_Node1_action N_InitializeISCOMwithDefaultValues_Node1_action --> E_InitializeISCOMwithDefaultValues N_InitializeISCOMwithDefaultValues_Node0 -- No --> N_InitializeISCOMwithDefaultValues_Node1 N_InitializeISCOMwithDefaultValues_Node1 -- No --> E_InitializeISCOMwithDefaultValues
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: ISCOM version (CC-SIT-VERSION OF ISCOM) does not equal the working storage ISCOM version (WS-ISCOM-VERSION)
WHEN: The system processes ISCOM initialization
THEN: ISCOM structure is populated with default values from ISCOMVAL
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: ISCOM version does not match expected version and initialization is in progress
WHEN: The system processes LT-PCBS data transfer
THEN: LT-PCBS data (CC-LT-PCBS) is copied from CCCOM to ISCOM
βœ“ Consolidated Acceptance Criteria
  • The system processes common area data transfer → common area data (CC-COMMON-AREA) is copied from CCCOM to ISCOM
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_CopyCommonAreaDatafromCCCOM(["Start Step"]) E_CopyCommonAreaDatafromCCCOM(["End Step"]) N_CopyCommonAreaDatafromCCCOM_Node0{"The system processes common area
data transfer"}:::decision N_CopyCommonAreaDatafromCCCOM_Node0_action["Common area data CC-COMMON-AREA is
copied from CCCOM to ISCOM"]:::main N_CopyCommonAreaDatafromCCCOM_Node0 -- Yes --> N_CopyCommonAreaDatafromCCCOM_Node0_action N_CopyCommonAreaDatafromCCCOM_Node0_action --> E_CopyCommonAreaDatafromCCCOM S_CopyCommonAreaDatafromCCCOM --> N_CopyCommonAreaDatafromCCCOM_Node0 N_CopyCommonAreaDatafromCCCOM_Node0 -- No --> E_CopyCommonAreaDatafromCCCOM
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: ISCOM version does not match expected version and ISCOM has been initialized with default values
WHEN: The system processes common area data transfer
THEN: Common area data (CC-COMMON-AREA) is copied from CCCOM to ISCOM
βœ“ Consolidated Acceptance Criteria
  • The system finalizes ISCOM structure setup → iSCOM version (CC-SIT-VERSION OF ISCOM) is set to the working storage ISCOM version (WS-ISCOM-VERSION)
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_SetISCOMVersionNumber(["Start Step"]) E_SetISCOMVersionNumber(["End Step"]) N_SetISCOMVersionNumber_Node0{"The system finalizes ISCOM
structure setup"}:::decision N_SetISCOMVersionNumber_Node0_action["ISCOM version CC-SIT-VERSION OF
ISCOM is set to the working storage
ISCOM version WS-ISCOM-VERSION"]:::main N_SetISCOMVersionNumber_Node0 -- Yes --> N_SetISCOMVersionNumber_Node0_action N_SetISCOMVersionNumber_Node0_action --> E_SetISCOMVersionNumber S_SetISCOMVersionNumber --> N_SetISCOMVersionNumber_Node0 N_SetISCOMVersionNumber_Node0 -- No --> E_SetISCOMVersionNumber
File: CCISCOM.cbl
GIVEN: ISCOM has been initialized and common area data has been copied
WHEN: The system finalizes ISCOM structure setup
THEN: ISCOM version (CC-SIT-VERSION OF ISCOM) is set to the working storage ISCOM version (WS-ISCOM-VERSION)
βœ“ Consolidated Acceptance Criteria
  • Cross-reference setup is initiated → cCCOM address reference is stored in ISCOM structure AND ISCOM address reference is stored in CCCOM structure AND bidirectional references are established
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures(["Start Step"]) E_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures(["End Step"]) N_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures_Node0{"Cross-reference setup is initiated"}:::decision N_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures_Node0_action["CCCOM address reference is stored
in ISCOM structure AND ISCOM address
reference is stored in CCCOM
structure AND bidirectional
references are established"]:::main N_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures_Node0 -- Yes --> N_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures_Node0_action N_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures_Node0_action --> E_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures S_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures --> N_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures_Node0 N_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures_Node0 -- No --> E_CrossReferenceAddressSetupSetupbidirectionaladdressreferencesbetweenCCCOMandISCOMstructures
File: CCISCOM.cbl
GIVEN: CCCOM and ISCOM communication structures exist and need to reference each other
WHEN: Cross-reference setup is initiated
THEN:
  • Cccom address reference is stored in iscom structure
  • Iscom address reference is stored in cccom structure
  • Bidirectional references are established
βœ“ Consolidated Acceptance Criteria
  • The system performs version compatibility processing → cC-LT-PCBS data from CCCOM structure is copied to CC-LT-PCBS field in ISCOM structure
  • The system performs reverse version compatibility processing via ISCCCOM entry point → cC-LT-PCBS data from ISCOM structure is copied to CC-LT-PCBS field in CCCOM structure
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_TransferPCBDatatoISCOMStructure(["Start Step"]) E_TransferPCBDatatoISCOMStructure(["End Step"]) N_TransferPCBDatatoISCOMStructure_Node0{"The system performs version
compatibility processing"}:::decision N_TransferPCBDatatoISCOMStructure_Node0_action["CC-LT-PCBS data from CCCOM
structure is copied to CC-LT-PCBS
field in ISCOM structure"]:::main N_TransferPCBDatatoISCOMStructure_Node0 -- Yes --> N_TransferPCBDatatoISCOMStructure_Node0_action N_TransferPCBDatatoISCOMStructure_Node0_action --> E_TransferPCBDatatoISCOMStructure S_TransferPCBDatatoISCOMStructure --> N_TransferPCBDatatoISCOMStructure_Node0 N_TransferPCBDatatoISCOMStructure_Node1{"The system performs reverse version
compatibility processing via ISCCCOM
entry point"}:::decision N_TransferPCBDatatoISCOMStructure_Node1_action["CC-LT-PCBS data from ISCOM
structure is copied to CC-LT-PCBS
field in CCCOM structure"]:::main N_TransferPCBDatatoISCOMStructure_Node1 -- Yes --> N_TransferPCBDatatoISCOMStructure_Node1_action N_TransferPCBDatatoISCOMStructure_Node1_action --> E_TransferPCBDatatoISCOMStructure N_TransferPCBDatatoISCOMStructure_Node0 -- No --> N_TransferPCBDatatoISCOMStructure_Node1 N_TransferPCBDatatoISCOMStructure_Node1 -- No --> E_TransferPCBDatatoISCOMStructure
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: CCCOM and ISCOM structures exist and CC-SIT-VERSION of ISCOM does not equal WS-ISCOM-VERSION
WHEN: The system performs version compatibility processing
THEN: CC-LT-PCBS data from CCCOM structure is copied to CC-LT-PCBS field in ISCOM structure
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: ISCOM and CCCOM structures exist and CC-SIT-VERSION of CCCOM does not equal WS-CCCOM-VERSION
WHEN: The system performs reverse version compatibility processing via ISCCCOM entry point
THEN: CC-LT-PCBS data from ISCOM structure is copied to CC-LT-PCBS field in CCCOM structure
βœ“ Consolidated Acceptance Criteria
  • The system starts processing database entries → the index counter is set to position 1 to begin scanning from the first entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_InitializeIndexI1(["Start Step"]) E_InitializeIndexI1(["End Step"]) N_InitializeIndexI1_Node0{"The system starts processing
database entries"}:::decision N_InitializeIndexI1_Node0_action["The index counter is set to
position 1 to begin scanning from
the first entry"]:::main N_InitializeIndexI1_Node0 -- Yes --> N_InitializeIndexI1_Node0_action N_InitializeIndexI1_Node0_action --> E_InitializeIndexI1 S_InitializeIndexI1 --> N_InitializeIndexI1_Node0 N_InitializeIndexI1_Node0 -- No --> E_InitializeIndexI1
File: CCISCOM.cbl
GIVEN: A database scanning operation needs to begin
WHEN: The system starts processing database entries
THEN: The index counter is set to position 1 to begin scanning from the first entry
βœ“ Consolidated Acceptance Criteria
  • The system checks if the current index exceeds the CCCOM table size limit → if index I is greater than CCCOM table size, terminate the scanning process, otherwise continue to next validation
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_IndexICCCOMTableSize(["Start Step"]) E_IndexICCCOMTableSize(["End Step"]) N_IndexICCCOMTableSize_Node0{"The system checks if the current
index exceeds the CCCOM table size
limit"}:::decision N_IndexICCCOMTableSize_Node0_action["If index I is greater than CCCOM
table size, terminate the scanning
process, otherwise continue to next
validation"]:::exclusion N_IndexICCCOMTableSize_Node0 -- Yes -->|Alternative| N_IndexICCCOMTableSize_Node0_action N_IndexICCCOMTableSize_Node0_action --> E_IndexICCCOMTableSize S_IndexICCCOMTableSize --> N_IndexICCCOMTableSize_Node0 N_IndexICCCOMTableSize_Node0 -- No --> E_IndexICCCOMTableSize
File: CCISCOM.cbl
GIVEN: A database entry scanning operation is in progress with current index position I
WHEN: The system checks if the current index exceeds the CCCOM table size limit
THEN: If index I is greater than CCCOM table size, terminate the scanning process, otherwise continue to next validation
βœ“ Consolidated Acceptance Criteria
  • The system examines the database name field at the current position → if the database name contains only spaces (empty), terminate the scanning process, otherwise proceed to process the current entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_DatabaseNameatPositionISPACES(["Start Step"]) E_DatabaseNameatPositionISPACES(["End Step"]) N_DatabaseNameatPositionISPACES_Node0{"The system examines the database
name field at the current position"}:::decision N_DatabaseNameatPositionISPACES_Node0_action["If the database name contains only
spaces empty, terminate the scanning
process, otherwise proceed to
process the current entry"]:::exclusion N_DatabaseNameatPositionISPACES_Node0 -- Yes -->|Alternative| N_DatabaseNameatPositionISPACES_Node0_action N_DatabaseNameatPositionISPACES_Node0_action --> E_DatabaseNameatPositionISPACES S_DatabaseNameatPositionISPACES --> N_DatabaseNameatPositionISPACES_Node0 N_DatabaseNameatPositionISPACES_Node0 -- No --> E_DatabaseNameatPositionISPACES
File: CCISCOM.cbl
GIVEN: A database entry at position I within the valid table range
WHEN: The system examines the database name field at the current position
THEN: If the database name contains only spaces (empty), terminate the scanning process, otherwise proceed to process the current entry
βœ“ Consolidated Acceptance Criteria
  • The system needs to process the database entry for address mapping → invoke the database address scanning procedure (100-SCAN-CC-DB-ADDR) to handle PCB number processing and database name matching
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_ProcessCurrentDatabaseEntry(["Start Step"]) E_ProcessCurrentDatabaseEntry(["End Step"]) N_ProcessCurrentDatabaseEntry_Node0{"The system needs to process the
database entry for address mapping"}:::decision N_ProcessCurrentDatabaseEntry_Node0_action["Invoke the database address
scanning procedure
100-SCAN-CC-DB-ADDR to handle PCB
number processing and database name
matching"]:::main N_ProcessCurrentDatabaseEntry_Node0 -- Yes --> N_ProcessCurrentDatabaseEntry_Node0_action N_ProcessCurrentDatabaseEntry_Node0_action --> E_ProcessCurrentDatabaseEntry S_ProcessCurrentDatabaseEntry --> N_ProcessCurrentDatabaseEntry_Node0 N_ProcessCurrentDatabaseEntry_Node0 -- No --> E_ProcessCurrentDatabaseEntry
File: CCISCOM.cbl
GIVEN: A valid database entry at position I with a non-empty database name
WHEN: The system needs to process the database entry for address mapping
THEN:
  • Invoke the database address scanning procedure (100-scan-cc-db-addr) to handle pcb number processing
  • Database name matching
βœ“ Consolidated Acceptance Criteria
  • The system completes processing the current database entry → increment the index I by 1 to move to the next database entry position for continued scanning
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_IncrementIndexIby1(["Start Step"]) E_IncrementIndexIby1(["End Step"]) N_IncrementIndexIby1_Node0{"The system completes processing the
current database entry"}:::decision N_IncrementIndexIby1_Node0_action["Increment the index I by 1 to move
to the next database entry position
for continued scanning"]:::main N_IncrementIndexIby1_Node0 -- Yes --> N_IncrementIndexIby1_Node0_action N_IncrementIndexIby1_Node0_action --> E_IncrementIndexIby1 S_IncrementIndexIby1 --> N_IncrementIndexIby1_Node0 N_IncrementIndexIby1_Node0 -- No --> E_IncrementIndexIby1
File: CCISCOM.cbl
GIVEN: A database entry has been successfully processed at position I
WHEN: The system completes processing the current database entry
THEN: Increment the index I by 1 to move to the next database entry position for continued scanning
βœ“ Consolidated Acceptance Criteria
  • The PCB counter initialization is performed → the ISCOM PCB number is set to zero
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_InitializePCBCountertoZero(["Start Step"]) E_InitializePCBCountertoZero(["End Step"]) N_InitializePCBCountertoZero_Node0{"The PCB counter initialization is
performed"}:::decision N_InitializePCBCountertoZero_Node0_action["The ISCOM PCB number is set to zero"]:::main N_InitializePCBCountertoZero_Node0 -- Yes --> N_InitializePCBCountertoZero_Node0_action N_InitializePCBCountertoZero_Node0_action --> E_InitializePCBCountertoZero S_InitializePCBCountertoZero --> N_InitializePCBCountertoZero_Node0 N_InitializePCBCountertoZero_Node0 -- No --> E_InitializePCBCountertoZero
File: CCISCOM.cbl
GIVEN: A database entry is being processed
WHEN: The PCB counter initialization is performed
THEN: The ISCOM PCB number is set to zero
βœ“ Consolidated Acceptance Criteria
  • PCB number extraction is performed → the PCB number from CCCOM database entry at index I is moved to CCCOM-PCB-NUMBER
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_ExtractPCBNumberfromDatabaseEntry(["Start Step"]) E_ExtractPCBNumberfromDatabaseEntry(["End Step"]) N_ExtractPCBNumberfromDatabaseEntry_Node0{"PCB number extraction is performed"}:::decision N_ExtractPCBNumberfromDatabaseEntry_Node0_action["The PCB number from CCCOM database
entry at index I is moved to
CCCOM-PCB-NUMBER"]:::main N_ExtractPCBNumberfromDatabaseEntry_Node0 -- Yes --> N_ExtractPCBNumberfromDatabaseEntry_Node0_action N_ExtractPCBNumberfromDatabaseEntry_Node0_action --> E_ExtractPCBNumberfromDatabaseEntry S_ExtractPCBNumberfromDatabaseEntry --> N_ExtractPCBNumberfromDatabaseEntry_Node0 N_ExtractPCBNumberfromDatabaseEntry_Node0 -- No --> E_ExtractPCBNumberfromDatabaseEntry
File: CCISCOM.cbl
GIVEN: A database entry with index I is being processed
WHEN: PCB number extraction is performed
THEN: The PCB number from CCCOM database entry at index I is moved to CCCOM-PCB-NUMBER
βœ“ Consolidated Acceptance Criteria
  • The PCB number validation is performed → the CCCOM-PCB-NUMBER is set to '1'
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_SetPCBNumbertoDefault1(["Start Step"]) E_SetPCBNumbertoDefault1(["End Step"]) N_SetPCBNumbertoDefault1_Node0{"The PCB number validation is
performed"}:::decision N_SetPCBNumbertoDefault1_Node0_action["The CCCOM-PCB-NUMBER is set to 1"]:::main N_SetPCBNumbertoDefault1_Node0 -- Yes --> N_SetPCBNumbertoDefault1_Node0_action N_SetPCBNumbertoDefault1_Node0_action --> E_SetPCBNumbertoDefault1 S_SetPCBNumbertoDefault1 --> N_SetPCBNumbertoDefault1_Node0 N_SetPCBNumbertoDefault1_Node0 -- No --> E_SetPCBNumbertoDefault1
File: CCISCOM.cbl
GIVEN: A database entry is being processed and the CCCOM-PCB-NUMBER is empty or contains spaces
WHEN: The PCB number validation is performed
THEN: The CCCOM-PCB-NUMBER is set to '1'
βœ“ Consolidated Acceptance Criteria
  • The PCB number field contains spaces or is empty → the system assigns default PCB number '1' to the CCCOM PCB number field
  • The PCB number field contains a valid non-space value → the system preserves the existing PCB number value without modification
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound(["Start Step"]) E_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound(["End Step"]) N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node0{"The PCB number field contains
spaces or is empty"}:::decision N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node0_action["The system assigns default PCB
number 1 to the CCCOM PCB number
field"]:::main N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node0 -- Yes --> N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node0_action N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node0_action --> E_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound S_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound --> N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node0 N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node1{"The PCB number field contains a
valid non-space value"}:::decision N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node1_action["The system preserves the existing
PCB number value without
modification"]:::main N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node1 -- Yes --> N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node1_action N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node1_action --> E_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node0 -- No --> N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node1 N_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound_Node1 -- No --> E_PCBNumberProcessingProcessandvalidatePCBnumbersdefaultingto1whenspacesarefound
File: CCISCOM.cbl
GIVEN: A database entry from CCCOM table with PCB number field that may be empty or contain spaces
WHEN: The PCB number field contains spaces or is empty
THEN: The system assigns default PCB number '1' to the CCCOM PCB number field
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: A database entry from CCCOM table with a valid PCB number that is not spaces
WHEN: The PCB number field contains a valid non-space value
THEN: The system preserves the existing PCB number value without modification
βœ“ Consolidated Acceptance Criteria
  • The database name in CCCOM entry matches the database name in ISCOM entry → the system identifies this as a matching database pair and proceeds with PCB number increment and address mapping operations
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_DoDatabaseNamesMatch(["Start Step"]) E_DoDatabaseNamesMatch(["End Step"]) N_DoDatabaseNamesMatch_Node0{"The database name in CCCOM entry
matches the database name in ISCOM
entry"}:::decision N_DoDatabaseNamesMatch_Node0_action["The system identifies this as a
matching database pair and proceeds
with PCB number increment and
address mapping operations"]:::main N_DoDatabaseNamesMatch_Node0 -- Yes --> N_DoDatabaseNamesMatch_Node0_action N_DoDatabaseNamesMatch_Node0_action --> E_DoDatabaseNamesMatch S_DoDatabaseNamesMatch --> N_DoDatabaseNamesMatch_Node0 N_DoDatabaseNamesMatch_Node0 -- No --> E_DoDatabaseNamesMatch
File: CCISCOM.cbl
GIVEN: A CCCOM database entry at position I and an ISCOM database entry at position J are being compared
WHEN: The database name in CCCOM entry matches the database name in ISCOM entry
THEN:
  • The system identifies this as a matching database pair
  • Proceeds with pcb number increment
  • Address mapping operations
βœ“ Consolidated Acceptance Criteria
  • The matching database names are identified → the ISCOM PCB number is incremented by 1 to maintain proper sequencing
  • The current ISCOM PCB number equals the CCCOM PCB number for the matched database → the PCB address from CCCOM entry is assigned to the corresponding ISCOM entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_NamesMatchProceedwithProcessing(["Start Step"]) E_NamesMatchProceedwithProcessing(["End Step"]) N_NamesMatchProceedwithProcessing_Node0{"The matching database names are
identified"}:::decision N_NamesMatchProceedwithProcessing_Node0_action["The ISCOM PCB number is incremented
by 1 to maintain proper sequencing"]:::main N_NamesMatchProceedwithProcessing_Node0 -- Yes --> N_NamesMatchProceedwithProcessing_Node0_action N_NamesMatchProceedwithProcessing_Node0_action --> E_NamesMatchProceedwithProcessing S_NamesMatchProceedwithProcessing --> N_NamesMatchProceedwithProcessing_Node0 N_NamesMatchProceedwithProcessing_Node1{"The current ISCOM PCB number equals
the CCCOM PCB number for the matched
database"}:::decision N_NamesMatchProceedwithProcessing_Node1_action["The PCB address from CCCOM entry is
assigned to the corresponding ISCOM
entry"]:::main N_NamesMatchProceedwithProcessing_Node1 -- Yes --> N_NamesMatchProceedwithProcessing_Node1_action N_NamesMatchProceedwithProcessing_Node1_action --> E_NamesMatchProceedwithProcessing N_NamesMatchProceedwithProcessing_Node0 -- No --> N_NamesMatchProceedwithProcessing_Node1 N_NamesMatchProceedwithProcessing_Node1 -- No --> E_NamesMatchProceedwithProcessing
File: CCISCOM.cbl
GIVEN: Database names between CCCOM and ISCOM entries have been confirmed as matching
WHEN: The matching database names are identified
THEN: The ISCOM PCB number is incremented by 1 to maintain proper sequencing
File: CCISCOM.cbl
GIVEN: Database names match and ISCOM PCB number has been incremented
WHEN: The current ISCOM PCB number equals the CCCOM PCB number for the matched database
THEN: The PCB address from CCCOM entry is assigned to the corresponding ISCOM entry
βœ“ Consolidated Acceptance Criteria
  • The database name from CCCOM matches the database name from ISCOM → the ISCOM PCB number counter is incremented by 1
  • The database name at position I matches the database name at position K → the ISCOM PCB number counter is incremented by 1
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_IncrementPCBCounterby1(["Start Step"]) E_IncrementPCBCounterby1(["End Step"]) N_IncrementPCBCounterby1_Node0{"The database name from CCCOM
matches the database name from ISCOM"}:::decision N_IncrementPCBCounterby1_Node0_action["The ISCOM PCB number counter is
incremented by 1"]:::main N_IncrementPCBCounterby1_Node0 -- Yes --> N_IncrementPCBCounterby1_Node0_action N_IncrementPCBCounterby1_Node0_action --> E_IncrementPCBCounterby1 S_IncrementPCBCounterby1 --> N_IncrementPCBCounterby1_Node0 N_IncrementPCBCounterby1_Node1{"The database name at position I
matches the database name at
position K"}:::decision N_IncrementPCBCounterby1_Node1_action["The ISCOM PCB number counter is
incremented by 1"]:::main N_IncrementPCBCounterby1_Node1 -- Yes --> N_IncrementPCBCounterby1_Node1_action N_IncrementPCBCounterby1_Node1_action --> E_IncrementPCBCounterby1 N_IncrementPCBCounterby1_Node0 -- No --> N_IncrementPCBCounterby1_Node1 N_IncrementPCBCounterby1_Node1 -- No --> E_IncrementPCBCounterby1
File: CCISCOM.cbl
GIVEN: A database name from CCCOM entry (I) and a database name from ISCOM entry (J) are being compared
WHEN: The database name from CCCOM matches the database name from ISCOM
THEN: The ISCOM PCB number counter is incremented by 1
File: CCISCOM.cbl
GIVEN: Two ISCOM database entries at positions I and K are being compared during reverse processing
WHEN: The database name at position I matches the database name at position K
THEN: The ISCOM PCB number counter is incremented by 1
βœ“ Consolidated Acceptance Criteria
  • The system compares the two database names → if the names are identical, proceed to increment PCB counter; otherwise continue to next database entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_DatabaseNamesMatch(["Start Step"]) E_DatabaseNamesMatch(["End Step"]) N_DatabaseNamesMatch_Node0{"The system compares the two
database names"}:::decision N_DatabaseNamesMatch_Node0_action["If the names are identical, proceed
to increment PCB counter otherwise
continue to next database entry"]:::main N_DatabaseNamesMatch_Node0 -- Yes --> N_DatabaseNamesMatch_Node0_action N_DatabaseNamesMatch_Node0_action --> E_DatabaseNamesMatch S_DatabaseNamesMatch --> N_DatabaseNamesMatch_Node0 N_DatabaseNamesMatch_Node0 -- No --> E_DatabaseNamesMatch
File: CCISCOM.cbl
GIVEN: A database name from CCCOM entry at position I and a database name from ISCOM entry at position J
WHEN: The system compares the two database names
THEN: If the names are identical, proceed to increment PCB counter; otherwise continue to next database entry
βœ“ Consolidated Acceptance Criteria
  • The system compares the database name from CCCOM entry I with the database name from ISCOM entry J → if the database names are identical, the system proceeds with PCB counter increment; otherwise, it continues to the next entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_DatabaseNamesMatchBetweenCCCOMandISCOM(["Start Step"]) E_DatabaseNamesMatchBetweenCCCOMandISCOM(["End Step"]) N_DatabaseNamesMatchBetweenCCCOMandISCOM_Node0{"The system compares the database
name from CCCOM entry I with the
database name from ISCOM entry J"}:::decision N_DatabaseNamesMatchBetweenCCCOMandISCOM_Node0_action["If the database names are
identical, the system proceeds with
PCB counter increment otherwise, it
continues to the next entry"]:::main N_DatabaseNamesMatchBetweenCCCOMandISCOM_Node0 -- Yes --> N_DatabaseNamesMatchBetweenCCCOMandISCOM_Node0_action N_DatabaseNamesMatchBetweenCCCOMandISCOM_Node0_action --> E_DatabaseNamesMatchBetweenCCCOMandISCOM S_DatabaseNamesMatchBetweenCCCOMandISCOM --> N_DatabaseNamesMatchBetweenCCCOMandISCOM_Node0 N_DatabaseNamesMatchBetweenCCCOMandISCOM_Node0 -- No --> E_DatabaseNamesMatchBetweenCCCOMandISCOM
File: CCISCOM.cbl
GIVEN: A CCCOM entry at position I and an ISCOM entry at position J both contain database names
WHEN: The system compares the database name from CCCOM entry I with the database name from ISCOM entry J
THEN: If the database names are identical, the system proceeds with PCB counter increment; otherwise, it continues to the next entry
βœ“ Consolidated Acceptance Criteria
  • The system processes the matching database entries → the ISCOM PCB number counter is incremented by 1
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_IncrementISCOMPCBCounter(["Start Step"]) E_IncrementISCOMPCBCounter(["End Step"]) N_IncrementISCOMPCBCounter_Node0{"The system processes the matching
database entries"}:::decision N_IncrementISCOMPCBCounter_Node0_action["The ISCOM PCB number counter is
incremented by 1"]:::main N_IncrementISCOMPCBCounter_Node0 -- Yes --> N_IncrementISCOMPCBCounter_Node0_action N_IncrementISCOMPCBCounter_Node0_action --> E_IncrementISCOMPCBCounter S_IncrementISCOMPCBCounter --> N_IncrementISCOMPCBCounter_Node0 N_IncrementISCOMPCBCounter_Node0 -- No --> E_IncrementISCOMPCBCounter
File: CCISCOM.cbl
GIVEN: Database names match between CCCOM entry I and ISCOM entry J
WHEN: The system processes the matching database entries
THEN: The ISCOM PCB number counter is incremented by 1
βœ“ Consolidated Acceptance Criteria
  • The system compares the ISCOM PCB number with the CCCOM PCB number → if the PCB numbers are equal, the system proceeds with PCB address mapping; otherwise, it continues processing
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_PCBNumbersMatch(["Start Step"]) E_PCBNumbersMatch(["End Step"]) N_PCBNumbersMatch_Node0{"The system compares the ISCOM PCB
number with the CCCOM PCB number"}:::decision N_PCBNumbersMatch_Node0_action["If the PCB numbers are equal, the
system proceeds with PCB address
mapping otherwise, it continues
processing"]:::main N_PCBNumbersMatch_Node0 -- Yes --> N_PCBNumbersMatch_Node0_action N_PCBNumbersMatch_Node0_action --> E_PCBNumbersMatch S_PCBNumbersMatch --> N_PCBNumbersMatch_Node0 N_PCBNumbersMatch_Node0 -- No --> E_PCBNumbersMatch
File: CCISCOM.cbl
GIVEN: The ISCOM PCB number has been incremented and the CCCOM PCB number is available
WHEN: The system compares the ISCOM PCB number with the CCCOM PCB number
THEN: If the PCB numbers are equal, the system proceeds with PCB address mapping; otherwise, it continues processing
βœ“ Consolidated Acceptance Criteria
  • The system performs PCB address mapping → the PCB address from CCCOM entry I is assigned to ISCOM entry J
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_MapPCBAddressfromCCCOMtoISCOM(["Start Step"]) E_MapPCBAddressfromCCCOMtoISCOM(["End Step"]) N_MapPCBAddressfromCCCOMtoISCOM_Node0{"The system performs PCB address
mapping"}:::decision N_MapPCBAddressfromCCCOMtoISCOM_Node0_action["The PCB address from CCCOM entry I
is assigned to ISCOM entry J"]:::main N_MapPCBAddressfromCCCOMtoISCOM_Node0 -- Yes --> N_MapPCBAddressfromCCCOMtoISCOM_Node0_action N_MapPCBAddressfromCCCOMtoISCOM_Node0_action --> E_MapPCBAddressfromCCCOMtoISCOM S_MapPCBAddressfromCCCOMtoISCOM --> N_MapPCBAddressfromCCCOMtoISCOM_Node0 N_MapPCBAddressfromCCCOMtoISCOM_Node0 -- No --> E_MapPCBAddressfromCCCOMtoISCOM
File: CCISCOM.cbl
GIVEN: Database names match and PCB numbers are equal between CCCOM entry I and ISCOM entry J
WHEN: The system performs PCB address mapping
THEN: The PCB address from CCCOM entry I is assigned to ISCOM entry J
βœ“ Consolidated Acceptance Criteria
  • The system checks the CCCOM SIT version against the expected CCCOM version → if versions match, only common area data is transferred and CCCOM version is updated; if versions don't match, full initialization including common area, version update, LT-PCBS transfer, cross-references setup, and database scanning is performed
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM(["Start Step"]) E_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM(["End Step"]) N_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM_Node0{"The system checks the CCCOM SIT
version against the expected CCCOM
version"}:::decision N_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM_Node0_action["If versions match, only common area
data is transferred and CCCOM
version is updated if versions don t
match, full initialization including
common area, version update, LT-PCBS
transfer, cross-references setup,
and database scanning is performed"]:::main N_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM_Node0 -- Yes --> N_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM_Node0_action N_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM_Node0_action --> E_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM S_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM --> N_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM_Node0 N_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM_Node0 -- No --> E_ReverseConversionVersionCheckCheckifCCCOMversionisalreadysetforreverseconversionfromISCOMtoCCCOM
File: CCISCOM.cbl
GIVEN: A reverse conversion process is initiated with ISCOM and CCCOM communication areas
WHEN: The system checks the CCCOM SIT version against the expected CCCOM version
THEN:
  • If versions match, only common area data is transferred
  • Cccom version is updated; if versions don't match, full initialization including common area, version update, lt-pcbs transfer, cross-references setup, and database scanning is performed
βœ“ Consolidated Acceptance Criteria
  • Reverse conversion is performed → common area data is copied from ISCOM to CCCOM and CCCOM SIT version is set to working storage CCCOM version
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_VersionAlreadySetTransferCommonAreaDataOnly(["Start Step"]) E_VersionAlreadySetTransferCommonAreaDataOnly(["End Step"]) N_VersionAlreadySetTransferCommonAreaDataOnly_Node0{"Reverse conversion is performed"}:::decision N_VersionAlreadySetTransferCommonAreaDataOnly_Node0_action["Common area data is copied from
ISCOM to CCCOM and CCCOM SIT version
is set to working storage CCCOM
version"]:::main N_VersionAlreadySetTransferCommonAreaDataOnly_Node0 -- Yes --> N_VersionAlreadySetTransferCommonAreaDataOnly_Node0_action N_VersionAlreadySetTransferCommonAreaDataOnly_Node0_action --> E_VersionAlreadySetTransferCommonAreaDataOnly S_VersionAlreadySetTransferCommonAreaDataOnly --> N_VersionAlreadySetTransferCommonAreaDataOnly_Node0 N_VersionAlreadySetTransferCommonAreaDataOnly_Node0 -- No --> E_VersionAlreadySetTransferCommonAreaDataOnly
File: CCISCOM.cbl
GIVEN: CCCOM SIT version equals the working storage CCCOM version
WHEN: Reverse conversion is performed
THEN:
  • Common area data is copied from iscom to cccom
  • Cccom sit version is set to working storage cccom version
βœ“ Consolidated Acceptance Criteria
  • Reverse conversion is performed → common area is copied from ISCOM to CCCOM, CCCOM SIT version is updated, LT-PCBS are transferred from ISCOM to CCCOM, cross-reference addresses are established, and database address scanning is initiated
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_VersionNotSetProceedwithFullInitialization(["Start Step"]) E_VersionNotSetProceedwithFullInitialization(["End Step"]) N_VersionNotSetProceedwithFullInitialization_Node0{"Reverse conversion is performed"}:::decision N_VersionNotSetProceedwithFullInitialization_Node0_action["Common area is copied from ISCOM to
CCCOM, CCCOM SIT version is updated,
LT-PCBS are transferred from ISCOM
to CCCOM, cross-reference addresses
are established, and database
address scanning is initiated"]:::main N_VersionNotSetProceedwithFullInitialization_Node0 -- Yes --> N_VersionNotSetProceedwithFullInitialization_Node0_action N_VersionNotSetProceedwithFullInitialization_Node0_action --> E_VersionNotSetProceedwithFullInitialization S_VersionNotSetProceedwithFullInitialization --> N_VersionNotSetProceedwithFullInitialization_Node0 N_VersionNotSetProceedwithFullInitialization_Node0 -- No --> E_VersionNotSetProceedwithFullInitialization
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: CCCOM SIT version does not equal the working storage CCCOM version
WHEN: Reverse conversion is performed
THEN: Common area is copied from ISCOM to CCCOM, CCCOM SIT version is updated, LT-PCBS are transferred from ISCOM to CCCOM, cross-reference addresses are established, and database address scanning is initiated
βœ“ Consolidated Acceptance Criteria
  • Version update is required → cCCOM SIT version is set to the working storage CCCOM version value
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_SetCCCOMVersiontoExpectedValue(["Start Step"]) E_SetCCCOMVersiontoExpectedValue(["End Step"]) N_SetCCCOMVersiontoExpectedValue_Node0{"Version update is required"}:::decision N_SetCCCOMVersiontoExpectedValue_Node0_action["CCCOM SIT version is set to the
working storage CCCOM version value"]:::main N_SetCCCOMVersiontoExpectedValue_Node0 -- Yes --> N_SetCCCOMVersiontoExpectedValue_Node0_action N_SetCCCOMVersiontoExpectedValue_Node0_action --> E_SetCCCOMVersiontoExpectedValue S_SetCCCOMVersiontoExpectedValue --> N_SetCCCOMVersiontoExpectedValue_Node0 N_SetCCCOMVersiontoExpectedValue_Node0 -- No --> E_SetCCCOMVersiontoExpectedValue
File: CCISCOM.cbl
GIVEN: Reverse conversion process is in progress
WHEN: Version update is required
THEN: CCCOM SIT version is set to the working storage CCCOM version value
βœ“ Consolidated Acceptance Criteria
  • Reverse conversion process is initiated from ISCOM to CCCOM → common area data from ISCOM is copied to CCCOM structure
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_TransferCommonAreaDatafromISCOMtoCCCOM(["Start Step"]) E_TransferCommonAreaDatafromISCOMtoCCCOM(["End Step"]) N_TransferCommonAreaDatafromISCOMtoCCCOM_Node0{"Reverse conversion process is
initiated from ISCOM to CCCOM"}:::decision N_TransferCommonAreaDatafromISCOMtoCCCOM_Node0_action["Common area data from ISCOM is
copied to CCCOM structure"]:::main N_TransferCommonAreaDatafromISCOMtoCCCOM_Node0 -- Yes --> N_TransferCommonAreaDatafromISCOMtoCCCOM_Node0_action N_TransferCommonAreaDatafromISCOMtoCCCOM_Node0_action --> E_TransferCommonAreaDatafromISCOMtoCCCOM S_TransferCommonAreaDatafromISCOMtoCCCOM --> N_TransferCommonAreaDatafromISCOMtoCCCOM_Node0 N_TransferCommonAreaDatafromISCOMtoCCCOM_Node0 -- No --> E_TransferCommonAreaDatafromISCOMtoCCCOM
File: CCISCOM.cbl
GIVEN: ISCOM structure contains common area data and CCCOM structure is available for data transfer
WHEN: Reverse conversion process is initiated from ISCOM to CCCOM
THEN: Common area data from ISCOM is copied to CCCOM structure
βœ“ Consolidated Acceptance Criteria
  • Common area data transfer is completed → cCCOM SIT version is set to the working storage CCCOM version number
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_SetCCCOMVersionNumber(["Start Step"]) E_SetCCCOMVersionNumber(["End Step"]) N_SetCCCOMVersionNumber_Node0{"Common area data transfer is
completed"}:::decision N_SetCCCOMVersionNumber_Node0_action["CCCOM SIT version is set to the
working storage CCCOM version number"]:::main N_SetCCCOMVersionNumber_Node0 -- Yes --> N_SetCCCOMVersionNumber_Node0_action N_SetCCCOMVersionNumber_Node0_action --> E_SetCCCOMVersionNumber S_SetCCCOMVersionNumber --> N_SetCCCOMVersionNumber_Node0 N_SetCCCOMVersionNumber_Node0 -- No --> E_SetCCCOMVersionNumber
File: CCISCOM.cbl
GIVEN: CCCOM structure is being updated during reverse conversion and working storage contains CCCOM version number
WHEN: Common area data transfer is completed
THEN: CCCOM SIT version is set to the working storage CCCOM version number
βœ“ Consolidated Acceptance Criteria
  • Reverse conversion process is initiated and version compatibility requires PCB data synchronization → pCB information from ISCOM CC-LT-PCBS field is copied to CCCOM CC-LT-PCBS field
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_TransferPCBDatatoCCCOMStructure(["Start Step"]) E_TransferPCBDatatoCCCOMStructure(["End Step"]) N_TransferPCBDatatoCCCOMStructure_Node0{"reverse conversion process is
initiated and version compatibility
requires PCB data synchronization"}:::decision N_TransferPCBDatatoCCCOMStructure_Node0_action["PCB information from ISCOM
CC-LT-PCBS field is copied to CCCOM
CC-LT-PCBS field"]:::main N_TransferPCBDatatoCCCOMStructure_Node0 -- Yes --> N_TransferPCBDatatoCCCOMStructure_Node0_action N_TransferPCBDatatoCCCOMStructure_Node0_action --> E_TransferPCBDatatoCCCOMStructure S_TransferPCBDatatoCCCOMStructure --> N_TransferPCBDatatoCCCOMStructure_Node0 N_TransferPCBDatatoCCCOMStructure_Node0 -- No --> E_TransferPCBDatatoCCCOMStructure
File: CCISCOM.cbl
GIVEN: ISCOM structure contains PCB information in CC-LT-PCBS field and CCCOM structure is available for data transfer
WHEN:
  • Reverse conversion process is initiated
  • Version compatibility requires pcb data synchronization
THEN: PCB information from ISCOM CC-LT-PCBS field is copied to CCCOM CC-LT-PCBS field
βœ“ Consolidated Acceptance Criteria
  • If the PCB address value → if PCB address is not equal to zero, the entry is identified as active and processing continues; if PCB address equals zero, the entry is skipped as inactive
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_PCBAddressZero(["Start Step"]) E_PCBAddressZero(["End Step"]) N_PCBAddressZero_Node0{"The system evaluates the PCB
address value"}:::decision N_PCBAddressZero_Node0_action["If PCB address is not equal to
zero, the entry is identified as
active and processing continues if
PCB address equals zero, the entry
is skipped as inactive"]:::main N_PCBAddressZero_Node0 -- Yes --> N_PCBAddressZero_Node0_action N_PCBAddressZero_Node0_action --> E_PCBAddressZero S_PCBAddressZero --> N_PCBAddressZero_Node0 N_PCBAddressZero_Node0 -- No --> E_PCBAddressZero
File: CCISCOM.cbl
GIVEN: An ISCOM entry with a PCB address field
WHEN: The system evaluates the PCB address value
THEN:
  • If pcb address is not equal to zero, the entry is identified as active
  • Processing continues; if pcb address equals zero, the entry is skipped as inactive
βœ“ Consolidated Acceptance Criteria
  • The system begins processing the active entry → iSCOM PCB number is set to 1 to start the numbering sequence
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_MarkasActivePCBEntry(["Start Step"]) E_MarkasActivePCBEntry(["End Step"]) N_MarkasActivePCBEntry_Node0{"The system begins processing the
active entry"}:::decision N_MarkasActivePCBEntry_Node0_action["ISCOM PCB number is set to 1 to
start the numbering sequence"]:::main N_MarkasActivePCBEntry_Node0 -- Yes --> N_MarkasActivePCBEntry_Node0_action N_MarkasActivePCBEntry_Node0_action --> E_MarkasActivePCBEntry S_MarkasActivePCBEntry --> N_MarkasActivePCBEntry_Node0 N_MarkasActivePCBEntry_Node0 -- No --> E_MarkasActivePCBEntry
File: CCISCOM.cbl
GIVEN: An active ISCOM entry with non-zero PCB address
WHEN: The system begins processing the active entry
THEN: ISCOM PCB number is set to 1 to start the numbering sequence
βœ“ Consolidated Acceptance Criteria
  • The system processes the active PCB entry → the database name from ISCOM entry is copied to the CCCOM entry at the current position
  • The system processes the active PCB entry → the PCB address from ISCOM entry is set in the corresponding CCCOM entry
  • The system determines the PCB number assignment → if ISCOM PCB number equals '1', CCCOM database number is set to spaces; otherwise ISCOM PCB number is copied to CCCOM database number
  • The system completes processing of the active entry → the CCCOM entry counter (J) is incremented by 1
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_ContinueProcessingActiveEntry(["Start Step"]) E_ContinueProcessingActiveEntry(["End Step"]) N_ContinueProcessingActiveEntry_Node0{"The system processes the active PCB
entry"}:::decision N_ContinueProcessingActiveEntry_Node0_action["The database name from ISCOM entry
is copied to the CCCOM entry at the
current position"]:::main N_ContinueProcessingActiveEntry_Node0 -- Yes --> N_ContinueProcessingActiveEntry_Node0_action N_ContinueProcessingActiveEntry_Node0_action --> E_ContinueProcessingActiveEntry S_ContinueProcessingActiveEntry --> N_ContinueProcessingActiveEntry_Node0 N_ContinueProcessingActiveEntry_Node1{"The system processes the active PCB
entry"}:::decision N_ContinueProcessingActiveEntry_Node1_action["The PCB address from ISCOM entry is
set in the corresponding CCCOM entry"]:::main N_ContinueProcessingActiveEntry_Node1 -- Yes --> N_ContinueProcessingActiveEntry_Node1_action N_ContinueProcessingActiveEntry_Node1_action --> E_ContinueProcessingActiveEntry N_ContinueProcessingActiveEntry_Node0 -- No --> N_ContinueProcessingActiveEntry_Node1 N_ContinueProcessingActiveEntry_Node2{"The system determines the PCB
number assignment"}:::decision N_ContinueProcessingActiveEntry_Node2_action["If ISCOM PCB number equals 1 ,
CCCOM database number is set to
spaces otherwise ISCOM PCB number is
copied to CCCOM database number"]:::main N_ContinueProcessingActiveEntry_Node2 -- Yes --> N_ContinueProcessingActiveEntry_Node2_action N_ContinueProcessingActiveEntry_Node2_action --> E_ContinueProcessingActiveEntry N_ContinueProcessingActiveEntry_Node1 -- No --> N_ContinueProcessingActiveEntry_Node2 N_ContinueProcessingActiveEntry_Node3{"The system completes processing of
the active entry"}:::decision N_ContinueProcessingActiveEntry_Node3_action["The CCCOM entry counter J is
incremented by 1"]:::main N_ContinueProcessingActiveEntry_Node3 -- Yes --> N_ContinueProcessingActiveEntry_Node3_action N_ContinueProcessingActiveEntry_Node3_action --> E_ContinueProcessingActiveEntry N_ContinueProcessingActiveEntry_Node2 -- No --> N_ContinueProcessingActiveEntry_Node3 N_ContinueProcessingActiveEntry_Node3 -- No --> E_ContinueProcessingActiveEntry
File: CCISCOM.cbl
GIVEN: An active ISCOM entry and a target CCCOM entry position
WHEN: The system processes the active PCB entry
THEN: The database name from ISCOM entry is copied to the CCCOM entry at the current position
File: CCISCOM.cbl
GIVEN: An active ISCOM entry with non-zero PCB address and a target CCCOM entry
WHEN: The system processes the active PCB entry
THEN: The PCB address from ISCOM entry is set in the corresponding CCCOM entry
File: CCISCOM.cbl
GIVEN: A calculated ISCOM PCB number and a target CCCOM entry
WHEN: The system determines the PCB number assignment
THEN: If ISCOM PCB number equals '1', CCCOM database number is set to spaces; otherwise ISCOM PCB number is copied to CCCOM database number
File: CCISCOM.cbl
GIVEN: A processed active ISCOM entry
WHEN: The system completes processing of the active entry
THEN: The CCCOM entry counter (J) is incremented by 1
βœ“ Consolidated Acceptance Criteria
  • The system begins processing the active entry → the PCB sequence number is initialized to 1
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_InitializePCBSequenceNumberto1(["Start Step"]) E_InitializePCBSequenceNumberto1(["End Step"]) N_InitializePCBSequenceNumberto1_Node0{"The system begins processing the
active entry"}:::decision N_InitializePCBSequenceNumberto1_Node0_action["The PCB sequence number is
initialized to 1"]:::main N_InitializePCBSequenceNumberto1_Node0 -- Yes --> N_InitializePCBSequenceNumberto1_Node0_action N_InitializePCBSequenceNumberto1_Node0_action --> E_InitializePCBSequenceNumberto1 S_InitializePCBSequenceNumberto1 --> N_InitializePCBSequenceNumberto1_Node0 N_InitializePCBSequenceNumberto1_Node0 -- No --> E_InitializePCBSequenceNumberto1
File: CCISCOM.cbl
GIVEN: An active PCB entry has been identified for processing
WHEN: The system begins processing the active entry
THEN: The PCB sequence number is initialized to 1
βœ“ Consolidated Acceptance Criteria
  • The system needs to determine the sequential number for the current database → the system performs PCB number calculation by iterating through previous entries and incrementing the sequence number for each matching database name
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_CalculateSequentialPCBNumberforCurrentDatabase(["Start Step"]) E_CalculateSequentialPCBNumberforCurrentDatabase(["End Step"]) N_CalculateSequentialPCBNumberforCurrentDatabase_Node0{"The system needs to determine the
sequential number for the current
database"}:::decision N_CalculateSequentialPCBNumberforCurrentDatabase_Node0_action["The system performs PCB number
calculation by iterating through
previous entries and incrementing
the sequence number for each
matching database name"]:::main N_CalculateSequentialPCBNumberforCurrentDatabase_Node0 -- Yes --> N_CalculateSequentialPCBNumberforCurrentDatabase_Node0_action N_CalculateSequentialPCBNumberforCurrentDatabase_Node0_action --> E_CalculateSequentialPCBNumberforCurrentDatabase S_CalculateSequentialPCBNumberforCurrentDatabase --> N_CalculateSequentialPCBNumberforCurrentDatabase_Node0 N_CalculateSequentialPCBNumberforCurrentDatabase_Node0 -- No --> E_CalculateSequentialPCBNumberforCurrentDatabase
File: CCISCOM.cbl
GIVEN: A database entry is being processed and PCB sequence number is initialized to 1
WHEN: The system needs to determine the sequential number for the current database
THEN:
  • The system performs pcb number calculation by iterating through previous entries
  • Incrementing the sequence number for each matching database name
βœ“ Consolidated Acceptance Criteria
  • The system is ready to create a new CCCOM entry → the CCCOM entry counter (J) is incremented by 1
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_IncrementCCCOMEntryCounter(["Start Step"]) E_IncrementCCCOMEntryCounter(["End Step"]) N_IncrementCCCOMEntryCounter_Node0{"The system is ready to create a new
CCCOM entry"}:::decision N_IncrementCCCOMEntryCounter_Node0_action["The CCCOM entry counter J is
incremented by 1"]:::main N_IncrementCCCOMEntryCounter_Node0 -- Yes --> N_IncrementCCCOMEntryCounter_Node0_action N_IncrementCCCOMEntryCounter_Node0_action --> E_IncrementCCCOMEntryCounter S_IncrementCCCOMEntryCounter --> N_IncrementCCCOMEntryCounter_Node0 N_IncrementCCCOMEntryCounter_Node0 -- No --> E_IncrementCCCOMEntryCounter
File: CCISCOM.cbl
GIVEN: An active PCB entry is being processed
WHEN: The system is ready to create a new CCCOM entry
THEN: The CCCOM entry counter (J) is incremented by 1
βœ“ Consolidated Acceptance Criteria
  • The system needs to populate the CCCOM entry with database information → the database name from the current ISCOM entry is copied to the corresponding CCCOM entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_CopyDatabaseNamefromISCOMtoCCCOM(["Start Step"]) E_CopyDatabaseNamefromISCOMtoCCCOM(["End Step"]) N_CopyDatabaseNamefromISCOMtoCCCOM_Node0{"The system needs to populate the
CCCOM entry with database
information"}:::decision N_CopyDatabaseNamefromISCOMtoCCCOM_Node0_action["The database name from the current
ISCOM entry is copied to the
corresponding CCCOM entry"]:::main N_CopyDatabaseNamefromISCOMtoCCCOM_Node0 -- Yes --> N_CopyDatabaseNamefromISCOMtoCCCOM_Node0_action N_CopyDatabaseNamefromISCOMtoCCCOM_Node0_action --> E_CopyDatabaseNamefromISCOMtoCCCOM S_CopyDatabaseNamefromISCOMtoCCCOM --> N_CopyDatabaseNamefromISCOMtoCCCOM_Node0 N_CopyDatabaseNamefromISCOMtoCCCOM_Node0 -- No --> E_CopyDatabaseNamefromISCOMtoCCCOM
File: CCISCOM.cbl
GIVEN: An active PCB entry is being processed and CCCOM counter has been incremented
WHEN: The system needs to populate the CCCOM entry with database information
THEN: The database name from the current ISCOM entry is copied to the corresponding CCCOM entry
βœ“ Consolidated Acceptance Criteria
  • The system needs to establish address mapping → the PCB address from the current ISCOM entry is mapped to the corresponding CCCOM entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_MapPCBAddressfromISCOMtoCCCOM(["Start Step"]) E_MapPCBAddressfromISCOMtoCCCOM(["End Step"]) N_MapPCBAddressfromISCOMtoCCCOM_Node0{"The system needs to establish
address mapping"}:::decision N_MapPCBAddressfromISCOMtoCCCOM_Node0_action["The PCB address from the current
ISCOM entry is mapped to the
corresponding CCCOM entry"]:::main N_MapPCBAddressfromISCOMtoCCCOM_Node0 -- Yes --> N_MapPCBAddressfromISCOMtoCCCOM_Node0_action N_MapPCBAddressfromISCOMtoCCCOM_Node0_action --> E_MapPCBAddressfromISCOMtoCCCOM S_MapPCBAddressfromISCOMtoCCCOM --> N_MapPCBAddressfromISCOMtoCCCOM_Node0 N_MapPCBAddressfromISCOMtoCCCOM_Node0 -- No --> E_MapPCBAddressfromISCOMtoCCCOM
File: CCISCOM.cbl
GIVEN: Database name has been copied from ISCOM to CCCOM
WHEN: The system needs to establish address mapping
THEN: The PCB address from the current ISCOM entry is mapped to the corresponding CCCOM entry
βœ“ Consolidated Acceptance Criteria
  • The system needs to set the database number field → if the PCB sequence number equals 1, the database number is set to spaces indicating first occurrence, otherwise the database number is set to the calculated PCB sequence number
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_SetDatabaseNumbertoSpacesorPCBSequenceNumber(["Start Step"]) E_SetDatabaseNumbertoSpacesorPCBSequenceNumber(["End Step"]) N_SetDatabaseNumbertoSpacesorPCBSequenceNumber_Node0{"The system needs to set the
database number field"}:::decision N_SetDatabaseNumbertoSpacesorPCBSequenceNumber_Node0_action["If the PCB sequence number equals
1, the database number is set to
spaces indicating first occurrence,
otherwise the database number is set
to the calculated PCB sequence
number"]:::main N_SetDatabaseNumbertoSpacesorPCBSequenceNumber_Node0 -- Yes --> N_SetDatabaseNumbertoSpacesorPCBSequenceNumber_Node0_action N_SetDatabaseNumbertoSpacesorPCBSequenceNumber_Node0_action --> E_SetDatabaseNumbertoSpacesorPCBSequenceNumber S_SetDatabaseNumbertoSpacesorPCBSequenceNumber --> N_SetDatabaseNumbertoSpacesorPCBSequenceNumber_Node0 N_SetDatabaseNumbertoSpacesorPCBSequenceNumber_Node0 -- No --> E_SetDatabaseNumbertoSpacesorPCBSequenceNumber
File: CCISCOM.cbl
GIVEN: PCB address has been mapped and PCB sequence number has been calculated
WHEN: The system needs to set the database number field
THEN: If the PCB sequence number equals 1, the database number is set to spaces indicating first occurrence, otherwise the database number is set to the calculated PCB sequence number
βœ“ Consolidated Acceptance Criteria
  • The system needs to determine the sequential PCB number for the current database entry → the system counts all previous occurrences of the same database name in positions 1 through I-1 and increments the PCB number for each match found, starting from an initial value of 1
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries(["Start Step"]) E_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries(["End Step"]) N_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries_Node0{"The system needs to determine the
sequential PCB number for the
current database entry"}:::decision N_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries_Node0_action["The system counts all previous
occurrences of the same database
name in positions 1 through I-1 and
increments the PCB number for each
match found, starting from an
initial value of 1"]:::main N_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries_Node0 -- Yes --> N_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries_Node0_action N_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries_Node0_action --> E_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries S_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries --> N_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries_Node0 N_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries_Node0 -- No --> E_PCBSequenceNumberingCalculatesequentialPCBnumbersforactivedatabaseentries
File: CCISCOM.cbl
GIVEN: An ISCOM table with database entries and a current database entry at position I with a specific database name
WHEN: The system needs to determine the sequential PCB number for the current database entry
THEN:
  • The system counts all previous occurrences of the same database name in positions 1 through i-1
  • Increments the pcb number for each match found, starting from an initial value of 1
βœ“ Consolidated Acceptance Criteria
  • The system needs to determine the PCB sequence number for the database at position I by examining all previous positions from 1 to I-1 → the system increments the PCB sequence number for each previous entry that has the same database name as the current entry
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation(["Start Step"]) E_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation(["End Step"]) N_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation_Node0{"The system needs to determine the
PCB sequence number for the database
at position I by examining all
previous positions from 1 to I-1"}:::decision N_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation_Node0_action["The system increments the PCB
sequence number for each previous
entry that has the same database
name as the current entry"]:::main N_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation_Node0 -- Yes --> N_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation_Node0_action N_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation_Node0_action --> E_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation S_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation --> N_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation_Node0 N_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation_Node0 -- No --> E_StartLoopK1toCurrentPositionI1Iteratethroughpreviousdatabaseentriestocountmatchingdatabasenamesforsequencecalculation
File: CCISCOM.cbl
GIVEN: An ISCOM table with database entries and a current position I being processed
WHEN: The system needs to determine the PCB sequence number for the database at position I by examining all previous positions from 1 to I-1
THEN: The system increments the PCB sequence number for each previous entry that has the same database name as the current entry
βœ“ Consolidated Acceptance Criteria
  • The system compares the database names at these positions → if the database names match exactly, the system identifies them as the same database requiring sequential PCB numbering
  • The database name in ISCOM entry at position K equals the database name in ISCOM entry at position I → the ISCOM PCB number counter is incremented by 1 to track the occurrence of matching database names
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_CompareDatabaseNamesISCOMKvsISCOMI(["Start Step"]) E_CompareDatabaseNamesISCOMKvsISCOMI(["End Step"]) N_CompareDatabaseNamesISCOMKvsISCOMI_Node0{"The system compares the database
names at these positions"}:::decision N_CompareDatabaseNamesISCOMKvsISCOMI_Node0_action["If the database names match
exactly, the system identifies them
as the same database requiring
sequential PCB numbering"]:::main N_CompareDatabaseNamesISCOMKvsISCOMI_Node0 -- Yes --> N_CompareDatabaseNamesISCOMKvsISCOMI_Node0_action N_CompareDatabaseNamesISCOMKvsISCOMI_Node0_action --> E_CompareDatabaseNamesISCOMKvsISCOMI S_CompareDatabaseNamesISCOMKvsISCOMI --> N_CompareDatabaseNamesISCOMKvsISCOMI_Node0 N_CompareDatabaseNamesISCOMKvsISCOMI_Node1{"The database name in ISCOM entry at
position K equals the database name
in ISCOM entry at position I"}:::decision N_CompareDatabaseNamesISCOMKvsISCOMI_Node1_action["The ISCOM PCB number counter is
incremented by 1 to track the
occurrence of matching database
names"]:::main N_CompareDatabaseNamesISCOMKvsISCOMI_Node1 -- Yes --> N_CompareDatabaseNamesISCOMKvsISCOMI_Node1_action N_CompareDatabaseNamesISCOMKvsISCOMI_Node1_action --> E_CompareDatabaseNamesISCOMKvsISCOMI N_CompareDatabaseNamesISCOMKvsISCOMI_Node0 -- No --> N_CompareDatabaseNamesISCOMKvsISCOMI_Node1 N_CompareDatabaseNamesISCOMKvsISCOMI_Node1 -- No --> E_CompareDatabaseNamesISCOMKvsISCOMI
File: CCISCOM.cbl
GIVEN: Two database entries in the ISCOM table at positions K and I
WHEN: The system compares the database names at these positions
THEN: If the database names match exactly, the system identifies them as the same database requiring sequential PCB numbering
File: CCISCOM.cbl
GIVEN: Two ISCOM table entries with positions K and I are being compared, where K represents the comparison entry and I represents the current processing entry
WHEN: The database name in ISCOM entry at position K equals the database name in ISCOM entry at position I
THEN: The ISCOM PCB number counter is incremented by 1 to track the occurrence of matching database names
βœ“ Consolidated Acceptance Criteria
  • The system finds that the database name at position K matches the database name at position I → the system adds 1 to the PCB sequence number counter to reflect the sequential occurrence of this database
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_IncrementPCBSequenceNumber(["Start Step"]) E_IncrementPCBSequenceNumber(["End Step"]) N_IncrementPCBSequenceNumber_Node0{"The system finds that the database
name at position K matches the
database name at position I"}:::decision N_IncrementPCBSequenceNumber_Node0_action["The system adds 1 to the PCB
sequence number counter to reflect
the sequential occurrence of this
database"]:::main N_IncrementPCBSequenceNumber_Node0 -- Yes --> N_IncrementPCBSequenceNumber_Node0_action N_IncrementPCBSequenceNumber_Node0_action --> E_IncrementPCBSequenceNumber S_IncrementPCBSequenceNumber --> N_IncrementPCBSequenceNumber_Node0 N_IncrementPCBSequenceNumber_Node0 -- No --> E_IncrementPCBSequenceNumber
File: CCISCOM.cbl
GIVEN: A PCB sequence number counter (ISCOM-PCB-NUM) and two database entries with matching names
WHEN: The system finds that the database name at position K matches the database name at position I
THEN: The system adds 1 to the PCB sequence number counter to reflect the sequential occurrence of this database
βœ“ Consolidated Acceptance Criteria
  • The system begins processing ISCOM entries for conversion to CCCOM → the CCCOM entry counter (J) is set to zero to track new entries
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_InitializeCCCOMEntryCounterto0(["Start Step"]) E_InitializeCCCOMEntryCounterto0(["End Step"]) N_InitializeCCCOMEntryCounterto0_Node0{"The system begins processing ISCOM
entries for conversion to CCCOM"}:::decision N_InitializeCCCOMEntryCounterto0_Node0_action["The CCCOM entry counter J is set to
zero to track new entries"]:::main N_InitializeCCCOMEntryCounterto0_Node0 -- Yes --> N_InitializeCCCOMEntryCounterto0_Node0_action N_InitializeCCCOMEntryCounterto0_Node0_action --> E_InitializeCCCOMEntryCounterto0 S_InitializeCCCOMEntryCounterto0 --> N_InitializeCCCOMEntryCounterto0_Node0 N_InitializeCCCOMEntryCounterto0_Node0 -- No --> E_InitializeCCCOMEntryCounterto0
File: CCISCOM.cbl
GIVEN: The database entry creation process is starting
WHEN: The system begins processing ISCOM entries for conversion to CCCOM
THEN: The CCCOM entry counter (J) is set to zero to track new entries
βœ“ Consolidated Acceptance Criteria
  • The system checks the PCB address of the ISCOM entry → if PCB address is not zero, the entry is considered active and eligible for processing, otherwise it is skipped
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_ISCOMEntryHasActivePCBAddress(["Start Step"]) E_ISCOMEntryHasActivePCBAddress(["End Step"]) N_ISCOMEntryHasActivePCBAddress_Node0{"The system checks the PCB address
of the ISCOM entry"}:::decision N_ISCOMEntryHasActivePCBAddress_Node0_action["If PCB address is not zero, the
entry is considered active and
eligible for processing, otherwise
it is skipped"]:::main N_ISCOMEntryHasActivePCBAddress_Node0 -- Yes --> N_ISCOMEntryHasActivePCBAddress_Node0_action N_ISCOMEntryHasActivePCBAddress_Node0_action --> E_ISCOMEntryHasActivePCBAddress S_ISCOMEntryHasActivePCBAddress --> N_ISCOMEntryHasActivePCBAddress_Node0 N_ISCOMEntryHasActivePCBAddress_Node0 -- No --> E_ISCOMEntryHasActivePCBAddress
File: CCISCOM.cbl
GIVEN: An ISCOM database entry is being evaluated for conversion
WHEN: The system checks the PCB address of the ISCOM entry
THEN:
  • If pcb address is not zero, the entry is considered active
  • Eligible for processing, otherwise it is skipped
βœ“ Consolidated Acceptance Criteria
  • The system processes the ISCOM entry with non-zero PCB address → the system increments the CCCOM entry counter, copies the database name from ISCOM to CCCOM, sets the PCB address, and assigns the database number (spaces if PCB number is '1', otherwise the actual PCB number)
  • The system encounters a database name that may have multiple instances → the system counts how many times the same database name appears in ISCOM entries up to the current position to determine the correct PCB sequence number
  • The system needs to assign the database number in CCCOM structure → if the PCB sequence number is '1', the database number is set to spaces, otherwise the actual PCB sequence number is assigned as the database number
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_CreateNewCCCOMDatabaseEntry(["Start Step"]) E_CreateNewCCCOMDatabaseEntry(["End Step"]) N_CreateNewCCCOMDatabaseEntry_Node0{"The system processes the ISCOM
entry with non-zero PCB address"}:::decision N_CreateNewCCCOMDatabaseEntry_Node0_action["The system increments the CCCOM
entry counter, copies the database
name from ISCOM to CCCOM, sets the
PCB address, and assigns the
database number spaces if PCB number
is 1 , otherwise the actual PCB
number"]:::main N_CreateNewCCCOMDatabaseEntry_Node0 -- Yes --> N_CreateNewCCCOMDatabaseEntry_Node0_action N_CreateNewCCCOMDatabaseEntry_Node0_action --> E_CreateNewCCCOMDatabaseEntry S_CreateNewCCCOMDatabaseEntry --> N_CreateNewCCCOMDatabaseEntry_Node0 N_CreateNewCCCOMDatabaseEntry_Node1{"The system encounters a database
name that may have multiple
instances"}:::decision N_CreateNewCCCOMDatabaseEntry_Node1_action["The system counts how many times
the same database name appears in
ISCOM entries up to the current
position to determine the correct
PCB sequence number"]:::main N_CreateNewCCCOMDatabaseEntry_Node1 -- Yes --> N_CreateNewCCCOMDatabaseEntry_Node1_action N_CreateNewCCCOMDatabaseEntry_Node1_action --> E_CreateNewCCCOMDatabaseEntry N_CreateNewCCCOMDatabaseEntry_Node0 -- No --> N_CreateNewCCCOMDatabaseEntry_Node1 N_CreateNewCCCOMDatabaseEntry_Node2{"The system needs to assign the
database number in CCCOM structure"}:::decision N_CreateNewCCCOMDatabaseEntry_Node2_action["If the PCB sequence number is 1 ,
the database number is set to
spaces, otherwise the actual PCB
sequence number is assigned as the
database number"]:::main N_CreateNewCCCOMDatabaseEntry_Node2 -- Yes --> N_CreateNewCCCOMDatabaseEntry_Node2_action N_CreateNewCCCOMDatabaseEntry_Node2_action --> E_CreateNewCCCOMDatabaseEntry N_CreateNewCCCOMDatabaseEntry_Node1 -- No --> N_CreateNewCCCOMDatabaseEntry_Node2 N_CreateNewCCCOMDatabaseEntry_Node2 -- No --> E_CreateNewCCCOMDatabaseEntry
File: CCISCOM.cbl
GIVEN: An active ISCOM database entry needs to be converted to CCCOM format
WHEN: The system processes the ISCOM entry with non-zero PCB address
THEN: The system increments the CCCOM entry counter, copies the database name from ISCOM to CCCOM, sets the PCB address, and assigns the database number (spaces if PCB number is '1', otherwise the actual PCB number)
File: CCISCOM.cbl
GIVEN: A database entry is being processed and needs a PCB sequence number
WHEN: The system encounters a database name that may have multiple instances
THEN: The system counts how many times the same database name appears in ISCOM entries up to the current position to determine the correct PCB sequence number
File: CCISCOM.cbl
GIVEN: A PCB sequence number has been calculated for a database entry
WHEN: The system needs to assign the database number in CCCOM structure
THEN: If the PCB sequence number is '1', the database number is set to spaces, otherwise the actual PCB sequence number is assigned as the database number
βœ“ Consolidated Acceptance Criteria
  • The system performs reverse conversion from ISCOM to CCCOM format → the PCB address from ISCOM entry I is copied to CCCOM entry J to establish the database access reference
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ(["Start Step"]) E_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ(["End Step"]) N_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ_Node0{"The system performs reverse
conversion from ISCOM to CCCOM
format"}:::decision N_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ_Node0_action["The PCB address from ISCOM entry I
is copied to CCCOM entry J to
establish the database access
reference"]:::main N_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ_Node0 -- Yes --> N_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ_Node0_action N_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ_Node0_action --> E_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ S_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ --> N_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ_Node0 N_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ_Node0 -- No --> E_CopyPCBAddressfromISCOMEntryItoCCCOMEntryJ
File: CCISCOM.cbl
GIVEN: An ISCOM entry at position I contains a valid PCB address and a corresponding CCCOM entry exists at position J
WHEN: The system performs reverse conversion from ISCOM to CCCOM format
THEN: The PCB address from ISCOM entry I is copied to CCCOM entry J to establish the database access reference
βœ“ Consolidated Acceptance Criteria
  • The ISCOM PCB number equals '1' indicating this is the first occurrence of this database name → the database number field in the CCCOM entry should be set to spaces to mark it as the primary database reference
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_AssignSPACEStoDatabaseNumberFirstOccurrence(["Start Step"]) E_AssignSPACEStoDatabaseNumberFirstOccurrence(["End Step"]) N_AssignSPACEStoDatabaseNumberFirstOccurrence_Node0{"The ISCOM PCB number equals 1
indicating this is the first
occurrence of this database name"}:::decision N_AssignSPACEStoDatabaseNumberFirstOccurrence_Node0_action["The database number field in the
CCCOM entry should be set to spaces
to mark it as the primary database
reference"]:::main N_AssignSPACEStoDatabaseNumberFirstOccurrence_Node0 -- Yes --> N_AssignSPACEStoDatabaseNumberFirstOccurrence_Node0_action N_AssignSPACEStoDatabaseNumberFirstOccurrence_Node0_action --> E_AssignSPACEStoDatabaseNumberFirstOccurrence S_AssignSPACEStoDatabaseNumberFirstOccurrence --> N_AssignSPACEStoDatabaseNumberFirstOccurrence_Node0 N_AssignSPACEStoDatabaseNumberFirstOccurrence_Node0 -- No --> E_AssignSPACEStoDatabaseNumberFirstOccurrence
File: CCISCOM.cbl
GIVEN: A database entry is being processed during ISCOM to CCCOM conversion and the ISCOM PCB number has been determined
WHEN: The ISCOM PCB number equals '1' indicating this is the first occurrence of this database name
THEN: The database number field in the CCCOM entry should be set to spaces to mark it as the primary database reference
βœ“ Consolidated Acceptance Criteria
  • The ISCOM PCB number is not equal to '1' indicating this is a subsequent occurrence of this database name → the database number field in the CCCOM entry should be set to the actual ISCOM PCB number to maintain proper sequencing
Step Micro-Flow Sequence
flowchart TD classDef main fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; classDef exclusion fill:#fadbd8,stroke:#e74c3c,stroke-width:2px,color:#c0392b; classDef decision fill:#e9f7ef,stroke:#27ae60,stroke-width:2px; S_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence(["Start Step"]) E_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence(["End Step"]) N_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence_Node0{"The ISCOM PCB number is not equal
to 1 indicating this is a subsequent
occurrence of this database name"}:::decision N_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence_Node0_action["The database number field in the
CCCOM entry should be set to the
actual ISCOM PCB number to maintain
proper sequencing"]:::main N_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence_Node0 -- Yes --> N_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence_Node0_action N_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence_Node0_action --> E_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence S_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence --> N_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence_Node0 N_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence_Node0 -- No --> E_AssignPCBNumbertoDatabaseNumberSubsequentOccurrence
File: CCISCOM.cbl
Exclusion / Alternative Path
GIVEN: A database entry is being processed during ISCOM to CCCOM conversion and the ISCOM PCB number has been determined
WHEN: The ISCOM PCB number is not equal to '1' indicating this is a subsequent occurrence of this database name
THEN: The database number field in the CCCOM entry should be set to the actual ISCOM PCB number to maintain proper sequencing