SAP开发框架系列之 自动单据

2024-03-05 08:18

本文主要是介绍SAP开发框架系列之 自动单据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:

     归纳总结是个好习惯,我们都值得拥有.

    每一个业务的开发需求,都是一次归纳的契机.

  • 根据业务特定的需求分析,是否可以概括出一个通用需求?

  • 特定业务需求是否完全包含在这个通用需求中呢?

  • 是否可以根据这个通用需求概括出一个通用处理模型?

  • 该模型是否可以解决这一类的业务需求?

  • 怎么用特定的语言(ABAP)开发这个模型?

  • 怎么给业务最大的自由度去使用这个配置使用这个模型?

    如果你是一个业务人员,带着这些问题去和你的开发沟通.(你毛病呀,半天就可以写完的程序,你想整一周?)

    如果你是一个开发人员,带着这些问题去和需求提出者沟通(你找事呀,按我的需求做就完事了,要不你来写功能说明书?)

    或者,你也会碰到志同道合的. 嗯,这个提议不错, 咱们一起来完善一下这个设计.  

    尝试更多的去理解业务,去归纳业务,用开发的思想去重建功能设计.  

正文

    自动单据: 在无需业务介入的情况下,由前一个单据触发产生后一个或多个相关单据.

    大部分自动单据的需求来自以下场景:

  1. 实际业务流程与系统单据流程匹配时,系统中多出的步骤.

  2. 根据公司财务记账需求,需要系统中额外创建的单据.

  3. 入站接口需要处理产生系统中多个有前后关系的单据.

    自动单据的实现方式:

  1. 配置实现. 部分的SAP单据可以通过配置自动产生后续单据,比如销售订单->交货单. 可以通过配置在销售订单保存时自动产生后续的交货单.

  2. 工作流实现?(这个不太擅长,无法展开阐述)

  3. EDI实现. 部分单据可以通过配置,在前置单据保存时,自动创建一个IDOC,执行后产生后续单据,比如跨公司调拨的发票自动创建对应的发票校验.

  4. 开发实现. (这个是本文阐述的重点)

    不管是什么方式实现自动单据,都需要解决以下几个共性问题(这也是为什么EDI实现有一套复杂的配置的原因)

  • 什么样的单据需要自动创建后续单据,怎么识别它们?

  • 创建后续单据的一些关键信息怎么获取?

  • 后续单据创建如果失败了. 怎么获取失败的信息并且重新执行?

    自动单据框架对上述问题的解决思路

  • 对于需要自动创建后续单据的单据,在单据保存时,通过一些通用配置来识别单据中关键特性(单据类型/地点/库位/客户/供应商/公司代码或任意抬头字段或地点客户供应商的属性),对于识别成功的,记录自定义的表中.

  • 通过参照模版程序创建一个处理程序,后续单据的关键信息可以在程序中通过代码实现(或构造一些对应关系表实现).

  • 处理程序同时负责监控及重新处理报错的单据.

  • 自动单据框架下的内容可以快速部署在一个自定义的监控平台,方便集中监控所有的自动单据执行情况(这个后续介绍)

    自动单据框架试图简化项目中这一类的开发,把一个较长的处理链条拆解成若干个单一的环节,并且尽可能实现相关业务的可配置化.这样,开发出来的自动单据程序可以兼容并处理多种业务场景. 

    SAP开发框架系列是我对开篇前言中问题的解答,这个系列提供的是一种思维方式,有些涉及到的代码/工具,会在后续文章中陆续发布.

    如果你对这篇文章感兴趣,请帮忙转发分享, 并且勾选微信 <看一看>.文章右上角的按钮点击后,点击<在看>(或者文章末尾的右下角<在看>),即可.       (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利. 毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

扫码关注公众号,获取更多好用的SAP应用程序

这篇关于SAP开发框架系列之 自动单据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我