Init
This commit is contained in:
100
MARS_Packages/REL01/MARS-1011/WORKFLOW_MANAGER_SPEC.sql
Normal file
100
MARS_Packages/REL01/MARS-1011/WORKFLOW_MANAGER_SPEC.sql
Normal file
@@ -0,0 +1,100 @@
|
||||
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;
|
||||
/
|
||||
Reference in New Issue
Block a user