☰ 总览更新 10-13 12:52

18 · 学习地图:真实业务要会什么(10-13 重写)

10/13 我说:「你梳理的不是很清楚。就是 site.xml 这种的……在 Windows 虚拟机里,在一些固定的文件中添加一些内容,就能直接在 C8 系统上显示出来。」 第一版只看了 plmservice(Java 后端),漏了主线。依据:C8配置规则_7.8.1(gongsi-c8)、课件《5、前端开发xml》《6、js》、plmservice 源码。

一、C8 的活其实有两条线

① C8 配置(主线) ② Java 后端 plmservice(支线)
在哪写 Windows 虚拟机 C:\C8\WebAccess\Site\ IDEA,单独的 Spring Boot 工程
写什么 Site.xml / Site.js / en.js / Site.css Controller / Service / DTO
语言 XML + JavaScript(不是 Java) Java
什么时候用 页面加字段、加按钮、自动改值 C8 跟 OA/钉钉/ERP 对接、导入导出
生效 保存 → Update Configuration → 刷新页面 启动服务(8088)

二、四个文件各管什么(课件 5)

文件 管什么 一句话
Site.xml 页面上有什么:字段(Heading)、按钮(Action)、视图(View) 摆家具
Site.js 点了/改了之后做什么:监听字段、按钮逻辑 接电线
en.js 内部 Id 显示成什么字:C8_ReviewApproval → 审核通过 贴标签
Site.css 颜色外观 刷漆(少用)
前提:字段本身要先在 Setup / Business Objects 里建好(能存什么),四件套只管显示和行为。

三、一个真需求走一遍:给款式加「审核」(知识库 08-05 虚拟机里跑通的)

需求:款式上有「审核人」「审核状态」;选了审核人,状态自动变「审核中」;点「审核通过」按钮,状态变「已通过」。

Site.xml —— 页面上摆出两个字段

<NodeRef Type="Style">
    <Headings>
        <Heading Id="C8_Style_Reviewer">
            <Relationship Type="User"/>
        </Heading>
        <Heading Id="C8_Style_ReviewStatus"/>
    </Headings>
</NodeRef>

Site.js —— 选了审核人,状态自动变

api.watchAttribute("Style", "C8_Style_Reviewer", function (ac, cn, node, id) {
    if (ac.newValue && ac.newValue !== "centric:") {
        ac.m_writer
            .changeNode(node.$URL)
            .changeAttribute("C8_Style_ReviewStatus", "enum", "C8_Style_ReviewStatus:Reviewing");
        ac.bRefreshNode = true;
    }
    return true;
});

Site.js —— 按钮点了做什么(写在最后的 return { ... } 里,名字跟 Action Id 对上)

C8_onActionReviewApproval: function (ac) {
    ac.m_writer.changeNode(ac.m_urlNode)
        .changeAttribute("C8_Style_ReviewStatus", "enum", "C8_Style_ReviewStatus:Approved");
    ac.bRefreshNode = true;
    return true;
}

en.js —— 按钮显示中文

"Action": { "C8_ReviewApproval": "\u5ba1\u6838\u901a\u8fc7" }   // = 审核通过

然后:Ctrl+S 保存(Notepad++ 标题有 * = 没存)→ Update Configuration → 刷新页面验证。

四、16 个 Java 点在 C8 配置里还管用吗

学过的 在 Site.js 里长什么样
04 方法、参数、返回值 function (ac, cn, node, id) { ... return true; }
if if (ac.newValue && ...) 一模一样
03 不等于 Java !equals → JS !==
05 对象.属性 node.$URL、ac.newValue
13 HashMap 钥匙→值 en.js 整个就是:"C8_ReviewApproval": "审核通过"
12 接口=合同 XML 里写了 Action Id,JS 的 return 里就必须有同名函数,对不上就不执行
D 链式调用 .changeNode(..).changeAttribute(..) —— plmservice 的 Java 里也是同一句 C8Write.changeNode(..).changeAttribute(..)
用不上的:static、继承、ArrayList/TreeSet 细节、泛型(Java 才有)。

五、要掌握的(按急迫)

# 东西 属于
1 XML 读写:标签、属性、嵌套、自闭合 <X/> 新,简单
2 C8 名词:Type(Style/Sample/ApparelBOM)、Attribute Id、Heading、Action、View、枚举完整写法 枚举名:Key C8 知识
3 JS 最小集:function、if、对象 { "键": 值 }、逗号规则、把函数当参数传进去 新,Java 基础能搬
4 C8 的 api:watchAttribute(监听)、m_writer.changeNode().changeAttribute()(改值)、hideRevisionAction(藏按钮)、setRelationshipAccess(权限) 课件 6
5 生效流程 + 排错:保存 → Update → 刷新;显示内部 Id = en.js 没存 知识库已踩过
6 Java 后端(plmservice) 支线,等有对接需求再深入

六、接下来怎么学

  1. 在 Mac 上读懂审核例子的四段代码(上面第三节),逐行讲 → 落点:大白话说出每段干什么
  2. 自己写一个小需求的四件套(如:新建款式时「开发类型」默认「自主开发」)→ 落点:写出 Site.xml + Site.js + en.js 三段
  3. 进 Windows 虚拟机真做:放进 C:\C8\WebAccess\Site\ → Update → 页面看到 → 落点:截图
  4. Java 后端支线:等 1–3 熟了,按 17-串讲:用plmservice串起16点 继续