aitable-workflow-cli 0.1.15 → 0.1.16-beta.1786022310508
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/templates/support-qa/lib/__tests__/declarative-matcher.test.ts +240 -0
- package/templates/support-qa/lib/__tests__/dingtalk-group-membership.test.ts +127 -0
- package/templates/support-qa/lib/__tests__/memory-events.test.ts +90 -0
- package/templates/support-qa/lib/action-dispatch.ts +1 -1
- package/templates/support-qa/lib/declarative-matcher.ts +398 -0
- package/templates/support-qa/lib/dingtalk-group-membership.ts +151 -0
- package/templates/support-qa/lib/guards.ts +18 -0
- package/templates/support-qa/lib/memory-events.ts +60 -41
- package/templates/support-qa/lib/preflight.ts +294 -0
- package/templates/support-qa/package.json +2 -4
- package/templates/support-qa/profiles/aitable/profile/fastpath/known-answers.yml +1 -1
- package/templates/support-qa/profiles/aitable/profile/troubleshoot/classifiers.yml +1 -1
- package/templates/support-qa/workflows/config-sync/recipes/config_sync.recipe.ts +10 -8
- package/templates/support-qa/workflows/daily-review/recipes/daily_review.recipe.ts +1 -1
- package/templates/support-qa/workflows/group-qa/recipes/answer.recipe.ts +2 -7
- package/templates/support-qa/workflows/group-qa/recipes/conversation_handler.recipe.ts +3 -3
- package/templates/support-qa/workflows/group-qa/recipes/fastpath.recipe.ts +5 -11
- package/templates/support-qa/workflows/group-qa/recipes/on-action.recipe.ts +4 -2
- package/templates/support-qa/workflows/group-qa/recipes/reply-to-group.recipe.ts +13 -7
- package/templates/support-qa/workflows/group-qa/recipes/troubleshoot.recipe.ts +12 -18
- package/templates/support-qa/workspaces/support/AGENTS.md +1 -1
- package/templates/aitable-handoff/.env.example +0 -17
- package/templates/aitable-handoff/aitable-workflow.config.yml +0 -64
- package/templates/aitable-handoff/coding-agents.config.json +0 -17
- package/templates/aitable-handoff/npmrc +0 -1
- package/templates/aitable-handoff/package.json +0 -16
- package/templates/aitable-handoff/roles/config-syncer.role.yml +0 -4
- package/templates/aitable-handoff/roles/daily-review.role.yml +0 -4
- package/templates/aitable-handoff/roles/faq-support.role.yml +0 -9
- package/templates/aitable-handoff/roles/faq-troubleshooter.role.yml +0 -17
- package/templates/aitable-handoff/roles/kb-editor.role.yml +0 -19
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250/6/350/212/202/350/257/276/345/270/246/344/275/240/345/277/253/351/200/237/344/270/212/346/211/213AI/350/241/250/346/240/274.md +0 -43
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250/AI/350/241/250/346/240/274/350/241/214/346/225/260/350/257/264/346/230/216.md +0 -85
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//344/275/277/347/224/250/345/277/253/346/215/267/351/224/256.md +0 -34
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//345/260/206Excel/346/226/207/344/273/266/345/257/274/345/205/245AI/350/241/250/346/240/274.md +0 -48
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//345/270/270/350/247/201/351/227/256/351/242/230.md +0 -88
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//346/250/241/346/235/277/344/270/255/345/277/203.md +0 -59
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//351/222/211/351/222/211AI/350/241/250/346/240/274/345/270/270/350/247/201/344/270/212/351/231/220.md +0 -181
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//351/222/211/351/222/211AI/350/241/250/346/240/274/345/277/253/351/200/237/344/270/212/346/211/213.md +0 -177
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234/AI/350/241/250/346/240/274/347/232/204/345/257/274/345/207/272.md +0 -27
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/345/210/206/347/273/204.md +0 -67
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/345/241/253/350/211/262.md +0 -99
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/346/216/222/345/272/217.md +0 -66
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/347/255/233/351/200/211/345/222/214/347/255/233/351/200/211/346/235/241/344/273/266/347/273/204.md +0 -104
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//346/237/245/347/234/213/345/216/206/345/217/262/350/256/260/345/275/225.md +0 -79
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//347/224/250AI/350/241/250/346/240/274/344/270/200/350/241/250/344/270/200/345/212/251/347/220/206/345/217/221/346/266/210/346/201/257.md +0 -94
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/207/252/345/256/232/344/271/211/350/256/260/345/275/225/345/220/215/347/247/260.md +0 -35
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/207/252/345/256/232/344/271/211/350/256/260/345/275/225/350/257/246/346/203/205/351/241/265/345/222/214/345/241/253/345/206/231/351/241/265.md +0 -141
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/260/203/346/225/264/345/210/227/345/256/275.md +0 -42
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/260/203/346/225/264/350/241/214/351/253/230.md +0 -40
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//344/270/272/350/241/250/346/240/274/346/267/273/345/212/240/345/255/227/346/256/265.md +0 -188
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/215/225/351/200/211/345/244/232/351/200/211/345/255/227/346/256/265/345/220/214/346/255/245/345/205/266/344/273/226/350/241/250/351/200/211/351/241/271.md +0 -142
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/256/241/347/220/206.md +0 -44
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/261/273/345/236/213/345/210/227/350/241/250.md +0 -95
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/274/226/347/273/204.md +0 -138
- package/templates/aitable-handoff/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/345/221/250/346/234/237/345/210/206/350/241/250.md +0 -42
- package/templates/aitable-handoff/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/345/237/272/347/241/200/346/223/215/344/275/234.md +0 -344
- package/templates/aitable-handoff/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/346/230/216/347/273/206/350/241/250-/344/270/200/346/254/241/345/241/253/345/206/231/345/244/232/346/235/241/346/217/220/344/272/244.md +0 -174
- package/templates/aitable-handoff/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/351/242/204/345/241/253/351/273/230/350/256/244/345/200/274.md +0 -97
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250AI/347/224/237/346/210/220/345/205/254/345/274/217.md +0 -26
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/205/254/345/274/217/345/207/275/346/225/260/345/270/270/350/247/201/351/227/256/351/242/230.md +0 -179
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/205/254/345/274/217/345/255/227/346/256/265.md +0 -81
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/207/275/346/225/260.md +0 -21
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/345/207/275/346/225/260/345/244/247/345/205/250.md +0 -433
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/346/224/257/346/214/201/346/230/276/347/244/272/346/240/274/345/274/217.md +0 -126
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/351/224/231/350/257/257/344/273/243/347/240/201/345/210/227/350/241/250.md +0 -30
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/207/275/346/225/260/345/256/236/350/267/265.md +0 -13
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203.md +0 -169
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//347/273/204/347/273/207/345/206/205/345/205/261/344/272/253/346/225/260/346/215/256/346/272/220.md +0 -106
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//350/267/250AI/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245.md +0 -176
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211AI/345/220/254/350/256/260/346/225/260/346/215/256/345/220/214/346/255/245.md +0 -100
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211OA/345/256/241/346/211/271/346/225/260/346/215/256/345/220/214/346/255/245.md +0 -194
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/345/276/205/345/212/236/346/225/260/346/215/256/345/220/214/346/255/245.md +0 -87
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/346/227/245/347/250/213/346/225/260/346/215/256/345/220/214/346/255/245.md +0 -92
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/350/200/203/345/213/244/346/211/223/345/215/241/346/225/260/346/215/256/345/220/214/346/255/245.md +0 -129
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245.md +0 -229
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/351/200/232/350/256/257/345/275/225/346/225/260/346/215/256/345/220/214/346/255/245.md +0 -120
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//344/275/277/347/224/250AI/350/241/250/346/240/274/350/247/206/345/233/276.md +0 -219
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//345/210/206/344/272/253/350/247/206/345/233/276.md +0 -71
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/225/260/346/215/256/350/241/250/345/222/214/350/247/206/345/233/276/347/232/204/345/205/263/347/263/273.md +0 -48
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/227/245/345/216/206/350/247/206/345/233/276.md +0 -89
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/237/245/350/257/242/351/241/265/351/235/242.md +0 -116
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/224/230/347/211/271/345/233/276.md +0 -135
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/224/273/345/206/214/350/247/206/345/233/276.md +0 -28
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/234/213/346/235/277/350/247/206/345/233/276.md +0 -35
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//350/241/250/346/240/274/350/247/206/345/233/276.md +0 -116
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//351/200/217/350/247/206/350/241/250/350/247/206/345/233/276.md +0 -123
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230/TOP_N/345/210/206/346/236/220.md +0 -78
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/344/270/255/346/267/273/345/212/240/345/244/232/344/270/252/346/225/260/346/215/256/346/272/220.md +0 -129
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/345/215/225/345/233/276/350/241/250/345/222/214AI/350/247/243/350/257/273/345/206/205/345/256/271/345/210/206/344/272/253.md +0 -104
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/345/270/270/350/247/201/351/227/256/351/242/230.md +0 -31
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/346/231/272/350/203/275/346/200/273/347/273/223/345/210/206/346/236/220.md +0 -57
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/347/273/204/344/273/266.md +0 -47
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/275/277/347/224/250AI/350/241/250/346/240/274/344/273/252/350/241/250/347/233/230.md +0 -226
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/346/265/201/347/250/213/345/217/221/351/200/201/344/273/252/350/241/250/347/233/230.md +0 -49
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//345/210/206/344/272/253/344/273/252/350/241/250/347/233/230.md +0 -74
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//345/234/250/344/273/252/350/241/250/347/233/230/344/270/255/347/255/233/351/200/211/346/225/260/346/215/256.md +0 -65
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//350/207/252/345/256/232/344/271/211/344/273/252/350/241/250/347/233/230/344/270/255/345/277/203.md +0 -93
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//350/267/237/351/232/217/350/256/277/351/227/256/350/200/205/346/235/203/351/231/220/347/273/237/350/256/241.md +0 -48
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/205/250/346/226/260/345/272/224/347/224/250/346/250/241/345/274/217.md +0 -155
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/210/227/350/241/250/347/273/204/344/273/266.md +0 -228
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/233/276/347/211/207.md +0 -93
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//346/214/211/351/222/256.md +0 -86
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//346/240/207/347/255/276/351/241/265.md +0 -97
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//350/247/206/345/233/276/347/273/204/344/273/266.md +0 -125
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//350/277/207/346/273/244/345/231/250.md +0 -110
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//351/200/217/350/247/206/350/241/250/347/273/204/344/273/266.md +0 -142
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201/Webhook/345/217/202/346/225/260/347/232/204/350/257/246/347/273/206/350/257/264/346/230/216.md +0 -76
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/270/200/350/241/250/344/270/200/345/217/267Agent/346/224/257/346/214/201/347/276/244/346/224/266/351/233/206.md +0 -150
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250webhook/350/247/246/345/217/221/350/207/252/345/212/250/345/214/226.md +0 -163
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/344/270/215/345/220/214/350/272/253/344/273/275/345/217/221/351/200/201/351/222/211/351/222/211/346/266/210/346/201/257.md +0 -60
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201.md +0 -219
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/345/276/252/347/216/257/350/212/202/347/202/271.md +0 -63
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//345/234/250/346/265/201/347/250/213/344/270/255/344/275/277/347/224/250AI/351/227/256/347/255/224.md +0 -69
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//345/234/250/346/266/210/346/201/257/345/215/241/347/211/207/344/270/212/346/267/273/345/212/240/346/214/211/351/222/256.md +0 -93
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//346/265/201/347/250/213/345/217/230/351/207/217/350/247/243/351/207/212/344/270/216/345/270/270/350/247/201/346/212/245/351/224/231.md +0 -158
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//346/265/201/347/250/213/350/247/246/345/217/221/346/235/241/344/273/266/344/270/216/346/211/247/350/241/214/345/212/250/344/275/234/344/270/200/350/247/210.md +0 -310
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//347/224/250AI/350/241/250/346/240/274/344/270/200/350/241/250/344/270/200/345/212/251/347/220/206/345/217/221/346/266/210/346/201/257-/350/207/252/345/212/250/345/214/226.md +0 -129
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//347/224/250/346/237/245/346/211/276/350/256/260/345/275/225/345/217/221/351/200/201/347/273/204/345/220/210/345/255/227/346/256/265/351/200/232/347/237/245.md +0 -66
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/210/233/345/273/272/351/222/211/351/222/211/345/276/205/345/212/236/346/210/226/346/227/245/347/250/213.md +0 -84
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/350/265/267AI/347/224/265/350/257/235/345/244/226/345/221/274.md +0 -322
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/350/265/267OA/345/256/241/346/211/271.md +0 -93
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/351/200/201HTTP/350/257/267/346/261/202.md +0 -168
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/270/270/350/247/201/351/227/256/351/242/230.md +0 -83
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/211/271/351/207/217/345/217/221/351/202/256/344/273/266.md +0 -79
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/224/257/346/214/201/346/217/222/345/205/245/345/223/252/344/272/233/345/217/230/351/207/217/345/206/205/345/256/271.md +0 -80
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/233/264/345/244/232/346/211/247/350/241/214/345/212/250/344/275/234/344/275/277/347/224/250/346/214/207/345/215/227.md +0 -21
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/260/203/347/224/250/344/270/211/346/226/271/345/267/245/344/275/234/346/265/201/345/272/224/347/224/250.md +0 -161
- package/templates/aitable-handoff/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/344/270/207/350/203/275/350/264/264/344/274/230/345/205/210/344/275/277/347/224/250/347/224/263/350/257/267.md +0 -67
- package/templates/aitable-handoff/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/344/270/207/350/203/275/350/264/264/344/275/277/347/224/250/350/257/264/346/230/216.md +0 -63
- package/templates/aitable-handoff/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/345/212/251/347/220/206.md +0 -107
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//344/275/277/347/224/250AI/350/241/250/346/240/274/351/253/230/347/272/247/346/235/203/351/231/220.md +0 -194
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//350/241/214/345/210/227/346/235/203/351/231/220/350/256/276/347/275/256/345/217/212/351/253/230/347/272/247/346/235/203/351/231/220/345/257/271/350/241/250/345/215/225/345/205/254/345/274/217/347/232/204/345/275/261/345/223/215.md +0 -32
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/242/204/350/247/210/351/253/230/347/272/247/346/235/203/351/231/220/347/273/223/346/236/234.md +0 -43
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/253/230/347/272/247/346/235/203/351/231/220/345/270/270/350/247/201/351/227/256/351/242/230.md +0 -47
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/253/230/347/272/247/346/235/203/351/231/220/347/232/204/351/273/230/350/256/244/350/247/222/350/211/262.md +0 -36
- package/templates/aitable-handoff/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/344/270/211/346/226/271/346/217/222/344/273/266/344/275/277/347/224/250/346/216/210/346/235/203.md +0 -19
- package/templates/aitable-handoff/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266-/350/204/232/346/234/254/346/217/222/344/273/266.md +0 -42
- package/templates/aitable-handoff/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266-/350/207/252/345/256/232/344/271/211/346/217/222/344/273/266.md +0 -51
- package/templates/aitable-handoff/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266/344/270/255/345/277/203-/344/275/277/347/224/250/346/214/207/345/215/227.md +0 -97
- package/templates/aitable-handoff/wiki/faq-support/14-/347/256/241/347/220/206/345/220/216/345/217/260//344/275/277/347/224/250/346/225/260/346/215/256/350/257/264/346/230/216.md +0 -82
- package/templates/aitable-handoff/wiki/faq-support/14-/347/256/241/347/220/206/345/220/216/345/217/260//346/235/203/347/233/212/346/225/260/346/215/256/350/257/264/346/230/216.md +0 -111
- package/templates/aitable-handoff/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265/AI/350/241/250/346/240/274/350/257/257/345/210/240/346/201/242/345/244/215/346/214/207/345/215/227.md +0 -37
- package/templates/aitable-handoff/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265//345/234/250/350/241/250/346/240/274/344/270/255/346/240/207/350/256/260/351/207/215/345/244/215/345/206/205/345/256/271.md +0 -43
- package/templates/aitable-handoff/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265//347/233/264/346/222/255/345/205/254/345/274/200/347/263/273/345/210/227/350/257/276.md +0 -21
- package/templates/aitable-handoff/wiki/faq-support/16-/344/273/230/350/264/271/346/235/203/347/233/212//351/222/211/351/222/211AI/350/241/250/346/240/274/344/273/230/350/264/271/346/235/203/347/233/212.md +0 -144
- package/templates/aitable-handoff/wiki/faq-support/16-/344/273/230/350/264/271/346/235/203/347/233/212//351/222/211/351/222/211AI/350/241/250/346/240/274/346/220/255/345/273/272/346/234/215/345/212/241.md +0 -95
- package/templates/aitable-handoff/wiki/faq-support/17-/345/205/254/345/221/212/AI/350/241/250/346/240/274-/346/216/222/347/211/210/346/211/223/345/215/260/345/215/207/347/272/247/350/257/264/346/230/216.md +0 -40
- package/templates/aitable-handoff/wiki/faq-support/17-/345/205/254/345/221/212/AI/350/241/250/346/240/274-/347/211/210/346/234/254/345/215/207/347/272/247/351/200/232/347/237/245.md +0 -21
- package/templates/aitable-handoff/wiki/faq-support/17-/345/205/254/345/221/212//350/267/250AI/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245/350/260/203/346/225/264/350/257/264/346/230/216.md +0 -55
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI /350/241/250/346/240/274/346/217/222/344/273/266 - /344/274/201/344/270/232/345/206/205/346/217/222/344/273/266/345/217/221/345/270/203/346/214/207/345/215/227.md" +0 -159
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265/345/274/200/345/217/221/346/214/207/345/215/227/357/274/210FaaS/347/211/210/357/274/211.md" +0 -1362
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265/345/274/200/345/217/221/346/214/207/345/215/227/357/274/210/345/205/254/345/274/217/347/211/210/357/274/211.md" +0 -556
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227.md" +0 -15
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/AI /350/241/250/346/240/274 AI /345/255/227/346/256/265/345/270/270/350/247/201/346/212/245/351/224/231/350/257/264/346/230/216.md" +0 -649
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/Dify/346/231/272/350/203/275/344/275/223.md" +0 -55
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/GPTPro /345/255/227/346/256/265/346/215/267/345/276/204 /345/257/206/351/222/245/350/216/267/345/217/226/346/214/207/345/215/227.md" +0 -23
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/OpenClaw /345/260/217/351/276/231/350/231/276/345/212/251/346/211/213/351/205/215/347/275/256/346/225/231/347/250/213.md" +0 -27
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227//345/233/275/345/206/205/345/244/226/345/277/253/351/200/222/347/211/251/346/265/201/344/277/241/346/201/257/346/237/245/350/257/242/344/275/277/347/224/250/346/214/207/345/215/227.md" +0 -907
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227//345/277/253/351/200/222/347/211/251/346/265/201/346/237/245/350/257/242/345/212/251/346/211/213/344/275/277/347/224/250/346/214/207/345/215/227.md" +0 -1
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/AI/350/241/250/346/240/274JSAPI /347/261/273/345/236/213/346/217/217/350/277/260.xlsx +0 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Base /346/250/241/345/235/227.md" +0 -391
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/AttachmentField /351/231/204/344/273/266/345/255/227/346/256/265.md" +0 -200
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/AutoNumberField /350/207/252/345/212/250/347/274/226/345/217/267/345/255/227/346/256/265.md" +0 -75
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/BarcodeField /346/235/241/347/240/201/345/255/227/346/256/265.md" +0 -95
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/BidirectionalLinkField /345/217/214/345/220/221/345/205/263/350/201/224/345/255/227/346/256/265.md" +0 -294
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CheckboxField /345/244/215/351/200/211/346/241/206/345/255/227/346/256/265.md" +0 -95
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CreatedTimeField /345/210/233/345/273/272/346/227/266/351/227/264/345/255/227/346/256/265.md" +0 -134
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CurrencyField /350/264/247/345/270/201/345/255/227/346/256/265.md" +0 -260
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/DateField /346/227/245/346/234/237/345/255/227/346/256/265.md" +0 -183
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/DepartmentField /351/203/250/351/227/250/345/255/227/346/256/265.md" +0 -111
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/EmailField /351/202/256/347/256/261/345/255/227/346/256/265.md" +0 -99
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/FilterUpField /346/237/245/346/211/276/345/274/225/347/224/250/345/255/227/346/256/265.md" +0 -73
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/FormulaField /345/205/254/345/274/217/345/255/227/346/256/265.md" +0 -109
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/GeoLocationField /345/234/260/347/220/206/344/275/215/347/275/256/345/255/227/346/256/265.md" +0 -33
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/GroupField /347/276/244/347/273/204/345/255/227/346/256/265.md" +0 -111
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/LastModifiedTimeField /346/234/200/345/220/216/346/233/264/346/226/260/346/227/266/351/227/264/345/255/227/346/256/265.md" +0 -134
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/LookupField /345/205/263/350/201/224/345/274/225/347/224/250/345/255/227/346/256/265.md" +0 -71
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/MultiSelectField /345/244/232/351/200/211/345/255/227/346/256/265.md" +0 -349
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/NumberField /346/225/260/345/255/227/345/255/227/346/256/265.md" +0 -175
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/PrimaryField /344/270/273/351/224/256/346/226/207/346/241/243/345/255/227/346/256/265.md" +0 -91
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/ProgressField /350/277/233/345/272/246/345/255/227/346/256/265.md" +0 -324
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/RatingField /350/257/204/345/210/206/345/255/227/346/256/265.md" +0 -320
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/RichTextField /345/257/214/346/226/207/346/234/254/345/255/227/346/256/265.md" +0 -45
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/SingleSelectField /345/215/225/351/200/211/345/255/227/346/256/265.md" +0 -336
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/TelephoneField /347/224/265/350/257/235/345/255/227/346/256/265.md" +0 -99
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/TextField /346/226/207/346/234/254/345/255/227/346/256/265.md" +0 -93
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UnidirectionalLinkFields /345/215/225/345/220/221/345/205/263/350/201/224/345/255/227/346/256/265.md" +0 -295
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UrlField /351/223/276/346/216/245/345/255/227/346/256/265.md" +0 -163
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UserField /344/272/272/345/221/230/345/255/227/346/256/265.md" +0 -266
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227.md" +0 -379
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Record /346/250/241/345/235/227.md" +0 -277
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Sheet /346/250/241/345/235/227.md" +0 -1013
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/UI /346/250/241/345/235/227.md" +0 -472
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/View /346/250/241/345/235/227/GridView /350/241/250/346/240/274/350/247/206/345/233/276.md" +0 -835
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/View /346/250/241/345/235/227.md" +0 -203
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md +0 -65
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243//350/257/273/345/206/231AI /350/241/250/346/240/274/346/250/241/345/236/213.md" +0 -29
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/346/225/260/346/215/256/346/272/220 /345/274/200/345/217/221/346/214/207/345/215/227.md" +0 -607
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Base /346/250/241/345/235/227.md" +0 -391
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Field /346/250/241/345/235/227.md" +0 -379
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Input/346/250/241/345/235/227.md" +0 -331
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Output/346/250/241/345/235/227.md" +0 -197
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Record /346/250/241/345/235/227.md" +0 -277
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Sheet /346/250/241/345/235/227.md" +0 -1013
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/UI /346/250/241/345/235/227.md" +0 -472
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/View /346/250/241/345/235/227.md" +0 -203
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md" +0 -65
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227.md" +0 -142
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Base /346/250/241/345/235/227.md" +0 -391
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Event/344/272/213/344/273/266/346/250/241/345/235/227.md" +0 -182
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Field /346/250/241/345/235/227.md" +0 -379
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Record /346/250/241/345/235/227.md" +0 -277
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Sheet /346/250/241/345/235/227.md" +0 -1013
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/UI /346/250/241/345/235/227.md" +0 -472
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/View /346/250/241/345/235/227.md" +0 -203
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/205/266/344/273/226/346/216/245/345/217/243.md" +0 -146
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md" +0 -65
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//346/240/270/345/277/203/347/237/245/350/257/206.md" +0 -54
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227.md" +0 -192
- package/templates/aitable-handoff/wiki/faq-support//351/222/211/351/222/211AI/350/241/250/346/240/274FAQ.md +0 -611
- package/templates/aitable-handoff/workflows/admin-kb-update/recipes/kb-refine.recipe.ts +0 -131
- package/templates/aitable-handoff/workflows/admin-kb-update/recipes/kb_sync_handler.recipe.ts +0 -130
- package/templates/aitable-handoff/workflows/admin-kb-update/workflow.yml +0 -125
- package/templates/aitable-handoff/workflows/config-sync/recipes/config_sync.recipe.ts +0 -448
- package/templates/aitable-handoff/workflows/config-sync/recipes/config_sync_handler.recipe.ts +0 -16
- package/templates/aitable-handoff/workflows/config-sync/workflow.yml +0 -73
- package/templates/aitable-handoff/workflows/daily-review/recipes/daily_review.recipe.ts +0 -529
- package/templates/aitable-handoff/workflows/daily-review/recipes/daily_review_handler.recipe.ts +0 -26
- package/templates/aitable-handoff/workflows/daily-review/recipes/memory-events.ts +0 -56
- package/templates/aitable-handoff/workflows/daily-review/workflow.yml +0 -92
- package/templates/aitable-handoff/workflows/group-qa/error-replies.json +0 -53
- package/templates/aitable-handoff/workflows/group-qa/recipes/answer.recipe.ts +0 -197
- package/templates/aitable-handoff/workflows/group-qa/recipes/conversation_handler.recipe.ts +0 -294
- package/templates/aitable-handoff/workflows/group-qa/recipes/issue-classifier.ts +0 -120
- package/templates/aitable-handoff/workflows/group-qa/recipes/known-error-match.recipe.ts +0 -75
- package/templates/aitable-handoff/workflows/group-qa/recipes/memory-events.ts +0 -55
- package/templates/aitable-handoff/workflows/group-qa/recipes/reply-to-group.recipe.ts +0 -132
- package/templates/aitable-handoff/workflows/group-qa/recipes/troubleshoot-issue.recipe.ts +0 -195
- package/templates/aitable-handoff/workflows/group-qa/workflow.yml +0 -210
- package/templates/aitable-handoff/workspaces/daily-review/AGENTS.md +0 -189
- package/templates/aitable-handoff/workspaces/faq-support/AGENTS.md +0 -448
- package/templates/aitable-handoff/workspaces/faq-support/contacts.json +0 -14
- package/templates/aitable-handoff/workspaces/faq-support/owner-map.json +0 -18
- package/templates/aitable-handoff/workspaces/faq-support/skills/bug-triage/SKILL.md +0 -130
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/AGENTS.md +0 -53
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/SKILL.md +0 -58
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/aitable-import-troubleshooter/SKILL.md +0 -485
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/aitable-openapi-troubleshooter/SKILL.md +0 -183
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/import-openapi-e2e-troubleshooter/SKILL.md +0 -459
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/notable-datasource-troubleshooter/SKILL.md +0 -1286
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/notable-field-troubleshooter/SKILL.md +0 -673
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/spreadsheet-datasync-troubleshooter/SKILL.md +0 -322
- package/templates/aitable-handoff/workspaces/kb-editor/AGENTS.md +0 -32
- package/templates/support-qa/lib/assemble-cli.ts +0 -30
- package/templates/support-qa/lib/assemble.ts +0 -279
- package/templates/support-qa/lib/echo-guard.ts +0 -50
- package/templates/support-qa/lib/fastpath.ts +0 -227
- package/templates/support-qa/lib/owner-mention.ts +0 -140
- package/templates/support-qa/lib/profile-guard.ts +0 -55
- package/templates/support-qa/lib/send-failure-guard.ts +0 -59
- package/templates/support-qa/lib/troubleshoot.ts +0 -236
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
# UserField 人员字段
|
|
2
|
-
|
|
3
|
-
`UserField` 继承自基础 [`Field`](https://alidocs.dingtalk.com/i/nodes/np9zOoBVBy2AdzEju0z93rx2W1DK0g6l?utm_scene=person_space)类,专门用于处理人员类型数据。
|
|
4
|
-
|
|
5
|
-
在读写人员字段前,请先了解钉钉用户unionId和userId概念:
|
|
6
|
-
|
|
7
|
-
:::
|
|
8
|
-
**UserId**
|
|
9
|
-
|
|
10
|
-
UserId是员工在其所属组织中的唯一标识,仅在所属组织内是唯一标识符。同一个用户在不同组织中可以拥有不同的UserId。
|
|
11
|
-
|
|
12
|
-
[https://open.dingtalk.com/document/development/query-the-list-of-department-userids: https://open.dingtalk.com/document/development/query-the-list-of-department-userids](https://open.dingtalk.com/document/development/query-the-list-of-department-userids)
|
|
13
|
-
:::
|
|
14
|
-
:::
|
|
15
|
-
**Unionid**
|
|
16
|
-
|
|
17
|
-
UnionId是员工在当前开发者企业范围内的唯一标识,由系统生成。
|
|
18
|
-
|
|
19
|
-
对于开发边栏插件的用户而言,uniondId为插件所属企业范围内的唯一标识,同一个员工在不同的组织的企业内/三方插件下,unionid是不相同的。在同一个开发者企业账号下,unionid是唯一且不变的。
|
|
20
|
-
|
|
21
|
-
对于开发脚本插件的用户而言,unionId始终返回文档所属企业下的唯一标识。
|
|
22
|
-
|
|
23
|
-
[https://open.dingtalk.com/document/development/query-a-user-by-the-union-id: https://open.dingtalk.com/document/development/query-a-user-by-the-union-id](https://open.dingtalk.com/document/development/query-a-user-by-the-union-id)
|
|
24
|
-
:::
|
|
25
|
-
:::
|
|
26
|
-
**JobNumber**
|
|
27
|
-
|
|
28
|
-
JobNumber是员工在其所属组织中的工号。企业内员工的工号可以不唯一,所以不能作为员工在企业内的唯一标识。
|
|
29
|
-
|
|
30
|
-
[https://open.dingtalk.com/document/development/contacts-overview#title-r7e-f1c-inp: https://open.dingtalk.com/document/development/contacts-overview#title-r7e-f1c-inp](https://open.dingtalk.com/document/development/contacts-overview#title-r7e-f1c-inp)
|
|
31
|
-
:::
|
|
32
|
-
:::
|
|
33
|
-
**ExtContactUserId**
|
|
34
|
-
|
|
35
|
-
ExtContactUserId是外部联系人在组织中的唯一标识,尽在所属组织内是唯一标识符。客户信息可作为外部联系人统一管理,避免员工离职带走客户信息。
|
|
36
|
-
|
|
37
|
-
[https://open.dingtalk.com/document/development/add-enterprise-external-contacts: https://open.dingtalk.com/document/development/add-enterprise-external-contacts](https://open.dingtalk.com/document/development/add-enterprise-external-contacts)
|
|
38
|
-
:::
|
|
39
|
-
|
|
40
|
-
## 字段特有方法
|
|
41
|
-
|
|
42
|
-
### getValueAsync
|
|
43
|
-
|
|
44
|
-
获取指定记录在该人员字段中选择的人员。
|
|
45
|
-
|
|
46
|
-
```typescript
|
|
47
|
-
getValueAsync: (recordId: string) => Promise<UserCellValue[] | null>
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
**参数**
|
|
52
|
-
|
|
53
|
-
* `recordId`: `string` - 记录ID
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
**返回值**
|
|
57
|
-
|
|
58
|
-
* [`Promise<UserCellValue[] | null>`](https://alidocs.dingtalk.com/notable/record?dentryUuid=GZLxjv9VGGDA9Ro2u05KgqMnV6EDybno&rowId=udEx7tlPxG&sheetId=hERWDMS&viewId=qvGDAH2)\- 选中的人员,返回用户名和用户unionId
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
**示例**
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
// 获取记录的人员值
|
|
65
|
-
const userField = sheet.getField<UserField>('人员');
|
|
66
|
-
if (userField) {
|
|
67
|
-
const users = await userField.getValueAsync('rec123456');
|
|
68
|
-
console.log('查询到用户:', users.map((user) => (`用户名:${user.name}|用户unionId: ${user.unionId}`)).join('\n'));
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
```typescript
|
|
72
|
-
const userField = sheet.getField('人员');
|
|
73
|
-
if (Base.isFieldOfType(userField, 'user')) {
|
|
74
|
-
const users = await userField.getValueAsync('rec123456');
|
|
75
|
-
Output.log('查询到用户:\n', users.map((user) => (`用户名:${user.name}|用户unionId: ${user.unionId}`)).join('\n'));
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### setValueAsync
|
|
80
|
-
|
|
81
|
-
设置指定记录在该人员字段中的人员值。
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
setValueAsync: (recordId: string, value: UserCellValue[]) => Promise<boolean>
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
**参数**
|
|
88
|
-
|
|
89
|
-
* `recordId`: `string` - 记录ID
|
|
90
|
-
|
|
91
|
-
* `value`: [`UserCellValue[]`](https://alidocs.dingtalk.com/notable/record?dentryUuid=GZLxjv9VGGDA9Ro2u05KgqMnV6EDybno&rowId=udEx7tlPxG&sheetId=hERWDMS&viewId=qvGDAH2) - 人员值,支持传入用户的userId或unionId
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
**返回值**
|
|
95
|
-
|
|
96
|
-
* `Promise<boolean>`\- 操作是否成功
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
**示例**
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
// 设置记录的选项值
|
|
103
|
-
const userField = sheet.getField<UserField>('人员');
|
|
104
|
-
if (userField) {
|
|
105
|
-
const success = await userField.setValueAsync('rec123456', [{
|
|
106
|
-
userId: 'user123',
|
|
107
|
-
}, {
|
|
108
|
-
unionId: 'xxxxx',
|
|
109
|
-
}, {
|
|
110
|
-
jobNumber: 'staff123',
|
|
111
|
-
}, {
|
|
112
|
-
extContactUserId: 'xxxxx',
|
|
113
|
-
}]);
|
|
114
|
-
if (success) {
|
|
115
|
-
console.log('向记录中更新了两名人员');
|
|
116
|
-
} else {
|
|
117
|
-
console.log('记录更新失败');
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
```typescript
|
|
123
|
-
// 设置记录的选项值
|
|
124
|
-
const userField = sheet.getField('人员');
|
|
125
|
-
if (Base.isFieldOfType(userField, 'user')) {
|
|
126
|
-
const success = await userField.setValueAsync('rec123456', [{
|
|
127
|
-
userId: 'user123',
|
|
128
|
-
}, {
|
|
129
|
-
unionId: 'xxxxx',
|
|
130
|
-
}, {
|
|
131
|
-
jobNumber: 'staff123',
|
|
132
|
-
}, {
|
|
133
|
-
extContactUserId: 'xxxxx',
|
|
134
|
-
}]);
|
|
135
|
-
if (success) {
|
|
136
|
-
Output.log('向记录中更新了两名人员');
|
|
137
|
-
} else {
|
|
138
|
-
Output.log('记录更新失败');
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### 最佳实践
|
|
145
|
-
|
|
146
|
-
以下示例展示如何在当前激活的数据表中新增一个人员字段,并创建一条记录写入当前用户信息。
|
|
147
|
-
|
|
148
|
-
```typescript
|
|
149
|
-
// script.ts - 服务层脚本
|
|
150
|
-
async function addUserFieldWithCurrentUser() {
|
|
151
|
-
try {
|
|
152
|
-
const base = DingdocsScript.base;
|
|
153
|
-
|
|
154
|
-
// 1. 获取当前用户信息
|
|
155
|
-
const currentUser = await base.getCurrentUser();
|
|
156
|
-
if (!currentUser) {
|
|
157
|
-
console.error('无法获取当前用户信息');
|
|
158
|
-
return { success: false, message: '无法获取当前用户信息' };
|
|
159
|
-
}
|
|
160
|
-
console.log(`当前用户: ${currentUser.name}`);
|
|
161
|
-
|
|
162
|
-
// 2. 获取当前激活的数据表
|
|
163
|
-
const activeSheet = base.getActiveSheet();
|
|
164
|
-
if (!activeSheet) {
|
|
165
|
-
console.error('当前没有激活的数据表,请先选中一个数据表');
|
|
166
|
-
return { success: false, message: '当前没有激活的数据表,请先选中一个数据表' };
|
|
167
|
-
}
|
|
168
|
-
console.log(`当前数据表: ${activeSheet.getName()}`);
|
|
169
|
-
|
|
170
|
-
// 3. 新增人员字段
|
|
171
|
-
const userFieldName = '负责人';
|
|
172
|
-
let userField = activeSheet.getField(userFieldName);
|
|
173
|
-
if (!userField) {
|
|
174
|
-
userField = activeSheet.insertField(userFieldName, 'user');
|
|
175
|
-
console.log(`已创建人员字段: ${userFieldName}`);
|
|
176
|
-
} else {
|
|
177
|
-
console.log(`人员字段已存在: ${userFieldName}`);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// 4. 插入一条记录,写入当前用户信息
|
|
181
|
-
const newRecords = await activeSheet.insertRecordsAsync([
|
|
182
|
-
{
|
|
183
|
-
fields: {
|
|
184
|
-
[userFieldName]: [{ unionId: currentUser.unionId }]
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
]);
|
|
188
|
-
|
|
189
|
-
if (newRecords && newRecords.length > 0) {
|
|
190
|
-
console.log(`成功创建记录,ID: ${newRecords[0].getId()}`);
|
|
191
|
-
return {
|
|
192
|
-
success: true,
|
|
193
|
-
message: `已将当前用户 ${currentUser.name} 写入人员字段`,
|
|
194
|
-
recordId: newRecords[0].getId()
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
return { success: false, message: '创建记录失败' };
|
|
198
|
-
} catch (error) {
|
|
199
|
-
console.error(`执行失败: ${error instanceof Error ? error.message : '未知错误'}`);
|
|
200
|
-
return { success: false, message: error instanceof Error ? error.message : '未知错误' };
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// 注册脚本函数
|
|
205
|
-
DingdocsScript.registerScript('addUserFieldWithCurrentUser', addUserFieldWithCurrentUser);
|
|
206
|
-
|
|
207
|
-
```
|
|
208
|
-
```typescript
|
|
209
|
-
async function addUserFieldWithCurrentUser() {
|
|
210
|
-
try {
|
|
211
|
-
// 1. 获取当前用户信息
|
|
212
|
-
const currentUser = await Base.getCurrentUser();
|
|
213
|
-
if (!currentUser) {
|
|
214
|
-
Output.error('无法获取当前用户信息');
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
Output.log(`当前用户: ${currentUser.name}`);
|
|
218
|
-
|
|
219
|
-
// 2. 获取当前激活的数据表
|
|
220
|
-
const activeSheet = Base.getActiveSheet();
|
|
221
|
-
if (!activeSheet) {
|
|
222
|
-
Output.error('当前没有激活的数据表,请先选中一个数据表');
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
Output.log(`当前数据表: ${activeSheet.getName()}`);
|
|
226
|
-
|
|
227
|
-
// 3. 新增人员字段
|
|
228
|
-
const userFieldName = '负责人';
|
|
229
|
-
let userField = activeSheet.getField(userFieldName);
|
|
230
|
-
if (!userField) {
|
|
231
|
-
userField = activeSheet.insertField(userFieldName, 'user');
|
|
232
|
-
Output.log(`已创建人员字段: ${userFieldName}`);
|
|
233
|
-
} else {
|
|
234
|
-
Output.log(`人员字段已存在: ${userFieldName}`);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
// 4. 插入一条记录,写入当前用户信息
|
|
238
|
-
const newRecords = await activeSheet.insertRecordsAsync([
|
|
239
|
-
{
|
|
240
|
-
fields: {
|
|
241
|
-
[userFieldName]: [{ unionId: currentUser.unionId }]
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
]);
|
|
245
|
-
|
|
246
|
-
if (newRecords && newRecords.length > 0) {
|
|
247
|
-
Output.log(`成功创建记录,ID: ${newRecords[0].getId()}`);
|
|
248
|
-
Output.log(`已将当前用户 ${currentUser.name} 写入人员字段`);
|
|
249
|
-
}
|
|
250
|
-
} catch (error) {
|
|
251
|
-
Output.error(`执行失败: ${error instanceof Error ? error.message : '未知错误'}`);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
await addUserFieldWithCurrentUser();
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
**关键点说明**:
|
|
259
|
-
|
|
260
|
-
* **获取当前用户**:使用 `Base.getCurrentUser()` 或 `base.getCurrentUser()` 获取当前登录用户信息,返回 `UserCellValue` 对象
|
|
261
|
-
|
|
262
|
-
* **检查激活表**:使用 `getActiveSheet()` 获取当前激活的数据表,若返回 `null` 则表示没有激活的表
|
|
263
|
-
|
|
264
|
-
* **字段去重**:在创建字段前先检查是否已存在同名字段,避免重复创建
|
|
265
|
-
|
|
266
|
-
* **写入用户值**:人员字段值为数组格式,支持通过 `userId` 或 `unionId` 指定用户
|
|
@@ -1,379 +0,0 @@
|
|
|
1
|
-
# Field 模块
|
|
2
|
-
|
|
3
|
-
Field 接口提供了操作数据表字段的方法,包括获取字段基本信息、修改字段属性以及操作字段值等功能。
|
|
4
|
-
|
|
5
|
-
通常我们通过 [Sheet 模块](https://alidocs.dingtalk.com/i/nodes/y20BglGWOGQgpOj6uYQeAA3EWA7depqY?utm_scene=person_space) 创建或获取字段,如下所示:
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
const singleSelectField = sheet.getField<SingleSelectField>(fieldNameOrId);
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
值得注意的是,我们在调用 `getField` 方法时传入了指定的类型 `<SingleSelectField>`,我们非常推荐这样的用法,通过这样的方法获取的 `Field`,会有足够的类型提示,例如我们可以很方便地为这个单选字段新增选项:
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
singleSelectField.addOption('Option1');
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
除了设置字段的属性之外,我们也推荐开发者从字段角度来对值进行增删改查操作例如:
|
|
18
|
-
|
|
19
|
-
```typescript
|
|
20
|
-
await singleSelectField.setValueAsync(recordOrId, 'OptionId1');
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
在脚本插件中,由于脚本编辑语言为javascript,可以通过Base上提供的isFieldOfType进行类型推断:
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
if (sheet)
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
详细用法可以点击具体字段类型模块中查看,如[文本字段](https://alidocs.dingtalk.com/i/nodes/QPGYqjpJYRyab0nxszLmaeDD8akx1Z5N?utm_scene=person_space)。
|
|
30
|
-
|
|
31
|
-
:::
|
|
32
|
-
本文子目录中包含了目前已经支持所有字段类型,本文的后续介绍了一些通用的方法
|
|
33
|
-
:::
|
|
34
|
-
|
|
35
|
-
## 基本信息方法
|
|
36
|
-
|
|
37
|
-
### isValid
|
|
38
|
-
|
|
39
|
-
检查当前字段对象是否有效。
|
|
40
|
-
|
|
41
|
-
```typescript
|
|
42
|
-
isValid: () => boolean
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**返回值**
|
|
47
|
-
|
|
48
|
-
* `boolean` - 如果字段存在且有效返回true,否则返回false
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
**示例**
|
|
52
|
-
|
|
53
|
-
```typescript
|
|
54
|
-
if (field.isValid()) {
|
|
55
|
-
console.log('字段有效,可以进行操作');
|
|
56
|
-
} else {
|
|
57
|
-
console.log('字段无效或已被删除');
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
```typescript
|
|
62
|
-
if (field.isValid()) {
|
|
63
|
-
Output.log('字段有效,可以进行操作');
|
|
64
|
-
} else {
|
|
65
|
-
Output.log('字段无效或已被删除');
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### getSheetId
|
|
71
|
-
|
|
72
|
-
获取字段所属数据表的ID。
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
getSheetId: () => string
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**返回值**
|
|
80
|
-
|
|
81
|
-
* `string` - 数据表ID
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
**示例**
|
|
85
|
-
|
|
86
|
-
```typescript
|
|
87
|
-
const sheetId = field.getSheetId();
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### getId
|
|
92
|
-
|
|
93
|
-
获取字段ID。
|
|
94
|
-
|
|
95
|
-
```typescript
|
|
96
|
-
getId: () => string
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
**返回值**
|
|
101
|
-
|
|
102
|
-
* `string` - 字段ID
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
**示例**
|
|
106
|
-
|
|
107
|
-
```typescript
|
|
108
|
-
const fieldId = field.getId();
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### isPrimary
|
|
113
|
-
|
|
114
|
-
当前字段对象是否为主键列。
|
|
115
|
-
|
|
116
|
-
```typescript
|
|
117
|
-
isPrimary: () => boolean
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
**返回值**
|
|
122
|
-
|
|
123
|
-
* `boolean` - 是否为主键
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
**示例**
|
|
127
|
-
|
|
128
|
-
```typescript
|
|
129
|
-
if(field.isPrimary()) {
|
|
130
|
-
console.log('当前字段为数据表主键');
|
|
131
|
-
} else {
|
|
132
|
-
console.log('当前字段不是数据表主键')
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
```typescript
|
|
137
|
-
if(field.isPrimary()) {
|
|
138
|
-
Output.log('当前字段为数据表主键');
|
|
139
|
-
} else {
|
|
140
|
-
Output.log('当前字段不是数据表主键')
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### getName
|
|
146
|
-
|
|
147
|
-
获取字段名称。
|
|
148
|
-
|
|
149
|
-
```typescript
|
|
150
|
-
getName: () => string
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**返回值**
|
|
155
|
-
|
|
156
|
-
* `string` - 字段名称
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
**示例**
|
|
160
|
-
|
|
161
|
-
```typescript
|
|
162
|
-
const fieldName = field.getName();
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### setName
|
|
167
|
-
|
|
168
|
-
设置字段名称。
|
|
169
|
-
|
|
170
|
-
```typescript
|
|
171
|
-
setName: (name: string) => Field<T>
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
**参数**
|
|
176
|
-
|
|
177
|
-
* `name`: `string` - 新的字段名称
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
**返回值**
|
|
181
|
-
|
|
182
|
-
* `Field` - 字段对象本身,支持链式调用
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
**示例**
|
|
186
|
-
|
|
187
|
-
```typescript
|
|
188
|
-
// 修改字段名称
|
|
189
|
-
field.setName('客户全名');
|
|
190
|
-
|
|
191
|
-
// 链式调用
|
|
192
|
-
field.setName('联系电话').getProperty();
|
|
193
|
-
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
**注意事项**
|
|
197
|
-
|
|
198
|
-
* 不能修改从其他数据源同步的字段名称
|
|
199
|
-
|
|
200
|
-
* 字段名称在同一数据表中必须唯一
|
|
201
|
-
|
|
202
|
-
* 需要有字段更新权限
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
### getType
|
|
206
|
-
|
|
207
|
-
获取字段类型。
|
|
208
|
-
|
|
209
|
-
```typescript
|
|
210
|
-
getType: () => FieldType
|
|
211
|
-
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
**返回值**
|
|
215
|
-
|
|
216
|
-
* [`FieldType`](https://alidocs.dingtalk.com/notable/record?dentryUuid=GZLxjv9VGGDA9Ro2u05KgqMnV6EDybno&rowId=7Gtfo83ZWU&sheetId=hERWDMS&viewId=qvGDAH2) - 字段类型
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
**示例**
|
|
220
|
-
|
|
221
|
-
```typescript
|
|
222
|
-
const fieldType = field.getType();
|
|
223
|
-
console.log(`字段类型: ${fieldType}`);
|
|
224
|
-
|
|
225
|
-
// 根据字段类型执行不同操作
|
|
226
|
-
if (fieldType === 'singleSelect') {
|
|
227
|
-
console.log('这是一个单选字段');
|
|
228
|
-
} else if (fieldType === 'date') {
|
|
229
|
-
console.log('这是一个日期字段');
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
```
|
|
233
|
-
```typescript
|
|
234
|
-
const fieldType = field.getType();
|
|
235
|
-
console.log(`字段类型: ${fieldType}`);
|
|
236
|
-
|
|
237
|
-
// 根据字段类型执行不同操作
|
|
238
|
-
if (fieldType === 'singleSelect') {
|
|
239
|
-
console.log('这是一个单选字段');
|
|
240
|
-
} else if (fieldType === 'date') {
|
|
241
|
-
console.log('这是一个日期字段');
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
## 字段属性方法(不建议直接使用)
|
|
247
|
-
|
|
248
|
-
### getProperty
|
|
249
|
-
|
|
250
|
-
获取字段配置属性。
|
|
251
|
-
|
|
252
|
-
```typescript
|
|
253
|
-
getProperty: () => FieldProperty | undefined
|
|
254
|
-
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
**返回值**
|
|
258
|
-
|
|
259
|
-
* [`FieldProperty | undefined`](https://alidocs.dingtalk.com/notable/record?dentryUuid=GZLxjv9VGGDA9Ro2u05KgqMnV6EDybno&rowId=tguz2mP8WZ&sheetId=hERWDMS&viewId=qvGDAH2) - 字段的配置属性,不同类型的字段有不同的属性结构,具体可以参考[《字段数据结构》](https://alidocs.dingtalk.com/i/nodes/nYMoO1rWxmP7olkyF0kGwelwV47Z3je9?utm_scene=team_space&iframeQuery=anchorId%3Duu_mk4xf3z7pfeezmqbo5e)
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
**示例**
|
|
263
|
-
|
|
264
|
-
```typescript
|
|
265
|
-
const property = field.getProperty();
|
|
266
|
-
|
|
267
|
-
// 对于数字字段,获取格式设置
|
|
268
|
-
if (field.getType() === 'number') {
|
|
269
|
-
console.log(`数字格式: ${property.format}`);
|
|
270
|
-
console.log(`精度: ${property.precision}`);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
```
|
|
274
|
-
```typescript
|
|
275
|
-
const property = field.getProperty();
|
|
276
|
-
|
|
277
|
-
// 对于数字字段,获取格式设置
|
|
278
|
-
if (field.getType() === 'number') {
|
|
279
|
-
Output.log(`数字格式: ${property.format}`);
|
|
280
|
-
Output.log(`精度: ${property.precision}`);
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
### setPropertyAsync
|
|
286
|
-
|
|
287
|
-
异步设置字段配置属性。
|
|
288
|
-
|
|
289
|
-
```typescript
|
|
290
|
-
setPropertyAsync: (property: FieldProperty) => Promise<Field<T>>
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
**参数**
|
|
294
|
-
|
|
295
|
-
`property`\- [`FieldProperty`](https://alidocs.dingtalk.com/notable/record?dentryUuid=GZLxjv9VGGDA9Ro2u05KgqMnV6EDybno&rowId=tguz2mP8WZ&sheetId=hERWDMS&viewId=qvGDAH2) 字段的新配置属性
|
|
296
|
-
|
|
297
|
-
根据字段类型不同,支持传入的字段属性结构也不同,具体可以参考[《字段数据结构》](https://alidocs.dingtalk.com/i/nodes/nYMoO1rWxmP7olkyF0kGwelwV47Z3je9?utm_scene=team_space&iframeQuery=anchorId%3Duu_mk4xf3z7pfeezmqbo5e)
|
|
298
|
-
|
|
299
|
-
**返回值**
|
|
300
|
-
|
|
301
|
-
* `Promise<Field<T>>` - 字段对象本身,支持链式调用
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
**示例**
|
|
305
|
-
|
|
306
|
-
```typescript
|
|
307
|
-
// 修改数字字段的格式
|
|
308
|
-
if (field.getType() === 'number') {
|
|
309
|
-
await field.setPropertyAsync({
|
|
310
|
-
formatter: 'FLOAT_1'
|
|
311
|
-
})
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
**注意事项**
|
|
317
|
-
|
|
318
|
-
* 不同类型的字段有不同的属性结构
|
|
319
|
-
|
|
320
|
-
* 某些字段属性修改可能需要更新整列数据,会触发数据加载
|
|
321
|
-
|
|
322
|
-
* 需要有字段更新权限
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
## 记录方法
|
|
326
|
-
|
|
327
|
-
### getFieldValuesAsync
|
|
328
|
-
|
|
329
|
-
分页获取整列字段值。
|
|
330
|
-
|
|
331
|
-
```typescript
|
|
332
|
-
getFieldValuesAsync: (options?: GetFieldValuesOptions) => Promise<PagedFieldValues<T> | null>;
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
**参数**
|
|
336
|
-
|
|
337
|
-
`options`\- [`GetFieldValuesOptions`](https://alidocs.dingtalk.com/notable/record?dentryUuid=GZLxjv9VGGDA9Ro2u05KgqMnV6EDybno&rowId=kStgmhj5zj&sheetId=hERWDMS&viewId=qvGDAH2) 可选项,分页获取参数
|
|
338
|
-
|
|
339
|
-
**返回值**
|
|
340
|
-
|
|
341
|
-
* [`Promise<PagedFieldValues<T> | null>`](https://alidocs.dingtalk.com/notable/record?dentryUuid=GZLxjv9VGGDA9Ro2u05KgqMnV6EDybno&rowId=4sBB3qX3SZ&sheetId=hERWDMS&viewId=qvGDAH2) - 分页获取结果
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
**示例**
|
|
345
|
-
|
|
346
|
-
```typescript
|
|
347
|
-
const result = await field.getFieldValuesAsync({
|
|
348
|
-
pageSize: 20,
|
|
349
|
-
});
|
|
350
|
-
if (result) {
|
|
351
|
-
const { fieldValues, hasMore, cursor, total } = result;
|
|
352
|
-
}
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
## 类型化字段
|
|
356
|
-
|
|
357
|
-
Field类支持泛型,可以获取特定类型的字段:
|
|
358
|
-
|
|
359
|
-
```typescript
|
|
360
|
-
// 获取特定类型的字段
|
|
361
|
-
const selectField = sheet.getField<SelectField>('状态');
|
|
362
|
-
if (selectField) {
|
|
363
|
-
// 可以使用SelectField特有的方法
|
|
364
|
-
const options = selectField.getOptions();
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
const numberField = sheet.getField<NumberField>('金额');
|
|
368
|
-
if (numberField) {
|
|
369
|
-
// 可以使用NumberField特有的方法
|
|
370
|
-
const format = numberField.getFormat();
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
**注意事项**
|
|
376
|
-
|
|
377
|
-
* 确保获取的字段类型与指定泛型匹配,否则可能导致运行时错误
|
|
378
|
-
|
|
379
|
-
* 当不确定字段类型时,可以先通过getType()方法判断
|