【SAP自动化】(2)状态栏消息处理

点下面,不迷路

前言

为了方便,SAP状态栏消息处理,创建实用类。

代码实现


class SapMessageType(enum.Enum):
    SUCCESS = "S"
    WARNING = "W"
    ERROR = "E"
    ABORT = "A"
    INFORMATION = "I"


class SapStatusMessage:
    def __init__(self, message_as_popup, message_type, message_text, message_id, message_number, message_parameters):
        self.message_as_popup = message_as_popup
        self.message_type = SapMessageType(message_type)
        self.message_text = message_text
        self.message_id = message_id
        self.message_number = message_number
        self.message_parameters = message_parameters


class SapStatusBar:

    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, 'instance'):
            cls.instance = super().__new__(cls, *args, **kwargs)
        return cls.instance

    @staticmethod
    def get_message(session, status_bar):
        message = None
        if session and status_bar:
            try:
                bar = session.findById(status_bar)
                message_type = bar.MessageType.strip()
                if message_type:
                    message_as_popup = bar.MessageAsPopup
                    message_text = bar.Text.strip()
                    message_id = bar.MessageId.strip()
                    message_number = bar.MessageNumber.strip()
                    parameters = SAP_MESSAGES.get(message_id + message_number, [str(i) for i in range(8)])
                    message_parameters = {name: bar.MessageParameter(i).strip() for i, name in enumerate(parameters)}
                    message = SapStatusMessage(
                        message_as_popup, message_type, message_text,
                        message_id, message_number, message_parameters
                    )
            except Exception as _:
                pass
        return message


# 标识SAP的消息信息,提取需要的数据。
#
# 名称: [ID][NUMBER]
# 对应的参数含义。
SAP_MESSAGES = {
    'F5149': ('date',)
}


class SapMessages:
    """
    标识SAP的消息信息,提取需要的数据。

    名称: [ID][NUMBER]
    对应的参数含义。
    """
    F5149 = ('date')

以上代码仅提供了一种处理消息方式,请酌情参考使用。
仅供参考,如有帮助不胜荣幸,请关注,点赞。
如需转载请注明出处。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值