zoukankan      html  css  js  c++  java
  • 如何使用类CL_ABAP_CONTAINER_UTILITIES读取、写入EXTENSIONIN

    很多BAPI允许用户将自定义字段通过一个table参数EXTENSIONIN传入BAPI中,比如采购订单创建的bapi BAPI_PO_CREATE1,如下:

    定义EXTENSIONIN的结构类型BAPIPAREX如下:

    STRUCTURE字段用来填写结构名字,这个结构里面就是自定义增强字段,BAPI_PO_CREATE1中可供使用的是以下6个结构名,

    • BAPI_TE_MEPOHEADER--采购订单抬头
    • BAPI_TE_MEPOHEADERX
    • BAPI_TE_MEPOITEM--采购订单行项目
    • BAPI_TE_MEPOITEMX
    • BAPI_TE_MEPOACCOUNTING--采购订单科目分配
    • BAPI_TE_MEPOACCOUNTINGX

    这些结构里大概就是下面这个样子,当然这些自定义字段需要通过增强append到ekpo中

    VALUEPART1,VALUEPART2,VALUEPART3,VALUEPART4中保存的是自定义字段值和更新标识

    ,EXTENSIONIN怎么才能赋值呢?下面主角登场了,SAP提供了一个类CL_ABAP_CONTAINER_UTILITIES,里面有两个方法, 方法read_container_c-用来读取EXTENSIONIN, 方法fill_container_c用来填充EXTENSIONIN。

    例子代码当然不能少了,下面这一小段代码就是先将EXTENSIONIN中的值读出来,然后再加入一个自定义字段  zsfyg的值,再回写EXTENSIONIN。

    可以看到这两个方法的container参数中用到了<fs_ext>+30,有个30的偏移量,含义就是将第一个字段STRUCTURE跳过,STRUCTURE恰好30位长,然后读取或写入之后的VALUEPART1,VALUEPART2,VALUEPART3,VALUEPART4。

    以上。

  • 相关阅读:
    ubuntu16.04源码安装openssh-7.9 openssl-1.1.1
    shell脚本ping IP
    MariaDB-5.5.56 主主复制+keepalived高可用
    十五 数组与指针 推算程序结果
    十六 推算程序结果 结构体指针
    十七 括号表达式 最右为终值
    十八 二维数组赋指针
    十九 程序找错 结构体内的指针使用前要确定指向
    C语言:十九 程序找错 结构体内的指针使用前要确定指向
    C语言:二十 程序找错
  • 原文地址:https://www.cnblogs.com/datie/p/11428589.html
Copyright © 2011-2022 走看看