请款的RFC创建有标准的BAPI:BAPI_INCOMINGINVOICE_CREATE。这不是我要说的重点。个人认为比较难的是将所需请款的采购订单的行项目抓取出来展示在屏幕上这一步。

主要是两个Function的运用,MRM_ASSIGNMENT与MRM_AMOUNT_QUANTITY_PROPOSE_N。

废话不说了,直接上RFC吧。

FUNCTION Z_MME_CALLSAP_GETPOITEMS.

*"----------------------------------------------------------------------

*"*"Local interface:

*"  IMPORTING

*"     VALUE(IVORGANG) LIKE  RM08M-VORGANG

*"     VALUE(IREFERENZBELEGTYP) LIKE  RM08M-REFERENZBELEGTYP

*"     VALUE(IEBELN) LIKE  RM08M-EBELN OPTIONAL

*"     VALUE(IXWARE_BNK) LIKE  RM08M-XWARE_BNK

*"     VALUE(IEBELP) LIKE  RM08M-EBELP OPTIONAL

*"     VALUE(IBLDAT) LIKE  INVFO-BLDAT OPTIONAL

*"     VALUE(IBUDAT) LIKE  INVFO-BUDAT

*"     VALUE(IBUKRS) LIKE  BKPF-BUKRS

*"     VALUE(ISUPERFIELD) LIKE  RM08M-SUPERFIELD OPTIONAL

*"     VALUE(IXZUORDLIDELIVERY) LIKE  RBKPB-XZUORDLI OPTIONAL

*"     VALUE(IXZUORDLIRETURN) LIKE  RBKPB-XZUORDLI OPTIONAL

*"     VALUE(IDELIVERYBEGIN) LIKE  RBKPB-LFDATABLI OPTIONAL

*"     VALUE(IDELIVERYEND) LIKE  RBKPB-LFDATBISLI OPTIONAL

*"     VALUE(IRETURNBEGIN) LIKE  RBKPB-LFDATABLI OPTIONAL

*"     VALUE(IRETURNEND) LIKE  RBKPB-LFDATBISLI OPTIONAL

*"  EXPORTING

*"     VALUE(RETURNMSG) LIKE  ZRETURNMSG STRUCTURE  ZRETURNMSG

*"  TABLES

*"      IDRSEG STRUCTURE  DRSEG OPTIONAL

*"----------------------------------------------------------------------

TYPES: BEGIN OF MRM_RBVS.

INCLUDE STRUCTURE RBVS.

TYPES: SELKZ(1) TYPE C,

END OF MRM_RBVS.

TYPES: BEGIN OF MRM_RBKPV.

INCLUDE STRUCTURE RBKP_V.

TYPES: RBTX LIKE RBTX OCCURS 0,

THEAD  TYPE THEAD,              " Note header

TNOTE  TYPE TLINE    OCCURS 0,  " Note lines

H_RBVS TYPE MRM_RBVS OCCURS 0,  " vendor split

H_RBWS LIKE RBWS     OCCURS 0,  " extended withholding tax

*       bupla  LIKE accit-bupla,        " Business place Korea

WWERT  LIKE ACCIT-WWERT,        "  Umrechnungsdatum f黵 Kufix

MRM_ZLSPR TYPE MRM_ZLSPR,       "  Log. Zahlsperre

XCPDD TYPE XCPDD,               " CPD Dialog bearbeitet

ADRNR TYPE ADRNR,               " CPD Adresse

PENRC TYPE PENRC,               " Cause for late Payment

"(PS/USA)

BAPI_EXTBLNR TYPE RE_BELNR,

" External doc. no. for BAPI when

BAPI_PROCESS TYPE C,         " changing fiscal year / flag

" that doc. comes from BAPI

END OF MRM_RBKPV.

TYPES: BEGIN OF MMCR_DRSEG_CO.

INCLUDE STRUCTURE COBL_MRM_D.

TYPES: CR LIKE DRSEG_CR    OCCURS 0,

UNPL_REFWR TYPE REFWR,

END OF MMCR_DRSEG_CO.

TYPES: BEGIN OF MMCR_DRSEG.

INCLUDE STRUCTURE DRSEG.

TYPES: CR LIKE DRSEG_CR OCCURS 0,

CO TYPE MMCR_DRSEG_CO OCCURS 0,

SM LIKE DRSEG_SM OCCURS 0,

CHARACT TYPE RBCHARACT_INSTANCE OCCURS 3,

"instances of characteristics

UEBGMAT  TYPE MATNR,

UEBRBLGP TYPE RBLGP,

SELKZ_DB TYPE SELKZ,

RBLGP_OLD TYPE RBLGP,           "rblgp before aggregation

END OF MMCR_DRSEG.

TYPES: MMCR_LIMIT  LIKE RELIMIT.

*  TYPES: MMCR_TLIMIT TYPE SORTED TABLE OF MMCR_LIMIT

*                     WITH UNIQUE KEY EBELN EBELP.

*

DATA: BEGIN OF MM_ERRPROT OCCURS 0,

MSGTY       LIKE SY-MSGTY,

MSGID       LIKE SY-MSGID,

MSGNO       LIKE SY-MSGNO,

MSGV1       LIKE SY-MSGV1,

MSGV2       LIKE SY-MSGV2,

MSGV3       LIKE SY-MSGV3,

MSGV4       LIKE SY-MSGV4,

SOURCE      TYPE C,

RBLGP       LIKE DRSEG-RBLGP,

SHOWN       LIKE BOOLE-BOOLE,

END OF MM_ERRPROT.

DATA: LIN TYPE P,

TEXT(30), "返回消息文本

MM_RBKPV TYPE MRM_RBKPV,

I_RBSELBEST LIKE RBSELBEST OCCURS 0 WITH HEADER LINE,

I_RBSELLIFS LIKE RBSELLIFS OCCURS 0 WITH HEADER LINE,

I_RBSELFRBR LIKE RBSELFRBR OCCURS 0 WITH HEADER LINE,

I_RBSELWERK LIKE RBSELWERK OCCURS 0 WITH HEADER LINE,

I_RBSELERFB LIKE RBSELERFB OCCURS 0 WITH HEADER LINE,

MM_TLIMIT TYPE SORTED TABLE OF MMCR_LIMIT

WITH UNIQUE KEY EBELN EBELP,

MM_DRSEG TYPE MMCR_DRSEG OCCURS 0 WITH HEADER LINE.

CLEAR I_RBSELBEST.

I_RBSELBEST-EBELN = IEBELN.

I_RBSELBEST-EBELP = IEBELP.

APPEND I_RBSELBEST.

MM_RBKPV-BLDAT = IBLDAT.

MM_RBKPV-BUDAT = IBUDAT.

MM_RBKPV-BUKRS = IBUKRS.

*请货款

IF IVORGANG = '1' AND IREFERENZBELEGTYP = '1' AND IXWARE_BNK = '1'.

MM_RBKPV-XRECH = 'X'.       "标识: 记帐发票

MM_RBKPV-XZUORDLI = 'X'.    "显示交货项目分配

MM_RBKPV-XZUORDRT = 'X'.  "显示退货分配

MM_RBKPV-XBNK = ''.         "计划交货成本标识

MM_RBKPV-XWARE = 'X'.       "货物发票/服务标识符

MM_RBKPV-TBTKZ = ''.        "标识: 后续借/贷

MM_RBKPV-XBEST = 'X'.       "复选框: 分配

MM_RBKPV-XRECHL = 'S'.      "交货项目的过帐逻辑(发票/贷项清单)

MM_RBKPV-XRECHR = 'H'.      "交货项目的过帐逻辑(发票/贷项清单)

TEXT = '没有需要请的货款'.

*请已计划费用

ELSEIF IVORGANG = '1' AND IREFERENZBELEGTYP = '1' AND IXWARE_BNK = '2'.

MM_RBKPV-XRECH = 'X'.

MM_RBKPV-XZUORDLI = 'X'.

MM_RBKPV-XZUORDRT = 'X'.

MM_RBKPV-XBNK = 'X'.

MM_RBKPV-XWARE = ''.

MM_RBKPV-TBTKZ = ''.

MM_RBKPV-XBEST = 'X'.

MM_RBKPV-XRECHL = 'S'.

MM_RBKPV-XRECHR = 'H'.

TEXT = '没有需要请的已计划费用'.

*请未计划费用

ELSEIF IVORGANG = '3' AND IREFERENZBELEGTYP = '1' AND IXWARE_BNK = '1'.

MM_RBKPV-XRECH = 'X'.

MM_RBKPV-XZUORDLI = 'X'.

MM_RBKPV-XZUORDRT = 'X'.

MM_RBKPV-XBNK = ''.

MM_RBKPV-XWARE = 'X'.

MM_RBKPV-TBTKZ = 'X'.

MM_RBKPV-XBEST = 'X'.

MM_RBKPV-XRECHL = 'S'.

MM_RBKPV-XRECHR = 'H'.

TEXT = '没有需要请未计划费用'.

*货款、已计划费用和未计划费用同时请款

ELSEIF IVORGANG = '1' AND IREFERENZBELEGTYP = '1' AND IXWARE_BNK = '3'.

MM_RBKPV-XRECH = 'X'.

MM_RBKPV-XZUORDLI = 'X'.

MM_RBKPV-XZUORDRT = 'X'.

MM_RBKPV-XBNK = 'X'.

MM_RBKPV-XWARE = 'X'.

MM_RBKPV-TBTKZ = ''.

MM_RBKPV-XBEST = 'X'.

MM_RBKPV-XRECHL = 'S'.

MM_RBKPV-XRECHR = 'H'.

TEXT = '没有需要请的货款、已计划费用和未计划费用'.

*退货订单请款

ELSEIF IVORGANG = '2' AND IREFERENZBELEGTYP = '1' AND IXWARE_BNK = '1'.

MM_RBKPV-XRECH = ''.

MM_RBKPV-XZUORDLI = 'X'.

MM_RBKPV-XZUORDRT = 'X'.

MM_RBKPV-XBNK = ''.

MM_RBKPV-XWARE = 'X'.

MM_RBKPV-TBTKZ = ''.

MM_RBKPV-XBEST = 'X'.

MM_RBKPV-XRECHL = 'H'.

MM_RBKPV-XRECHR = 'H'.

TEXT = '没有需要请的退货货款'.

*批次请款

ELSEIF IVORGANG = '1' AND IREFERENZBELEGTYP = '5' AND IXWARE_BNK = '3'.

TEXT = '此供应商没有需要请的货款及费用'.

IF IXZUORDLIDELIVERY = 'X' AND IXZUORDLIRETURN = 'X'. "交货和退货

MM_RBKPV-LFDATABLI = IDELIVERYBEGIN.

MM_RBKPV-LFDATBISLI = IDELIVERYEND.

MM_RBKPV-LFDATABRT = IRETURNBEGIN.

MM_RBKPV-LFDATBISRT = IRETURNEND.

MM_RBKPV-XZUORDLI = 'X'.

MM_RBKPV-XZUORDRT = 'X'.

MM_RBKPV-XBNK = 'X'.

MM_RBKPV-XWARE = 'X'.

MM_RBKPV-TBTKZ = ''.

MM_RBKPV-XBEST = ''.

MM_RBKPV-SELIF = ISUPERFIELD.

MM_RBKPV-XRECHL = 'S'.

MM_RBKPV-XRECHR = 'H'.

ELSEIF IXZUORDLIDELIVERY = 'X' AND IXZUORDLIRETURN = ''. "交货

MM_RBKPV-LFDATABLI = IDELIVERYBEGIN.

MM_RBKPV-LFDATBISLI = IDELIVERYEND.

MM_RBKPV-LFDATABRT = IRETURNBEGIN.

MM_RBKPV-LFDATBISRT = IRETURNEND.

MM_RBKPV-XZUORDLI = ''.

MM_RBKPV-XZUORDRT = 'X'.

MM_RBKPV-XBNK = 'X'.

MM_RBKPV-XWARE = 'X'.

MM_RBKPV-TBTKZ = ''.

MM_RBKPV-XBEST = ''.

MM_RBKPV-SELIF = ISUPERFIELD.

MM_RBKPV-XRECHL = 'S'.

MM_RBKPV-XRECHR = 'H'.

ELSEIF IXZUORDLIDELIVERY = '' AND IXZUORDLIRETURN = 'X'. "退货

ENDIF.

ENDIF.

CALL FUNCTION 'MRM_ASSIGNMENT'

EXPORTING

I_DISPLAY          = 'X'

*   TI_DRSEG_OLD       =

* IMPORTING

*   E_CANCEL           =

TABLES

T_DRSEG            = MM_DRSEG

T_RBSELBEST        = I_RBSELBEST

T_RBSELLIFS        = I_RBSELLIFS

T_RBSELFRBR        = I_RBSELFRBR

T_RBSELWERK        = I_RBSELWERK

T_RBSELERFB        = I_RBSELERFB

T_ERRPROT          = MM_ERRPROT

*   T_EBELNTAB         =

*   T_RBSELTRAN        =

CHANGING

C_RBKPV            = MM_RBKPV

T_LIMIT            = MM_TLIMIT

.

LOOP AT MM_DRSEG WHERE KOART = ''.

MOVE MM_RBKPV-TBTKZ TO MM_DRSEG-TBTKZ.

CALL FUNCTION 'MRM_AMOUNT_QUANTITY_PROPOSE_N'

EXPORTING

I_RBKPV = MM_RBKPV

CHANGING

C_DRSEG = MM_DRSEG.

MODIFY MM_DRSEG.

ENDLOOP.

LOOP AT MM_DRSEG.

MOVE-CORRESPONDING MM_DRSEG TO IDRSEG.

APPEND IDRSEG.

CLEAR MM_DRSEG.

ENDLOOP.

DESCRIBE TABLE MM_DRSEG LINES LIN.

IF LIN = 0.

RETURNMSG-MTYPE = 'W'.

RETURNMSG-MTEXT = TEXT.

ENDIF.

ENDFUNCTION.不知各位老大有没有标准的、省力的办法。

linux查看监听请款,请款(MIRO)RFC相关推荐

  1. netstat linux查看监听端口号,linux用netstat查看服务及监听端口

    [root@localhost ~]# netstat -nlp netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接 ...

  2. Linux下监听53号端口捕获DNS查询报文

    Linux下监听53号端口捕获DNS查询报文 计算机网络课设要求写一个能正常工作的DNS resolver,这就要求写出来的解析器能监听应用程序发出的查询报文. 即当应用程序需要查询某个网址对应的IP ...

  3. netstat 查看监听的端口程序

    netstat -pnl -n 表示ip和端口将以数字的形式显示,例如:显示:0.0.0.0:22 ,如果没有这个选项,将显示:0.0.0.0:ssh -p 表示显示进程的pid的名字 -l  表示查 ...

  4. oralce 数据库监听日志状态及目录:查看监听(使用grid用户登陆):

    数据库监听日志状态及目录:查看监听(使用grid用户登陆): su - grid 密码:grid [grid@db1 ~]$ lsnrctl LSNRCTL> status LSNRCTL> ...

  5. linux 无线网卡 监听模式,查看无线网卡是否支持监听模式

    查看无线网卡是否支持监听模式 在实施无线渗透测试时,通常需要将无线网卡设置为监听模式,来监听经过其网卡的所有流量.大学霸IT达人对于很多用户,都不知道如何确定自己的无线网卡是否支持监听,结果浪费大量时 ...

  6. linux数据库监听配了两个,Oracle数据库和监听随LINUX系统启动

    Oracle数据库和监听随LINUX系统启动 1.确保"/etc/oratab"文件内容的正确性 有则修改,无则创建"/etc/oratab"文件.该文件的功能 ...

  7. linux 端口监听 Netstat 常用命令

    文章目录 一.Netstat 二.Netstat 常用命令 2.1 Linux 查看程序端口使用情况 2.2 Linux 查看程序端口占用情况 三.Netstat 命令详情 一.Netstat Net ...

  8. oracle 如何查看监听,[转载]查看oracle监听器的状态及打开监听器服务

    检查监听器状态: C:>lsnrctlstatus LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 30-6月 -20 ...

  9. kali linux wifi监听模式,无线渗透教程1:监听无线网络

    第一:配置管理无线网卡 1.1这里,我们使用tplink wn722n, kali linux插上即用,无需安装驱动. 1.2Vmare虚拟机配置如下: 如网卡插入到电脑后,先将虚拟机设置成桥接模式 ...

最新文章

  1. autoconfig oracle,ORACLE EBS 执行autoconfig time out
  2. redhat-problem to be research
  3. 命名空间和模块化编程3
  4. 【工业控制】What is a Waveform
  5. 14英寸电脑长宽多少_连接4K显示器流行,带雷电3雷电4接口的笔记本要多少钱?...
  6. 关于gitgithub的操作
  7. 如何在scoped不污染组件样式的前提下,实现el-input组件样式覆盖?
  8. RocketMQ 顺序消费只消费一次 坑
  9. SQL 窗口函数的优化和执行
  10. Linear Color Space 渲染时几点注意
  11. WIN10+Ubuntu16.4 双系统,遇到的坑
  12. 4万字长文全面解读数据中台、数据仓库和数据湖
  13. Go语言之flag基础用法
  14. 头歌-自己动手画CPU(第一关)-8位可控加减法器-Logisim
  15. 基于VUE + Echarts 实现可视化数据大屏智慧校园可视化
  16. 【Qt】仿QQ表情选择控件
  17. 2022-2027中国内科缝合线行业应用形势与需求前景预测报告
  18. RSAT(Regulatory Sequence Analysis Tools)详解
  19. 美国医院权威评估体系
  20. 秋招经验总结(私企,外企,国企)

热门文章

  1. 各类证件类型的格式校验
  2. 这所211大学计算机学院全面改考408!中国地质大学(武汉)
  3. 论影响高学习效率的几大因素
  4. 编程实现对任意字符串的加密处理
  5. 二维四象限,就是从非此即彼的二分法里解放出来
  6. 隧道股份“盾构云平台”试运行,年内将在上海全市范围推广
  7. sql函数: 多级树状目录-根据父ID查询出所有的子ID
  8. Java实现MD5加密、验证
  9. 从计算机键盘上输入汉字时输入的实际上,从计算机键盘上输入汉字时,输入的实际上是...
  10. 工业互联网的前世今生 | 初探工业互联网