当前位置: 首页 > news >正文

SAP交货单过账接口(无批次)分享

一、接口逻辑

1)输入参数和输出参数

2)业务逻辑

二、接口代码

FUNCTION z_fmsd_dn_post.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_DATA_GD) TYPE  ZSBC_IF_GD OPTIONAL
*"     VALUE(I_INPUT) TYPE  STRING OPTIONAL
*"  EXPORTING
*"     VALUE(E_OUTPUT) TYPE  STRING
*"----------------------------------------------------------------------
  DATA:ls_input  TYPE zssd_input_009,
       lt_output TYPE zttbc_msg.

  CALL FUNCTION 'ZFM_BREAK_POINT'  .


  CLEAR:ls_input,lt_output,gv_status_017,gs_input_009.

  IF i_input IS NOT INITIAL.
    CALL FUNCTION 'Z_FMBC_JSONTOABAP'
      EXPORTING
        i_json = i_input
      IMPORTING
        e_data = ls_input.
  ENDIF.

  IF ls_input IS INITIAL.
    PERFORM frm_set_msg TABLES lt_output
      USING 'E' '00' '001' '请检查JSON结构与SAP ABAP结构 是否一致!'.

    PERFORM frm_write_log_new
      USING 'SD0028' lt_output i_data_gd i_input e_output 'E'.

    EXIT.
  ENDIF.

  PERFORM frm_check_likp_data TABLES lt_output USING ls_input.
  IF lt_output IS NOT INITIAL.
    PERFORM frm_write_log_new
      USING 'SD0028' lt_output i_data_gd i_input e_output 'E'.

    EXIT.
  ENDIF.

  MOVE-CORRESPONDING ls_input TO gs_input_009.

  DATA lv_mblnr TYPE mblnr .
  DATA ls_output TYPE zssd_dnpost_output.

  PERFORM frm_dn_post TABLES lt_output USING ls_input CHANGING lv_mblnr .

  ls_output = VALUE #( mblnr = lv_mblnr zs_outmsg = lt_output ) .

  PERFORM frm_write_log_new
    USING 'SD0028' ls_output i_data_gd i_input e_output gv_status_017.

*  PERFORM frm_write_log_new
*    USING 'SD0028' lt_output i_data_gd i_input e_output gv_status_017.

  CLEAR:gs_input_009.
ENDFUNCTION.

FUNCTION Z_FMBC_JSONTOABAP.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(I_JSON) TYPE  STRING
*"  EXPORTING
*"     REFERENCE(E_DATA) TYPE  DATA
*"----------------------------------------------------------------------

  DATA: CL_DESERIALIZER               TYPE REF TO ZCL_TREX_JSON_DESERIALIZER.
  DATA: LV_CX_SY_CONVERSION_NO_NUMBER TYPE REF TO CX_SY_CONVERSION_NO_NUMBER,
        LV_CX_TREX_SERIALIZATION      TYPE REF TO CX_TREX_SERIALIZATION.
  DATA: LV_MESSAGE TYPE STRING,
        LV_MSG_TYP TYPE C.

  DATA:LV_JSON TYPE  STRING.

  LV_JSON = I_JSON.

  REPLACE ALL OCCURRENCES OF REGEX `\[[#[:blank:]]{1,}\]` IN LV_JSON WITH `[]`.
  REPLACE ALL OCCURRENCES OF ':null' IN LV_JSON WITH ':""'.

*  IF  I_JSON IS INITIAL OR I_JSON = '[]'.
*    RETURN.
*  ENDIF.

  IF  LV_JSON IS INITIAL OR LV_JSON = '[]'.
    RETURN.
  ENDIF.

  CREATE OBJECT CL_DESERIALIZER.

  TRY.
      CL_DESERIALIZER->DESERIALIZE(
        EXPORTING
*          JSON   = I_JSON
          JSON   = LV_JSON
        IMPORTING
          ABAP   = E_DATA ).

    CATCH CX_SY_CONVERSION_NO_NUMBER INTO LV_CX_SY_CONVERSION_NO_NUMBER..
      

http://www.dtcms.com/a/533461.html

相关文章:

  • CCF-GESP 等级考试 2024年3月认证C++四级真题解析
  • C++ 类的学习(五) 友元成员
  • 哪里做网站最便宜微信开发者工具下载官网下载
  • SpringBoot—配置文件分类 文件基本(数据)格式 获取数据 profile 内部(外部)配置顺序
  • 大做网站免费人脉推广
  • 手机模板的网站深圳营销网站
  • 第十一章:跃迁篇 - 集成 MCP,连接能力宇宙
  • 建设制作网站wordpress数据表格
  • 建立网站多少钱一年phpmyadmin做网站
  • html5网站布局教程网站建设座谈会上的发言
  • 【补题】 Codeforces Round 1039 (Div. 2) D. Sum of LDS
  • 自建站怎么接入支付个人买卖网站如何做
  • Linux小课堂: systemd核心功能详解
  • 专做网站wordpress 图像滑块插件
  • 郑州知名做网站中国市场网
  • 【技术深度】腾讯 IM 接入规范文档(基于区块链交易所 APP)
  • 什么是区块链?有哪些场景需要用到?
  • 该如何选择深圳网站建设公司菏泽网站建设公司
  • 基于AI Agent的数据资产自动化治理实验
  • Rust 并发编程进阶:线程模型、通道通信与异步任务对比分析
  • 南京一站式工程装饰装修网站做网站建设的名声很差吗
  • 三型布局的网站兴义网站网站建设
  • LangChain最详细教程之Model I/O(三)Output Parsers
  • 网站制作 万网营销型网站建设设计服务
  • 做网站前端用什么语言网站建设是什么专业
  • Photoshop - Photoshop 工具栏(17)铅笔工具
  • sem竞价托管多少钱搜索引擎优化的内容有哪些
  • 合肥营销网站建设价格网站策划的工作要求
  • Diffusion Planner(1): 论文解读
  • 怎样做pdf电子书下载网站网站建设合同贴花算哪一类