SAP CO11N BAPI_PRODORDCONF_CREATE_TT连续报工异步更新导致COGI解决方案

news2025/1/4 20:27:31

背景:

之前上一个项目上有同事碰到一个问题,外围接口数据进入SAP,可能会对同一工单同一工序进行连续多次报工,并且工序控制码配置的是会自动货物移动的,所以正常来说,调用完BAPI完之后除了报工数量会更新之外,还会自动收货产生一条物料凭证,当时的问题是,按照正常方式在接口中连续调用BAPI之后,发现报工的数量正常更新了,但是MIGO物料凭证并没有正常产生,比如报工了5次,每次数量是1000,最终报工数量正常,但是收货只有1000,其他的4000进了COGI,查看报错消息会发现是账号锁定问题,当时项目上同事采用了wait up to xxx seconds的方式进行解决,但这个方式是解决异步提交延迟问题最不建议的一种方式,在大批量数据处理中很浪费时间,所以最近抽空调查了一下这个问题的解决方向。

调查过程:

通过一些标准note的解释可以了解到,报工中涉及货物移动的处理是有单独的更新进程去触发的,而且是异步更新,所以即使在调用完BAPI_PRODORDCONF_CREATE_TT之后使用BAPI_TRANSACTION_COMMIT并附加WAIT参数去提交,也可能会出现因为货物移动没有处理完成而导致锁没有释放,从而产生COGI记录。

针对note中提到的将OPK4中的“自动售货”、“反冲”、“实际成本”都设置为“立即联机”,在系统中经过测试也确实并不能解决这个问题。

针对这种异步提交导致锁定,从而产生COGI的问题,官方note给出的解决方案如下,执行程序CORUPROC进行处理,如果要基于订单和工厂去处理,可以实施note:1008686。

场景还原:

初始状态:

模拟针对同一个订单同一道工序连续报工5次,每次报工1000个:

执行结果:

可以看到,虽然报工都成功了,AFRU表也成功更新了报工数量,但是货物移动只成功过账了1000,其余4000都由于锁定问题进了COGI,这种情况可以手工COGI重新执行进行处理,也可以调用程序CORUPROC进行处理:

虽然可以在报工完成后调用CORUPROC去处理COGI的问题,但是异步更新仍然有可能会导致BAPI_PRODORDCONF_CREATE_TT直接报错:

所以除了wait的方式是否有其他方式解决该问题?有。

解决方案:

通过多次的debug及尝试,发现如下两处地方的参数可以控制货物移动以同步提交的方式完成:

增强点1:

增强点2:

测试验证:

以上,问题解决,不会再出现锁定问题导致的COGI。

补充:

绝大部分BAPI异步提交的问题根本原因都是因为内部有COMMIT WORK语句(没有附加 AND WAIT),部分BAPI会有类似NO_COMMIT或者COMMIT_AND_WAIT等类似的参数来控制是否内部提交,或者内部以同步更新方式提交,所以很多时候需要同步提交处理BAPI的时候,不妨查看源码,看是否可以通过这些参数来避免内部以异步方式提交,因为如果在BAPI内部COMMIT WORK之后,外部再次使用BAPI_TRANSACTION_COMMIT(WAIT = 'X')或者COMMIT WORK AND WAIT是没有用的,所以我们只需要通过一些手段(比如增强,或者通过BAPI的控制参数)来避免BAPI内部进行异步提交即可解决这个问题,WAIT的方式并不推荐使用。

残留疑问:

虽然按照上述方式可以解决该问题,但我仍然没能说服自己为什么BAPI之后的COMMIT WORK AND WAIT为什么不起效果,因为更新进程被COMMIT WORK AND WAIT触发将会是以同步方式进行的,主流程中的锁会被带到V1更新进程中,当V1更新进程执行完毕会自动释放锁,虽然报工的BAPI会触发V2更新,但我单步跟踪过,V2的更新进程中并没有上锁的操作,按道理在BAPI之后同步提交应该不会有锁的存在,所以我仍然没能清晰准确的找到note中提到的单独的更新进程是在哪里触发的,可能调试过程中还是漏看了一些过程,等有空再仔细追踪一下。

Synchronous and Asynchronous Updating | SAP Help Portal

以上。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1865374.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

indexedDB---浏览器本地数据库实现增删改查

关于indexedDB indexedDB的基本使用,可以参考:indexedDB---掌握浏览器内建数据库的基本用法_indexdb浏览器使用-CSDN博客 indexedDB是浏览器本地数据库,既然是数据库就能够实现增删改查,了解了indexedDB的基本使用后&#xff0c…

怎么把不同的文件做成二维码?多种文件类型在线生码的制作方法

扫码来展示文件是现在很多场景下会使用的一种内容展示方法,这种方式能够简化其他人获取文件的流程,从而提升文件传播的效率,用户可以存储二维码,随时扫码查看文件内容。文件生成二维码支持多种类型的文件使用,比如ppt、…

Element 页面滚动表头置顶

在开发后台管理系统时,表格是最常用的一个组件,为了看数据方便,时常需要固定表头。 如果页面基本只有一个表格区域,我们可以根据屏幕的高度动态的计算出一个值,给表格设定一个固定高度,这样表头就可以固定…

Transformer实战——摘要生成

本文借助Huggingface Tranformer库完成一个摘要生成任务,参考自https://github.com/datawhalechina/learn-nlp-with-transformers/,在本文,将展示如何使用简单的加载数据集,同时针对相应的任务使用transformer中的Trainer接口对模…

司美格鲁肽在中国获批!深度解析报告附上

在中国,肥胖问题日益严重,但有效的治疗方法却相对匮乏。然而,这一现状随着国家药品监督管理局(NMPA)对诺和诺德公司研发的司美格鲁肽注射液(商品名:诺和盈)的批准而得到改变。6月25日…

hadoop离线与实时的电影推荐系统-计算机毕业设计源码10338

摘 要 随着互联网与移动互联网迅速普及,网络上的电影娱乐信息数量相当庞大,人们对获取感兴趣的电影娱乐信息的需求越来越大,个性化的离线与实时的电影推荐系统 成为一个热门。然而电影信息的表示相当复杂,己有的相似度计算方法与推荐算法都各…

文件管理器加载缓慢-禁用文件类型自动发现功能

文件管理器加载缓慢-禁用文件类型自动发现功能 右键“Shell”项,选择新建“字符串值” “FolderType”,数值为 NotSpecified。

Python数据分析-糖尿病数据集数据分析

一、研究背景介绍 糖尿病是美国最普遍的慢性病之一,每年影响数百万美国人,并对经济造成重大的经济负担。糖尿病是一种严重的慢性疾病,其中个体失去有效调节血液中葡萄糖水平的能力,并可能导致生活质量和预期寿命下降。。。。糖尿…

【网络安全学习】漏洞利用:-01- BurpSuite的基础设置使用

Burp Suite是一款集成了多种功能的Web应用渗透测试工具,可以帮助渗透测试人员对Web应用进行拦截、分析、修改、重放、扫描、爆破、模糊测试等操作,从而发现和利用Web应用中的漏洞。可以说Burp Suite是每个安全从业人员必须学会使用的安全渗透测试工具。 …

服务器硬件以及RAID配置

目录 一、RAID磁盘阵列原理(嘎嘎重要) 1、RAID的概述 2、常用的RAID 2.1、RAID 0 2.2、RAID 1 2.3、RAID 5 2.5、RAID 10 3、阵列卡介绍 二、建立软件RAID磁盘阵列 1、添加硬盘 2、使用fdisk分区,类型为fd 3、mdata命令使用参数 …

今日好料(中国农业银行研发中心DevOps规划与实践)

今日好料(中国农业银行研发中心DevOps规划与实践) 在数字化转型的背景下,企业面临着更加复杂和多变的市场环境,对IT系统的敏捷性和稳定性提出了更高的要求。作为金融行业的领军企业,中国农业银行在其研发中心推进DevO…

eXosip协议栈构造Info应答并发送

最近在开发GB28181视频监控平台,对于录像的暂停、倍速等控制是通过INFO消息完成的,但是eXosip协议栈没有明确说明该如何去构造INFO消息的应答。通过对源代码的解读,是使用eXosip_call_send_answer接口去构造,参考了一些博客&#…

AI大模型训练过程

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 大模型训练概述 AI大模型训练是指在海量数据中,对拥有数百万至数千万参数及深层次神经网络结构的模型进行训练的过程。这类大模型因其庞大的参数规模和复杂的网…

【云原生】深入理解Pod的使用进行管理

深入理解Pod 文章目录 深入理解Pod一、介绍Pod1.1、什么是Pod1.2、Pod的特点1.3、Pod的用途1.4、Pod网络1.5、Pod存储1.6、Pod的工作方式 二、创建Pod2.1、命令行创建Pod2.2、资源清单创建Pod2.2.1、镜像拉取策略2.2.2、Pod重启策略2.2.3、部署资源2.2.4、删除资源 三、静态Pod…

大厂面试经验分享,小白如何在面试中脱颖而出

前言 毕业季,对于每一位即将步入社会的学子来说,都是一个充满挑战和机遇的时刻。作为我的一位好朋友也是好学长,他刚刚在一家顶尖科技公司斩获了他梦寐以求的职位。他深知求职路上的艰辛,因此打算把自己的经验分享给大家&#xf…

项目实战系列三: 家居购项目 第六部分

文章目录 🌈Ajax检验注册名🌈Ajax添加购物车🌈上传与更新家居图片🌈作业布置🍍会员登陆后不能访问后台管理🍍解决图片冗余问题🍍分页导航完善 🌈Ajax检验注册名 需求分析 注册会员时…

flask水质监测预警系统-计算机毕业设计源码10148

摘 要 近些年来,对河道水位进行实时、准确的监测越来越受到广大人民群众的重视。然而要建立一个稳定的、可靠地、准确的城市河道水位远程监测系统,就必须要解决由人工监测向自动化监测的转变,使用新科技来进行设计。水质监测预警系统是以实际…

构筑卓越:建筑企业如何通过GB/T 50430:2017认证铸就质量管理基石

在建筑业这片充满挑战和机遇的战场上,企业资质犹如一面旗帜,标志着企业的实力和信誉。GB/T 50430:2017《工程建设施工企业质量管理规范》的实施,成为了建筑企业提高管理水平、赢得市场竞争的重要武器。 GB/T 50430:2017的战略意义 GB/T 5043…

【JavaScript】BOM编程

目录 一、BOM编程是什么 二、window对象的常用方法 1、弹窗API方法 2、计时器任务方法 三、window对象的属性对象常用方法 1、history网页浏览历史 2、location地址栏 3、数据存储属性对象 4、console控制台 一、BOM编程是什么 当我们使用浏览器打开一个网页窗口时,…

python f.write中文乱码怎么解决

举个例子: #coding:utf-8 s u中文 f open("test.txt","w") f.write(s) f.close() 原因是编码方式错误,应该改为utf-8编码。 解决方案一: #coding:utf-8 s u中文 f open("test.txt","w") f.writ…