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

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经