首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当联系人未被覆盖时需要SOContact字段

当联系人未被覆盖时需要SOContact字段
EN

Stack Overflow用户
提问于 2021-10-26 10:06:01
回答 2查看 70关注 0票数 0

在销售订单屏幕金融设置选项卡,我需要使法案-联系电子邮件领域需要。无论是否检查“覆盖联系人”,都需要使用电子邮件字段。

通常,只需设置PXDefault("", PersistingCheck = PXPersistingCheck.NullOrBlank)就可以生成所需的字段。但是,只有在选中“覆盖联系人”时,此操作才有效。

如果联系人没有被覆盖,那么电子邮件字段就会被禁用,并且它忽略了持久化检查而不需要电子邮件字段。

如何才能要求电子邮件字段,即使账单联系人未被覆盖?

这是我现在的密码。同样,如果该联系人被重写,但当该联系人未被覆盖时没有任何效果,则此操作仍然有效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry.CarrierRates, SOOrderEntry>
    {
        // Make Financial Settings Email required
        [PXMergeAttributes(Method = MergeMethod.Append)]
        [PXDefault("", PersistingCheck = PXPersistingCheck.NullOrBlank)]
        public void SOBillingContact_Email_CacheAttached(PXCache sender) { }
    }

另一种方法

我还尝试使用事件处理程序来引发异常。这种方法也是行不通的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public virtual void SOBillingContact_RowUpdated(PXCache cache, PXRowUpdatedEventArgs e)
{
    SOBillingContact contact = (SOBillingContact)e.Row;
    if (contact != null)
    {
        if (String.IsNullOrEmpty(contact.Email))
        {
            cache.RaiseExceptionHandling<SOBillingContact.email>(e.Row, ((SOBillingContact)e.Row).Email, 
                new PXSetPropertyException("Email is required", PXErrorLevel.Error));
        }
    }
}

此代码正在运行,但异常似乎会被抑制,并且永远不会显示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-28 12:26:35

我找到了一个解决办法:

首先,我使用Automation在屏幕上创建了所需的SOBillingContact.Email字段

但是,正如在最初的问题中所解释的,只有当账单联系人被覆盖时,这才是有效的。

为了在未覆盖计费联系人(即覆盖contact = False)时获得所需字段,我为SOOrder_RowPersisting添加了一个事件处理程序。在事件处理程序中,我将抛出一行持久化异常,并在记帐联系人电子邮件字段中引发异常处理。

抛出行持久化异常会阻止保存记录(这正是我想要的),并显示一个错误,但它也保留缓存中的更改,以便用户能够更正错误并再次保存,而不会丢失更改。引发字段异常会将异常附加到字段本身,这样用户就可以清楚地知道他们需要修复什么。如果只是引发字段异常而不引发行持久化异常,则后续事件会抑制该异常,而不会显示该异常。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
    protected virtual void SOOrder_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
    {
        SOOrder order = (SOOrder)e.Row;
        if (order == null) { return; }

        if (e.Operation == PXDBOperation.Insert || e.Operation == PXDBOperation.Update)
        {
            SOBillingContact billingContact = PXSelect<SOBillingContact,
                    Where<SOBillingContact.contactID, Equal<Required<SOOrder.billContactID>>>>.Select(Base, order.BillContactID);
            PXCache billingContactCache = this.Base.Caches[typeof(SOBillingContact)];

            if (billingContact.Email == null || billingContact.Email == "")
            {
                billingContactCache.RaiseExceptionHandling<SOBillingContact.email>(billingContact, billingContactCache.GetValueExt<SOBillingContact.email>(billingContact),
                  new PXSetPropertyException("Financial Email is required", PXErrorLevel.RowError));

                throw new PXRowPersistingException(typeof(SOBillingContact.email).Name, null, "Financial email is required");
            }
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2021-10-26 12:31:31

你试过PXUIRequiredAttribute了吗?它允许您有条件地确定何时需要字段。否则,移除PersistingCheck或向PXUIField属性添加Required = true。

PXUIRequiredAttribute的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[PXMergeAttributes(Method = MergeMethod.Append)]
[PXDefault]
[PXUIRequired(typeof(Where<Current<SOBillingContact.overrideContact>, Equal<True>>))]
public void SOBillingContact_Email_CacheAttached(PXCache sender) { }

在您的应用程序中没有经过测试,但这遵循了我在代码中使用的格式。

此外,如果需要,请记住打开字段以启用条目,这样就不会导致验证以防止保存用户无法正确保存的记录。通过自动化步骤或UI工作流,或者在RowSelected事件中,都可能需要“解锁字段”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69727960

复制
相关文章
发送电子邮件
在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的,而这些任务应该都是由程序自动完成的。
用户8442333
2021/05/20
2.3K0
Spring发送电子邮件
Spring基于javax.mail封装了一套用于发送电子邮件的API,位于org.springframework.mail包下,下面将介绍下发送普通文本邮件和基于thymeleaf模版的邮件。
布禾
2020/10/29
1.8K0
Spring发送电子邮件
Spring Boot发送电子邮件
通过使用Spring Boot RESTful Web服务,可以发送包含Gmail传输层安全性的电子邮件。在本章中,详细了解如何使用此功能。
黑洞代码
2021/10/14
1.4K0
使用 PHP发送电子邮件
PHP 运行邮件函数需要一个已安装且正在运行的邮件系统(如:sendmail、postfix、qmail等)。所用的程序通过在 php.ini 文件中的配置设置进行定义。
小颖club
2022/04/11
2.5K0
PHP发送电子邮件代码
注意:PHP 需要一个已安装且正在运行的邮件系统,以便使邮件函数可用。所用的程序通过在 php.ini 文件中的配置设置进行定义。
用户1503405
2021/09/27
1.8K0
PHP 使用 phpmailer 发送电子邮件
phpMailer 是一个非常强大的 ph p发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。
OwenZhang
2021/12/08
2.1K0
PHP 使用 phpmailer 发送电子邮件
利用Python自动发送电子邮件
收发邮件几乎是每个人每天都需要做的一件事情,对于一些固定每天需要发送的邮件或者是同时需要发送好几十好几百份的时候,我们可以考虑借助Python来自动发送邮件。
张俊红
2019/03/06
1.4K0
利用Python自动发送电子邮件
python3 发送电子邮件
使用python3发送电子邮件,我之前在网上找了好几篇文章不论是都不行,最后在网上找到这篇文章了!
py3study
2020/01/03
8720
使用Python发送自定义电子邮件
电子邮件仍然是事实。 尽管存在各种弊端,但它仍然是向大多数人发送信息的最佳方法,特别是允许邮件排队等待收件人的自动方式。
用户7886150
2021/01/28
2.9K0
Python: 通过QQ邮箱发送电子邮件
文章背景:自学Python编程快速上手中关于发送电子邮件的章节。本文讲述如何通过Python,使用QQ邮箱发送电子邮件。
Exploring
2022/09/20
3.2K0
Python: 通过QQ邮箱发送电子邮件
QQ授权,接收代码发送的电子邮件
1.代码(两处修改自己的QQ+授权码),授权码开启权限后获取 package com.itqf.Utils; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.net.Inet4Address; import java.util.Properties;
2020/10/23
1.6K0
QQ授权,接收代码发送的电子邮件
crmeb客服消息发送失败
2.检查是否本服务器已经安装过一套程序。 如果安装多套需要修改端口,详情修改端口 最后重启workerman
CiiLii西里网
2023/04/19
1K0
crmeb客服消息发送失败
.NET Core 使用MailKit发送电子邮件
发送邮件通知的功能在各种系统里都很常见。我的博客也能在有新评论、新回复,或者文章被其他网站引用时向管理员发送邮件。那么在.NET Core里,如何实现发送电子邮件呢?
Edi Wang
2019/07/08
6K0
.NET Core 使用MailKit发送电子邮件
离线安装Superset 0.37
上文提到了Superset 0.37的在线安装方式,只需要更新pip,然后pip install就可以了。但是在生产环境中,特别是内网环境中,很多时候是没有外网的,这时候就需要采取离线安装的方式。
大数据流动
2020/09/18
2.4K1
使用Postfix,Dovecot和MySQL发送电子邮件
在本指南中,您将学习如何在Debian或Ubuntu上使用Postfix,Dovecot和MySQL设置安全的虚拟用户邮件服务器。我们将解释如何创建新的用户邮箱以及如何在配置的域中发送或接收电子邮件。
Techeek
2018/09/18
3.8K0
使用Postfix,Dovecot和MySQL发送电子邮件
java实现邮件发送功能_电子邮件是啥
public static void main(String[] args) throws IOException {
全栈程序员站长
2022/11/01
1.1K0
[日常] 腾讯云发送邮件失败问题
1. 在腾讯云上的程序发送邮件失败 , 是因为腾讯云封禁了25端口 2.使用telnet测试连接第三方smtp服务的25端口 , 均失败 3.进入腾讯云控制台 , 申请解封25端口 4.解封完成后 ,
唯一Chat
2019/09/10
7.8K0
[日常] 腾讯云发送邮件失败问题
常见邮件发送失败原因分析以及解决方法是_手机邮箱发送失败
我发到 sina 的邮件会被退回,并提示remote server said: 553 Spam Mail http://mail.sina.com.cn/FAQ.html;错误,怎么办?
全栈程序员站长
2022/11/10
5.1K0
常见邮件发送失败原因分析以及解决方法是_手机邮箱发送失败
PHP 使用 phpmailer 发送电子邮件 以及封装方法
phpMailer 是一个非常强大的 ph p发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。
Inkedus
2020/04/16
3.4K0
PHP 使用 phpmailer 发送电子邮件 以及封装方法
点击加载更多

相似问题

超集load_examles失败

135

超集oauth ssl证书验证失败

121

如何发送查询集抛出的超方法?

12

使用link_with使我的项目失败,CocoaPods 0.37

36

电子邮件发送失败

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文