Files
mars/MARS_Packages/REL01/MARS-1011/WORKFLOW_MANAGER_SPEC.sql
Grzegorz Michalski ecd833f682 Init
2026-02-02 10:59:29 +01:00

100 lines
4.7 KiB
SQL

CREATE OR REPLACE PACKAGE CT_MRDS.WORKFLOW_MANAGER
IS
-- Package Version Information (Semantic Versioning: MAJOR.MINOR.PATCH)
PACKAGE_VERSION CONSTANT VARCHAR2(10) := '1.7.1';
PACKAGE_BUILD_DATE CONSTANT VARCHAR2(20) := '2025-11-18 12:00:00';
PACKAGE_AUTHOR CONSTANT VARCHAR2(100) := 'Grzegorz Michalski';
-- Version History (Latest changes first)
VERSION_HISTORY CONSTANT VARCHAR2(4000) :=
'1.7.1 (2025-11-18): Added SERVICE_NAME column with hardcoded ''ODS'' value to INIT_TASK function' || CHR(13)||CHR(10) ||
'1.7.0 (2025-10-31): Added FINALISE_TASK_WITH_TARGET_INFO function for atomic task completion with target info' || CHR(13)||CHR(10) ||
'1.6.0 (2025-10-31): Converted STORE_TASK_SOURCE_INFO and STORE_TASK_TARGET_INFO from procedures to functions returning sequence keys' || CHR(13)||CHR(10) ||
'1.5.0 (2025-10-22): Added package versioning system using centralized ENV_MANAGER functions' || CHR(13)||CHR(10) ||
'1.2.0 (2025-10-05): Added workflow property management (SET/GET_WORKFLOW_PROPERTY)' || CHR(13)||CHR(10) ||
'1.0.0 (2025-09-10): Initial release with workflow and task lifecycle management';
-- Line break constant for consistent CRLF formatting across Windows environments
cgBL CONSTANT VARCHAR2(2) := CHR(13)||CHR(10);
FUNCTION INIT_WORKFLOW(pServiceName IN VARCHAR2, pWorkflowRunId IN VARCHAR2, pWorkflowName in VARCHAR2)
RETURN NUMBER;
PROCEDURE FINALISE_WORKFLOW(pWorkflowHistoryKey IN NUMBER, pWorkflowStatus IN VARCHAR2);
PROCEDURE FINALISE_WORKFLOW(pWorkflowHistoryKey IN NUMBER, pServiceName IN VARCHAR2, pWorkflowStatus IN VARCHAR2);
FUNCTION INIT_TASK(pTaskRunId IN VARCHAR2, pTaskName in VARCHAR2, pWorkflowHistoryKey IN NUMBER)
RETURN NUMBER;
PROCEDURE FINALISE_TASK(pTaskHistoryKey IN NUMBER, pTaskStatus IN VARCHAR2);
FUNCTION STORE_TASK_SOURCE_INFO(pTaskHistoryKey IN NUMBER, pSourceName IN VARCHAR2, pNumRows IN NUMBER)
RETURN NUMBER;
FUNCTION STORE_TASK_TARGET_INFO(pTaskHistoryKey IN NUMBER, pSourceName IN VARCHAR2,
pNumRowsApplied IN NUMBER, pNumRowsRejected IN NUMBER,
pLoadSuccessful IN VARCHAR2, pServiceName IN VARCHAR2)
RETURN NUMBER;
FUNCTION FINALISE_TASK_WITH_TARGET_INFO(pTaskHistoryKey IN NUMBER, pTaskStatus IN VARCHAR2,
pTargetName IN VARCHAR2, pNumRowsApplied IN NUMBER,
pNumRowsRejected IN NUMBER, pLoadSuccessful IN VARCHAR2,
pServiceName IN VARCHAR2)
RETURN NUMBER;
vpRunningStatus CT_MRDS.A_WORKFLOW_HISTORY.WORKFLOW_SUCCESSFUL%TYPE := 'R';
--
-- Set and get information on workflow level
--
PROCEDURE SET_WORKFLOW_PROPERTY(
pWorkflowHistoryKey IN NUMBER
,pServiceName IN VARCHAR2
,pProperty IN VARCHAR2
,pValue IN VARCHAR2
);
FUNCTION GET_WORKFLOW_PROPERTY(
pWorkflowHistoryKey IN NUMBER
,pServiceName IN VARCHAR2
,pProperty IN VARCHAR2)
RETURN VARCHAR2;
---------------------------------------------------------------------------------------------------------------------------
-- PACKAGE VERSION MANAGEMENT FUNCTIONS
---------------------------------------------------------------------------------------------------------------------------
/**
* @name GET_VERSION
* @desc Returns the current version number of the WORKFLOW_MANAGER package.
* Uses semantic versioning format (MAJOR.MINOR.PATCH).
* @example SELECT WORKFLOW_MANAGER.GET_VERSION() FROM DUAL;
* @ex_rslt 1.5.0
**/
FUNCTION GET_VERSION RETURN VARCHAR2;
/**
* @name GET_BUILD_INFO
* @desc Returns comprehensive build information including version, build date, and author.
* Uses centralized ENV_MANAGER.GET_PACKAGE_VERSION_INFO function.
* @example SELECT WORKFLOW_MANAGER.GET_BUILD_INFO() FROM DUAL;
* @ex_rslt Package: WORKFLOW_MANAGER
* Version: 1.5.0
* Build Date: 2025-10-22 17:00:00
* Author: Grzegorz Michalski
**/
FUNCTION GET_BUILD_INFO RETURN VARCHAR2;
/**
* @name GET_VERSION_HISTORY
* @desc Returns complete version history with all releases and changes.
* Uses centralized ENV_MANAGER.FORMAT_VERSION_HISTORY function.
* @example SELECT WORKFLOW_MANAGER.GET_VERSION_HISTORY() FROM DUAL;
* @ex_rslt WORKFLOW_MANAGER Version History:
* 1.5.0 (2025-10-22): Added package versioning system...
**/
FUNCTION GET_VERSION_HISTORY RETURN VARCHAR2;
END WORKFLOW_MANAGER;
/