matinal:SAP后台作业记录操作

  🚀欢迎来到本文🚀
🍉个人简介:matinal,目前职业是IT行业,一个正在慢慢前行的普通人。
🏀系列专栏:涵盖SAP各模块,Python,Excel,人工智能等
💡 其他专栏:一些平时学习的技术,感兴趣的小伙伴可以看看。

🍔公众号:matinal
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​
⛱️万物从心起,心动则万物动🏄‍♂️


 前言:SAP后台作业记录操作

🦙(工作遇到傻逼,千万要远离。道路千万条,远离傻逼第一条)


后台作业信息存储在透明表TBTCP(批作业步骤概述)中,试图V_OP中。

函数组BTCH中有很多方法可以处理。

* 取后台作业记录
  SELECT *
    INTO TABLE LI_OP
    FROM V_OP
    WHERE JOBNAME LIKE 'ZPSMAM_RFC%'
      AND SDLUNAME = SY-UNAME
      AND ( STATUS   = 'A' OR STATUS = 'F' ).

PS:台作业状态(STATUS)信息和参数对照如下:

1  Active       STATUS = R

2  就绪          STATUS = Y

3  已调度的 STATUS = P

4  已释放      STATUS = S

5  已取消      STATUS = A

6   已完成     STATUS = F

7  批准/暂停 STATUS = Z

*  删除后台记录

     LOOP AT LI_OP INTO LW_OP.

    CALL FUNCTION 'BP_JOB_DELETE'
      EXPORTING
        JOBCOUNT                       = LW_OP-JOBCOUNT
        JOBNAME                        = LW_OP-JOBNAME
*       FORCEDMODE                     = ' '
*       COMMITMODE                     = 'X'

……

  ENDLOOP.

sap后台作业管理:

后台作业,主要用于运行需要处理大量数据,对交互没有要求的程序。个人认为,简单的创建,配置和监控后台作业没有什么难度。后台作业管理最为困难的解决方案的取舍,系统负载的调控。失控的后台作业,往往对系统带来灾难性的性能问题,也会导致权限管理的风险,结果是得不偿失,而且可能导致流程混乱。所以个人认为,要创建一个周期性的后台作业之前,首先应该慎重分析。比方说,一个已经明显偏向 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。

sap打印管理:

完整SAP打印过程基本上是: 1 选择打印的文档,创建spool request(printer-independent); 2 如果是立即打印,则根据output device创建output request(printer-dependent); 3 output request被移交给sap print process处理 4 sap print process将打印数据转换成打印机可识别的格式移交给操作系统打印管理器。

在adm里面强调了一点,就是如果操作系统层面打印机不可用,对sap来说该打印机也不可用。 此外,sap打印机的access method,主要和操作系统差异(NT,Unix)以及SAP print process和os spooler所在服务器有关. Access Method: F类型是针对用户端为windows平台,具体是通过sap spool->saplpd->windows spool实现的。 L(调用unix shell command lp/lpr)和C(调用windows API)类型分别对应unix和winodws平台的应用服务器得local类型,local类型的意思是sap print process和os spool在同一物理服务器上。 U和S分别针对unix平台和windows平台的远程打印,远程打印的意思是sap print process和os spooler不在同一服务器。需要说明的是,s类型还是需要调用打印服务器端的saplpd.

下面大致说明一下简单的sap 打印机配置过程(oms得复杂类型配置暂且略过,我还没有做过) 一般我们配置的打印机(output device)多为L类型的。 SPAD创建打印机 output device:大小写区分 device type:选择对应的型号,如果没有默认的,首先去sap官网下载最新的device type导入,如果还没有,就去供应商官网查找。sapnote 8928 delievery classs: 打印机用standard printer authorization group: 打印机权限管理,不需要可以略过(我没有配置过) Model,location, Message都是描述性字段,根据各公司的命名规则去填写,以便实际管理 lock printer in SAP System: 是否在sap系统锁定该打印机?当然不了 Host Acces method:L Host Printer Name: 打印机名称(这个字段将用于lp/lpr命令) Host Name:打印服务器机器名(比如我的打印机安装在sidhau上,那么这一栏自然就是sidhau) 一般为了性能良好,都将Do not query Host Spooler for output status打上勾。 其他默认。

关于F类型打印机,下面贴一个SDN关于PDF1打印机配置的BLOG。这个包含了F类型打印机配置,同时给出了不用第三方软件提供将报表转pdf格式文件得解决方案。已测试通过。 请注意打印配置,实际上不同类型的打印机,比如L和C得,代表着不同的接口。L类型打印机,sap传递给os得是lp/lpr命令,C类型的,则是调用windows平台的saplpd。

对于spool得维护和监控也是相当重要的。需要定期清理旧的spool request和output request. sap有标准的后台作业SAP_REORG_SPOOL( rspo1041)和SAP_CHECK_SPOOL(rspo1043)详细信息可以查看sap note 130978和98065


 怎么样,在了解此篇文章有何感想?


如果本文对大家有所帮助的话,还望各位能给我点赞、收藏并评论一下,感谢各位💕!!! 另如果大家有什么疑问或者建议的话,欢迎评论区留言。更多精彩内容->在这里

<think>好的,我现在需要处理用户关于SAP系统中车间和仓库盘盈盘亏处理方式及差异的问题。首先,我要回忆之前用户提到的内容,用户之前问过车间库负库存的设置,引用了matinalSAP FICO的资料。现在用户进一步询问盘盈盘亏的具体处理方法和区别,需要结合之前的引用信息,同时可能需要补充其他相关知识。 首先,盘盈盘亏通常涉及库存差异的处理,这在SAP中可能通过不同的移动类型和会计科目来体现。根据引用[1],车间库是虚拟库,允许负库存,而实体仓库不允许。这可能影响盘点的处理方式。例如,车间库的差异可能通过生产订单调整,而实体仓库的差异可能直接通过库存调整科目处理。 然后,引用[2]提到KO88结算生产订单时产生的会计凭证,涉及生产成本和材料成本差异科目。这说明生产相关的差异可能通过生产订单结算流程处理,而仓库的差异可能直接调整库存科目。 接下来,我需要区分车间和实体仓库的处理步骤。车间库作为虚拟库,可能与生产订单相关,盘盈盘亏可能通过调整生产订单的投入或产出来处理,使用特定的移动类型如701/702。而实体仓库的差异可能使用移动类型701/702,并直接过账到差异科目,影响库存价值。 另外,会计处理方面,车间库的差异可能关联到生产成本科目,而实体仓库差异可能对应库存调整科目。需要注意系统配置中是否允许负库存对处理方式的影响,车间库允许负库存可能意味着差异处理更灵活,而实体仓库需要及时调整避免负库存。 用户可能还想知道具体的操作事务代码,比如MI07用于库存盘点,MI20查看差异,以及KO88结算生产订单。同时,需要说明两者的核心区别在于库存类型、会计科目和处理流程。 最后,生成相关问题需要考虑用户可能进一步的问题,比如配置步骤、会计凭证差异、生产订单影响等。确保问题覆盖用户可能的兴趣点,帮助他们深入理解处理机制。</think>### SAP车间与仓库盘盈盘亏处理方法及区别 #### 一、车间库(虚拟库)盘盈盘亏处理 1. **业务背景** 车间库作为配合生产回冲扣料的虚拟库,允许负库存[^1],其差异通常与生产订单执行相关。例如:生产投料未完全消耗或退库未及时记录。 2. **处理步骤** - **差异确认**:通过事务代码`MI07`进行库存盘点,系统生成差异清单。 - **调整方式**: - 盘盈:使用移动类型`701`(库存增加)关联生产订单,冲减生产成本。 - 盘亏:使用移动类型`702`(库存减少)关联生产订单,增加生产成本。 - **会计处理**:差异通过生产订单结算(事务代码`KO88`)转入成本中心或差异科目,例如: ``` 借:生产成本-差异调整 贷:库存-车间库 ``` [^2] #### 二、实体仓库盘盈盘亏处理 1. **业务限制** 实体仓库禁止负库存[^1],差异需立即处理,通常由物料管理模块触发。 2. **处理步骤** - **差异过账**:使用移动类型`701`/`702`直接调整库存,系统自动生成会计凭证: ``` 借/贷:库存商品 贷/借:库存盘盈盘亏科目 ``` - **权限控制**:需审批流程(通过审批码或电子工作流)。 #### 三、核心区别对比 | **维度** | **车间库** | **实体仓库** | |----------------|-----------------------------------|--------------------------------| | **库存类型** | 虚拟库(允许负库存)[^1] | 实物库(禁止负库存) | | **差异来源** | 生产订单执行偏差 | 收发存操作误差 | | **会计科目** | 关联生产成本科目[^2] | 直接使用库存调整科目 | | **处理流程** | 需结合生产订单结算(KO88)[^2] | 独立过账,无需关联订单 | #### 四、配置要点 1. **车间库**:在物料主数据中设置“特殊库存标识”(如生产库存),并配置移动类型与生产订单的关联。 2. **实体库**:在物料管理(MM)模块定义库存调整科目,并设置审批策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值