SCSAI原生JavaScript使用指南

SCSAI原生JavaScript使用指南

本文由 BossAgents 文档数字员工自动转化 · 来源:技术文档 · 内容未经修改

SCSAI原生JavaScript使用指南

1. 概述

本文档介绍了如何在前端PLM项目中使用现有的SCSAI原生JavaScript实现,避免重复开发连接和AML操作功能。 核心文件位置D:\n8nscsai\SCSAI\n8n\packages\nodes-base\nodes\SCSAI

2. 现有SCSAI原生JS功能

2.1 核心API连接 (GenericFunctions.ts)

GenericFunctions.ts 提供了完整的SCSAI API连接和AML操作功能: #### 主要功能: | 函数名 | 功能描述 | 参数 | |--------|----------|------| | SCSAIApiRequest | 核心API请求函数 | method: GET/POST
endpoint: API端点
aml: AML字符串 | | executeAMLQuery | 执行AML查询 | context: 执行上下文
amlQuery: AML查询字符串 | | batchWriteToSCSAI | 批量写入数据 | context: 执行上下文
items: 待写入的项目数组 | | applyAML | 应用AML操作 | itemType: 对象类型
action: 操作类型(add/edit/delete)
data: 数据
id: 对象ID | #### 连接配置: API连接通过SCSAIApi凭证进行配置,包含以下参数:
  • URL: SCSAI服务器地址
  • 用户名
  • 密码
  • 数据库名称
  • 时区
  • 2.2 原生JS执行器 (SCSAINativeJSExecutor.ts)

    SCSAINativeJSExecutor.ts 提供了在SCSAI环境中执行JavaScript代码的功能: #### 主要功能: | 函数名 | 功能描述 | |--------|----------| | executeSCSAIJavaScript | 执行SCSAI原生JavaScript代码 | | executeAMLQuery | 执行AML查询并返回结果 | | batchWriteToSCSAI | 批量写入SCSAI数据库 | | generateJSCodeExample | 生成JavaScript代码示例 | | validateJSCodeSafety | 验证JavaScript代码安全性 |

    3. 在前端PLM项目中使用

    3.1 导入现有功能

    在前端PLM项目中,可以通过相对路径导入现有功能: ``javascript // 导入核心API连接功能 import { SCSAIApiRequest, applyAML, queryItems } from '../../nodes-base/nodes/SCSAI/GenericFunctions'; // 导入JavaScript执行器功能 import { executeSCSAIJavaScript, executeAMLQuery } from '../../nodes-base/nodes/SCSAI/SCSAINativeJSExecutor'; `

    3.2 基本使用示例

    #### 3.2.1 执行AML查询
    `javascript // 构建AML查询 const aml = ''; // 执行查询 const result = await executeAMLQuery(context, aml); // 处理结果 if (result.success) { console.log('查询结果:', result.result); } else { console.error('查询失败:', result.error); } ` #### 3.2.2 创建新对象 `javascript // 创建对象数据 const itemData = { name: 'New Item', description: 'Test description', status: 'active' }; // 应用AML创建对象 const result = await applyAML(context, 'ItemType', 'add', itemData); if (result) { console.log('对象创建成功,ID:', result.id); } else { console.error('对象创建失败'); } ` #### 3.2.3 执行SCSAI原生JavaScript `javascript // JavaScript代码 const jsCode = // 创建新的Item var newItem = SCSAI.newItem('ItemType', 'create'); newItem.setProperty('name', 'value'); newItem.setProperty('description', 'Item Description'); newItem.save(); console.log('Item created: ' + newItem.getID()); ; // 执行代码 const result = await executeSCSAIJavaScript(context, jsCode); if (result.success) { console.log('JavaScript执行成功:', result.result); } else { console.error('JavaScript执行失败:', result.error); } `

    3.3 权限和安全

    #### 3.3.1 凭证管理 确保在n8n配置中设置了
    SCSAIApi凭证,包含正确的连接信息。 #### 3.3.2 代码安全性 使用validateJSCodeSafety函数验证要执行的JavaScript代码安全性: `javascript const { safe, warnings } = validateJSCodeSafety(jsCode); if (!safe) { console.warn('代码包含安全风险:', warnings); // 处理不安全代码 } `

    4. 扩展功能

    4.1 创建自定义工具函数

    如果需要在前端PLM项目中添加自定义功能,可以创建新的JS文件,但要确保不重复现有功能:
    `javascript // custom-SCSAI-utils.js import { executeAMLQuery } from '../../nodes-base/nodes/SCSAI/SCSAINativeJSExecutor'; /* 自定义查询函数 - 获取活跃的ItemType列表 */ export async function getActiveItemTypes(context) { const aml = '1'; const result = await executeAMLQuery(context, aml); if (result.success) { return result.result; } else { throw new Error(result.error); } } `

    4.2 错误处理

    确保在使用SCSAI API时进行适当的错误处理:
    `javascript try { const result = await executeAMLQuery(context, aml); return result; } catch (error) { console.error('SCSAI API错误:', error); // 错误处理逻辑 throw error; } `

    5. 最佳实践

  • 避免重复代码:始终使用现有的SCSAI原生JS实现,不要创建新的连接或AML操作功能
  • 使用类型检查:如果使用TypeScript,确保导入正确的类型定义
  • 安全优先:始终验证用户提供的JavaScript代码
  • 适当日志:添加必要的日志记录以方便调试
  • 错误处理:实现适当的错误处理机制
  • 6. 参考文档

  • SCSAI API文档
  • n8n节点开发文档
  • packages/nodes-base/nodes/SCSAI目录下的源代码
  • 7. 维护

    如果现有功能需要更新或扩展,应直接在
    packages/nodes-base/nodes/SCSAI`目录中修改,确保所有项目都能受益于更新。

    8. 联系信息

    如有任何问题,请联系系统管理员或开发团队。

    ← 返回案例列表
    分享:
    🤖 Try Now →
    🤖
    🎁