SAP Backgroud job

本文探讨SAP后台作业管理的重要性及挑战,包括作业创建、监控、状态管理等内容,并介绍了如何通过SM36和SM37进行操作。

后台作业,主要用于运行需要处理大量数据,对交互没有要求的程序。个人认为,简单的创建,配置和监控后台作业没有什么难度。后台作业管理最为困难的解决方案的取舍,系统负载的调控。失控的后台作业,往往对系统带来灾难性的性能问题,也会导致权限管理的风险,结果是得不偿失,而且可能导致流程混乱。所以个人认为,要创建一个周期性的后台作业之前,首先应该慎重分析。比方说,一个已经明显偏向 OLAP类型的报表,如果能够用BI去实现,为什么还要坚持在生产系统去跑长时间的后台作业?这极有可能是一种严重的重复运行的性能问题。再比方说,用户获得授权随意创建后台作业,结果导致后台作业失控,在业务繁忙的时候,因为大量的后台作业导致整个系统的停顿,会造成实实在在的经济损失。再比如说,后台作业安排的不合理,可能耗资源的和重要的后台作业直接或者间接安排到了同一个时间段,那么必然会影响流程的运作。

详细解释一下sap得后台作业。 sap得后台作业的启动方式可以是定时地,也是可以是事件触发的。后台作业里面包含一个或者多个步骤,每一个步骤则包含调用的程序,外部shell命令以及外部程序,也包含了调用者以及变量,还可以定义打印参数。后台作业的名字往往需要遵循一定的命名规则,用来明确该后台作业的重要程度,启动方式,作用等等。我们往往通过SM36去创建后台作业,(也可以通过SM36去查看SAP标准后台作业),通过SM37去监控和管理后台作业。

后台作业有Scheduled, Released, Ready, Active, Finished, Canceled六种状态。另外还可以指定执行的服务器组(后台job执行的服务器组可以用sm61来配置)。 Scheduled状态的job是创建了但是还没有release,这种状态的job是不会跑的。Released状态的job在启动条件满足后会启动,Ready就是启动条件满足后,系统开始为该job分配但尚未分配合适的后台进程的一个中间状态,Active代表这个job正在运行当中,换言之,其相应的后台进程正在运行job某一个step得程序;Finished代表job得所有step都成功的完成了。Canceled代表job在某一个step得运行过程中异常中止了。

sap job得信息存在一系列的表TBTC*里面。有的时候,某个job对应的进程中止了,但是表里面的状态信息仍然没有更新,会出现job是active状态,而实际没有进程在跑的情况,那么,我们只需要check status,就可以手动修正表里面的状态信息。

如果要分析job cancel得原因,应该检查job log,往往job得step都是跑的是abap程序,所以,job cancel得时候常伴随着dump产生,这个时候,双击job log的条目,可以跳转对应的dump。另外,有的时候,因为进程被中止导致的job cancel没有被写入日志,需要结合system log去分析。job log是保存在\usr\sap\SID\SYS\global日志文件<client nr>JOBLOG中的,在某些特定的情况下,日志文件访问问题会导致所有的job cancel,在DI上出现这种问题的时候,据说可能是NFS不稳定,这个我还不确定。

触发Event 基本本是function module BP_EVENT_RAISE或者sapevt.exe。

<think>嗯,用户想在C#中实现背景透明的功能,尤其是在WinForms应用里。我之前处理过类似的问题,记得PictureBox和Label控件经常需要透明效果。首先,用户可能是在处理PictureBox里的Label,或者多个PictureBox叠加的情况。根据提供的引用[1],设置Label的父控件为PictureBox,并将背景色设为透明可以解决问题。那应该是一个可行的方法。 然后引用[2]提到,当两个PictureBox重叠时,将子控件的Parent属性设为父PictureBox,并设置BackColor为Transparent。这可能适用于多个控件叠加的情况,比如图片叠加显示透明部分。用户可能需要的是这种层级关系的处理。 另外,可能还有其他方法,比如使用控件的区域设置,或者处理图像的透明度。比如,确保图片本身带有透明通道,比如PNG格式,这样在加载时保留透明度信息。或者在自定义绘制时,使用Graphics对象的绘制方法,设置合适的合成模式。 还要注意,WinForms中某些控件本身不支持真正的透明,可能需要通过设置父控件和位置来模拟透明效果。例如,Label控件的背景透明需要设置Parent,并将BackColor设为Transparent。否则,可能无法正确显示透明背景。 另外,用户可能遇到的问题是子控件的位置是否正确,需要确保子控件的位置相对于父控件,否则可能出现偏移。比如,如果PictureBox2的Parent设为PictureBox1,那么PictureBox2的位置应该相对于PictureBox1的左上角,而不是窗体。 还有,是否需要考虑性能问题?如果有很多透明控件,或者频繁更新,可能会影响性能。这时候可能需要优化,比如使用双缓冲,或者减少控件的数量。 总结一下,解决方案可能包括: 1. 设置父控件和背景颜色透明,适用于Label或PictureBox的叠加。 2. 确保使用支持透明度的图片格式,如PNG。 3. 自定义绘制,使用Graphics对象的透明绘制方法。 4. 处理控件的位置和层级关系,确保透明效果正确显示。 可能需要分步骤解释这些方法,并给出示例代码,如引用中的设置Parent和BackColor的方式。同时,提醒用户注意控件的位置和图片格式的问题。可能还需要提到其他方法,比如使用Panel控件或者用户自定义控件来实现更复杂的透明效果。</think>在C# WinForm开发中实现背景透明效果,需根据控件类型和场景选择不同方法。以下是分步骤解决方案: ### 一、PictureBox内Label控件透明 1. **设置父控件关系** 将Label控件的Parent属性设为PictureBox: ```csharp label1.Parent = pictureBox1; label1.BackColor = Color.Transparent; ``` 2. **同步位置坐标** 通过Location属性使Label位置与PictureBox坐标系对齐: ```csharp label1.Location = new Point(pictureBox1.Left + 10, pictureBox1.Top + 20); ``` ### 二、重叠PictureBox透明处理 1. **层级透明化** 通过设置子控件的Parent属性实现透明叠加[^2]: ```csharp pictureBox2.Parent = pictureBox1; pictureBox2.BackColor = Color.Transparent; ``` 2. **透明图像加载** 确保图片本身具有透明通道(PNG格式): ```csharp Bitmap img = new Bitmap("transparent.png"); pictureBox2.Image = img; ``` ### 三、自定义控件透明绘制 1. **重写OnPaint方法** 在自定义控件中实现透明背景: ```csharp protected override void OnPaint(PaintEventArgs e) { e.Graphics.CompositingQuality = CompositingQuality.HighQuality; e.Graphics.DrawImage(Properties.Resources.TransparentImage, this.ClientRectangle); } ``` 2. **设置控件样式** 启用双缓冲减少闪烁: ```csharp SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.SupportsTransparentBackColor, true); ``` ### 四、窗体级透明方案 1. **窗体透明度属性** 直接设置窗体透明度(影响所有子控件): ```csharp this.Opacity = 0.8; ``` 2. **分层窗口API** 通过Windows API实现高级透明: ```csharp [DllImport("user32.dll")] static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); const int GWL_EXSTYLE = -20; const int WS_EX_LAYERED = 0x80000; SetWindowLong(this.Handle, GWL_EXSTYLE, WS_EX_LAYERED); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值