Skip to content

Main page

SIEBEL CRM · ORACLE · LOG INTELLIGENCE

Raw log.
Readable report.

The Python parser parses Siebel logs, terminal output line by line, and turns it into annotated MDX: badges, workflow step diagrams, collapsible SQL blocks, and warnings - right in your Starlight documentation.

TECH STACK

PythonLog parser
AstroSite build
StarlightDocumentation
MDXOutput format
D2Workflow diagram
Cloudflare WorkersHosting
Oracle DBDatabase Siebel
Siebel CRMLog source
AIAI assistance

WHAT PARSER DO

Processing logs line by line

The state machine tracks the state of: Input/Output blocks, SQL BusComp, Browser Script, Process Properties - each log block is closed correctly, even if the next line breaks the context.

Workflow → D2 diagram

Each Instantiating step definition turns into a graph node, and each StpExec Cond turns into a passed/not passed arrow. The output is a finished d2 sketch with dead branches ⛔.

Error & Warning — in Aside

ObjMgrLog Error/Warning with an ignore list by code (SBL-EXL-00145, etc.) are grouped into color bars: caution for warning, danger for error.

Instance statistics

Views, Applets, BusComps, Business Services, Manifests, Workflow Steps — are considered a Counter and are collapsed into details tables on each page.

Big log pagination

Parsing in chunks - new .mdx file part, but splitting never happens inside an open block (Input/Output, SQL, Browser Script).

Auto-detection of encoding

charset_normalizer → chardet → utf-8 fallback. Siebel logs in cp1251 are as readable as utf-8.

AI-assisted, token-optimized build

Built with targeted AI prompting for rapid prototyping and clean code, avoiding runtime overhead or API token burn. 😎

ARCHITECTURE AND DEPLOYMENT

Data Movement

From raw application server logs to a fast static site on edge servers.

📝

Siebel Log

Siebel Application Server Raw Log.

🐍

Python Parser

The script converts Siebel raw logs into MDX files with components.

🐙

GitHub

Version control and storage of generated MDX.

☁️

Cloudflare Workers

Astro leverages Sätteri's native Rust processing to render MDX on edge servers for maximum speed.

0lines in raw siebel log
0seconds parsing

KITCHEN SINK

All markup elements - how they appear in the report

These are actual Starlight components (Badge, Aside, CopyId), not a mockup—that’s how the parser formats each log line.

📊 Log Metadata

Property Value
📄 File Name FINSObjMgr_enu_0101_987.log
📅 Date Start 2026-08-20 09:43:27
📅 Date End 2026-08-20 10:30:58
⏱️ Duration 0h 47m 31s
💾 File Size 195.53 MB
🔢 Lines in Raw Log File 1,534,900
👤 User SADMIN

🧩 File Parts Details

Part Lines
part_1 Lines: 1 - 27,899
part_2 Lines: 27,900 - 89,397
part_3 Lines: 89,398 - 112,059
part_14 Lines: 1,315,025 - 1,325,680
part_15 Lines: 1,325,681 - 1,351,821
part_16 Lines: 1,351,822 - 1,534,900

📦 Log Structure

  • Directorysiebel.log
    • FINS Home Page View
    • FINS cBanking Homepage View
    • DirectoryAccount Screen Homepage View
      • Recent Record Account List Applet (PositionOnRow)
      • Recent Record Account List Applet (Drilldown)
    • Account Detail View
    • Account Detail - Opportunities View
    • DirectoryAccount cBanking Request View
      • Account cBanking Request List Applet (PositionOnRow)
      • Account cBanking Request List Applet (CreateRecord)
      • Account cBanking Request List Applet (PostChanges)
      • Account cBanking Request List Applet (EditField)
      • cBanking Operation Type Mvg Applet (AddRecord)
      • cBanking Operation Type Mvg Applet (CloseApplet)
      • Account cBanking Request List Applet (WriteRecord)
      • Check Account Category Code Workflow
      • Check Opportunity Category Code Workflow
      • Account cBanking Request List Applet (Drilldown)
    • DirectoryBorrower Credits View
      • Borrowers List Applet (GetFILEData)
      • Data Validity Workflow

📦 Log Summary & Statistics

🗁 List of Views (collapsible block)

Name Count
FINS Home Page View 2
FINS cBanking Homepage View 2

🗁 List of Applets (collapsible block)

Name Count
Recent Record Account List Applet (PositionOnRow) 1
Recent Record Account List Applet (Drilldown) 1

🗁 List of BusComps (collapsible block)

Name Count
Account 17
Contact 2

🗁 List of Manifests (collapsible block)

Name Count
siebel/navigationpmodel.js 26
siebel/jsTreeCtrl.js 52

🗁 List of Workflows (collapsible block)

Name Count
Workflow Validation Process 2
Workflow Change Date Validation 17

🗁 List of BusServices (collapsible block)

Name Count
Workflow Process Manager 80
Workflow Utilities 265

Manifest / Warning / Error

View header

View 📚 FINS Home Page View

SWE Row Id

Row IdSWERowId VRId-1

Applet Action

Applet Action 📗 Recent Record Account List Applet (Drilldown)

Workflow start / end

WorkflowStart 📘 Validation Process Workflow
WorkflowEnd Validation Process Workflow

Workflow steps

WF StepStart Validation Process Workflow
WF StepEnd Validation Process Workflow

Step branch passed / failed

Step branchStart Yes passed.
Step branchEnd No did not pass.

Business Service start / end

Business ServiceStart Workflow Siebel Operation invoke method: Update
Business Service Workflow Siebel Operation invoke method: Update Execute Time: 0.027 seconds.
Business ServiceEnd Workflow Siebel Operation invoke method: Update

Executing process definition

Executing process definition 1-3ATZ0-BARZ

Input / Output (collapsible block)

🗁 Input
# Key Value
Process Instance Id 1-2VJ13937
Object Id 1-1D1J-6259
Triggering Event 1-4JK4MAD
Siebel Operation Object Id 9
Sub Event 7
FILEId 1-2VJ1391V25
RTESupressInactiveWFerror Y10
Event Name WriteRecordNew
Error Code 13
Error Message

Browser Script (collapsible block)

🗁 Browser Script : FINS cBanking Request Header Form Applet Header Applet PreInvokeMethod
FINS cBanking Request Header Form Applet Header Applet PreInvokeMethod
function FINS_cBanking_Request_Header_Form_Applet__Header_Applet_PreInvokeMethod (name, inputPropSet) {
if(name == 'ClientCancel') {
if(confirm("cansel processing?"))
return ("ContinueOperation");
else
return ("CancelOperation");
return ("ContinueOperation");
}
if(name == 'ClientClose') {
if(confirm("file is approved without processing?"))
return ("ContinueOperation");
else
return ("CancelOperation");
return ("ContinueOperation");
}
}

Business Component SQL (collapsible block)

🗁 Buscomp SQL :Personal Address
Personal Address
SELECT /*+ ALL_ROWS */
T5.ROW_ID,
T2.EMP_STAT_CD,
T1.FST_NAME,
T1.LAST_NAME,
T6.LOGIN,
T5.NAME,
T4.OWN_INST_ID,
T3.ALLOW_UPD_FLG
FROM
SIEBEL.S_CONTACT T1,
SIEBEL.S_EMP_PER T2,
SIEBEL.S_EMP_APPT T3,
SIEBEL.S_CONTACT_SS T4,
SIEBEL.S_PARTY T5,
SIEBEL.S_USER T6
WHERE
T5.ROW_ID = T3.EMP_ID AND
T5.ROW_ID = T6.PAR_ROW_ID AND
T5.ROW_ID = T1.PAR_ROW_ID AND
T5.ROW_ID = T2.PAR_ROW_ID AND
T5.ROW_ID = T4.PAR_ROW_ID (+) AND
(T3.SHARED_EMP_ID = '1-3KURRQI')

Process Properties

# Process Prop Name Datatype Process Prop Value
1315760 Siebel Operation Object Id String 1-2VJ1394S
1315762 Entity Change Date Datetime 20/08/2026 00:00:00
1315764 NumOfRows Number 1
1315766 Valid Period Number 5

Total Time For Process

# Process Name Num Processed Total Time For Process
1353247 Validation Process 1 2765

Process Flow Diagram

Process Flow Diagram : 📕 Query Data Workflow

🗁 List of Steps: Process Flow Diagram
Name Count
Start 1
Query Data 1
Date Calculate 1
Check Change Date 1
Change Default Result to Y 1
End 1
Diagram