分享个脚本,自定义A表字段信息在B表创建记录

A表数据同步到B表数据,可自定义筛选条件,自定义取什么字段信息到另一张表!

初学做脚本,我看别人写是不是有更优更简便的写法,感觉这样写代码比较臃肿。

let time = Context.argv.time[0]//自动化入参 //'2025/01/14'

var offset = null //先定义offset默认为空
var record = [] //存储获取的数据

while (record.length === 0 || offset) {  //限制一次最多获取100条,做分页处理
  record = Application.Record.GetRecords({
    SheetId: 31,
    Offset: offset,
    PageSize: 1000,
    Fields: ['商品名称','货主名称', '交仓总数', '交仓出库'],
    Filter: {
      mode: "AND",
      criteria: [
        {
          field: "创建日期",
          op: "Equals",
          values: [time]
        },
        {
          field: "数据状态",
          op: "Equals",
          values: ['待归档']
        }
      ]
    }
  })
  offset = record.offset
}
console.log(record)

//record要转换成新建记录所需要的格式
for (var i = 0; i < record.records.length; ++i) {
  var filtes = record.records[i].fields
  var records = {
    交仓出库: filtes.交仓出库,
    交仓总数: filtes.交仓总数,
    商品名称: filtes.商品名称[0] ,//商品名称是引用的字段导致返回是个数组,这里只取第一个
    货主名称: filtes.货主名称[0]
  }
  var recordId = record.records[i].id  //取记录ID

  Application.Record.CreateRecords({  //新增记录
    SheetId: 7,
    Records: [{
      fields: records
    }]
  })

  Application.Record.UpdateRecords({//更新状态
    SheetId: 31,
    Records: [{
      id: recordId,
      fields: {
        数据状态: "归档"
      }
    }
    ]
  })
}
福建省
浏览 141
1
6
分享
6 +1
7
1 +1
全部评论 7
 
赵二
高手!
· 辽宁省
1
回复
 
十一年
厉害 追求效率和速度或减少代码量,循环这部分的作用可以优化 如果 不想写代码,可以向下面这样,用自动化解决
· 黑龙江省
1
回复
错过不容错过
自动化里面没有 查找=点击这一行的时间记录。 所以才写了脚本,用自动化传入时间参数
· 福建省
回复
 
『峰格』
厉害
· 中国
回复