Skip to content

Misc Other

Overview

Utility function

jsonStringify

Convert the object obj to a JSON string.

javascript
Misc.jsonStringify(obj);
ParameterTypeDescription
objObjectThe object to be serialized

Return Value

Type String The object obj serialized as a JSON string; returns null if obj is null.

Example

javascript
Misc.jsonStringify("123456"); //"123456"
Misc.jsonStringify([1, 2, 3, 4, 5, 6]); //[1,2,3,4,5,6]
Misc.jsonStringify({ a: 1, b: 2 }); //{"a":1,"b":2}
Misc.jsonStringify(date); //1667232000000
Misc.jsonStringify(true); //true
Misc.jsonStringify(null); //null

jsonParse

Parse the string str into a JSON object.

javascript
Misc.jsonParse(str);
ParameterTypeDescription
strStringThe string to be converted into an object

Return Value

Type Object The resulting object; throws an exception if str is null or not valid JSON.

Example

javascript
Misc.jsonParse('"123456"'); //123456
Misc.jsonParse("[1,2,3,4,5,6]"); //[1,2,3,4,5,6]
Misc.jsonParse('{"a":1,"b":2}'); //{a:1,b:2}
Misc.jsonParse(1667232000000); //1667232000000
Misc.jsonParse('"2022-12-03T15:31:10.844Z"'); //Sat Dec 03 23:31:10 CST 2022
Misc.jsonParse(true); //true
Misc.jsonParse(null); //null

parseFloat

Parse the string str into a decimal number.

javascript
Misc.parseFloat(str);
ParameterTypeDescription
strStringThe string to be converted

Return Value

Type Double The converted decimal number; throws an exception if str is null or not a valid numeric format.

Example

javascript
Misc.parseFloat(1); //1.0
Misc.parseFloat(2.0); //2.0
Misc.parseFloat("2"); //2.0
Misc.parseFloat("a"); //null
Misc.parseFloat(true); //null
Misc.parseFloat(null); //null

parseInt

Parse the string str into an integer.

javascript
Misc.parseInt(str);
ParameterTypeDescription
strStringThe string to be converted

Return Value

Type Integer The converted integer; throws an exception if str is null or not a valid numeric format.

Example

javascript
Misc.parseInt(1); //1
Misc.parseInt(2.0); //2
Misc.parseInt("2"); //2
Misc.parseInt("3.1415"); //3
Misc.parseInt("03.1415"); //3
Misc.parseInt("a"); //null
Misc.parseInt(true); //null
Misc.parseInt(null); //null

timestampToDate

Convert the UNIX timestamp number value timestamp to a date type.

javascript
Misc.timestampToDate(timestamp);
ParameterTypeDescription
timestampIntegerUNIX timestamp

Return Value

Type Date The converted date; returns null if timestamp is null.

Example

javascript
Misc.timestampToDate(1667232000000); //Tue Nov 01 00:00:00 CST 2022
Misc.timestampToDate("1667232000000"); //Tue Nov 01 00:00:00 CST 2022
Misc.timestampToDate("3.1415"); //null
Misc.timestampToDate("a"); //null
Misc.timestampToDate(null); //null

dateToTimestamp

Convert the date type date to a UNIX timestamp number value.

javascript
Misc.dateToTimestamp(date);
ParameterTypeDescription
dateDateThe date to be converted

Return Value

Type Integer The converted UNIX timestamp; returns null if date is null.

示例

javascript
Misc.dateToTimestamp(new Date()); //1667232000000
Misc.timestampToDate(null); //null

formatDate

Convert the date type date to a string formatted according to the format fmt(yyyy-MM-dd HH:mm:ss,SSS).

javascript
Misc.formatDate(date, fmt);
ParameterTypeDescription
dateDateThe date to be formatted
fmtStringThe format string

Return Value

Type String The formatted date string; returns null if date is null or fmt is null or not a valid format.

Example

javascript
//假设date的值是 2022-11-01 13:01:01,000, 时间戳 timestamp 为 1667278861000
Misc.formatDate(date, "yyyy-MM"); //2022-11
Misc.formatDate(date, "yyyy-MM-dd"); //2022-11-01
Misc.formatDate(date, "yyyy"); //2022
Misc.formatDate(date, "HH:mm:ss,SSS"); //13:01:01,000
Misc.formatDate(date, "abc"); //null
Misc.formatDate(timestamp, "yyyy-MM"); //2022-11
Misc.formatDate(timestamp, "yyyy-MM-dd"); //2022-11-01
Misc.formatDate(timestamp, "yyyy"); //2022
Misc.formatDate(timestamp, "HH:mm:ss,SSS"); //13:01:01,000
Misc.formatDate(timestamp, "abc"); //null
Misc.formatDate(null, "yyyy-MM-dd"); //null
Misc.formatDate(date, null); //null
Misc.formatDate(timestamp, null); //null
Misc.formatDate(null, null); //null

parseDate

Parse the string str into a date type formatted according to the format fmt(yyyy-MM-dd HH:mm:ss,SSS).

javascript
Misc.parseDate(str, fmt);
ParameterTypeDescription
strStringThe date string to be parsed
fmtStringThe format string

Return Value

Type Date The parsed date; returns null if str is null or fmt is null or not a valid format.

Example

javascript
Misc.parseDate("2022-11-01 13:01:01,000", "yyyy-MM"); //Tue Nov 01 00:00:00 CST 2022
Misc.parseDate("2022-11-01 13:01:01,000", "yyyy-MM-dd"); //Tue Nov 01 00:00:00 CST 2022
Misc.parseDate("2022-11-01 13:01:01,000", "yyyy"); //Sat Jan 01 00:00:00 CST 2022
Misc.parseDate("2022-11-01 13:01:01,000", "HH:mm:ss,SSS"); //null
Misc.parseDate("2022-11-01 13:01:01,000", "abc"); //null
Misc.parseDate(null, "yyyy-MM-dd"); //null
Misc.parseDate("2022-11-01 13:01:01,000", null); //null
Misc.parseDate(null, null); //null

host

Return the home page address of the system.

javascript
Misc.host();

Return Value

Type String The home page address of the system.

Example

javascript
Misc.host(); // https://next.informat.cn/

pinyin

Return the pinyin of the string str.

javascript
Misc.pinyin(str);
ParameterTypeDescription
strStringThe string to be converted

Return Value

Type String The pinyin of the string str; returns null if str is null.

Example

javascript
Misc.pinyin("你好织信"); //ni hao zhi xin
Misc.pinyin("Hellow 织信"); //H e l l o w   zhi xin
Misc.pinyin(null); //null

shortPinyin

Return the first letter of each Chinese character in the string str.

javascript
Misc.shortPinyin(str);
ParameterTypeDescription
strStringThe string to be converted

Return Value

Type String The first letter of each Chinese character in the string str; returns null if str is null.

Example

javascript
Misc.shortPinyin("你好织信"); //nhzx
Misc.shortPinyin("Hellow 织信"); //Hellow zx
Misc.shortPinyin(null); //null

expectNotNull

Judge whether the object is empty. If it is empty, throw an exception with the prompt message. Otherwise, return the object.

javascript
Misc.expectNotNull(obj, message);
ParameterTypeDescription
objObjectThe object to be judged
messageStringThe prompt message if obj is empty

Return Value

Type Object The input object.

Example

javascript
Misc.expectNotNull(null, "消息"); //会抛出异常
Misc.expectNotNull("obj", "消息"); //返回 'obj'

expectFirst

Return the first element of the array array. If array is empty, throw an exception with the prompt message.

javascript
Misc.expectFirst(array, message);
ParameterTypeDescription
arrayArrayThe array to be judged
messageStringThe prompt message if array is empty

Return Value

Type Object The first element of the array array.

Example

javascript
Misc.expectFirst(null, "消息"); //会抛出异常
Misc.expectFirst([], "消息"); //会抛出异常
Misc.expectFirst(["1", "2"], "消息"); //返回1

expectLast

Return the last element of the array array. If array is empty, throw an exception with the prompt message.

javascript
Misc.expectLast(array, message);
ParameterTypeDescription
arrayArrayThe array to be judged
messageStringThe prompt message if array is empty

Return Value

Type Object The last element of the array array.

Example

javascript
Misc.expectLast(null, "消息"); //会抛出异常
Misc.expectLast([], "消息"); //会抛出异常
Misc.expectLast(["1", "2"], "消息"); //返回2

invokeScript

Call the function func in the script script.

The function func in the script script must be exported using the export syntax. If the script or the function does not exist, an exception will be thrown.

javascript
Misc.invokeScript(script, func, ...args);
ParameterTypeDescription
scriptStringThe path of the script
funcStringThe name of the function
args...ObjectThe list of arguments

Return Value

Type Object The return value of the function func in the script script. If the function does not return a value, null will be returned.

Example

脚本 test.js

javascript
export function add(a, b) {
  return a + b;
}
javascript
Misc.invokeScript("test.js", "add1"); //会抛出异常
Misc.invokeScript("test.js", "add", 1, 2); //3

invokeAutomatic

Call the automatic program automaticId.

If the automatic program does not exist, an exception will be thrown.

javascript
Misc.invokeAutomatic(automaticId, ...args);
ParameterTypeDescription
automaticIdStringThe identifier of the automatic program
args...ObjectThe list of arguments

Return Value

Type Object The return value of the automatic program automaticId. If the automatic program does not return a value, null will be returned.

Example

javascript
Misc.invokeAutomatic("testAutomatic", 1, 2); //3

httpGet

Call the GET method to access the url address and return the content of the request.

If the url address is incorrect, an exception will be thrown. If the response code of the http request is not 200, an exception will be thrown.

javascript
Misc.httpGet(url);
ParameterTypeDescription
urlStringThe url address to be accessed

Return Value

Type String The body content of the http request response.

Example

javascript
Misc.httpGet("https://next.informat.cn/web0/api/i1mwqy35y88hl/helloworld"); //hello world!

prop

取出对象 object 中的属性 key 的值

如果对象为Map类型则返回键为key的那一项,如果为对象类型则返回其中的key属性。如果 object 为null则返回 null

javascript
Misc.prop(object, key);
ParameterTypeDescription
objectObjectThe object to return the property of
keyStringThe name of the property to return. If key is empty, an exception will be thrown.

Return Value

Type Object The value of the property key in the object object. If the object is null, null will be returned.

Example Assuming that the structure of the object object is as follows

javascript
Misc.prop({ a: "1", b: 2 }, "a"); //1
Misc.prop({ a: "1", b: 2 }, "c"); //null
Misc.prop({ a: "1", b: 2 }, null); //null
Misc.prop(null, "c"); //null
Misc.prop(null, null); //null

props

取出对象 object 中的属性 props 列表 的新对象

javascript
Misc.props(object, props);
ParameterTypeDescription
objectObjectThe object to return the property of
propsArray<String>The list of property names to return. If props is empty, an exception will be thrown.

Return Value

Type Object A new object composed of the property values of the object object with the property names in the props list. If the object is null, null will be returned.

Example

参数类型描述
objectObject要返回属性的对象
propsArray<String>要返回属性列表的新对象,如果 props 为 null 时会抛出异常

返回值

类型 Object object 中 key 属性的值

示例 假设 对象 object 的结构如下

javascript
Misc.props({ a: "1", b: 2 }, "a"); // {'a':'1'}
Misc.props({ a: "1", b: 2 }, "a", "b"); // {'a':'1','b':2}
Misc.props({ a: "1", b: 2 }, ["a", "b"]); // {'a':'1','b':2}
Misc.props({ a: "1", b: 2 }, null); //{}
Misc.props(null, "c"); //null
Misc.props(null, null); //异常情况

transform

Return a new list of objects composed of the property values of the elements in the list list with the property names in the mapping mapping. If the list is null, null will be returned.

javascript
Misc.transform(object, mapping);
ParameterTypeDescription
listArrayThe list of elements to transform
mappingMap<String,String>The mapping object of property names. If mapping is empty, an exception will be thrown.

Return Value

Type Array A new list of objects composed of the property values of the elements in the list list with the property names in the mapping mapping. If the list is null, null will be returned.

Example

javascript
Misc.transform({ name: "张三", age: 1 }, { name: "userName", age: "userAge" }); //{'userName':'张三','userAge':1}
Misc.transform({ name: "张三", age: 1 }, { name: "userName", sex: "userSex" }); //{'userName':'张三','userSex':null}
Misc.transform({ name: "张三", age: 1 }, null); // {}
Misc.transform(null, { name: "userName", age: "userAge" }); // null
Misc.transform(null, null); // null

appId

Get the ID of the application where the expression is executed.

javascript
Misc.appId();

Return Value

Type String The ID of the application where the expression is executed.

getAppIdByKey

Get the ID of the application where the expression is executed by the application identifier.

javascript
Misc.getAppIdByKey(key);
ParameterTypeDescription
keyStringThe application identifier. If key is empty, an exception will be thrown.

Return Value

Type String The ID of the application where the expression is executed.

attachmentURL

Get the attachment access link address.

By the data table identifier, field identifier, and value of the attachment field, get the access link address.

javascript
Misc.attachmentURL(tableKey, fieldKey, value);
ParameterTypeDescription
tableKeyStringThe data table ID. If tableKey is empty, an exception will be thrown.
fieldKeyStringThe field ID. If fieldKey is empty, an exception will be thrown.
valueStringTableAttachment 中的 id 属性

Return Value

Type String The attachment access link address.

Example

javascript
Misc.attachmentURL("staff", "photo", "1af34d8a031d4faeaef40a989585caa5.png");
//https://next.informat.cn/web0/file/fieldkey/psl4wawpyued1/staff/photo/1af34d8a031d4faeaef40a989585caa5.png

appResURL

Get the resource access link address of the application resource library.

By passing in the resource library resource ID, get the access link address.

javascript
Misc.appResURL(appResId);
ParameterTypeDescription
appResIdStringThe resource ID. If appResId is empty, an exception will be thrown.

Return Value

Type String The resource access link address of the application resource library.

Example

javascript
Misc.appResURL("cjkhd8819chd8dhs.jpg");
//https://next.informat.cn/web0/main/app_res/icxt9rsd1f0ai/demoApp/cjkhd8819chd8dhs.jpg

websiteResURL

Get the resource access link address of the application website module.

By passing in the website module ID and resource path, get the access link address.

javascript
Misc.websiteResURL(moduleKey, filePath);
ParameterTypeDescription
moduleKeyStringThe website module ID. If moduleKey is empty, an exception will be thrown.
filePathStringThe file path. If filePath is empty, an exception will be thrown.

Return Value

Type String The resource access link address of the application website module.

Example

javascript
Misc.websiteResURL("websiteModule", "logo.png");
//https://next.informat.cn/web0/website/od6km3qte7vdb/j8j56sgtoj8b7/logo.png
Misc.websiteResURL("websiteModule", "./logo.png");
//https://next.informat.cn/web0/website/od6km3qte7vdb/j8j56sgtoj8b7/./logo.png

barcodeURL

Get the BASE64 value of the barcode image.

javascript
Misc.barcodeURL(value, format);
ParameterTypeDescription
valueStringThe value of the barcode; must contain only digits.
formatStringBarcode format; optional values are CODE39 CODE128 CODE128A CODE128B CODE128C ISBN EAN13 EAN8 EAN5 EAN2 UPC ITF ITF14 MSI MSI11 MSI1010 MSI1110 pharmacode codabar

Return Value Type String The BASE64 value of the barcode image.

Example

javascript
Misc.barcodeURL("12345", "CODE39");
// data:image/png;base64,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q1evdr169cq/c+nSJffqq6+mjjFp0iT3zjvvwDnYIT4CJHR8TOGI4jV37tzpFi5c6Pbt25fvP3jwYPf999+XvL948WJPxNzz6KOPegOQe4Tob731Vv7f33zzjRs1alSeyA899JA7c+ZMvl0IOn78+FQ5T5065Tp16pRvP3DgQIHRuHjxohMZ0p4FCxa4999/H+LADvERIKHjYwpH/Pvvv90jjzySJ1yfPn08scsRev/+/e7dd9/1xGrRooX7+eef3ezZs913333nx7l8+XI+rD527Jg7dOiQe+2111z79u19+8mTJ703X7dunf+3hOEPPPBAoqwjR45027dvh4SWKOGPP/4oGaNVq1auZcuWEAd2iI8ACR0fUziiEPrpp5928+fPd+PGjXObNm3yIWoaoW/evOlJXPwcPHjQh93yFHvRJCGE1J07d/ZNP/74Y/7dxn23bNni3nzzTffhhx/68P/KlSslY+c8tBBaDAmf+kGAhK7RXty6dcvdd999fva1a9eWJXSaiDJG8+bNfbOE8Cg3PnHihHvyySd9f8mtu3btWjD0P//845566ilvPH755Rf32GOPkdA10g/rtCS0FbmI71kJffToUSfhujzi9du1a5coleTsx48f91538+bNvsAl7xY/UsySQpjk4CNGjHBt2rQpS2h5/+WXX/b5effu3Z0U3aZOnZoqR0TIOFQKAiR0HaiGhdC3b992Q4YMcbt373Zvv/22W79+fclKhLRjx451586dyxfRunXr5qvlzz33XEF/yeFfeuklN2zYMPftt9/6Ng2hiyeVYpnk9S+88EIdIPvfE4GEroM9txB6xYoVbsaMGb7aLN43V2RrvBw5EhswYEDBCufNm+fee+89d//99+f/fv36dde7d28fhsuRVy4sTyO05NUyjuTaErb/+++/TuaaPn2699Y9evRwR44cScz76wDuJi0CCV0H2xtK6MbHUnLMJcW0tEfy7L/++svt2LHDffXVV76aLl5aKuG5HP6jjz7yBTohqYTluSeN0GlzyZg9e/b0zZqcvg6gb3IikNB1sKUhhN67d68bNGiQl1qq4+Iltc+NGzd8/iyeWIg9cOBAJ4Wwhx9+2A8h+XXjG2hDhw71f1+6dKl75plnfH90Q036SMX9s88+c1OmTNGKxn6RECChIwFZyTBaQv/000/53FSKVxMnTgyeVopWcjNt1qxZ7uOPP3Z//vmn69Chg2ocyckb3xhLemn48OE+hxZPLx6fT3URIKGri3fibBpCS54sZ86Svy5ZssTnwZZn9OjR7uuvv/bV6JUrV/oLJp988kniUHPnzvV/l7PyJ554wk2YMKHsDTGJAB5//HFfgAuNHixr4TulCJDQdaAViNC///6769evnyeKXKmUq5XlnjVr1vjjLDlGyj3Xrl1zW7du9VVveeT/X3/99bLjpOXQ27Zt84UvObPOPXL5ZebMme7TTz/1fzp9+rTr2LFjHaD73xKBhK7RfkuBSu5yyyM3r8TzytOlSxf/XyGjeDl5cufD8v9pJJH73mPGjPH95fhJcmQZS3JfKYzlrohK+4svvuh27doFq9BphM55eQm/5fxZvqBRqty5++Li8adNm1YjZP/b05LQNdp/UXo55kl75LhJ7m8XEzqt/+eff+4mT57smxctWuQviDT+QEbuPcmdJVxv27YtXHkaoaUiLpXx4keMjazrjTfegGOzQzYIkNDZ4FoXo549e9aH6eL95Rqn5LdJd8ItwkqILZ/KkhtqEgFINCBz8KktAiR0bfHn7EQgKgIkdFQ4ORgRqC0CJHRt8efsRCAqAiR0VDg5GBGoLQIkdG3x5+xEICoCJHRUODkYEagtAiR0bfHn7EQgKgIkdFQ4ORgRqC0CJHRt8efsRCAqAv8DcxPZ+gRC0sQAAAAASUVORK5CYII=

qrcodeURL

Get the BASE64 value of the QR code image.

javascript
Misc.qrcodeURL(value, format);
ParameterTypeDescription
valueStringThe content of the QR code. If value is empty, an exception will be thrown.
widthIntergerThe size of the generated QR code image. If width is empty, an exception will be thrown.

Return Value Type String The BASE64 value of the QR code image.

Example

javascript
Misc.qrcodeURL("12345", 300);
// data:image/jpeg;base64,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

eval

Execute the expression engine to replace the data in the expression string str template using the context context variable.

javascript
Misc.eval(str, context);
ParameterTypeDescription
strStringThe expression string. If str is empty, an exception will be thrown.
contextObjectThe context variable. If context is null, an exception will be thrown.

Return Value Type Object The value of the template expression after execution.

Example

javascript
Misc.eval(null, null); // null
Misc.eval("${true}", null); // true
Misc.eval("${true}", {}); // true
Misc.eval("name", { name: "informat" }); // 'name'
Misc.eval("${name}", { name: "informat" }); // 'informat'
Misc.eval("${detail.age}", { name: "informat", detail: { age: 12 } }); // 12
Misc.eval("${detail.sex}", { name: "informat", detail: { age: 12 } }); // null
Misc.eval(null, { name: "informat" }); //null

safesql

Generate a safe complete sql statement with placeholders ? from the sql statement.

javascript
Misc.safesql(sql, params);
ParameterTypeDescription
sqlStringThe sql statement with placeholders ?.
paramsArray<Object>The parameter list, which is replaced in order of the placeholders.

Return Value Type String The safe sql statement.

Example

javascript
Misc.safesql(`update tab set age=?,name=? where id=?`, [18, "李四", `'张' or 1=1`]);
// update tab set age=18,name='李四' where id='''张'' or 1=1'

uuid16

Generate a 16-bit uuid string.

javascript
Misc.uuid16();

Return Value

Type String

Example

javascript
Misc.uuid16(); //lqjfw3xaglp38tru
Misc.uuid16(); //xnqdnq24zubdrk1y

uuid32

Generate a 32-bit uuid string.

javascript
Misc.uuid32();

Return Value

Type String

Example

javascript
Misc.uuid32(); //rigzv6usysisu2gmkash6hdg526y10b5
Misc.uuid32(); //h7b1gde1bz402kwhgoq383hfl6k2p77m

newObject

Build an empty object.

javascript
Misc.newObject();

Return Value

Type Object

Example

javascript
Misc.newObject(); //{}

recordSql

Execute the SQL query to get the record list of the table. Only Select statements are supported, and only the records of the table module are supported.

javascript
Misc.recordSql(sql, parameters);
ParameterTypeDescription
sqlStringThe SQL statement.
parametersArray<Object>The parameter list.

Return Value

Type Array<Object> The record list of the table.

Example