• SAP 输出管理:生成自定义发票文件


    业务需求

    在这里插入图片描述
    修改上图SAP 标准Adobe Form
    已知待修改标准Form为SDBIL_CI_STANDARD_US
    修改项:

    1. 右上角新增TAX INVOICE固定文本
    2. 新增Bill to文本
    3. 将Bill to地址修改为自定义字段,并将整个区域向下移动
    4. 将该区域向右移动
    5. 删除红色框选部分内容

    前言介绍

    该SAP标准Form与开发正常创建的Form不太一样,正常创建的Form是左侧的Adobe form with context,传参通过Call Function的方式(类似Smartform的一个Function)
    该Form是右侧的Adobe form with fragment,直译一下是碎片化的form,这种form可以有多个碎片拼接而成。通过配置打印输出的方式可以直接生成标准发票文件,传参SAP已经设计好了,在回调类中会获取发票的关键信息(如发票号和地址)作为Form的抬头内容,在渲染Form时再使用Odata服务对form主体中绑定的字段进行赋值
    在这里插入图片描述值得注意的是Form的抬头内容为一个单独的碎片(下图黄色部分),使用的值为回调类中的参数,而主体内容(下图蓝色部分)则对应Odata服务中绑定的值
    在这里插入图片描述

    修改部分一:传参

    修改项3:

    Bill to部分(属于抬头数据,与Form数据不在同一处)修改有些特殊,查资料找到了Form的标准回调类为CL_BILLING_OUTPUT_CONTROL
    可通过下述方法找到对应的标准回调类
    SPRO -> SAP Reference IMG -> Cross Application Components -> Output Control.
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    通过Debug找到该回调类对应Form抬头绑定的参数,进行增强修改即可
    在这里插入图片描述

    修改项5:

    该Adobe form为SAP标准Form,Form类型为Form With Fragment(碎片化Form,可以有多个Fragment构成),数据来源是Odata 服务(从Gateway Service 处可知使用的Odata 服务是FDP_V3_BD_STANDARD)
    在这里插入图片描述
    要修改传参内容只能去标准Odata 服务中做增强实现
    首先在Form里面找到需要修改的变量名,然后去Odata中找对应的实体集
    在这里插入图片描述
    此处我需要修改的变量为:ItemPricingConditions.ItemPricingConditionNode[*]
    segw转到上述的Odata服务,找到绑定的实体集,做增强修改即可
    在这里插入图片描述
    在这里插入图片描述

    修改部分二:样式调整

    修改项2、4:

    这两块区域都在Form当中能找到,通过layout稍作调整即可,不做赘述
    在这里插入图片描述

    修改项1、3:

    这两块区域在抬头Fragment处,要找到对应的抬头Fragment再去修改
    抬头Fragment是配置出来的,配置位置应该在下面这个路径,拜托业务帮我把原来标准的SOMU_FORM_MASTER_A4,改成了Copy后修改的ZSOMU_FORM_MASTER_A4
    SPRO -> SAP Reference IMG -> Cross Application Components -> Output Control.
    在这里插入图片描述
    在这里插入图片描述
    然后去抬头Fragment修改对应位置就好了,这个地方有好几个page,还没弄清楚在Form里面是怎么指定用抬头Fragment的哪个page的,正好找到了最后一个page跟我打印的form很接近,修改后确认确实为该Page
    在这里插入图片描述

    参考博客:

    Create Adobe form with fragments as a copy of the standard.
    SAP S/4HANA Output Control
    SAP Output Management: setting custom Dunning Notice Form in SAP S/4HANA Cloud

  • 相关阅读:
    阅读 | 001《人工智能导论》(二)知识获取篇
    【SHELL】推箱子游戏
    【前端】JavaScript
    软路由搭建:工控机(3865U)安装esxi并在esxi上创建iStoreOS做主路由(网卡直通)
    SQL Server 解析JSON复杂的多层级示例
    标准流布局
    微信小程序rich-text 文本首行缩进和图片居中和富文本rich-text 解析多个空格不成功 &nbsp
    分布式与微服务 —— 初始
    FreeRTOS教程6 互斥量
    浅议开发者面临的信息偏差影响因素
  • 原文地址:https://blog.csdn.net/qq_44826887/article/details/127442162