Execute the Appworx submission stored procedure¶
This is the instance method that actually calls the Oracle stored procedure submit_appworx_job through the BOF data portal, using the instance's current ModuleName, Requestor, Printer, and populated argument slots.
| Field | Value |
|---|---|
| Operation ID | OP-02 |
| Trigger | Called by Submit an Appworx batch job (shared overload), or directly by any caller that constructed the class and set its properties |
| Inputs | Instance state — DPI, ModuleName, Requestor, Printer, Arg1..Arg20 |
| Outputs | None. vResult is declared and initialized to String.Empty but never assigned or read (dead local)* |
| Primary components | clsRequestAppworxJob.SubmitBatchJob (instance) |
| Entry point | SAIF.Services.Appworx/clsRequestAppworxJob.vb |
Steps¶
PortalRequest = DPI.NewPortalRequest;DataRequest = PortalRequest.NewRequest— obtain a BOF portal request and a single data request from it.- Set request metadata:
DataRequest.ID = "clsRequestJob.SubmitBatchJob"(note: namesclsRequestJob, not the actual classclsRequestAppworxJob— a stale identifier*),RequestType = DataRequestType.NonQuery,CommandType = CommandType.StoredProcedure,SQLStatement = "submit_appworx_job". - Add the three fixed parameters unconditionally:
inModule←ModuleName(size 30),inRequestor←Requestor(size 32),inPrinter←Printer(size 30) (BR-004, BR-005, SQL-001). - For each slot 1–20, test
Not m_ArgN.IsEmpty; when non-empty, add parameterinArgN←ArgNwith size 4000 (BR-003, BR-005, SQL-001). Empty slots are omitted from the parameter list entirely. - Execute
DPI.ProcessPortalRequest(PortalRequest)inside aTry(SQL-001, JOB_QUEUE). -
Origin: The procedure body executed here is
submit_appworx_job— see Stored procedure operations for the queue-insert logic performed inside the database. - On exception, throw
New ApplicationException("Error Submiting Appworx Job " & ex.Message, ex)— original exception preserved as inner exception (BR-006). (The message contains the spelling "Submiting".) - Set
PortalRequestandDataRequesttoNothing— legacy cleanup with no effect in .NET*.
Process flow¶
The following diagram visualizes this operation's control flow.
flowchart TD
Start(["Instance SubmitBatchJob<br>called"]) --> S1["Obtain PortalRequest and<br>DataRequest"]
S1 --> S2[Set request metadata:<br>submit_appworx_job, NonQuery, StoredProcedure]
S2 --> S3[Add fixed params:<br>inModule, inRequestor, inPrinter]
S3 --> S4{For each Arg1..Arg20:<br>non-empty?}
S4 -->|Yes| S5[Add inArgN parameter]
S4 -->|No| S6[Skip parameter]
S5 --> S7[Execute ProcessPortalRequest]
S6 --> S7
S7 -->|success| EndOk([Returns])
S7 -->|exception| EndErr(["Throw wrapped<br>ApplicationException"])
Failure and edge-case behavior¶
- The only branches are the 20 empty-slot tests; the only error path is the wrap-and-rethrow (BR-006).
- No result is inspected, so a procedure that silently does nothing (see PR-006 in Stored procedure operations) is indistinguishable from success from this library's perspective (BR-008).
Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.
Related documentation¶
Sources¶
SAIF.Services.Appworx/clsRequestAppworxJob.vb