Javascript 在Google脚本web应用程序中格式化客户端的API数据
我正在通过CRM API提取数据,并成功地在我的Google Script web应用程序前端呈现这些数据。但在前端处理或格式化这些数据对我来说是一个挑战 在下面的代码中,第二行的Javascript 在Google脚本web应用程序中格式化客户端的API数据,javascript,api,google-apps-script,Javascript,Api,Google Apps Script,我正在通过CRM API提取数据,并成功地在我的Google Script web应用程序前端呈现这些数据。但在前端处理或格式化这些数据对我来说是一个挑战 在下面的代码中,第二行的潜在名称正在向页面呈现正确的数据。但是第一行名为Quote显示未定义。此数据是我试图格式化的数据,以便仅将最后六个字符或字符串打印到页面 显然,我一定是试图错误地从API访问数据。有人能给我提供在谷歌脚本中操作这些数据的正确方法吗 代码.gs function doGet() { var templ = Htm
潜在名称
正在向页面呈现正确的数据。但是第一行名为Quote
显示未定义。此数据是我试图格式化的数据,以便仅将最后六个字符或字符串打印到页面
显然,我一定是试图错误地从API访问数据。有人能给我提供在谷歌脚本中操作这些数据的正确方法吗
代码.gs
function doGet() {
var templ = HtmlService.createTemplateFromFile('Allied-po');
templ.data = requestRecordFromCRM();
return templ.evaluate()
.setTitle('Purchase Order')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
/*Fetch record data from CRM*/
function requestRecordFromCRM() {
requestedId = '1234';
var authToken = 'XXXX';
var zohoRequestUrl = 'https://crm.zoho.com/crm/private/json/Potentials/getRecordById?&authtoken=' + authToken + '&scope=crmapi&id=' + requestedId;
var response = UrlFetchApp.fetch(zohoRequestUrl);
var sanitizedResponse = (response.getContentText());
/*Sanitize json*/
var output = JSON.parse(sanitizedResponse);
Logger.log(output);
/*Declare the variables you want to print*/
var parsedOutput = output.response.result.Potentials.row.FL;
var recordObj = {}
Logger.log(typeof output)
Logger.log(output.response.result.Potentials.row.FL.length)
for (var i = 0; i < output.response.result.Potentials.row.FL.length; i++) {
if (output.response.result.Potentials.row.FL[i].val == 'Potential Name') {
recordObj.potentialName = output.response.result.Potentials.row.FL[i].content
}
}
return (recordObj);
}
函数doGet(){
var templ=HtmlService.createTemplateFromFile('Allied-po');
temp.data=requestRecordFromCRM();
返回temp.evaluate()
.setTitle(“采购订单”)
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
/*从CRM获取记录数据*/
函数requestRecordFromCRM(){
requestedId='1234';
var authToken='XXXX';
zohoRequestUrl变种https://crm.zoho.com/crm/private/json/Potentials/getRecordById?&authtoken=“+authToken+”&scope=crmapi&id=”+requestedId;
var response=UrlFetchApp.fetch(zohoRequestUrl);
var sanitizedResponse=(response.getContentText());
/*清理json*/
var output=JSON.parse(sanitizedResponse);
Logger.log(输出);
/*声明要打印的变量*/
var parsedOutput=output.response.result.Potentials.row.FL;
var recordObj={}
Logger.log(输出类型)
Logger.log(输出、响应、结果、电位、行、FL.length)
对于(变量i=0;i
Index.html
<html>
<head>
<base target="_blank">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Purchase Order</title>
<?!= HtmlService.createHtmlOutputFromFile('Stylesheet').getContent(); ?>
</head>
<body>
<div>
Quote: <span id="job-number"><?= data.potentialName ?></span>
</div>
<div>
Potential Name: <?= data.potentialName ?>
</div>
<?!= HtmlService.createHtmlOutputFromFile('Javascript').getContent(); ?>
</body>
</html>
<!-- Load jQuery, jQuery UI, and Bootstrap libraries -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
//Format Job Numbers - return only last six characters in potentialName string
(function() {
var parts = document.getElementById('job-number');
var selectedPart = parts.split(":");
var thePart = selectedPart[0];
return (thePart);
}());
</script>
采购订单
引述:
潜在名称:
Javascript.html
<html>
<head>
<base target="_blank">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Purchase Order</title>
<?!= HtmlService.createHtmlOutputFromFile('Stylesheet').getContent(); ?>
</head>
<body>
<div>
Quote: <span id="job-number"><?= data.potentialName ?></span>
</div>
<div>
Potential Name: <?= data.potentialName ?>
</div>
<?!= HtmlService.createHtmlOutputFromFile('Javascript').getContent(); ?>
</body>
</html>
<!-- Load jQuery, jQuery UI, and Bootstrap libraries -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
//Format Job Numbers - return only last six characters in potentialName string
(function() {
var parts = document.getElementById('job-number');
var selectedPart = parts.split(":");
var thePart = selectedPart[0];
return (thePart);
}());
</script>
//格式化作业编号-仅返回potentialName字符串中的最后六个字符
(功能(){
var parts=document.getElementById('job-number');
var selectedPart=parts.split(“:”);
var thePart=selectedPart[0];
返回(部分);
}());
此特定代码检索HTML元素,但不检索innerHTML文本
var parts = document.getElementById('job-number');
相反,这样做是为了获得可用于拆分字符串的嵌入式HTML,如下所示:
var parts = document.getElementById('job-number').innerHTML;
最终代码如下所示:
<script>
//Format Job Numbers - return only last six characters in potentialName string
(function() {
var parts = document.getElementById('job-number');
var selectedPart = parts.innerHTML.split(":");
console.log(parts)
console.log(selectedPart)
var thePart = selectedPart[1];
parts.innerHTML = thePart
return (thePart);
}());
</script>
希望有帮助 这很有道理,但它仍然没有将字符串的编辑版本打印到页面上。该对象通常看起来是这样的:公司ABC:123456。我们正试图得到最后六个数字。但即使有了这些更改,它仍然在打印完整的字符串,ABC公司:123456。是的,就是这样!非常感谢。