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

SAP PP BOM主数据维护接口分享

一、接口逻辑

二、接口代码

FUNCTION z_fmdm_bom_create.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_DATA_GD) TYPE  ZSBC_IF_GD
*"     VALUE(I_INPUT) TYPE  STRING
*"  EXPORTING
*"     VALUE(E_OUTPUT) TYPE  STRING
*"----------------------------------------------------------------------
  DATA:l_mseh6  TYPE mseh6,
       lv_posnr TYPE numc4.
  CALL FUNCTION 'ZFM_BREAK_POINT'  .

  CLEAR:gv_input_022,
        gv_output_022,
        gv_status_022.

  "清空输出变量
  CLEAR:e_output.

  IF i_input IS NOT INITIAL.

    CALL FUNCTION 'Z_FMBC_JSONTOABAP'
      EXPORTING
        i_json = i_input
      IMPORTING
        e_data = gv_input_022.

  ENDIF.

  IF gv_input_022 IS INITIAL.
    PERFORM frm_set_msg TABLES gv_output_022 USING 'E' '00' '001' '请检查JSON结构与SAP ABAP结构 是否一致!'.
    PERFORM frm_write_log_new  USING  'PP0022'
                                gv_output_022
                                 i_data_gd
                                 i_input
                                 e_output
                                 'E'.
    EXIT.
  ENDIF.


  gv_input_022-header-matnr = |{ gv_input_022-header-matnr ALPHA = IN WIDTH = 18 }|.
  IF gv_input_022-header-stlal IS INITIAL.
    gv_input_022-header-stlal = '1'.
  ENDIF.
  gv_input_022-header-stlal = |{ gv_input_022-header-stlal ALPHA = IN }|.

  IF gv_input_022-header-aennr IS NOT INITIAL.
    gv_input_022-header-aennr = |{ gv_input_022-header-aennr ALPHA = IN }|.
  ENDIF.

  IF gv_input_022-header-bmein IS NOT INITIAL.
    CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
      EXPORTING
        input          = gv_input_022-header-bmein
        language       = sy-langu
      IMPORTING
        output         = l_mseh6
      EXCEPTIONS
        unit_not_found = 1
        OTHERS         = 2.
    IF sy-subrc EQ 0.
      gv_input_022-header-bmein = l_mseh6 .
    ENDIF.
*  ELSE.
*    SELECT SINGLE MEINS FROM MARA INTO gv_input_022-header-bmein
*       WHERE matnr = gv_input_022-header-matnr.

  ENDIF.


  CLEAR:lv_posnr.
  LOOP AT gv_input_022-item ASSIGNING FIELD-SYMBOL(<fs_item>) .

    IF gv_input_022-header-op_flag_header EQ 'N'.
      lv_posnr = lv_posnr + 10.
      <fs_item>-posnr = lv_posnr.
    ENDIF.

    <fs_item>-idnrk = |{ <fs_item>-idnrk ALPHA = IN WIDTH = 18 }|.

    IF <fs_item>-postp IS INITIAL.
      <fs_item>-postp    = 'L'.
    ENDIF.

*    IF <fs_item>-alpst IS INITIAL.
*      .    <fs_item>-alpst    = '1'.
*    ENDIF.

    CLEAR:l_mseh6.
    CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
      EXPORTING
        input          = <fs_item>-meins
        language       = sy-langu
      IMPORTING
        output         = l_mseh6
      EXCEPTIONS
        unit_not_found = 1
        OTHERS         = 2.
    IF sy-subrc EQ 0.
      <fs_item>-meins = l_mseh6 .
    ENDIF.

  ENDLOOP.

  CASE gv_input_022-header-op_flag_header .
    WHEN 'N'.
      PERFORM frm_create_bom .
    WHEN 'C'.
      PERFORM frm_change_bom .
    WHEN OTHERS.
      PERFORM frm_set_msg TABLES gv_output_022 USING 'E' '00' '001' '抬头操作标识无效!'.
      gv_status_022 ='E'.
  ENDCASE.

  PERFORM frm_write_log_new  USING  'PP0022'
                           gv_output_022
                           i_data_gd
                           i_input
                           e_output
                           gv_status_022.

ENDFUNCTION.

DATA:gv_input_022  TYPE zsdm_bom_creat_input,
     gv_output_022 TYPE zttbc_msg,
     gv_status_022 TYPE c.

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&

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

相关文章:

  • 合成孔径雷达(SAR)及其信号处理:一文读懂,从类比到原理
  • 深度学习神经网络入门-问答学习
  • 化工防爆气象站:化工安全的气象监测设备
  • 做货运网站找哪家好如何用云服务器搭建个人网站
  • RAG拓展、变体、增强版(三)
  • 【PDF】PDF文件体详解
  • C++ STL list 容器学习笔记:双向链表的 “小火车“ 操控指南
  • Visual Studio Code (VS Code) 官方下载渠道
  • 网站制作的相关术语有哪些建一个网站多少钱
  • 企业网站建设属于什么费用搜索引擎优化的英文缩写
  • 告别“凭感觉”告警,金仓数据库替换MongoDB让运维更精准
  • 机器学习从业者大语言模型微调指南
  • Neo4j图数据库:简述增删改查
  • Mac版Color Folder v3.8安装教程(附dmg文件安装步骤和搜索关键词)
  • 金仓KES MongoDB兼容性深度解析与实践
  • Fiddler抓包实战教程 从安装配置到代理设置,详解Fiddler使用方法与调试技巧(HTTPHTTPS全面指南)
  • 对电子商务网站建设的感想4399网页游戏大全
  • 珠海专业医疗网站建设请人做ppt的网站
  • 印团网网站是哪家做的平面设计年终总结
  • 【u-boot】u-boot的I2C驱动框架剖析
  • JFrog vs Nexus vs Hadess,制品管理工具一文纵评
  • 【Docker】容器常用命令
  • Linux《Socket编程UDP》
  • Java IO 流进阶:Buffer 与 Channel 核心概念解析及与传统 IO 的本质区别
  • 【Linux基础开发工具 (一)】详解Linux软件生态与包管理器:从yum / apt原理到镜像源实战
  • 镇江网站营销推广电商怎么做如何从零开始视频
  • opencv 学习: 01 初识图片处理
  • 从 Wot UI 出发谈 VSCode 插件的自动化发布
  • Rust专项——用 Weak 打破引用环:树与图结构实战
  • c#调Lua返回个字符串