

# 驱动中的全局变量

1. 各种包
```js
    var _ = require('lodash');
    var process = require('process');
    var fs = require('fs');
    var Err = require('topsin.error');
    var Gen = require('topcam.gencom');
    var options = require('minimist')(process.argv);
    var ARGV = options['_'];
    var crypto = require('topsin.crypto');
    var os = require('os');
    var IKM = require('topcam.ikm6');
    var GUI = require('topsin.gengui').newGui();
    var logger = require('topsin.logger');
```

2. 其他
```js
    USER_NAME   // 用户名  例：admin 
    USER_FULLNAME   //  用户完整名  例：管理员
    USER_ID   // 用户id  例： 1
    JOB   // 料号名  例：demo
    JOB_ID // 料号id  例：1
    GEN_TYPE  // GEN类型  例：genesis
    CONF  // 配置 
    APP  // 框架中 APP的api
    GEN   // GEN 对象
    GUI   // GUI 对象
    IKM   // IKM 对象
```

## 驱动中的全局函数

```js
    addFlowNotes({notes:"msg"})    // 更新脚本状态信息
    updateFlowReport({job_id:1,process_id:22,mode:'befor||append',report:html字符串})   // 更新脚本状态信息
    doScript(脚本名称)    // 执行一段脚本 返回脚本里的返回值
```

## 例子

```js
    var $ = require('topcam.scriptfunc').argv();
    var ikm = $.ikm;
    var gen = $.gen;

    try {
        GUI.msg(USER_NAME).msg(USER_FULLNAME)
        .msg(USER_ID).msg(JOB_ID).msg(GEN_TYPE).msg(CONF)
        .msg(ikm.get_job_id("demo")).msg(gen.getMatrix({job:JOB}))
        return 'Done';
    } catch (error) {
        gui.msg(error)
        return 'error'
    }
```

* doScript函数
1. test.js
```js
    function test(a){
        GUI.msg(a)
    }
    return {
        test:test
    }
```
2. 
```js
    
    var $ = require('topcam.scriptfunc').argv();
    var ikm = $.ikm;
    var gen = $.gen;

    try {
        var _ = doScript("test")
        _.test("一段信息")
        return 'Done';
    } catch (error) {
        gui.msg(error)
        return 'error'
    }
```