无法使简单的 Apex class 可调用 - 根据坐标输入查找自定义位置记录
Unable to make simple Apex class invocable - find custom location record based on coordinate input
我有一个简单的 class 包含一个 SOQL 查询,它根据输入的 2 个坐标找到最近的自定义位置记录:
public with sharing class NearestLocation {
@InvocableMethod(label='Get Nearest location' description='From given coordinates the nearest location is returned')
public static List<custom__Location__c> getLocation(List<FlowInput> requests)
{
List<custom__Location__c> locList =
[SELECT id, Name
FROM custom__Location__c WHERE RecordType.Name = 'Synced' AND
DISTANCE(custom__GeoLocation__c, GEOLOCATION(:requests[0].coordlat, :requests[0].coordlng), 'km')<1
ORDER BY DISTANCE(custom__GeoLocation__c, GEOLOCATION(:requests[0].coordlat, :requests[0].coordlng), 'km')
LIMIT 1];
for(custom__Location__c lc : locList)
{
system.debug('~~!~~!~~' + lc.id);
system.debug('~~!~~!~~' + lc.name);
}
return locList;
}
public class FlowInput
{
@InvocableVariable(required=true)
public decimal coordlat;
@InvocableVariable(required=true)
public decimal coordlng;
} }
当 运行 来自 Execute Anon:
时,以上代码按预期工作
list <NearestLocation.FlowInput> fi = new list<NearestLocation.FlowInput>();
NearestLocation.FlowInput x1 = new NearestLocation.FlowInput();
x1.coordlat = 53.243213;
x1.coordlng = -1.475886;
fi.add(x1);
NearestLocation.getLocation(fi);
但是,我试图从闪电流中将其设为 'invoked',但失败并显示一条通用 'flow has validation errors' 消息。
闪电流-顶点动作
执行日志 - 流有验证错误
我显然遗漏了一些东西,想知道是否有人可以提供一些 guidance/thoughts?
如果将输出分配给集合变量,请尝试 return List>。
已解决。
代码没有任何继承错误....问题是由于闪电流中不相关的公式造成的!嗯...自我注意...从空白开始 canvas!
感谢艾哈迈德的回复。它是 returning 列表:
public 静态列表
return 位置列表;
我有一个简单的 class 包含一个 SOQL 查询,它根据输入的 2 个坐标找到最近的自定义位置记录:
public with sharing class NearestLocation {
@InvocableMethod(label='Get Nearest location' description='From given coordinates the nearest location is returned')
public static List<custom__Location__c> getLocation(List<FlowInput> requests)
{
List<custom__Location__c> locList =
[SELECT id, Name
FROM custom__Location__c WHERE RecordType.Name = 'Synced' AND
DISTANCE(custom__GeoLocation__c, GEOLOCATION(:requests[0].coordlat, :requests[0].coordlng), 'km')<1
ORDER BY DISTANCE(custom__GeoLocation__c, GEOLOCATION(:requests[0].coordlat, :requests[0].coordlng), 'km')
LIMIT 1];
for(custom__Location__c lc : locList)
{
system.debug('~~!~~!~~' + lc.id);
system.debug('~~!~~!~~' + lc.name);
}
return locList;
}
public class FlowInput
{
@InvocableVariable(required=true)
public decimal coordlat;
@InvocableVariable(required=true)
public decimal coordlng;
} }
当 运行 来自 Execute Anon:
时,以上代码按预期工作list <NearestLocation.FlowInput> fi = new list<NearestLocation.FlowInput>();
NearestLocation.FlowInput x1 = new NearestLocation.FlowInput();
x1.coordlat = 53.243213;
x1.coordlng = -1.475886;
fi.add(x1);
NearestLocation.getLocation(fi);
但是,我试图从闪电流中将其设为 'invoked',但失败并显示一条通用 'flow has validation errors' 消息。
闪电流-顶点动作
执行日志 - 流有验证错误
我显然遗漏了一些东西,想知道是否有人可以提供一些 guidance/thoughts?
如果将输出分配给集合变量,请尝试 return List>。
已解决。
代码没有任何继承错误....问题是由于闪电流中不相关的公式造成的!嗯...自我注意...从空白开始 canvas!
感谢艾哈迈德的回复。它是 returning 列表: public 静态列表 return 位置列表;