acumatica - 如何在 Acumatica 移动应用程序中获取 GPS 位置?
问题描述
当技术人员开始开车前往现场时,我们的客户要求在约会屏幕中记录 GPS 位置。我向 AppointmentEntry 图表添加了一个新操作(基本上它是 StartAppointment 操作的副本,删除了一些代码)并将此操作添加到移动应用程序。问题是当我在移动应用程序上调用自定义操作时 fsAppointmentCopy.Mem_GPSLatitudeLongitude 为空,但在调用“开始约会”操作时它有一个值。我错过了什么?
public PXAction<PX.Objects.FS.FSAppointment> StartDrive;
[PXButton]
[PXUIField(DisplayName = "Start Drive", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
protected virtual IEnumerable startDrive(PXAdapter adapter)
{
List<FSAppointment> list = adapter.Get<FSAppointment>().ToList();
foreach (FSAppointment fsAppointmentRow in list)
{
Base.SaveBeforeApplyAction(Base.AppointmentRecords.Cache, fsAppointmentRow);
FSAppointment fsAppointmentCopy = (FSAppointment)Base.Caches[typeof(FSAppointment)].CreateCopy(fsAppointmentRow);
var fsAppointmentDetRows = Base.AppointmentDetServices.SelectWindowed(0, 1);
if (fsAppointmentDetRows.Count == 0)
{
throw new PXException(TX.Error.APPOINTMENT_START_VALIDATE_SERVICE, PXErrorLevel.Error);
}
using (var ts = new PXTransactionScope())
{
if (Base.IsMobile == true
&& Base.SetupRecord.Current != null
&& Base.SetupRecord.Current.TrackAppointmentLocation == true
&& string.IsNullOrEmpty(fsAppointmentCopy.Mem_GPSLatitudeLongitude) == false)
{
string[] parts = fsAppointmentCopy.Mem_GPSLatitudeLongitude.Split(':');
fsAppointmentCopy.GPSLatitudeStart = decimal.Parse(parts[0]);
fsAppointmentCopy.GPSLongitudeStart = decimal.Parse(parts[1]);
}
Base.ChangeStatusSave(fsAppointmentCopy);
ts.Complete();
}
}
return list;
}
解决方案
推荐阅读
- c# - 为什么将 blazor 部署到 IIS 时出现错误
- apache-spark - 在 spark scala 中从 Df(gcs-filenames) 获取 Df(events)
- mongodb - Mongodb 给对象添加对象
- algorithm - 如何有效地将大范围的索引值从 1 翻转到 0,反之亦然
- javascript - Material-UI 覆盖 .MuiDataGrid-columnsContainer CSS
- r - 处理 xts - R 中日期变化的计算
- javascript - 更多阅读 ngx-datatable-columns
- linux - FFmpeg Drawbox 错误?
- mysql - 错误代码:1054。尝试 JOIN 两个表时,“on 子句”中的未知列“diagnoses.PATIENT_IDENTIFIER”
- sql - 使用 SQL 计算排列