20170228 Z_po_send_email
FUNCTION zmm_po_send_email.
function zmm_po_send_email.
*"----------------------------------------------------------------------
*"*"區域介面:
*" IMPORTING
*" VALUE(OLD_EKKO) TYPE EKKO
*" VALUE(NEW_EKKO) TYPE EKKO
*" VALUE(IM_STATUS) TYPE MEREP_TSALEORDER-STATUS
*"---------------------------------------------------------------------- *如果是取消核發,則不觸發郵件功能
data:v_level type i, "核發級別,如四級審批
v_offst type i, "偏移量
v_index type i, "索引號
v_tabix type i, "內表行
v_olddc type c, "核發前狀態
v_newwc type c. "核發后狀態
data:i_codes like table of merel_s_grid1 with header line,
i_codesall like table of merel_s_grid1 with header line,
i_codesno like table of merel_s_grid1 with header line,
w_code1 like merel_s_grid1,
w_code2 like merel_s_grid1. *等待3秒鐘,其目的是讓PO核發處理完畢,再執行下面的,因為執行太快了,下面讀取核發代碼很有可能不全面
*該FM必須異步調用才能有效處理
*WAIT UP TO SECONDS. "DEVK908804
break-point id zmm_email.
*FRGKE 核發指示碼A表示已完成核發,
*FRGZU 核發狀態,X表示級別上已核發
*V_LEVEL = STRLEN( NEW_EKKO-FRGZU ).
*BREAK CP900.
call function 'ZMM_PO_RELEASE_STRATEGY_DATA'
exporting
ebeln = new_ekko-ebeln
importing
e_level = v_level
tables
t_relcodes = i_codes
t_relcodesall = i_codesall
t_relcodesno = i_codesno. *DESCRIBE TABLE I_CODES LINES V_LEVEL.
perform set_rel_info(saplzxwms_mast) if found tables i_codesno. condense old_ekko-frgzu no-gaps.
condense new_ekko-frgzu no-gaps. if im_status = 'CRT'. "從建立或更新觸發 elseif im_status = 'REL'. "核發時觸發
while v_level gt .
v_index = v_index + .
v_olddc = old_ekko-frgzu+v_offst().
v_newwc = new_ekko-frgzu+v_offst().
if v_olddc eq '' and v_newwc = 'X'. "核發情況
clear:w_code1,w_code2.
read table i_codesall into w_code1 index v_index.
if new_ekko-frgke = 'A'. "表明核發已完成,發送郵件通知采購群組
w_code2-description = new_ekko-ekgrp.
perform check_po_recipient_address using new_ekko-ekorg new_ekko-frggr w_code2 'COM' changing sy-subrc.
if sy-subrc eq .
perform ready_po_send_email using new_ekko 'COM' w_code1 w_code2.
endif.
perform send_po_to_vendor using new_ekko. else. "表明部分核發,發送郵件通知下一位核發者
v_tabix = v_index + .
read table i_codesall into w_code2 index v_tabix.
perform check_po_recipient_address using new_ekko-ekorg new_ekko-frggr w_code2 im_status changing sy-subrc.
if sy-subrc eq .
perform ready_po_send_email using new_ekko im_status w_code1 w_code2.
endif.
endif.
endif.
v_level = v_level - .
v_offst = v_offst + .
endwhile.
endif.
endfunction.
*&这个代码还会调很多方法的
20170228 Z_po_send_email的更多相关文章
- 【Java每日一题】20170228
20170227问题解析请点击今日问题下方的“[Java每日一题]20170228”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; import jav ...
- 【2017-02-28】C# 冒泡排序
冒泡排序 重复地走访过要排序的数列,一次比较两个元素的大小,如果他们的顺序错误就把他们交换过来 通过两个For循环嵌套来实现 思路——以从小到大为例 第一个for循环抽取第一个数和第二个数进行比较,如 ...
- 20170228 交货单过账增强 MV50AFZ1
MV50AFZ1 这个程序里面找个FORM 用户出口, FORM USEREXIT_SAVE_DOCUMENT_PREPARE. 用户出口如下: 例:需求: 开发要求:制作交货单的人员,需要同 ...
- 20170228 ALV method中用E消息,会退出到初始界面;STOP 会dump;
再回车就处理界面了, 所以,Handel_data_change 做数据检查时,如果需要报错要用到, CALL METHOD er_data_changed->add_protocol_entr ...
- 20170228 METHOD handle_data_changed-
CALL METHOD er_data_changed->add_protocol_entry METHOD handle_data_changed. DATA: ls_modi TYPE ...
- R----lubridata包介绍学习
lubridate包,非常强大,能够识别各种类型的日期.字符型和时间型数据,都是格式比较特别的你数据,在处理时,比较麻烦,但是有了lubridate这个包之后,时间处理变得非常简单,这个包函数命名简单 ...
- NYOJ-301递推求值
递推求值 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给你一个递推公式: f(x)=a*f(x-2)+b*f(x-1)+c 并给你f(1),f(2)的值,请求出f ...
- Could not find a transformer to transform "SimpleDataType{type=org.mule.transport.NullPayload
mule esb报错 com.isoftstone.esb.transformer.Json2RequestBusinessObject.transformMessage(Json2RequestBu ...
- 线上问题debug过程(cat,grep,tr,awk,sort,uniq,comm等工具的综合使用)
问题:发现线上到货单的数量,小于实际到货的数量. 怀疑一些隐藏的条件,将部分唯一码进行了过滤,导致数量变少. 开展了如下的跟踪流程: 1.找到其中一个明细的唯一码 grep 6180e-4b09f p ...
随机推荐
- 凌乱的桌子和与 Web 的设计理念说明
Python是一门脚本语言,因为能将其他各种编程语言写的模块粘接在一起,也被称作胶水语言.强大的包容性.强悍的功能和应用的广泛性使其受到越来越多的关注,想起一句老话:你若盛开,蝴蝶自来. 如果你感觉学 ...
- BZOJ 2829 信用卡凸包 ——计算几何
凸包裸题 #include <map> #include <cmath> #include <queue> #include <cstdio> #inc ...
- 3931: [CQOI2015]网络吞吐量【网络流】
网络吞吐量(network)题目描述路由是指通过计算机网络把信息从源地址传输到目的地址的活动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器.为了使数据包最快的到达目的地,路 ...
- 算法复习——高斯消元(ssoi)
题目: 题目描述 Tom 是个品学兼优的好学生,但由于智商问题,算术学得不是很好,尤其是在解方程这个方面.虽然他解决 2x=2 这样的方程游刃有余,但是对于下面这样的方程组就束手无策了.x+y=3x- ...
- iOS 收款计算器算法
一个收款计算器算法,从之前高仿有赞Demo里面抽离的一个界面 demo 在这里 https://github.com/L-vinCent/calculView_function 显示计算记录 不能连续 ...
- poj 3692 Kindergarten
Kindergarten Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6956 Accepted: 3436 Desc ...
- Redis命令行之Set
一.Redis之Set简介 1. Set是String类型的无序集合(元素成员唯一). 2. Set是通过hash表实现的,添加.删除.查找的复杂度都是O(1). 3. 每个集合最大成员数为232-1 ...
- OC-Runtime温故知新
每个java应用程序都有一个runtime类实例,使应用程序能够与其运行的环境相连接.可以通过getRuntime 方法获取当前运行时,应用程序不能自己创建runtime类实例.Runtime 没有构 ...
- js-判断当前页面是否在微信浏览器中打开
方案一:推荐 var ua = navigator.userAgent.toLowerCase(); var isWinxin = ua.indexOf('micromessenger') != -1 ...
- springboot整合mybatis+jetty笔记以及遇到的问题
图文创建一个springboot Demo(IDEA创建)+目录图+返回json springboot创建参考 pom.xml <dependencies> <!--<depe ...