热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SAP接口编程PyRFC调用BAPI_FIXEDASSET_CREATE1创建固定资产

本篇演示通过PyRFC调用BAPI_FIXEDASSET_CREATE1在SAP系统中创建固定资产,再一次体验一下Python与其它语言相比的简洁性。首先简单说明B

本篇演示通过 PyRFC 调用 BAPI_FIXEDASSET_CREATE1 在 SAP 系统中创建固定资产,再一次体验一下 Python 与其它语言相比的简洁性。

首先简单说明 BAPI_FIXEDASSET_CREATE1 的用法。这个函数的参数比较多,但可能实际用不到那么多字段,我们只使用一些基本和必须的字段。下面的 ABAP 代码演示了该函数的用法。


  • 参数存在后缀加 x 的参数,比如 general_data,存在 general_data_x 的参数。这些参数用于告诉函数哪些字段的值是需要被修改的。
  • 根据 SAP 的配置,有些字段不需要显式指定,比如 depreciation areas 部分的折旧码、折旧年限等字段,SAP 根据配置来设置这些字段的值。如果需要改变配置的值,比如某资产的折旧年限不使用折旧码的默认值 5 年,而是 3 年,也可以在函数的参数中来设定。
  • 调用 BAPI_FIXEDASSET_CREATE1 函数后,固定资产主数据的号码会被占用,后面应该根据情况,分别使用函数 BAPI_TRANSACTION_COMMIT 提交修改,或者 BAPI_TRANSACTION_ROLLBACK 进行回滚操作。

下面是使用 PyRFC 调用 BAPI 的代码示例:

class FixedAsset(object):def __init__(self) -> None:self.sap_connection = current_sap_connection()def create_asset(self, asset_info):conn = self.sap_connectionresult = conn.call('BAPI_FIXEDASSET_CREATE1',KEY=asset_info['key'],GENERALDATA=asset_info['general_data'],GENERALDATAX=asset_info['general_data_x'],TIMEDEPENDENTDATA=asset_info['time_dependent_data'],TIMEDEPENDENTDATAX=asset_info['time_dependent_data_x'])if result['ASSET'] == None:conn.call('BAPI_TRANSACTION_ROLLBACK')else:conn.call('BAPI_TRANSACTION_COMMIT')return result['RETURN']

结合 Flask,编写一个视图函数:

from flask import Flask, make_response, jsonify, request
from SAP.fixed_asset import FixedAssetapp = Flask(__name__)
app.config['JSON_SORT_KEYS'] =False@app.route("/")
def index():return "index page"@app.route('/aa/create', methods=['POST'])
def create_asset():# payloadpayload = request.get_json()fixed_asset_obj = FixedAsset()rv = fixed_asset_obj.create_asset(payload);return jsonify(rv)

使用 Postman 进行测试:


源代码:github - pyrfc_flask_restful_service


推荐阅读
  • Django Token 认证详解与 HTTP 401、403 状态码的区别
    本文详细介绍了如何在 Django 中配置和使用 Token 认证,并解释了 HTTP 401 和 HTTP 403 状态码的区别。通过具体的代码示例,帮助开发者理解认证机制及权限控制。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • 本文详细介绍了钩子(hook)的概念、原理及其在编程中的实际应用。通过对比回调函数和注册函数,解释了钩子的工作机制,并提供了具体的Python示例代码,帮助读者更好地理解和掌握这一重要编程工具。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 尝试执行数据库模式加载时遇到错误'Mysql2::Error: 指定的键太长;最大键长度为767字节'。本文将探讨这一问题的成因及解决方案。 ... [详细]
  • Java多重继承的替代方案及设计考量
    本文探讨了Java为何不支持多重继承,并深入分析了其背后的原理和替代方案。通过理解Java的设计哲学,开发者可以更好地利用接口和其他特性来实现复杂的类结构。 ... [详细]
author-avatar
moon2502863581
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有