Skip to content

BB943 OCL

The provided document appears to be an excerpt of an IBM i (AS/400) OCL (Operation Control Language) procedure, specifically named BB943.ocl36.txt. This OCL script is used to manage the execution of an RPG program related to a "Customer Sales Agreement Master Maintenance" process. Below, I'll explain the process steps, list the external programs called, and identify any tables used, based on the provided information and typical conventions for OCL and RPG programs on IBM i systems.

Process Steps of the OCL Program

OCL (Operation Control Language) is used on IBM i systems to control job execution, submit jobs, and pass parameters to programs. The provided OCL script is minimal, but it outlines a straightforward process. Here are the steps inferred from the script:

  1. Comment Identification:
  2. The lines starting with // are comments in OCL, providing metadata or context about the procedure.
  3. SCPROCP ,,,,,,,,?9? likely indicates the procedure name (SCPROCP) and a parameter placeholder (?9?), which is used to pass a variable or value to the program.
  4. CUSTOMER SALES AGREEMENT MASTER MAINTENANCE describes the purpose of the procedure, which is to maintain customer sales agreement data.
  5. GSY2K might be a system identifier, library, or a specific configuration reference, possibly related to the application or environment.

  6. Job Submission:

  7. The SBMJOB command submits a batch job to the IBM i system for execution.
  8. The command is: SBMJOB CMD(CALL PGM(PRICEGEN) PARM(('?9?')))
    • CMD(CALL PGM(PRICEGEN)): This invokes the RPG program named PRICEGEN.
    • PARM(('?9?')): The parameter ?9? is passed to the PRICEGEN program. The ?9? is a placeholder, typically replaced by a specific value when the OCL procedure is invoked (e.g., a mode, customer ID, or other control value).
  9. The SBMJOB command runs the job in batch mode, allowing it to execute asynchronously in the background.

  10. Execution of the RPG Program:

  11. The PRICEGEN program is called with the provided parameter (?9?).
  12. Based on the comment CALL BB943P PARM('MNT' '?9?'), it seems the OCL script may be a simplified or alternative version of a call to BB943P (another program), but in this case, it calls PRICEGEN.
  13. The PRICEGEN program likely performs the core logic for maintaining customer sales agreement data, such as updating records, generating pricing data, or performing maintenance tasks based on the parameter passed.

  14. Parameter Handling:

  15. The ?9? placeholder suggests that the OCL procedure is designed to accept a variable input, which could represent a mode (e.g., 'MNT' for maintenance), a customer identifier, or another control value.
  16. The parameter is passed to PRICEGEN, which uses it to determine the specific actions to take (e.g., add, update, or delete records).

  17. Completion:

  18. Once the PRICEGEN program completes, the batch job ends. The OCL script does not specify additional steps, such as error handling or logging, but these may be handled within the RPG program or by the system's job management.

External Programs Called

Based on the OCL script, the following external program is explicitly called: - PRICEGEN: An RPG program invoked via the SBMJOB command with a parameter (?9?). This program is responsible for the core processing, likely related to customer sales agreement maintenance or pricing generation.

Additionally, the comment CALL BB943P PARM('MNT' '?9?') suggests that another program, BB943P, may be relevant in a related context or version of the procedure. However, since the actual command in the provided script calls PRICEGEN, only PRICEGEN is confirmed as an external program called by this specific OCL script.

Tables Used

The provided OCL script does not explicitly list any database files or tables used by the PRICEGEN program. In IBM i RPG programs, tables (or files) are typically defined within the RPG program's File Description Specifications (F-Specs) or accessed via embedded SQL, and these details are not visible in the OCL script.

However, based on the context ("Customer Sales Agreement Master Maintenance"), it is reasonable to infer that PRICEGEN likely interacts with one or more of the following types of tables/files: - Customer Master File: Contains customer details (e.g., customer ID, name, address). - Sales Agreement File: Stores sales agreement data (e.g., agreement ID, terms, pricing). - Pricing File: Holds pricing information or rules for customer agreements. - Transaction or History File: Logs changes or updates made during maintenance.

Without access to the PRICEGEN program's source code or additional documentation, specific table names cannot be confirmed. If you have access to the RPG program or related documentation, I can analyze those to provide precise table names.

Additional Notes

  • Parameter ?9?: This is a placeholder in OCL, typically replaced by a value when the procedure is invoked. For example, it could be a mode like 'MNT' (maintenance), 'ADD', or a specific identifier. The actual value determines the behavior of PRICEGEN.
  • Error Handling: The OCL script does not include error handling or logging mechanisms, which might be managed within PRICEGEN or by the IBM i job subsystem.
  • RPG Program Logic: Since PRICEGEN is an RPG program, it likely uses traditional RPG logic (e.g., CHAIN, READ, WRITE, UPDATE operations) to interact with database files, or it may use embedded SQL for more modern applications.

Summary

  • Process Steps: The OCL script submits a batch job to call the PRICEGEN RPG program with a parameter (?9?), which performs customer sales agreement maintenance tasks.
  • External Programs Called: PRICEGEN (RPG program).
  • Tables Used: Not specified in the OCL script; likely includes customer, sales agreement, or pricing-related files, but exact names require further details from the PRICEGEN program.

If you can provide the RPG source code for PRICEGEN or additional details about the system (e.g., library names, file definitions), I can offer a more detailed analysis of the tables and logic involved. Alternatively, I can search for related information if you enable DeepSearch mode or provide specific search terms. Let me know how you'd like to proceed!