记录一下QM检验批接口,回头补细节

2023-11-11

  method ZQM_II_SI_SPCD_REC~SI_SPCD_PROCSS.
*** **** INSERT IMPLEMENTATION HERE **** ***

*->数据定义部分
  TYPES:BEGIN OF ty_qamv,
       prueflos TYPE qamv-prueflos,
       vorglfnr TYPE qamv-vorglfnr,
       aufpl    TYPE qals-aufpl,
       vornr    TYPE afvc-vornr,
       plnkn    TYPE afvc-plnkn,
       plnnr    TYPE afvc-plnnr,
  END OF ty_qamv.

  DATA:lt_qamv TYPE TABLE OF ty_qamv,
         ls_qamv TYPE ty_qamv.

  DATA:ls_req TYPE zqm_dt_spcd_req,
       ls_res TYPE zqm_dt_spcd_res,
       lt_data TYPE TABLE OF ZQM_DT_SPCD_REQ_DATA,
       ls_data TYPE ZQM_DT_SPCD_REQ_DATA.

  DATA:lv_insplot TYPE bapi2045l2-insplot,
       lv_inspoper TYPE bapi2045l2-inspoper.
  DATA:ls_inspoint TYPE bapi2045l4,
       lt_inspoint TYPE TABLE OF bapi2045l4.
  DATA:ls_char_results TYPE  bapi2045d2,
       lt_char_results TYPE TABLE OF bapi2045d2.
  DATA:ls_sample_results TYPE bapi2045d3,
       lt_sample_results TYPE TABLE OF bapi2045d3.
  DATA:ls_single_results TYPE bapi2045d4,
       lt_single_results TYPE STANDARD TABLE OF bapi2045d4.

  DATA:ls_return TYPE bapiret2,
       lt_return TYPE TABLE OF bapiret2.


  DATA ud_data         TYPE bapi2045ud.
  DATA:ud_return_data  TYPE  bapi2045ud_return,
       stock_data      TYPE  bapi2045d_il2,
       ls_return1      TYPE  bapireturn1.

  DATA:re_subrc type sy-subrc,
       lv_str   type string,
       lv_msg  type string.

  DATA it_return type table of bapiret2 .

       lt_data = input-mt_spcd_req-data[].

*->检查数据
     LOOP AT lt_data INTO ls_data.


*->检查数据

       "先找到能用的工序
    SELECT v~prueflos
             v~vorglfnr
             s~aufpl
             a~vornr
             a~plnkn
             a~plnnr
             INTO TABLE lt_qamv
             FROM qamv AS v
             INNER JOIN qals AS s
             ON s~prueflos = v~prueflos
             INNER JOIN afvc AS a
             ON a~aufpl = s~aufpl
             AND a~aplzl = v~vorglfnr
             AND a~plnty = 'N'
             WHERE v~prueflos EQ ls_data-prueflos.

        SORT lt_qamv BY prueflos vorglfnr.
        DELETE ADJACENT DUPLICATES FROM lt_qamv COMPARING ALL FIELDS.


       LOOP AT  lt_qamv INTO ls_qamv.

          lv_insplot  = ls_qamv-prueflos.
          lv_inspoper = ls_qamv-vornr.

        "取源检验批的检验结果
          CALL FUNCTION 'BAPI_INSPOPER_GETDETAIL'
            EXPORTING
              insplot              = lv_insplot
              inspoper             = lv_inspoper
              read_insppoints      = 'X'
              read_char_results    = 'X'
              read_sample_results  = 'X'
              read_single_results  = 'X'
              char_filter_no       = '1'
              max_insppoints       = 100
              insppoint_from       = 0
              handheld_application = ' '
            IMPORTING
              return               = ls_return
            TABLES
              insppoints           = lt_inspoint
              char_results         = lt_char_results
              sample_results       = lt_sample_results
              single_results       = lt_single_results.


*      get upper limit or below limit from PLMK table
      ls_inspoint-insplot     = ls_qamv-prueflos. "检验批
      ls_inspoint-inspoper    = ls_qamv-vornr.    "工序
      ls_inspoint-psel_set    = ls_data-werks.    "工厂
      ls_inspoint-material    = ls_data-matnr.    "物料编号


      READ TABLE lt_char_results ASSIGNING FIELD-SYMBOL(<fs_results>)
                        WITH KEY remark = ls_data-prtext.
      IF sy-subrc EQ 0.
          ls_char_results-start_date  = ls_data-prdat.    "测试日期
          ls_char_results-remark      = ls_data-prtext.   "测试项目
          ls_char_results-mean_value  = ls_data-prsvalue. "天平均值
          ls_char_results-vals_above  = ls_data-gctmax.   "公差上限
          ls_char_results-vals_below  = ls_data-gclow.    "公差下限
          ls_char_results-mean_value  = ls_data-cvalue.   "中心值
          ls_char_results-evaluation  = ls_data-pdjl.    "判定结论
          ls_char_results-inspector   = ls_data-pernr.    "检验员


      select single
            merknr into ls_single_results-inspchar
            from plmk
              where kurztext = ls_data-prtext
               and  plnkn = ls_qamv-plnkn
               and  plnnr = ls_qamv-plnnr
               and  plnty = 'N'.

          ls_single_results-insplot   = ls_qamv-prueflos.
          ls_single_results-inspoper  = ls_qamv-vornr.
          ls_single_results-inspchar  = <fs_results>-inspchar.
          ls_single_results-res_value = ls_data-prsvalue.
          ls_single_results-res_no    = ls_single_results-inspchar / 10.
          APPEND ls_single_results TO lt_single_results.
      ENDIF.


      CALL FUNCTION 'BAPI_INSPOPER_RECORDRESULTS'
        EXPORTING
          insplot        = lv_insplot
          inspoper       = lv_inspoper
          insppointdata  = ls_inspoint
        IMPORTING
          return         = ls_return
        TABLES
          char_results   = lt_char_results
          sample_results = lt_sample_results
          single_results = lt_single_results
          returntable    = lt_return.

" attetion:->这个BAPI执行成功后没有返回TYPES S ,只能反向推测,没有'E'则表示成功,但是存在没有'E'也没有成功的情况

       READ TABLE lt_return with key type = 'E'
             TRANSPORTING NO FIELDS.
          IF sy-subrc EQ 0.

            "出错的话后面的都不执行,原则上每次只传入一个检验批,设置成TABLE是为了后续改进做准备

             LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'.


               CALL FUNCTION 'MESSAGE_TEXT_BUILD'
                     EXPORTING
                      MSGID                 = ls_return-id
                      MSGNR                 = ls_return-number
                      MSGV1                 = ls_return-message_v1
                      MSGV2                 = ls_return-message_v2
                      MSGV3                 = ls_return-message_v3
                      MSGV4                 = ls_return-message_v4
                    IMPORTING
                       MESSAGE_TEXT_OUTPUT   = lv_str.

                lv_msg = COND #( WHEN lv_msg  IS INITIAL THEN lv_str else  lv_msg && lv_str ).

              endloop.

             output-mt_spcd_res-o_msgty = 'E'.
             output-mt_spcd_res-o_messg =  '检验批结果录入错误,报错消息为:' && lv_msg.
             RETURN.
          ENDIF.
      ENDLOOP.

      ud_data-insplot =  ls_data-prueflos.
      ud_data-ud_code = '2'.
      ud_data-ud_plant = ls_data-werks.
      ud_data-ud_code_group = 'ZCTGIPQC'.
      ud_data-ud_selected_set = 'I01'.


*        ud_data-ud_stock_posting = 'X'.  "是否进行过帐

        CALL FUNCTION 'BAPI_INSPLOT_SETUSAGEDECISION'
          EXPORTING
            number         = ls_data-prueflos
            ud_data        = ud_data
*     LANGUAGE       =
          IMPORTING
            ud_return_data = ud_return_data
            stock_data     = stock_data
            return         = ls_return1.


       clear LV_STR.

        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
               EXPORTING
                MSGID                 = ls_return1-id
                MSGNR                 = ls_return1-number
                MSGV1                 = ls_return1-message_v1
                MSGV2                 = ls_return1-message_v2
                MSGV3                 = ls_return1-message_v3
                MSGV4                 = ls_return1-message_v4
              IMPORTING
                 MESSAGE_TEXT_OUTPUT   = lv_str.

         output-mt_spcd_res-o_msgty = ls_return1-type.
         output-mt_spcd_res-o_messg = lv_str.

  ENDLOOP.



endmethod.

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记录一下QM检验批接口,回头补细节 的相关文章

  • SAP ABAP基础知识 访问外部数据库-开发篇

    前言 本文主要介绍通过ABAP语言访问外部数据库的几种方式 一 外部数据库配置 本文示例中的代码访问了两个外部数据库 MTD 外部oracle数据库 其中示例表 ZTTEMP 字段 ZZTNO WERKS S4Q 外部HANA数据库 开发系
  • 安装 Hana Studio

    1 从sap 官网下载下来的安装包是 sar 类型的压缩包 2 需要用专门的解压工具 SAPCAR 3 运行sapcar 工具和安装包放到英文路径下 win r 输入cmd 输入CD SAPCAR保存路径 我的保存在 出现这种 没有打开相应
  • 国际MES供应商与产品大全

    最近花了一点时间 将国际上知名的MES厂商和其产品整理了一下 如下 ABB ABB 苏黎世 瑞士 是一个240亿美元的自动化和电力技术的全球业务的供应商 它的制造软件利用其控制及自动化产品通用解决方案的一部分 其系统800xa控制体系结构
  • SAP 在制品明细

    Report ZCO019 REPORT zco019 TABLES matdoc SELECT OPTIONS s bukrs FOR matdoc bukrs OBLIGATORY s bu
  • SAP PO上传异步接口(PO发布Webservice)

    导语 接口是SAP与其他系统进行数据交互的一种方式 在这篇文章中主要讲述通过PO实现的上传接口 即SAP被动接收其他系统发送的数据 注意 对于配置中涉及的基本组件的介绍和创建在前面的博客有说明和介绍 再次不做过多赘述了 一 ESB Ente
  • 三步搞定ABAP DOI操作EXCEL

    ABAP可以使用OLE与DOI两种方式实现操作EXCEL 使用OLE时 每个单元格的值和样式都需要写代码实现 特别是对于不规则的格式 代码量巨大 而DOI是从服务器已经上传的EXCEL模板中下载模板然后打开修改实现数据保存 当然 也可以直接
  • 读取带有动态键字段的表?

    我有一张桌子的名字DATA lv tablename TYPE tabname VALUE xxxxx 和一个通用的FIELD SYMBOLS
  • 删除 ALV 中选定的行

    我有 ALV 表 并在表工具栏中创建了一个自定义按钮 每当按下按钮时 我想删除选定的行 现在只显示一条消息 以便我可以查看自定义按钮是否正常工作 METHOD on user command CASE e salv function WHE
  • 配置SAP用户密码策略(不用重启服务器的方法)

    最近公司审计 给我们提出了要优化密码策略的建议 原因是我们的密码策略太简单了 我稍稍研究了一下 之前是通过RZ10来配置 但是这种方法需要重启服务器 这就比较麻烦 其实有一种方法是通过配置密码策略 不要要重启的方法 事务代码 SECPOL
  • 将 ALV 输出网格中的复选框标记为选中

    我正在使用类创建 ALV 输出网格cl gui alv grid 使用 fieldcatalog 的相应记录将输出表的其中一列定义为复选框 ls fcat checkbox X ls fcat edit X 对于包含复选框的列的所有记录 它
  • 不使用TMS将TR文件推送到SAP ERP系统

    我是 salesforce com 开发人员 我需要构建一个简单的 SFDC SAP 集成场景以用于演示目的 我对 SAP 完全没有经验 但我们至少有一个 SAP 演示系统 我目前只能通过 SAP GUI 访问 现在 第三方集成解决方案提供
  • 使用正则表达式替换 CSV 中引号之间的逗号

    例如 我们有一个像这样的字符串 COURSE 247 28 4 2016 12 53 Europe Brussels 1 Verschil tussen merk product en leveranciersverantwoordelij
  • 在ABAP中使用自定义消息引发异常

    我正在编写一个通过 RFC 调用的函数 我想找到最简单的方法来在 ABAP 中使用自定义消息引发异常 如果这可以尽可能短地完成 并且可以在一行上完成 那就太好了 我希望它用于调试 而不是用于运行生产代码 背景 过去我使用Python编程语言
  • SELECT 语句中有多个条件?

    首先 我没有 ABAP 经验 我在这里只是猜测 我想向现有报表中的 SELECT 添加条件 现有代码如下所示 SELECT SINGLE FROM EKPO WHERE EBELN GT MSEG EBELN AND EBELP GT MS
  • ABAP ADT 先决条件?

    在 Eclipse 中建立与本地数据库的连接以开始在 ABAP 中进行开发需要什么 我已经安装了 ABAP 插件 但无法连接到数据库 有什么建议么 ABAP 开发工具 ADT https tools hana ondemand com ab
  • 如何以编程方式判断系统是 R/3 还是 S/4

    是否可以通过代码判断当前系统是R 3还是S 4 我需要它 因为我有一个返回人力资源相关数据的软件组件的方法 但这个组件应该与R 3和S 4系统不同 DATA lv software component mo configuration gt
  • ABAP 对象中的“ADD-CORRESPONDING”相当于什么?

    对于以下可执行程序 存在以下语法错误 OO 上下文中不支持 ADD CORRESPONDING 相当于什么ADD CORRESPONDING在ABAP对象中 REPORT CLASS lcl app DEFINITION FOR TESTI
  • 如何在仅引用数据的表中循环

    我正在使用功能模块RSAQ QUERY CALL 取回一张桌子 DATA gr data TYPE REF TO data CALL FUNCTION RSAQ QUERY CALL EXPORTING query ZXXXXXXXX us
  • 我可以使用 line_exists 检查初始值或不相等的值吗?

    ABAP 7 40 添加了line exists 谓词函数来分析内表 但我有什么办法可以检查是否存在特定列为初始值或与目标值不同的行 例如 如何检查具有初始材料列的行 例如此表中的第三行 Document Country Material
  • 如何使用 WHERE 条件中的关联值从 ABAP SQL 消费 CDS?

    我有一个通知标头的 CDS 视图及其状态关联 define view ZNOTIF as select from qmel as notif association 0 to ZNOTIF STATUS as status on statu

随机推荐

  • 大数据安全治理平台建设方案

    近年来 随着大数据应用的普及 在新基建 智慧城市 云端应用等大背景趋势下 给我们日常生活便来了很多方便 同时也派生出更多网络安全风险 如企业数据泄露 欺诈 数据违规使用 个人隐私泄露以及企业内部各种威胁和潜在风险 数据是宝贵的资源和财富 当
  • LCD操作原理

    一 LCD原理介绍 LCD内部内部结构 1 lcd由Framebuffer lcd屏幕 信号线 电子枪 lcd控制器组成 2 Framebuffer提供显示数据 lcd屏幕显示 信号线传输Frambuffer中的数据和lcd控制器发出的信号
  • 【深度学习】Attention提速9倍!FlashAttention燃爆显存,Transformer上下文长度史诗级提升...

    转载自 新智元 继超快且省内存的注意力算法FlashAttention爆火后 升级版的2代来了 FlashAttention 2是一种从头编写的算法 可以加快注意力并减少其内存占用 且没有任何近似值 比起第一代 FlashAttention
  • Sqli-labs Less-1 报错注入

    Sqli labs Less 1 报错注入 1 首先打开less1后是一个页面 提示输入id作为参数 输入id 1试一下 然后会出现 name 和 password 添加一个单引号 测试一下注入点 输入单引号发现 会直接将报错结果显示在页面
  • 模拟IC设计——MOS计算及常见MOS管电路

    小生初入模拟IC 作此笔记在大佬面前实属班门弄斧 若有不当之处还请指正 1 MOSFET概述 场效应管与晶体管一样 也具有放大作用 但与普通晶体管是电流控制型器件相反 场效应管是电压控制型器件 它具有输入阻抗高 噪声低的特点 1 MOSFE
  • 使用OpenCV中的matchTemplate函数实现模板匹配【C++版】

    matchTemplate函数原型 void cv matchTemplate InputArray image InputArray templ OutputArray result int method InputArray mask
  • THREEJS - 动态标签(dom方式)

    在三维场景中 我们会有一种需求 需要给三维场景中的模型打上标签 例如展示模型的名称 性能展示等 三维场景打标签的方式很多 有dom sprite Mesh等等 这篇文章来给大家介绍的是一种比较常见的打标签方式 dom 这种方式我们可以自定义
  • WSL2和本地windows端口互通

    众所周知 WSL 默认安装后 只允许windows访问 Windows Subsystem for Linux 而WSL是不能反之访问本地windows 我之前用vmware的思路认为是nat的网络模式 于是改成了桥接 结果wsl的桥接模式
  • springboot日志配输出路径配置_SpringBoot输出日志到文件

    1 基本信息 SpringBoot版本2 2 5 日志框架SLF4J 日志框架的实现LockBack 2 输出文件的配置 2 1 logging file name 指定日志文件的位置 2 1 1 例1 使用相对路径 就会在项目根目录下生成
  • R 语言散点图矩阵

    多个变量之间的关系经常用散点图矩阵表示 ggplot2 包没有提供专门的散点图矩阵 基础 R 图形中提供了 pairs 函数作散点图矩阵 GGally 包提供了一个 ggscatmat 函数作散点图矩阵 例如 对 iris 数据的四个测量值
  • UE4 C++ FString乱码显示问号

    如果以 xxx 这种形式并且xxx为中文时 直接赋值给FString的变量会丢失数据导致系统无法识别 因此需要做特殊处理 第一种解决办法 引号前加L表示将字符串转为unicode的字符串 也就是每个字符占用两个字节 FString str
  • 【无标题】DEFI+NFT新玩法

    DeFi NFT 去中心金融 非同质化货币 NFT Defi就是将流动性挖矿的方法移植到到NFT领域 目前典型的代表有MEME SAND RARI等 区块链行业一直困于 圈内自嗨 无法真正走入大众市场 市场和用户规模的增量相比互联网行业是杯
  • 学习笔记-二叉排序树

    二叉排序树 对于二叉排序树的任何一个非叶子节点 要求左子节点的值比当前节点的值小 右子节点的值比当前节点的值大 如果有相同的值 可以将该节点放在左子节点或右子节点 二叉排序树的创建和遍历 思路 比较节点的值 小于就放在左子节点 大于就放在右
  • 使用 AJAX+JSON 实现用户查询/添加功能

    实现用户查询 添加功能 1 查询功能 准备 selectAllServlet brand html 2 添加功能 addBrand html 表单
  • 基于51单片机的课程设计(毕业设计)——电子贺卡

    本篇文章将介绍一个基于51单片机的电子贺卡 本作品可用于课程设计 毕业设计的参考 其所用到的外设硬件以及程序的代码量都是相对较少的 对于51单片机的初学者 通过本设计熟悉51单片机的使用是非常好的选择 目录 一 实现功能 二 硬件准备 三
  • 短信猫(GSM MODEM)安装指南

    短信猫 GSM MODEM 安装指南 短信猫 又名GSM MODEM 专门针对短信应用设计 内含工业级短信发送模块 简化了通信接口 性能稳定可靠 符合各种商业和工业级短信应用要求 支持向移动 联通以及小灵通用户收发短信 适用于各行各业各个领
  • vue element UI图片上传到fastDFS 前/后台实现图片显示

    第一次开发element图片上传 到网上找了很多例子 感觉不全面 所以才写了这篇文章 希望帮助新手快速开发 vue 使用element实现本地预览 最主要的是将图片路径转换为base64 VUE HTML
  • STM32 江协教程 EXTI外部中断(对射式红外传感器计次、旋转编码器计次)笔记补充 旋转编码器判断方向的两种实现方法记录

    这里是看了江协STM32 EXTI中断视频并配合笔记STM32学习笔记 三 丨中断系统丨EXTI外部中断 对射式红外传感器计次 旋转编码器计次 后的一点小补充 方法一 一方下降沿同时查看另一方电平 以A为例 A下降时若B为高电平则为正向 A
  • Pandas 分类数据

    category的创建及其性质 分类变量的创建 a 用Series创建 pd Series a b c a dtype category 得出 0 a 1 b 2 c 3 a dtype category Categories 3 obje
  • 记录一下QM检验批接口,回头补细节

    method ZQM II SI SPCD REC SI SPCD PROCSS INSERT IMPLEMENTATION HERE gt 数据定义部分 TYPES BEGIN OF ty qamv prueflos TYPE qamv