Acumatica 使用电话协议拨打电话号码

Acumatica 使用电话协议拨打电话号码,acumatica,Acumatica,我对Acumatica开发非常陌生,但作为一个基本的开始,我们希望能够在电话号码文本框后添加一个按钮,以便通过电话协议TEL:+1-###-###########从Skype进行业务拨号。我正确地插入了按钮,并且覆盖了NavigateURL,如果我直接在url中输入一个电话号码,它将非常有效。但是,我正在寻找一种方法来放置并保存实际的电话号码值。。类似于电话:[Contact.Phone1] 这可能吗?我不认为NavigateURL应该像使用变量的模板引擎一样使用。我要做的是格式化动作事件处理程

我对Acumatica开发非常陌生,但作为一个基本的开始,我们希望能够在电话号码文本框后添加一个按钮,以便通过电话协议
TEL:+1-###-###########
从Skype进行业务拨号。我正确地插入了按钮,并且覆盖了NavigateURL,如果我直接在url中输入一个电话号码,它将非常有效。但是,我正在寻找一种方法来放置并保存实际的电话号码值。。类似于电话:[Contact.Phone1]


这可能吗?

我不认为NavigateURL应该像使用变量的模板引擎一样使用。我要做的是格式化动作事件处理程序中的URL,并使用PXRedirectTourexception打开链接

[PXUIField(DisplayName = "Skype")]
[PXButton]
public virtual IEnumerable SkypeButton(PXAdapter adapter)
{
    Contact contact = base.Caches[typeof(Contact)].Current as Contact;

    if (contact != null)
    {
        throw new PXRedirectToUrlException(string.Format("tel:{0}", contact.Phone1.Trim()),
                                           PXBaseRedirectException.WindowMode.NewWindow,
                                           string.Empty);
    }

    return adapter.Get();
}

我在这方面有点麻烦。我让它工作,但我有一个问题。在从通用查询屏幕打开的记录上单击“调用”按钮会导致错误。我跟踪了日志,它正在传入
tel:+17173978880?popupanel=Inline
tel:+17173624476?7678772635=465463
如果我刷新当前记录的页面,那么它工作正常。你知道为什么要添加额外的吗?第一个可能与PXBaseRedirectException.WindowMode有关,第二个我不知道它来自哪里。查询屏幕的功能非常有限,我不确定您的错误是否可以修复。我尝试了您的重定向方法。我还尝试了“抛出新异常”(“Redirect0:tel:{0}….”)同样的方法。我的意思是更改WindowMode,如果您将其重定向到同一个窗口,它可能不会尝试附加PopupPanel参数。只需尝试其他WindowMode进行重定向,如WindowMode.Same。以下是枚举公共枚举WindowMode{Same=0,New=1,Popup=2,NewWindow=3,InlineWindow=4}