Skip to content

Conversation

@buzzia2001
Copy link

@buzzia2001 buzzia2001 commented Jan 6, 2026

Pull Request: Removed Old Deprecation - Enhanced Action Support - New Object Types

Summary

This PR removes old deprecation warnings and adds comprehensive action support for IBM i object types. The extension now supports 20 different IBM i object types with detailed views and management capabilities.

Object Types and Actions

Object Type Actions Available Toolbar
Data Queue (DTAQ) Send Message, Clear Queue
Data Area (DTAARA) Change Value
Binding Directory (BNDDIR) Add Entry, Remove Entry
File (FILE) Query File
Job Queue (JOBQ) Hold, Release, Clear, Hold/Release/End Jobs
Journal (JRN) Generate Receiver, Display Entries
Message Queue (MSGQ) Clear Queue
Output Queue (OUTQ) Hold, Release, Clear, Manage Writer, Delete Old Spools, Generate PDF, Delete Spool
Save File (SAVF) Download, Upload, Clear, Save, Restore
Subsystem (SBSD) Start, End, End Jobs
User Space (USRSPC) Change Value
Class (CLS) -
Command (CMD) -
DDM File (DDMF) -
Job Description (JOBD) -
Journal Receiver (JRNRCV) -
Message File (MSGF) -
Module (MODULE) -
Program/Service Program (PGM/SRVPGM) -
Query Definition (QRYDFN) Translate to SQL

Key Features

Common to All Actions

  • Auto-refresh: Document updates after successful toolbar actions
  • Protected library validation: Blocks operations on system libraries
  • Error handling: Comprehensive validation and error messages
  • Confirmation dialogs: For destructive operations

Action Details by Object Type

Data Queue

  • Send Message: Keyed/non-keyed support, UTF8 format, length validation, key validation
  • Clear Queue: Removes all messages with confirmation
  • View: Messages (standard & UTF8), queue info, sender details, timestamps

Data Area

  • Change Value: All types (*CHAR, *DEC, *LGL), substring modification (start/length), type-based validation, range checking
  • View: Current value, type, length, decimal positions, text description

Binding Directory

  • Add Entry: *MODULE/*SRVPGM support, *IMMED/*DEFER activation, path validation (library/object format)
  • Remove Entry: Individual entry removal with confirmation
  • View: Entries list, exported procedures from bound service programs

File

  • Query File: Opens SQL editor with pre-filled SELECT statement
  • View: File/table/view/index info, statistics, members, dependent objects, supports PF/LF/VIEW/INDEX

Job Queue

  • Hold/Release/Clear: Queue-level operations with status validation
  • Hold/Release/End Jobs: Individual job management with confirmation
  • View: Queue status, jobs list with details (status, submitter, timestamps)

Journal

  • Generate Receiver: Creates new journal receiver (CHGJRN JRNRCV(*GEN))
  • Display Entries: Opens SQL editor with DISPLAY_JOURNAL table function query
  • View: Journal configuration, receiver chain with statistics, sequence numbers, timestamps

Message Queue

  • Clear Queue: Removes all messages with confirmation (CLRMSGQ)
  • View: Messages with ID, first/second level text, severity, sender job/user, timestamps

Output Queue

  • Hold/Release/Clear: Queue management operations (HLDOUTQ/RLSOUTQ/CLROUTQ)
  • Manage Writer: Auto start/stop based on current state (STRRMTWTR/STRPRTWTR/ENDWTR)
  • Delete Old Spools: Age-based deletion with day input (SYSTOOLS.DELETE_OLD_SPOOLED_FILES)
  • Generate PDF: Download individual spool as PDF (SYSTOOLS.GENERATE_PDF)
  • Delete Spool: Remove individual spooled file (DLTSPLF)
  • View: Queue status, spooled files list with details (name, user, job, pages, size)

Save File

  • Download: Export SAVF to local file (copy to stream file, then download)
  • Upload: Import local file to SAVF (upload, then copy from stream file)
  • Clear: Remove all objects from SAVF (CLRSAVF)
  • Save: Save objects/libraries to SAVF with comprehensive options (SAVOBJ/SAVLIB)
  • Restore: Restore from SAVF with comprehensive options (RSTOBJ/RSTLIB)
  • View: SAVF info, objects list, file members, spooled files, IFS objects (multi-panel)

Subsystem

  • Start: Start subsystem with confirmation (STRSBS)
  • End: End subsystem with option selection *IMMED/*CNTRLD (ENDSBS)
  • End Jobs: End individual jobs in subsystem (ENDJOB)
  • View: Subsystem status, pools, autostart jobs, workstation entries, routing entries, prestart jobs, job queue entries, active jobs

User Space

  • Change Value: Modify user space data with start position and value input (QSYS2.CHANGE_USER_SPACE)
  • View: Size, extendable flag, initial value, domain, data (text and binary/hex)

Class (Read-Only)

  • View: Run priority, time slice, resource limits (CPU time, temporary storage, threads), default wait time, purge eligibility, usage statistics
  • Note: Uses QWCRCLSI API via SQL stored procedure (auto-created on first use)

Command (Read-Only)

  • View: Processing program, validity checking program, prompt override program, message/help files, execution environment settings (interactive/batch/REXX), threading attributes, CCSID

DDM File (Read-Only)

  • View: Remote location info (system name/address, port), access method, remote file name/library, connection settings
  • Note: Parses DSPDDMF output, handles multi-line field values

Job Description (Read-Only)

  • View: Job queue, output queue, library list, accounting code, routing data, message logging, job switches, hold on job queue

Journal Receiver (Read-Only)

  • View: Status, size, sequence numbers (first/last), attach/detach/save timestamps, linked receivers (previous/next), remote journal configuration, filter settings

Message File (Read-Only)

  • View: All messages with ID, first/second level text, severity, reply type, default reply, valid reply values/ranges

Module (Read-Only)

  • View: Basic info (creation date, source file, compiler options), size details (code, debug data, static storage), procedures list, imports/exports, referenced system objects, copyright strings
  • Note: Uses DSPMOD with multiple DETAIL options (*BASIC, *SIZE, *IMPORT, *EXPORT, *PROCLIST, *REFSYSOBJ, *COPYRIGHT)

Program/Service Program (Read-Only)

  • View: Program info, bound modules with source details, bound service programs with signatures, exported procedures (SRVPGM only), SQL settings, optimization details, activation group

Query Definition

  • Translate to SQL: Converts Query/400 definitions to SQL format using RTVQMQRY command
  • View: SQL translation of query definition with proper table notation (LIB.FILE instead of LIB/FILE)
  • Note: Uses temporary source file and alias for extraction, automatically cleans up temporary objects

Testing Requirements

For Each Action Test:

  • Toolbar execution - Click button in editor, verify auto-refresh
  • Protected library - Test on QSYS objects, verify blocked with warning
  • Error scenarios - Invalid inputs, disconnected connection, command failures
  • Confirmation dialogs - Verify for destructive operations (delete, clear, end)
  • Input validation - Test boundary conditions, invalid formats, empty values

Specific Test Cases by Object Type

Data Queue

  • Send message to non-keyed queue
  • Send message to keyed queue with valid key
  • Send UTF8 message
  • Send message exceeding max length (should fail validation)
  • Send message with key exceeding key length (should fail validation)
  • Clear queue with messages
  • Clear empty queue
  • View messages in standard format
  • View messages in UTF8 format

Data Area

  • Change *CHAR data area (full value)
  • Change *CHAR data area (substring with start/length)
  • Change *DEC data area with valid decimal
  • Change *DEC data area with out-of-range value (should fail)
  • Change *LGL data area with 0
  • Change *LGL data area with 1
  • Change *LGL data area with invalid value (should fail)
  • Test on protected library (should fail)

Binding Directory

  • Add *MODULE entry with *IMMED activation
  • Add *SRVPGM entry with *DEFER activation
  • Add entry with invalid path format (should fail validation)
  • Remove entry with confirmation
  • Cancel remove operation
  • View entries list
  • View exported procedures from bound service programs

File

  • Query physical file (PF)
  • Query logical file (LF)
  • Query SQL view
  • Query SQL index
  • View file statistics
  • View file members
  • View dependent objects

Job Queue

  • Hold job queue (verify status change)
  • Release held job queue
  • Try to hold already held queue (should fail)
  • Try to release non-held queue (should fail)
  • Clear job queue with jobs
  • Hold individual job in queue
  • Release held job
  • End individual job with confirmation
  • View jobs list with status

Journal

  • Generate new journal receiver
  • Display journal entries in SQL editor
  • View journal configuration
  • View receiver chain
  • View receiver statistics (entries, sequence numbers)

Message Queue

  • Clear queue with messages
  • Clear empty queue
  • View messages with different severities
  • View message first level text
  • View message second level text
  • View sender information

Output Queue

  • Hold output queue
  • Release output queue
  • Clear output queue with spools
  • Start printer writer (remote)
  • Start printer writer (local)
  • Stop printer writer
  • Manage writer (auto start/stop based on state)
  • Delete old spools (specify days)
  • Generate PDF from spool file
  • Download generated PDF
  • Delete individual spool file
  • View spooled files list

Save File

  • Download SAVF to local file
  • Upload local file to SAVF
  • Clear SAVF with objects
  • Save object to SAVF (with options: object type, target release, compression)
  • Save library to SAVF (with options)
  • Restore object from SAVF (with options: target library, object differences)
  • Restore library from SAVF (with options)
  • View SAVF contents (objects, members, spools, IFS objects)

Subsystem

  • Start subsystem
  • End subsystem with *IMMED option
  • End subsystem with *CNTRLD option
  • End individual job in subsystem
  • View subsystem status
  • View pools configuration
  • View autostart jobs
  • View workstation entries
  • View routing entries
  • View prestart job entries
  • View job queue entries
  • View active jobs

User Space

  • Change user space value at position 1
  • Change user space value at custom position
  • View user space data (text format)
  • View user space data (binary/hex format)
  • View size and extendable flag

Read-Only Objects (Class, Command, DDM File, Job Description, Journal Receiver, Message File, Module, Program/Service Program)

  • Open object from browser
  • View all detail panels/tabs
  • Verify no action buttons in toolbar
  • Verify all information displays correctly
  • Test with various object configurations

Query Definition

  • Translate Query/400 definition to SQL
  • Verify SQL syntax correctness
  • Verify table notation conversion (LIB/FILE to LIB.FILE)
  • Test with complex queries (joins, subqueries)
  • Verify temporary objects cleanup
  • Test error handling for invalid query definitions

close #4
close #5
close #7
close #9
close #11
close #12
close #13
close #14

@sebCIL
Copy link

sebCIL commented Jan 20, 2026

hi,

a long time ago, i made pull requests on this repo.

How can i help now ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Spool file viewer Data Queue viewer User space viewer JOBQ viewer JOBD viewer

3 participants