SAP BW 邮件发送监控策略

SAP BW 邮件发送监控策略                       

以往的情況是邮件一提交到BW的邮件队列我们就认为自己工作做完了。事实上却没有,并且我们一直被困惑着,因为邮件会错、会拖、会等、会卡,所有小孩子会犯的错,它都会,而我们却不知道为什么。

我们的规划是能够把邮件的发送纳入到可控范围,可以知道有没有错误,有没有发送,有没有等待。


我们在规划时,分了几个步骤去实现:

1.      可以监控邮件系统是否存在等待状况

2.      如果存在等待状况,能够自动触发邮件发送动作

3.      可以监控邮件系统是否存在异常邮件

4.      如果存在异常邮件,能够自动触发重发邮件动作

通过对邮件系统的数据日志分析,我们找到了其中的对应关系。邮件系统会把目前处于等待状态的邮件暂时性的存储到SOST这个表中,在联合SOOD这个存储邮件基本信息的表,我们很快就是实现了第一步。建立如下试图:

Tables:

    SOOD

    SOSC

Join conditions:

    SOOD MANDT       =      SOSC      MANDT

    SOOD OBJTP          =      SOSC      OBJTP

    SOOD OBJYR         =      SOSC      OBJYR

    SOOD OBJNO         =      SOSC      OBJNO

View Fields:

   SOOD OBJNO

   SOOD OBJNAM

   SOOD OBJDES

   SOOD CRDAT

   SOOD CRTIM

  SOOD OBJSND

  SOOD SDDAT

   SOOD SDTIM

  SOSC  ENTRY_DATE

  SOSC  ENTRY_TIME

  SOSC  SNDPRI

  SOSC  STATUS

  SOSC  NEW_STATUS

  那么我們可以通過查询试图获得目前邮件等待情况。

  我们知道可以手动去发送等待状态的邮件,但是我们的目的是能够让系统自动做,所以我们找到了相应的Report:RSCONN01(至于如何找到程序,通过SDN和Debug就八九不离十了)。一定发现有等待的邮件,且邮件是我们需要监控的,那么就让程序去触发邮件发送动作。这样我们又解决了第二个问题。

    第三步比较简单,因为判断是否错误无非是判断Log的状态信息,但是问题是我们获得的状态编号是否就涵盖了所有情况,也没有这样的文档说明。所以我们罗列的历史以来日志出现的状态编号,比较笨,但是不得不说我们做到了。

    第四步的实现也是通过Debug程序找到的,Function:SO_SEND_PROCESS_REQUEUE。 这里有心的可能会发出这样的疑问,为什么不用第二步的程序。原因是,第二步的程序只会把目前处于等待状态的邮件重发,而邮件一旦异常,那么邮件系统就会把这些邮件踢到非等待状态,所以第二步出现的程序根本就碰不到这个异常邮件,所以也谈不上用它来发送了。这个Function会通过一个table存储需要重发的邮件,所以我们要做的就是把邮件信息重新放进去。

内表的格式如下:[加粗的是必填]

 

OBJTP

OBJYR

 

OBJNO

 

FORTP 

 

FORYR 

 

FORNO 

 

RECTP

ADR

 

RECYR

 

RECNO

 

MSGTP

REPEAT_CNT

WAIT_DATE

 

WAIT_TIME

NEW_STATUS

SNDREQ

 

IMMEDIATLY 

你可以通过SOOD和SOOS这2个表把所有信息都填入到内表中,那么就完成了重入队列的动作,当然只是完成了重入队列的动作,所以你还是需要执行第二步的动作(是否把IMMEDIATLY设为X,就可以立即发送还要测试,不过小fang一再告我不要把所有兔子都打光,谨记)。

    通过以上的介绍,估计BW的邮件监控会是在你的掌控之中了。

<script type="text/javascript"></script>

<think>好的,用户询问的是省略号在编程中的用法和意义。我需要根据提供的引用内容来组织回答,同时确保符合系统级指令的要求,比如使用正确的中文和LaTeX格式。 首先,用户提到的引用有三个,分别来自不同的来源。引用[1]和[3]是关于Python中省略号的使用,而引用[2]涉及C语言中可变参数的处理,使用省略号作为参数列表的一部分。需要把这些信息整合起来,分点说明。 系统级指令要求生成相关问题,所以最后需要列出几个相关问题。另外,回答中引用的内容需要添加引用标识,比如[^1]、[^2]等。 用户可能对省略号在编程中的不同应用场景感兴趣,比如Python中的Ellipsis对象、类型提示、切片操作,以及在C语言中的可变参数函数。需要明确区分不同语言中的用法,避免混淆。 需要检查是否有遗漏的信息点,例如Python 3中的Ellipsis类型,numpy中的特殊用法,还有代码示例是否正确。同时确保所有数学表达式或代码块格式正确,比如行内公式用$...$,独立公式用$$...$$,代码用三个反引号包裹。 最后,保持回答结构清晰,分点说明,每个部分对应不同的用法,并在末尾添加相关问题。注意引用标识的位置要自然,通常放在相关句子的末尾。</think>在编程中,省略号(`...`)的用法和意义根据语言和场景有所不同,以下是主要应用场景和注意事项: --- ### 一、Python中的省略号 1. **Ellipsis对象** Python 3中定义了一个特殊对象`Ellipsis`,可直接用`...`表示,常用于多维数组切片或类型提示: ```python import numpy as np arr = np.zeros((3, 3, 3)) print(arr[..., 0]) # 获取所有第一维、第二维,第三维索引0的数据 ``` 在类型注解中表示未完全定义的参数类型: ```python def process(data: tuple[int, ...]) -> None: ... ``` 2. **占位符功能** 在未实现的代码块中使用`...`作为临时占位符(需后续替换为实际逻辑): ```python def todo_function(): ... # 待实现 ``` --- ### 二、C/C++中的省略号 1. **可变参数函数** 用于定义参数数量不确定的函数(如`printf`),需配合`stdarg.h`宏(`va_start`, `va_arg`, `va_end`)解析参数: ```c #include <stdarg.h> void log_message(const char* format, ...) { va_list args; va_start(args, format); vprintf(format, args); va_end(args); } ``` 注意:需通过固定参数(如`format`字符串)推断可变参数类型[^2]。 --- ### 三、注意事项 1. **不可替代实际逻辑** Python中的`...`仅作为占位符,需替换为有效代码。 2. **类型安全风险** C/C++的可变参数需手动解析,易引发类型错误或内存问题[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值