采購訂單審批和取消例子

文章目錄

      • 1 Introduction
      • 2 Example

1 Introduction

This is a exmaple for releaseing po and reseting po.

2 Example

  DATA:lw_in   TYPE zmms015,lw_out  TYPE zmms015_out,lt_head LIKE TABLE OF  ZMMT003_head,lw_head TYPE ZMMT003_head,lt_item TYPE zmmt003_item_t,lt_spjd TYPE ZMMT003_spjd_T.DATA:lv_rel_code LIKE  bapimmpara-rel_code.DATA:lt_return TYPE TABLE OF bapireturn,ls_return TYPE bapireturn.DATA:lv_str    TYPE string,lv_offset TYPE i.DATA:BEGIN OF ls_grp,frgco TYPE t16fc-frgco,END OF ls_grp,lt_grp LIKE TABLE OF ls_grp.FIELD-SYMBOLS:<lfs_v1> TYPE any.* logic partlw_in = ps_in.lt_item  =  lw_in-is_value-it_items1.lt_spjd  =  lw_in-is_value-it_items2.MOVE-CORRESPONDING lw_in-is_value  TO lw_head .IF lw_in-is_value-ebeln  IS INITIAL.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '采購單號必填,請核實數據!'.RETURN.ENDIF.LOOP AT lt_item ASSIGNING FIELD-SYMBOL(<fs_item>).IF <fs_item>-ebeln  IS INITIAL.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '采購單號必填,請核實數據!'.RETURN.ENDIF.IF <fs_item>-ebelp  IS INITIAL.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '采購行項目必填,請核實數據!'.RETURN.ENDIF.ENDLOOP.LOOP AT lt_spjd ASSIGNING FIELD-SYMBOL(<fs_spjd>).IF <fs_spjd>-ebeln  IS INITIAL.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '采購訂單必填,請核實數據!'.RETURN.ENDIF.ENDLOOP.* Get po's  approve  code  and get apporve leve codeIF lw_head-zspbs  =  'R' .  "  Approve poSELECT k~ebeln,k~frgzu,s~frgc1,s~frgc2,s~frgc3,s~frgc4,s~frgc5,s~frgc6,s~frgc7,s~frgc8FROM t16fs AS sINNER JOIN ekko AS kON k~frggr = s~frggrAND k~frgsx = s~frgsxWHERE k~ebeln = @lw_head-ebelnAND k~frgrl = @abap_true "FRGRL 字段標示審批是否結束INTO TABLE @DATA(lt_t16fs).READ TABLE lt_t16fs ASSIGNING FIELD-SYMBOL(<lfs_t16fs>) INDEX 1.IF sy-subrc EQ 0.DO 8 TIMES.lv_str = sy-index.lv_str = 'FRGC' && lv_str.CONDENSE lv_str NO-GAPS.ASSIGN COMPONENT lv_str OF STRUCTURE <lfs_t16fs> TO <lfs_v1>.IF sy-subrc EQ 0.IF <lfs_v1> IS NOT INITIAL.DATA(lv_x) = <lfs_t16fs>-frgzu+lv_offset(1).IF lv_x IS INITIAL."未審批ls_grp-frgco = <lfs_v1>.APPEND ls_grp TO lt_grp.ENDIF.ENDIF.ENDIF.lv_offset = lv_offset + 1.ENDDO.CLEAR lv_str.ENDIF.* Approve po's orderLOOP AT lt_grp INTO ls_grp.CALL FUNCTION 'BAPI_PO_RELEASE'EXPORTINGpurchaseorder = lw_head-ebelnpo_rel_code   = ls_grp-frgcoTABLESreturn        = lt_return.LOOP AT lt_return INTO ls_returnWHERE type = 'E' OR type = 'A'.lv_str = lv_str && '|' && ls_return-message.DATA(lv_flag) = abap_true.ENDLOOP.SHIFT lv_str LEFT DELETING LEADING '|'.IF lv_flag EQ abap_true.EXIT.ENDIF.WAIT UP TO 1 SECONDS.ENDLOOP.IF lv_flag EQ abap_true."失敗CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '審核失敗'.ELSE."成功ps_out-es_value-code =   'S'.ps_out-es_value-msg  =   '審核成功'.ENDIF.
* Disapprove po's order .ELSE.  "CALL FUNCTION 'BAPI_PO_RESET_RELEASE'EXPORTINGpurchaseorder            = lw_head-ebelnpo_rel_code              = 'R2'use_exceptions           = 'X'EXCEPTIONSauthority_check_fail     = 1document_not_found       = 2enqueue_fail             = 3prerequisite_fail        = 4release_already_posted   = 5responsibility_fail      = 6no_release_already       = 7no_new_release_indicator = 8OTHERS                   = 9.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '審核失敗'.ELSE.ps_out-es_value-code =   'S'.ps_out-es_value-msg  =   '審核成功'.ENDIF.ENDIF.MODIFY ZMMT003_head FROM lw_head.MODIFY ZMMT003_item FROM  TABLE lt_item.MODIFY ZMMT003_spjd FROM TABLE  lt_spjd.IF sy-subrc = 0.COMMIT WORK.ELSE.ROLLBACK WORK .ENDIF.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19951.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19951.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19951.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

12.RedHat認證-Linux文件系統(下)

12.RedHat認證-Linux文件系統(下) swap虛擬內存 我加一個硬盤做實驗sdc # 創建交換分區&#xff08;不用做成邏輯卷也能靈活分區&#xff09; [rootcentos8 ~]# fdisk /dev/sdc -l Disk /dev/sdc&#xff1a;10 GiB&#xff0c;10737418240 字節&#xff0c;20971520 個扇區 …

REX 521饋線保護繼電器提供 您的高效中壓網絡 保護、測量、監控和基本 控制功能

REX 521饋線保護繼電器提供 您的高效中壓網絡 保護、測量、監控和基本 控制功能。典型的REX 521應用包括輸入和輸出饋線 在隔離中性點中&#xff0c;諧振接地&#xff0c;牢固 接地和電阻接地系統。 …完善ABB繼電器解決方案系列 這種最先進的保護繼電器補充了ABB的一系列解決方…

深入理解linux文件系統與日志分析

深入理解linux文件系統與日志分析 linux文件系統: 文件是存儲在硬盤上的&#xff0c;硬盤上的最小存儲單位是扇區&#xff0c;每個扇區的大小是512字節。 inode&#xff1a;元信息&#xff08;文件的屬性 權限&#xff0c;創建者&#xff0c;創建日期等等&#xff09; block…

【AVL Design Explorer DOE】

AVL Design Explorer DOE 1、關于DOE的個人理解2、DOE參考資料-知乎2.1 DOE發展及基本類型2.2 DOE應用場景2.3 Mintab 中的 DOE工具3、AVL Design Explorer DOE示例 1、關于DOE的個人理解 仿真和試驗一樣&#xff0c;就像盲人摸象&#xff0c;在不知道大象的全景之前&#xff…

Java 垃圾回收

一、概述 GC GC(Garbage Collection)&#xff0c;在程序運行過程中內存空間是有限的&#xff0c;為了更好的的使用有限的內存空間&#xff0c;GC會將不再使用的對象清除然后將其所占用的內存釋放出來。 java的垃圾回收機制 Java的垃圾收集&#xff08;Garbage Collection, …

嵌入式Linux復制剪切刪除指令詳解

指令操作 1. cp 復制指令 a. 用法&#xff1a;cp [ 選項 ] [ 源文件或目錄 ] [ 目標文件或目錄 ]&#xff1b; b. 用途&#xff1a;用于復制文件或目錄&#xff1b; c. 通常情況下&#xff0c;復制的都不是空文件夾&#xff0c;所以直接使用 cp 復制空文件會失敗&#xff0…

創建Django項目及應用

1 創建Project 1個Project可以對應多個app django-admin startproject myproject 2 創建App python manage.py startapp app01 INSTALLED_APPS [# ...app01,app02,# ... ] 如果要讓這個應用在項目中起作用&#xff0c;需要在項目的 settings.py 文件的 INSTALLED_APPS 配置…

java中成員內部類、局部內部類、匿名內部類各自的特點

成員內部類&#xff1a;定義在類的內部&#xff0c;方法的外部&#xff0c;成員內部類作為外部類的成員&#xff0c;可以直接訪問外部類的私有屬性。 局部內部類&#xff1a;定義在方法的內部&#xff0c;對于局部內部類我們常常使用一個方法&#xff0c;得到一個接口實現類的…

臭氧濃度傳感器在食品廠與制藥廠中的應用

在食品廠和制藥廠的生產過程中&#xff0c;消毒是一個至關重要的環節。有效的消毒可以確保產品免受微生物污染&#xff0c;從而保障消費者的健康。近年來&#xff0c;臭氧作為一種廣譜殺菌劑&#xff0c;因其強效的消毒能力和低污染性&#xff0c;在食品廠和制藥廠的消毒過程中…

SpringMVC:創建一個簡單的SpringMVC框架

目錄 一、框架介紹 兩個重要的xml文件 SpringMVC執行流程 二、Vscode搭建SpringMVC框架 1、maven創建webapp原型項目 2、pom.xml下添加springmvc的相關依賴 3、在web.xml配置 4、springmvc.xml的配置 5、編寫Controller控制器類 6、 編寫JSP界面 7、項目結構圖 一…

VS2017中使用qt翻譯家,除ui界面外其他用tr包裹的字符串在翻譯家中顯示為亂碼

1、ui界面中的中文,可以正常顯示 2、其他用tr包裹的字符串,顯示為亂碼 3、解決 改為utf8保存。 然后更新翻譯文件,重新打開發現已經ok了。 參考博客: https://blog.csdn.net/zhou714534957/article/details/124948822 https://blog.csdn.net/weixin_52689816/article/d…

【Linux】期末復習

《Linux程序設計》各章知識點梳理 第1章 軟件包的管理方式方面&#xff0c;Ubuntu、CentOS的差異 Ubantu使用APT&#xff0c;CentOS使用YUM 如何添加一個新用戶&#xff1f; Useradd new_user_name 什么是Shell&#xff1f; Shell 是一個用 C 語言編寫的程序&#xff0c;這個…

Milvus向量數據庫:高效處理海量非結構化數據的利器

一、引言 隨著數據量的爆炸式增長&#xff0c;如何高效地存儲、管理和查詢海量非結構化數據成為數據科學和人工智能領域的一個重大挑戰。傳統的關系型數據庫在處理這種類型的數據時顯得力不從心&#xff0c;而向量數據庫作為一種新型的數據庫解決方案&#xff0c;提供了極大的…

PAT-1004 成績排名(java實現)

這一關感覺還沒第三關難&#xff0c;思路很清晰 題目 1004 成績排名 讀入 n&#xff08;>0&#xff09;名學生的姓名、學號、成績&#xff0c;分別輸出成績最高和成績最低學生的姓名和學號。 輸入格式&#xff1a; 每個測試輸入包含 1 個測試用例&#xff0c;格式為 第 1 行…

【算法】宵暗的妖怪

?題目鏈接&#xff1a; 宵暗的妖怪 ?題目描述 露米婭作為宵暗的妖怪&#xff0c;非常喜歡吞噬黑暗。這天&#xff0c;她來到了一條路上&#xff0c;準備吞噬這條路上的黑暗。這條道路一共被分為n 部分&#xff0c;每個部分上的黑暗數量為ai 。露米婭每次可以任取 連續的 未被…

賺錢其實沒有秘密,多琢磨一下不丟人

為什么學了很多知識還是掙不到錢&#xff1f; 掙不到錢&#xff0c;是因為你不夠稀缺&#xff1b;掙錢太少&#xff0c;是因為你不懂杠桿&#xff0c;用杠桿撬動稀缺&#xff0c;個人價值自然水漲船高。 學富五車&#xff0c;為何財庫依舊空空&#xff1f;怎樣才能提高掙錢的…

在全志H616核桃派開發板上配置SSH遠程終端方法詳解

熟悉指令用戶可以對已經聯網的核桃派進行局域網SSH遠程終端控制&#xff0c;方便使用自己的PC對核桃派遠程進行各種指令操作。 普通用戶&#xff08;默認&#xff09; 賬號&#xff1a;pi ; 密碼&#xff1a;pi管理員賬戶 賬號&#xff1a;root ; 密碼&#xff1a;root 在這之…

在Android Studio中使用谷歌Gemini代碼助手

今天在做android開發的時候&#xff0c;一個項目使用到了gradle8.0&#xff0c;但是我的Android Studuio根本不支持&#xff0c;無可奈何只能從小蜜蜂版本升級了水母 | 2023.3.1版本&#xff0c;但突然發現AS已經集成了Gemini助手。 首先我們需要下載這個版本的&#xff1a; h…

2.5Bump Mapping 凹凸映射

一、Bump Mapping 介紹 我們想要在屏幕上繪制物體的細節&#xff0c;從尺度上講&#xff0c;一個物體的細節分為&#xff1a;宏觀、中觀、微觀宏觀尺度中其特征會覆蓋多個像素&#xff0c;中觀尺度只覆蓋幾個像素&#xff0c;微觀尺度的特征就會小于一個像素宏觀尺度是由頂點或…

JDBC常見異常(10)—預編譯模式下占位符動態排序字段失效

場景需求 需要根據不同的列進行對應的排序操作&#xff0c;實現動態列名排序 類似&#x1f41f;動態查詢或更新 但是JDBC預編譯模式下占位符的排序字段失效 SQL語句 分頁查詢 select * from (select t.*, rownum rn from(select * from emp order by empno desc) t where …