Results for “wf_ddl”

27 results




AI-generated from documented ETRM metadata — verify critical details on the linked pages.

Overview

WF_DDL is a low-level Oracle Workflow utility package that provides controlled, programmatic execution of Data Definition Language (DDL) statements from within PL/SQL. In Oracle E-Business Suite 12.1.1 and 12.2.2, the package body resides in the APPS schema and exposes a deliberately narrow surface area: dynamic index removal and dynamic table truncation. Because native PL/SQL cannot execute DDL directly without dynamic SQL, WF_DDL centralizes this capability and wraps it with consistent error handling and diagnostic context.

The package is driven by its header comment, which identifies the source file as WFDDLB.pls, version 115.2, dated 2002/10/28, and explicitly marked "noship" for the "rwunderl" author. The "noship" designation indicates this is an internal Workflow utility rather than a customer-facing API. Its classification in the ETRM catalog is OTHER, consistent with a helper package rather than a formally published integration interface.

The business value of WF_DDL is governance of destructive operations. By routing DROP INDEX and TRUNCATE TABLE through a single package, Oracle Workflow development can enforce predictable failure semantics—particularly the option to tolerate an object that does not exist—and can capture uniform diagnostic context through WF_CORE when an unexpected error occurs.

Key Procedures and Functions

  • DropIndex — Executes an immediate DROP INDEX statement against a fully qualified index identified by owner and index name. An optional flag controls whether a "does not exist" condition (Oracle error -1418) is silently ignored or propagated to the caller. Any other error is routed through WF_CORE.Context before being re-raised.
  • TruncateTable — Executes an immediate TRUNCATE TABLE statement against a fully qualified table identified by owner and table name. An optional flag controls whether a missing-table condition (Oracle error -942) is silently ignored or propagated. As with DropIndex, all other exceptions are annotated with WF_CORE context and re-raised.

Both procedures are defined in the package specification as callable entry points and are implemented with identical structural patterns: declaration of a named exception bound to a specific Oracle error number via pragma exception_init, a single dynamic DDL execution, and a two-branch exception handler that distinguishes the expected "not found" case from all others.

Tables Accessed

The ETRM metadata records no tables referenced through APPS synonyms for this package. This absence is expected and consistent with the package's nature: WF_DDL does not perform conventional SELECT, INSERT, UPDATE, or DELETE operations. Instead, it constructs DDL text at runtime against whatever table or index name the caller supplies, meaning target objects are parameters rather than statically referenced dependencies.

Consequently, the practical set of affected objects is determined entirely by the invoking code. In practice these are Oracle Workflow repository objects such as notification, activity, and event tables and their associated indexes.

Usage Notes

WF_DDL is invoked through dynamic PL/SQL calls from other Workflow components rather than through end-user Forms or standard concurrent programs. The ETRM catalog records that the package is referenced by two other packages, confirming its role as a shared internal dependency. The canonical pattern supplies the target object and owner, sets IgnoreNotFound according to whether a prior existence check has already been performed, and lets the procedure handle either tolerant or strict failure behavior.

Because truncation is irreversible and index removal can degrade performance, callers should treat this package as a maintenance utility. Capture of WF_CORE context on OTHERS exceptions means failures are traceable via standard Workflow diagnostics. In customized or remedial scenarios, the same procedures may be called directly from SQL*Plus or a custom unit, but explicit owner qualification and deliberate use of IgnoreNotFound are recommended.