SCSAI Method Execution Capability Diagnostic Report — 2026-07-21

SCSAI Method Execution Capability Diagnostic Report — 2026-07-21

Diagnosis Conclusion

The three core API capabilities of the SCPLM SCSAI installation (https://ylxt.chat/scplm) are as follows:

| API | Capability | Evidence |

|-----|------|------|

| ApplyAML / ApplyItem | ✅ Normal | Both ItemType creation and Allowed Permission creation succeeded |

| ApplyMethod | ❌ Fully Disabled | All methods (C#/JS/Standard) are unresponsive or return error "method type not supported" |

| ApplySQL | ⚠️ Read-Only | SELECT returns data; UPDATE returns success but does not actually write (silently ignored) |

Root Cause Analysis

applyMethod is disabled

  • Standard SCSAI JS methods like applyMethod('Identity', 'GetServerTime') are unresponsive
  • applyMethod('ItemType', 'SetBAItemTypePermission') → "method type (c#) not currently supported"
  • applyMethod('ItemType', 'BA_CreateMinItemType') (after switching to JS) → "method type (JavaScript) not currently supported"
  • Conclusion: The ApplyMethod SOAP endpoint of SCSAI is disabled by server configuration (not an issue with individual methods).

applySQL is read-only.

  • applySQL("UPDATE ... SET label='UPDATED' WHERE id='...'") → success: true,
  • but querying the label value still shows the original value → UPDATE was silently rejected by the database layer.
  • Reason: The database user (SCPLM or agent) used by the SCSAI IOM connection only has SELECT permission on [SCPLM].[agent].[ITEMTYPE].
  • INSERT/UPDATE/DELETE are silently ignored by database triggers or user permissions.

Specificity of default_permission_id

  • ITEMTYPE.default_permission_id is a core protected column in SCSAI.
  • The only write path:
  1. C# Method SetBAItemTypePermission: Calls newIdApplySQL to write the column → intercepted and disabled by applyMethod.
  2. Client applySQL directly UPDATEs → intercepted by database write permissions.
  • Allowed Permission (is_default=1) can be created correctly, but the SCSAI permission checker does not downgrade to use it; it directly requires the default_permission_id column to have a value.

Affected operations

  • ❌ BA_CreateMinItemType (C# → still blocked after switching to JS)
  • ❌ SetBAItemTypePermission (the only method to write default_permission_id)
  • ❌ applySQL UPDATE (any write operation does not take effect)
  • ❌ applyMethod any custom/standard method

Unaffected operations

  • ✅ sendAML / applyItem: Create ItemType, Allowed Permission (read-only operations)
  • ✅ queryItems: select queries work normally
  • ✅ smartCreateItemType: Create ItemType ✅, but instance creation ❌

Fix (requires server-side action)

Option A (Recommended): Restore the applyMethod endpoint

Re-enable the ApplyMethod SOAP endpoint in SCSAI server configuration:

  • Check IIS or SCSAI configuration to confirm if ApplyMethod is explicitly disabled
  • If so, remove the disablement
  • Or grant the SCSAI application pool identity write permission to the [SCPLM].[agent] schema

Option B: Grant database write permissions

Grant the following to the SCSAI database user (SQL Server Login):

GRANT UPDATE ON [SCPLM].[agent].[ITEMTYPE] TO [SCPLM_USER];

这样客户端 applySQL 就能真正 UPDATE default_permission_id 列。

Option C (Temporary workaround): Use Part type as a template

When creating a custom object class is required:

  • Use the standard Part type (which already has the correct default_permission_id)
  • Simulating object classes via Part + classification/attribute extension
  • Not dependent on default_permission_id

Key file modification history

  • server/utils/SCSAI-client.js: Added implementations for applyMethod, applySQL, ApplyItem
  • server/routes/unified-create.js: ensureItemType relies on BA_CreateMinItemType + applySQL
  • server/utils/SCSAI-tools.js: smartCreateItemType uses applyItem (= sendAML)

Test scripts

  • _final_diag.js: Final diagnosis (three-way verification of applyMethod/applySQL/applyItem)
  • _deep_diff.js: Field comparison between Part and ZFix90811
  • _check_ap.js: Allowed Permission relationship validation

SCSAI credentials

  • Server: https://ylxt.chat/scplm
  • Username: root
  • Password: gyc123456; (in config.yaml)
  • Database: SCPLM
  • default_permission_id references Permission ID: 5C07EB829D4241F6BB884952960FAF58 (New Part)
← 返回案例列表

Try 左帮右臂 Industrial Agent — your digital workforce

Available as a WeChat mini program, web app (ylxt.chat) and desktop client. Start from whichever fits your workflow.

🌐 Web App 💻 Desktop Download 📞 Call 189-8606-6876
WeChat mini program QR
Scan for the WeChat mini program
Share:
🤖 Try Now →
🤖
🎁