我的要求是-
Create
带有按钮的应用程序show data
。我的解决方案是从源应用程序获取数据,然后 POST 将其发送到主应用程序。 但是由于无法前进,所以我无法更新主应用程序。
Note: I must use JS customize.
我的代码如下:
let copyId = 112;
let appID = kintone.app.getId();
function getCopyAppData() {
let body = {
"app": copyId,
"query": kintone.app.getQuery()
};
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body).then(function(resp) {return resp;})
}
function addDataToCurrentApp(data) {
let body = {
"app": appID,
"records": data
};
return kintone.api(kintone.api.url('/k/v1/records', true), 'POST', body).then(function(resp) {
return resp;
})
}
getCopyAppData().then(function(data) {
let events = ['app.record.create.show', 'app.record.edit.show', "app.record.index.show"];
kintone.events.on(events, function(e) {
if (document.getElementById('addData') !== null) {
return;
}
let menuButton = document.createElement("button");
menuButton.id = "addData";
menuButton.innerHTML = "Add data";
kintone.app.getHeaderMenuSpaceElement().appendChild(menuButton);
menuButton.onclick = function() {
addDataToCurrentApp(data);
}
})
})
答案 0 :(得分:1)
已在Kintone Developer Program网站上回答了此问题。请看下面。 https://developer.kintone.io/hc/en-us/community/posts/360027677873-Copy-data-from-another-app 谢谢。
答案 1 :(得分:1)
似乎以前的评论已删除,所以我再次回答您的问题。
这是从Kintone中的另一个应用程序复制数据的示例代码。
(function() {
"use strict";
let copyId = 112;
let appID = kintone.app.getId();
function getCopyAppData() {
let body = {
"app": copyId,
"query": kintone.app.getQuery()
};
// return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body).then(function(resp) {return resp;})
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body).then(function(resp) {
addDataToCurrentApp(resp.records);
return resp
})
}
function addDataToCurrentApp(data) {
var wData = [];
for(var i =0;i<data.length;i++){
var param2 = {
"str":{
"value":data[i].str.value
}
}
wData.push(param2);
}
// wData.push(data[i]);
let body = {
"app": appID,
"records":wData
};
return kintone.api(kintone.api.url('/k/v1/records', true), 'POST', body).then(function(resp) {
return resp;
},function(err) {
console.log(err);
})
}
// getCopyAppData().then(function(data) {
let events = ['app.record.create.show', 'app.record.edit.show', "app.record.index.show"];
kintone.events.on(events, function(e) {
if (document.getElementById('addData') !== null) {
return;
}
let menuButton = document.createElement("button");
menuButton.id = "addData";
menuButton.innerHTML = "Add data";
kintone.app.getHeaderMenuSpaceElement().appendChild(menuButton);
menuButton.onclick = function() {
// addDataToCurrentApp(data);
getCopyAppData();
}
})
// })
})();
FYI,在类似情况下,我看到用户陷入错误代码GAIA_DA02中。
这是由于太多的进程同时运行。
在这种情况下,请考虑以下因素,以帮助您避免同类错误。
•减少每个应用程序中的字段和注册记录的数量,以使处理诸如记录更新之类的时间不会太长。
•拆分API请求并避免重复处理时间
•简化您的应用设置,例如设置权限,使用复杂设置等。
•无法更新的错误记录应留作重试处理,然后在其他更新处理和时间不重叠的时候重试。
此外,在Kintone开发人员社区网站上也有类似的询问,因此请仔细阅读以供参考。 https://developer.kintone.io/hc/en-us/community/posts/360027677873-Copy-data-from-another-app
我希望这对您有帮助